diff --git a/Packages/com.unity.render-pipelines.core/Documentation~/Images/ExampleOutputTexture.png b/Packages/com.unity.render-pipelines.core/Documentation~/Images/ExampleOutputTexture.png new file mode 100644 index 00000000000..73726f50c49 Binary files /dev/null and b/Packages/com.unity.render-pipelines.core/Documentation~/Images/ExampleOutputTexture.png differ diff --git a/Packages/com.unity.render-pipelines.core/Documentation~/Images/RayTracingContext.jpg b/Packages/com.unity.render-pipelines.core/Documentation~/Images/RayTracingContext.jpg new file mode 100644 index 00000000000..bb468d1dd9a Binary files /dev/null and b/Packages/com.unity.render-pipelines.core/Documentation~/Images/RayTracingContext.jpg differ diff --git a/Packages/com.unity.render-pipelines.core/Documentation~/TableOfContents.md b/Packages/com.unity.render-pipelines.core/Documentation~/TableOfContents.md index ebb1e28fd88..0977feb3bbe 100644 --- a/Packages/com.unity.render-pipelines.core/Documentation~/TableOfContents.md +++ b/Packages/com.unity.render-pipelines.core/Documentation~/TableOfContents.md @@ -35,4 +35,14 @@ * [Look Dev](Look-Dev.md) * [Environment Library](Look-Dev-Environment-Library.md) * [Rendering Debugger](Rendering-Debugger.md) -* [Light Anchor](view-lighting-tool.md) \ No newline at end of file +* [Light Anchor](view-lighting-tool.md) +* [Unified Raytracing API](UnifiedRayTracing/unified-ray-tracing-api.md) + * [Get started with ray tracing](UnifiedRayTracing/get-started.md) + * [Ray tracing workflow](UnifiedRayTracing/workflow.md) + * [Create the ray tracing context](UnifiedRayTracing/create-ray-tracing-context.md) + * [Create an acceleration structure](UnifiedRayTracing/create-acceleration-structure.md) + * [Create a unified ray tracing shader](UnifiedRayTracing/create-shader.md) + * [Write your ray tracing code](UnifiedRayTracing/write-shader.md) + * [Execute your ray tracing code](UnifiedRayTracing/execute-shader.md) + * [Sample code: Tracing camera rays](UnifiedRayTracing/trace-camera-rays-full-sample.md) + * [Unified ray tracing shader code reference](UnifiedRayTracing/shader-code-reference.md) \ No newline at end of file diff --git a/Packages/com.unity.render-pipelines.core/Documentation~/UnifiedRayTracing/create-acceleration-structure.md b/Packages/com.unity.render-pipelines.core/Documentation~/UnifiedRayTracing/create-acceleration-structure.md new file mode 100644 index 00000000000..4494a747d88 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Documentation~/UnifiedRayTracing/create-acceleration-structure.md @@ -0,0 +1,51 @@ +# Create an acceleration structure +[`IRayTracingAccelStruct`](xref:UnityEngine.Rendering.UnifiedRayTracing.IRayTracingAccelStruct) is the data structure used to represent a collection of instances and geometries that are used for GPU ray tracing. + +Create an acceleration structure with the following code: +```C# +var options = new AccelerationStructureOptions(); +IRayTracingAccelStruct rtAccelStruct = rtContext.CreateAccelerationStructure(options); +``` + +## Build options +[`AccelerationStructureOptions`](xref:UnityEngine.Rendering.UnifiedRayTracing.AccelerationStructureOptions) allows you to configure the build algorithm. The trade-off is as follows: A faster build results in worse ray tracing performance, and conversely, a slower build can improve ray tracing performance. + +The following fields can be configured: + +|Field|Description| +|-|-| +|`buildFlags`|Adjust the buildFlags to prioritize either faster construction of the acceleration structure or faster ray tracing.| +|`useCPUBuild` (Compute backend)|When set to true, Unity builds the acceleration structure on the CPU instead of the GPU. This option has no effect when using the `Hardware` backend. CPU-based builds use a more advanced algorithm, resulting in a higher-quality acceleration structure, which enhances overall ray tracing performance.| + +The following example demonstrates how to get the best ray tracing performance. These options make the acceleration structure longer to build, however. +```HLSL +var options = new AccelerationStructureOptions() { + buildFlags = BuildFlags.PreferFastTrace, + useCPUBuild = true +} +``` + +## Populate the acceleration structure +Unlike [`RayTracingAccelerationStructure`](xref:UnityEngine.Rendering.RayTracingAccelerationStructure), there is no support for automatic synchronization between the acceleration structure's instances and the scene instances. You need to add them manually, for example: +```C# +var instanceDesc = new MeshInstanceDesc(mesh, 0 /*subMeshIndex*/); +instanceDesc.localToWorldMatrix = /* desired transform */; +rtAccelStruct.AddInstance(instanceDesc); +``` + +To trace rays against all the Mesh-based GameObjects in your scene, add them to the [`IRayTracingAccelStruct`](xref:UnityEngine.Rendering.UnifiedRayTracing.IRayTracingAccelStruct). For example: +```C# +var meshRenderers = UnityEngine.Object.FindObjectsByType(FindObjectsSortMode.None); +foreach (var renderer in meshRenderers) +{ + var mesh = renderer.GetComponent().sharedMesh; + int subMeshCount = mesh.subMeshCount; + + for (int i = 0; i < subMeshCount; ++i) + { + var instanceDesc = new MeshInstanceDesc(mesh, i); + instanceDesc.localToWorldMatrix = renderer.transform.localToWorldMatrix; + rtAccelStruct.AddInstance(instanceDesc); + } +} +``` diff --git a/Packages/com.unity.render-pipelines.core/Documentation~/UnifiedRayTracing/create-ray-tracing-context.md b/Packages/com.unity.render-pipelines.core/Documentation~/UnifiedRayTracing/create-ray-tracing-context.md new file mode 100644 index 00000000000..5c2dacbdf21 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Documentation~/UnifiedRayTracing/create-ray-tracing-context.md @@ -0,0 +1,57 @@ +# Create the ray tracing context + +The [`RayTracingContext`](xref:UnityEngine.Rendering.UnifiedRayTracing.RayTracingContext) serves as the initial API entry point, allowing the creation of all essential objects required to execute ray tracing code. + +Follow these steps: +1. Load the ray tracing resources. +2. Create the context. + +## Load the ray tracing resources +The [`RayTracingContext`](xref:UnityEngine.Rendering.UnifiedRayTracing.RayTracingContext) needs a few utility shaders that the [`RayTracingResources`](xref:UnityEngine.Rendering.UnifiedRayTracing.RayTracingResources) object supplies. You can load these resources in several different ways. + +If your project uses SRP (Scriptable Render Pipeline), load the resources via [`RayTracingResources.LoadFromRenderPipelineResources`](xref:UnityEngine.Rendering.UnifiedRayTracing.RayTracingContext.LoadFromRenderPipelineResources()). This always works in the Editor. +```C# +var rtResources = new RayTracingResources(); +bool result = rtResources.LoadFromRenderPipelineResources(); +``` +You can instruct Unity to also include the resources in Player builds: +```C# +using UnityEngine.Rendering; +using UnityEngine.Rendering.UnifiedRayTracing; + +#if UNITY_EDITOR +class MyURTStripping: IRenderPipelineGraphicsSettingsStripper +{ + public bool active => true; + public bool CanRemoveSettings(RayTracingRenderPipelineResources settings) => false; +} +#endif +``` + +You can also load the resources via the Asset Database: +```C# +var rtResources = new RayTracingResources(); +rtResources.Load(); +``` +**Note:** Since the Player doesn't give access to the Asset Database, this method only works in the Editor. + +To load the [`RayTracingResources`](xref:UnityEngine.Rendering.UnifiedRayTracing.RayTracingResources) in the Player, you can also build the **unifiedraytracing** AssetBundle. For more information about how to build and load AssetBundles, refer to [AssetBundles](xref:AssetBundlesIntro). +```C# +var rtResources = new RayTracingResources(); + +// Load the AssetBundle +var asssetBundle = AssetBundle.LoadFromFile("Assets/pathToYourBuiltAssetBundles/unifiedraytracing"); + +// Load the RayTracingResources +rtResources.LoadFromAssetBundle(asssetBundle); +``` + +## Create the context +Once the [`RayTracingResources`](xref:UnityEngine.Rendering.UnifiedRayTracing.RayTracingResources) are loaded, use them to create the [`RayTracingContext`](xref:UnityEngine.Rendering.UnifiedRayTracing.RayTracingContext). +```C# +// Choose a backend +var backend = RayTracingContext.IsBackendSupported(RayTracingBackend.Hardware) ? RayTracingBackend.Hardware : RayTracingBackend.Compute; + +// Create the context +var context = new RayTracingContext(backend, rtResources); +``` diff --git a/Packages/com.unity.render-pipelines.core/Documentation~/UnifiedRayTracing/create-shader.md b/Packages/com.unity.render-pipelines.core/Documentation~/UnifiedRayTracing/create-shader.md new file mode 100644 index 00000000000..0eb5345b3aa --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Documentation~/UnifiedRayTracing/create-shader.md @@ -0,0 +1,53 @@ +# Create a unified ray tracing shader + +Depending on the backend you choose in the [`RayTracingContext`](xref:UnityEngine.Rendering.UnifiedRayTracing.RayTracingContext), write your ray tracing code in either a `.raytrace` or a `.compute` shader. + +To create both a `.raytrace` shader and a `.compute` shader, write your shader code in a unified ray tracing shader (`.urtshader`). + +To create a shader, follow these steps: + +1. Create the shader asset file. +2. Load the shader. + +## Create the shader asset file +To create a unified ray tracing shader: + +1. Launch the Unity Editor. + +1. In the **Project** window, open the **Assets** folder. + +1. Open or create the folder in which you want to create your shader. + +1. Open the context menu (right-click) and select **Create** > **Shader** > **Unified Ray Tracing Shader**. + +1. Enter a name for the shader. + +Ray tracing occurs in the `RayGenExecute` function. You can edit the example code snippet. + +For more information about writing a ray tracing shader, refer to [Write your shader code](write-shader.md). + +## Load the shader +To load the `.urtshader` file in the Editor, use the following code snippet: +```C# +IRayTracingShader shader = rtContext.LoadRayTracingShader("Assets/yourShader.urtshader"); +``` + +To load the shader in the Player, add the `.urtshader` shader to an then load it with the following: +```C# +// Load the AssetBundle +var asssetBundle = AssetBundle.LoadFromFile("Assets/pathToYourBuiltAssetBundles/yourAssetBundle"); + +// Load the shader +IRayTracingShader shader = rtContext.LoadRayTracingShaderFromAssetBundle(asssetBundle, "Assets/yourShader.urtshader"); +``` + +To have more control, load the underlying Compute or Ray Tracing shader asset yourself and pass it to [`RayTracingContext.CreateRayTracingShader`](xref:UnityEngine.Rendering.UnifiedRayTracing.RayTracingContext.CreateRayTracingShader(UnityEngine.Object)). + +[`RayTracingContext.LoadRayTracingShaderFromAssetBundle`](xref:UnityEngine.Rendering.UnifiedRayTracing.RayTracingContext.LoadRayTracingShaderFromAssetBundle(UnityEngine.AssetBundle,System.String)) is a convenience function that performs the following operations: +```C# +public IRayTracingShader LoadRayTracingShaderFromAssetBundle(AssetBundle assetBundle, string name) +{ + Object asset = assetBundle.LoadAsset(name, BackendHelpers.GetTypeOfShader(BackendType)); + return CreateRayTracingShader(asset); +} +``` diff --git a/Packages/com.unity.render-pipelines.core/Documentation~/UnifiedRayTracing/execute-shader.md b/Packages/com.unity.render-pipelines.core/Documentation~/UnifiedRayTracing/execute-shader.md new file mode 100644 index 00000000000..e4b45c4b9e5 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Documentation~/UnifiedRayTracing/execute-shader.md @@ -0,0 +1,55 @@ +# Execute your ray tracing code +This section assumes you have [a shader](create-shader.md) containing your ray tracing logic and an [acceleration structure](create-acceleration-structure.md) representing the geometry that the rays will intersect. + +To execute your ray tracing shader on the GPU: +1. Build the acceleration structure. +2. Bind resources to the shader. +3. Dispatch the shader. + +## Build the acceleration structure +You must build the acceleration structure after you create it and every time you modify it. For example: +```C# +IRayTracingAccelStruct rtAccelStruct = /* your acceleration structure */; +var cmd = new CommandBuffer(); + +// A scratch buffer is required to build the acceleration structure, this helper function allocates one with the required size. +GraphicsBuffer buildScratchBuffer = RayTracingHelper.CreateScratchBufferForBuild(rtAccelStruct); + +// Build the ray tracing acceleration structure +rtAccelStruct.Build(cmd, buildScratchBuffer); +``` + +## Bind resources to the shader +You must bind the acceleration structure and any additional GPU resources declared in your shader, such as constants, buffers, and textures. For example: +```C# +IRayTracingShader rtShader = /* your shader */; + +// Bind the acceleration structure. It is declared in the shader as: UNIFIED_RT_DECLARE_ACCEL_STRUCT(_YourAccelStruct); +rtShader.SetAccelerationStructure(cmd, "_YourAccelStruct", rtAccelStruct); + +// Bind the other GPU resources (constants/uniforms, buffers and textures) +rtShader.SetIntParam(cmd, Shader.PropertyToID("_YourInteger"), 5); +``` + +## Dispatch the shader +To make the GPU run your ray tracing shader, call the [`Dispatch`](xref:UnityEngine.Rendering.UnifiedRayTracing.IRayTracingShader.Dispatch(UnityEngine.Rendering.CommandBuffer,UnityEngine.GraphicsBuffer,System.UInt32,System.UInt32,System.UInt32)) method. For example: +```C# +const int threadCountX = 256, threadCountY = 256, threadCountZ = 1; + +// A scratch buffer is required to trace rays, this helper function allocates one with the required size. +GraphicsBuffer traceScratchBuffer = RayTracingHelper.CreateScratchBufferForTrace(rtShader, threadCountX, threadCountY, threadCountZ); + +// Dispatch rays. Workgrid dimensions are supplied in threads, not workgroups +rtShader.Dispatch(cmd, traceScratchBuffer, threadCountX, threadCountY, threadCountZ); + +// Execute the command buffer to effectively run all the previously registered commands. +Graphics.ExecuteCommandBuffer(cmd); +``` + +**Note:** If its size satisfies the requirements for both operations, you can use the same scratch buffer for both the build and trace steps. + + + + + + diff --git a/Packages/com.unity.render-pipelines.core/Documentation~/UnifiedRayTracing/get-started.md b/Packages/com.unity.render-pipelines.core/Documentation~/UnifiedRayTracing/get-started.md new file mode 100644 index 00000000000..622723b5e53 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Documentation~/UnifiedRayTracing/get-started.md @@ -0,0 +1,28 @@ +# Get started with ray tracing +The `UnifiedRayTracing` API enables you to write ray tracing code that executes on a wide range of GPUs. Unlike the [`RayTracingAccelerationStructure`](xref:UnityEngine.Rendering.RayTracingAccelerationStructure) API, +its key advantage is that it is able to operate without requiring hardware ray tracing support. It achieves this by offering multiple backends that can be dynamically selected based on the GPU’s capabilities. + +## Backends +The following backends are available: +- `Hardware`: Requires a GPU that supports hardware-accelerated ray tracing. This backend uses the [`RayTracingAccelerationStructure`](xref:UnityEngine.Rendering.RayTracingAccelerationStructure) API. +- `Compute` : Software implementation of ray tracing that works only on GPUs that support compute shaders. + +By abstracting these different implementations behind a unified interface, the API allows you to write your ray tracing code once, and have it automatically adapt to the appropriate backend. + +## Main concepts +The API entry point is the [`RayTracingContext`](xref:UnityEngine.Rendering.UnifiedRayTracing.RayTracingContext) which is initialized for a specific backend. + +The [`RayTracingContext`](xref:UnityEngine.Rendering.UnifiedRayTracing.RayTracingContext) enables you to create the 2 essential objects you need to perform ray tracing: +- an acceleration structure ([`IRayTracingAccelStruct`]((xref:UnityEngine.Rendering.UnifiedRayTracing.IRayTracingAccelStruct))) which represents the geometry to trace rays against. +- a shader ([`IRayTracingShader`]((xref:UnityEngine.Rendering.UnifiedRayTracing.IRayTracingShader))) which contains your ray tracing code that will run on the GPU. + +![RayTracingContext class features](../Images/RayTracingContext.jpg) + +For more information, refer to [Using the API workflow](workflow.md). + +## Limitations +In order to accomodate both hardware-accelerated and non-accelerated GPUs, the API is more constrained than Unity's [`RayTracingAccelerationStructure` API](xref:UnityEngine.Rendering.RayTracingAccelerationStructure). +- The API doesn't support any automatic scene updates. You must explicitly call [`IRayTracingAccelStruct.AddInstance`](xref:UnityEngine.Rendering.UnifiedRayTracing.IRayTracingAccelStruct.AddInstance(UnityEngine.Rendering.UnifiedRayTracing.MeshInstanceDesc)) or +[`IRayTracingAccelStruct.RemoveInstance`](xref:UnityEngine.Rendering.UnifiedRayTracing.IRayTracingAccelStruct.RemoveInstance(System.Int32)) to update the acceleration structure. +- The API supports only ray tracing with mesh geometries. +- Once a hit is found, the `TraceRay` function returns immediately with the hit information. You need to write the shading code in the ray generation shader (`.urtshader`). diff --git a/Packages/com.unity.render-pipelines.core/Documentation~/UnifiedRayTracing/shader-code-reference.md b/Packages/com.unity.render-pipelines.core/Documentation~/UnifiedRayTracing/shader-code-reference.md new file mode 100644 index 00000000000..46bd1be18b2 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Documentation~/UnifiedRayTracing/shader-code-reference.md @@ -0,0 +1,74 @@ +# Unified ray tracing shader code reference +This section presents the different functions and structs provided by the API for tracing rays in a shader. + +All types are defined inside the `UnifiedRT` namespace. In your code, you need to prefix them with ```UnifiedRT::```. Alternatively, you can add ```using namespace UnifiedRT;``` after your `TraceRayAndQueryHit.hlsl` include statement. + +## function TraceRayClosestHit +```HLSL +Hit TraceRayClosestHit(DispatchInfo dispatchInfo, RayTracingAccelStruct accelStruct, uint instanceMask, Ray ray, uint rayFlags) + ``` +Searches for intersections between a ray and an acceleration structure. It returns hit information about the closest triangle encountered along the ray. +### Parameters +|Type|Name|Description| +|-|-|-| +|[`DispatchInfo`](#struct-dispatchinfo)|*dispatchInfo*|The dispatch info. Must be the value that is passed by `RayGenExecute`.| +|`RayTracingAccelStruct`|*accelStruct*|The acceleration structure to test the ray against.| +|`uint`|*instanceMask*|The lower 8 bits of this mask are used to include geometry instances based on the instance mask that was set in `MeshInstanceDesc` for each instance.| +|[`Ray`](#struct-ray)|*ray*|Describes the ray segment that is intersected against the acceleration structure.| +|`uint`|*rayFlags*|Flags that filter out the triangles that participate in the intersection test. Can be one of the following:
  • kRayFlagNone
  • kRayFlagCullBackFacingTriangles
  • kRayFlagCullFrontFacingTriangles
| +### Returns +[`Hit`](#struct-hit) containing geometry information about the hit triangle. When no primitive has intersected with the ray, `hit.IsValid()` returns false. + +## function TraceRayAnyHit +```HLSL +bool TraceRayAnyHit(DispatchInfo dispatchInfo, RayTracingAccelStruct accelStruct, uint instanceMask, Ray ray, uint rayFlags) +``` +Searches for any intersection between a ray and an acceleration structure. The search ends as soon as a valid triangle hit is found. This function can typically be used to trace shadow rays or perform occlusion queries. +### Parameters +|Type|Name|Description| +|-|-|-| +|[`DispatchInfo`](#struct-dispatchinfo)|*dispatchInfo*|The dispatch info. Must be the value that is passed by `RayGenExecute`.| +|`RayTracingAccelStruct`|*accelStruct*|The acceleration structure to test the ray against.| +|`uint`|*instanceMask*|The lower 8 bits of this mask are used to include geometry instances based on the instance mask that was set in `MeshInstanceDesc` for each instance.| +|[`Ray`](#struct-ray)|*ray*|Describes the ray segment that is intersected against the acceleration structure.| +|`uint`|*rayFlags*|Flags that filter out the triangles that participate in the intersection test. Can be one of the following:
  • kRayFlagNone
  • kRayFlagCullBackFacingTriangles
  • kRayFlagCullFrontFacingTriangles
| +### Returns +A boolean that is true if any primitive was hit by the ray. + +## struct Ray +Describes a ray. +The `tMin` and `tMax` fields define the segment of the ray to be tested against the acceleration structures's primitives. +Mathematically, the ray consists of all the points defined as `P = ray.origin + t * ray.direction`, where `ray.tMin ≤ t ≤ ray.tMax`. +### Fields +|Type|Name|Description| +|-|-|-| +|`float3`|*origin*|The ray's origin.| +|`float3`|*direction*|The ray's direction.| +|`float`|*tMin*|The ray's starting point.| +|`float`|*tMax*|The ray's endpoint.| + +## struct DispatchInfo +Provides information about the current thread that is invoked. +### Fields +|Type|Name|Description| +|-|-|-| +|`uint3`|*dispatchThreadID*|Same semantic as `SV_DispatchThreadID`.| +|`uint`|*localThreadIndex*|Same semantic as `SV_GroupIndex`.| +|`uint3`|*dispatchDimensionsInThreads*|Total numbers of threads dispatched in the X, Y, and Z workgrid directions.| +|`uint`|*globalThreadIndex*|Global thread index that is unique within the workgrid.| + +## struct Hit +Describes a Hit. +### Fields +|Type|Name|Description| +|-|-|-| +|`uint`|*instanceID*|Matches the `instanceID` supplied from C# in `MeshInstanceDesc.instanceID`.| +|`uint`|*primitiveIndex*|Index of the hit triangle in its source Mesh.| +|`float2`|*uvBarycentrics*|Barycentric coordinates of the hit triangle.| +|`float`|*hitDistance*|Defines the hit position: `hitPos = ray.origin + ray.direction * hit.hitDistance`.| +|`bool`|*isFrontFace*|Indicates whether the hit triangle is front-facing or back-facing.| +### Methods +```HLSL +bool IsValid(); +``` +Returns true when a hit has been found. When a hit is invalid `hit.instanceID` is equal to `~0` and the other fields are undefined. diff --git a/Packages/com.unity.render-pipelines.core/Documentation~/UnifiedRayTracing/trace-camera-rays-full-sample.md b/Packages/com.unity.render-pipelines.core/Documentation~/UnifiedRayTracing/trace-camera-rays-full-sample.md new file mode 100644 index 00000000000..2d009e2abfe --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Documentation~/UnifiedRayTracing/trace-camera-rays-full-sample.md @@ -0,0 +1,161 @@ +# Sample code: Tracing camera rays +This section demonstrates how to use the API to cast rays from the scene's Main camera and output the results into a `RenderTexture`, providing the complete code for implementation. +![Example of output texture for a scene with a simple cube](../Images/ExampleOutputTexture.png) + +Save the following code in your **Assets** folder as a file named `shootCameraRays.urtshader`: +```HLSL +// Include file for the UnifiedRayTracing API functions +#include "Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/TraceRayAndQueryHit.hlsl" + +// Use this macro to declare the acceleration structure binding +UNIFIED_RT_DECLARE_ACCEL_STRUCT(_AccelStruct); + +uint _RenderWidth; +uint _RenderHeight; +float4 _CameraFrustum; +float4x4 _CameraToWorldMatrix; +RWTexture2D _OutputTexture; + +UnifiedRT::Ray GenerateFrustumRay(float2 frameCoord, uint2 resolution) +{ + float2 ndcCoords01 = (frameCoord + 0.5) / float2(resolution); + float3 viewDirection = float3( + lerp(_CameraFrustum.x, _CameraFrustum.y, ndcCoords01.x), + lerp(_CameraFrustum.z, _CameraFrustum.w, ndcCoords01.y), + -1.0); + + UnifiedRT::Ray ray; + ray.origin = transpose(_CameraToWorldMatrix)[3].xyz; + ray.direction = mul((float3x3) _CameraToWorldMatrix, normalize(viewDirection)); + ray.tMin = 0.0f; + ray.tMax = 100000.0f; + + return ray; +} + +// Entry point of the shader. DispatchInfo provides the current thread index in the dispatch +void RayGenExecute(UnifiedRT::DispatchInfo dispatchInfo) +{ + UnifiedRT::Ray ray = GenerateFrustumRay(dispatchInfo.dispatchThreadID.xy, uint2(_RenderWidth, _RenderHeight)); + + // Retrieve the acceleration structure + UnifiedRT::RayTracingAccelStruct accelStruct = UNIFIED_RT_GET_ACCEL_STRUCT(_AccelStruct); + + // Trace a ray in the acceleration structure + UnifiedRT::Hit hitResult = UnifiedRT::TraceRayClosestHit(dispatchInfo, accelStruct, 0xFFFFFFFF, ray, UnifiedRT::kRayFlagNone); + float2 uv = hitResult.uvBarycentrics; + + // display the hit triangle barycentrics coordinates as an RGB color + float3 color = hitResult.IsValid() ? float3(uv.x, uv.y, 1.0 - uv.x - uv.y) : 0.0; + _OutputTexture[dispatchInfo.dispatchThreadID.xy] = float4(color, 1.0); +} +``` + +The following C# MonoBehaviour is responsible for creating the acceleration structure, loading the ray tracing shader and dispatching it to the GPU. +Save it as a script file in your **Assets** folder and attach it to one of your scene GameObjects. +```C# +using UnityEngine; +using UnityEngine.Rendering; +using UnityEngine.Rendering.UnifiedRayTracing; + +public class ShootCameraRays : MonoBehaviour +{ + RayTracingResources m_RtResources; + RayTracingContext m_RtContext; + IRayTracingShader m_RtShader; + IRayTracingAccelStruct m_RtAccelStruct; + + // Ray tracing results are written to this texture + const int width = 1024; + const int height = 576; + public RenderTexture OutputTexture; + + void Start() + { + var renderTexDesc = new RenderTextureDescriptor(width, height); + renderTexDesc.graphicsFormat = UnityEngine.Experimental.Rendering.GraphicsFormat.R8G8B8A8_SRGB; + renderTexDesc.enableRandomWrite = true; + OutputTexture = new RenderTexture(renderTexDesc); + + m_RtResources = new RayTracingResources(); + m_RtResources.Load(); + + // Create the RayTracingContext + var backend = RayTracingContext.IsBackendSupported(RayTracingBackend.Hardware) ? RayTracingBackend.Hardware : RayTracingBackend.Compute; + m_RtContext = new RayTracingContext(backend, m_RtResources); + + // Load the unified ray tracing shader + m_RtShader = m_RtContext.LoadRayTracingShader("Assets/shootCameraRays.urtshader"); + + // Create the ray tracing acceleration structure + m_RtAccelStruct = m_RtContext.CreateAccelerationStructure(new AccelerationStructureOptions()); + + // Add an instance to the acceleration structure for each MeshRenderer in the current scene + uint instanceID = 0; + var meshRenderers = UnityEngine.Object.FindObjectsByType(FindObjectsSortMode.None); + foreach (var renderer in meshRenderers) + { + var mesh = renderer.GetComponent().sharedMesh; + int subMeshCount = mesh.subMeshCount; + + for (int i = 0; i < subMeshCount; ++i) + { + var instanceDesc = new MeshInstanceDesc(mesh, i); + instanceDesc.localToWorldMatrix = renderer.transform.localToWorldMatrix; + instanceDesc.instanceID = instanceID++; + m_RtAccelStruct.AddInstance(instanceDesc); + } + } + } + + void OnDestroy() + { + m_RtAccelStruct.Dispose(); + m_RtContext.Dispose(); + OutputTexture?.Release(); + } + + void Update() + { + // A scratch buffer is required to build the acceleration structure and for the ray traversal, this helper function allocates one with the required size. + GraphicsBuffer scratchBuffer = RayTracingHelper.CreateScratchBufferForBuildAndDispatch(m_RtAccelStruct, m_RtShader, width, height, 1); + + var cmd = new CommandBuffer(); + // build the ray tracing acceleration structure + m_RtAccelStruct.Build(cmd, scratchBuffer); + + // bind the shader gpu resources + m_RtShader.SetAccelerationStructure(cmd, "_AccelStruct", m_RtAccelStruct); + m_RtShader.SetIntParam(cmd, Shader.PropertyToID("_RenderWidth"), width); + m_RtShader.SetIntParam(cmd, Shader.PropertyToID("_RenderHeight"), height); + m_RtShader.SetVectorParam(cmd, Shader.PropertyToID("_CameraFrustum"), GetCameraFrustum(Camera.main)); + m_RtShader.SetMatrixParam(cmd, Shader.PropertyToID("_CameraToWorldMatrix"), Camera.main.cameraToWorldMatrix); + m_RtShader.SetTextureParam(cmd, Shader.PropertyToID("_OutputTexture"), OutputTexture); + + // dispatch rays. Workgrid dimensions are supplied in threads, not workgroups + m_RtShader.Dispatch(cmd, scratchBuffer, width, height, 1); + Graphics.ExecuteCommandBuffer(cmd); + + scratchBuffer?.Dispose(); + } + + // utility function to extract a frustum from a camera + Vector4 GetCameraFrustum(Camera camera) + { + Vector3[] frustumCorners = new Vector3[4]; + camera.CalculateFrustumCorners(new Rect(0, 0, 1, 1), 1.0f, Camera.MonoOrStereoscopicEye.Mono, frustumCorners); + float left = frustumCorners[0].x; + float right = frustumCorners[2].x; + float bottom = frustumCorners[0].y; + float top = frustumCorners[2].y; + + return new Vector4(left, right, bottom, top); + } +} + +``` + +You can now enter Play mode and visualize the ray tracing results. Follow these steps: +1. Select the GameObject you attached the `ShootCameraRays` MonoBehaviour to. +2. In the **Inspector** window, go to the **ShootCameraRays** component and double-click **Output Texture**. +3. The Inspector now displays a preview of the render texture containing the ray tracing results. diff --git a/Packages/com.unity.render-pipelines.core/Documentation~/UnifiedRayTracing/unified-ray-tracing-api.md b/Packages/com.unity.render-pipelines.core/Documentation~/UnifiedRayTracing/unified-ray-tracing-api.md new file mode 100644 index 00000000000..97d2b49c41a --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Documentation~/UnifiedRayTracing/unified-ray-tracing-api.md @@ -0,0 +1,15 @@ +# Ray tracing with the UnifiedRayTracing API +The `UnifiedRayTracing` API enables you to write ray tracing code that can execute on a wide range of GPUs. It leverages hardware ray tracing acceleration on supported GPUs, while providing a compute shader-based software fallback for those that do not. + +|Section|Description| +|-|-| +|[Get started with ray tracing](get-started.md)|Learn the essential information about the API.| +|[Ray tracing workflow](workflow.md)|Create a ray tracing context, and create and execute a ray tracing shader.| +|[Create the ray tracing context](create-ray-tracing-context.md)|How to create the API entry point.| +|[Create an acceleration structure](create-acceleration-structure.md)|Create and initialize an acceleration structure describing your geometry.| +|[Create a unified ray tracing shader](create-shader.md)|Create a unified ray tracing shader file.| +|[Write your shader code](write-shader.md)|Write the ray tracing logic in your a unified ray tracing shader file.| +|[Execute your ray tracing code](execute-shader.md)|How to execute your ray tracing shader.| +|[Sample code](trace-camera-rays-full-sample.md)|Complete code example showcasing tracing rays from the scene's camera.| +|[Unified ray tracing shader code reference](shader-code-reference.md)|API reference for the unified ray tracing shader code.| + diff --git a/Packages/com.unity.render-pipelines.core/Documentation~/UnifiedRayTracing/workflow.md b/Packages/com.unity.render-pipelines.core/Documentation~/UnifiedRayTracing/workflow.md new file mode 100644 index 00000000000..2683113ba65 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Documentation~/UnifiedRayTracing/workflow.md @@ -0,0 +1,55 @@ +# Ray tracing workflow +To use the API to trace rays in Unity, follow these steps: +1. Create the ray tracing context. +2. Create an acceleration structure. +3. Create a shader. +4. Build your acceleration structure. +5. Execute your shader. + +## Create the ray tracing context + +The context serves as the API entry point. Create it using the following parameters: +1. `backend`: The chosen backend, which can be either `Hardware` or `Compute`. +2. `resources`: A collection of assets required by the context to function. +```C# +var rtContext = new RayTracingContext(backend, rtResources); +``` + +For more information, refer to [Create the ray tracing Context](create-ray-tracing-context.md). + +## Create an acceleration structure + +The acceleration structure is the data structure used to represent a collection of instances and geometries that are used for GPU ray tracing. +```C# +IRayTracingAccelStruct rtAccelStruct = rtContext.CreateAccelerationStructure(options); +``` +After creating the structure, populate it with mesh instances using the [`AddInstance`](xref:UnityEngine.Rendering.UnifiedRayTracing.IRayTracingAccelStruct.AddInstance(UnityEngine.Rendering.UnifiedRayTracing.MeshInstanceDesc)) method. + +For more information, refer to [Create an acceleration structure](create-acceleration-structure.md). + +## Create a unified ray tracing shader + +Depending on the chosen backend, the `RayTracingContext` runs either a `ComputeShader` or a `RayTracingShader`. The API introduces the unified ray tracing shader (`.urtshader`), which is a shader type that generates both variants for you. +```C# +IRayTracingShader rtShader = rtContext.LoadRayTracingShader("Assets/yourShader.urtshader"); +``` + +For more information, refer to [Create a unified ray tracing shader](create-shader.md). + +## Build your acceleration structure +Whenever it is modified or used for the first time, the acceleration structure needs to be built or rebuilt. This can be achieved with the following code: +```C# +rtAccelStruct.Build(cmd, buildScratchBuffer); +``` + +For more information, refer to [Execute your ray tracing code](execute-shader.md). + +## Execute your shader +To execute your shader, call the [`Dispatch`](xref:UnityEngine.Rendering.UnifiedRayTracing.IRayTracingShader.Dispatch(UnityEngine.Rendering.CommandBuffer,UnityEngine.GraphicsBuffer,System.UInt32,System.UInt32,System.UInt32)) +method of `IRayTracingShader`. +```C# +rtShader.Dispatch(cmd, traceScratchBuffer, threadCountX, threadCountY, threadCountZ); +``` + +For more information, refer to [Execute your ray tracing code](execute-shader.md). + diff --git a/Packages/com.unity.render-pipelines.core/Documentation~/UnifiedRayTracing/write-shader.md b/Packages/com.unity.render-pipelines.core/Documentation~/UnifiedRayTracing/write-shader.md new file mode 100644 index 00000000000..dcf500c614a --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Documentation~/UnifiedRayTracing/write-shader.md @@ -0,0 +1,95 @@ +# Write your ray tracing code +This section guides you through the process of implementing ray tracing logic in a unified ray tracing shader (`.urtshader`). + +Follow these steps: +1. Include the UnifiedRayTracing API. +2. Declare the acceleration structure. +3. Define the ray generation function. +4. Define a ray. +5. Retrieve the acceleration structure. +6. Trace the ray. + +## Include the UnifiedRayTracing API +At the top of your `.urtshader` add the following statement: +```HLSL +#include "Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/TraceRayAndQueryHit.hlsl" +``` + +## Declare the acceleration structure +Declare the acceleration structure binding with the following macro: +```HLSL +UNIFIED_RT_DECLARE_ACCEL_STRUCT(_YourAccelStruct); +``` +Ensure that the name you declare here matches the one specified in your C# code when calling [`IRayTracingShader.SetAccelerationStructure`](xref:UnityEngine.Rendering.UnifiedRayTracing.IRayTracingShader.SetAccelerationStructure(UnityEngine.Rendering.CommandBuffer,System.String,UnityEngine.Rendering.UnifiedRayTracing.IRayTracingAccelStruct)). + +**Note**: You can declare and use multiple acceleration structures within the same shader. + +## Define the ray generation function +This is your kernel function that will be invoked by the GPU for each thread of your dispatch workgrid. It must be defined as follows: +```HLSL +void RayGenExecute(UnifiedRT::DispatchInfo dispatchInfo) +{ + +} +``` +The [`DispatchInfo`](shader-code-reference.md#struct-dispatchinfo) struct provides information about the currently invoked thread. For instance, you can query its location within the workgrid using: +```HLSL +uint3 threadID = dispatchInfo.dispatchThreadID; +``` + +At this point, you have a valid `.urtshader` file. The next steps involve implementing the ray tracing logic. +## Define a ray +Use the `Ray` struct to define a ray. For example, here is a ray starting at the origin and pointing towards the positive Z-axis: +```HLSL +UnifiedRT::Ray ray; +ray.origin = 0; +ray.direction = float3(0, 0, 1); +ray.tMin = 0; +ray.tMax = 1000.0f; +``` +The `tMin` and `tMax` fields define the segment of the ray to be tested against the acceleration structure's primitives. +In mathematical terms, the ray consists of all the points defined as `P = ray.origin + t * ray.direction` where `ray.tMin ≤ t ≤ ray.tMax`. + +## Retrieve the acceleration structure +This is achieved with the following macro: +```HLSL +UnifiedRT::RayTracingAccelStruct accelStruct = UNIFIED_RT_GET_ACCEL_STRUCT(_YourAccelStruct); +``` + +## Trace the ray +Invoke one of the following functions that perform ray tracing: [`TraceRayClosestHit`](shader-code-reference.md#function-tracerayclosesthit) or [`TraceRayAnyHit`](shader-code-reference.md#function-tracerayanyhit). +```HLSL +UnifiedRT::Hit hitResult = UnifiedRT::TraceRayClosestHit(dispatchInfo, accelStruct, 0xFFFFFFFF, ray, 0); +``` +The returned [`Hit`](shader-code-reference.md#struct-hit) structure provides geometry information about the found intersection such as the instance ID or the triangle index. +Use `hitResult.IsValid()` to check whether a hit has been found. + +## Full shader code example +Here is a complete example of a unified ray tracing shader: +```HLSL +// Include file for the UnifiedRayTracing API functions +#include "Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/TraceRayAndQueryHit.hlsl" + +// Use this macro to declare the acceleration structure binding +UNIFIED_RT_DECLARE_ACCEL_STRUCT(_AccelStruct); + +void RayGenExecute(UnifiedRT::DispatchInfo dispatchInfo) +{ + UnifiedRT::Ray ray; + ray.origin = 0; + ray.direction = float3(0, 0, 1); + ray.tMin = 0; + ray.tMax = 1000.0f; + UnifiedRT::RayTracingAccelStruct accelStruct = UNIFIED_RT_GET_ACCEL_STRUCT(_AccelStruct); + UnifiedRT::Hit hitResult = UnifiedRT::TraceRayClosestHit(dispatchInfo, accelStruct, 0xFFFFFFFF, ray, 0); + if (hitResult.IsValid()) + { + // Handle found intersection + } +} +``` +When you create a unified ray tracing shader, Unity prefills the shader with a similar code template. + +## Additional resources +- [Create a unified ray tracing shader](create-shader.md) +- [Ray tracing shader code reference](shader-code-reference.md) diff --git a/Packages/com.unity.render-pipelines.core/Editor/Analytics/VolumeProfileUsageAnalytic.cs b/Packages/com.unity.render-pipelines.core/Editor/Analytics/VolumeProfileUsageAnalytic.cs index b55e3230a6d..7b6e61b8775 100644 --- a/Packages/com.unity.render-pipelines.core/Editor/Analytics/VolumeProfileUsageAnalytic.cs +++ b/Packages/com.unity.render-pipelines.core/Editor/Analytics/VolumeProfileUsageAnalytic.cs @@ -19,7 +19,7 @@ public Analytic(Volume volume, VolumeProfile volumeProfile) { data.volume_name = Hash128.Compute(volume.name).ToString(); data.scene_name = EditorSceneManager.GetActiveScene().GetGUID(); - data.volume_profile_asset_guid = AssetDatabase.AssetPathToGUID(AssetDatabase.GetAssetPath(volumeProfile.GetInstanceID())); + data.volume_profile_asset_guid = AssetDatabase.AssetPathToGUID(AssetDatabase.GetAssetPath(volumeProfile.GetEntityId())); m_Data = data; } } diff --git a/Packages/com.unity.render-pipelines.core/Editor/BuildProcessors/CoreBuildData.cs b/Packages/com.unity.render-pipelines.core/Editor/BuildProcessors/CoreBuildData.cs index 08e01d12352..a6455d25afb 100644 --- a/Packages/com.unity.render-pipelines.core/Editor/BuildProcessors/CoreBuildData.cs +++ b/Packages/com.unity.render-pipelines.core/Editor/BuildProcessors/CoreBuildData.cs @@ -19,11 +19,6 @@ public class CoreBuildData : IDisposable /// public static CoreBuildData instance => m_Instance ??= CreateInstance(); - /// - /// Returns if the build is done for debug - /// - public bool isDevelopmentBuild { get; set; } - /// /// If the target build has an SRP configured /// @@ -44,32 +39,24 @@ public class CoreBuildData : IDisposable internal bool pipelineSupportGPUResidentDrawer { get; private set; } = false; internal bool playerNeedGPUResidentDrawer { get; private set; } = false; - /// - /// Initializes a new instance of the class for the core library. - /// This constructor may also be invoked when building Asset Bundles. - /// - /// The target platform for the build (e.g., Standalone, iOS, Android). - /// Indicates whether the build is a development build. If true, the build includes debugging and logging features. - public CoreBuildData(BuildTarget buildTarget, bool isDevelopmentBuild) - + private CoreBuildData(BuildTarget buildTarget) { - if (buildTarget.TryGetRenderPipelineAssets(renderPipelineAssets)) - { - buildingPlayerForRenderPipeline = true; + m_Instance = this; + + if (!buildTarget.TryGetRenderPipelineAssets(renderPipelineAssets)) + return; - //We can check only the first as we don't support multiple pipeline type in player - var asset = renderPipelineAssets[0]; - currentRenderPipelineAssetType = asset.GetType(); + buildingPlayerForRenderPipeline = true; - CheckGPUResidentDrawerUsage(); - } + //We can check only the first as we don't support multiple pipeline type in player + var asset = renderPipelineAssets[0]; + currentRenderPipelineAssetType = asset.GetType(); - this.isDevelopmentBuild = isDevelopmentBuild; - m_Instance = this; + CheckGPUResidentDrawerUsage(); } private static CoreBuildData CreateInstance() - => new(EditorUserBuildSettings.activeBuildTarget, Debug.isDebugBuild); + => new(EditorUserBuildSettings.activeBuildTarget); private void CheckGPUResidentDrawerUsage() { diff --git a/Packages/com.unity.render-pipelines.core/Editor/BuildProcessors/CorePreprocessBuild.cs b/Packages/com.unity.render-pipelines.core/Editor/BuildProcessors/CorePreprocessBuild.cs index 54c9eae7730..066461e1dda 100644 --- a/Packages/com.unity.render-pipelines.core/Editor/BuildProcessors/CorePreprocessBuild.cs +++ b/Packages/com.unity.render-pipelines.core/Editor/BuildProcessors/CorePreprocessBuild.cs @@ -3,7 +3,7 @@ namespace UnityEditor.Rendering { - // Make CoreBuildData constructed and keep the instance until the end of build + //Make CoreBuildData constructed and kept till end of build class CorePreprocessBuild : IPreprocessBuildWithReport, IPostprocessBuildWithReport { int IOrderedCallback.callbackOrder => int.MinValue + 50; @@ -13,8 +13,7 @@ class CorePreprocessBuild : IPreprocessBuildWithReport, IPostprocessBuildWithRep void IPreprocessBuildWithReport.OnPreprocessBuild(BuildReport report) { m_BuildData?.Dispose(); - bool isDevelopmentBuild = (report.summary.options & BuildOptions.Development) != 0; - m_BuildData = new CoreBuildData(EditorUserBuildSettings.activeBuildTarget, isDevelopmentBuild); + m_BuildData = CoreBuildData.instance; } void IPostprocessBuildWithReport.OnPostprocessBuild(BuildReport report) diff --git a/Packages/com.unity.render-pipelines.core/Editor/BuildProcessors/SettingsStrippers/RenderingDebuggerRuntimeResourcesStripper.cs b/Packages/com.unity.render-pipelines.core/Editor/BuildProcessors/SettingsStrippers/RenderingDebuggerRuntimeResourcesStripper.cs deleted file mode 100644 index 8d8de53132f..00000000000 --- a/Packages/com.unity.render-pipelines.core/Editor/BuildProcessors/SettingsStrippers/RenderingDebuggerRuntimeResourcesStripper.cs +++ /dev/null @@ -1,17 +0,0 @@ -using UnityEngine.Rendering; - -namespace UnityEditor.Rendering -{ - class RenderingDebuggerRuntimeResourcesStripper : IRenderPipelineGraphicsSettingsStripper - { - public bool active => true; - - public bool CanRemoveSettings(RenderingDebuggerRuntimeResources settings) - { - // When building for any SRP, we assume that we support the Rendering Debugger - // But, if we are building for retail builds, we strip those runtime UI resources from the final player - if (!CoreBuildData.instance.buildingPlayerForRenderPipeline) return true; - return !CoreBuildData.instance.isDevelopmentBuild; - } - } -} diff --git a/Packages/com.unity.render-pipelines.core/Editor/BuildProcessors/SettingsStrippers/RenderingDebuggerRuntimeResourcesStripper.cs.meta b/Packages/com.unity.render-pipelines.core/Editor/BuildProcessors/SettingsStrippers/RenderingDebuggerRuntimeResourcesStripper.cs.meta deleted file mode 100644 index 100a6dca5a2..00000000000 --- a/Packages/com.unity.render-pipelines.core/Editor/BuildProcessors/SettingsStrippers/RenderingDebuggerRuntimeResourcesStripper.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 6e822da6eeb446d6b972b3dd976f906e -timeCreated: 1736862653 \ No newline at end of file diff --git a/Packages/com.unity.render-pipelines.core/Editor/CoreEditorDrawers.cs b/Packages/com.unity.render-pipelines.core/Editor/CoreEditorDrawers.cs index 32535d23643..0f30a3b2286 100644 --- a/Packages/com.unity.render-pipelines.core/Editor/CoreEditorDrawers.cs +++ b/Packages/com.unity.render-pipelines.core/Editor/CoreEditorDrawers.cs @@ -797,7 +797,7 @@ static IDrawer FoldoutGroup(GUIContent title, TEnum mask, ExpandedStateBa /// The content of the foldout header only visible if advanced mode is active and if foldout is expended. /// Drawing options /// A IDrawer object - [Obsolete("Use AdditionalPropertiesFoldoutGroup instead.")] + [Obsolete("Use AdditionalPropertiesFoldoutGroup instead. #from(2021.2)")] public static IDrawer AdvancedFoldoutGroup(GUIContent foldoutTitle, TEnum foldoutMask, ExpandedState foldoutState, Enabler isAdvanced, SwitchEnabler switchAdvanced, IDrawer normalContent, IDrawer advancedContent, FoldoutOption options = FoldoutOption.Indent) where TEnum : struct, IConvertible { return AdvancedFoldoutGroup(foldoutTitle, foldoutMask, foldoutState, isAdvanced, switchAdvanced, normalContent.Draw, advancedContent.Draw, options); @@ -815,7 +815,7 @@ public static IDrawer AdvancedFoldoutGroup(GUIContent foldoutTitl /// The content of the foldout header only visible if advanced mode is active and if foldout is expended. /// Drawing options /// A IDrawer object - [Obsolete("Use AdditionalPropertiesFoldoutGroup instead.")] + [Obsolete("Use AdditionalPropertiesFoldoutGroup instead. #from(2021.2)")] public static IDrawer AdvancedFoldoutGroup(GUIContent foldoutTitle, TEnum foldoutMask, ExpandedState foldoutState, Enabler isAdvanced, SwitchEnabler switchAdvanced, ActionDrawer normalContent, IDrawer advancedContent, FoldoutOption options = FoldoutOption.Indent) where TEnum : struct, IConvertible { return AdvancedFoldoutGroup(foldoutTitle, foldoutMask, foldoutState, isAdvanced, switchAdvanced, normalContent, advancedContent.Draw, options); @@ -833,7 +833,7 @@ public static IDrawer AdvancedFoldoutGroup(GUIContent foldoutTitl /// The content of the foldout header only visible if advanced mode is active and if foldout is expended. /// Drawing options /// A IDrawer object - [Obsolete("Use AdditionalPropertiesFoldoutGroup instead.")] + [Obsolete("Use AdditionalPropertiesFoldoutGroup instead. #from(2021.2)")] public static IDrawer AdvancedFoldoutGroup(GUIContent foldoutTitle, TEnum foldoutMask, ExpandedState foldoutState, Enabler isAdvanced, SwitchEnabler switchAdvanced, IDrawer normalContent, ActionDrawer advancedContent, FoldoutOption options = FoldoutOption.Indent) where TEnum : struct, IConvertible { @@ -852,7 +852,7 @@ public static IDrawer AdvancedFoldoutGroup(GUIContent foldoutTitl /// The content of the foldout header only visible if advanced mode is active and if foldout is expended. /// Drawing options /// A IDrawer object - [Obsolete("Use AdditionalPropertiesFoldoutGroup instead.")] + [Obsolete("Use AdditionalPropertiesFoldoutGroup instead. #from(2021.2)")] public static IDrawer AdvancedFoldoutGroup(GUIContent foldoutTitle, TEnum foldoutMask, ExpandedState foldoutState, Enabler isAdvanced, SwitchEnabler switchAdvanced, ActionDrawer normalContent, ActionDrawer advancedContent, FoldoutOption options = FoldoutOption.Indent) where TEnum : struct, IConvertible { return FoldoutGroup(foldoutTitle, foldoutMask, foldoutState, options, null, isAdvanced, switchAdvanced, null, normalContent, diff --git a/Packages/com.unity.render-pipelines.core/Editor/CoreEditorUtils.cs b/Packages/com.unity.render-pipelines.core/Editor/CoreEditorUtils.cs index 0d8a485dd27..a0058864c9e 100644 --- a/Packages/com.unity.render-pipelines.core/Editor/CoreEditorUtils.cs +++ b/Packages/com.unity.render-pipelines.core/Editor/CoreEditorUtils.cs @@ -533,7 +533,7 @@ public static bool DrawHeaderFoldout(Rect backgroundRect, GUIContent title, bool /// [optional] Delegate used to draw the right state of the advanced button. If null, no button drawn. /// [optional] Callback call when advanced button clicked. Should be used to toggle its state. /// return the state of the sub foldout header - [Obsolete("'More Options' versions of DrawSubHeaderFoldout are obsolete. Please use DrawSubHeaderFoldout without 'More Options'")] + [Obsolete("'More Options' versions of DrawSubHeaderFoldout are obsolete. Please use DrawSubHeaderFoldout without 'More Options'. #from(2021.2)")] public static bool DrawSubHeaderFoldout(string title, bool state, bool isBoxed = false, Func hasMoreOptions = null, Action toggleMoreOptions = null) => DrawSubHeaderFoldout(EditorGUIUtility.TrTextContent(title), state, isBoxed); @@ -544,7 +544,7 @@ public static bool DrawSubHeaderFoldout(string title, bool state, bool isBoxed = /// [optional] Delegate used to draw the right state of the advanced button. If null, no button drawn. /// [optional] Callback call when advanced button clicked. Should be used to toggle its state. /// return the state of the foldout header - [Obsolete("'More Options' versions of DrawSubHeaderFoldout are obsolete. Please use DrawSubHeaderFoldout without 'More Options'")] + [Obsolete("'More Options' versions of DrawSubHeaderFoldout are obsolete. Please use DrawSubHeaderFoldout without 'More Options'. #from(2021.2)")] public static bool DrawSubHeaderFoldout(GUIContent title, bool state, bool isBoxed = false, Func hasMoreOptions = null, Action toggleMoreOptions = null) => DrawSubHeaderFoldout(title, state, isBoxed); diff --git a/Packages/com.unity.render-pipelines.core/Editor/Deprecated.cs b/Packages/com.unity.render-pipelines.core/Editor/Deprecated.cs index e2431b6ecaa..9082947c7cb 100644 --- a/Packages/com.unity.render-pipelines.core/Editor/Deprecated.cs +++ b/Packages/com.unity.render-pipelines.core/Editor/Deprecated.cs @@ -10,7 +10,7 @@ namespace UnityEditor.Rendering /// Callback method that will be called when the Global Preferences for Additional Properties is changed /// [AttributeUsage(AttributeTargets.Method, AllowMultiple = false, Inherited = false)] - [Obsolete("This attribute is not handled anymore. Use Advanced Properties. #from(6000.0)", false)] + [Obsolete("This attribute is not handled anymore. Use Advanced Properties. #from(6000.0)")] public sealed class SetAdditionalPropertiesVisibilityAttribute : Attribute { } @@ -69,7 +69,7 @@ public VolumeComponentEditorAttribute(Type componentType) /// Interface that should be used with [ScriptableRenderPipelineExtension(type))] attribute to dispatch ContextualMenu calls on the different SRPs /// /// This must be a component that require AdditionalData in your SRP - [Obsolete("The menu items are handled automatically for components with the AdditionalComponentData attribute. #from(2022.2)", false)] + [Obsolete("The menu items are handled automatically for components with the AdditionalComponentData attribute. #from(2022.2)")] public interface IRemoveAdditionalDataContextualMenu where T : Component { @@ -84,7 +84,7 @@ public interface IRemoveAdditionalDataContextualMenu public static partial class RenderPipelineGlobalSettingsUI { /// A collection of GUIContent for use in the inspector - [Obsolete("Use ShaderStrippingSettings instead. #from(23.2).")] + [Obsolete("Use ShaderStrippingSettings instead. #from(2023.2).")] public static class Styles { /// @@ -119,7 +119,7 @@ public static class Styles /// The serialized global settings /// The owner editor /// Pass another drawer if you want to specify additional shader stripping settings - [Obsolete("Use ShaderStrippingSettings instead. #from(23.2).")] + [Obsolete("Use ShaderStrippingSettings instead. #from(2023.2).")] public static void DrawShaderStrippingSettings(ISerializedRenderPipelineGlobalSettings serialized, Editor owner, CoreEditorDrawer.IDrawer additionalShaderStrippingSettings = null) { CoreEditorUtils.DrawSectionHeader(Styles.shaderStrippingSettingsLabel); @@ -144,7 +144,7 @@ public static void DrawShaderStrippingSettings(ISerializedRenderPipelineGlobalSe /// /// Public interface for handling a serialized object of /// - [Obsolete("Use ShaderStrippingSettings instead. #from(23.2).")] + [Obsolete("Use ShaderStrippingSettings instead. #from(2023.2).")] public interface ISerializedRenderPipelineGlobalSettings { /// @@ -175,7 +175,7 @@ public sealed partial class DefaultVolumeProfileEditor /// /// Editor that displays the content of this class /// VolumeProfile to display - [Obsolete("Use DefaultVolumeProfileEditor(VolumeProfile, SerializedObject) instead. #from(23.3)")] + [Obsolete("Use DefaultVolumeProfileEditor(VolumeProfile, SerializedObject) instead. #from(2023.3)")] public DefaultVolumeProfileEditor(Editor baseEditor, VolumeProfile profile) { m_Profile = profile; @@ -210,7 +210,7 @@ void IRenderPipelineGraphicsSettingsContextMenu.PopulateContextMenu(TS /// Builtin Drawer for Maskfield Debug Items. /// [DebugUIDrawer(typeof(DebugUI.MaskField))] - [Obsolete("DebugUI.MaskField has been deprecated and is not longer supported, please use BitField instead. #from(6000.2)", false)] + [Obsolete("DebugUI.MaskField has been deprecated and is not longer supported, please use BitField instead. #from(6000.2)")] public sealed class DebugUIDrawerMaskField : DebugUIFieldDrawer { /// diff --git a/Packages/com.unity.render-pipelines.core/Editor/EditorWindowWithHelpButton.cs b/Packages/com.unity.render-pipelines.core/Editor/EditorWindowWithHelpButton.cs index f7678de897c..587a160e5d0 100644 --- a/Packages/com.unity.render-pipelines.core/Editor/EditorWindowWithHelpButton.cs +++ b/Packages/com.unity.render-pipelines.core/Editor/EditorWindowWithHelpButton.cs @@ -16,7 +16,7 @@ static EditorWindowWithHelpButton() /// Shows a button with help icon and opens the url defined by /// The rect to show the button - [Obsolete("This method will be removed soon. Please override OnHelpButtonClicked instead. #from(2023.1)", error: false)] + [Obsolete("This method will be removed soon. Please override OnHelpButtonClicked instead. #from(2023.1)")] protected virtual void ShowButton(Rect r) { if (GUI.Button(r, iconHelpGUIContent, CoreEditorStyles.iconHelpStyle)) diff --git a/Packages/com.unity.render-pipelines.core/Editor/HeaderFoldout.cs b/Packages/com.unity.render-pipelines.core/Editor/HeaderFoldout.cs index 73dc932d6f2..432ee229cba 100644 --- a/Packages/com.unity.render-pipelines.core/Editor/HeaderFoldout.cs +++ b/Packages/com.unity.render-pipelines.core/Editor/HeaderFoldout.cs @@ -165,7 +165,7 @@ void HandleDisabling(ChangeEvent evt) } /// UITK component to display header styled foldout. This variant have an enable checkbox. - [Obsolete("Please directly use HeaderFoldout now #from(6000.2) (UnityUpgradable) -> HeaderFoldout", false)] + [Obsolete("Please directly use HeaderFoldout now. #from(6000.2) (UnityUpgradable) -> HeaderFoldout")] public class HeaderToggleFoldout : HeaderFoldout { /// Constructor diff --git a/Packages/com.unity.render-pipelines.core/Editor/Lighting/ISerializedLight.cs b/Packages/com.unity.render-pipelines.core/Editor/Lighting/ISerializedLight.cs index 12813c03abb..5ef9af32253 100644 --- a/Packages/com.unity.render-pipelines.core/Editor/Lighting/ISerializedLight.cs +++ b/Packages/com.unity.render-pipelines.core/Editor/Lighting/ISerializedLight.cs @@ -15,7 +15,7 @@ public interface ISerializedLight SerializedObject serializedAdditionalDataObject { get; } /// Light Intensity Property - [Obsolete("This property has been deprecated. Use ISerializedLight.settings.intensity instead.")] + [Obsolete("This property has been deprecated. Use ISerializedLight.settings.intensity instead. #from(2023.3)")] SerializedProperty intensity { get; } /// Method that updates the of the Light and the Additional Light Data diff --git a/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/DynamicGI/DynamicGISkyOcclusion.urtshader b/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/DynamicGI/DynamicGISkyOcclusion.urtshader index 13b0330dd00..ce153c3c74a 100644 --- a/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/DynamicGI/DynamicGISkyOcclusion.urtshader +++ b/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/DynamicGI/DynamicGISkyOcclusion.urtshader @@ -2,13 +2,12 @@ #define UNIFIED_RT_GROUP_SIZE_X 64 #define UNIFIED_RT_GROUP_SIZE_Y 1 -#include "Packages/com.unity.rendering.light-transport/Runtime/UnifiedRayTracing/FetchGeometry.hlsl" -#include "Packages/com.unity.rendering.light-transport/Runtime/UnifiedRayTracing/TraceRay.hlsl" -#include "Packages/com.unity.rendering.light-transport/Runtime/UnifiedRayTracing/Common.hlsl" +#include "Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/FetchGeometry.hlsl" +#include "Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/TraceRayAndQueryHit.hlsl" +#include "Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common.hlsl" -#define QRNG_METHOD_SOBOL -#include "Packages/com.unity.rendering.light-transport/Runtime/Sampling/QuasiRandom.hlsl" -#include "Packages/com.unity.rendering.light-transport/Runtime/Sampling/Common.hlsl" +#include "Packages/com.unity.render-pipelines.core/Runtime/Sampling/QuasiRandom.hlsl" +#include "Packages/com.unity.render-pipelines.core/Runtime/Sampling/Common.hlsl" UNIFIED_RT_DECLARE_ACCEL_STRUCT(_AccelStruct); @@ -32,7 +31,7 @@ void RayGenExecute(UnifiedRT::DispatchInfo dispatchInfo) int probeId = dispatchInfo.globalThreadIndex; - QuasiRandomGenerator rngState; + QrngSobol rngState; rngState.Init(uint2((uint)probeId, 0), _SampleId); if (_SampleId==0) diff --git a/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/DynamicGI/DynamicGISkyOcclusion.urtshader.meta b/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/DynamicGI/DynamicGISkyOcclusion.urtshader.meta index 620316a32a5..a7970bc01bd 100644 --- a/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/DynamicGI/DynamicGISkyOcclusion.urtshader.meta +++ b/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/DynamicGI/DynamicGISkyOcclusion.urtshader.meta @@ -7,4 +7,4 @@ ScriptedImporter: userData: assetBundleName: assetBundleVariant: - script: {fileID: 11500000, guid: 6a2e376a7f79aa2439fd62f49ed5e1b6, type: 3} + script: {fileID: 11500000, guid: 42d537a8a4089e448a99fc57a06d74a9, type: 3} diff --git a/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeGIBaking.LightTransport.cs b/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeGIBaking.LightTransport.cs index 46df8365cf4..73f82a1d7da 100644 --- a/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeGIBaking.LightTransport.cs +++ b/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeGIBaking.LightTransport.cs @@ -663,7 +663,7 @@ struct APVRTContext static IRayTracingShader m_ShaderSO = null; static IRayTracingShader m_ShaderRL = null; - const string k_PackageLightTransport = "Packages/com.unity.rendering.light-transport"; + const string k_PackageLightTransport = "Packages/com.unity.render-pipelines.core"; internal AccelStructAdapter CreateAccelerationStructure() { @@ -760,7 +760,7 @@ public void BindSamplingTextures(CommandBuffer cmd) m_SamplingResources.Load(); } - SamplingResources.BindSobolBlueNoiseTextures(cmd, m_SamplingResources); + SamplingResources.Bind(cmd, m_SamplingResources); } public bool TryGetMeshForAccelerationStructure(Renderer renderer, out Mesh mesh) @@ -867,7 +867,7 @@ internal static void BakeAdjustmentVolume(ProbeVolumeBakingSet bakingSet, ProbeA bakingSet.useRenderingLayers = bakingSet.bakedMaskCount == 1 ? false : true; m_BakingSet = bakingSet; - m_BakingBatch = new BakingBatch(cellCount); + m_BakingBatch = new BakingBatch(cellCount, ProbeReferenceVolume.instance); m_ProfileInfo = new ProbeVolumeProfileInfo(); ModifyProfileFromLoadedData(m_BakingSet); m_CellPosToIndex.Clear(); diff --git a/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeGIBaking.Placement.cs b/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeGIBaking.Placement.cs index 112732aac4c..3c92c237838 100644 --- a/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeGIBaking.Placement.cs +++ b/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeGIBaking.Placement.cs @@ -56,7 +56,7 @@ static void FindWorldBounds() ProbeReferenceVolume.instance.globalBounds = globalBounds; } - static List GetPerSceneDataList() + internal static List GetPerSceneDataList() { var fullPerSceneDataList = ProbeReferenceVolume.instance.perSceneDataList; if (!isBakingSceneSubset) @@ -127,17 +127,19 @@ static internal bool CanFreezePlacement() return true; } - static NativeList RunPlacement(ref bool canceledByUser) + static NativeList RunPlacement(ProbeVolumeProfileInfo profileInfo, ProbeReferenceVolume refVolume, ref bool canceledByUser) { + Debug.Assert(profileInfo != null); + // Overwrite loaded settings with data from profile. Note that the m_BakingSet.profile is already patched up if isFreezingPlacement - float prevBrickSize = ProbeReferenceVolume.instance.MinBrickSize(); - int prevMaxSubdiv = ProbeReferenceVolume.instance.GetMaxSubdivision(); - Vector3 prevOffset = ProbeReferenceVolume.instance.ProbeOffset(); - ProbeReferenceVolume.instance.SetSubdivisionDimensions(m_ProfileInfo.minBrickSize, m_ProfileInfo.maxSubdivision, m_ProfileInfo.probeOffset); + float prevBrickSize = refVolume.MinBrickSize(); + int prevMaxSubdiv = refVolume.GetMaxSubdivision(); + Vector3 prevOffset = refVolume.ProbeOffset(); + refVolume.SetSubdivisionDimensions(profileInfo.minBrickSize, profileInfo.maxSubdivision, profileInfo.probeOffset); // All probes need to be baked only once for the whole batch and not once per cell // The reason is that the baker is not deterministic so the same probe position baked in two different cells may have different values causing seams artefacts. - m_BakingBatch = new BakingBatch(cellCount); + m_BakingBatch = new BakingBatch(cellCount, refVolume); // Run subdivision ProbeSubdivisionResult result; @@ -153,18 +155,20 @@ static NativeList RunPlacement(ref bool canceledByUser) positions = ApplySubdivisionResults(result, ref canceledByUser); // Restore loaded asset settings - ProbeReferenceVolume.instance.SetSubdivisionDimensions(prevBrickSize, prevMaxSubdiv, prevOffset); + refVolume.SetSubdivisionDimensions(prevBrickSize, prevMaxSubdiv, prevOffset); return positions; } static ProbeSubdivisionResult GetWorldSubdivision(ref bool canceledByUser) { + var perSceneDataList = GetPerSceneDataList(); + if (isFreezingPlacement) - return GetBricksFromLoaded(); + return GetBricksFromLoaded(perSceneDataList); - var ctx = PrepareProbeSubdivisionContext(); - return BakeBricks(ctx, m_BakingBatch.contributors, ref canceledByUser); + var ctx = PrepareProbeSubdivisionContext(perSceneDataList); + return BakeBricks(ctx, m_BakingBatch.contributors, showProgress: true, ref canceledByUser); } static NativeList ApplySubdivisionResults(ProbeSubdivisionResult results, ref bool canceledByUser) @@ -236,11 +240,17 @@ private static void DeduplicateProbePositions(in Vector3[] probePositions, in in } } - static ProbeSubdivisionResult GetBricksFromLoaded() + static ProbeSubdivisionResult GetBricksFromLoaded(List dataList) { - var dataList = GetPerSceneDataList(); var result = new ProbeSubdivisionResult(); + // We read bricks from the asset rather than using the currently loaded cells. + // This is because not all bricks from the previous bake are guaranteed to be currently loaded, + // we may for example have hit the max brick count given the selected memory budget. + ProbeVolumeStreamableAsset bricksDataAsset = m_BakingSet.cellBricksDataAsset; + bricksDataAsset.EnsureAssetLoaded(); + using NativeArray previousBricks = bricksDataAsset.asset.GetData(); + foreach (var data in dataList) { var cellSize = m_ProfileInfo.minDistanceBetweenProbes * 3.0f * m_ProfileInfo.cellSizeInBricks; @@ -252,7 +262,6 @@ static ProbeSubdivisionResult GetBricksFromLoaded() foreach (var cellIndex in cells) { var cellDesc = m_BakingSet.GetCellDesc(cellIndex); - var cellData = m_BakingSet.GetCellData(cellIndex); var cellPos = cellDesc.position; if (!result.scenesPerCells.ContainsKey(cellPos)) @@ -260,7 +269,13 @@ static ProbeSubdivisionResult GetBricksFromLoaded() result.scenesPerCells[cellPos] = new HashSet(); var center = new Vector3((cellPos.x + 0.5f) * cellSize, (cellPos.y + 0.5f) * cellSize, (cellPos.z + 0.5f) * cellSize); - result.cells.Add((cellPos, new Bounds(center, cellDimensions), cellData.bricks.ToArray())); + + var cellStreamingDesc = bricksDataAsset.streamableCellDescs[cellIndex]; + int bricksOffset = cellStreamingDesc.offset / bricksDataAsset.elementSize; + int bricksCount = Mathf.Min(cellStreamingDesc.elementCount, cellDesc.bricksCount); + Brick[] bricks = previousBricks.GetSubArray(bricksOffset, bricksCount).ToArray(); + + result.cells.Add((cellPos, new Bounds(center, cellDimensions), bricks)); } result.scenesPerCells[cellPos].Add(data.sceneGUID); } @@ -269,17 +284,14 @@ static ProbeSubdivisionResult GetBricksFromLoaded() return result; } - static internal ProbeSubdivisionContext PrepareProbeSubdivisionContext(bool liveContext = false) + static internal ProbeSubdivisionContext PrepareProbeSubdivisionContext(List perSceneDataList, bool liveContext = false) { - ProbeSubdivisionContext ctx = new ProbeSubdivisionContext(); - // Prepare all the information in the scene for baking GI. Vector3 refVolOrigin = Vector3.zero; // TODO: This will need to be center of the world bounds. - var perSceneDataList = GetPerSceneDataList(); if (m_BakingSet == null) { - if (perSceneDataList.Count == 0) return ctx; + if (perSceneDataList.Count == 0) return new ProbeSubdivisionContext(); SetBakingContext(perSceneDataList); } @@ -287,11 +299,12 @@ static internal ProbeSubdivisionContext PrepareProbeSubdivisionContext(bool live if (liveContext || m_ProfileInfo == null) profileInfo = GetProfileInfoFromBakingSet(m_BakingSet); + ProbeSubdivisionContext ctx = new ProbeSubdivisionContext(); ctx.Initialize(m_BakingSet, profileInfo, refVolOrigin); return ctx; } - static internal ProbeSubdivisionResult BakeBricks(ProbeSubdivisionContext ctx, in GIContributors contributors, ref bool canceledByUser) + static internal ProbeSubdivisionResult BakeBricks(ProbeSubdivisionContext ctx, in GIContributors contributors, bool showProgress, ref bool canceledByUser) { var result = new ProbeSubdivisionResult(); @@ -306,7 +319,7 @@ static internal ProbeSubdivisionResult BakeBricks(ProbeSubdivisionContext ctx, i // subdivide all the cells and generate brick positions foreach (var cell in ctx.cells) { - if (cellIdx++ % freq == 0) // Don't refresh progress bar at every iteration because it's slow + if (showProgress && cellIdx++ % freq == 0) // Don't refresh progress bar at every iteration because it's slow { if (EditorUtility.DisplayCancelableProgressBar("Generating Probe Volume Bricks", $"Processing cell {cellIdx} out of {ctx.cells.Count}", Mathf.Lerp(progress0, progress1, cellIdx / (float)ctx.cells.Count))) { diff --git a/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeGIBaking.RenderingLayers.cs b/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeGIBaking.RenderingLayers.cs index ef181385c71..cbfa0cf25f2 100644 --- a/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeGIBaking.RenderingLayers.cs +++ b/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeGIBaking.RenderingLayers.cs @@ -121,14 +121,17 @@ static AccelStructAdapter BuildAccelerationStructure() Array.Fill(matIndices, renderer.component.renderingLayerMask); // repurpose the material id as we don't need it here var perSubMeshMask = new uint[subMeshCount]; Array.Fill(perSubMeshMask, GetInstanceMask(renderer.component.shadowCastingMode)); - accelStruct.AddInstance(renderer.component.GetInstanceID(), renderer.component, perSubMeshMask, matIndices, 1); + Span perSubMeshOpaqueness = stackalloc bool[subMeshCount]; + perSubMeshOpaqueness.Fill(true); + + accelStruct.AddInstance(renderer.component.GetInstanceID(), renderer.component, perSubMeshMask, matIndices, perSubMeshOpaqueness, 1); } foreach (var terrain in contributors.terrains) { uint mask = GetInstanceMask(terrain.component.shadowCastingMode); uint materialID = terrain.component.renderingLayerMask; // repurpose the material id as we don't need it here - accelStruct.AddInstance(terrain.component.GetInstanceID(), terrain.component, new uint[1] { mask }, new uint[1] { materialID }, 1); + accelStruct.AddInstance(terrain.component.GetInstanceID(), terrain.component, new uint[1] { mask }, new uint[1] { materialID }, new bool[1] { true }, 1); } return accelStruct; diff --git a/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeGIBaking.SkyOcclusion.cs b/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeGIBaking.SkyOcclusion.cs index d9f02557df0..44f6a5b2615 100644 --- a/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeGIBaking.SkyOcclusion.cs +++ b/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeGIBaking.SkyOcclusion.cs @@ -217,14 +217,16 @@ static AccelStructAdapter BuildAccelerationStructure() var matIndices = GetMaterialIndices(renderer.component); var perSubMeshMask = new uint[subMeshCount]; Array.Fill(perSubMeshMask, GetInstanceMask(renderer.component.shadowCastingMode)); + Span perSubMeshOpaqueness = stackalloc bool[subMeshCount]; + perSubMeshOpaqueness.Fill(true); - accelStruct.AddInstance(renderer.component.GetInstanceID(), renderer.component, perSubMeshMask, matIndices, 1); + accelStruct.AddInstance(renderer.component.GetInstanceID(), renderer.component, perSubMeshMask, matIndices, perSubMeshOpaqueness, 1); } foreach (var terrain in contributors.terrains) { uint mask = GetInstanceMask(terrain.component.shadowCastingMode); - accelStruct.AddInstance(terrain.component.GetInstanceID(), terrain.component, new uint[1] { mask }, new uint[1] { 0 }, 1); + accelStruct.AddInstance(terrain.component.GetInstanceID(), terrain.component, new uint[1] { mask }, new uint[1] { 0 }, new bool[1] { true }, 1); } return accelStruct; diff --git a/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeGIBaking.VirtualOffset.cs b/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeGIBaking.VirtualOffset.cs index 9f9204c4e78..7718fa3b90a 100644 --- a/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeGIBaking.VirtualOffset.cs +++ b/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeGIBaking.VirtualOffset.cs @@ -143,8 +143,10 @@ static AccelStructAdapter BuildAccelerationStructure(int mask) int subMeshCount = mesh.subMeshCount; var maskAndMatDummy = new uint[subMeshCount]; System.Array.Fill(maskAndMatDummy, 0xFFFFFFFF); + Span perSubMeshOpaqueness = stackalloc bool[subMeshCount]; + perSubMeshOpaqueness.Fill(true); - accelStruct.AddInstance(renderer.component.GetInstanceID(), renderer.component, maskAndMatDummy, maskAndMatDummy, 1); + accelStruct.AddInstance(renderer.component.GetInstanceID(), renderer.component, maskAndMatDummy, maskAndMatDummy, perSubMeshOpaqueness, 1); } foreach (var terrain in contributors.terrains) @@ -153,7 +155,7 @@ static AccelStructAdapter BuildAccelerationStructure(int mask) if ((layerMask & mask) == 0) continue; - accelStruct.AddInstance(terrain.component.GetInstanceID(), terrain.component, new uint[1] { 0xFFFFFFFF }, new uint[1] { 0xFFFFFFFF }, 1); + accelStruct.AddInstance(terrain.component.GetInstanceID(), terrain.component, new uint[1] { 0xFFFFFFFF }, new uint[1] { 0xFFFFFFFF }, new bool[1] { true }, 1); } return accelStruct; @@ -270,7 +272,7 @@ static internal void RecomputeVOForDebugOnly() CellCountInDirections(out minCellPosition, out maxCellPosition, prv.MaxBrickSize(), prv.ProbeOffset()); cellCount = maxCellPosition + Vector3Int.one - minCellPosition; - m_BakingBatch = new BakingBatch(cellCount); + m_BakingBatch = new BakingBatch(cellCount, ProbeReferenceVolume.instance); m_ProfileInfo = new ProbeVolumeProfileInfo(); ModifyProfileFromLoadedData(m_BakingSet); diff --git a/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeGIBaking.cs b/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeGIBaking.cs index de20efb7d8e..52ee43b5ce1 100644 --- a/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeGIBaking.cs +++ b/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeGIBaking.cs @@ -301,11 +301,11 @@ public GIContributors contributors private BakingBatch() { } - public BakingBatch(Vector3Int cellCount) + public BakingBatch(Vector3Int cellCount, ProbeReferenceVolume refVolume) { - maxBrickCount = cellCount * ProbeReferenceVolume.CellSize(ProbeReferenceVolume.instance.GetMaxSubdivision()); - inverseScale = ProbeBrickPool.kBrickCellCount / ProbeReferenceVolume.instance.MinBrickSize(); - offset = ProbeReferenceVolume.instance.ProbeOffset(); + maxBrickCount = cellCount * ProbeReferenceVolume.CellSize(refVolume.GetMaxSubdivision()); + inverseScale = ProbeBrickPool.kBrickCellCount / refVolume.MinBrickSize(); + offset = refVolume.ProbeOffset(); } public int GetProbePositionHash(Vector3 position) @@ -927,7 +927,7 @@ internal static bool PrepareBaking() bool canceledByUser = false; // Note: this could be executed in the baking delegate to be non blocking using (new BakingSetupProfiling(BakingSetupProfiling.Stages.PlaceProbes)) - positions = RunPlacement(ref canceledByUser); + positions = RunPlacement(m_ProfileInfo, ProbeReferenceVolume.instance, ref canceledByUser); if (positions.Length == 0 || canceledByUser) { diff --git a/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbePlacement.cs b/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbePlacement.cs index f5064dfad62..def047fed8e 100644 --- a/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbePlacement.cs +++ b/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbePlacement.cs @@ -1,7 +1,6 @@ #if UNITY_EDITOR using System.Collections.Generic; -using UnityEditor; using System.Linq; using UnityEngine.Profiling; using System; @@ -18,6 +17,13 @@ class ProbePlacement // The UAV binding index 4 isn't in use when we bake the probes and doesn't crash unity. const int k_RandomWriteBindingIndex = 4; + enum VoxelizeShaderPassIndex + { + Terrain = 0, + NonInstancedMesh = 1, + InstancedMesh = 2 + } + [GenerateHLSL(needAccessors = false)] struct GPUProbeVolumeOBB { @@ -67,7 +73,7 @@ public GPUSubdivisionContext(int probeVolumeCount, ProbeVolumeProfileInfo profil volumeDepth = sceneSDFSize, enableRandomWrite = true, dimension = TextureDimension.Tex3D, - graphicsFormat = Experimental.Rendering.GraphicsFormat.R16G16B16A16_SFloat, // we need 16 bit precision for the distance field + graphicsFormat = Experimental.Rendering.GraphicsFormat.R16G16B16A16_SFloat, // we need 16 bit precision for the distance field. msaaSamples = 1, }; @@ -123,9 +129,14 @@ public void Dispose() static readonly int _OutputSize = Shader.PropertyToID("_OutputSize"); static readonly int _VolumeWorldOffset = Shader.PropertyToID("_VolumeWorldOffset"); static readonly int _VolumeSize = Shader.PropertyToID("_VolumeSize"); - static readonly int _AxisSwizzle = Shader.PropertyToID("_AxisSwizzle"); - static readonly int _TreePrototypeTransform = Shader.PropertyToID("_TreePrototypeTransform"); - static readonly int _TreeInstanceToWorld = Shader.PropertyToID("_TreeInstanceToWorld"); + static readonly int _AxisIndex = Shader.PropertyToID("_AxisIndex"); + static readonly int _IndexBufferOffset = Shader.PropertyToID("_IndexBufferOffset"); + static readonly int _VertexBufferOffset = Shader.PropertyToID("_VertexBufferOffset"); + static readonly int _IndexBufferTopology = Shader.PropertyToID("_IndexBufferTopology"); + static readonly int _IndexBufferBitCount = Shader.PropertyToID("_IndexBufferBitCount"); + static readonly int _VertexBufferPositionOffset = Shader.PropertyToID("_VertexBufferPositionOffset"); + static readonly int _VertexBufferStride = Shader.PropertyToID("_VertexBufferStride"); + static readonly int _InstanceToWorld = Shader.PropertyToID("_InstanceToWorld"); static readonly int _Size = Shader.PropertyToID("_Size"); static readonly int _Input = Shader.PropertyToID("_Input"); static readonly int _Offset = Shader.PropertyToID("_Offset"); @@ -236,7 +247,7 @@ public static Brick[] SubdivideCell(Vector3Int cellPosition, Bounds cellBounds, bool hasMaxSizedBricks = false; var subBrickSet = new HashSet(); - SubdivideSubCell(subVolume.bounds, subdivisionCtx, ctx, filteredContributors, overlappingProbeVolumes, subBrickSet); + SubdivideSubCell(subVolume.bounds, ctx, filteredContributors, overlappingProbeVolumes, subdivisionCtx.profile.minBrickSize, subdivisionCtx.profile.probeOffset, subBrickSet); if (subBrickSet.Count == 0) continue; @@ -300,7 +311,7 @@ public static Brick[] SubdivideCell(Vector3Int cellPosition, Bounds cellBounds, } else { - SubdivideSubCell(cellBounds, subdivisionCtx, ctx, contributors, probeVolumes, brickSet); + SubdivideSubCell(cellBounds, ctx, contributors, probeVolumes, subdivisionCtx.profile.minBrickSize, subdivisionCtx.profile.probeOffset, brickSet); } finalBricks = brickSet.ToArray(); @@ -328,9 +339,11 @@ public static Brick[] SubdivideCell(Vector3Int cellPosition, Bounds cellBounds, return finalBricks; } - static void SubdivideSubCell(Bounds cellAABB, ProbeSubdivisionContext subdivisionCtx, + static void SubdivideSubCell(Bounds cellAABB, GPUSubdivisionContext ctx, GIContributors contributors, List<(ProbeVolume component, ProbeReferenceVolume.Volume volume, Bounds bounds)> probeVolumes, + float minBrickSize, + Vector3 cellOffset, HashSet brickSet) { var firstLayerMask = probeVolumes.First().component.objectLayerMask; @@ -351,20 +364,18 @@ static void SubdivideSubCell(Bounds cellAABB, ProbeSubdivisionContext subdivisio // re-filter contributors locally for these layers: var contributorsPerLayer = contributors.FilterLayerMaskOnly(probeVolumesPerLayer.First().component.objectLayerMask); // Subdivide the cell using a list of probe volumes containing the same layer mask - SubdivideSubCell(cellAABB, subdivisionCtx, ctx, contributorsPerLayer, probeVolumesPerLayer, brickSet); + SubdivideSubCell(cellAABB, ctx, contributorsPerLayer, probeVolumesPerLayer, minBrickSize, cellOffset, brickSet); } return; } - float minBrickSize = subdivisionCtx.profile.minBrickSize; - var cellOffset = subdivisionCtx.profile.probeOffset; - var cmd = CommandBufferPool.Get($"Subdivide (Sub)Cell {cellAABB.center}"); - if (RasterizeGeometry(cmd, cellAABB, ctx, contributors)) + var deferredBufferDisposals = new List(); + if (contributors.Count > 0) { - // Only generate the distance field if there was an object rasterized + VoxelizeGeometry(cmd, cellAABB, ctx.sceneSDF, ctx.dummyRenderTarget, contributors, deferredBufferDisposals); GenerateDistanceField(cmd, ctx.sceneSDF, ctx.sceneSDF2); } else @@ -425,35 +436,114 @@ static void SubdivideSubCell(Bounds cellAABB, ProbeSubdivisionContext subdivisio Graphics.ExecuteCommandBuffer(cmd); cmd.Clear(); CommandBufferPool.Release(cmd); + + foreach (var buf in deferredBufferDisposals) + buf.Dispose(); + // ExternalGPUProfiler.EndGPUCapture(); } - static bool RasterizeGeometry(CommandBuffer cmd, Bounds cellAABB, GPUSubdivisionContext ctx, GIContributors contributors) + static void VoxelizeMesh(Mesh mesh, Matrix4x4 instanceTransform, Matrix4x4[] instanceTransforms, int instanceCount, MaterialPropertyBlock props, List deferredBufferRemovals, CommandBuffer cmd) { + var shaderPassIndex = VoxelizeShaderPassIndex.NonInstancedMesh; + if (instanceTransforms != null) + { + shaderPassIndex = VoxelizeShaderPassIndex.InstancedMesh; + props.SetMatrixArray(_InstanceToWorld, instanceTransforms); + } + + int positionVertexBufferIndex = mesh.GetVertexAttributeStream(VertexAttribute.Position); + int vertexBufferPositionOffset = mesh.GetVertexAttributeOffset(VertexAttribute.Position); + int vertexBufferStride = mesh.GetVertexBufferStride(positionVertexBufferIndex); + + Debug.Assert(positionVertexBufferIndex != -1, "Meshes are expected to have a vertex buffer which contains positions."); + Debug.Assert(vertexBufferPositionOffset != -1, "Meshes are expected to have a vertex buffer which contains positions."); + + var oldIndexBufferTarget = mesh.indexBufferTarget; + var oldVertexBufferTarget = mesh.vertexBufferTarget; + mesh.indexBufferTarget |= GraphicsBuffer.Target.Structured; + mesh.vertexBufferTarget |= GraphicsBuffer.Target.Structured; + + var indexBuffer = mesh.GetIndexBuffer(); + var vertexBuffer = mesh.GetVertexBuffer(positionVertexBufferIndex); + + cmd.SetGlobalBuffer("_IndexBuffer", indexBuffer); + cmd.SetGlobalBuffer("_VertexBuffer", vertexBuffer); + + props.SetInt(_IndexBufferBitCount, mesh.indexFormat == IndexFormat.UInt32 ? 32 : 16); + props.SetInt(_VertexBufferStride, vertexBufferStride); + props.SetInt(_VertexBufferPositionOffset, vertexBufferPositionOffset); + + for (int subMeshIdx = 0; subMeshIdx < mesh.subMeshCount; ++subMeshIdx) + { + var submesh = mesh.GetSubMesh(subMeshIdx); + var topology = submesh.topology; + if (topology is MeshTopology.Triangles or MeshTopology.Quads) + { + int vertexCount, topologyInt; + if (topology == MeshTopology.Triangles) + { + topologyInt = 0; + vertexCount = submesh.indexCount; + } + else + { + topologyInt = 1; + Debug.Assert(submesh.indexCount % 4 == 0); + int quadCount = submesh.indexCount / 4; + const int verticesPerQuad = 6; + vertexCount = quadCount * verticesPerQuad; + } + + props.SetInt(_IndexBufferTopology, topologyInt); + props.SetInt(_IndexBufferOffset, submesh.indexStart); + props.SetInt(_VertexBufferOffset, submesh.baseVertex); + for (int axisIdx = 0; axisIdx < 3; ++axisIdx) + { + props.SetInt(_AxisIndex, axisIdx); + cmd.DrawProcedural(instanceTransform, voxelizeMaterial, (int)shaderPassIndex, MeshTopology.Triangles, vertexCount, instanceCount, props); + } + } + } + + mesh.indexBufferTarget = oldIndexBufferTarget; + mesh.vertexBufferTarget = oldVertexBufferTarget; + + deferredBufferRemovals.Add(indexBuffer); + deferredBufferRemovals.Add(vertexBuffer); + } + + internal static void VoxelizeGeometry(CommandBuffer cmd, + Bounds cellAABB, + RenderTexture output3dTexture, + RenderTexture dummyRenderTarget, + GIContributors contributors, + List deferredBufferRemovals) + { + Debug.Assert(output3dTexture.width == output3dTexture.height); + Debug.Assert(output3dTexture.height == output3dTexture.volumeDepth); + Debug.Assert(output3dTexture.dimension == TextureDimension.Tex3D); + var props = new MaterialPropertyBlock(); - bool hasGeometry = contributors.Count > 0; // Setup voxelize material properties - voxelizeMaterial.SetVector(_OutputSize, new Vector3(ctx.sceneSDF.width, ctx.sceneSDF.height, ctx.sceneSDF.volumeDepth)); + voxelizeMaterial.SetFloat(_OutputSize, output3dTexture.width); voxelizeMaterial.SetVector(_VolumeWorldOffset, cellAABB.center - cellAABB.extents); voxelizeMaterial.SetVector(_VolumeSize, cellAABB.size); - if (hasGeometry) + using (new ProfilingScope(cmd, new ProfilingSampler("Clear"))) { - using (new ProfilingScope(cmd, new ProfilingSampler("Clear"))) - { - cmd.SetComputeTextureParam(subdivideSceneCS, s_ClearKernel, _Output, ctx.sceneSDF); - cmd.SetComputeVectorParam(subdivideSceneCS, _Size, new Vector3(ctx.sceneSDF.width, ctx.sceneSDF.height, ctx.sceneSDF.volumeDepth)); - cmd.SetComputeFloatParam(subdivideSceneCS, _ClearValue, 0); - DispatchCompute(cmd, s_ClearKernel, ctx.sceneSDF.width, ctx.sceneSDF.height, ctx.sceneSDF.volumeDepth); - } + cmd.SetComputeTextureParam(subdivideSceneCS, s_ClearKernel, _Output, output3dTexture); + cmd.SetComputeVectorParam(subdivideSceneCS, _Size, new Vector3(output3dTexture.width, output3dTexture.height, output3dTexture.volumeDepth)); + cmd.SetComputeFloatParam(subdivideSceneCS, _ClearValue, 0); + DispatchCompute(cmd, s_ClearKernel, output3dTexture.width, output3dTexture.height, output3dTexture.volumeDepth); } - cmd.SetRandomWriteTarget(k_RandomWriteBindingIndex, ctx.sceneSDF); + cmd.SetRandomWriteTarget(k_RandomWriteBindingIndex, output3dTexture); // We need to bind at least something for rendering - cmd.SetRenderTarget(ctx.dummyRenderTarget); - cmd.SetViewport(new Rect(0, 0, ctx.dummyRenderTarget.width, ctx.dummyRenderTarget.height)); + cmd.SetRenderTarget(dummyRenderTarget); + cmd.SetViewport(new Rect(0, 0, dummyRenderTarget.width, dummyRenderTarget.height)); if (contributors.renderers.Count > 0) { @@ -468,16 +558,8 @@ static bool RasterizeGeometry(CommandBuffer cmd, Bounds cellAABB, GPUSubdivision continue; if (!renderer.TryGetComponent(out var meshFilter) || meshFilter.sharedMesh == null) continue; - var matrix = renderer.transform.localToWorldMatrix; - for (int submesh = 0; submesh < meshFilter.sharedMesh.subMeshCount; submesh++) - { - props.SetInt(_AxisSwizzle, 0); - cmd.DrawMesh(meshFilter.sharedMesh, matrix, voxelizeMaterial, submesh, shaderPass: 1, props); - props.SetInt(_AxisSwizzle, 1); - cmd.DrawMesh(meshFilter.sharedMesh, matrix, voxelizeMaterial, submesh, shaderPass: 1, props); - props.SetInt(_AxisSwizzle, 2); - cmd.DrawMesh(meshFilter.sharedMesh, matrix, voxelizeMaterial, submesh, shaderPass: 1, props); - } + + VoxelizeMesh(meshFilter.sharedMesh, renderer.transform.localToWorldMatrix, null, 1, props, deferredBufferRemovals, cmd); } } } @@ -490,8 +572,7 @@ static bool RasterizeGeometry(CommandBuffer cmd, Bounds cellAABB, GPUSubdivision { var terrain = kp.component; var terrainData = terrain.terrainData; - // Terrains can't be rotated or scaled - var transform = Matrix4x4.Translate(terrain.GetPosition()); + var transform = Matrix4x4.Translate(terrain.GetPosition()); // Terrains can't be rotated or scaled props.SetTexture("_TerrainHeightmapTexture", terrainData.heightmapTexture); props.SetTexture("_TerrainHolesTexture", terrainData.holesTexture); @@ -499,12 +580,11 @@ static bool RasterizeGeometry(CommandBuffer cmd, Bounds cellAABB, GPUSubdivision props.SetFloat("_TerrainHeightmapResolution", terrainData.heightmapResolution); int terrainTileCount = terrainData.heightmapResolution * terrainData.heightmapResolution; - props.SetInt(_AxisSwizzle, 0); - cmd.DrawProcedural(transform, voxelizeMaterial, shaderPass: 0, MeshTopology.Quads, 4 * terrainTileCount, 1, props); - props.SetInt(_AxisSwizzle, 1); - cmd.DrawProcedural(transform, voxelizeMaterial, shaderPass: 0, MeshTopology.Quads, 4 * terrainTileCount, 1, props); - props.SetInt(_AxisSwizzle, 2); - cmd.DrawProcedural(transform, voxelizeMaterial, shaderPass: 0, MeshTopology.Quads, 4 * terrainTileCount, 1, props); + for (int axisIdx = 0; axisIdx < 3; ++axisIdx) + { + props.SetInt(_AxisIndex, axisIdx); + cmd.DrawProcedural(transform, voxelizeMaterial, (int)VoxelizeShaderPassIndex.Terrain, MeshTopology.Quads, 4 * terrainTileCount, 1, props); + } foreach (var prototype in kp.treePrototypes) { @@ -515,30 +595,17 @@ static bool RasterizeGeometry(CommandBuffer cmd, Bounds cellAABB, GPUSubdivision var mesh = meshFilter.sharedMesh; // Max buffer size is 64KB, matrix is 64B, so limit to 1000 trees per prototype per cell, which should be fine - var matrices = new Matrix4x4[Mathf.Min(prototype.instances.Count, 1000)]; - for (int i = 0; i < matrices.Length; i++) - matrices[i] = prototype.instances[i].transform; - - props.SetMatrix(_TreePrototypeTransform, prototype.transform); - props.SetMatrixArray(_TreeInstanceToWorld, matrices); + var treeMatrices = new Matrix4x4[Mathf.Min(prototype.instances.Count, 1000)]; + for (int i = 0; i < treeMatrices.Length; i++) + treeMatrices[i] = prototype.instances[i].transform; - for (int submesh = 0; submesh < mesh.subMeshCount; submesh++) - { - props.SetInt(_AxisSwizzle, 0); - cmd.DrawMeshInstancedProcedural(mesh, submesh, voxelizeMaterial, 2, matrices.Length, props); - props.SetInt(_AxisSwizzle, 1); - cmd.DrawMeshInstancedProcedural(mesh, submesh, voxelizeMaterial, 2, matrices.Length, props); - props.SetInt(_AxisSwizzle, 2); - cmd.DrawMeshInstancedProcedural(mesh, submesh, voxelizeMaterial, 2, matrices.Length, props); - } + VoxelizeMesh(mesh, prototype.transform, treeMatrices, treeMatrices.Length, props, deferredBufferRemovals, cmd); } } } } cmd.ClearRandomWriteTargets(); - - return hasGeometry; } static void DispatchCompute(CommandBuffer cmd, int kernel, int width, int height, int depth = 1) diff --git a/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeSubdivisionContext.cs b/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeSubdivisionContext.cs index cc2880ee44b..cd804267330 100644 --- a/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeSubdivisionContext.cs +++ b/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeSubdivisionContext.cs @@ -53,7 +53,7 @@ static void UpdateRealtimeSubdivisionDebug() if (s_CurrentSubdivision == null) { // Start a new Subdivision - s_CurrentSubdivision = Subdivide(); + s_CurrentSubdivision = Subdivide(showProgress: false); } // Step the subdivision with the amount of cell per frame in debug menu @@ -71,9 +71,10 @@ static void UpdateRealtimeSubdivisionDebug() } } - IEnumerator Subdivide() + IEnumerator Subdivide(bool showProgress) { - var ctx = AdaptiveProbeVolumes.PrepareProbeSubdivisionContext(true); + var perSceneDataList = AdaptiveProbeVolumes.GetPerSceneDataList(); + var ctx = AdaptiveProbeVolumes.PrepareProbeSubdivisionContext(perSceneDataList, true); var contributors = GIContributors.Find(GIContributors.ContributorFilter.All); // Cull all the cells that are not visible (we don't need them for realtime debug) @@ -115,7 +116,7 @@ IEnumerator Subdivide() ctx.cells.Add(cell); bool canceledByUser = false; - var result = AdaptiveProbeVolumes.BakeBricks(ctx, contributors, ref canceledByUser); + var result = AdaptiveProbeVolumes.BakeBricks(ctx, contributors, showProgress, ref canceledByUser); if (result.cells.Count != 0) ProbeReferenceVolume.instance.realtimeSubdivisionInfo[cell.bounds] = result.cells[0].bricks; diff --git a/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/RenderingLayerMask/TraceRenderingLayerMask.urtshader b/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/RenderingLayerMask/TraceRenderingLayerMask.urtshader index d3814c4c0d6..f8ff98e3171 100644 --- a/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/RenderingLayerMask/TraceRenderingLayerMask.urtshader +++ b/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/RenderingLayerMask/TraceRenderingLayerMask.urtshader @@ -4,14 +4,12 @@ #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" #include "Packages/com.unity.render-pipelines.core/Runtime/Lighting/ProbeVolume/ShaderVariablesProbeVolumes.cs.hlsl" -#include "Packages/com.unity.rendering.light-transport/Runtime/UnifiedRayTracing/FetchGeometry.hlsl" -#include "Packages/com.unity.rendering.light-transport/Runtime/UnifiedRayTracing/TraceRay.hlsl" +#include "Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/FetchGeometry.hlsl" +#include "Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/TraceRayAndQueryHit.hlsl" -#define QRNG_METHOD_SOBOL #define SAMPLE_COUNT 32 -#define RAND_SAMPLES_PER_BOUNCE 2 -#include "Packages/com.unity.rendering.light-transport/Runtime/Sampling/QuasiRandom.hlsl" -#include "Packages/com.unity.rendering.light-transport/Runtime/Sampling/Common.hlsl" +#include "Packages/com.unity.render-pipelines.core/Runtime/Sampling/QuasiRandom.hlsl" +#include "Packages/com.unity.render-pipelines.core/Runtime/Sampling/Common.hlsl" UNIFIED_RT_DECLARE_ACCEL_STRUCT(_AccelStruct); @@ -27,7 +25,7 @@ void RayGenExecute(UnifiedRT::DispatchInfo dispatchInfo) ray.tMax = FLT_MAX; ray.tMin = 0.0f; - QuasiRandomGenerator rngState; + QrngSobol rngState; rngState.Init(0, SAMPLE_COUNT); int4 hitCount = 0; diff --git a/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/RenderingLayerMask/TraceRenderingLayerMask.urtshader.meta b/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/RenderingLayerMask/TraceRenderingLayerMask.urtshader.meta index f9e2ab2ad19..dd81a66f9e9 100644 --- a/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/RenderingLayerMask/TraceRenderingLayerMask.urtshader.meta +++ b/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/RenderingLayerMask/TraceRenderingLayerMask.urtshader.meta @@ -7,4 +7,4 @@ ScriptedImporter: userData: assetBundleName: assetBundleVariant: - script: {fileID: 11500000, guid: 6a2e376a7f79aa2439fd62f49ed5e1b6, type: 3} + script: {fileID: 11500000, guid: 42d537a8a4089e448a99fc57a06d74a9, type: 3} diff --git a/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/VirtualOffset/TraceVirtualOffset.urtshader b/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/VirtualOffset/TraceVirtualOffset.urtshader index f15265fdf19..0eff6ea7854 100644 --- a/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/VirtualOffset/TraceVirtualOffset.urtshader +++ b/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/VirtualOffset/TraceVirtualOffset.urtshader @@ -5,8 +5,8 @@ #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Sampling/Sampling.hlsl" -#include "Packages/com.unity.rendering.light-transport/Runtime/UnifiedRayTracing/FetchGeometry.hlsl" -#include "Packages/com.unity.rendering.light-transport/Runtime/UnifiedRayTracing/TraceRay.hlsl" +#include "Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/FetchGeometry.hlsl" +#include "Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/TraceRayAndQueryHit.hlsl" #define DISTANCE_THRESHOLD 5e-5f diff --git a/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/VirtualOffset/TraceVirtualOffset.urtshader.meta b/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/VirtualOffset/TraceVirtualOffset.urtshader.meta index 1fb109446fd..f497ce4df76 100644 --- a/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/VirtualOffset/TraceVirtualOffset.urtshader.meta +++ b/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/VirtualOffset/TraceVirtualOffset.urtshader.meta @@ -7,4 +7,4 @@ ScriptedImporter: userData: assetBundleName: assetBundleVariant: - script: {fileID: 11500000, guid: 6a2e376a7f79aa2439fd62f49ed5e1b6, type: 3} + script: {fileID: 11500000, guid: 42d537a8a4089e448a99fc57a06d74a9, type: 3} diff --git a/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/VoxelizeScene.hlsl b/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/VoxelizeScene.hlsl index b64a75118c6..94215830b0d 100644 --- a/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/VoxelizeScene.hlsl +++ b/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/VoxelizeScene.hlsl @@ -1,34 +1,26 @@ #ifndef VOXELIZE_SCENE -# define VOXELIZE_SCENE +#define VOXELIZE_SCENE #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" float4x4 unity_ObjectToWorld; -#ifdef PROCEDURAL_INSTANCING_ON -// We have to use procedural instancing because we don't have data outside transform matrix -// But because of that a lot of useful macros are not defined, so force defining them here -#undef PROCEDURAL_INSTANCING_ON -#define INSTANCING_ON -#define UNITY_DONT_INSTANCE_OBJECT_MATRICES -#endif - -#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/UnityInstancing.hlsl" - -#ifdef INSTANCING_ON -CBUFFER_START(UnityInstancing_PerTree) - float4x4 _TreeInstanceToWorld[1000]; // Max buffer size is 64KB, matrix is 64B +#ifdef USE_INSTANCE_TRANSFORMS +CBUFFER_START(InstanceData) + float4x4 _InstanceToWorld[1000]; // Max buffer size is 64KB, matrix is 64B CBUFFER_END - -#undef unity_ObjectToWorld -#define unity_ObjectToWorld _TreeInstanceToWorld[unity_InstanceID] #endif RWTexture3D _Output : register(u4); -float3 _OutputSize; +float _OutputSize; float3 _VolumeWorldOffset; float3 _VolumeSize; -uint _AxisSwizzle; -float4x4 _TreePrototypeTransform; +uint _AxisIndex; +uint _IndexBufferOffset; +uint _IndexBufferTopology; // 0 is triangle topology and 1 is quad topology. +uint _VertexBufferOffset; + +#define INDEX_BUFFER_TOPOLOGY_TRIANGLES 0 +#define INDEX_BUFFER_TOPOLOGY_QUADS 1 struct VertexInput { @@ -51,84 +43,6 @@ struct GeometryToFragment nointerpolation float2 minMaxZ : TEXCOORD3; }; -float3 VertexToCellPos(float4 vertex) -{ -#ifdef INSTANCING_ON - // For tree instance, first transform vertex with prefab matrix - vertex = mul(_TreePrototypeTransform, vertex); -#endif - return mul(unity_ObjectToWorld, vertex).xyz; -} - -VertexToGeometry ConservativeVertex(VertexInput input) -{ - UNITY_SETUP_INSTANCE_ID(input); - VertexToGeometry o; - - float3 cellPos = VertexToCellPos(input.vertex); - cellPos -= _VolumeWorldOffset; - o.cellPos01 = (cellPos / _VolumeSize); - - float4 p = float4(cellPos, 1); - - switch (_AxisSwizzle) - { - default: - case 0: // top - p.xyz = p.zxy; - break; - case 1: // right - p.xyz = p.yzx; - break; - case 2: // forward - p.xyz = p.xyz; - break; - } - o.vertex = float4(p.xyz / _VolumeSize, 1); - - // trasnform pos from 0 1 to -1 1 - o.vertex.xyz = o.vertex.xyz * 2 - 1; - - return o; -} - -[maxvertexcount(3)] -void ConservativeGeom(triangle VertexToGeometry inputVertex[3], inout TriangleStream triangleStream) -{ - float3 minPos = min(min(inputVertex[0].cellPos01, inputVertex[1].cellPos01), inputVertex[2].cellPos01) - rcp(_OutputSize.x); - float3 maxPos = max(max(inputVertex[0].cellPos01, inputVertex[1].cellPos01), inputVertex[2].cellPos01) + rcp(_OutputSize.x); - - for (int i = 0; i < 3; i++) - { - GeometryToFragment o; - o.vertex = inputVertex[i].vertex; - o.cellPos01 = inputVertex[i].cellPos01; - o.minMaxX = float2(minPos.x, maxPos.x); - o.minMaxY = float2(minPos.y, maxPos.y); - o.minMaxZ = float2(minPos.z, maxPos.z); - triangleStream.Append(o); - } -} - -float4 ConservativeFrag(GeometryToFragment i) : SV_Target -{ - if (i.cellPos01.x < i.minMaxX.x || i.cellPos01.x > i.minMaxX.y) - return 0; - if (i.cellPos01.y < i.minMaxY.x || i.cellPos01.y > i.minMaxY.y) - return 0; - if (i.cellPos01.z < i.minMaxZ.x || i.cellPos01.z > i.minMaxZ.y) - return 0; - - if (any(i.cellPos01 < -EPSILON) || any(i.cellPos01 >= 1 + EPSILON)) - return 0; - - uint3 pos = min(uint3(i.cellPos01 * _OutputSize), _OutputSize); - - _Output[pos] = 1; - - return float4(i.cellPos01, 1); -} - sampler s_point_clamp_sampler; TEXTURE2D(_TerrainHeightmapTexture); @@ -152,13 +66,12 @@ TerrainVertexToFragment TerrainVert(uint vertexID : SV_VERTEXID, uint instanceID float4 vertex = GetQuadVertexPosition(vertexID % 4); uint2 heightmapLoadPosition = quadPos + vertex.xy; - float scale = _TerrainSize.xz / _TerrainHeightmapResolution; + float2 scale = _TerrainSize.xz / _TerrainHeightmapResolution; vertex.xy = heightmapLoadPosition * scale; // flip quad to xz axis (default terrain orientation without rotation) vertex = float4(vertex.x, 0, vertex.y, 1); - uint2 id = (quadPos / _TerrainSize.xz) * _TerrainHeightmapResolution; float height = UnpackHeightmap(_TerrainHeightmapTexture.Load(uint3(heightmapLoadPosition, 0))); vertex.y += height * _TerrainSize.y * 2; @@ -170,23 +83,21 @@ TerrainVertexToFragment TerrainVert(uint vertexID : SV_VERTEXID, uint instanceID float4 p = float4(cellPos, 1); - switch (_AxisSwizzle) + switch (_AxisIndex) { - default: - case 0: // top - p.xyz = p.zxy; + case 0: // forward + p.xyz = p.xyz; break; case 1: // right p.xyz = p.yzx; break; - case 2: // forward - p.xyz = p.xyz; + case 2: // up + p.xyz = p.zxy; break; } - o.vertex = float4(p.xyz / _VolumeSize, 1); - // trasnform pos between 0 1 to -1 1 - o.vertex.xyz = o.vertex.xyz * 2 - 1; + o.vertex = float4(p.xyz / _VolumeSize, 1); + o.vertex.xyz = o.vertex.xyz * 2 - 1; // map from [0, 1] to [-1 1]. return o; } @@ -200,7 +111,7 @@ float4 TerrainFrag(TerrainVertexToFragment i) : SV_Target float hole = _TerrainHolesTexture.SampleLevel(s_point_clamp_sampler, i.uv, 0).r; clip(hole == 0.0f ? -1 : 1); - uint3 pos = min(uint3(i.cellPos01 * _OutputSize), _OutputSize); + uint3 pos = min(uint3(i.cellPos01 * _OutputSize), uint3(_OutputSize, _OutputSize, _OutputSize)); _Output[pos] = 1; return float4(i.cellPos01.xyz, 1); @@ -210,42 +121,257 @@ struct VertexToFragment { float4 vertex : SV_POSITION; float3 cellPos01 : TEXCOORD0; + nointerpolation float2 minMaxX : TEXCOORD1; + nointerpolation float2 minMaxY : TEXCOORD2; + nointerpolation float2 minMaxZ : TEXCOORD3; }; -VertexToFragment MeshVert(VertexInput input) +ByteAddressBuffer _IndexBuffer; +ByteAddressBuffer _VertexBuffer; +uint _IndexBufferBitCount; // Expected to be 16 or 32. +uint _VertexBufferPositionOffset; +uint _VertexBufferStride; + +uint GetByte(uint4 data, uint pos) { - UNITY_SETUP_INSTANCE_ID(input); - VertexToFragment o; + const uint uintPos = pos / 4; + const uint localPos = pos % 4; + return (data[uintPos] >> localPos * 8) & 0xFF; +} - float3 cellPos = VertexToCellPos(input.vertex); - cellPos -= _VolumeWorldOffset; - o.cellPos01 = (cellPos / _VolumeSize); +// Inputs are expected to be between 0 and 255 inclusive. +uint MergeBytes(uint byt0, uint byt1, uint byt2, uint byt3) +{ + return (byt3 << 24) | (byt2 << 16) | (byt1 << 8) | byt0; +} - float4 p = float4(cellPos, 1); +float3 LoadVertexPosition(ByteAddressBuffer buffer, uint vertexStride, uint vertexPositionOffset, uint vertexIndex) +{ + // This procedure extracts the float3 position for a given vertex from a ByteAddressBuffer view into Unity's vertex buffer. + const uint byteOffset = vertexIndex * vertexStride + vertexPositionOffset; + const uint wordOffset = byteOffset % 4; + const uint4 vertexBufferData = buffer.Load4(byteOffset - wordOffset); - switch (_AxisSwizzle) + float3 output; + for (uint i = 0; i < 3; ++i) { - default: - case 0: // top - p.xyz = p.zxy; + const uint localOffset = i * 4; + uint data = MergeBytes( + GetByte(vertexBufferData, wordOffset + localOffset + 0), + GetByte(vertexBufferData, wordOffset + localOffset + 1), + GetByte(vertexBufferData, wordOffset + localOffset + 2), + GetByte(vertexBufferData, wordOffset + localOffset + 3)); + output[i] = asfloat(data); + } + return output; +} + +uint LoadIndex(ByteAddressBuffer indexBuffer, uint position) +{ + uint output; + if (_IndexBufferBitCount == 32) + { + output = indexBuffer.Load(position * 4); + } + else + { + const uint uintPosition = position / 2; + output = indexBuffer.Load(uintPosition * 4); + // 16 integers consist of two bytes XY. Suppose we have stored two 16bit integers AB and CD. + // Because HLSL is little-endian this will be stored in memory as BADC. + // When we from ByteAddressBuffer this comes out as CDAB because HLSL is little-endian. + // Thus, we'll find the first integer in lower 16 bits and the second in the upper 16 bits. + if (position % 2 == 0) + output = output & 0xFFFF; + else + output = output >> 16; + } + return output; +} + +// Given a triangle edge defined by 2 verts, calculate 2 new verts that define the same edge, +// pushed outwards enough to cover centroids of any pixels which may intersect the triangle. +void OffsetEdge(float2 v1, float2 v2, float2 pixelSize, bool flipNormal, out float2 v1Offset, out float2 v2Offset) +{ + // Find the normal of the edge + float2 edge = v2 - v1; + float2 normal = normalize(float2(-edge.y, edge.x)) * (flipNormal ? -1 : 1); + + // Find the amount to offset by. This is the semidiagonal of the pixel box in the same quadrant as the normal. + float2 semidiagonal = pixelSize / sqrt(2.0); + semidiagonal *= float2(normal.x > 0 ? 1 : -1, normal.y > 0 ? 1 : -1); + + // Offset the edge + v1Offset = v1 + semidiagonal; + v2Offset = v2 + semidiagonal; +} + +// Given 2 lines defined by 2 points each that are assumed to not be parallel, find the intersection point. +float2 LineIntersectAssumingNotParallel(float2 p1, float2 p2, float2 p3, float2 p4) +{ + // Line p1p2 represented as a1x + b1y = c1 + float a1 = p2.y - p1.y; + float b1 = p1.x - p2.x; + float c1 = a1 * p1.x + b1 * p1.y; + + // Line p3p4 represented as a2x + b2y = c2 + float a2 = p4.y - p3.y; + float b2 = p3.x - p4.x; + float c2 = a2 * p3.x + b2 * p3.y; + + float determinant = a1 * b2 - a2 * b1; + float x = (b2 * c1 - b1 * c2) / determinant; + float y = (a1 * c2 - a2 * c1) / determinant; + return float2(x, y); +} + +float3 RayPlaneIntersect(float3 rayOrigin, float3 rayDir, float3 planePosition, float3 planeNormal) +{ + // Want to find t such that HitPos = RayOrigin + t * RayDirection. + // We know that dot(HitPos - PlanePosition, PlaneNormal) = 0. + // Substituting in we get + // dot(RayOrigin + t * RayDirection - PlanePosition, PlaneNormal) = 0, + // and solving for t we get + // t = dot(PlanePosition - RayOrigin, RayNormal) / dot(normal, RayOrigin). + const float dotNumerator = dot(planePosition - rayOrigin, planeNormal); + const float bottomDenominator = dot(rayDir, planeNormal); + const float t = dotNumerator / bottomDenominator; + return rayOrigin + t * rayDir; +} + +uint GetIndexBufferTriangleOffset(uint vertexIndex, uint indexBufferTopology) +{ + if (indexBufferTopology == INDEX_BUFFER_TOPOLOGY_TRIANGLES) + { + const uint triIdx = vertexIndex / 3; + return triIdx * 3; + } + else // Assuming quad topology. + { + const uint triIdx = vertexIndex / 3; + const uint quadIdx = vertexIndex / 2; + return quadIdx + (triIdx % 2); + } +} + +VertexToFragment MeshVert(uint instanceID : SV_InstanceID, uint vertexIndex : SV_VertexID) +{ + // This procedure dilates each triangle in order to emulate 2D conservative rasterization. This gives us + // conservative rasterization on platforms that doesn't support conservative rasterization natively and + // it ensures that we have a single code path for all platforms. The dilation logic is based on + // https://developer.nvidia.com/gpugems/gpugems2/part-v-image-oriented-computing/chapter-42-conservative-rasterization + + const float voxelSize = rcp(_OutputSize); + const uint indexBufferTriangleOffset = GetIndexBufferTriangleOffset(vertexIndex, _IndexBufferTopology); + const uint triangleVertexId = vertexIndex % 3; + + float3 triangle3dCellPos01[3]; + for (uint i = 0; i < 3; ++i) + { + const uint vertexBufferIndex = _VertexBufferOffset + LoadIndex(_IndexBuffer, _IndexBufferOffset + indexBufferTriangleOffset + i); + const float3 positionObjectSpace = LoadVertexPosition(_VertexBuffer, _VertexBufferStride, _VertexBufferPositionOffset, vertexBufferIndex); + float4 positionWorldSpace = mul(unity_ObjectToWorld, float4(positionObjectSpace, 1.0f)); + #ifdef USE_INSTANCE_TRANSFORMS + positionWorldSpace = mul(_InstanceToWorld[instanceID], positionWorldSpace); + #endif + float3 positionVolumeSpace = positionWorldSpace.xyz - _VolumeWorldOffset; + triangle3dCellPos01[i] = positionVolumeSpace / _VolumeSize; + } + + float2 triangle2dCellPos01[3]; + switch (_AxisIndex) + { + case 0: // forward + triangle2dCellPos01[0] = triangle3dCellPos01[0].xy; + triangle2dCellPos01[1] = triangle3dCellPos01[1].xy; + triangle2dCellPos01[2] = triangle3dCellPos01[2].xy; + break; + case 1: // right + triangle2dCellPos01[0] = triangle3dCellPos01[0].yz; + triangle2dCellPos01[1] = triangle3dCellPos01[1].yz; + triangle2dCellPos01[2] = triangle3dCellPos01[2].yz; + break; + case 2: // up + triangle2dCellPos01[0] = triangle3dCellPos01[0].zx; + triangle2dCellPos01[1] = triangle3dCellPos01[1].zx; + triangle2dCellPos01[2] = triangle3dCellPos01[2].zx; + break; + } + + float2 dilated2dCellPos; + // Find the dilated vertex position by intersecting two pushed-out triangle edges. + // https://developer.nvidia.com/gpugems/gpugems2/part-v-image-oriented-computing/chapter-42-conservative-rasterization + { + // This normal check is required because may see backsides of triangles where winding order + // in 2D is reversed. We want to voxelize these triangles too. + const float2 edgeAB = triangle2dCellPos01[1] - triangle2dCellPos01[0]; + const float2 edgeAC = triangle2dCellPos01[2] - triangle2dCellPos01[0]; + const bool flipNormal = edgeAB.x * edgeAC.y - edgeAB.y * edgeAC.x > 0; + + const float2 pixelSize = float2(voxelSize, voxelSize); + + // Find their intersections. This is the new triangle. + float2 line0Start, line0End, line1Start, line1End; + OffsetEdge(triangle2dCellPos01[triangleVertexId], triangle2dCellPos01[(triangleVertexId + 1) % 3], pixelSize, flipNormal, line0Start, line0End); + OffsetEdge(triangle2dCellPos01[(triangleVertexId + 2) % 3], triangle2dCellPos01[triangleVertexId], pixelSize, flipNormal, line1Start, line1End); + dilated2dCellPos = LineIntersectAssumingNotParallel(line1Start, line1End, line0Start, line0End); + } + + VertexToFragment output; + + // The dilated triangle may cause voxels that are arbitrarily far way from the triangle to be written. We avoid + // this by rejecting all voxels that fall outside a conservatively defined box. + { + const float halfVoxelSize = voxelSize * 0.5f; + const float3 minPos = min(min(triangle3dCellPos01[0], triangle3dCellPos01[1]), triangle3dCellPos01[2]) - halfVoxelSize; + const float3 maxPos = max(max(triangle3dCellPos01[0], triangle3dCellPos01[1]), triangle3dCellPos01[2]) + halfVoxelSize; + output.minMaxX = float2(minPos.x, maxPos.x); + output.minMaxY = float2(minPos.y, maxPos.y); + output.minMaxZ = float2(minPos.z, maxPos.z); + } + + // The triangle has been dilated in 2D. We need to also find the equivalent 3D position on the plane of the + // current triangle, so the hardware interpolator can do its thing. + { + float3 rayOrigin; + float3 rayDir; + switch (_AxisIndex) + { + case 0: // forward + rayOrigin = float3(dilated2dCellPos.xy, 0); + rayDir = float3(0, 0, 1); break; case 1: // right - p.xyz = p.yzx; + rayOrigin = float3(0, dilated2dCellPos.xy); + rayDir = float3(1, 0, 0); break; - case 2: // forward - p.xyz = p.xyz; + case 2: // up + rayOrigin = float3(dilated2dCellPos.y, 0, dilated2dCellPos.x); + rayDir = float3(0, 1, 0); break; + } + const float3 triNormal = normalize(cross(triangle3dCellPos01[1] - triangle3dCellPos01[0], triangle3dCellPos01[2] - triangle3dCellPos01[0])); + const float3 dilated3dCellPos = RayPlaneIntersect(rayOrigin, rayDir, triangle3dCellPos01[triangleVertexId], triNormal); + output.cellPos01 = dilated3dCellPos; } - o.vertex = float4(p.xyz / _VolumeSize, 1); - // trasnform pos from 0 1 to -1 1 - o.vertex.xyz = o.vertex.xyz * 2 - 1; + { + const float2 dilated2dClipPos = dilated2dCellPos * 2 - 1; + output.vertex = float4(dilated2dClipPos, 0, 1); + } - return o; + return output; } float4 MeshFrag(VertexToFragment i) : SV_Target { + if (i.cellPos01.x < i.minMaxX.x || i.cellPos01.x > i.minMaxX.y) + return 0; + if (i.cellPos01.y < i.minMaxY.x || i.cellPos01.y > i.minMaxY.y) + return 0; + if (i.cellPos01.z < i.minMaxZ.x || i.cellPos01.z > i.minMaxZ.y) + return 0; + if (any(i.cellPos01 < -EPSILON) || any(i.cellPos01 >= 1 + EPSILON)) return 0; @@ -253,7 +379,7 @@ float4 MeshFrag(VertexToFragment i) : SV_Target _Output[pos] = 1; - return float4(i.cellPos01, 1); + return float4(1, 1, 1, 1); } #endif diff --git a/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/VoxelizeScene.shader b/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/VoxelizeScene.shader index 67fa6c03cc4..03a822ab880 100644 --- a/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/VoxelizeScene.shader +++ b/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/VoxelizeScene.shader @@ -15,13 +15,14 @@ Shader "Hidden/ProbeVolume/VoxelizeScene" Cull Off // ColorMask 0 + ZTest Off ZWrite Off ZClip Off HLSLPROGRAM #pragma vertex TerrainVert #pragma fragment TerrainFrag - #pragma target 4.5 + #pragma require randomwrite // #pragma enable_d3d11_debug_symbols #include "Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/VoxelizeScene.hlsl" @@ -37,89 +38,12 @@ Shader "Hidden/ProbeVolume/VoxelizeScene" ColorMask 0 ZWrite Off ZClip Off - Conservative True - - HLSLPROGRAM - #pragma vertex ConservativeVertex - #pragma geometry ConservativeGeom - #pragma fragment ConservativeFrag - #pragma target 4.5 - #pragma require geometry - // #pragma enable_d3d11_debug_symbols - - #include "Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/VoxelizeScene.hlsl" - ENDHLSL - } - - Pass - { - Name "VoxelizeTree" - - Cull Off - ColorMask 0 - ZWrite Off - ZClip Off - Conservative True - - HLSLPROGRAM - #pragma vertex ConservativeVertex - #pragma geometry ConservativeGeom - #pragma fragment ConservativeFrag - #pragma target 4.5 - #pragma require geometry - //#pragma enable_d3d11_debug_symbols - - #pragma multi_compile _ PROCEDURAL_INSTANCING_ON - - #include "Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/VoxelizeScene.hlsl" - ENDHLSL - } - } - - // Fallback subshader for platform that don't support geometry shaders - SubShader - { - Tags { "RenderType"="Opaque" } - LOD 100 - - HLSLINCLUDE - #define EPSILON (1e-10) - ENDHLSL - - Pass - { - Name "VoxelizeTerrain" - - Cull Off - // ColorMask 0 - ZWrite Off - ZClip Off - - HLSLPROGRAM - #pragma vertex TerrainVert - #pragma fragment TerrainFrag - #pragma target 4.5 - // #pragma enable_d3d11_debug_symbols - - #include "Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/VoxelizeScene.hlsl" - - ENDHLSL - } - - Pass - { - Name "VoxelizeMeshFallback" - - Cull Off - ColorMask 0 - ZWrite Off - ZClip Off + ZTest Off HLSLPROGRAM #pragma vertex MeshVert #pragma fragment MeshFrag - #pragma target 4.5 - // #pragma enable_d3d11_debug_symbols + #pragma require randomwrite #include "Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/VoxelizeScene.hlsl" @@ -128,21 +52,20 @@ Shader "Hidden/ProbeVolume/VoxelizeScene" Pass { - Name "VoxelizeTreeFallback" + Name "VoxelizeMeshInstanced" Cull Off ColorMask 0 ZWrite Off ZClip Off + ZTest Off HLSLPROGRAM #pragma vertex MeshVert #pragma fragment MeshFrag - #pragma target 4.5 - //#pragma enable_d3d11_debug_symbols - - #pragma multi_compile _ PROCEDURAL_INSTANCING_ON + #pragma require randomwrite + #define USE_INSTANCE_TRANSFORMS 1 #include "Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/VoxelizeScene.hlsl" ENDHLSL diff --git a/Packages/com.unity.render-pipelines.core/Editor/RenderGraph/RenderGraphViewer.cs b/Packages/com.unity.render-pipelines.core/Editor/RenderGraph/RenderGraphViewer.cs index dadd47111f1..11132f3cc73 100644 --- a/Packages/com.unity.render-pipelines.core/Editor/RenderGraph/RenderGraphViewer.cs +++ b/Packages/com.unity.render-pipelines.core/Editor/RenderGraph/RenderGraphViewer.cs @@ -39,6 +39,7 @@ internal static partial class Names public const string kHoverOverlay = "hover-overlay"; public const string kEmptyStateMessage = "empty-state-message"; public const string kPassListCornerOccluder = "pass-list-corner-occluder"; + public const string kStatusLabel = "status-label"; } internal static partial class Classes @@ -101,6 +102,7 @@ internal static partial class Classes const string k_LightStylePath = "Packages/com.unity.render-pipelines.core/Editor/StyleSheets/RenderGraphViewerLight.uss"; const string k_ResourceListIconPath = "Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/{0}Resources@2x.png"; const string k_PassListIconPath = "Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/{0}PassInspector@2x.png"; + const string k_EditorName ="Editor"; // keep in sync with .uss const int kPassWidthPx = 26; @@ -123,6 +125,9 @@ internal static partial class Classes bool m_Paused = false; static int s_EditorWindowInstanceId; + DateTime m_LastDataCaptureTime = DateTime.MinValue; + string m_ConnectedDeviceName = "Local Editor"; + bool m_IsDeviceConnected = true; bool HasValidDebugData => m_CurrentDebugData != null && m_CurrentDebugData.valid; @@ -896,6 +901,8 @@ void OnAutoPlayStatusChanged(ChangeEvent evt) autoPlayToggle.text = evt.newValue ? L10n.Tr("Auto Update") : L10n.Tr("Pause"); m_Paused = evt.newValue; + UpdateStatusLabel(); + // Force update when unpausing if (!m_Paused) UpdateCurrentDebugData(); @@ -1987,6 +1994,32 @@ void OnDebugDataUpdated(string graph, EntityId executionId) } } + void UpdateStatusLabel() + { + var statusLabel = rootVisualElement.Q - [Obsolete("Please use expanded property instead. #from(2022.2)", false)] + [Obsolete("Please use expanded property instead. #from(2022.2)")] public SerializedProperty baseProperty { get; internal set; } /// @@ -279,13 +279,6 @@ internal void Init() var supportedOn = volumeComponentType.GetCustomAttribute(); m_LegacyPipelineTypes = supportedOn != null ? supportedOn.pipelineTypes : Array.Empty(); #pragma warning restore CS0618 - - EditorApplication.contextualPropertyMenu += OnPropertyContextMenu; - } - - void OnDestroy() - { - EditorApplication.contextualPropertyMenu -= OnPropertyContextMenu; } internal void DetermineVisibility(Type renderPipelineAssetType, Type renderPipelineType) @@ -393,23 +386,13 @@ internal void AddDefaultProfileContextMenuEntries( profile != null && defaultProfile != profile) { + menu.AddSeparator(string.Empty); menu.AddItem(EditorGUIUtility.TrTextContent($"Show Default Volume Profile"), false, () => Selection.activeObject = defaultProfile); menu.AddItem(EditorGUIUtility.TrTextContent($"Apply Values to Default Volume Profile"), false, copyAction); } } - void OnPropertyContextMenu(GenericMenu menu, SerializedProperty property) - { - if (property.serializedObject.targetObject != target) - return; - - var targetComponent = property.serializedObject.targetObject as VolumeComponent; - - AddDefaultProfileContextMenuEntries(menu, VolumeManager.instance.globalDefaultProfile, - () => VolumeProfileUtils.AssignValuesToProfile(VolumeManager.instance.globalDefaultProfile, targetComponent, property)); - } - /// /// Unity calls this method after drawing the header for each VolumeComponentEditor /// diff --git a/Packages/com.unity.render-pipelines.core/Editor/Volume/VolumeComponentListEditor.cs b/Packages/com.unity.render-pipelines.core/Editor/Volume/VolumeComponentListEditor.cs index 47734b62533..36eebd1b566 100644 --- a/Packages/com.unity.render-pipelines.core/Editor/Volume/VolumeComponentListEditor.cs +++ b/Packages/com.unity.render-pipelines.core/Editor/Volume/VolumeComponentListEditor.cs @@ -445,13 +445,14 @@ void OnContextClick(Vector2 position, VolumeComponentEditor targetEditor, int id if (!m_IsDefaultVolumeProfile) menu.AddItem(EditorGUIUtility.TrTextContent("Remove"), false, () => RemoveComponent(id)); - menu.AddSeparator(string.Empty); if (targetEditor.hasAdditionalProperties) + { + menu.AddSeparator(string.Empty); menu.AddAdvancedPropertiesBoolMenuItem(() => targetEditor.showAdditionalProperties, () => targetEditor.showAdditionalProperties ^= true); + } - menu.AddSeparator(string.Empty); targetEditor.AddDefaultProfileContextMenuEntries(menu, VolumeManager.instance.globalDefaultProfile, () => VolumeProfileUtils.CopyValuesToProfile(targetComponent, VolumeManager.instance.globalDefaultProfile)); diff --git a/Packages/com.unity.render-pipelines.core/Runtime/AssemblyInfo.cs b/Packages/com.unity.render-pipelines.core/Runtime/AssemblyInfo.cs index a9546666e2a..1ae793a5f88 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/AssemblyInfo.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/AssemblyInfo.cs @@ -6,6 +6,13 @@ [assembly: InternalsVisibleTo("Unity.GraphicTests.Performance.RPCore.Runtime")] [assembly: InternalsVisibleTo("Unity.GraphicTests.Performance.Universal.Runtime")] // access to internal ProfileIds +// Access to SamplingResources for the PathTracing package, to be removed when its content will be moved to RP Core +[assembly: InternalsVisibleTo("Unity.Rendering.PathTracing.Runtime.Tests")] +[assembly: InternalsVisibleTo("Unity.PathTracing.Runtime.Tests")] +[assembly: InternalsVisibleTo("Unity.PathTracing.Editor.Tests")] +[assembly: InternalsVisibleTo("Unity.PathTracing.Runtime")] +[assembly: InternalsVisibleTo("Unity.PathTracing.Editor")] + // Smoke test project visibility [assembly: InternalsVisibleTo("SRPSmoke.Runtime")] [assembly: InternalsVisibleTo("SRPSmoke.Runtime.Tests")] diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Common/ConstantBuffer.cs b/Packages/com.unity.render-pipelines.core/Runtime/Common/ConstantBuffer.cs index cab7543932d..9ecd81cec2c 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/Common/ConstantBuffer.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/Common/ConstantBuffer.cs @@ -25,6 +25,21 @@ public static void PushGlobal(CommandBuffer cmd, in CBType data, int sha cb.SetGlobal(cmd, shaderId); } + /// + /// Update the GPU data of the constant buffer and bind it globally via a command buffer. + /// + /// The type of structure representing the constant buffer data. + /// Command Buffer used to execute the graphic commands. + /// Input data of the constant buffer. + /// Shader porperty id to bind the constant buffer to. + public static void PushGlobal(BaseCommandBuffer cmd, in CBType data, int shaderId) where CBType : struct + { + var cb = ConstantBufferSingleton.instance; + + cb.UpdateData(cmd, data); + cb.SetGlobal(cmd, shaderId); + } + /// /// Update the GPU data of the constant buffer and bind it globally. /// @@ -55,6 +70,22 @@ public static void Push(CommandBuffer cmd, in CBType data, ComputeShader cb.Set(cmd, cs, shaderId); } + /// + /// Update the GPU data of the constant buffer and bind it to a compute shader via a command buffer. + /// + /// The type of structure representing the constant buffer data. + /// Command Buffer used to execute the graphic commands. + /// Input data of the constant buffer. + /// Compute shader to which the constant buffer should be bound. + /// Shader porperty id to bind the constant buffer to. + public static void Push(IComputeCommandBuffer cmd, in CBType data, ComputeShader cs, int shaderId) where CBType : struct + { + var cb = ConstantBufferSingleton.instance; + + cb.UpdateData(cmd as BaseCommandBuffer, data); + cb.Set(cmd, cs, shaderId); + } + /// /// Update the GPU data of the constant buffer and bind it to a compute shader. /// @@ -86,6 +117,22 @@ public static void Push(CommandBuffer cmd, in CBType data, Material mat, cb.Set(mat, shaderId); } + /// + /// Update the GPU data of the constant buffer and bind it to a material via a command buffer. + /// + /// The type of structure representing the constant buffer data. + /// Command Buffer used to execute the graphic commands. + /// Input data of the constant buffer. + /// Material to which the constant buffer should be bound. + /// Shader porperty id to bind the constant buffer to. + public static void Push(BaseCommandBuffer cmd, in CBType data, Material mat, int shaderId) where CBType : struct + { + var cb = ConstantBufferSingleton.instance; + + cb.UpdateData(cmd, data); + cb.Set(mat, shaderId); + } + /// /// Update the GPU data of the constant buffer and bind it to a material. /// @@ -114,6 +161,19 @@ public static void UpdateData(CommandBuffer cmd, in CBType data) where C cb.UpdateData(cmd, data); } + /// + /// Update the GPU data of the constant buffer via a command buffer. + /// + /// The type of structure representing the constant buffer data. + /// Command Buffer used to execute the graphic commands. + /// Input data of the constant buffer. + public static void UpdateData(BaseCommandBuffer cmd, in CBType data) where CBType : struct + { + var cb = ConstantBufferSingleton.instance; + + cb.UpdateData(cmd, data); + } + /// /// Update the GPU data of the constant buffer. /// @@ -139,6 +199,19 @@ public static void SetGlobal(CommandBuffer cmd, int shaderId) where CBTy cb.SetGlobal(cmd, shaderId); } + /// + /// Bind the constant buffer globally via a command buffer. + /// + /// The type of structure representing the constant buffer data. + /// Command Buffer used to execute the graphic commands. + /// Shader porperty id to bind the constant buffer to. + public static void SetGlobal(BaseCommandBuffer cmd, int shaderId) where CBType : struct + { + var cb = ConstantBufferSingleton.instance; + + cb.SetGlobal(cmd, shaderId); + } + /// /// Bind the constant buffer globally. /// @@ -165,6 +238,20 @@ public static void Set(CommandBuffer cmd, ComputeShader cs, int shaderId cb.Set(cmd, cs, shaderId); } + /// + /// Bind the constant buffer to a compute shader via a command buffer. + /// + /// The type of structure representing the constant buffer data. + /// Command Buffer used to execute the graphic commands. + /// Compute shader to which the constant buffer should be bound. + /// Shader porperty id to bind the constant buffer to. + public static void Set(IComputeCommandBuffer cmd, ComputeShader cs, int shaderId) where CBType : struct + { + var cb = ConstantBufferSingleton.instance; + + cb.Set(cmd, cs, shaderId); + } + /// /// Bind the constant buffer to a compute shader. /// @@ -258,6 +345,16 @@ public void UpdateData(CommandBuffer cmd, in CBType data) #endif } + /// + /// Update the GPU data of the constant buffer via a command buffer. + /// + /// Command Buffer used to execute the graphic commands. + /// Input data of the constant buffer. + public void UpdateData(BaseCommandBuffer cmd, in CBType data) + { + UpdateData(cmd.m_WrappedCommandBuffer, data); + } + /// /// Update the GPU data of the constant buffer. /// @@ -279,6 +376,16 @@ public void SetGlobal(CommandBuffer cmd, int shaderId) cmd.SetGlobalConstantBuffer(m_GPUConstantBuffer, shaderId, 0, m_GPUConstantBuffer.stride); } + /// + /// Bind the constant buffer globally via a command buffer. + /// + /// Command Buffer used to execute the graphic commands. + /// Shader porperty id to bind the constant buffer to. + public void SetGlobal(BaseCommandBuffer cmd, int shaderId) + { + SetGlobal(cmd.m_WrappedCommandBuffer, shaderId); + } + /// /// Bind the constant buffer globally. /// @@ -300,6 +407,17 @@ public void Set(CommandBuffer cmd, ComputeShader cs, int shaderId) cmd.SetComputeConstantBufferParam(cs, shaderId, m_GPUConstantBuffer, 0, m_GPUConstantBuffer.stride); } + /// + /// Bind the constant buffer to a compute shader via a command buffer. + /// + /// Command Buffer used to execute the graphic commands. + /// Compute shader to which the constant buffer should be bound. + /// Shader porperty id to bind the constant buffer to. + public void Set(IComputeCommandBuffer cmd, ComputeShader cs, int shaderId) + { + cmd.SetComputeConstantBufferParam(cs, shaderId, m_GPUConstantBuffer, 0, m_GPUConstantBuffer.stride); + } + /// /// Bind the constant buffer to a compute shader. /// @@ -345,6 +463,18 @@ public void PushGlobal(CommandBuffer cmd, in CBType data, int shaderId) SetGlobal(cmd, shaderId); } + /// + /// Update the GPU data of the constant buffer and bind it globally via a command buffer. + /// + /// Command Buffer used to execute the graphic commands. + /// Input data of the constant buffer. + /// Shader porperty id to bind the constant buffer to. + public void PushGlobal(BaseCommandBuffer cmd, in CBType data, int shaderId) + { + UpdateData(cmd, data); + SetGlobal(cmd, shaderId); + } + /// /// Update the GPU data of the constant buffer and bind it globally. /// diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Common/DynamicArray.cs b/Packages/com.unity.render-pipelines.core/Runtime/Common/DynamicArray.cs index ef5a8c35710..673356a7436 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/Common/DynamicArray.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/Common/DynamicArray.cs @@ -375,7 +375,7 @@ public ref T this[int index] /// /// Input DynamicArray. /// The internal array. - [Obsolete("This is deprecated because it returns an incorrect value. It may returns an array with elements beyond the size. Please use Span/ReadOnly if you want safe raw access to the DynamicArray memory.",false)] + [Obsolete("This is deprecated because it returns an incorrect value. It may returns an array with elements beyond the size. Please use Span/ReadOnly if you want safe raw access to the DynamicArray memory. #from(2023.2)")] public static implicit operator T[](DynamicArray array) => array.m_Array; /// diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Common/GlobalDynamicResolutionSettings.cs b/Packages/com.unity.render-pipelines.core/Runtime/Common/GlobalDynamicResolutionSettings.cs index 511fb19f739..7cda3fe1976 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/Common/GlobalDynamicResolutionSettings.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/Common/GlobalDynamicResolutionSettings.cs @@ -26,7 +26,7 @@ public enum DynamicResUpscaleFilter : byte /// /// Bilinear upscaling filter. Obsolete and not supported. /// - [Obsolete("Bilinear upscale filter is considered obsolete and is not supported anymore, please use CatmullRom for a very cheap, but blurry filter.", false)] Bilinear, + [Obsolete("Bilinear upscale filter is considered obsolete and is not supported anymore, please use CatmullRom for a very cheap, but blurry filter. #from(2022.1)")] Bilinear, /// /// Bicubic Catmull-Rom upscaling filter. /// @@ -34,7 +34,7 @@ public enum DynamicResUpscaleFilter : byte /// /// Lanczos upscaling filter. Obsolete and not supported. /// - [Obsolete("Lanczos upscale filter is considered obsolete and is not supported anymore, please use Contrast Adaptive Sharpening for very sharp filter or FidelityFX Super Resolution 1.0.", false)] Lanczos, + [Obsolete("Lanczos upscale filter is considered obsolete and is not supported anymore, please use Contrast Adaptive Sharpening for very sharp filter or FidelityFX Super Resolution 1.0. #from(2022.1)")] Lanczos, /// /// Contrast Adaptive Sharpening upscaling filter. /// @@ -93,6 +93,11 @@ public struct GlobalDynamicResolutionSettings DLSSUseOptimalSettings = true, DLSSPerfQualitySetting = 0, DLSSSharpness = 0.5f, + DLSSRenderPresetForQuality = 0, + DLSSRenderPresetForBalanced = 0, + DLSSRenderPresetForPerformance = 0, + DLSSRenderPresetForUltraPerformance = 0, + DLSSRenderPresetForDLAA = 0, DLSSInjectionPoint = DynamicResolutionHandler.UpsamplerScheduleType.BeforePost, FSR2InjectionPoint = DynamicResolutionHandler.UpsamplerScheduleType.BeforePost, TAAUInjectionPoint = DynamicResolutionHandler.UpsamplerScheduleType.BeforePost, @@ -127,14 +132,27 @@ public struct GlobalDynamicResolutionSettings public DynamicResolutionHandler.UpsamplerScheduleType defaultInjectionPoint; /// Toggle NVIDIA Deep Learning Super Sampling (DLSS) automatic recommendation system for scaling and sharpness. - /// If this is on, the manually established scale callback for Dynamic Resolution Scaling is ignored. The sharpness setting of DLSS is also ignored. + /// If this is on, the manually established scale callback for Dynamic Resolution Scaling is ignored. /// public bool DLSSUseOptimalSettings; - /// Pixel sharpness of NVIDIA Deep Leraning Super Sampling (DLSS). + /// Pixel sharpness of NVIDIA Deep Learning Super Sampling (DLSS). + /// Unused since DLSS3 as NVIDIA deprecated the sharpness input to DLSS. + /// [Range(0, 1)] public float DLSSSharpness; + /// Specifies the DLSS Render Preset to use for the Quality performance quality setting. + public uint DLSSRenderPresetForQuality; + /// Specifies the DLSS Render Preset to use for the Balanced performance quality setting. + public uint DLSSRenderPresetForBalanced; + /// Specifies the DLSS Render Preset to use for the Performance performance quality setting. + public uint DLSSRenderPresetForPerformance; + /// Specifies the DLSS Render Preset to use for the UltraPerformance performance quality setting. + public uint DLSSRenderPresetForUltraPerformance; + /// Specifies the DLSS Render Preset to use for the DLAA performance quality setting. + public uint DLSSRenderPresetForDLAA; + /// Enable sharpness control for FidelityFX 2.0 Super Resolution (FSR2). public bool FSR2EnableSharpness; @@ -189,10 +207,8 @@ public struct GlobalDynamicResolutionSettings /// The minimum percentage threshold allowed to clamp tracing resolution for Volumetric Clouds. When the resolution percentage falls below this threshold, HDRP will trace the Volumetric Clouds in half res. public float lowResVolumetricCloudsMinimumThreshold; -#pragma warning disable 618 // Type or member is obsolete /// Obsolete, used only for data migration. Use the advancedUpscalersByPriority list instead to add the proper supported advanced upscaler by priority. - [Obsolete("Obsolete, used only for data migration. Use the advancedUpscalersByPriority list instead to add the proper supported advanced upscaler by priority.")] + [Obsolete("Obsolete, used only for data migration. Use the advancedUpscalersByPriority list instead to add the proper supported advanced upscaler by priority. #from(2023.3)")] public bool enableDLSS; -#pragma warning restore 618 } } diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Debugging/DebugDisplaySettingsVolumes.cs b/Packages/com.unity.render-pipelines.core/Runtime/Debugging/DebugDisplaySettingsVolumes.cs index 87296a7fb0e..b3721d1c4dc 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/Debugging/DebugDisplaySettingsVolumes.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/Debugging/DebugDisplaySettingsVolumes.cs @@ -14,7 +14,7 @@ namespace UnityEngine.Rendering public class DebugDisplaySettingsVolume : IDebugDisplaySettingsData { /// Current volume debug settings. - [Obsolete("This property has been obsoleted and will be removed in a future version. #from(6000.2)", false)] + [Obsolete("This property has been obsoleted and will be removed in a future version. #from(6000.2)")] public IVolumeDebugSettings volumeDebugSettings { get; } private int m_SelectedComponentIndex = -1; @@ -204,7 +204,7 @@ void IDebugDisplaySettingsData.Reset() /// Constructor with the settings /// /// The volume debug settings object used for configuration. - [Obsolete("This constructor has been obsoleted and will be removed in a future version. #from(6000.2)", false)] + [Obsolete("This constructor has been obsoleted and will be removed in a future version. #from(6000.2)")] public DebugDisplaySettingsVolume(IVolumeDebugSettings volumeDebugSettings) : this() { diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Debugging/DebugManager.UIState.cs b/Packages/com.unity.render-pipelines.core/Runtime/Debugging/DebugManager.UIState.cs index 857292f35ba..f80b0058759 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/Debugging/DebugManager.UIState.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/Debugging/DebugManager.UIState.cs @@ -99,22 +99,17 @@ public bool displayRuntimeUI { if (value) { - if (GraphicsSettings.TryGetRenderPipelineSettings( - out var runtimeUIResources)) - { - m_Root = UnityObject.Instantiate(runtimeUIResources.debugUIHandlerCanvasPrefab).gameObject; - m_Root.name = "[Debug Canvas]"; - m_Root.transform.localPosition = Vector3.zero; - m_RootUICanvas = m_Root.GetComponent(); + m_Root = UnityObject.Instantiate(Resources.Load("DebugUICanvas")).gameObject; + m_Root.name = "[Debug Canvas]"; + m_Root.transform.localPosition = Vector3.zero; + m_RootUICanvas = m_Root.GetComponent(); #if UNITY_ANDROID || UNITY_IPHONE || UNITY_TVOS || UNITY_SWITCH var canvasScaler = m_Root.GetComponent(); canvasScaler.uiScaleMode = CanvasScaler.ScaleMode.ScaleWithScreenSize; #endif - m_Root.SetActive(true); - } - + m_Root.SetActive(true); } else { diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Debugging/DebugManager.cs b/Packages/com.unity.render-pipelines.core/Runtime/Debugging/DebugManager.cs index 57e571cf871..b90eed0d6da 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/Debugging/DebugManager.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/Debugging/DebugManager.cs @@ -16,7 +16,7 @@ namespace UnityEngine.Rendering /// /// /// Use the `IDebugData` interface to register custom debug data. You can reset the data when necessary, which makes it suitable for debugging scenarios - /// where you need to clear or reset specific data. For example, when the application state changes or during gameplay session resets, + /// where you need to clear or reset specific data. For example, when the application state changes or during gameplay session resets, /// or when the **Reset** button is selected in the **Rendering Debugger** window in the Editor or at runtime. /// /// @@ -68,7 +68,7 @@ public interface IDebugData /// new DebugUI.Value { displayName = "Light Color", getter = () => Color.white, setter = value => Debug.Log($"Light Color set to {value}") } /// }; /// var items = list.ToArray(); - /// + /// /// /// Obtain the panel from the DebugManager instance, and add the Widgets that we want to display there. /// var panel = DebugManager.instance.GetPanel("Lighting", true); /// panel.children.AddRange(items); @@ -231,13 +231,9 @@ void EnsurePersistentCanvas() if (uiManager == null) { - if (GraphicsSettings.TryGetRenderPipelineSettings( - out var runtimeUIResources)) - { - m_PersistentRoot = UnityObject.Instantiate(runtimeUIResources.debugUIPersistentCanvasPrefab).gameObject; - m_PersistentRoot.name = "[Debug Canvas - Persistent]"; - m_PersistentRoot.transform.localPosition = Vector3.zero; - } + m_PersistentRoot = UnityObject.Instantiate(Resources.Load("DebugUIPersistentCanvas")).gameObject; + m_PersistentRoot.name = "[Debug Canvas - Persistent]"; + m_PersistentRoot.transform.localPosition = Vector3.zero; } else { diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Debugging/IVolumeDebugSettings.cs b/Packages/com.unity.render-pipelines.core/Runtime/Debugging/IVolumeDebugSettings.cs index 6f60a5bfcfb..dd2694450d1 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/Debugging/IVolumeDebugSettings.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/Debugging/IVolumeDebugSettings.cs @@ -7,7 +7,7 @@ namespace UnityEngine.Rendering /// Volume debug settings. /// This variant is obsolete and kept only for not breaking user code. Use for all new usage. /// - [Obsolete("This is not longer supported Please use DebugDisplaySettingsVolume. #from(6000.2)", false)] + [Obsolete("This is not longer supported Please use DebugDisplaySettingsVolume. #from(6000.2)")] public interface IVolumeDebugSettings { /// Selected component. @@ -66,7 +66,7 @@ public interface IVolumeDebugSettings /// Volume debug settings. /// #pragma warning disable CS0618 // Type or member is obsolete - [Obsolete("This is not longer supported Please use DebugDisplaySettingsVolume. #from(6000.2)", false)] + [Obsolete("This is not longer supported Please use DebugDisplaySettingsVolume. #from(6000.2)")] public interface IVolumeDebugSettings2 : IVolumeDebugSettings #pragma warning restore CS0618 // Type or member is obsolete @@ -74,11 +74,11 @@ public interface IVolumeDebugSettings2 : IVolumeDebugSettings /// /// Specifies the render pipeline /// - [Obsolete("This property is obsolete and kept only for not breaking user code. VolumeDebugSettings will use current pipeline when it needs to gather volume component types and paths. #from(23.2)", false)] + [Obsolete("This property is obsolete and kept only for not breaking user code. VolumeDebugSettings will use current pipeline when it needs to gather volume component types and paths. #from(2023.2)")] Type targetRenderPipeline { get; } /// List of Volume component types and their path - [Obsolete("This property is obsolete and kept only for not breaking user code. VolumeDebugSettings will use current pipeline when it needs to gather volume component types and paths. #from(23.2)", false)] + [Obsolete("This property is obsolete and kept only for not breaking user code. VolumeDebugSettings will use current pipeline when it needs to gather volume component types and paths. #from(2023.2)")] List<(string, Type)> volumeComponentsPathAndType { get; } } } diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Debugging/Prefabs/Resources.meta b/Packages/com.unity.render-pipelines.core/Runtime/Debugging/Prefabs/Resources.meta new file mode 100644 index 00000000000..a06e81047c3 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/Debugging/Prefabs/Resources.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3774a3e29f7c59445ba79c15769126fd +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Debugging/Runtime UI Resources/DebugUICanvas.prefab b/Packages/com.unity.render-pipelines.core/Runtime/Debugging/Prefabs/Resources/DebugUICanvas.prefab similarity index 100% rename from Packages/com.unity.render-pipelines.core/Runtime/Debugging/Runtime UI Resources/DebugUICanvas.prefab rename to Packages/com.unity.render-pipelines.core/Runtime/Debugging/Prefabs/Resources/DebugUICanvas.prefab diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Debugging/Runtime UI Resources/DebugUICanvas.prefab.meta b/Packages/com.unity.render-pipelines.core/Runtime/Debugging/Prefabs/Resources/DebugUICanvas.prefab.meta similarity index 100% rename from Packages/com.unity.render-pipelines.core/Runtime/Debugging/Runtime UI Resources/DebugUICanvas.prefab.meta rename to Packages/com.unity.render-pipelines.core/Runtime/Debugging/Prefabs/Resources/DebugUICanvas.prefab.meta diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Debugging/Runtime UI Resources/DebugUIPersistentCanvas.prefab b/Packages/com.unity.render-pipelines.core/Runtime/Debugging/Prefabs/Resources/DebugUIPersistentCanvas.prefab similarity index 100% rename from Packages/com.unity.render-pipelines.core/Runtime/Debugging/Runtime UI Resources/DebugUIPersistentCanvas.prefab rename to Packages/com.unity.render-pipelines.core/Runtime/Debugging/Prefabs/Resources/DebugUIPersistentCanvas.prefab diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Debugging/Runtime UI Resources/DebugUIPersistentCanvas.prefab.meta b/Packages/com.unity.render-pipelines.core/Runtime/Debugging/Prefabs/Resources/DebugUIPersistentCanvas.prefab.meta similarity index 100% rename from Packages/com.unity.render-pipelines.core/Runtime/Debugging/Runtime UI Resources/DebugUIPersistentCanvas.prefab.meta rename to Packages/com.unity.render-pipelines.core/Runtime/Debugging/Prefabs/Resources/DebugUIPersistentCanvas.prefab.meta diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Debugging/Prefabs/Scripts/DebugUIHandlerCanvas.cs b/Packages/com.unity.render-pipelines.core/Runtime/Debugging/Prefabs/Scripts/DebugUIHandlerCanvas.cs index 68de478b872..fb16e10b3dd 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/Debugging/Prefabs/Scripts/DebugUIHandlerCanvas.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/Debugging/Prefabs/Scripts/DebugUIHandlerCanvas.cs @@ -91,7 +91,9 @@ void Rebuild() } m_UIPanels.Clear(); + m_DebugTreeState = DebugManager.instance.GetState(); + var panels = DebugManager.instance.panels; #if UNITY_ANDROID || UNITY_IPHONE // Mobile device safe area @@ -105,20 +107,15 @@ void Rebuild() var safeAreaOffsetTop = -safeAreaRect.yMin * scaleRatio; Vector2 safeAreaOffset = new Vector2(safeAreaOffsetLeft, safeAreaOffsetTop) + margin; #endif - var panels = DebugManager.instance.panels; - var panelsCount = panels.Count; - if (panelsCount > 0) + DebugUIHandlerWidget selectedWidget = null; + foreach (var panel in panels) { - DebugUIHandlerWidget selectedWidget = null; - for (int i = 0; i < panelsCount; i++) - { - var panel = panels[i]; - if (panel.isEditorOnly || panel.children.Count(x => !x.isEditorOnly && !x.isHidden) == 0) - continue; + if (panel.isEditorOnly || panel.children.Count(x => !x.isEditorOnly && !x.isHidden) == 0) + continue; - var go = Instantiate(panelPrefab, transform, false).gameObject; - go.name = panel.displayName; + var go = Instantiate(panelPrefab, transform, false).gameObject; + go.name = panel.displayName; #if UNITY_ANDROID || UNITY_IPHONE RectTransform rectTransform = go.GetComponent(); @@ -126,22 +123,21 @@ void Rebuild() rectTransform.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, safeAreaRect.height * scaleRatio + 2 * safeAreaOffsetTop); #endif - var uiPanel = go.GetComponent(); - uiPanel.SetPanel(panel); - uiPanel.Canvas = this; - m_UIPanels.Add(uiPanel); - var container = go.GetComponent(); - DebugUIHandlerWidget selected = null; - Traverse(panel, container.contentHolder, null, ref selected); + var uiPanel = go.GetComponent(); + uiPanel.SetPanel(panel); + uiPanel.Canvas = this; + m_UIPanels.Add(uiPanel); + var container = go.GetComponent(); + DebugUIHandlerWidget selected = null; + Traverse(panel, container.contentHolder, null, ref selected); - if (selected != null && selected.GetWidget().queryPath.Contains(panel.queryPath)) - { - selectedWidget = selected; - } + if (selected != null && selected.GetWidget().queryPath.Contains(panel.queryPath)) + { + selectedWidget = selected; } - - ActivatePanel(m_SelectedPanel, selectedWidget); } + + ActivatePanel(m_SelectedPanel, selectedWidget); } void Traverse(DebugUI.IContainer container, Transform parentTransform, DebugUIHandlerWidget parentUIHandler, ref DebugUIHandlerWidget selectedHandler) diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Debugging/ProfilingScope.cs b/Packages/com.unity.render-pipelines.core/Runtime/Debugging/ProfilingScope.cs index c1a95b5fbba..0ee475bbbc2 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/Debugging/ProfilingScope.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/Debugging/ProfilingScope.cs @@ -360,7 +360,7 @@ public void Dispose() /// /// Profiling Sampler class. /// - [System.Obsolete("Please use ProfilingScope")] + [System.Obsolete("Please use ProfilingScope. #from(2021.1)")] [IgnoredByDeepProfiler] public struct ProfilingSample : IDisposable { diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Debugging/VolumeDebugSettings.cs b/Packages/com.unity.render-pipelines.core/Runtime/Debugging/VolumeDebugSettings.cs index 8f29009747d..4522aa65810 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/Debugging/VolumeDebugSettings.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/Debugging/VolumeDebugSettings.cs @@ -10,7 +10,7 @@ namespace UnityEngine.Rendering /// The volume settings /// /// A with - [Obsolete("This is not longer supported Please use DebugDisplaySettingsVolume. #from(6000.2)", false)] + [Obsolete("This is not longer supported Please use DebugDisplaySettingsVolume. #from(6000.2)")] public abstract partial class VolumeDebugSettings : IVolumeDebugSettings where T : MonoBehaviour, IAdditionalData { @@ -112,7 +112,7 @@ public Type selectedComponentType /// /// Specifies the render pipeline for this volume settings /// - [Obsolete("This property is obsolete and kept only for not breaking user code. VolumeDebugSettings will use current pipeline when it needs to gather volume component types and paths. #from(23.2)", false)] + [Obsolete("This property is obsolete and kept only for not breaking user code. VolumeDebugSettings will use current pipeline when it needs to gather volume component types and paths. #from(2023.2)")] public virtual Type targetRenderPipeline { get; } internal VolumeParameter GetParameter(VolumeComponent component, FieldInfo field) diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Deprecated.cs b/Packages/com.unity.render-pipelines.core/Runtime/Deprecated.cs index a0b1cc9c211..44e805368f3 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/Deprecated.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/Deprecated.cs @@ -10,7 +10,7 @@ namespace UnityEngine.Rendering /// /// Exposes settings for shader variants /// - [Obsolete("Use GraphicsSettings.GetRenderPipelineSettings(). #from(23.3)")] + [Obsolete("Use GraphicsSettings.GetRenderPipelineSettings(). #from(2023.3)")] public interface IShaderVariantSettings { @@ -34,7 +34,7 @@ public abstract partial class VolumeDebugSettings { static List s_ComponentTypes; /// List of Volume component types. - [Obsolete("Please use volumeComponentsPathAndType instead, and get the second element of the tuple", false)] + [Obsolete("Please use volumeComponentsPathAndType instead, and get the second element of the tuple #from(2022.2)")] public static List componentTypes { get @@ -54,7 +54,7 @@ public static List componentTypes /// Returns the name of a component from its VolumeComponentMenuForRenderPipeline. /// A volume component. /// The component display name. - [Obsolete("Please use componentPathAndType instead, and get the first element of the tuple", false)] + [Obsolete("Please use componentPathAndType instead, and get the first element of the tuple #from(2022.2)")] public static string ComponentDisplayName(Type component) { if (component.GetCustomAttribute(typeof(VolumeComponentMenuForRenderPipeline), false) is VolumeComponentMenuForRenderPipeline volumeComponentMenuForRenderPipeline) @@ -69,14 +69,14 @@ public static string ComponentDisplayName(Type component) /// /// The list of the additional camera datas /// - [Obsolete("Cameras are auto registered/unregistered, use property cameras", false)] + [Obsolete("Cameras are auto registered/unregistered, use property cameras #from(2022.2)")] protected static List additionalCameraDatas { get; private set; } = new List(); /// /// Register the camera for the Volume Debug. /// /// The AdditionalCameraData of the camera to be registered. - [Obsolete("Cameras are auto registered/unregistered", false)] + [Obsolete("Cameras are auto registered/unregistered #from(2022.2)")] public static void RegisterCamera(T additionalCamera) { if (!additionalCameraDatas.Contains(additionalCamera)) @@ -87,7 +87,7 @@ public static void RegisterCamera(T additionalCamera) /// Unregister the camera for the Volume Debug. /// /// The AdditionalCameraData of the camera to be registered. - [Obsolete("Cameras are auto registered/unregistered", false)] + [Obsolete("Cameras are auto registered/unregistered #from(2022.2)")] public static void UnRegisterCamera(T additionalCamera) { if (additionalCameraDatas.Contains(additionalCamera)) @@ -101,14 +101,14 @@ public sealed partial class DebugManager /// Toggle the debug window. /// /// State of the debug window. - [Obsolete("Use DebugManager.instance.displayEditorUI property instead. #from(23.1)")] + [Obsolete("Use DebugManager.instance.displayEditorUI property instead. #from(2023.1)")] public void ToggleEditorUI(bool open) => editorUIState.open = open; } /// /// A marker to adjust probes in an area of the scene. /// - [Obsolete("ProbeTouchupVolume has been deprecated (UnityUpgradable) -> ProbeAdjustmentVolume", false)] + [Obsolete("ProbeTouchupVolume has been deprecated. #from(2023.2) (UnityUpgradable) -> ProbeAdjustmentVolume")] public class ProbeTouchupVolume : ProbeAdjustmentVolume { } @@ -123,7 +123,7 @@ public sealed partial class VolumeManager /// The volume to register. /// The LayerMask that this volume is in. /// - [Obsolete("Please use the Register without a given layer index #from(6000.0)", false)] + [Obsolete("Please use the Register without a given layer index. #from(6000.0)")] public void Register(Volume volume, int layer) { if (volume.gameObject.layer != layer) @@ -143,7 +143,7 @@ public void Register(Volume volume, int layer) /// The Volume to unregister. /// The LayerMask that this volume is in. /// - [Obsolete("Please use the Register without a given layer index #from(6000.0)", false)] + [Obsolete("Please use the Register without a given layer index. #from(6000.0)")] public void Unregister(Volume volume, int layer) { if (volume.gameObject.layer != layer) @@ -162,7 +162,7 @@ public partial class DebugUI /// /// Maskfield enumeration field. /// - [Obsolete("Mask field is not longer supported. Please use a BitField or implement your own Widget. #from(6000.2)", false)] + [Obsolete("Mask field is not longer supported. Please use a BitField or implement your own Widget. #from(6000.2)")] public class MaskField : EnumField { /// diff --git a/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/Debug/DebugDisplayGPUResidentDrawer.cs b/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/Debug/DebugDisplayGPUResidentDrawer.cs index e08d77d4c98..cad71f4660e 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/Debug/DebugDisplayGPUResidentDrawer.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/Debug/DebugDisplayGPUResidentDrawer.cs @@ -2,6 +2,9 @@ using System.Collections.Generic; using System.Reflection; using Unity.Collections; +#if UNITY_EDITOR +using UnityEditor; +#endif using static UnityEngine.Rendering.DebugUI; using static UnityEngine.Rendering.DebugUI.Widget; @@ -108,6 +111,7 @@ private static InstanceOcclusionEventStats GetInstanceOcclusionEventStats(int pa else return new InstanceOcclusionEventStats(); } + static class Strings { public const string drawerSettingsContainerName = "GPU Resident Drawer Settings"; @@ -146,6 +150,7 @@ private static int GetInstanceOcclusionEventCount() { return GPUResidentDrawer.GetDebugStats()?.instanceOcclusionEventStats.Length ?? 0; } + private static DebugUI.Table.Row AddInstanceCullerViewDataRow(int viewIndex) { return new DebugUI.Table.Row @@ -156,9 +161,32 @@ private static DebugUI.Table.Row AddInstanceCullerViewDataRow(int viewIndex) children = { new DebugUI.Value { displayName = "View Type", refreshRate = k_RefreshRate, formatString = k_FormatString, getter = () => GetInstanceCullerViewStats(viewIndex).viewType }, - new DebugUI.Value { displayName = "View Instance ID", refreshRate = k_RefreshRate, formatString = k_FormatString, getter = () => GetInstanceCullerViewStats(viewIndex).viewInstanceID }, + new DebugUI.Value { displayName = "View Instance ID", refreshRate = k_RefreshRate, formatString = k_FormatString, getter = () => + { + var viewStats = GetInstanceCullerViewStats(viewIndex); +#if UNITY_EDITOR + Object view = EditorUtility.EntityIdToObject(viewStats.viewInstanceID); + if (view) + { + return $"{viewStats.viewInstanceID} ({view.name})"; + } +#endif + return viewStats.viewInstanceID; + } + }, new DebugUI.Value { displayName = "Split Index", refreshRate = k_RefreshRate, formatString = k_FormatString, getter = () => GetInstanceCullerViewStats(viewIndex).splitIndex }, - new DebugUI.Value { displayName = "Visible Instances", refreshRate = k_RefreshRate, formatString = k_FormatString, getter = () => GetInstanceCullerViewStats(viewIndex).visibleInstances }, + new DebugUI.Value { displayName = "Visible Instances CPU | GPU", tooltip = "Visible instances after CPU culling and after GPU culling.", refreshRate = k_RefreshRate, formatString = k_FormatString, getter = () => + { + var viewStats = GetInstanceCullerViewStats(viewIndex); + return $"{viewStats.visibleInstancesOnCPU} | {viewStats.visibleInstancesOnGPU}"; + } + }, + new DebugUI.Value { displayName = "Visible Primitives CPU | GPU", tooltip = "Visible primitives after CPU culling and after GPU culling.", refreshRate = k_RefreshRate, formatString = k_FormatString, getter = () => + { + var viewStats = GetInstanceCullerViewStats(viewIndex); + return $"{viewStats.visiblePrimitivesOnCPU} | {viewStats.visiblePrimitivesOnGPU}"; + } + }, new DebugUI.Value { displayName = "Draw Commands", refreshRate = k_RefreshRate, formatString = k_FormatString, getter = () => GetInstanceCullerViewStats(viewIndex).drawCommands }, } }; @@ -184,6 +212,16 @@ private static object CulledInstancesString(in InstanceOcclusionEventStats stats return (stats.eventType == InstanceOcclusionEventType.OcclusionTest) ? stats.culledInstances : "-"; } + private static object VisiblePrimitivesString(in InstanceOcclusionEventStats stats) + { + return (stats.eventType == InstanceOcclusionEventType.OcclusionTest) ? stats.visiblePrimitives : "-"; + } + + private static object CulledPrimitivesString(in InstanceOcclusionEventStats stats) + { + return (stats.eventType == InstanceOcclusionEventType.OcclusionTest) ? stats.culledPrimitives : "-"; + } + private static DebugUI.Table.Row AddInstanceOcclusionPassDataRow(int eventIndex) { return new DebugUI.Table.Row @@ -193,13 +231,27 @@ private static DebugUI.Table.Row AddInstanceOcclusionPassDataRow(int eventIndex) isHiddenCallback = () => { return eventIndex >= GetInstanceOcclusionEventCount(); }, children = { - new DebugUI.Value { displayName = "View Instance ID", refreshRate = k_RefreshRate, formatString = k_FormatString, getter = () => GetInstanceOcclusionEventStats(eventIndex).viewInstanceID }, + new DebugUI.Value { displayName = "View Instance ID", refreshRate = k_RefreshRate, formatString = k_FormatString, getter = () => + { + var eventStats = GetInstanceOcclusionEventStats(eventIndex); +#if UNITY_EDITOR + Object view = EditorUtility.EntityIdToObject(eventStats.viewInstanceID); + if (view) + { + return $"{eventStats.viewInstanceID} ({view.name})"; + } +#endif + return eventStats.viewInstanceID; + } + }, new DebugUI.Value { displayName = "Event Type", refreshRate = k_RefreshRate, formatString = k_FormatString, getter = () => $"{GetInstanceOcclusionEventStats(eventIndex).eventType}" }, new DebugUI.Value { displayName = "Occluder Version", refreshRate = k_RefreshRate, formatString = k_FormatString, getter = () => OccluderVersionString(GetInstanceOcclusionEventStats(eventIndex)) }, new DebugUI.Value { displayName = "Subview Mask", refreshRate = k_RefreshRate, formatString = k_FormatString, getter = () => $"0x{GetInstanceOcclusionEventStats(eventIndex).subviewMask:X}" }, new DebugUI.Value { displayName = "Occlusion Test", refreshRate = k_RefreshRate, formatString = k_FormatString, getter = () => $"{OcclusionTestString(GetInstanceOcclusionEventStats(eventIndex))}" }, new DebugUI.Value { displayName = "Visible Instances", refreshRate = k_RefreshRate, formatString = k_FormatString, getter = () => VisibleInstancesString(GetInstanceOcclusionEventStats(eventIndex)) }, new DebugUI.Value { displayName = "Culled Instances", refreshRate = k_RefreshRate, formatString = k_FormatString, getter = () => CulledInstancesString(GetInstanceOcclusionEventStats(eventIndex)) }, + new DebugUI.Value { displayName = "Visible Primitives", refreshRate = k_RefreshRate, formatString = k_FormatString, getter = () => VisiblePrimitivesString(GetInstanceOcclusionEventStats(eventIndex)) }, + new DebugUI.Value { displayName = "Culled Primitives", refreshRate = k_RefreshRate, formatString = k_FormatString, getter = () => CulledPrimitivesString(GetInstanceOcclusionEventStats(eventIndex)) }, } }; } @@ -300,6 +352,104 @@ private void AddInstanceCullingStatsWidget(DebugDisplayGPUResidentDrawer data) } }); + instanceCullerStats.children.Add(new DebugUI.ValueTuple() + { + displayName = "Total Visible Instances (Cameras | Lights | Both)", + values = new[] + { + new DebugUI.Value { refreshRate = k_RefreshRate, formatString = k_FormatString, getter = () => + { + int totalGRDInstances = 0; + + for (int viewIndex = 0; viewIndex < GetInstanceCullerViewCount(); viewIndex++) + { + var viewStats = GetInstanceCullerViewStats(viewIndex); + if (viewStats.viewType == BatchCullingViewType.Camera) + totalGRDInstances += viewStats.visibleInstancesOnGPU; + } + return totalGRDInstances; + } + }, + new DebugUI.Value { refreshRate = k_RefreshRate, formatString = k_FormatString, getter = () => + { + int totalGRDInstances = 0; + + for (int viewIndex = 0; viewIndex < GetInstanceCullerViewCount(); viewIndex++) + { + var viewStats = GetInstanceCullerViewStats(viewIndex); + if (viewStats.viewType == BatchCullingViewType.Light) + totalGRDInstances += viewStats.visibleInstancesOnGPU; + } + return totalGRDInstances; + } + }, + new DebugUI.Value { refreshRate = k_RefreshRate, formatString = k_FormatString, getter = () => + { + int totalGRDInstances = 0; + + for (int viewIndex = 0; viewIndex < GetInstanceCullerViewCount(); viewIndex++) + { + var viewStats = GetInstanceCullerViewStats(viewIndex); + if (viewStats.viewType != BatchCullingViewType.Filtering + && viewStats.viewType != BatchCullingViewType.Picking + && viewStats.viewType != BatchCullingViewType.SelectionOutline) + totalGRDInstances += viewStats.visibleInstancesOnGPU; + } + return totalGRDInstances; + } + }, + } + }); + + instanceCullerStats.children.Add(new DebugUI.ValueTuple() + { + displayName = "Total Visible Primitives (Cameras | Lights | Both)", + values = new[] + { + new DebugUI.Value { refreshRate = k_RefreshRate, formatString = k_FormatString, getter = () => + { + int totalGRDPrimitives = 0; + + for (int viewIndex = 0; viewIndex < GetInstanceCullerViewCount(); viewIndex++) + { + var viewStats = GetInstanceCullerViewStats(viewIndex); + if (viewStats.viewType == BatchCullingViewType.Camera) + totalGRDPrimitives += viewStats.visiblePrimitivesOnGPU; + } + return totalGRDPrimitives; + } + }, + new DebugUI.Value { refreshRate = k_RefreshRate, formatString = k_FormatString, getter = () => + { + int totalGRDPrimitives = 0; + + for (int viewIndex = 0; viewIndex < GetInstanceCullerViewCount(); viewIndex++) + { + var viewStats = GetInstanceCullerViewStats(viewIndex); + if (viewStats.viewType == BatchCullingViewType.Light) + totalGRDPrimitives += viewStats.visiblePrimitivesOnGPU; + } + return totalGRDPrimitives; + } + }, + new DebugUI.Value { refreshRate = k_RefreshRate, formatString = k_FormatString, getter = () => + { + int totalGRDPrimitives = 0; + + for (int viewIndex = 0; viewIndex < GetInstanceCullerViewCount(); viewIndex++) + { + var viewStats = GetInstanceCullerViewStats(viewIndex); + if (viewStats.viewType != BatchCullingViewType.Filtering + && viewStats.viewType != BatchCullingViewType.Picking + && viewStats.viewType != BatchCullingViewType.SelectionOutline) + totalGRDPrimitives += viewStats.visiblePrimitivesOnGPU; + } + return totalGRDPrimitives; + } + }, + } + }); + DebugUI.Table viewTable = new DebugUI.Table { displayName = "", diff --git a/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/GPUResidentDrawerDebug.cs b/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/GPUResidentDrawerDebug.cs index 15d05fb04cf..36102b9af21 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/GPUResidentDrawerDebug.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/GPUResidentDrawerDebug.cs @@ -10,7 +10,10 @@ internal struct InstanceCullerViewStats public BatchCullingViewType viewType; public int viewInstanceID; public int splitIndex; - public int visibleInstances; + public int visibleInstancesOnCPU; + public int visibleInstancesOnGPU; + public int visiblePrimitivesOnCPU; + public int visiblePrimitivesOnGPU; public int drawCommands; } @@ -29,6 +32,8 @@ internal struct InstanceOcclusionEventStats public OcclusionTest occlusionTest; public int visibleInstances; public int culledInstances; + public int visiblePrimitives; + public int culledPrimitives; } internal struct DebugOccluderStats @@ -55,6 +60,48 @@ public DebugRendererBatcherStats() occluderStats = new NativeList(Allocator.Persistent); } + public void FinalizeInstanceCullerViewStats() + { + // For each view, update the on GPU instance and primitive counts. The final rendered primitive and + // instance count can be found at the last pass of all the occlusion passes. + for (int viewIndex = 0; viewIndex < instanceCullerStats.Length; viewIndex++) + { + InstanceCullerViewStats cullerStats = instanceCullerStats[viewIndex]; + InstanceOcclusionEventStats lastOcclusionEventStats = GetLastInstanceOcclusionEventStatsForView(viewIndex); + + if (lastOcclusionEventStats.viewInstanceID == cullerStats.viewInstanceID) + { + // The Min test is because the SelectionOutline view (and probably picking as well) share the same viewInstanceID with + // the scene camera for instance, so we pick up the camera's occlusion event. And we can't have more instances on GPU than we had on CPU. + cullerStats.visibleInstancesOnGPU = Math.Min(lastOcclusionEventStats.visibleInstances, cullerStats.visibleInstancesOnCPU); + cullerStats.visiblePrimitivesOnGPU = Math.Min(lastOcclusionEventStats.visiblePrimitives, cullerStats.visiblePrimitivesOnCPU); + } + else + { + // There was no occlusion culling for this view, so reuse the same counts as on the CPU. + cullerStats.visibleInstancesOnGPU = cullerStats.visibleInstancesOnCPU; + cullerStats.visiblePrimitivesOnGPU = cullerStats.visiblePrimitivesOnCPU; + } + + instanceCullerStats[viewIndex] = cullerStats; + } + } + + private InstanceOcclusionEventStats GetLastInstanceOcclusionEventStatsForView(int viewIndex) + { + if (viewIndex < instanceCullerStats.Length) + { + int viewInstanceID = instanceCullerStats[viewIndex].viewInstanceID; + for (int passIndex = instanceOcclusionEventStats.Length - 1; passIndex >= 0; passIndex--) + { + if (instanceOcclusionEventStats[passIndex].viewInstanceID == viewInstanceID) + return instanceOcclusionEventStats[passIndex]; + } + } + + return new InstanceOcclusionEventStats(); + } + public void Dispose() { if (instanceCullerStats.IsCreated) diff --git a/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/InstanceCuller.cs b/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/InstanceCuller.cs index b527744780a..6a1ecf711f7 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/InstanceCuller.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/InstanceCuller.cs @@ -591,6 +591,19 @@ private bool IsMeshLodVisible(int batchLodLevel, int rendererIndex, bool support return batchLodLevel == instanceLodLevel + sign; } + static int GetPrimitiveCount(int indexCount, MeshTopology topology, bool nativeQuads) + { + switch (topology) + { + case MeshTopology.Triangles: return indexCount / 3; + case MeshTopology.Quads: return nativeQuads ? (indexCount / 4) : (indexCount / 4 * 2); + case MeshTopology.Lines: return indexCount / 2; + case MeshTopology.LineStrip: return (indexCount >= 1) ? (indexCount - 1) : 0; + case MeshTopology.Points: return indexCount; + default: Debug.Assert(false, "unknown primitive type"); return 0; + } + } + public void Execute(int batchIndex) { // figure out how many combinations of views/features we need to partition by @@ -697,7 +710,12 @@ public void Execute(int batchIndex) int visibleCount = visibleCountPerView[viewIndex]; if (visibleCount > 0) + { + int primitiveCount = GetPrimitiveCount((int)drawBatch.procInfo.indexCount, drawBatch.procInfo.topology, false); + Interlocked.Add(ref UnsafeUtility.AsRef(counterPtr + (int)InstanceCullerSplitDebugCounter.VisibleInstances), visibleCount); + Interlocked.Add(ref UnsafeUtility.AsRef(counterPtr + (int)InstanceCullerSplitDebugCounter.VisiblePrimitives), visibleCount * primitiveCount); + } } } } @@ -1060,7 +1078,7 @@ unsafe public void Execute(int batchIndex) firstIndex = drawBatch.procInfo.firstIndex, baseVertex = drawBatch.procInfo.baseVertex, firstInstanceGlobalIndex = (uint)instanceInfoGlobalIndex, - maxInstanceCount = (uint)visibleInstanceCount, + maxInstanceCountAndTopology = ((uint)visibleInstanceCount << 3) | (uint)drawBatch.procInfo.topology, }; output.indirectDrawCommands[drawCommandOffset] = new BatchDrawCommandIndirect { @@ -1442,6 +1460,7 @@ public void Execute(int instanceIndex) internal enum InstanceCullerSplitDebugCounter { VisibleInstances, + VisiblePrimitives, DrawCommands, Count, } @@ -1520,7 +1539,10 @@ public void MoveToDebugStatsAndClear(DebugRendererBatcherStats debugStats) viewType = info.viewType, viewInstanceID = info.viewInstanceID, splitIndex = info.splitIndex, - visibleInstances = m_Counters[counterBase + (int)InstanceCullerSplitDebugCounter.VisibleInstances], + visibleInstancesOnCPU = m_Counters[counterBase + (int)InstanceCullerSplitDebugCounter.VisibleInstances], + visibleInstancesOnGPU = 0, // Unknown at this point, will be filled in later + visiblePrimitivesOnCPU = m_Counters[counterBase + (int)InstanceCullerSplitDebugCounter.VisiblePrimitives], + visiblePrimitivesOnGPU = 0, // Unknown at this point, will be filled in later drawCommands = m_Counters[counterBase + (int)InstanceCullerSplitDebugCounter.DrawCommands], }); } @@ -1669,8 +1691,10 @@ public void MoveToDebugStatsAndClear(DebugRendererBatcherStats debugStats) } int counterBase = index * (int)InstanceOcclusionTestDebugCounter.Count; - int occludedCounter = m_LatestCounters[counterBase + (int)InstanceOcclusionTestDebugCounter.Occluded]; - int notOccludedCounter = m_LatestCounters[counterBase + (int)InstanceOcclusionTestDebugCounter.NotOccluded]; + int instancesOccludedCounter = m_LatestCounters[counterBase + (int)InstanceOcclusionTestDebugCounter.InstancesOccluded]; + int instancesNotOccludedCounter = m_LatestCounters[counterBase + (int)InstanceOcclusionTestDebugCounter.InstancesNotOccluded]; + int primitivesOccludedCounter = m_LatestCounters[counterBase + (int)InstanceOcclusionTestDebugCounter.PrimitivesOccluded]; + int primitivesNotOccludedCounter = m_LatestCounters[counterBase + (int)InstanceOcclusionTestDebugCounter.PrimitivesNotOccluded]; debugStats.instanceOcclusionEventStats.Add(new InstanceOcclusionEventStats { @@ -1679,8 +1703,10 @@ public void MoveToDebugStatsAndClear(DebugRendererBatcherStats debugStats) occluderVersion = occluderVersion, subviewMask = info.subviewMask, occlusionTest = info.occlusionTest, - visibleInstances = notOccludedCounter, - culledInstances = occludedCounter, + visibleInstances = instancesNotOccludedCounter, + culledInstances = instancesOccludedCounter, + visiblePrimitives = primitivesNotOccludedCounter, + culledPrimitives = primitivesOccludedCounter, }); } } @@ -2564,6 +2590,7 @@ private void FlushDebugCounters() { m_SplitDebugArray.MoveToDebugStatsAndClear(m_DebugStats); m_OcclusionEventDebugArray.MoveToDebugStatsAndClear(m_DebugStats); + m_DebugStats.FinalizeInstanceCullerViewStats(); } } diff --git a/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/InstanceOcclusionCuller.cs b/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/InstanceOcclusionCuller.cs index 6bc76a174c9..66adf030165 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/InstanceOcclusionCuller.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/InstanceOcclusionCuller.cs @@ -74,8 +74,10 @@ public void UseForOccluderUpdate(IBaseRenderGraphBuilder builder) [GenerateHLSL(needAccessors = false)] internal enum InstanceOcclusionTestDebugCounter { - Occluded, - NotOccluded, + InstancesOccluded, + InstancesNotOccluded, + PrimitivesOccluded, + PrimitivesNotOccluded, Count, } @@ -93,7 +95,7 @@ internal struct IndirectDrawInfo public uint firstIndex; public uint baseVertex; public uint firstInstanceGlobalIndex; - public uint maxInstanceCount; + public uint maxInstanceCountAndTopology; // [31:3]=max_instance_count, [2:0]=topology } internal struct IndirectBufferAllocInfo @@ -280,7 +282,7 @@ private void AllocateTexturesIfNecessary(bool debugOverlayEnabled) occluderDepthPyramid = RTHandles.Alloc( occluderDepthPyramidSize.x, occluderDepthPyramidSize.y, format: GraphicsFormat.R32_SFloat, - dimension: TextureDimension.Tex2D, + dimension: TextureDimension.Tex2D, filterMode: FilterMode.Point, wrapMode: TextureWrapMode.Clamp, enableRandomWrite: true, diff --git a/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/InstanceOcclusionCuller.cs.hlsl b/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/InstanceOcclusionCuller.cs.hlsl index f9aab8a061f..832151f2e95 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/InstanceOcclusionCuller.cs.hlsl +++ b/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/InstanceOcclusionCuller.cs.hlsl @@ -7,9 +7,11 @@ // // UnityEngine.Rendering.InstanceOcclusionTestDebugCounter: static fields // -#define INSTANCEOCCLUSIONTESTDEBUGCOUNTER_OCCLUDED (0) -#define INSTANCEOCCLUSIONTESTDEBUGCOUNTER_NOT_OCCLUDED (1) -#define INSTANCEOCCLUSIONTESTDEBUGCOUNTER_COUNT (2) +#define INSTANCEOCCLUSIONTESTDEBUGCOUNTER_INSTANCES_OCCLUDED (0) +#define INSTANCEOCCLUSIONTESTDEBUGCOUNTER_INSTANCES_NOT_OCCLUDED (1) +#define INSTANCEOCCLUSIONTESTDEBUGCOUNTER_PRIMITIVES_OCCLUDED (2) +#define INSTANCEOCCLUSIONTESTDEBUGCOUNTER_PRIMITIVES_NOT_OCCLUDED (3) +#define INSTANCEOCCLUSIONTESTDEBUGCOUNTER_COUNT (4) // Generated from UnityEngine.Rendering.IndirectDrawInfo // PackingRules = Exact @@ -19,7 +21,7 @@ struct IndirectDrawInfo uint firstIndex; uint baseVertex; uint firstInstanceGlobalIndex; - uint maxInstanceCount; + uint maxInstanceCountAndTopology; }; // Generated from UnityEngine.Rendering.IndirectInstanceInfo diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Lighting/ProbeVolume/IProbeVolumeEnabledRenderPipeline.cs b/Packages/com.unity.render-pipelines.core/Runtime/Lighting/ProbeVolume/IProbeVolumeEnabledRenderPipeline.cs index 672ffea122d..7a5a07c07c7 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/Lighting/ProbeVolume/IProbeVolumeEnabledRenderPipeline.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/Lighting/ProbeVolume/IProbeVolumeEnabledRenderPipeline.cs @@ -18,7 +18,7 @@ public interface IProbeVolumeEnabledRenderPipeline /// /// Returns the projects global ProbeVolumeSceneData instance. /// - [System.Obsolete("This field is no longer necessary")] + [System.Obsolete("This field is no longer necessary. #from(2023.3)")] ProbeVolumeSceneData probeVolumeSceneData { get; } } } diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Lighting/ProbeVolume/ProbeReferenceVolume.Debug.cs b/Packages/com.unity.render-pipelines.core/Runtime/Lighting/ProbeVolume/ProbeReferenceVolume.Debug.cs index 37b84ecdeb9..3f980c0607b 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/Lighting/ProbeVolume/ProbeReferenceVolume.Debug.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/Lighting/ProbeVolume/ProbeReferenceVolume.Debug.cs @@ -246,7 +246,7 @@ Mesh debugMesh { /// /// The /// Texture containing the exposure value for this frame. - [Obsolete("Use the other override to support sampling offset in debug modes.")] + [Obsolete("Use the other override to support sampling offset in debug modes. #from(6000.0)")] public void RenderDebug(Camera camera, Texture exposureTexture) { RenderDebug(camera, null, exposureTexture); @@ -827,24 +827,28 @@ public void RenderFragmentationOverlay(RenderGraph renderGraph, TextureHandle co if (!m_ProbeReferenceVolumeInit || !probeVolumeDebug.displayIndexFragmentation) return; - using (var builder = renderGraph.AddRenderPass("APVFragmentationOverlay", out var passData)) + using (var builder = renderGraph.AddUnsafePass("APVFragmentationOverlay", out var passData)) { passData.debugOverlay = debugOverlay; passData.debugFragmentationMaterial = m_DebugFragmentationMaterial; - passData.colorBuffer = builder.UseColorBuffer(colorBuffer, 0); - passData.depthBuffer = builder.UseDepthBuffer(depthBuffer, DepthAccess.ReadWrite); + passData.colorBuffer = colorBuffer; + builder.SetRenderAttachment(colorBuffer, 0); + passData.depthBuffer = depthBuffer; + builder.SetRenderAttachmentDepth(depthBuffer, AccessFlags.ReadWrite); passData.debugFragmentationData = m_Index.GetDebugFragmentationBuffer(); passData.chunkCount = passData.debugFragmentationData.count; builder.SetRenderFunc( - (RenderFragmentationOverlayPassData data, RenderGraphContext ctx) => + (RenderFragmentationOverlayPassData data, UnsafeGraphContext ctx) => { + var natCmd = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); + var mpb = ctx.renderGraphPool.GetTempMaterialPropertyBlock(); - data.debugOverlay.SetViewport(ctx.cmd); + data.debugOverlay.SetViewport(natCmd); mpb.SetInt("_ChunkCount", data.chunkCount); mpb.SetBuffer("_DebugFragmentation", data.debugFragmentationData); - ctx.cmd.DrawProcedural(Matrix4x4.identity, data.debugFragmentationMaterial, 0, MeshTopology.Triangles, 3, 1, mpb); + natCmd.DrawProcedural(Matrix4x4.identity, data.debugFragmentationMaterial, 0, MeshTopology.Triangles, 3, 1, mpb); data.debugOverlay.Next(); }); } @@ -1185,12 +1189,16 @@ internal bool GetFlattenedProbeData( positionsList.Add(position); validityList.Add(cell.data.validity[probeFlatIndex]); + var occlusionOffset = probeFlatIndex * 4; - float occlusionValue0 = scenarioData.probeOcclusion[occlusionOffset] / 255.0f; - float occlusionValue1 = scenarioData.probeOcclusion[occlusionOffset+1] / 255.0f; - float occlusionValue2 = scenarioData.probeOcclusion[occlusionOffset+2] / 255.0f; - float occlusionValue3 = scenarioData.probeOcclusion[occlusionOffset+3] / 255.0f; - occlusionList.Add(new Vector4(occlusionValue0, occlusionValue1, occlusionValue2, occlusionValue3)); + if (scenarioData.probeOcclusion.Length != 0) + { + float occlusionValue0 = scenarioData.probeOcclusion[occlusionOffset] / 255.0f; + float occlusionValue1 = scenarioData.probeOcclusion[occlusionOffset+1] / 255.0f; + float occlusionValue2 = scenarioData.probeOcclusion[occlusionOffset+2] / 255.0f; + float occlusionValue3 = scenarioData.probeOcclusion[occlusionOffset+3] / 255.0f; + occlusionList.Add(new Vector4(occlusionValue0, occlusionValue1, occlusionValue2, occlusionValue3)); + } if (cell.data.skyOcclusionDataL0L1.Length > 0) { diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Lighting/ProbeVolume/ProbeReferenceVolume.ReflProbeNormalization.cs b/Packages/com.unity.render-pipelines.core/Runtime/Lighting/ProbeVolume/ProbeReferenceVolume.ReflProbeNormalization.cs index 34a74a3357f..b8b2272c272 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/Lighting/ProbeVolume/ProbeReferenceVolume.ReflProbeNormalization.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/Lighting/ProbeVolume/ProbeReferenceVolume.ReflProbeNormalization.cs @@ -66,7 +66,7 @@ public void DequeueRequest(int probeInstanceID) /// The output SH coefficients that have been computed. /// The position for which the computed SH coefficients are valid. /// Whether the request for light probe rendering has been fulfilled and sh is valid. - [Obsolete("Use RetrieveProbe instead.", false)] + [Obsolete("Use RetrieveProbe instead. #from(6000.2)")] public bool RetrieveProbeSH(int probeInstanceID, out SphericalHarmonicsL2 sh, out Vector3 pos) { if (m_SHCoefficients.ContainsKey(probeInstanceID)) diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Lighting/ProbeVolume/ProbeReferenceVolume.cs b/Packages/com.unity.render-pipelines.core/Runtime/Lighting/ProbeVolume/ProbeReferenceVolume.cs index b6cea37114c..48e07b5e055 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/Lighting/ProbeVolume/ProbeReferenceVolume.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/Lighting/ProbeVolume/ProbeReferenceVolume.cs @@ -57,49 +57,49 @@ public struct ProbeVolumeSystemParameters /// /// The shader used to visualize the probes in the debug view. /// - [Obsolete("This field is not used anymore.")] + [Obsolete("This field is not used anymore. #from(2023.3)")] public Shader probeDebugShader; /// /// The shader used to visualize the way probes are sampled for a single pixel in the debug view. /// - [Obsolete("This field is not used anymore.")] + [Obsolete("This field is not used anymore. #from(2023.3)")] public Shader probeSamplingDebugShader; /// /// The debug texture used to display probe weight in the debug view. /// - [Obsolete("This field is not used anymore.")] + [Obsolete("This field is not used anymore. #from(2023.3)")] public Texture probeSamplingDebugTexture; /// /// The debug mesh used to visualize the way probes are sampled for a single pixel in the debug view. /// - [Obsolete("This field is not used anymore.")] + [Obsolete("This field is not used anymore. #from(2023.3)")] public Mesh probeSamplingDebugMesh; /// /// The shader used to visualize probes virtual offset in the debug view. /// - [Obsolete("This field is not used anymore.")] + [Obsolete("This field is not used anymore. #from(2023.3)")] public Shader offsetDebugShader; /// /// The shader used to visualize APV fragmentation. /// - [Obsolete("This field is not used anymore.")] + [Obsolete("This field is not used anymore. #from(2023.3)")] public Shader fragmentationDebugShader; /// /// The compute shader used to interpolate between two lighting scenarios. /// Set to null if blending is not supported. /// - [Obsolete("This field is not used anymore.")] + [Obsolete("This field is not used anymore. #from(2023.3)")] public ComputeShader scenarioBlendingShader; /// /// The compute shader used to upload streamed data to the GPU. /// - [Obsolete("This field is not used anymore.")] + [Obsolete("This field is not used anymore. #from(2023.3)")] public ComputeShader streamingUploadShader; /// /// The /// - [Obsolete("This field is not used anymore.")] + [Obsolete("This field is not used anymore. #from(2023.3)")] public ProbeVolumeSceneData sceneData; /// True if APV is able to show runtime debug information. [Obsolete("This field is not used anymore. Used with the current Shader Stripping Settings. #from(2023.3)")] @@ -692,7 +692,7 @@ public struct RuntimeResources int m_TemporaryDataLocationMemCost; #pragma warning disable 618 - [Obsolete("This field is only kept for migration purpose.")] + [Obsolete("This field is only kept for migration purpose. #from(2023.3)")] internal ProbeVolumeSceneData sceneData; // Kept for migration #pragma warning restore 618 @@ -1744,10 +1744,10 @@ internal void SetMaxSubdivision(int maxSubdivision) } } - internal static int CellSize(int subdivisionLevel) => (int)Mathf.Pow(ProbeBrickPool.kBrickCellCount, subdivisionLevel); - internal float BrickSize(int subdivisionLevel) => m_MinBrickSize * CellSize(subdivisionLevel); + internal static int CellSize(int subdivisionLevel) => ProbeVolumeUtil.CellSize(subdivisionLevel); + internal float BrickSize(int subdivisionLevel) => ProbeVolumeUtil.BrickSize(m_MinBrickSize, subdivisionLevel); internal float MinBrickSize() => m_MinBrickSize; - internal float MaxBrickSize() => BrickSize(m_MaxSubdivision - 1); + internal float MaxBrickSize() => ProbeVolumeUtil.MaxBrickSize(m_MinBrickSize, m_MaxSubdivision); internal Vector3 ProbeOffset() => m_ProbeOffset; internal int GetMaxSubdivision() => m_MaxSubdivision; internal int GetMaxSubdivision(float multiplier) => Mathf.CeilToInt(m_MaxSubdivision * multiplier); diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Lighting/ProbeVolume/ProbeVolume.Migration.cs b/Packages/com.unity.render-pipelines.core/Runtime/Lighting/ProbeVolume/ProbeVolume.Migration.cs index 4e0ab74e575..a3ba0e8714f 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/Lighting/ProbeVolume/ProbeVolume.Migration.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/Lighting/ProbeVolume/ProbeVolume.Migration.cs @@ -54,7 +54,7 @@ void Awake() /// /// If is a global bolume /// - [SerializeField, Obsolete("Use mode instead")] + [SerializeField, Obsolete("Use mode instead. #from(2023.1)")] public bool globalVolume = false; } diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Lighting/ProbeVolume/ProbeVolume.hlsl b/Packages/com.unity.render-pipelines.core/Runtime/Lighting/ProbeVolume/ProbeVolume.hlsl index 97d58df8c8e..73e63fd81e9 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/Lighting/ProbeVolume/ProbeVolume.hlsl +++ b/Packages/com.unity.render-pipelines.core/Runtime/Lighting/ProbeVolume/ProbeVolume.hlsl @@ -749,6 +749,7 @@ void EvaluateAPVL1L2(APVSample apvSample, float3 N, out float3 diffuseLighting) // ------------------------------------------------------------- void EvaluateAdaptiveProbeVolume(APVSample apvSample, float3 normalWS, out float3 bakeDiffuseLighting) { + bakeDiffuseLighting = float3(0.0f, 0.0f, 0.0f); if (apvSample.status != APV_SAMPLE_STATUS_INVALID) { apvSample.Decode(); diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Lighting/ProbeVolume/ProbeVolumeBakingSet.cs b/Packages/com.unity.render-pipelines.core/Runtime/Lighting/ProbeVolume/ProbeVolumeBakingSet.cs index e0b37ef8e2a..fb80883c6bd 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/Lighting/ProbeVolume/ProbeVolumeBakingSet.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/Lighting/ProbeVolume/ProbeVolumeBakingSet.cs @@ -92,7 +92,7 @@ public void Add(CellCounts o) // We keep a separate list with only the guids for the sake of convenience when iterating from outside this class. [SerializeField] private List m_SceneGUIDs = new List(); - [SerializeField, Obsolete("This is now contained in the SceneBakeData structure"), FormerlySerializedAs("scenesToNotBake")] internal List obsoleteScenesToNotBake = new List(); + [SerializeField, Obsolete("This is now contained in the SceneBakeData structure. #from(2023.3)"), FormerlySerializedAs("scenesToNotBake")] internal List obsoleteScenesToNotBake = new List(); [SerializeField, FormerlySerializedAs("lightingScenarios")] internal List m_LightingScenarios = new List(); /// The list of scene GUIDs. diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Lighting/ProbeVolume/ProbeVolumeGlobalSettings.cs b/Packages/com.unity.render-pipelines.core/Runtime/Lighting/ProbeVolume/ProbeVolumeGlobalSettings.cs index 5627919b626..708fb9f4f83 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/Lighting/ProbeVolume/ProbeVolumeGlobalSettings.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/Lighting/ProbeVolume/ProbeVolumeGlobalSettings.cs @@ -82,7 +82,7 @@ class ProbeVolumeBakingResources : IRenderPipelineResources [Serializable] [SupportedOnRenderPipeline()] - [Categorization.CategoryInfo(Name = "Adaptive Probe Volumes", Order = 20)] + [Categorization.CategoryInfo(Name = "Lighting", Order = 20)] class ProbeVolumeGlobalSettings : IRenderPipelineGraphicsSettings { [SerializeField, HideInInspector] diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Lighting/ProbeVolume/ProbeVolumeSceneData.cs b/Packages/com.unity.render-pipelines.core/Runtime/Lighting/ProbeVolume/ProbeVolumeSceneData.cs index 31c5b889faa..c0b8a9ee597 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/Lighting/ProbeVolume/ProbeVolumeSceneData.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/Lighting/ProbeVolume/ProbeVolumeSceneData.cs @@ -14,14 +14,14 @@ namespace UnityEngine.Rendering // Add Profile and baking settings. /// A class containing info about the bounds defined by the probe volumes in various scenes. [System.Serializable] - [Obsolete("This class is no longer necessary for APV implementation.")] + [Obsolete("This class is no longer necessary for APV implementation. #from(2023.3)")] public class ProbeVolumeSceneData - { + { internal Object parentAsset = null; - [SerializeField, FormerlySerializedAs("sceneBounds"), Obsolete("This data is now serialized directly in the baking set asset")] + [SerializeField, FormerlySerializedAs("sceneBounds"), Obsolete("This data is now serialized directly in the baking set asset. #from(2023.3)")] internal SerializedDictionary obsoleteSceneBounds; - [SerializeField, FormerlySerializedAs("hasProbeVolumes"), Obsolete("This data is now serialized directly in the baking set asset")] + [SerializeField, FormerlySerializedAs("hasProbeVolumes"), Obsolete("This data is now serialized directly in the baking set asset. #from(2023.3)")] internal SerializedDictionary obsoleteHasProbeVolumes; /// @@ -35,10 +35,10 @@ public ProbeVolumeSceneData(Object parentAsset) /// Set a reference to the object holding this ProbeVolumeSceneData. /// The object holding this ProbeVolumeSceneData, it will be dirtied every time scene bounds or settings are changed. - [Obsolete] + [Obsolete("#from(2023.3)")] public void SetParentObject(Object parent) { parentAsset = parent; - } - } + } + } } diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Lighting/ProbeVolume/ProbeVolumeUtil.cs b/Packages/com.unity.render-pipelines.core/Runtime/Lighting/ProbeVolume/ProbeVolumeUtil.cs new file mode 100644 index 00000000000..6c12df71aad --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/Lighting/ProbeVolume/ProbeVolumeUtil.cs @@ -0,0 +1,9 @@ +namespace UnityEngine.Rendering +{ + static class ProbeVolumeUtil + { + internal static int CellSize(int subdivisionLevel) => (int)Mathf.Pow(ProbeBrickPool.kBrickCellCount, subdivisionLevel); + internal static float BrickSize(float minBrickSize, int subdivisionLevel) => minBrickSize * CellSize(subdivisionLevel); + internal static float MaxBrickSize(float minBrickSize, int maxSubDivision) => BrickSize(minBrickSize, maxSubDivision - 1); + } +} diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Lighting/ProbeVolume/ProbeVolumeUtil.cs.meta b/Packages/com.unity.render-pipelines.core/Runtime/Lighting/ProbeVolume/ProbeVolumeUtil.cs.meta new file mode 100644 index 00000000000..0f2ee6473d2 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/Lighting/ProbeVolume/ProbeVolumeUtil.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: e60162c3a6f6411491059635f101f6b9 +timeCreated: 1743000507 \ No newline at end of file diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Lighting/ProbeVolume/ProbeVolumesOptions.cs b/Packages/com.unity.render-pipelines.core/Runtime/Lighting/ProbeVolume/ProbeVolumesOptions.cs index 2e3518ff0df..2ddb14a8ef4 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/Lighting/ProbeVolume/ProbeVolumesOptions.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/Lighting/ProbeVolume/ProbeVolumesOptions.cs @@ -70,7 +70,7 @@ public sealed class ProbeVolumesOptions : VolumeComponent /// /// This parameter isn't used anymore. /// - [Obsolete("This parameter isn't used anymore.")] + [Obsolete("This parameter isn't used anymore. #from(6000.0)")] public ClampedFloatParameter minValidDotProductValue = new ClampedFloatParameter(0.1f, -1.0f, 0.33f); /// diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Lighting/ProbeVolume/ShaderVariablesProbeVolumes.cs b/Packages/com.unity.render-pipelines.core/Runtime/Lighting/ProbeVolume/ShaderVariablesProbeVolumes.cs index 752f1cab935..c4143b98d1e 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/Lighting/ProbeVolume/ShaderVariablesProbeVolumes.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/Lighting/ProbeVolume/ShaderVariablesProbeVolumes.cs @@ -55,12 +55,12 @@ public enum APVLeakReductionMode /// /// Obsolete, kept for migration. /// - [Obsolete("Performance")] + [Obsolete("Performance #from(6000.0)")] ValidityBased = Performance, /// /// Obsolete, kept for migration. /// - [Obsolete("Quality")] + [Obsolete("Quality #from(6000.0)")] ValidityAndNormalBased = Quality, } diff --git a/Packages/com.unity.render-pipelines.core/Runtime/PostProcessing/IPostProcessComponent.cs b/Packages/com.unity.render-pipelines.core/Runtime/PostProcessing/IPostProcessComponent.cs index 8c154a31857..b5a38aa2ae8 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/PostProcessing/IPostProcessComponent.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/PostProcessing/IPostProcessComponent.cs @@ -17,7 +17,7 @@ public interface IPostProcessComponent /// Tells if the post process can run the effect on-tile or if it needs a full pass. /// /// true if it can run on-tile, false otherwise. - [Obsolete("Unused #from(2023.1)", false)] + [Obsolete("Unused #from(2023.1)")] bool IsTileCompatible() => false; } } diff --git a/Packages/com.unity.render-pipelines.core/Runtime/PostProcessing/LensFlareCommonSRP.cs b/Packages/com.unity.render-pipelines.core/Runtime/PostProcessing/LensFlareCommonSRP.cs index 622cc35403e..a77e76c7b1c 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/PostProcessing/LensFlareCommonSRP.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/PostProcessing/LensFlareCommonSRP.cs @@ -967,7 +967,7 @@ static bool IsCurrentPrefabLensFlareComponent(GameObject go, LensFlareComponentS /// ShaderID for the FlareData2 /// ShaderID for the FlareData3 /// ShaderID for the FlareData4 - [Obsolete("Use ComputeOcclusion without _FlareOcclusionTex.._FlareData4 parameters.")] + [Obsolete("Use ComputeOcclusion without _FlareOcclusionTex.._FlareData4 parameters. #from(2023.3)")] static public void ComputeOcclusion(Material lensFlareShader, Camera cam, XRPass xr, int xrIndex, float actualWidth, float actualHeight, bool usePanini, float paniniDistance, float paniniCropToFit, bool isCameraRelative, @@ -1057,7 +1057,7 @@ static public void ComputeOcclusion(Material lensFlareShader, Camera cam, XRPass /// ShaderID for the FlareData2 /// ShaderID for the FlareData3 /// ShaderID for the FlareData4 - [Obsolete("Use ComputeOcclusion without _FlareOcclusionTex.._FlareData4 parameters.")] + [Obsolete("Use ComputeOcclusion without _FlareOcclusionTex.._FlareData4 parameters. #from(2023.3)")] static public void ComputeOcclusion(Material lensFlareShader, Camera cam, XRPass xr, int xrIndex, float actualWidth, float actualHeight, bool usePanini, float paniniDistance, float paniniCropToFit, bool isCameraRelative, @@ -1703,7 +1703,7 @@ static void ProcessLensFlareSRPElements(ref LensFlareDataElementSRP[] elements, /// ShaderID for the FlareData3 /// ShaderID for the FlareData4 /// Debug View which setup black background to see only lens flare - [Obsolete("Use DoLensFlareDataDrivenCommon without _FlareOcclusionRemapTex.._FlareData4 parameters.")] + [Obsolete("Use DoLensFlareDataDrivenCommon without _FlareOcclusionRemapTex.._FlareData4 parameters. #from(2023.3)")] static public void DoLensFlareDataDrivenCommon(Material lensFlareShader, Camera cam, Rect viewport, XRPass xr, int xrIndex, float actualWidth, float actualHeight, bool usePanini, float paniniDistance, float paniniCropToFit, @@ -1820,7 +1820,7 @@ static public void DoLensFlareDataDrivenCommon(Material lensFlareShader, Camera /// ShaderID for the FlareData3 /// ShaderID for the FlareData4 /// Debug View which setup black background to see only lens flare - [Obsolete("Use DoLensFlareDataDrivenCommon without _FlareOcclusionRemapTex.._FlareData4 parameters.")] + [Obsolete("Use DoLensFlareDataDrivenCommon without _FlareOcclusionRemapTex.._FlareData4 parameters. #from(2023.3)")] static public void DoLensFlareDataDrivenCommon(Material lensFlareShader, Camera cam, Rect viewport, XRPass xr, int xrIndex, float actualWidth, float actualHeight, bool usePanini, float paniniDistance, float paniniCropToFit, @@ -2190,7 +2190,7 @@ static public void DoLensFlareScreenSpaceCommon( /// ShaderID for the LensFlareScreenSpaceParams4 /// ShaderID for the LensFlareScreenSpaceParams5 /// Information if we are in debug mode or not - [Obsolete("Use DoLensFlareScreenSpaceCommon without _Shader IDs parameters.")] + [Obsolete("Use DoLensFlareScreenSpaceCommon without _Shader IDs parameters. #from(2023.3)")] static public void DoLensFlareScreenSpaceCommon( Material lensFlareShader, Camera cam, diff --git a/Packages/com.unity.render-pipelines.core/Runtime/PostProcessing/LensFlareComponentSRP.cs b/Packages/com.unity.render-pipelines.core/Runtime/PostProcessing/LensFlareComponentSRP.cs index 320e96fe88c..5154a6decf1 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/PostProcessing/LensFlareComponentSRP.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/PostProcessing/LensFlareComponentSRP.cs @@ -84,7 +84,7 @@ public LensFlareDataSRP lensFlareData /// Enable Occlusion using Background Cloud (for instance: CloudLayer) /// Please use useFogOpacityOcclusion instead. /// - [Obsolete("Replaced by environmentOcclusion.")] + [Obsolete("Replaced by environmentOcclusion. #from(6000.0)")] public bool useBackgroundCloudOcclusion = false; /// Enable occlusion from environment effects supported by the render pipeline. This may include opacity from volumetric clouds, background clouds, fog and water. @@ -94,7 +94,7 @@ public LensFlareDataSRP lensFlareData /// /// Enable Occlusion with Water /// - [Obsolete("Replaced by environmentOcclusion.")] + [Obsolete("Replaced by environmentOcclusion. #from(6000.0)")] public bool useWaterOcclusion = false; /// /// Radius around the light used to occlude the flare (value in world space) @@ -124,7 +124,7 @@ public LensFlareDataSRP lensFlareData /// If volumetricCloudOcclusion is true then use the volumetric cloud (on HDRP only) for the occlusion /// Please use useFogOpacityOcclusion instead. /// - [Obsolete("Please use environmentOcclusion instead.")] + [Obsolete("Please use environmentOcclusion instead. #from(6000.0)")] public bool volumetricCloudOcclusion = false; /// Our default celestial body will have an angular radius of 3.3 degrees. This is an arbitrary number, but must be kept constant diff --git a/Packages/com.unity.render-pipelines.core/Runtime/PostProcessing/LensFlareDataSRP.cs b/Packages/com.unity.render-pipelines.core/Runtime/PostProcessing/LensFlareDataSRP.cs index 61945b8f2f7..4db6db78656 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/PostProcessing/LensFlareDataSRP.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/PostProcessing/LensFlareDataSRP.cs @@ -1,4 +1,3 @@ -using NUnit.Framework; using UnityEngine.Serialization; namespace UnityEngine.Rendering diff --git a/Packages/com.unity.render-pipelines.core/Runtime/RenderGraph/Compiler/NativePassCompiler.cs b/Packages/com.unity.render-pipelines.core/Runtime/RenderGraph/Compiler/NativePassCompiler.cs index 8fd3e1db747..12d21e179eb 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/RenderGraph/Compiler/NativePassCompiler.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/RenderGraph/Compiler/NativePassCompiler.cs @@ -26,6 +26,8 @@ internal struct RenderGraphInputInfo RenderGraphCompilationCache m_CompilationCache; + RenderTargetIdentifier[][] m_TempMRTArrays = null; + internal const int k_EstimatedPassCount = 100; internal const int k_MaxSubpass = 8; // Needs to match with RenderPassSetup.h @@ -38,6 +40,10 @@ public NativePassCompiler(RenderGraphCompilationCache cache) m_CompilationCache = cache; defaultContextData = new CompilerContextData(); toVisitPassIds = new Stack(k_EstimatedPassCount); + + m_TempMRTArrays = new RenderTargetIdentifier[RenderGraph.kMaxMRTCount][]; + for (int i = 0; i < RenderGraph.kMaxMRTCount; ++i) + m_TempMRTArrays[i] = new RenderTargetIdentifier[i + 1]; } // IDisposable implementation @@ -760,15 +766,14 @@ private void ExecuteInitializeResource(InternalRenderGraphContext rgContext, Ren { ref readonly var resInfo = ref contextData.UnversionedResourceData(res); - if (!resInfo.isImported) - { - bool usedAsFragmentThisPass = subPass.IsUsedAsFragment(res, contextData); + bool usedAsFragmentThisPass = subPass.IsUsedAsFragment(res, contextData); - // This resource is read for the first time as a regular texture and not as a framebuffer attachment - // so we need to explicitly clear it, as loadAction.clear only works on framebuffer attachments - // TODO: Should this be a performance warning?? Maybe rare enough in practice? - resources.forceManualClearOfResource = !usedAsFragmentThisPass; + // This resource is read for the first time as a regular texture and not as a framebuffer attachment + // so if requested we need to explicitly clear it, as loadAction.clear only works on framebuffer attachments + resources.forceManualClearOfResource = !usedAsFragmentThisPass; + if (!resInfo.isImported) + { // If the compiler has detected that this resource can be memoryless, // we need to update the texture descriptor that will be used to create the memoryless RTHandle. // Memoryless resources are created to allow implicit conversion from TextureHandle to RTHandle. @@ -784,7 +789,7 @@ private void ExecuteInitializeResource(InternalRenderGraphContext rgContext, Ren } else // Imported resource { - if (resInfo.clear && !resInfo.memoryLess) + if (resInfo.clear && !resInfo.memoryLess && resources.forceManualClearOfResource) resources.ClearResource(rgContext, res.iType, res.index); } } @@ -1410,28 +1415,27 @@ private void ExecuteDestroyResource(InternalRenderGraphContext rgContext, Render private void ExecuteSetRenderTargets(RenderGraphPass pass, InternalRenderGraphContext rgContext) { - if (pass.depthAccess.textureHandle.IsValid() || pass.colorBufferMaxIndex != -1) + var depthBufferIsValid = pass.depthAccess.textureHandle.IsValid(); + if (depthBufferIsValid || pass.colorBufferMaxIndex != -1) { - var m_Resources = graph.m_ResourcesForDebugOnly; - - var mrtArray = rgContext.renderGraphPool.GetTempArray(pass.colorBufferMaxIndex + 1); - var colorBuffers = pass.colorBufferAccess; - + var resources = graph.m_ResourcesForDebugOnly; + var colorBufferAccess = pass.colorBufferAccess; if (pass.colorBufferMaxIndex > 0) { + var mrtArray = m_TempMRTArrays[pass.colorBufferMaxIndex]; + for (int i = 0; i <= pass.colorBufferMaxIndex; ++i) { - if (!colorBuffers[i].textureHandle.IsValid()) +#if DEVELOPMENT_BUILD || UNITY_EDITOR + if (!colorBufferAccess[i].textureHandle.IsValid()) throw new InvalidOperationException("MRT setup is invalid. Some indices are not used."); - - mrtArray[i] = m_Resources.GetTexture(colorBuffers[i].textureHandle); +#endif + mrtArray[i] = resources.GetTexture(colorBufferAccess[i].textureHandle); } - CoreUtils.SetViewport(rgContext.cmd, m_Resources.GetTexture(colorBuffers[0].textureHandle)); - - if (pass.depthAccess.textureHandle.IsValid()) + if (depthBufferIsValid) { - CoreUtils.SetRenderTarget(rgContext.cmd, mrtArray, m_Resources.GetTexture(pass.depthAccess.textureHandle)); + CoreUtils.SetRenderTarget(rgContext.cmd, mrtArray, resources.GetTexture(pass.depthAccess.textureHandle)); } else { @@ -1440,31 +1444,26 @@ private void ExecuteSetRenderTargets(RenderGraphPass pass, InternalRenderGraphCo } else { - if (pass.depthAccess.textureHandle.IsValid()) + if (depthBufferIsValid) { if (pass.colorBufferMaxIndex > -1) { - CoreUtils.SetRenderTarget(rgContext.cmd, m_Resources.GetTexture(pass.colorBufferAccess[0].textureHandle), - m_Resources.GetTexture(pass.depthAccess.textureHandle)); - CoreUtils.SetViewport(rgContext.cmd, m_Resources.GetTexture(pass.colorBufferAccess[0].textureHandle)); + CoreUtils.SetRenderTarget(rgContext.cmd, resources.GetTexture(pass.colorBufferAccess[0].textureHandle), + resources.GetTexture(pass.depthAccess.textureHandle)); } else { - CoreUtils.SetRenderTarget(rgContext.cmd, m_Resources.GetTexture(pass.depthAccess.textureHandle)); - CoreUtils.SetViewport(rgContext.cmd, m_Resources.GetTexture(pass.depthAccess.textureHandle)); + CoreUtils.SetRenderTarget(rgContext.cmd, resources.GetTexture(pass.depthAccess.textureHandle)); } } else { if (pass.colorBufferAccess[0].textureHandle.IsValid()) { - CoreUtils.SetRenderTarget(rgContext.cmd, m_Resources.GetTexture(pass.colorBufferAccess[0].textureHandle)); - CoreUtils.SetViewport(rgContext.cmd, m_Resources.GetTexture(pass.colorBufferAccess[0].textureHandle)); + CoreUtils.SetRenderTarget(rgContext.cmd, resources.GetTexture(pass.colorBufferAccess[0].textureHandle)); } else - { - throw new InvalidOperationException("Neither depth nor color render targets are correctly setup at pass " + pass.name + "."); - } + throw new InvalidOperationException("Neither Depth nor color render targets are correctly setup at pass " + pass.name + "."); } } } @@ -1496,41 +1495,25 @@ internal unsafe void ExecuteSetRandomWriteTarget(in CommandBuffer cmd, RenderGra } } - internal void ExecuteGraphNode(ref InternalRenderGraphContext rgContext, RenderGraphResourceRegistry resources, RenderGraphPass pass) + internal void ExecuteRenderGraphPass(ref InternalRenderGraphContext rgContext, RenderGraphResourceRegistry resources, RenderGraphPass pass) { -#if THROW_ON_SETRENDERTARGET_DEBUG - if (pass.type == RenderGraphPassType.Raster) - { - CommandBuffer.ThrowOnSetRenderTarget = true; - } -#endif - try - { - rgContext.executingPass = pass; - if (!pass.HasRenderFunc()) - { - throw new InvalidOperationException(string.Format("RenderPass {0} was not provided with an execute function.", pass.name)); - } + rgContext.executingPass = pass; - using (new ProfilingScope(rgContext.cmd, pass.customSampler)) - { - pass.Execute(rgContext); - - foreach (var tex in pass.setGlobalsList) - { - rgContext.cmd.SetGlobalTexture(tex.Item2, tex.Item1); - } - } + if (!pass.HasRenderFunc()) + { + throw new InvalidOperationException( + string.Format("RenderPass {0} was not provided with an execute function.", pass.name)); } - finally + + using (new ProfilingScope(rgContext.cmd, pass.customSampler)) { -#if THROW_ON_SETRENDERTARGET_DEBUG - if (pass.type == RenderGraphPassType.Raster) + pass.Execute(rgContext); + + foreach (var tex in pass.setGlobalsList) { - CommandBuffer.ThrowOnSetRenderTarget = false; + rgContext.cmd.SetGlobalTexture(tex.Item2, tex.Item1); } -#endif } } @@ -1544,20 +1527,16 @@ public void ExecuteGraph(InternalRenderGraphContext rgContext, RenderGraphResour for (int passIndex = 0; passIndex < contextData.passData.Length; passIndex++) { - ref var pass = ref contextData.passData.ElementAt(passIndex); - - if (pass.culled) + ref var passData = ref contextData.passData.ElementAt(passIndex); + if (passData.culled) continue; - bool isRaster = pass.type == RenderGraphPassType.Raster; - bool isUnsafe = pass.type == RenderGraphPassType.Unsafe; - - ExecuteInitializeResource(rgContext, resources, pass); + bool nrpBegan = false; + ExecuteInitializeResource(rgContext, resources, passData); - var isAsyncCompute = pass.type == RenderGraphPassType.Compute && pass.asyncCompute == true; - if (isAsyncCompute) + if (passData.type == RenderGraphPassType.Compute && passData.asyncCompute) { - if (rgContext.contextlessTesting == false) + if (!rgContext.contextlessTesting) rgContext.renderContext.ExecuteCommandBuffer(rgContext.cmd); rgContext.cmd.Clear(); @@ -1567,18 +1546,17 @@ public void ExecuteGraph(InternalRenderGraphContext rgContext, RenderGraphResour } // also make sure to insert fence=waits for multiple queue syncs - if (pass.waitOnGraphicsFencePassId != -1) + if (passData.waitOnGraphicsFencePassId != -1) { - var fence = contextData.fences[pass.waitOnGraphicsFencePassId]; + var fence = contextData.fences[passData.waitOnGraphicsFencePassId]; rgContext.cmd.WaitOnAsyncGraphicsFence(fence); } - var nrpBegan = false; - if (isRaster && pass.mergeState <= PassMergeState.Begin) + if (passData.type == RenderGraphPassType.Raster && passData.mergeState <= PassMergeState.Begin) { - if (pass.nativePassIndex >= 0) + if (passData.nativePassIndex >= 0) { - ref var nativePass = ref contextData.nativePassData.ElementAt(pass.nativePassIndex); + ref var nativePass = ref contextData.nativePassData.ElementAt(passData.nativePassIndex); if (nativePass.fragments.size > 0) { ExecuteBeginRenderPass(rgContext, resources, ref nativePass); @@ -1587,97 +1565,103 @@ public void ExecuteGraph(InternalRenderGraphContext rgContext, RenderGraphResour } } } - else if (isUnsafe) + + else if (passData.type == RenderGraphPassType.Unsafe) { ExecuteSetRenderTargets(passes[passIndex], rgContext); } - if (pass.mergeState >= PassMergeState.SubPass) + if (passData.mergeState >= PassMergeState.SubPass) { - if (pass.beginNativeSubpass) + if (passData.beginNativeSubpass) { if (!inRenderPass) { - throw new Exception("Compiler error: Pass is marked as beginning a native sub pass but no pass is currently active."); + throw new Exception( + "Compiler error: Pass is marked as beginning a native sub pass but no pass is currently active."); } rgContext.cmd.NextSubPass(); } } - if (pass.numRandomAccessResources > 0) + if (passData.numRandomAccessResources > 0) { - foreach (var randomWriteAttachment in pass.RandomWriteTextures(contextData)) + foreach (var randomWriteAttachment in passData.RandomWriteTextures(contextData)) { - ExecuteSetRandomWriteTarget(rgContext.cmd, resources, randomWriteAttachment.index, randomWriteAttachment.resource); + ExecuteSetRandomWriteTarget(rgContext.cmd, resources, randomWriteAttachment.index, + randomWriteAttachment.resource); } } -#if THROW_ON_SETRENDERTARGET_DEBUG - if (passes[pass.passId].type == RenderGraphPassType.Raster) - { - CommandBuffer.ThrowOnSetRenderTarget = true; - } -#endif + ExecuteRenderGraphPass(ref rgContext, resources, passes[passData.passId]); + EndRenderGraphPass(ref rgContext, ref passData, ref inRenderPass, resources, nrpBegan); - ExecuteGraphNode(ref rgContext, resources, passes[pass.passId]); + } + } - // If we set any uavs clear them again so they are local to the pass - if (pass.numRandomAccessResources > 0) - { - rgContext.cmd.ClearRandomWriteTargets(); - } + void EndRenderGraphPass(ref InternalRenderGraphContext rgContext, ref PassData passData, + ref bool inRenderPass, RenderGraphResourceRegistry resources, bool nrpBegan) + { + // If we set any uavs clear them again so they are local to the pass + if (passData.numRandomAccessResources > 0) + { + rgContext.cmd.ClearRandomWriteTargets(); + } - // should we insert a fence to sync between difference queues? - if (pass.insertGraphicsFence) - { - var fence = rgContext.cmd.CreateAsyncGraphicsFence(); - contextData.fences[pass.passId] = fence; - } + // should we insert a fence to sync between difference queues? + if (passData.insertGraphicsFence) + { + var fence = rgContext.cmd.CreateAsyncGraphicsFence(); + contextData.fences[passData.passId] = fence; + } + + if (passData.type == RenderGraphPassType.Raster) + { + var hasRenderPassEnded = (passData.mergeState == PassMergeState.None && nrpBegan) + || passData.mergeState == PassMergeState.End; - if (isRaster) + if (hasRenderPassEnded) { - if ((pass.mergeState == PassMergeState.None && nrpBegan) - || pass.mergeState == PassMergeState.End) + if (passData.nativePassIndex >= 0) { - if (pass.nativePassIndex >= 0) + ref var nativePass = ref contextData.nativePassData.ElementAt(passData.nativePassIndex); + if (nativePass.fragments.size > 0) { - ref var nativePass = ref contextData.nativePassData.ElementAt(pass.nativePassIndex); - if (nativePass.fragments.size > 0) + if (!inRenderPass) { - if (!inRenderPass) - { - throw new Exception("Compiler error: Generated a subpass pass but no pass is currently active."); - } + throw new Exception( + "Compiler error: Generated a subpass pass but no pass is currently active."); + } - if (nativePass.hasFoveatedRasterization) - { - rgContext.cmd.SetFoveatedRenderingMode(FoveatedRenderingMode.Disabled); - } + if (nativePass.hasFoveatedRasterization) + { + rgContext.cmd.SetFoveatedRenderingMode(FoveatedRenderingMode.Disabled); + } - rgContext.cmd.EndRenderPass(); - CommandBuffer.ThrowOnSetRenderTarget = false; - inRenderPass = false; + rgContext.cmd.EndRenderPass(); + CommandBuffer.ThrowOnSetRenderTarget = false; + inRenderPass = false; - // VRS ShadingRate(Image) cannot be set inside a render pass (cmdBuf). - // ShadingRate is set before BeginRenderPass and here we ResetShadingRate after EndRenderPass. - if (nativePass.hasShadingRateStates || nativePass.hasShadingRateImage) - { - rgContext.cmd.ResetShadingRate(); - } + // VRS ShadingRate(Image) cannot be set inside a render pass (cmdBuf). + // ShadingRate is set before BeginRenderPass and here we ResetShadingRate after EndRenderPass. + if (nativePass.hasShadingRateStates || nativePass.hasShadingRateImage) + { + rgContext.cmd.ResetShadingRate(); } } } } - else if (isAsyncCompute) - { - rgContext.renderContext.ExecuteCommandBufferAsync(rgContext.cmd, ComputeQueueType.Background); - CommandBufferPool.Release(rgContext.cmd); - rgContext.cmd = previousCommandBuffer; - } - - ExecuteDestroyResource(rgContext, resources, ref pass); } + else if (passData.type == RenderGraphPassType.Compute && passData.asyncCompute) + { + rgContext.renderContext.ExecuteCommandBufferAsync(rgContext.cmd, ComputeQueueType.Background); + CommandBufferPool.Release(rgContext.cmd); + rgContext.cmd = previousCommandBuffer; + } + + ExecuteDestroyResource(rgContext, resources, ref passData); } } } + diff --git a/Packages/com.unity.render-pipelines.core/Runtime/RenderGraph/IRenderGraphBuilder.cs b/Packages/com.unity.render-pipelines.core/Runtime/RenderGraph/IRenderGraphBuilder.cs index f27a9e2f131..20c694adfac 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/RenderGraph/IRenderGraphBuilder.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/RenderGraph/IRenderGraphBuilder.cs @@ -178,15 +178,20 @@ void SetRenderAttachment(TextureHandle tex, int index, AccessFlags flags = Acces /// Indicates this pass will read a texture on the current fragment position but not unnecessarily modify it. Although not explicitly visible in shader code /// Reading may happen depending on the rasterization state, e.g. Blending (read and write) or Z-Testing (read only) may read the buffer. /// - /// Note: The rendergraph does not know what content will be rendered in the bound texture. By default it assumes only partial data - /// is written (e.g. a small rectangle is drawn on the screen) so it will preserve the existing rendertarget content (e.g. behind/around the triangle) - /// if you know you will write the full screen the AccessFlags.WriteAll should be used instead as it will give better performance. /// /// Texture to use during this pass. /// Index the shader will use to access this texture. /// How this pass will access the texture. /// Selects which mip map to used. /// Used to index into a texture array. Use -1 to use bind all slices. + /// + /// + /// Note: The rendergraph does not know what content will be rendered in the bound texture. By default it assumes only partial data + /// is written (e.g. a small rectangle is drawn on the screen) so it will preserve the existing rendertarget content (e.g. behind/around the triangle) + /// if you know you will write the full screen the AccessFlags.WriteAll should be used instead as it will give better performance. + /// + /// Note: Using same texture handle with different depth slices at different rendertarget indices is not supported. + /// void SetRenderAttachment(TextureHandle tex, int index, AccessFlags flags, int mipLevel, int depthSlice); /// @@ -220,6 +225,10 @@ void SetRenderAttachmentDepth(TextureHandle tex, AccessFlags flags = AccessFlags /// How this pass will access the texture. /// Selects which mip map to used. /// Used to index into a texture array. Use -1 to use bind all slices. + /// + /// + /// Using same texture handle with different depth slices at different rendertarget indices is not supported. + /// void SetRenderAttachmentDepth(TextureHandle tex, AccessFlags flags, int mipLevel, int depthSlice); /// @@ -315,6 +324,10 @@ public interface IRasterRenderGraphBuilder : IRenderAttachmentRenderGraphBuilder /// to match the index passed to SetInputAttachment for this texture. /// /// + /// + /// This API is not universally supported across all platforms. In particular, using input attachments in combination with MSAA may be unsupported on certain targets. + /// To ensure compatibility, use `RenderGraphUtils.IsFramebufferFetchSupportedOnCurrentPlatform` to verify support at runtime, as platform capabilities may vary. + /// /// Texture to use during this pass. /// Index the shader will use to access this texture. /// How this pass will access the texture. Default value is set to AccessFlag.Read. Writing is currently not supported on any platform. @@ -336,6 +349,10 @@ void SetInputAttachment(TextureHandle tex, int index, AccessFlags flags = Access /// How this pass will access the texture. Writing is currently not supported on any platform. /// Selects which mip map to used. /// Used to index into a texture array. Use -1 to use bind all slices. + /// + /// + /// Using same texture handle with different depth slices at different rendertarget indices is not supported. + /// void SetInputAttachment(TextureHandle tex, int index, AccessFlags flags, int mipLevel, int depthSlice); /// diff --git a/Packages/com.unity.render-pipelines.core/Runtime/RenderGraph/RenderGraph.cs b/Packages/com.unity.render-pipelines.core/Runtime/RenderGraph/RenderGraph.cs index bf153ad051f..18ae21bbe9e 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/RenderGraph/RenderGraph.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/RenderGraph/RenderGraph.cs @@ -230,7 +230,7 @@ public void FromInternalContext(InternalRenderGraphContext context) public struct RenderGraphParameters { ///Identifier for this render graph execution. - [Obsolete("Not used anymore. The debugging tools use the name of the object identified by executionId. #from(6000.3)", false)] + [Obsolete("Not used anymore. The debugging tools use the name of the object identified by executionId. #from(6000.3)")] public string executionName; ///Identifier for this render graph execution (i.e. EntityId of the Camera rendering). Used for debugging tools. public EntityId executionId; @@ -1103,11 +1103,23 @@ public RendererListHandle CreateSkyboxRendererList(in Camera camera, Matrix4x4 p /// External Graphics Buffer that needs to be imported. /// The imported graphics buffer will be released after usage. /// A new GraphicsBufferHandle. + [Obsolete("ImportBuffer with forceRelease parameter is deprecated. Use ImportBuffer without it instead. #from(6000.3)")] public BufferHandle ImportBuffer(GraphicsBuffer graphicsBuffer, bool forceRelease = false) { - CheckNotUsedWhenExecuting(); + return ImportBuffer(graphicsBuffer); + } - return m_Resources.ImportBuffer(graphicsBuffer, forceRelease); + /// + /// Import an external Graphics Buffer to the Render Graph. + /// Any pass writing to an imported graphics buffer will be considered having side effects and can't be automatically culled. + /// + /// External Graphics Buffer that needs to be imported. + /// A new GraphicsBufferHandle. + public BufferHandle ImportBuffer(GraphicsBuffer graphicsBuffer) + { + CheckNotUsedWhenExecuting(); + + return m_Resources.ImportBuffer(graphicsBuffer); } /// @@ -1562,8 +1574,13 @@ public bool ResetGraphAndLogException(Exception e) m_ExecutionExceptionWasRaised = true; } + CommandBuffer.ThrowOnSetRenderTarget = false; + CleanupResourcesAndGraph(); + // If there has been an error, we have to flush the command being built along the RG data structure, + // because otherwise the command might try to use resources we just deleted. + m_RenderGraphContext.cmd.Clear(); return m_RenderGraphContext.contextlessTesting; } @@ -1631,14 +1648,14 @@ public void BeginProfilingSampler(ProfilingSampler sampler, if (sampler == null) return; - using (var builder = AddRenderPass(k_BeginProfilingSamplerPassName, out var passData, (ProfilingSampler)null, file, line)) + using (var builder = AddUnsafePass(k_BeginProfilingSamplerPassName, out var passData, (ProfilingSampler)null, file, line)) { passData.sampler = sampler; builder.AllowPassCulling(false); builder.GenerateDebugData(false); - builder.SetRenderFunc((ProfilingScopePassData data, RenderGraphContext ctx) => + builder.SetRenderFunc((ProfilingScopePassData data, UnsafeGraphContext ctx) => { - data.sampler.Begin(ctx.cmd); + data.sampler.Begin(CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd)); }); } } @@ -1656,14 +1673,14 @@ public void EndProfilingSampler(ProfilingSampler sampler, if (sampler == null) return; - using (var builder = AddRenderPass(k_EndProfilingSamplerPassName, out var passData, (ProfilingSampler)null, file, line)) + using (var builder = AddUnsafePass(k_EndProfilingSamplerPassName, out var passData, (ProfilingSampler)null, file, line)) { passData.sampler = sampler; builder.AllowPassCulling(false); builder.GenerateDebugData(false); - builder.SetRenderFunc((ProfilingScopePassData data, RenderGraphContext ctx) => + builder.SetRenderFunc((ProfilingScopePassData data, UnsafeGraphContext ctx) => { - data.sampler.End(ctx.cmd); + data.sampler.End(CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd)); }); } } @@ -2134,10 +2151,9 @@ void UpdateResourceAllocationAndSynchronization() CompiledResourceInfo resourceInfo = resourceInfos[i]; bool sharedResource = m_Resources.IsRenderGraphResourceShared((RenderGraphResourceType)type, i); - bool forceRelease = m_Resources.IsRenderGraphResourceForceReleased((RenderGraphResourceType) type, i); - + // Imported resource needs neither creation nor release. - if (resourceInfo.imported && !sharedResource && !forceRelease) + if (resourceInfo.imported && !sharedResource) continue; // Resource creation diff --git a/Packages/com.unity.render-pipelines.core/Runtime/RenderGraph/RenderGraphBuilders.cs b/Packages/com.unity.render-pipelines.core/Runtime/RenderGraph/RenderGraphBuilders.cs index b81f9d475c2..1d37fafe61b 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/RenderGraph/RenderGraphBuilders.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/RenderGraph/RenderGraphBuilders.cs @@ -1,6 +1,7 @@ using System; using System.Diagnostics; using UnityEngine.Experimental.Rendering; +using static UnityEngine.Rendering.RenderGraphModule.RenderGraph; namespace UnityEngine.Rendering.RenderGraphModule { @@ -395,60 +396,37 @@ private void CheckUseFragment(TextureHandle tex, bool isDepth) public void SetRenderAttachment(TextureHandle tex, int index, AccessFlags flags, int mipLevel, int depthSlice) { CheckUseFragment(tex, false); - ResourceHandle result = UseResource(tex.handle, flags); - // Note the version for the attachments is a bit arbitrary so we just use the latest for now - // it doesn't really matter as it's really the Read/Write lists that determine that - // This is just to keep track of the handle->mrt index mapping - var th = new TextureHandle(); - th.handle = result; - m_RenderPass.SetColorBufferRaw(th, index, flags, mipLevel, depthSlice); + var versionedTextureHandle = new TextureHandle(UseResource(tex.handle, flags)); + m_RenderPass.SetColorBufferRaw(versionedTextureHandle, index, flags, mipLevel, depthSlice); } public void SetInputAttachment(TextureHandle tex, int index, AccessFlags flags, int mipLevel, int depthSlice) { + CheckFrameBufferFetchEmulationIsSupported(tex); + CheckUseFragment(tex, false); - ResourceHandle result = UseResource(tex.handle, flags); - // Note the version for the attachments is a bit arbitrary so we just use the latest for now - // it doesn't really matter as it's really the Read/Write lists that determine that - // This is just to keep track of the handle->mrt index mapping - var th = new TextureHandle(); - th.handle = result; - m_RenderPass.SetFragmentInputRaw(th, index, flags, mipLevel, depthSlice); + var versionedTextureHandle = new TextureHandle(UseResource(tex.handle, flags)); + m_RenderPass.SetFragmentInputRaw(versionedTextureHandle, index, flags, mipLevel, depthSlice); } public void SetRenderAttachmentDepth(TextureHandle tex, AccessFlags flags, int mipLevel, int depthSlice) { CheckUseFragment(tex, true); - ResourceHandle result = UseResource(tex.handle, flags); - // Note the version for the attachments is a bit arbitrary so we just use the latest for now - // it doesn't really matter as it's really the Read/Write lists that determine that - // This is just to keep track to bind this handle as a depth texture. - var th = new TextureHandle(); - th.handle = result; - m_RenderPass.SetDepthBufferRaw(th, flags, mipLevel, depthSlice); + var versionedTextureHandle = new TextureHandle(UseResource(tex.handle, flags)); + m_RenderPass.SetDepthBufferRaw(versionedTextureHandle, flags, mipLevel, depthSlice); } public TextureHandle SetRandomAccessAttachment(TextureHandle input, int index, AccessFlags flags = AccessFlags.Read) { CheckNotUseFragment(input); ResourceHandle result = UseResource(input.handle, flags); - - // Note the version for the attachments is a bit arbitrary so we just use the latest for now - // it doesn't really matter as it's really the Read/Write lists that determine that - // This is just to keep track of the resources to bind before execution - var th = new TextureHandle(); - th.handle = result; - m_RenderPass.SetRandomWriteResourceRaw(th.handle, index, false, flags); + m_RenderPass.SetRandomWriteResourceRaw(result, index, false, flags); return input; } public BufferHandle UseBufferRandomAccess(BufferHandle input, int index, AccessFlags flags = AccessFlags.Read) { var h = UseBuffer(input, flags); - - // Note the version for the attachments is a bit arbitrary so we just use the latest for now - // it doesn't really matter as it's really the Read/Write lists that determine that - // This is just to keep track of the resources to bind before execution m_RenderPass.SetRandomWriteResourceRaw(h.handle, index, true, flags); return input; } @@ -456,10 +434,6 @@ public BufferHandle UseBufferRandomAccess(BufferHandle input, int index, AccessF public BufferHandle UseBufferRandomAccess(BufferHandle input, int index, bool preserveCounterValue, AccessFlags flags = AccessFlags.Read) { var h = UseBuffer(input, flags); - - // Note the version for the attachments is a bit arbitrary so we just use the latest for now - // it doesn't really matter as it's really the Read/Write lists that determine that - // This is just to keep track of the resources to bind before execution m_RenderPass.SetRandomWriteResourceRaw(h.handle, index, preserveCounterValue, flags); return input; } @@ -521,6 +495,25 @@ void CheckResource(in ResourceHandle res, bool checkTransientReadWrite = false) } } + [Conditional("DEVELOPMENT_BUILD"), Conditional("UNITY_EDITOR")] + void CheckFrameBufferFetchEmulationIsSupported(in TextureHandle tex) + { + if (enableValidityChecks) + { + if (!Util.RenderGraphUtils.IsFramebufferFetchEmulationSupportedOnCurrentPlatform()) + { + throw new InvalidOperationException($"This API is not supported on the current platform: {SystemInfo.graphicsDeviceType}"); + } + + if (!Util.RenderGraphUtils.IsFramebufferFetchEmulationMSAASupportedOnCurrentPlatform()) + { + var sourceInfo = m_RenderGraph.GetRenderTargetInfo(tex); + if (sourceInfo.bindMS) + throw new InvalidOperationException($"This API is not supported with MSAA attachments on the current platform: {SystemInfo.graphicsDeviceType}"); + } + } + } + public void SetShadingRateImageAttachment(in TextureHandle sriTextureHandle) { CheckNotUseFragment(sriTextureHandle); diff --git a/Packages/com.unity.render-pipelines.core/Runtime/RenderGraph/RenderGraphResourcePool.cs b/Packages/com.unity.render-pipelines.core/Runtime/RenderGraph/RenderGraphResourcePool.cs index eb2a166d80d..118662a9f56 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/RenderGraph/RenderGraphResourcePool.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/RenderGraph/RenderGraphResourcePool.cs @@ -107,7 +107,8 @@ public override void CheckFrameAllocation(bool onException, int frameIndex) ReleaseResource(value.Item1, value.Item2, frameIndex); } - Debug.LogWarning(logMessage); + if (!onException) // If onException is true, logMessage is "" + Debug.LogWarning(logMessage); } // If an error occurred during execution, it's expected that textures are not all released so we clear the tracking list. diff --git a/Packages/com.unity.render-pipelines.core/Runtime/RenderGraph/RenderGraphResourceRegistry.cs b/Packages/com.unity.render-pipelines.core/Runtime/RenderGraph/RenderGraphResourceRegistry.cs index 5376b686220..72d83808841 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/RenderGraph/RenderGraphResourceRegistry.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/RenderGraph/RenderGraphResourceRegistry.cs @@ -365,10 +365,6 @@ internal ResourceHandle GetLatestVersionHandle(in ResourceHandle res) { CheckHandleValidity(res); var ver = m_RenderGraphResources[res.iType].resourceArray[res.index].version; - if (IsRenderGraphResourceShared(res)) - { - ver -= m_ExecutionCount; //TODO(ddebaets) is this a good solution ? - } return new ResourceHandle(res, ver); } @@ -376,10 +372,6 @@ internal int GetLatestVersionNumber(in ResourceHandle res) { CheckHandleValidity(res); var ver = m_RenderGraphResources[res.iType].resourceArray[res.index].version; - if (IsRenderGraphResourceShared(res)) - { - ver -= m_ExecutionCount;//TODO(ddebaets) is this a good solution ? - } return ver; } @@ -393,10 +385,6 @@ internal ResourceHandle GetNewVersionedHandle(in ResourceHandle res) { CheckHandleValidity(res); var ver = m_RenderGraphResources[res.iType].resourceArray[res.index].NewVersion(); - if (IsRenderGraphResourceShared(res)) - { - ver -= m_ExecutionCount;//TODO(ddebaets) is this a good solution ? - } return new ResourceHandle(res, ver); } @@ -424,12 +412,6 @@ internal bool IsRenderGraphResourceImported(in ResourceHandle res) return m_RenderGraphResources[res.iType].resourceArray[res.index].imported; } - internal bool IsRenderGraphResourceForceReleased(RenderGraphResourceType type, int index) - { - CheckHandleValidity(type, index); - return m_RenderGraphResources[(int)type].resourceArray[index].forceRelease; - } - internal bool IsRenderGraphResourceShared(RenderGraphResourceType type, int index) { CheckHandleValidity(type, index); @@ -938,12 +920,11 @@ internal RendererListHandle CreateSkyboxRendererList(ScriptableRenderContext con return new RendererListHandle(newHandle, RendererListHandleType.Legacy); } - internal BufferHandle ImportBuffer(GraphicsBuffer graphicsBuffer, bool forceRelease = false) + internal BufferHandle ImportBuffer(GraphicsBuffer graphicsBuffer) { int newHandle = m_RenderGraphResources[(int)RenderGraphResourceType.Buffer].AddNewRenderGraphResource(out BufferResource bufferResource); bufferResource.graphicsResource = graphicsBuffer; bufferResource.imported = true; - bufferResource.forceRelease = forceRelease; bufferResource.validDesc = false; return new BufferHandle(newHandle); @@ -1001,7 +982,6 @@ internal RayTracingAccelerationStructureHandle ImportRayTracingAccelerationStruc int newHandle = m_RenderGraphResources[(int)RenderGraphResourceType.AccelerationStructure].AddNewRenderGraphResource(out RayTracingAccelerationStructureResource accelStructureResource, false); accelStructureResource.graphicsResource = accelStruct; accelStructureResource.imported = true; - accelStructureResource.forceRelease = false; accelStructureResource.desc.name = name; return new RayTracingAccelerationStructureHandle(newHandle); @@ -1112,7 +1092,7 @@ internal void ReleasePooledResource(InternalRenderGraphContext rgContext, int ty { var resource = m_RenderGraphResources[type].resourceArray[index]; - if (!resource.imported || resource.forceRelease) + if (!resource.imported) { m_RenderGraphResources[type].releaseResourceCallback?.Invoke(rgContext, resource); diff --git a/Packages/com.unity.render-pipelines.core/Runtime/RenderGraph/RenderGraphResources.cs b/Packages/com.unity.render-pipelines.core/Runtime/RenderGraph/RenderGraphResources.cs index 4fa36d7a241..cfcf52956bf 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/RenderGraph/RenderGraphResources.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/RenderGraph/RenderGraphResources.cs @@ -131,7 +131,6 @@ class IRenderGraphResource public bool shared; public bool sharedExplicitRelease; public bool requestFallBack; - public bool forceRelease; public uint writeCount; public uint readCount; public int cachedHash; @@ -149,7 +148,6 @@ public virtual void Reset(IRenderGraphResourcePool _ = null) transientPassIndex = -1; sharedResourceLastFrameUsed = -1; requestFallBack = false; - forceRelease = false; writeCount = 0; readCount = 0; version = 0; diff --git a/Packages/com.unity.render-pipelines.core/Runtime/RenderGraph/RenderGraphUtilsBlit.cs b/Packages/com.unity.render-pipelines.core/Runtime/RenderGraph/RenderGraphUtilsBlit.cs index aa063d13b1f..6cc9d72aeb5 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/RenderGraph/RenderGraphUtilsBlit.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/RenderGraph/RenderGraphUtilsBlit.cs @@ -17,6 +17,9 @@ public static partial class RenderGraphUtils /// Returns true if the shader features required by the copy pass is supported for MSAA, otherwise will it return false. public static bool CanAddCopyPassMSAA() { + if (!IsFramebufferFetchEmulationMSAASupportedOnCurrentPlatform()) + return false; + return Blitter.CanCopyMSAA(); } @@ -27,7 +30,64 @@ public static bool CanAddCopyPassMSAA() /// Returns true if the shader features required by the copy pass is supported for MSAA, otherwise will it return false. public static bool CanAddCopyPassMSAA(in TextureDesc sourceDesc) { - return Blitter.CanCopyMSAA(sourceDesc); + if (!IsFramebufferFetchEmulationMSAASupportedOnCurrentPlatform()) + return false; + + return Blitter.CanCopyMSAA(sourceDesc.bindTextureMS); + } + + /// + /// Checks if the shader features required by the MSAA version of the copy pass is supported on current platform. + /// + /// The texture description of the that will be copied from. + /// Returns true if the shader features required by the copy pass is supported for MSAA, otherwise will it return false. + public static bool CanAddCopyPassMSAA(bool bindTextureMS) + { + if (!IsFramebufferFetchEmulationMSAASupportedOnCurrentPlatform()) + return false; + + return Blitter.CanCopyMSAA(bindTextureMS); + } + + internal static bool IsFramebufferFetchEmulationSupportedOnCurrentPlatform() + { +#if PLATFORM_WEBGL + if (SystemInfo.graphicsDeviceType == GraphicsDeviceType.OpenGLES3) + return false; +#endif + return true; + } + + internal static bool IsFramebufferFetchEmulationMSAASupportedOnCurrentPlatform() + { + // TODO: Temporarily disable this utility pending a more efficient solution for supporting or disabling framebuffer fetch emulation on PS4/PS5. + return (SystemInfo.graphicsDeviceType != GraphicsDeviceType.PlayStation4 + && SystemInfo.graphicsDeviceType != GraphicsDeviceType.PlayStation5 && SystemInfo.graphicsDeviceType != GraphicsDeviceType.PlayStation5NGGC); + } + + /// + /// Determines whether framebuffer fetch is supported on the current platform for the given texture. + /// This includes checking both general support for framebuffer fetch emulation and specific support + /// for multisampled (MSAA) textures. + /// + /// The RenderGraph adding this pass to. + /// The texture handle to validate for framebuffer fetch compatibility. + /// + /// Returns true if framebuffer fetch is supported on the current platform for the given texture; + /// otherwise, returns false. + /// + public static bool IsFramebufferFetchSupportedOnCurrentPlatform(this RenderGraph graph, in TextureHandle tex) + { + if (!IsFramebufferFetchEmulationSupportedOnCurrentPlatform()) + return false; + + if (!IsFramebufferFetchEmulationMSAASupportedOnCurrentPlatform()) + { + var sourceInfo = graph.GetRenderTargetInfo(tex); + if (sourceInfo.msaaSamples > 1) + return sourceInfo.bindMS; + } + return true; } /// @@ -45,10 +105,8 @@ public static bool CanAddCopyPass(this RenderGraph graph, TextureHandle source, if (!graph.nativeRenderPassesEnabled) return false; -#if PLATFORM_WEBGL - if (SystemInfo.graphicsDeviceType == GraphicsDeviceType.OpenGLES3) + if (!IsFramebufferFetchEmulationSupportedOnCurrentPlatform()) return false; -#endif var sourceInfo = graph.GetRenderTargetInfo(source); var destinationInfo = graph.GetRenderTargetInfo(destination); @@ -68,7 +126,7 @@ public static bool CanAddCopyPass(this RenderGraph graph, TextureHandle source, // It would have 1 if the MSAA pass is not able to be used for target and 2 otherwise. // https://docs.unity3d.com/2017.4/Documentation/Manual/SL-ShaderCompileTargets.html // https://learn.microsoft.com/en-us/windows/win32/direct3dhlsl/dx-graphics-hlsl-to-get-sample-position - if ((int)sourceInfo.msaaSamples > 1 && !CanAddCopyPassMSAA()) + if ((int)sourceInfo.msaaSamples > 1 && !CanAddCopyPassMSAA(sourceInfo.bindMS)) return false; return true; @@ -81,7 +139,7 @@ class CopyPassData } /// - /// Adds a pass to copy data from a source texture to a destination texture and returns the builder. The builder must be disposed after you are done using it. + /// Adds a pass to copy data from a source texture to a destination texture and returns the builder. /// The data in the texture is copied pixel by pixel. The copy function can only do 1:1 copies it will not allow scaling the data or /// doing texture filtering. Furthermore it requires the source and destination surfaces to be the same size in pixels and have the same number of MSAA samples and array slices. /// If the textures are multi sampled, individual samples will be copied. @@ -114,27 +172,27 @@ public static IBaseRenderGraphBuilder AddCopyPass( if (!graph.nativeRenderPassesEnabled) throw new ArgumentException("CopyPass only supported for native render pass. Please use the blit functions instead for non native render pass platforms."); - var sourceDesc = graph.GetRenderTargetInfo(source); - var destinationDesc = graph.GetRenderTargetInfo(destination); + var sourceInfo = graph.GetRenderTargetInfo(source); + var destinationInfo = graph.GetRenderTargetInfo(destination); - if (sourceDesc.msaaSamples != destinationDesc.msaaSamples) + if (sourceInfo.msaaSamples != destinationInfo.msaaSamples) throw new ArgumentException("MSAA samples from source and destination texture doesn't match."); - if (sourceDesc.width != destinationDesc.width || - sourceDesc.height != destinationDesc.height) + if (sourceInfo.width != destinationInfo.width || + sourceInfo.height != destinationInfo.height) throw new ArgumentException("Dimensions for source and destination texture doesn't match."); - if (sourceDesc.volumeDepth != destinationDesc.volumeDepth) + if (sourceInfo.volumeDepth != destinationInfo.volumeDepth) throw new ArgumentException("Slice count for source and destination texture doesn't match."); - var isMSAA = (int)sourceDesc.msaaSamples > 1; + var isMSAA = (int)sourceInfo.msaaSamples > 1; // Note: Needs shader model ps_4.1 to support SV_SampleIndex which means the copy pass isn't supported for MSAA on some platforms. // We can check this by checking the amout of shader passes the copy shader has. // It would have 1 if the MSAA pass is not able to be used for target and 2 otherwise. // https://docs.unity3d.com/2017.4/Documentation/Manual/SL-ShaderCompileTargets.html // https://learn.microsoft.com/en-us/windows/win32/direct3dhlsl/dx-graphics-hlsl-to-get-sample-position - if (isMSAA && !CanAddCopyPassMSAA()) + if (isMSAA && !CanAddCopyPassMSAA(sourceInfo.bindMS)) throw new ArgumentException("Target does not support MSAA for AddCopyPass. Please use the blit alternative or use non MSAA textures."); var builder = graph.AddRasterRenderPass(passName, out var passData, file, line); @@ -142,7 +200,7 @@ public static IBaseRenderGraphBuilder AddCopyPass( try { bool isXRArrayTextureActive = TextureXR.useTexArray; - bool isArrayTexture = sourceDesc.volumeDepth > 1; + bool isArrayTexture = sourceInfo.volumeDepth > 1; passData.isMSAA = isMSAA; passData.force2DForXR = isXRArrayTextureActive && (!isArrayTexture); @@ -223,11 +281,11 @@ static void CopyRenderFunc(CopyPassData data, RasterGraphContext rgContext) /// /// /// - internal static bool IsTextureXR(ref TextureDesc destDesc, int sourceSlice, int destinationSlice, int numSlices, int numMips) + internal static bool IsTextureXR(ref RenderTargetInfo destDesc, int sourceSlice, int destinationSlice, int numSlices, int numMips) { if (TextureXR.useTexArray && - destDesc.dimension == TextureDimension.Tex2DArray && - destDesc.slices == TextureXR.slices && + destDesc.volumeDepth > 1 && + destDesc.volumeDepth == TextureXR.slices && sourceSlice == 0 && destinationSlice == 0 && numSlices == TextureXR.slices && @@ -328,17 +386,17 @@ public static IBaseRenderGraphBuilder AddBlitPass(this RenderGraph graph, { throw new ArgumentException($"BlitPass: {passName} destination needs to be a valid texture handle."); } - var destinationDesc = graph.GetTextureDesc(destination); + var destinationDesc = graph.GetRenderTargetInfo(destination); int sourceMaxWidth = math.max(math.max(sourceDesc.width, sourceDesc.height), sourceDesc.slices); int sourceTotalMipChainLevels = (int)math.log2(sourceMaxWidth) + 1; - int destinationMaxWidth = math.max(math.max(destinationDesc.width, destinationDesc.height), destinationDesc.slices); + int destinationMaxWidth = math.max(math.max(destinationDesc.width, destinationDesc.height), destinationDesc.volumeDepth); int destinationTotalMipChainLevels = (int)math.log2(destinationMaxWidth) + 1; if (numSlices == -1) numSlices = sourceDesc.slices - sourceSlice; if (numSlices > sourceDesc.slices - sourceSlice - || numSlices > destinationDesc.slices - destinationSlice) + || numSlices > destinationDesc.volumeDepth - destinationSlice) { throw new ArgumentException($"BlitPass: {passName} attempts to blit too many slices. The pass will be skipped."); } @@ -349,6 +407,14 @@ public static IBaseRenderGraphBuilder AddBlitPass(this RenderGraph graph, throw new ArgumentException($"BlitPass: {passName} attempts to blit too many mips. The pass will be skipped."); } + var canUseCopyPass = CanAddCopyPass(graph, source, destination) + && scale == Vector2.one && offset == Vector2.zero && numSlices == 1 && numMips == 1; + + if (canUseCopyPass) + { + return AddCopyPass(graph, source, destination, passName, returnBuilder, file, line); + } + var builder = graph.AddUnsafePass(passName, out var passData, file, line); try { @@ -808,7 +874,8 @@ class BlitMaterialPassData } /// - /// Add a render graph pass to blit an area of the source texture into the destination texture. Blitting is a high-level way to transfer texture data from a source to a destination texture. + /// Add a render graph pass to blit an area of the source texture into the destination texture and return the builder if requested. + /// Blitting is a high-level way to transfer texture data from a source to a destination texture. /// In this overload the data may be transformed by an arbitrary material. /// /// This function works transparently with regular textures and XR textures (which may depending on the situation be 2D array textures) if numSlices is set to -1 and the slice property works correctly. @@ -838,8 +905,8 @@ class BlitMaterialPassData /// /// The RenderGraph adding this pass to. /// Parameters used for rendering. + /// A name to use for debugging and error logging. This name will be shown in the rendergraph debugger. /// A boolean indicating whether to return the builder instance for the blit pass. - /// A name to use for debugging and error logging. This name will be shown in the rendergraph debugger. /// File line of the source file this function is called from. Used for debugging. This parameter is automatically generated by the compiler. Users do not need to pass it. /// File line of the source file this function is called from. Used for debugging. This parameter is automatically generated by the compiler. Users do not need to pass it. /// A new instance of IBaseRenderGraphBuilder used to setup the new Render Pass, returned only if is set to trueor null if is false. @@ -857,14 +924,14 @@ public static IBaseRenderGraphBuilder AddBlitPass(this RenderGraph graph, throw new ArgumentException($"BlitPass: {passName} destination needs to be a valid texture handle."); } - var destinationDesc = graph.GetTextureDesc(blitParameters.destination); + var destinationDesc = graph.GetRenderTargetInfo(blitParameters.destination); // Fill in unspecified parameters automatically based on the texture descriptor - int destinationMaxWidth = math.max(math.max(destinationDesc.width, destinationDesc.height), destinationDesc.slices); + int destinationMaxWidth = math.max(math.max(destinationDesc.width, destinationDesc.height), destinationDesc.volumeDepth); int destinationTotalMipChainLevels = (int)math.log2(destinationMaxWidth) + 1; if (blitParameters.numSlices == -1) { - blitParameters.numSlices = destinationDesc.slices - blitParameters.destinationSlice; + blitParameters.numSlices = destinationDesc.volumeDepth - blitParameters.destinationSlice; } if (blitParameters.numMips == -1) @@ -891,9 +958,9 @@ public static IBaseRenderGraphBuilder AddBlitPass(this RenderGraph graph, } // Validate against destination - if (blitParameters.numSlices > destinationDesc.slices - blitParameters.destinationSlice) + if (blitParameters.numSlices > destinationDesc.volumeDepth - blitParameters.destinationSlice) { - throw new ArgumentException($"BlitPass: {passName} attempts to blit too many slices. There are not enough slices in the destination array. The pass will be skipped."); + throw new ArgumentException($"BlitPass: {passName} attempts to blit too many slices. There are not enough slices in the destination array. The pass will be skipped."); } if (blitParameters.numMips > destinationTotalMipChainLevels - blitParameters.destinationMip) @@ -901,6 +968,11 @@ public static IBaseRenderGraphBuilder AddBlitPass(this RenderGraph graph, throw new ArgumentException($"BlitPass: {passName} attempts to blit too many mips. There are not enough mips in the destination texture. The pass will be skipped."); } + if (blitParameters.material == null) + { + throw new ArgumentException($"BlitPass: {passName} attempts to use a null material."); + } + var builder = graph.AddUnsafePass(passName, out var passData, file, line); try { @@ -922,6 +994,7 @@ public static IBaseRenderGraphBuilder AddBlitPass(this RenderGraph graph, passData.sourceSlicePropertyID = blitParameters.sourceSlicePropertyID; passData.sourceMipPropertyID = blitParameters.sourceMipPropertyID; passData.scaleBiasPropertyID = blitParameters.scaleBiasPropertyID; + passData.isXR = IsTextureXR(ref destinationDesc, (passData.sourceSlice == -1) ? 0 : passData.sourceSlice, passData.destinationSlice, passData.numSlices, passData.numMips); if (blitParameters.source.IsValid()) { @@ -965,7 +1038,7 @@ static void BlitMaterialRenderFunc(BlitMaterialPassData data, UnsafeGraphContext { // This is the magic that makes XR work for blit. We set the rendertargets passing -1 for the slices. This means it will bind all (both eyes) slices. // The engine will then also automatically duplicate our draws and the vertex and pixel shader (through macros) will ensure those draws end up in the right eye. - + if (data.sourceSlice != -1) data.propertyBlock.SetInt(data.sourceSlicePropertyID, 0); if (data.sourceMip != -1) diff --git a/Packages/com.unity.render-pipelines.core/Runtime/RenderPipelineResources/GPUDriven/InstanceOcclusionCullingKernels.compute b/Packages/com.unity.render-pipelines.core/Runtime/RenderPipelineResources/GPUDriven/InstanceOcclusionCullingKernels.compute index 883bfe6c3c1..fd055762f53 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/RenderPipelineResources/GPUDriven/InstanceOcclusionCullingKernels.compute +++ b/Packages/com.unity.render-pipelines.core/Runtime/RenderPipelineResources/GPUDriven/InstanceOcclusionCullingKernels.compute @@ -61,7 +61,7 @@ SphereBound LoadInstanceBoundingSphere(uint instanceID) { float4 data = asfloat(_InstanceDataBuffer.Load4(_BoundingSphereInstanceDataAddress + instanceID * 16)); SphereBound b; - b.center = data.xyz; + b.center = data.xyz; b.radius = data.w; return b; } @@ -105,7 +105,7 @@ void CopyInstances(uint dispatchIdx : SV_DispatchThreadID) uint argsBase = DRAW_ARGS_INDEX(dispatchIdx); _DrawArgs[argsBase + 0] = drawInfo.indexCount; // IndirectDrawIndexedArgs.indexCountPerInstance - _DrawArgs[argsBase + 1] = drawInfo.maxInstanceCount << _InstanceMultiplierShift; // IndirectDrawIndexedArgs.instanceCount + _DrawArgs[argsBase + 1] = (drawInfo.maxInstanceCountAndTopology >> 3) << _InstanceMultiplierShift; // IndirectDrawIndexedArgs.instanceCount _DrawArgs[argsBase + 2] = drawInfo.firstIndex; // IndirectDrawIndexedArgs.startIndex _DrawArgs[argsBase + 3] = drawInfo.baseVertex; // IndirectDrawIndexedArgs.baseVertexIndex _DrawArgs[argsBase + 4] = 0; // IndirectDrawIndexedArgs.startInstance @@ -120,6 +120,19 @@ void CopyInstances(uint dispatchIdx : SV_DispatchThreadID) } } +uint GetPrimitiveCount(uint indexCount, uint topology, bool nativeQuads) +{ + switch (topology) + { + case /*MeshTopology.Triangles*/ 0: return indexCount / 3; + case /*MeshTopology.Quads*/ 2: return nativeQuads ? (indexCount / 4) : (indexCount / 4 * 2); + case /*MeshTopology.Lines*/ 3: return indexCount / 2; + case /*MeshTopology.LineStrip*/ 4: return (indexCount >= 1) ? (indexCount - 1) : 0; + case /*MeshTopology.Points*/ 5: return indexCount; + default: return 0; + } +} + [numthreads(64,1,1)] void CullInstances(uint instanceInfoOffset : SV_DispatchThreadID) { @@ -157,7 +170,7 @@ void CullInstances(uint instanceInfoOffset : SV_DispatchThreadID) isOccludedInAll = false; } isVisible = !isOccludedInAll; - + #ifdef OCCLUSION_FIRST_PASS // if we failed the occlusion check, then add to the list for the second pass if (!isVisible) @@ -173,8 +186,16 @@ void CullInstances(uint instanceInfoOffset : SV_DispatchThreadID) if (_DebugCounterIndex >= 0) { // TODO: sum each within wave, first thread in wave issues atomic add to memory - int counterIndex = isVisible ? INSTANCEOCCLUSIONTESTDEBUGCOUNTER_NOT_OCCLUDED : INSTANCEOCCLUSIONTESTDEBUGCOUNTER_OCCLUDED; + int counterIndex = isVisible ? INSTANCEOCCLUSIONTESTDEBUGCOUNTER_INSTANCES_NOT_OCCLUDED : INSTANCEOCCLUSIONTESTDEBUGCOUNTER_INSTANCES_OCCLUDED; InterlockedAdd(_OcclusionDebugCounters[_DebugCounterIndex*INSTANCEOCCLUSIONTESTDEBUGCOUNTER_COUNT + counterIndex], 1); + + IndirectDrawInfo drawInfo = LoadDrawInfo(drawOffset); + uint argsBase = DRAW_ARGS_INDEX(drawOffset); + uint indexCount = _DrawArgs[argsBase + 0]; // IndirectDrawIndexedArgs.indexCountPerInstance + uint topology = drawInfo.maxInstanceCountAndTopology & 7; + uint primitiveCount = GetPrimitiveCount(indexCount, topology, false); + counterIndex = isVisible ? INSTANCEOCCLUSIONTESTDEBUGCOUNTER_PRIMITIVES_NOT_OCCLUDED : INSTANCEOCCLUSIONTESTDEBUGCOUNTER_PRIMITIVES_OCCLUDED; + InterlockedAdd(_OcclusionDebugCounters[_DebugCounterIndex*INSTANCEOCCLUSIONTESTDEBUGCOUNTER_COUNT + counterIndex], primitiveCount); } if (isVisible) diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Sampling.meta b/Packages/com.unity.render-pipelines.core/Runtime/Sampling.meta new file mode 100644 index 00000000000..0f8970d497e --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/Sampling.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b6ee28fd674c77340a2b3b8f7a32e0da +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Sampling/Common.hlsl b/Packages/com.unity.render-pipelines.core/Runtime/Sampling/Common.hlsl new file mode 100644 index 00000000000..63f8da86c6b --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/Sampling/Common.hlsl @@ -0,0 +1,130 @@ +#ifndef _SAMPLING_SAMPLING_COMMON_HLSL_ +#define _SAMPLING_SAMPLING_COMMON_HLSL_ + +#ifndef PI +#define PI 3.14159265358979323846f +#endif + +#define FLOAT_ONE_MINUS_EPSILON 0.99999994 + +// Paper: Building an Orthonormal Basis, Revisited. +// Tom Duff, James Burgess, Per Christensen, Christophe Hery, Andrew Kensler, Max Liani, and Ryusuke Villemin (Pixar). +// https://graphics.pixar.com/library/OrthonormalB/paper.pdf +void OrthoBasisFromVector(float3 n, out float3 b1, out float3 b2) +{ + float sign = n.z >= 0.0f ? 1.0f : -1.0f; + const float a = -1.0f / (sign + n.z); + const float b = n.x * n.y * a; + b1 = float3(1.0f + sign * n.x * n.x * a, sign * b, -sign * n.x); + b2 = float3(b, sign + n.y * n.y * a, -n.y); +} + +float3x3 OrthoBasisFromVector(float3 n) +{ + float3 t, b; + OrthoBasisFromVector(n, t, b); + return transpose(float3x3(t, b, n)); +} + +void SampleDiffuseBrdf(float2 u, float3 shadingNormal, out float3 wi) +{ + wi = float3(0, 0, 0); + + float a = sqrt(u.x); + float b = 2.0 * PI * u.y; + float3 localWi = float3(a * cos(b), a * sin(b), sqrt(1.0f - u.x)); + + float3x3 TBN = OrthoBasisFromVector(shadingNormal); + wi = mul(TBN, localWi); +} + +bool SampleDiffuseBrdf(float2 u, float3 geometryNormal, float3 shadingNormal, float3 wo, out float3 wi, out float pdf) +{ + pdf = 0.0f; + wi = 0.0f; + bool valid = true; + if (dot(geometryNormal, wo) <= 0.0f) + valid = false; + else + { + float a = sqrt(1.0f - u.x); + float b = 2.0 * PI * u.y; + float3 localWi = float3(a * cos(b), a * sin(b), sqrt(u.x)); + + float3x3 TBN = OrthoBasisFromVector(shadingNormal); + wi = mul(TBN, localWi); + + pdf = localWi.z / PI; + } + return valid; +} + +float3 MapSquareToSphere(float2 unitSquareCoords) +{ + float theta = (2.0f * PI) * unitSquareCoords.x; + float sinTheta, cosTheta; + sincos(theta, sinTheta, cosTheta); + + float cosPhi = 1.0f - 2.0f * unitSquareCoords.y; + float sinPhi = sqrt(max(0.0f, 1.0f - cosPhi * cosPhi)); + + return float3(sinPhi * cosTheta, sinPhi * sinTheta, cosPhi); +} + +// An optimized version of the area-preserving square-to-disk map presented in "A Low Distortion Map Between Disk and Square". Copied from from http://psgraphics.blogspot.com/2011/01/improved-code-for-concentric-map.html. +float2 MapSquareToDisk(float2 rnd) +{ + //Code flow makes sure that division by 0 and thus NaNs cannot happen. + float phi; + float r; + float a = rnd.x * 2.0f - 1.0f; + float b = rnd.y * 2.0f - 1.0f; + + if (a * a > b * b) + { + r = a; + phi = (PI * 0.25f) * (b / a); + } + else + { + r = b; + if (b == 0.0f) + phi = PI * 0.5f; + else + phi = (PI * 0.5f) - (PI * 0.25f) * (a / b); + } + return float2(r * cos(phi), r * sin(phi)); +} + +float3 CosineSample(float2 u, float3 normal) +{ + float a = sqrt(u.x); + float b = 2.0f * PI * u.y; + float3 localDir = float3(a * cos(b), a * sin(b), sqrt(1.0f - u.x)); + float3x3 basis = OrthoBasisFromVector(normal); + return mul(basis, localDir); +} + +float PowerHeuristic(float f, float b) +{ + float q = (f * f) + (b * b); + return q > 0 ? (f * f) / q : 0; +} + +float UintToFloat01(uint x) +{ + return min(x * 2.3283064365386963e-10, FLOAT_ONE_MINUS_EPSILON); // (1.f / (1ULL << 32)); +} + +int Log2Int(uint v) +{ + return firstbithigh(v); +} + +int Log2IntUp(uint v) +{ + int n = Log2Int(v); + return v > (1u << n) ? n + 1 : n; +} + +#endif diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Sampling/Common.hlsl.meta b/Packages/com.unity.render-pipelines.core/Runtime/Sampling/Common.hlsl.meta new file mode 100644 index 00000000000..7bd8e56d0ed --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/Sampling/Common.hlsl.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 91796a9618276ff42930ee05801207aa +ShaderIncludeImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Sampling/Hashes.hlsl b/Packages/com.unity.render-pipelines.core/Runtime/Sampling/Hashes.hlsl new file mode 100644 index 00000000000..9b9db502575 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/Sampling/Hashes.hlsl @@ -0,0 +1,148 @@ +#ifndef _SAMPLING_HASHES_HLSL_ +#define _SAMPLING_HASHES_HLSL_ + +// Low bias hash from https://github.com/skeeto/hash-prospector +uint LowBiasHash32(uint x, uint seed = 0) +{ + x += seed; + x ^= x >> 16; + x *= 0x21f0aaad; + x ^= x >> 15; + x *= 0xd35a2d97; + x ^= x >> 15; + return x; +} + +// Murmur Hash from https://github.com/aappleby/smhasher/wiki/MurmurHash3 +uint MurmurAdd(uint hash, uint item) +{ + item *= 0xcc9e2d51; + item = (item << 15) | (item >> 17); + item *= 0x1b873593; + + hash ^= item; + hash = (hash << 13) | (hash >> 19); + hash = hash * 5 + 0xe6546b64; + return hash; +} + +uint MurmurFinalize(uint hash) +{ + hash ^= hash >> 16; + hash *= 0x85ebca6b; + hash ^= hash >> 13; + hash *= 0xc2b2ae35; + hash ^= hash >> 16; + return hash; +} + +uint MurmurHash(uint x, uint seed = 0) +{ + uint h = seed; + h = MurmurAdd(h, x); + return MurmurFinalize(h); +} + +uint MurmurHash(uint2 x, uint seed = 0) +{ + uint h = seed; + h = MurmurAdd(h, x.x); + h = MurmurAdd(h, x.y); + return MurmurFinalize(h); +} + +uint MurmurHash(uint3 x, uint seed = 0) +{ + uint h = seed; + h = MurmurAdd(h, x.x); + h = MurmurAdd(h, x.y); + h = MurmurAdd(h, x.z); + return MurmurFinalize(h); +} + +uint MurmurHash(uint4 x, uint seed = 0) +{ + uint h = seed; + h = MurmurAdd(h, x.x); + h = MurmurAdd(h, x.y); + h = MurmurAdd(h, x.z); + h = MurmurAdd(h, x.w); + return MurmurFinalize(h); +} + +uint XorShift32(uint rngState) +{ + rngState ^= rngState << 13; + rngState ^= rngState >> 17; + rngState ^= rngState << 5; + return rngState; +} + +// From PCG: A Family of Simple Fast Space-Efficient Statistically Good Algorithms for Random Number Generation. +// and "Hash Functions for GPU Rendering" paper +uint Pcg(uint v) +{ + uint state = v * 747796405u + 2891336453u; + uint word = ((state >> ((state >> 28u) + 4u)) ^ state) * 277803737u; + return (word >> 22u) ^ word; +} + +uint2 Pcg2d(uint2 v) +{ + v = v * 1664525u + 1013904223u; + + v.x += v.y * 1664525u; + v.y += v.x * 1664525u; + + v = v ^ (v >> 16u); + + v.x += v.y * 1664525u; + v.y += v.x * 1664525u; + + v = v ^ (v >> 16u); + + return v; +} + +uint3 Pcg3d(uint3 v) +{ + v = v * 1664525u + 1013904223u; + + v.x += v.y * v.z; + v.y += v.z * v.x; + v.z += v.x * v.y; + + v ^= v >> 16u; + + v.x += v.y * v.z; + v.y += v.z * v.x; + v.z += v.x * v.y; + + return v; +} + +uint4 Pcg4d(uint4 v) +{ + v = v * 1664525u + 1013904223u; + + v.x += v.y * v.w; + v.y += v.z * v.x; + v.z += v.x * v.y; + v.w += v.y * v.z; + + v = v ^ (v >> 16u); + + v.x += v.y * v.w; + v.y += v.z * v.x; + v.z += v.x * v.y; + v.w += v.y * v.z; + + return v; +} + +uint PixelHash(uint2 pixelCoord, uint seed = 0) +{ + return LowBiasHash32((pixelCoord.x & 0xFFFF) | (pixelCoord.y << 16), seed); +} + +#endif // _SAMPLING_HASHES_HLSL_ diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Sampling/Hashes.hlsl.meta b/Packages/com.unity.render-pipelines.core/Runtime/Sampling/Hashes.hlsl.meta new file mode 100644 index 00000000000..90cbecb1dcc --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/Sampling/Hashes.hlsl.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ba9242b5d88ccf2489a51d94185a1300 +ShaderIncludeImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Sampling/PathTracingSampler.hlsl b/Packages/com.unity.render-pipelines.core/Runtime/Sampling/PathTracingSampler.hlsl new file mode 100644 index 00000000000..c3fa8b668e5 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/Sampling/PathTracingSampler.hlsl @@ -0,0 +1,64 @@ +#ifndef _SAMPLING_PATHTRACINGSAMPLER_HLSL_ +#define _SAMPLING_PATHTRACINGSAMPLER_HLSL_ + +#if defined(QRNG_METHOD_RANDOM_XOR_SHIFT) || defined(QRNG_METHOD_RANDOM_PCG_4D) +#include "PseudoRandom.hlsl" +#else +#include "QuasiRandom.hlsl" +#endif + +// global dimension offset (could be used to alter the noise pattern) +#ifndef QRNG_OFFSET +#define QRNG_OFFSET 0 +#endif + +#ifndef QRNG_SAMPLES_PER_BOUNCE +#define QRNG_SAMPLES_PER_BOUNCE 64 +#endif + +struct PathTracingSampler +{ + #if defined(QRNG_METHOD_SOBOL) + QrngSobol generator; + #elif defined(QRNG_METHOD_SOBOL_BLUE_NOISE) + QrngSobolBlueNoise generator; + #elif defined(QRNG_METHOD_GLOBAL_SOBOL_BLUE_NOISE) + QrngGlobalSobolBlueNoise generator; + #elif defined(QRNG_METHOD_KRONECKER) + QrngKronecker generator; + #elif defined(QRNG_METHOD_RANDOM_XOR_SHIFT) + QrngXorShift generator; + #elif defined(QRNG_METHOD_RANDOM_PCG_4D) + QrngPcg4D generator; + #endif + int bounceIndex; + + void Init(uint2 pixelCoord, uint startPathIndex, uint perPixelPathCount = 256) + { + #if defined(QRNG_METHOD_GLOBAL_SOBOL_BLUE_NOISE) + generator.Init(pixelCoord, startPathIndex, perPixelPathCount); + #else + generator.Init(pixelCoord, startPathIndex); + #endif + bounceIndex = 0; + } + + float GetFloatSample(int dimension) + { + uint actualDimension = QRNG_OFFSET + QRNG_SAMPLES_PER_BOUNCE * bounceIndex + dimension; + return generator.GetFloat(actualDimension); + } + + void NextBounce() + { + bounceIndex++; + } + + void NextPath() + { + generator.NextSample(); + bounceIndex = 0; + } +}; + +#endif // _SAMPLING_PATHTRACINGSAMPLER_HLSL_ diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Sampling/PathTracingSampler.hlsl.meta b/Packages/com.unity.render-pipelines.core/Runtime/Sampling/PathTracingSampler.hlsl.meta new file mode 100644 index 00000000000..a95664f9696 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/Sampling/PathTracingSampler.hlsl.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d330e4a95eccc4eb9bb75e79bc736ce7 +ShaderIncludeImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Sampling/PseudoRandom.hlsl b/Packages/com.unity.render-pipelines.core/Runtime/Sampling/PseudoRandom.hlsl new file mode 100644 index 00000000000..9b1e60b5e5d --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/Sampling/PseudoRandom.hlsl @@ -0,0 +1,61 @@ +#ifndef _SAMPLING_PSEUDORANDOM_HLSL_ +#define _SAMPLING_PSEUDORANDOM_HLSL_ + +#include "Common.hlsl" +#include "Hashes.hlsl" + +// Xor shift PRNG +struct QrngXorShift +{ + uint state; + + void Init(uint2 pixelCoord, uint startSampleIndex) + { + state = PixelHash(pixelCoord, startSampleIndex); + } + + void Init(uint seed, uint startSampleIndex) + { + state = seed; + } + + float GetFloat(uint dimension) + { + state = XorShift32(state); + return UintToFloat01(state); + } + + void NextSample() + { + } +}; + +// From paper: "Hash Functions for GPU Rendering" by Jarzynski & Olano) +struct QrngPcg4D +{ + uint4 state; + + void Init(uint2 pixelCoord, uint startSampleIndex) + { + // Seed for PCG uses a sequential sample number in 4th channel, which increments on every RNG call and starts from 0 + state = uint4(pixelCoord, startSampleIndex, 0); + } + + void Init(uint seed, uint startSampleIndex) + { + state = uint4(seed, 1, startSampleIndex, 0); + } + + float GetFloat(int dimension) + { + state.w++; + return UintToFloat01(Pcg4d(state).x); + } + + void NextSample() + { + state.z++; + } +}; + +#endif // _SAMPLING_PSEUDORANDOM_HLSL_ diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Sampling/PseudoRandom.hlsl.meta b/Packages/com.unity.render-pipelines.core/Runtime/Sampling/PseudoRandom.hlsl.meta new file mode 100644 index 00000000000..99b4f42132c --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/Sampling/PseudoRandom.hlsl.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 270be7a3bca5b4e038d7e90c1ca0f18c +ShaderIncludeImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Sampling/QuasiRandom.hlsl b/Packages/com.unity.render-pipelines.core/Runtime/Sampling/QuasiRandom.hlsl new file mode 100644 index 00000000000..4f422c65afc --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/Sampling/QuasiRandom.hlsl @@ -0,0 +1,178 @@ +#ifndef _SAMPLING_QUASIRANDOM_HLSL_ +#define _SAMPLING_QUASIRANDOM_HLSL_ + +#include "Common.hlsl" +#include "SobolSampling.hlsl" +#include "SobolBluenoiseSampling.hlsl" + +static const uint kMaxSobolDim = SOBOL_MATRICES_COUNT; + +// Sobol sampler with Owen scrambling, from paper: Practical Hash-based Owen Scrambling by Burley +// infinite dims, 2097151 max samples, pixel tiling wraps at 65536 +// Define QRNG_SOBOL_02 to only use first 2 sobol dims and rely on scrambling for the others, this +// effectively makes every pair of dims a perfect (0,2) sequence +struct QrngSobol +{ + uint pixelSeed; + uint sampleIndex; + + void Init(uint2 pixelCoord, uint startSampleIndex) + { + Init(PixelHash(pixelCoord), startSampleIndex); + } + + void Init(uint seed, uint startSampleIndex) + { + pixelSeed = seed; + sampleIndex = startSampleIndex; + } + + float GetFloat(uint dimension) + { + #ifdef QRNG_SOBOL_02 + uint index = NestedUniformOwenScramble(sampleIndex, pixelSeed ^ ( dimension / 2)); + return GetOwenScrambledSobolSample(index, dimension & 1, LowBiasHash32(dimension, pixelSeed)); + #else + uint scrambleSeed = LowBiasHash32(pixelSeed, dimension); + uint shuffleSeed = pixelSeed; + return GetOwenScrambledSobolSample(sampleIndex ^ shuffleSeed, dimension % kMaxSobolDim, scrambleSeed); + #endif + } + + void NextSample() + { + sampleIndex++; + } +}; + +// From paper: "A Low-Discrepancy Sampler that Distributes Monte Carlo Errors as a Blue Noise in Screen Space" by Heitz and Belcour +// 256 max dims, 256 max samples (beyond 256, the sequence keeps going with another set of 256 samples belonging to another dim, and so on every 256 samples), pixel tiling wraps at 128 +struct QrngSobolBlueNoise +{ + uint2 pixelCoord; + uint sampleIndex; + + void Init(uint2 pixelCoord_, uint startSampleIndex) + { + pixelCoord = pixelCoord_; + sampleIndex = startSampleIndex; + } + + void Init(uint seed, uint startSampleIndex) + { + Init(seed / 256, seed % 256); + } + + float GetFloat(uint dimension) + { + // If we go past the number of stored samples per dim, just shift all to the next pair of dimensions + dimension += (sampleIndex / 256) * 2; + return GetBNDSequenceSample(pixelCoord, sampleIndex, dimension); + } + + void NextSample() + { + sampleIndex++; + } +}; + +// From paper: "Screen-Space Blue-Noise Diffusion of Monte Carlo Sampling Error via Hierarchical Ordering of Pixels" by Ahmed and Wonka +// infinite dims and samples, pixel tiling depends on target sample count. The more samples, the smaller the tile (ex: for 256 samples, tiling size is 4096) +// define QRNG_GLOBAL_SOBOL_ENHANCED_TILING to get tiling to always wrap at 65536 +// Define QRNG_SOBOL_02 to only use first 2 sobol dims and rely on scrambling for the others +struct QrngGlobalSobolBlueNoise +{ + uint pixelMortonCode; + uint log2SamplesPerPixel; + uint sampleIndex; + + void Init(uint2 pixelCoord, uint startSampleIndex, uint perPixelSampleCount = 256) + { + pixelMortonCode = EncodeMorton2D(pixelCoord); + log2SamplesPerPixel = Log2IntUp(perPixelSampleCount); + sampleIndex = startSampleIndex; + } + + void Init(uint seed, uint startSampleIndex, uint perPixelSampleCount = 256) + { + Init(uint2(seed & 0xFFFF, seed >> 16), startSampleIndex, perPixelSampleCount); + } + + float GetFloat(uint dimension) + { + #ifdef QRNG_SOBOL_02 + uint index = NestedUniformOwenScramble(sampleIndex, LowBiasHash32(dimension/2, 0xe0aaaf75)) & ((1U << log2SamplesPerPixel) - 1U); + return GetOwenScrambledZShuffledSobolSample(index, dimension, 2, pixelMortonCode, log2SamplesPerPixel); + #else + return GetOwenScrambledZShuffledSobolSample(sampleIndex, dimension, kMaxSobolDim, pixelMortonCode, log2SamplesPerPixel); + #endif + } + + void NextSample() + { + sampleIndex++; + } +}; + +// Kronecker sequence from paper "Optimizing Kronecker Sequences for Multidimensional Sampling" +//fast but lower quality than Sobol, infinite dims and samples, pixel tiling wraps at 65536 +//define QRNG_KRONECKER_ENHANCED_QUALITY to add small scale jitter +struct QrngKronecker +{ + uint cranleyPattersonSeed; + uint shuffledSampleIndex; +#ifdef QRNG_KRONECKER_ENHANCED_QUALITY + int sampleIndex; +#endif + + void Init(uint2 pixelCoord, uint startSampleIndex) + { + Init(PixelHash(pixelCoord), startSampleIndex); + } + + void Init(uint seed, uint startSampleIndex) + { + uint hash = seed; + cranleyPattersonSeed = hash; + uint shuffledStartIndex = (startSampleIndex + hash) % (1 << 20); + shuffledSampleIndex = shuffledStartIndex; +#ifdef QRNG_KRONECKER_ENHANCED_QUALITY + sampleIndex = startSampleIndex+1; +#endif + } + + float GetFloat(uint dimension) + { + const uint alphas[]= { // values are stored multiplied by (1 << 32) + // R2 from http://extremelearning.com.au/unreasonable-effectiveness-of-quasirandom-sequences/ + 3242174889, 2447445414, + // K21_2 from Optimizing Kronecker Sequences for Multidimensional Sampling + 3316612456, 1538627358, + }; + + // compute random offset to apply to the sequence (using another Kronecker sequence) + uint cranleyPattersonRot = cranleyPattersonSeed + 3646589397 * (dimension / 4); + +#ifdef QRNG_KRONECKER_ENHANCED_QUALITY // add small scale jitter as explained in paper + const float alphaJitter[] = { 2681146017, 685201898 }; + + uint jitter = alphaJitter[dimension % 2] * shuffledSampleIndex; + float amplitude = 0.05 * 0.78 / sqrt(2) * rsqrt(float(sampleIndex)); + cranleyPattersonRot += jitter * uint(amplitude); +#endif + // Kronecker sequence evaluation + return UintToFloat01(cranleyPattersonRot + alphas[dimension % 4] * shuffledSampleIndex); + } + + void NextSample() + { + // shuffledSampleIndex modulo 1048576 to avoid numerical precision issues when evaluating the Kronecker sequence + shuffledSampleIndex = (shuffledSampleIndex + 1) % (1 << 20); +#ifdef QRNG_KRONECKER_ENHANCED_QUALITY + sampleIndex++; +#endif + } +}; + + +#endif // _SAMPLING_QUASIRANDOM_HLSL_ diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Sampling/QuasiRandom.hlsl.meta b/Packages/com.unity.render-pipelines.core/Runtime/Sampling/QuasiRandom.hlsl.meta new file mode 100644 index 00000000000..334c195135c --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/Sampling/QuasiRandom.hlsl.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 6dd45a9bd35347a45b6cb0047cab846f +ShaderIncludeImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Sampling/SamplingResources.cs b/Packages/com.unity.render-pipelines.core/Runtime/Sampling/SamplingResources.cs new file mode 100644 index 00000000000..47132816567 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/Sampling/SamplingResources.cs @@ -0,0 +1,70 @@ +using System; +using System.Runtime.InteropServices; + +#if UNITY_EDITOR +using UnityEditor; +#endif + +namespace UnityEngine.Rendering.Sampling +{ + + internal sealed class SamplingResources : IDisposable + { + internal enum ResourceType + { + BlueNoiseTextures = 1, + SobolMatrices = 2, + All = BlueNoiseTextures | SobolMatrices + }; + + private Texture2D m_SobolScramblingTile; + private Texture2D m_SobolRankingTile; + private Texture2D m_SobolOwenScrambled256Samples; + private GraphicsBuffer m_SobolBuffer; + + static public readonly uint[] sobolMatrices = SobolData.SobolMatrices; + +#if UNITY_EDITOR + public void Load(uint resourceBitmask = (uint)ResourceType.BlueNoiseTextures) + { + if ((resourceBitmask & (uint)ResourceType.BlueNoiseTextures) != 0) + { + const string path = "Packages/com.unity.render-pipelines.core/Runtime/"; + + m_SobolScramblingTile = AssetDatabase.LoadAssetAtPath(path + "Sampling/Textures/SobolBlueNoise/ScramblingTile256SPP.png"); + m_SobolRankingTile = AssetDatabase.LoadAssetAtPath(path + "Sampling/Textures/SobolBlueNoise/RankingTile256SPP.png"); + m_SobolOwenScrambled256Samples = AssetDatabase.LoadAssetAtPath(path + "Sampling/Textures/SobolBlueNoise/SobolOwenScrambled256.png"); + } + + if ((resourceBitmask & (uint)ResourceType.SobolMatrices) != 0) + { + int sobolBufferSize = (int)(SobolData.SobolDims * SobolData.SobolSize); + m_SobolBuffer = new GraphicsBuffer(GraphicsBuffer.Target.Structured, sobolBufferSize, Marshal.SizeOf()); + m_SobolBuffer.SetData(SobolData.SobolMatrices); + } + } +#endif + + public static void Bind(CommandBuffer cmd, SamplingResources resources) + { + if (resources.m_SobolScramblingTile != null) + { + cmd.SetGlobalTexture(Shader.PropertyToID("_SobolScramblingTile"), resources.m_SobolScramblingTile); + cmd.SetGlobalTexture(Shader.PropertyToID("_SobolRankingTile"), resources.m_SobolRankingTile); + cmd.SetGlobalTexture(Shader.PropertyToID("_SobolOwenScrambledSequence"), resources.m_SobolOwenScrambled256Samples); + } + + if (resources.m_SobolBuffer != null) + cmd.SetGlobalBuffer("_SobolMatricesBuffer", resources.m_SobolBuffer); + + } + + public void Dispose() + { + m_SobolBuffer?.Dispose(); + } + + } +} + + diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Sampling/SamplingResources.cs.meta b/Packages/com.unity.render-pipelines.core/Runtime/Sampling/SamplingResources.cs.meta new file mode 100644 index 00000000000..40a3d63ef49 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/Sampling/SamplingResources.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: e664c9077c60b314a80e696796bfcecb \ No newline at end of file diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Sampling/SamplingResources.hlsl b/Packages/com.unity.render-pipelines.core/Runtime/Sampling/SamplingResources.hlsl new file mode 100644 index 00000000000..df8150fdc11 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/Sampling/SamplingResources.hlsl @@ -0,0 +1,11 @@ +#ifndef _SAMPLING_SAMPLINGRESOURCES_HLSL_ +#define _SAMPLING_SAMPLINGRESOURCES_HLSL_ + +Texture2D _SobolScramblingTile; +Texture2D _SobolRankingTile; +Texture2D _SobolOwenScrambledSequence; + +StructuredBuffer _SobolMatricesBuffer; + +#endif + diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Sampling/SamplingResources.hlsl.meta b/Packages/com.unity.render-pipelines.core/Runtime/Sampling/SamplingResources.hlsl.meta new file mode 100644 index 00000000000..0b01a75a140 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/Sampling/SamplingResources.hlsl.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: a4f17041120a6f24c8d78d484c813aec +ShaderIncludeImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Sampling/SobolBluenoiseSampling.hlsl b/Packages/com.unity.render-pipelines.core/Runtime/Sampling/SobolBluenoiseSampling.hlsl new file mode 100644 index 00000000000..a96f8fa8e41 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/Sampling/SobolBluenoiseSampling.hlsl @@ -0,0 +1,31 @@ +#ifndef _SAMPLING_SOBOLBLUENOISESAMPLING_HLSL_ +#define _SAMPLING_SOBOLBLUENOISESAMPLING_HLSL_ + +#include "SamplingResources.hlsl" + +// This is an implementation of the method from the paper +// "A Low-Discrepancy Sampler that Distributes Monte Carlo Errors as a Blue Noise in Screen Space" by Heitz et al. +float GetBNDSequenceSample(uint2 pixelCoord, uint sampleIndex, uint sampleDimension) +{ + // wrap arguments + pixelCoord = pixelCoord & 127; + sampleIndex = sampleIndex & 255; + sampleDimension = sampleDimension & 255; + + // xor index based on optimized ranking + uint rankingIndex = (pixelCoord.x + pixelCoord.y * 128) * 8 + (sampleDimension & 7); + uint rankedSampleIndex = sampleIndex ^ clamp((uint)(_SobolRankingTile[uint2(rankingIndex & 127, rankingIndex / 128)] * 256.0), 0, 255); + + // fetch value in sequence + uint value = clamp((uint)(_SobolOwenScrambledSequence[uint2(sampleDimension, rankedSampleIndex.x)] * 256.0), 0, 255); + + // If the dimension is optimized, xor sequence value based on optimized scrambling + uint scramblingIndex = (pixelCoord.x + pixelCoord.y * 128) * 8 + (sampleDimension & 7); + float scramblingValue = min(_SobolScramblingTile[uint2(scramblingIndex & 127, scramblingIndex / 128)], 0.999); + value = value ^ uint(scramblingValue * 256.0); + + // Convert to float (to avoid the same 1/256th quantization everywhere, we jitter by the pixel scramblingValue) + return min((max(0.001, scramblingValue) + value) / 256.0, FLOAT_ONE_MINUS_EPSILON); +} + +#endif // _SAMPLING_SOBOLBLUENOISESAMPLING_HLSL_ diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Sampling/SobolBluenoiseSampling.hlsl.meta b/Packages/com.unity.render-pipelines.core/Runtime/Sampling/SobolBluenoiseSampling.hlsl.meta new file mode 100644 index 00000000000..a8c02bacb18 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/Sampling/SobolBluenoiseSampling.hlsl.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 563a0665ce2f07e419c80acd1ad6e1f0 +ShaderIncludeImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Sampling/SobolData.cs b/Packages/com.unity.render-pipelines.core/Runtime/Sampling/SobolData.cs new file mode 100644 index 00000000000..efbf6da5c8a --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/Sampling/SobolData.cs @@ -0,0 +1,53288 @@ +// Copyright (c) 2012 Leonhard Gruenschloss (leonhard@gruenschloss.org) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights to +// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +// of the Software, and to permit persons to whom the Software is furnished to do +// so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +// SOFTWARE. + +// These matrices are based on the following publication: +// +// S. Joe and F. Y. Kuo: "Constructing Sobol sequences with better +// two-dimensional projections", SIAM J. Sci. Comput. 30, 2635-2654 (2008). +// +// The tabulated direction numbers are available here: +// http://web.maths.unsw.edu.au/~fkuo/sobol/new-joe-kuo-6.21201 + +namespace UnityEngine.Rendering.Sampling +{ + internal static class SobolData + { + public const uint SobolDims = 1024; + public const uint SobolSize = 52; + + static public readonly uint[] SobolMatrices = new uint [] + { + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0x10000000U, + 0x8000000U, + 0x4000000U, + 0x2000000U, + 0x1000000U, + 0x800000U, + 0x400000U, + 0x200000U, + 0x100000U, + 0x80000U, + 0x40000U, + 0x20000U, + 0x10000U, + 0x8000U, + 0x4000U, + 0x2000U, + 0x1000U, + 0x800U, + 0x400U, + 0x200U, + 0x100U, + 0x80U, + 0x40U, + 0x20U, + 0x10U, + 0x8U, + 0x4U, + 0x2U, + 0x1U, + 0x0U, + 0x0U, + 0x0U, + 0x0U, + 0x0U, + 0x0U, + 0x0U, + 0x0U, + 0x0U, + 0x0U, + 0x0U, + 0x0U, + 0x0U, + 0x0U, + 0x0U, + 0x0U, + 0x0U, + 0x0U, + 0x0U, + 0x0U, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0xf0000000U, + 0x88000000U, + 0xcc000000U, + 0xaa000000U, + 0xff000000U, + 0x80800000U, + 0xc0c00000U, + 0xa0a00000U, + 0xf0f00000U, + 0x88880000U, + 0xcccc0000U, + 0xaaaa0000U, + 0xffff0000U, + 0x80008000U, + 0xc000c000U, + 0xa000a000U, + 0xf000f000U, + 0x88008800U, + 0xcc00cc00U, + 0xaa00aa00U, + 0xff00ff00U, + 0x80808080U, + 0xc0c0c0c0U, + 0xa0a0a0a0U, + 0xf0f0f0f0U, + 0x88888888U, + 0xccccccccU, + 0xaaaaaaaaU, + 0xffffffffU, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0xf0000000U, + 0x88000000U, + 0xcc000000U, + 0xaa000000U, + 0xff000000U, + 0x80800000U, + 0xc0c00000U, + 0xa0a00000U, + 0xf0f00000U, + 0x88880000U, + 0xcccc0000U, + 0xaaaa0000U, + 0xffff0000U, + 0x80008000U, + 0xc000c000U, + 0xa000a000U, + 0xf000f000U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0x90000000U, + 0xe8000000U, + 0x5c000000U, + 0x8e000000U, + 0xc5000000U, + 0x68800000U, + 0x9cc00000U, + 0xee600000U, + 0x55900000U, + 0x80680000U, + 0xc09c0000U, + 0x60ee0000U, + 0x90550000U, + 0xe8808000U, + 0x5cc0c000U, + 0x8e606000U, + 0xc5909000U, + 0x6868e800U, + 0x9c9c5c00U, + 0xeeee8e00U, + 0x5555c500U, + 0x8000e880U, + 0xc0005cc0U, + 0x60008e60U, + 0x9000c590U, + 0xe8006868U, + 0x5c009c9cU, + 0x8e00eeeeU, + 0xc5005555U, + 0x68808000U, + 0x9cc0c000U, + 0xee606000U, + 0x55909000U, + 0x8068e800U, + 0xc09c5c00U, + 0x60ee8e00U, + 0x9055c500U, + 0xe880e880U, + 0x5cc05cc0U, + 0x8e608e60U, + 0xc590c590U, + 0x68686868U, + 0x9c9c9c9cU, + 0xeeeeeeeeU, + 0x55555555U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0x90000000U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0x50000000U, + 0xf8000000U, + 0x74000000U, + 0xa2000000U, + 0x93000000U, + 0xd8800000U, + 0x25400000U, + 0x59e00000U, + 0xe6d00000U, + 0x78080000U, + 0xb40c0000U, + 0x82020000U, + 0xc3050000U, + 0x208f8000U, + 0x51474000U, + 0xfbea2000U, + 0x75d93000U, + 0xa0858800U, + 0x914e5400U, + 0xdbe79e00U, + 0x25db6d00U, + 0x58800080U, + 0xe54000c0U, + 0x79e00020U, + 0xb6d00050U, + 0x800800f8U, + 0xc00c0074U, + 0x200200a2U, + 0x50050093U, + 0xf80f80d8U, + 0x74074025U, + 0xa20a2059U, + 0x930930e6U, + 0xd88d8878U, + 0x254254b4U, + 0x59e59e82U, + 0xe6de6dc3U, + 0x780f80a0U, + 0xb4074091U, + 0x820a20dbU, + 0xc3093025U, + 0x208d8858U, + 0x514254e5U, + 0xfbe59e79U, + 0x75de6db6U, + 0xa08f8000U, + 0x91474000U, + 0xdbea2000U, + 0x25d93000U, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0xb0000000U, + 0xf8000000U, + 0xdc000000U, + 0x7a000000U, + 0x9d000000U, + 0x5a800000U, + 0x2fc00000U, + 0xa1600000U, + 0xf0b00000U, + 0xda880000U, + 0x6fc40000U, + 0x81620000U, + 0x40bb0000U, + 0x22878000U, + 0xb3c9c000U, + 0xfb65a000U, + 0xddb2d000U, + 0x78022800U, + 0x9c0b3c00U, + 0x5a0fb600U, + 0x2d0ddb00U, + 0xa2878080U, + 0xf3c9c040U, + 0xdb65a020U, + 0x6db2d0b0U, + 0x800228f8U, + 0x400b3cdcU, + 0x200fb67aU, + 0xb00ddb9dU, + 0xf80780daU, + 0xdc09c06fU, + 0x7a05a081U, + 0x9d02d040U, + 0x5a8a2822U, + 0x2fcf3cb3U, + 0xa16db6fbU, + 0xf0b6dbddU, + 0xda8000f8U, + 0x6fc000dcU, + 0x8160007aU, + 0x40b0009dU, + 0x2288005aU, + 0xb3c4002fU, + 0xfb6200a1U, + 0xddbb00f0U, + 0x780780daU, + 0x9c09c06fU, + 0x5a05a081U, + 0x2d02d040U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x30000000U, + 0xc8000000U, + 0x24000000U, + 0x56000000U, + 0xfb000000U, + 0xe0800000U, + 0x70400000U, + 0xa8600000U, + 0x14300000U, + 0x9ec80000U, + 0xdf240000U, + 0xb6d60000U, + 0x8bbb0000U, + 0x48008000U, + 0x64004000U, + 0x36006000U, + 0xcb003000U, + 0x2880c800U, + 0x54402400U, + 0xfe605600U, + 0xef30fb00U, + 0x7e48e080U, + 0xaf647040U, + 0x1eb6a860U, + 0x9f8b1430U, + 0xd6c81ec8U, + 0xbb249f24U, + 0x80d6d6d6U, + 0x40bbbbbbU, + 0x60800000U, + 0x30400000U, + 0xc8600000U, + 0x24300000U, + 0x56c80000U, + 0xfb240000U, + 0xe0d60000U, + 0x70bb0000U, + 0xa8808000U, + 0x14404000U, + 0x9e606000U, + 0xdf303000U, + 0xb648c800U, + 0x8b642400U, + 0x48b65600U, + 0x648bfb00U, + 0x36486080U, + 0xcb643040U, + 0x28b6c860U, + 0x548b2430U, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0xd0000000U, + 0x58000000U, + 0x94000000U, + 0x3e000000U, + 0xe3000000U, + 0xbe800000U, + 0x23c00000U, + 0x1e200000U, + 0xf3100000U, + 0x46780000U, + 0x67840000U, + 0x78460000U, + 0x84670000U, + 0xc6788000U, + 0xa784c000U, + 0xd846a000U, + 0x5467d000U, + 0x9e78d800U, + 0x33845400U, + 0xe6469e00U, + 0xb7673300U, + 0x20f86680U, + 0x104477c0U, + 0xf8668020U, + 0x4477c010U, + 0x668020f8U, + 0x77c01044U, + 0x8020f866U, + 0xc0104477U, + 0xa0f86680U, + 0xd04477c0U, + 0x58668020U, + 0x9477c010U, + 0x3e8020f8U, + 0xe3c01044U, + 0xbe20f866U, + 0x23104477U, + 0x1e786680U, + 0xf38477c0U, + 0x46468020U, + 0x6767c010U, + 0x78f820f8U, + 0x84441044U, + 0xc666f866U, + 0xa7774477U, + 0xd800e680U, + 0x5400b7c0U, + 0x9e002020U, + 0x33001010U, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0x50000000U, + 0x88000000U, + 0x24000000U, + 0x12000000U, + 0x2d000000U, + 0x76800000U, + 0x9e400000U, + 0x8200000U, + 0x64100000U, + 0xb2280000U, + 0x7d140000U, + 0xfea20000U, + 0xba490000U, + 0x1a248000U, + 0x491b4000U, + 0xc4b5a000U, + 0xe3739000U, + 0xf6800800U, + 0xde400400U, + 0xa8200a00U, + 0x34100500U, + 0x3a280880U, + 0x59140240U, + 0xeca20120U, + 0x974902d0U, + 0x6ca48768U, + 0xd75b49e4U, + 0xcc95a082U, + 0x87639641U, + 0x44a80322U, + 0xa35403d1U, + 0x568205eaU, + 0x8e590ea4U, + 0x200c8922U, + 0x100f46d1U, + 0x2817ad6bU, + 0x743a9ce7U, + 0x9a248000U, + 0x91b4000U, + 0x64b5a000U, + 0xb3739000U, + 0x7e800800U, + 0xfa400400U, + 0xba200a00U, + 0x19100500U, + 0x4ca80880U, + 0xc7540240U, + 0xe4820120U, + 0xf35902d0U, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0x50000000U, + 0x28000000U, + 0xd4000000U, + 0x6a000000U, + 0x71000000U, + 0x38800000U, + 0x58400000U, + 0xea200000U, + 0x31100000U, + 0x98a80000U, + 0x8540000U, + 0xc22a0000U, + 0xe5250000U, + 0xf2b28000U, + 0x79484000U, + 0xfaa42000U, + 0xbd731000U, + 0x18a80800U, + 0x48540400U, + 0x622a0a00U, + 0xb5250500U, + 0xdab28280U, + 0xad484d40U, + 0x90a426a0U, + 0xcc731710U, + 0x20280b88U, + 0x10140184U, + 0x880a04a2U, + 0x84350611U, + 0x421a8b0aU, + 0xa51c4dc5U, + 0x528e2a82U, + 0x29561942U, + 0xd29a84a3U, + 0x695c4610U, + 0x72ae2b08U, + 0x39461dc6U, + 0x5ab28280U, + 0xed484d40U, + 0x30a426a0U, + 0x9c731710U, + 0x8280b88U, + 0xc4140184U, + 0xe20a04a2U, + 0xf5350611U, + 0x7a9a8b0aU, + 0xfd5c4dc5U, + 0xb8ae2a82U, + 0x18461942U, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0xb0000000U, + 0x98000000U, + 0x94000000U, + 0x8a000000U, + 0x5b000000U, + 0x33800000U, + 0xd9c00000U, + 0x72200000U, + 0x3f100000U, + 0xc1b80000U, + 0xa6ec0000U, + 0x53860000U, + 0x29f50000U, + 0xa3a8000U, + 0x1b2ac000U, + 0xd392e000U, + 0x69ff7000U, + 0xea380800U, + 0xab2c0400U, + 0x4ba60e00U, + 0xfde50b00U, + 0x60028980U, + 0xf006c940U, + 0x7834e8a0U, + 0x241a75b0U, + 0x123a8b38U, + 0xcf2ac99cU, + 0xb992e922U, + 0x82ff78f1U, + 0x41b80d9bU, + 0xe6ec072eU, + 0xb3860398U, + 0x99f50c2fU, + 0x923a8a1bU, + 0x8f2ac56eU, + 0x5992e2bbU, + 0x32ff70deU, + 0xd9b80980U, + 0x72ec0940U, + 0x398608a0U, + 0xc2f505b0U, + 0xa1ba8338U, + 0x56eacd9cU, + 0x2bb2e722U, + 0xdef73f1U, + 0x1800041bU, + 0xd4000e6eU, + 0x6a000b38U, + 0xeb00099fU, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0x10000000U, + 0x8000000U, + 0x6c000000U, + 0x9e000000U, + 0x23000000U, + 0x57800000U, + 0xadc00000U, + 0x7fa00000U, + 0x91d00000U, + 0x49880000U, + 0xced40000U, + 0x880a0000U, + 0x2c0f0000U, + 0x3e0d8000U, + 0x3317c000U, + 0x5fb06000U, + 0xc1f8b000U, + 0xe18d8800U, + 0xb2d7c400U, + 0x1e106a00U, + 0x6328b100U, + 0xf7858880U, + 0xbdc3c2c0U, + 0x77ba63e0U, + 0xfdf7b330U, + 0xd7800df8U, + 0xedc0081cU, + 0xdfa0041aU, + 0x81d00a2dU, + 0x41880160U, + 0xa2d400f1U, + 0x160a069aU, + 0xf0f09edU, + 0x698d8200U, + 0x9ed7c500U, + 0x20106a81U, + 0x5028b7c2U, + 0xa8058160U, + 0x7c03c0f1U, + 0x961a669aU, + 0x4f27b9edU, + 0xc9880a00U, + 0x8ed40100U, + 0x280a0081U, + 0x3c0f06c2U, + 0x360d89e0U, + 0x5f17c231U, + 0xc1b0657aU, + 0xe2f8baddU, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0x30000000U, + 0x58000000U, + 0xac000000U, + 0x96000000U, + 0x2b000000U, + 0xd4800000U, + 0x9400000U, + 0xe2a00000U, + 0x52500000U, + 0x4e280000U, + 0xc71c0000U, + 0x629e0000U, + 0x12670000U, + 0x6e138000U, + 0xf731c000U, + 0x3a98a000U, + 0xbe449000U, + 0xf83b8800U, + 0xdc2dc400U, + 0xee06a200U, + 0xb7239300U, + 0x1aa80d80U, + 0x8e5c0ec0U, + 0xa03e0b60U, + 0x703701b0U, + 0x783b88c8U, + 0x9c2dca54U, + 0xce06a74aU, + 0x87239795U, + 0x42a801aaU, + 0x225c08e5U, + 0x363e0a03U, + 0x5b370703U, + 0xacbb8783U, + 0x956dc9c2U, + 0x2ca6ace0U, + 0xd5739872U, + 0xc800c2aU, + 0xe5400625U, + 0x54a00163U, + 0x495006b3U, + 0xc2a80f4bU, + 0x625c0396U, + 0x163e0baaU, + 0x6b370fe7U, + 0xf4bb8d80U, + 0x396dcec0U, + 0xbaa6ab60U, + 0xfe7391b0U, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0x50000000U, + 0xf8000000U, + 0x8c000000U, + 0xe2000000U, + 0x33000000U, + 0xf800000U, + 0x21400000U, + 0x95a00000U, + 0x5e700000U, + 0xd8080000U, + 0x1c240000U, + 0xba160000U, + 0xef370000U, + 0x15868000U, + 0x9e6fc000U, + 0x781b6000U, + 0x4c349000U, + 0x420e8800U, + 0x630bcc00U, + 0xf7ad6a00U, + 0xad739500U, + 0x77800780U, + 0x6d4004c0U, + 0xd7a00420U, + 0x3d700630U, + 0x2f880f78U, + 0xb1640ad4U, + 0xcdb6077aU, + 0x824706d7U, + 0xc20e8d78U, + 0xa30bc3d6U, + 0x57ad62fbU, + 0xfd739b14U, + 0x8f8004d8U, + 0xe1400424U, + 0x35a00620U, + 0xe700f30U, + 0x20080af8U, + 0x90240716U, + 0x581606dbU, + 0xdc370d24U, + 0x1a0683a0U, + 0xbf2fc2f0U, + 0xedbb6b5aU, + 0x12449ce7U, + 0x9a068000U, + 0x7f2fc000U, + 0x4dbb6000U, + 0x42449000U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0x90000000U, + 0x38000000U, + 0xc4000000U, + 0x42000000U, + 0xa3000000U, + 0xf1800000U, + 0xaa400000U, + 0xfce00000U, + 0x85100000U, + 0xe0080000U, + 0x500c0000U, + 0x58060000U, + 0x54090000U, + 0x7a038000U, + 0x670c4000U, + 0xb3842000U, + 0x94a3000U, + 0xd6f1800U, + 0x2f5aa400U, + 0x1ce7ce00U, + 0xd5145100U, + 0xb8000080U, + 0x40000c0U, + 0x22000060U, + 0x33000090U, + 0xc9800038U, + 0x6e4000c4U, + 0xbee00042U, + 0x261000a3U, + 0x118800f1U, + 0xfa4c00aaU, + 0xa4e600fcU, + 0xd1190085U, + 0x9a0b80e0U, + 0x37004050U, + 0xeb822058U, + 0x5d433054U, + 0x776c987aU, + 0x4856e467U, + 0xaf63eeb3U, + 0xdc5e6109U, + 0xb56f188dU, + 0x2b5aa4efU, + 0x3ee7ce7cU, + 0xe6145145U, + 0x71800000U, + 0x6a400000U, + 0x9ce00000U, + 0x15100000U, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0xf0000000U, + 0xa8000000U, + 0x54000000U, + 0x9a000000U, + 0x9d000000U, + 0x1e800000U, + 0x5cc00000U, + 0x7d200000U, + 0x8d100000U, + 0x24880000U, + 0x71c40000U, + 0xeba20000U, + 0x75df0000U, + 0x6ba28000U, + 0x35d14000U, + 0x4ba3a000U, + 0xc5d2d000U, + 0xe3a16800U, + 0x91db8c00U, + 0x79aef200U, + 0xcdf4100U, + 0x672a8080U, + 0x50154040U, + 0x1a01a020U, + 0xdd0dd0f0U, + 0x3e83e8a8U, + 0xaccacc54U, + 0xd52d529aU, + 0xd91d919dU, + 0xbe83e89eU, + 0xeccacc1cU, + 0xf52d525dU, + 0x291d917dU, + 0x1683e80cU, + 0xb8cacc65U, + 0x6f2d5251U, + 0xb41d9118U, + 0x803e85dU, + 0xe40acc7dU, + 0x120d528cU, + 0x390d9125U, + 0x2c8be8f1U, + 0x95cecca8U, + 0xf9af5255U, + 0x4cd29199U, + 0x4729681eU, + 0xa01f8c5cU, + 0xb20cf27dU, + 0x8900418dU, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0xd0000000U, + 0xd8000000U, + 0xc4000000U, + 0x46000000U, + 0x85000000U, + 0xa5800000U, + 0x76c00000U, + 0xada00000U, + 0x6ab00000U, + 0x2da80000U, + 0xaabc0000U, + 0xdaa0000U, + 0x7ab10000U, + 0xd5a78000U, + 0xbebd4000U, + 0x93a3e000U, + 0x3bb51000U, + 0x3629b800U, + 0x4d727c00U, + 0x9b836200U, + 0x27c4d700U, + 0xb629b880U, + 0x8d727cc0U, + 0xbb836220U, + 0xf7c4d7d0U, + 0x6e29b858U, + 0x49727c04U, + 0xfd836266U, + 0x72c4d755U, + 0xcba9b8fdU, + 0x3fb27c72U, + 0x502362cbU, + 0x1874d73fU, + 0xe601b8d0U, + 0x950e7cd8U, + 0x5d8962c6U, + 0x62c5d745U, + 0x33a63805U, + 0x2bb33c66U, + 0xce2a8255U, + 0x5970c77eU, + 0x58f8033U, + 0x66c1402bU, + 0x55a9e0ceU, + 0x7eb41059U, + 0xb3a63805U, + 0xebb33c66U, + 0xee2a8255U, + 0x8970c77eU, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0xf0000000U, + 0x38000000U, + 0x14000000U, + 0xf6000000U, + 0x67000000U, + 0x8f800000U, + 0x50400000U, + 0x8aa00000U, + 0xff00000U, + 0x12a80000U, + 0xabf40000U, + 0xfcaa0000U, + 0x28fb0000U, + 0xbd298000U, + 0xbba4000U, + 0x4e06e000U, + 0x330c3000U, + 0x59861800U, + 0xc74d3400U, + 0x3d2cb200U, + 0x4bb2cb00U, + 0x6e061880U, + 0xc30d3440U, + 0x618cb220U, + 0xd342cbf0U, + 0xcb2e18b8U, + 0x2cb93454U, + 0xe186b2d6U, + 0x9349cb97U, + 0xeb2f9837U, + 0xdcb77404U, + 0xd98a525cU, + 0x874efb98U, + 0x1d280025U, + 0xbbb400afU, + 0x560a00a0U, + 0xd70b00b0U, + 0x97818018U, + 0xb44e40e4U, + 0x44ace0ceU, + 0x7cf73073U, + 0x6b2f9879U, + 0x9cb77437U, + 0xf98a5205U, + 0x774efb5fU, + 0x25280018U, + 0xafb400e4U, + 0xa00a00ceU, + 0xb00b0073U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0xf0000000U, + 0x68000000U, + 0x64000000U, + 0x36000000U, + 0x6d000000U, + 0x41800000U, + 0xe0400000U, + 0xd2e00000U, + 0x9bf00000U, + 0xce80000U, + 0x52fc0000U, + 0x5b6a0000U, + 0x2fb30000U, + 0xa00c8000U, + 0x30054000U, + 0x4807e000U, + 0x940f9000U, + 0x5e01f800U, + 0x90e9400U, + 0x778a5600U, + 0x8d416b00U, + 0x9369f880U, + 0x7bb294c0U, + 0xde005620U, + 0xc9026bf0U, + 0x578d78e8U, + 0x7d4bd4a4U, + 0xfb6db616U, + 0x1fbefb9dU, + 0xe80000a9U, + 0xa4000044U, + 0x160000c4U, + 0x9d000006U, + 0x29800025U, + 0x844000d6U, + 0xe4e000bfU, + 0xf6f000d9U, + 0x4d6800edU, + 0xb2bc0082U, + 0x898a00c1U, + 0xb4430020U, + 0xace480f2U, + 0x62f9406bU, + 0x136de064U, + 0xbbbc9036U, + 0xfe0d786dU, + 0x390bd442U, + 0x3f8db6e1U, + 0x194efbd0U, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0x50000000U, + 0x98000000U, + 0xf4000000U, + 0xae000000U, + 0xbb000000U, + 0xe7800000U, + 0x95c00000U, + 0x1c200000U, + 0xd0300000U, + 0xdba80000U, + 0x55f40000U, + 0xff820000U, + 0x21c10000U, + 0x12238000U, + 0x3b3a4000U, + 0xa42b6000U, + 0x3430f000U, + 0x4da69800U, + 0x4af3ec00U, + 0x2e043a00U, + 0xfb0a1f00U, + 0x47851880U, + 0xc5c9ac40U, + 0x842f5aa0U, + 0x243aef50U, + 0x75a38018U, + 0xeefa40b4U, + 0x180b600eU, + 0xb400f0ebU, + 0xe0e987fU, + 0xeb07ec61U, + 0x7f863ab2U, + 0x61cb1f6bU, + 0xb22698bcU, + 0x6b33ec80U, + 0x3c243a43U, + 0xc03a1fa1U, + 0xe3ad18d1U, + 0xf1fdacdaU, + 0xc98d5a55U, + 0x6ecbeffeU, + 0x5ba800a0U, + 0x15f40050U, + 0x5f820098U, + 0x71c100f4U, + 0x8a2380aeU, + 0xcf3a40bbU, + 0xa2b60e7U, + 0x8f30f095U, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0xb0000000U, + 0xb8000000U, + 0x3c000000U, + 0xce000000U, + 0x41000000U, + 0x21800000U, + 0x51c00000U, + 0x9600000U, + 0x85700000U, + 0xf2780000U, + 0x8e9c0000U, + 0x60020000U, + 0x70030000U, + 0x58038000U, + 0x8c02c000U, + 0x7602e000U, + 0x7d00f000U, + 0xef833800U, + 0x10c10400U, + 0x28e08600U, + 0xd4b14700U, + 0xfb182580U, + 0xbee15c0U, + 0x9279c9e0U, + 0xfe9d3a70U, + 0x38000008U, + 0xfc00000cU, + 0x2e00000eU, + 0xf100000bU, + 0x9980000bU, + 0x6dc00003U, + 0xc760000cU, + 0xc4700004U, + 0xd3f80002U, + 0xdf5c0005U, + 0x69620000U, + 0xf5730008U, + 0xaa7b800fU, + 0x29ec008U, + 0x1600e006U, + 0xd03f007U, + 0xb780b805U, + 0x9cc3c408U, + 0x5ee26607U, + 0xa9b1b707U, + 0x149b1d8eU, + 0x1b2f11c1U, + 0xba994fe2U, + 0x2a2c7d7dU, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0xd0000000U, + 0x68000000U, + 0x3c000000U, + 0x8a000000U, + 0x51000000U, + 0xa9800000U, + 0xddc00000U, + 0x5ba00000U, + 0x39d00000U, + 0x95f80000U, + 0x56d40000U, + 0xa020000U, + 0x91030000U, + 0x49838000U, + 0xdc34000U, + 0x33a1a000U, + 0x5d0f000U, + 0x1ffa2800U, + 0x7d54400U, + 0xa380a600U, + 0x4cc07700U, + 0x1222ee80U, + 0x3413a740U, + 0xa65bf7e0U, + 0x5305ab50U, + 0x15f80008U, + 0x96d4000cU, + 0xea02000eU, + 0x4103000dU, + 0x21838006U, + 0x31c34003U, + 0xb9a1a008U, + 0x54d0f005U, + 0xb67a280aU, + 0xda15440dU, + 0xf820a605U, + 0x75107703U, + 0x87daee89U, + 0x62c7a745U, + 0xac59f7e0U, + 0xc206ab59U, + 0x5c7b800cU, + 0x9b17400cU, + 0xd9a3a00dU, + 0x44d3f00dU, + 0x3e79a807U, + 0x36160403U, + 0x1a210602U, + 0x18108701U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0xd0000000U, + 0x38000000U, + 0x8c000000U, + 0x7e000000U, + 0x71000000U, + 0xc8800000U, + 0x4c00000U, + 0x1ba00000U, + 0xbb700000U, + 0x4a980000U, + 0xc3bc0000U, + 0xa6020000U, + 0x6d010000U, + 0xee818000U, + 0x29c34000U, + 0x9520e000U, + 0x42b23000U, + 0xe7b9f800U, + 0xd0dc400U, + 0x3fb92200U, + 0x110d1300U, + 0x19bbee80U, + 0x3c0cadc0U, + 0x973a4a60U, + 0xc5cf7ef0U, + 0x3a180008U, + 0xb7c0004U, + 0xa3a20006U, + 0x7771000dU, + 0x54998003U, + 0x62bf4008U, + 0x5682e007U, + 0xe5c33007U, + 0x8b20780cU, + 0xe3b28400U, + 0x173bc201U, + 0x85ce230bU, + 0x5a1b9684U, + 0xdb7e29ccU, + 0x9ba1886aU, + 0xfb715df6U, + 0x2a9b9686U, + 0x13be29c6U, + 0x9e01886fU, + 0xe1015df9U, + 0x90839685U, + 0x58c229ccU, + 0x5da38862U, + 0x46705dfbU, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0x90000000U, + 0x8000000U, + 0x64000000U, + 0x6a000000U, + 0x89000000U, + 0xa5800000U, + 0xcb400000U, + 0x18200000U, + 0xad900000U, + 0xaf880000U, + 0x72f40000U, + 0x25820000U, + 0xb430000U, + 0xb8228000U, + 0x3d924000U, + 0xa7882000U, + 0x16f59000U, + 0x4f83a800U, + 0x82412400U, + 0x1da01600U, + 0xf6d16d00U, + 0xbfa84080U, + 0xbb672640U, + 0xe0091620U, + 0xf0b4efd0U, + 0x38228008U, + 0xfd92400cU, + 0x788200aU, + 0x86f59009U, + 0x4783a800U, + 0xe6412406U, + 0x77a01606U, + 0x7fd16d08U, + 0x1a28408aU, + 0x7027264cU, + 0xf8291621U, + 0x5d24efdaU, + 0x97aa8002U, + 0x8f66400bU, + 0x220a2008U, + 0x8db69009U, + 0xffa1280bU, + 0xdbd36405U, + 0xd028360cU, + 0x6924fd09U, + 0x55abe88eU, + 0xf2660244U, + 0xe5890020U, + 0xabf582d5U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0xd0000000U, + 0x48000000U, + 0x8c000000U, + 0xd6000000U, + 0x39000000U, + 0xd5800000U, + 0x32400000U, + 0xb2a00000U, + 0x72100000U, + 0x53d80000U, + 0x82cc0000U, + 0xcb820000U, + 0x47430000U, + 0x91208000U, + 0xa9534000U, + 0x7cf92000U, + 0x4e9e3000U, + 0xfcf95800U, + 0x8e9fe400U, + 0xdcf9d600U, + 0x5e9c8900U, + 0x94f96a80U, + 0xd29fb840U, + 0x42f9b760U, + 0xeb9c9f30U, + 0x97788008U, + 0xd9df400cU, + 0x25db2002U, + 0xabcd300dU, + 0x7601d804U, + 0x2900a408U, + 0xbd82f60dU, + 0x6e41b903U, + 0x2ca0b28dU, + 0xc7131c43U, + 0x5059416bU, + 0x898e2637U, + 0xaca0b28dU, + 0x7131c44U, + 0x7059416eU, + 0x598e2639U, + 0xe4a0b285U, + 0x8b131c4eU, + 0xa6594168U, + 0x608e263aU, + 0x3120b28eU, + 0xb9531c4fU, + 0x14f94169U, + 0x129e263cU, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0x50000000U, + 0xd8000000U, + 0xf4000000U, + 0x3e000000U, + 0x95000000U, + 0x8f800000U, + 0x3d400000U, + 0xf3200000U, + 0x2ef00000U, + 0xadc80000U, + 0xa0c0000U, + 0x8b220000U, + 0x4af30000U, + 0x6bc88000U, + 0x3b0d4000U, + 0xe2a16000U, + 0x16b0d000U, + 0x29687800U, + 0xbdbf1400U, + 0x33cb5e00U, + 0xf0c2500U, + 0xfca1b480U, + 0xd3b0afc0U, + 0x7eeb6920U, + 0x74fe4d30U, + 0xfee87808U, + 0xb4ff140cU, + 0xdeeb5e02U, + 0xe4fc2505U, + 0x6e9b48dU, + 0x10fcafcfU, + 0x38e96923U, + 0x85fd4d39U, + 0xb768f800U, + 0xb8be540fU, + 0x44483e0dU, + 0x964ff507U, + 0xe9814c87U, + 0x9c42fbcfU, + 0x62a1572bU, + 0xd6b2b83dU, + 0x969b486U, + 0xedbcafccU, + 0xebc96923U, + 0xfb0d4d36U, + 0xc2a0f80dU, + 0x46b25408U, + 0xf16a3e0aU, + 0x49bcf508U, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0xb0000000U, + 0x98000000U, + 0xa4000000U, + 0x7a000000U, + 0xd5000000U, + 0x2800000U, + 0x60400000U, + 0x51e00000U, + 0x88700000U, + 0x8c280000U, + 0x47c40000U, + 0xbe20000U, + 0xad710000U, + 0xb6aa8000U, + 0x3386c000U, + 0xb8006000U, + 0x54039000U, + 0x42036800U, + 0xc1019400U, + 0xe0826a00U, + 0x11431100U, + 0x2960af80U, + 0x3d3175c0U, + 0xdf4a3aa0U, + 0xaff49e10U, + 0xd62b6808U, + 0x62c59404U, + 0x31606a0aU, + 0xd932110bU, + 0x54a2f89U, + 0xcaf7b5caU, + 0x4caa5aa7U, + 0xa6870e1dU, + 0x1a800008U, + 0x84400002U, + 0x8be0000fU, + 0xed700003U, + 0x16a80001U, + 0x8384000eU, + 0x20020007U, + 0xf0010007U, + 0x3802800bU, + 0x1402c005U, + 0xe202600eU, + 0x7102900dU, + 0x7881e80cU, + 0xb5435408U, + 0x53600a0eU, + 0xe831810bU, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0x30000000U, + 0x18000000U, + 0x34000000U, + 0x8a000000U, + 0x9d000000U, + 0x67800000U, + 0x82400000U, + 0x40e00000U, + 0x60f00000U, + 0x91480000U, + 0x29440000U, + 0x2d620000U, + 0xbfb30000U, + 0x162a8000U, + 0xfbf4c000U, + 0xe4ca6000U, + 0xc207d000U, + 0x2002a800U, + 0xf001b400U, + 0xb8037e00U, + 0x4021900U, + 0x92034b80U, + 0xa90327c0U, + 0xed81f320U, + 0x1f40d810U, + 0x27602808U, + 0xe2b1740cU, + 0xd1ab1e0aU, + 0x49b6c903U, + 0xbc2b6381U, + 0x96f653c3U, + 0x3b48ed28U, + 0x44451119U, + 0xf2e1cb8eU, + 0x39f3e7c4U, + 0xc4c9932eU, + 0x32040815U, + 0x98000000U, + 0xf400000dU, + 0x2a000000U, + 0xad000001U, + 0x7f800006U, + 0xb6400004U, + 0xcae00002U, + 0xfdf00003U, + 0xf6c8000dU, + 0xab040005U, + 0x6d82000dU, + 0xdf43000dU, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0xd0000000U, + 0x8000000U, + 0x4c000000U, + 0x2000000U, + 0xb5000000U, + 0x36800000U, + 0xc2c00000U, + 0x14200000U, + 0x7500000U, + 0x1bf80000U, + 0x50340000U, + 0x48a20000U, + 0xac910000U, + 0xd35b8000U, + 0xbca74000U, + 0x7bfa2000U, + 0xc0343000U, + 0xa0a18800U, + 0x30909400U, + 0xd95b7a00U, + 0x45a57b00U, + 0x4f7a7880U, + 0xb7f6f940U, + 0x82013de0U, + 0xf502dfd0U, + 0xd6820808U, + 0x12c3d404U, + 0x1c235a0eU, + 0x4b504b0dU, + 0x19f87080U, + 0xe5352d44U, + 0x7e2267e0U, + 0x6e5294dbU, + 0xc77a788bU, + 0xbbf6f948U, + 0x60013defU, + 0x9002dfddU, + 0xe8020809U, + 0x9c03d405U, + 0xa035a0aU, + 0xf9004b0cU, + 0x3480708eU, + 0x77c12d43U, + 0x22a067e6U, + 0xc59394d7U, + 0xfd9f880U, + 0x5765b94eU, + 0x53591de6U, + 0xfca7efd3U, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0x50000000U, + 0x68000000U, + 0x4c000000U, + 0x76000000U, + 0xf7000000U, + 0x36800000U, + 0xd7400000U, + 0x87e00000U, + 0xef300000U, + 0xa3a80000U, + 0xd5440000U, + 0x23aa0000U, + 0x15470000U, + 0xc3a98000U, + 0x45464000U, + 0xaba82000U, + 0x9477000U, + 0xdda9f800U, + 0xfe44ac00U, + 0xeb292200U, + 0x2907f100U, + 0x6ccb3d80U, + 0xc6344dc0U, + 0xcf61b320U, + 0x137318d0U, + 0xeccb3d88U, + 0x6344dccU, + 0x2f61b32eU, + 0x437318d5U, + 0x84cb3d8eU, + 0x4a344dc8U, + 0x5961b329U, + 0xb47318daU, + 0xb24b3d8dU, + 0x9d744dc5U, + 0xde81b321U, + 0x5b4318d4U, + 0x11e33d87U, + 0x48304dc8U, + 0xfd2bb323U, + 0x4e0418d5U, + 0xd24abd8bU, + 0xd760dccU, + 0x56839329U, + 0x474368d5U, + 0xfe34586U, + 0xf332a1c3U, + 0xbdaab127U, + 0x6e4499d7U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x90000000U, + 0xc8000000U, + 0x74000000U, + 0x52000000U, + 0x3000000U, + 0xeb800000U, + 0x6f400000U, + 0x64600000U, + 0xdaf00000U, + 0x17980000U, + 0x297c0000U, + 0xa59a0000U, + 0xfa7d0000U, + 0xe61b8000U, + 0x713f4000U, + 0x1878a000U, + 0xdcce9000U, + 0xb661e800U, + 0x99f29c00U, + 0x9c184600U, + 0xd63e2100U, + 0x9fa5780U, + 0x548e0ac0U, + 0xa380a9e0U, + 0x5b413f30U, + 0x56625788U, + 0x49f20ac4U, + 0x341aa9e6U, + 0x323c3f39U, + 0x93f9d784U, + 0x238d4ac3U, + 0x1a0209e3U, + 0x3702af39U, + 0xd9803f8aU, + 0xfc43d6c5U, + 0x47e04fe5U, + 0xc1b18e34U, + 0x21f9e80bU, + 0xf08e9c07U, + 0x5982460fU, + 0xbc43210bU, + 0x27e1d78dU, + 0x51b14ac4U, + 0xe9f809e8U, + 0x848faf3fU, + 0xb83bf82U, + 0xbf4096ceU, + 0xcc62efe2U, + 0x3ef21e3bU, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0xd0000000U, + 0xb8000000U, + 0x4000000U, + 0x6e000000U, + 0x97000000U, + 0xf2800000U, + 0xedc00000U, + 0x13600000U, + 0x5c900000U, + 0xdb580000U, + 0x31e40000U, + 0x9da0000U, + 0xcc270000U, + 0x2b88000U, + 0x44b44000U, + 0xfe26000U, + 0xe6505000U, + 0x9ab9d800U, + 0x50b50c00U, + 0x79e29200U, + 0xa552fb00U, + 0xbe38bf80U, + 0x2e77d940U, + 0xf6000ae0U, + 0x830112d0U, + 0x84803f88U, + 0xaec3994cU, + 0x37e26aeaU, + 0x225142ddU, + 0x54b9e783U, + 0x17b6954cU, + 0x3360f8ecU, + 0x4c93b9d4U, + 0xc359580cU, + 0xe5e54c02U, + 0xdfdaf20dU, + 0x5f25ab01U, + 0x9e39e789U, + 0x3e76954dU, + 0xee00f8e7U, + 0x5703b9d0U, + 0x5281580aU, + 0x3dc14c05U, + 0xab60f20bU, + 0x5892ab0aU, + 0xb559678fU, + 0xa6e6d542U, + 0xfb5898e1U, + 0x21e4e9d1U, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0x30000000U, + 0x68000000U, + 0xec000000U, + 0x22000000U, + 0x2b000000U, + 0x36800000U, + 0x9d400000U, + 0x6a200000U, + 0x16700000U, + 0x4de80000U, + 0x330c0000U, + 0x936a0000U, + 0x824f0000U, + 0x3b498000U, + 0x8f3fc000U, + 0x28202000U, + 0xcd707000U, + 0xf36aa800U, + 0x724fdc00U, + 0xb34bf200U, + 0x533e6900U, + 0x62207a80U, + 0xa7140c0U, + 0xe7ea6520U, + 0xc40d90f0U, + 0xefe9fa88U, + 0xd80e80ccU, + 0x45ea452eU, + 0x2f0de0f3U, + 0x396b528eU, + 0x754d5cc2U, + 0x47cbb72cU, + 0xd57c89f1U, + 0x5682a80dU, + 0x6d43dc0bU, + 0xe221f20aU, + 0xca716900U, + 0x7e9fa81U, + 0xf40e80c4U, + 0x87ea452dU, + 0x340de0fbU, + 0x67eb528cU, + 0x40d5cceU, + 0xfebb723U, + 0xe80c89f6U, + 0x2deaa806U, + 0xc30fdc0eU, + 0x1b6bf20cU, + 0x5e4e6900U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0x30000000U, + 0x28000000U, + 0xd4000000U, + 0x8a000000U, + 0xff000000U, + 0x84800000U, + 0x73c00000U, + 0x13200000U, + 0xc2b00000U, + 0xfb380000U, + 0x361c0000U, + 0x401a0000U, + 0xe0af0000U, + 0x11228000U, + 0x19b3c000U, + 0xfdb82000U, + 0x5edf9000U, + 0x75b88800U, + 0x7adfac00U, + 0xf7baba00U, + 0x61ddf300U, + 0xd1387e80U, + 0x391e55c0U, + 0xcc9ba860U, + 0x776cbeb0U, + 0xa000f688U, + 0xf001f9ccU, + 0x8011262U, + 0xe4014db3U, + 0xa200880aU, + 0x2b03ac01U, + 0xe80ba0aU, + 0x8cc2f30cU, + 0x97a2fe8aU, + 0xb17195caU, + 0xe8198869U, + 0xf4ac2eb3U, + 0xbb22fe8fU, + 0xd6b195c8U, + 0x51398867U, + 0xf91c2eb1U, + 0xec9afe84U, + 0x476d95c3U, + 0x88038861U, + 0x24032eb7U, + 0x82007e84U, + 0x1b0255c0U, + 0x2681a86bU, + 0x58c3beb3U, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0x50000000U, + 0xb8000000U, + 0x84000000U, + 0x1a000000U, + 0xaf000000U, + 0xbd800000U, + 0xdfc00000U, + 0x14e00000U, + 0x43500000U, + 0xda380000U, + 0x4e1c0000U, + 0x4cda0000U, + 0x364d0000U, + 0x29608000U, + 0xdc904000U, + 0x6ed86000U, + 0x5d4f5000U, + 0x2ee08800U, + 0xfc51ac00U, + 0x7fb81e00U, + 0x45dc8300U, + 0xfa3a4580U, + 0x5e1d6240U, + 0x54dbd360U, + 0xe24ec930U, + 0x8b62cd88U, + 0xf790ce44U, + 0xc959cd6aU, + 0x2d8f4a35U, + 0x87800803U, + 0x60c1ec0cU, + 0xb1607e0bU, + 0x4893d30fU, + 0x6cdacd80U, + 0x264cce45U, + 0x3163cd60U, + 0x8924a3eU, + 0xccd8880eU, + 0x764dac0dU, + 0x89621e0fU, + 0x8c918302U, + 0xd6dac584U, + 0xd94d2241U, + 0x34e3b363U, + 0x5351993cU, + 0xc23a4583U, + 0x9a1d624bU, + 0xeedbd36aU, + 0x1d4ec930U, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0x70000000U, + 0x8000000U, + 0xf4000000U, + 0xf6000000U, + 0x8b000000U, + 0xc9800000U, + 0x55400000U, + 0x67200000U, + 0xf3f00000U, + 0x34780000U, + 0x57440000U, + 0x1ada0000U, + 0xb1f50000U, + 0xa9818000U, + 0x6540c000U, + 0x8f23a000U, + 0x77f21000U, + 0xca7bf800U, + 0x2845fc00U, + 0x255afe00U, + 0x6fb67900U, + 0x7233a80U, + 0xc3f25ac0U, + 0xdc7aed60U, + 0xd34482d0U, + 0xe4d94288U, + 0xcef766c4U, + 0x9603b36eU, + 0xbb00ebd7U, + 0x21818008U, + 0xd140c00bU, + 0x9923a001U, + 0x8cf2100fU, + 0xbfbf80cU, + 0x8905fc0aU, + 0xb47afe09U, + 0x17467907U, + 0xfadb3a8fU, + 0xc1f65ac0U, + 0xa180ed67U, + 0x914182d4U, + 0x7920c281U, + 0xfcf3a6c7U, + 0x3fa1367U, + 0x7d07fbdbU, + 0x427bf80eU, + 0x9c45fc0fU, + 0x335afe0bU, + 0x94b6790eU, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0x90000000U, + 0x68000000U, + 0xf4000000U, + 0x62000000U, + 0xdf000000U, + 0x79800000U, + 0xdd400000U, + 0x76e00000U, + 0x2cf00000U, + 0xcfb80000U, + 0x51ec0000U, + 0xc8da0000U, + 0x845d0000U, + 0x9b818000U, + 0x42434000U, + 0xef622000U, + 0x61b19000U, + 0xd1582800U, + 0x891cac00U, + 0x65626e00U, + 0xab10900U, + 0x2adbbd80U, + 0x1b5d86c0U, + 0x2014560U, + 0xf032470U, + 0xf1821588U, + 0xb9426ac4U, + 0x7ce10b6eU, + 0x7f3bd79U, + 0xd439800eU, + 0x53af400bU, + 0xc7b82008U, + 0x75ec9004U, + 0x22d9a801U, + 0x3f5fec02U, + 0xe8004e01U, + 0xb400990fU, + 0x8203958bU, + 0x4f012ac8U, + 0x11832b6bU, + 0x29422d7aU, + 0x14e1a80dU, + 0xf3f3ec05U, + 0xb63a4e0cU, + 0x8cad9907U, + 0xbe3a1582U, + 0xa8ae6ac3U, + 0x543b0b6eU, + 0x13aebd7bU, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0x50000000U, + 0x18000000U, + 0xdc000000U, + 0x42000000U, + 0x37000000U, + 0x20800000U, + 0xf1400000U, + 0x28600000U, + 0x94900000U, + 0x87880000U, + 0xa83c0000U, + 0x556a0000U, + 0xe6ef0000U, + 0xf8038000U, + 0x4c024000U, + 0x3a01e000U, + 0xbb023000U, + 0x7a816800U, + 0x1a43ac00U, + 0x4ae18a00U, + 0x52d31900U, + 0x8f682380U, + 0xcded9740U, + 0xfa80bfa0U, + 0xda43f2b0U, + 0x2ae2cb88U, + 0x2d07b4cU, + 0x976ad5a6U, + 0x11eddbb5U, + 0xb8800009U, + 0xed400001U, + 0xa600002U, + 0xf3900006U, + 0xbf080003U, + 0x857c0002U, + 0x3f0a0006U, + 0x457f000aU, + 0x5f0b800aU, + 0x157e4005U, + 0x470be007U, + 0xc97d3007U, + 0x50ae807U, + 0xfe7dec0eU, + 0x258a6a06U, + 0xf3e2905U, + 0xdeacb88U, + 0x9bac7b45U, + 0x8a60d5a7U, + 0x3392dbbeU, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0xf0000000U, + 0xf8000000U, + 0x34000000U, + 0x62000000U, + 0xf5000000U, + 0xa8800000U, + 0xfcc00000U, + 0x8e200000U, + 0x53f00000U, + 0xc7780000U, + 0x95740000U, + 0xb8020000U, + 0xd4e50000U, + 0xb2808000U, + 0xfdc0c000U, + 0x64a02000U, + 0xaa30f000U, + 0x19d8f800U, + 0xe443400U, + 0x935a6200U, + 0xe761f500U, + 0x657a2880U, + 0x40913cc0U, + 0xe0022e20U, + 0xd0e563f0U, + 0x8809f78U, + 0xccc09174U, + 0x56200202U, + 0x97f0e5e5U, + 0x5d788000U, + 0x5474c000U, + 0x72822000U, + 0xdd25f000U, + 0x94207800U, + 0x52f0f400U, + 0x2df84200U, + 0x6cb40500U, + 0x66a25080U, + 0x4fd5c8c0U, + 0x99d86c20U, + 0xce4466f0U, + 0xb35a4ff8U, + 0x176199b4U, + 0x9d7a4e22U, + 0x74917315U, + 0x8202b7f8U, + 0x25e5adb4U, + 0xa0002c22U, + 0x30008615U, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0xf0000000U, + 0xf8000000U, + 0xec000000U, + 0x7e000000U, + 0x61000000U, + 0x5c800000U, + 0xe6c00000U, + 0xdda00000U, + 0x2a700000U, + 0x93380000U, + 0x13cc0000U, + 0xd3ce0000U, + 0x73790000U, + 0x83a08000U, + 0x7b70c000U, + 0x97b8a000U, + 0xe90cf000U, + 0x886ef800U, + 0xd409ec00U, + 0x3218fe00U, + 0xef7ca100U, + 0xc556fc80U, + 0x56c516c0U, + 0x4556a5a0U, + 0x96c50670U, + 0xe556cd38U, + 0x66c542ccU, + 0x1d56574eU, + 0x8ac549b9U, + 0x6356f800U, + 0xebc5ec00U, + 0x3fd6fe00U, + 0xd05a100U, + 0xe2767c80U, + 0x2775d6c0U, + 0x714e05a0U, + 0x34b9f670U, + 0xa2803538U, + 0x47c0aeccU, + 0x2120a94eU, + 0x3cb0e8b9U, + 0xb6988480U, + 0xd5bc3ac0U, + 0x3ef6fba0U, + 0x1b55770U, + 0xceec9b8U, + 0xeec9b80cU, + 0xc9b80ceeU, + 0xb80ceec9U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0xb0000000U, + 0x58000000U, + 0x2c000000U, + 0x9a000000U, + 0xf9000000U, + 0x3c800000U, + 0xb2c00000U, + 0xad200000U, + 0x3a300000U, + 0x89980000U, + 0x448c0000U, + 0x2eea0000U, + 0x6f810000U, + 0xef208000U, + 0x2f30c000U, + 0xf182000U, + 0xbf4cb000U, + 0xe74a5800U, + 0xcb712c00U, + 0x51981a00U, + 0xa88c3900U, + 0x94ea1c80U, + 0x268102c0U, + 0x8ba07520U, + 0xb1f0d630U, + 0x38383398U, + 0x7c7c0d8cU, + 0x52524a6aU, + 0x3d3df141U, + 0xd2525800U, + 0xfd3d2c00U, + 0xf2521a00U, + 0x4d3d3900U, + 0xaa529c80U, + 0x613dc2c0U, + 0x30525520U, + 0x983d6630U, + 0xcd2eb98U, + 0x2afde18cU, + 0xa1f2706aU, + 0x10cd7841U, + 0x286a1c80U, + 0x544102c0U, + 0x6807520U, + 0x3bc0d630U, + 0xe9a03398U, + 0x14f00d8cU, + 0xe6b84a6aU, + 0xabbcf141U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0xb0000000U, + 0xd8000000U, + 0xac000000U, + 0x8e000000U, + 0x9000000U, + 0x9e800000U, + 0xa1c00000U, + 0xcaa00000U, + 0x33700000U, + 0x95780000U, + 0x85c0000U, + 0x24b60000U, + 0x6a350000U, + 0x43788000U, + 0x6d5cc000U, + 0x14362000U, + 0x72f5b000U, + 0xcf585800U, + 0x53ec6c00U, + 0xc5eeae00U, + 0x40d9b900U, + 0xe016c680U, + 0x9045cdc0U, + 0x6880e4a0U, + 0x74c04a70U, + 0x2220f3f8U, + 0x87b0b59cU, + 0x9758b816U, + 0x3fecfc45U, + 0x6beec680U, + 0xf9d9cdc0U, + 0xa696e4a0U, + 0x9d854a70U, + 0x2c2073f8U, + 0x4eb0759cU, + 0x29d89816U, + 0x2e2c4c45U, + 0x794e1e80U, + 0x66a961c0U, + 0xbdee6aa0U, + 0x9cd94370U, + 0x9616ed78U, + 0x8545d45cU, + 0xa000d2b6U, + 0x7000bf35U, + 0xf800abf8U, + 0x1c00d99cU, + 0x56001616U, + 0xa5004545U, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0xf0000000U, + 0xa8000000U, + 0x2c000000U, + 0xa2000000U, + 0x2d000000U, + 0xda800000U, + 0xf9400000U, + 0xec600000U, + 0x2b00000U, + 0x3d480000U, + 0x825c0000U, + 0x7d4a0000U, + 0x62610000U, + 0x8dc88000U, + 0xca1c4000U, + 0xa1aae000U, + 0x6891f000U, + 0x8c602800U, + 0xb2b06c00U, + 0x75484200U, + 0x5e5cdd00U, + 0x774a7280U, + 0x6361d540U, + 0xf548ce60U, + 0x1e5c6fb0U, + 0x974a07c8U, + 0x93618b1cU, + 0x5d48b92aU, + 0x325c0cd1U, + 0x354af280U, + 0xbe619540U, + 0x87c82e60U, + 0xcb1c9fb0U, + 0xd92aafc8U, + 0xbcd1a71cU, + 0xba801b2aU, + 0x494021d1U, + 0xa4602800U, + 0xdeb06c00U, + 0x37484200U, + 0x835cdd00U, + 0x5ca7280U, + 0xb621d540U, + 0xbb28ce60U, + 0x31ec6fb0U, + 0x708207c8U, + 0xe87d8b1cU, + 0xcc62b92aU, + 0x528d0cd1U, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0x30000000U, + 0xc8000000U, + 0x7c000000U, + 0x82000000U, + 0x4f000000U, + 0xbe800000U, + 0xedc00000U, + 0x21600000U, + 0xab700000U, + 0x78680000U, + 0x746c0000U, + 0x1e9a0000U, + 0xfdcb0000U, + 0x39088000U, + 0x2f1cc000U, + 0x4ef2e000U, + 0xc5a73000U, + 0x6d924800U, + 0xe1d7bc00U, + 0x4b7ae200U, + 0x487bbf00U, + 0xbc801680U, + 0x62c061c0U, + 0x7fe08b60U, + 0x76b0a870U, + 0x91088ce8U, + 0xa31caaacU, + 0xe4f2037aU, + 0xc6a7f47bU, + 0x99125e80U, + 0x3f17ddc0U, + 0x569a6960U, + 0x41cb1770U, + 0x5b089a68U, + 0x501ccb6cU, + 0x3872881aU, + 0x54675c0bU, + 0xcef2d268U, + 0x5a7776cU, + 0x8d926a1aU, + 0xd1d7e30bU, + 0x837a44e8U, + 0x347bd6acU, + 0x3e80017aU, + 0x2dc07b7bU, + 0xc1608000U, + 0x9b70c000U, + 0xb068e000U, + 0x86c3000U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0x10000000U, + 0x98000000U, + 0x2c000000U, + 0x6000000U, + 0xcd000000U, + 0x8a800000U, + 0x1bc00000U, + 0xffa00000U, + 0xad500000U, + 0x7af80000U, + 0xb3dc0000U, + 0x5b2e0000U, + 0x1f290000U, + 0x9d588000U, + 0xf28cc000U, + 0x7d62000U, + 0x71f51000U, + 0xd4f61800U, + 0xda65ec00U, + 0x632ea600U, + 0xe3291d00U, + 0x2358b280U, + 0x38ce7c0U, + 0x135641a0U, + 0x8b355c50U, + 0xa7d6ee78U, + 0xa1f5891cU, + 0x6cf6880eU, + 0xe665b4b9U, + 0xfd2eaa80U, + 0x2290bc0U, + 0xafd8e7a0U, + 0xd54c4150U, + 0x66765cf8U, + 0x3da56edcU, + 0x228ec9aeU, + 0xbf79e8e9U, + 0x4d20c4f8U, + 0x4a9042dcU, + 0x3b584faeU, + 0xef8ce5e9U, + 0x3556ee78U, + 0x5635891cU, + 0xb556880eU, + 0x9635b4b9U, + 0x9556aa80U, + 0x86350bc0U, + 0xd56e7a0U, + 0xaa354150U, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0x90000000U, + 0x98000000U, + 0x54000000U, + 0x3a000000U, + 0x9d000000U, + 0x7e800000U, + 0x7f400000U, + 0x17200000U, + 0xab500000U, + 0x6df80000U, + 0x96a40000U, + 0x83d20000U, + 0x71e10000U, + 0xc0d88000U, + 0xe0f44000U, + 0x30aaa000U, + 0x8059000U, + 0xcc2a1800U, + 0x6e451400U, + 0xa78a1a00U, + 0xe3554d00U, + 0x1d2c680U, + 0x68e1fb40U, + 0xbc589520U, + 0xc6b4b250U, + 0xfb0a1178U, + 0x1515b0e4U, + 0xf272c872U, + 0xb1f12cf1U, + 0x2000de80U, + 0xd000ef40U, + 0x38008f20U, + 0xc400ff50U, + 0xa20057f8U, + 0xc9000ba4U, + 0x4480fd52U, + 0xe2400ea1U, + 0x69a0d7f8U, + 0xd4104ba4U, + 0x7ad85d52U, + 0x3df49ea1U, + 0xee2a4ff8U, + 0xe7451fa4U, + 0x430ae752U, + 0x911543a1U, + 0xf0721178U, + 0xe8f1b0e4U, + 0xfc80c872U, + 0x66402cf1U, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0xb0000000U, + 0x8000000U, + 0x84000000U, + 0xb2000000U, + 0xb9000000U, + 0xbe800000U, + 0x4fc00000U, + 0x55600000U, + 0xf8f00000U, + 0xac280000U, + 0x66d40000U, + 0xb30a0000U, + 0x8bb50000U, + 0xc7c88000U, + 0x11e4c000U, + 0xaa42e000U, + 0xa591b000U, + 0xd0ea8800U, + 0x78854400U, + 0x6c80d200U, + 0x86c0c900U, + 0x3e05680U, + 0x83307bc0U, + 0x4348ef60U, + 0xa324c5f0U, + 0x13a2a0a8U, + 0x1ba19014U, + 0x9f22d8eaU, + 0x2d61fc85U, + 0x94c25e80U, + 0x2a51ffc0U, + 0x658add60U, + 0x3075bcf0U, + 0xc8a87e28U, + 0x6414afd4U, + 0x2eae58aU, + 0xb185f075U, + 0x3a00a8a8U, + 0xfd001414U, + 0xec80eaeaU, + 0x46c08585U, + 0xe3e08000U, + 0x3330c000U, + 0x4b48e000U, + 0x2724b000U, + 0xa1a20800U, + 0xa2a18400U, + 0x21a23200U, + 0x62a17900U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0x30000000U, + 0x78000000U, + 0x24000000U, + 0x9e000000U, + 0x47000000U, + 0x67800000U, + 0xf7400000U, + 0xdf200000U, + 0xb3100000U, + 0x71680000U, + 0x8c4c0000U, + 0x32520000U, + 0xe5d50000U, + 0xaa528000U, + 0x31d5c000U, + 0x2c52e000U, + 0x62d5f000U, + 0xadd29800U, + 0xf695d400U, + 0x8b720600U, + 0xf5c59300U, + 0x42ba6180U, + 0x3dd96440U, + 0xdea0bea0U, + 0xe750d750U, + 0x37c84fc8U, + 0xbf1c9b1cU, + 0x839a1d9aU, + 0x9c94ec9U, + 0xa8484fc8U, + 0xac5c9b1cU, + 0xa2ba1d9aU, + 0xcdd94ec9U, + 0xc6a04fc8U, + 0xf3509b1cU, + 0xd1c81d9aU, + 0xdc1c4ec9U, + 0x7a1acfc8U, + 0xb9895b1cU, + 0x10e8fd9aU, + 0xe80cbec9U, + 0xcf2d7c8U, + 0xf2854f1cU, + 0x859a1b9aU, + 0x9ac9ddc9U, + 0x49c8ae48U, + 0x81c3f5cU, + 0xfc1a433aU, + 0xea896999U, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0xb0000000U, + 0x78000000U, + 0x9c000000U, + 0xee000000U, + 0x1b000000U, + 0xcb800000U, + 0xc3400000U, + 0xc7a00000U, + 0x5100000U, + 0x88680000U, + 0xc4740000U, + 0x225a0000U, + 0x3da10000U, + 0x345a8000U, + 0x7aa1c000U, + 0xf1da6000U, + 0x12e17000U, + 0x85fa1800U, + 0x48b1ec00U, + 0x2432f600U, + 0x92d5f700U, + 0x45803d80U, + 0xa8403440U, + 0x94207a20U, + 0xea50f150U, + 0xd9c81248U, + 0x46648524U, + 0x8fb24812U, + 0x21952485U, + 0x1a201248U, + 0x81508524U, + 0x8a484812U, + 0xa9242485U, + 0xde129248U, + 0xa3854524U, + 0xb7c82812U, + 0x9d645485U, + 0xa4320a48U, + 0x52d56924U, + 0xa580be12U, + 0x1840d385U, + 0xec202fc8U, + 0x7650b164U, + 0x37c83232U, + 0x5d64d5d5U, + 0x44328000U, + 0xe2d5c000U, + 0xdd806000U, + 0x84407000U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x10000000U, + 0x58000000U, + 0x7c000000U, + 0xc2000000U, + 0xe1000000U, + 0xd800000U, + 0xd7c00000U, + 0x2aa00000U, + 0xf5300000U, + 0x9ba80000U, + 0xc0f40000U, + 0x20c60000U, + 0x702f0000U, + 0x48668000U, + 0x241f4000U, + 0xbe4ee000U, + 0x232b5000U, + 0xec28b800U, + 0xda342c00U, + 0xfde6fa00U, + 0xdfdf8d00U, + 0x6eee1780U, + 0x5b1b0ac0U, + 0xe0000520U, + 0x500093f0U, + 0x38008488U, + 0x6c008e04U, + 0x9a000bceU, + 0x9d00d8ebU, + 0xcf803c88U, + 0x36c0a204U, + 0x2720f1ceU, + 0x22f055ebU, + 0xb108ab08U, + 0x35c4e8c4U, + 0xbb6e14eeU, + 0xb0db961bU, + 0x68a09780U, + 0x54304ac0U, + 0xf628e520U, + 0x734c3f0U, + 0x5266bc88U, + 0xf91fe204U, + 0x11ce11ceU, + 0x5eb05ebU, + 0x93081308U, + 0x84c4c4c4U, + 0x8eeeeeeeU, + 0xb1b1b1bU, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0x30000000U, + 0xb8000000U, + 0xac000000U, + 0x72000000U, + 0xb1000000U, + 0x3800000U, + 0xd2c00000U, + 0xc1600000U, + 0x9b900000U, + 0x4e480000U, + 0xb740000U, + 0x864e0000U, + 0x3f0b0000U, + 0x68068000U, + 0x447f4000U, + 0x7648a000U, + 0xe7747000U, + 0xd44e9800U, + 0xbe0b9c00U, + 0xd3864a00U, + 0x3abf5d00U, + 0xc528d180U, + 0xcde413c0U, + 0x99865ae0U, + 0x67bfd550U, + 0x94a8c528U, + 0x9e24cde4U, + 0xe3669986U, + 0x82ef67bfU, + 0x698014a8U, + 0xbfc0de24U, + 0x28e0c366U, + 0x6450b2efU, + 0x46a8d180U, + 0x5f2413c0U, + 0x78e65ae0U, + 0xcc2fd550U, + 0x62e0c528U, + 0x3950cde4U, + 0x17289986U, + 0xce467bfU, + 0x20694a8U, + 0x297f9e24U, + 0x9fc86366U, + 0x18b4c2efU, + 0xdcae4980U, + 0xea5b8fc0U, + 0x2d2e10e0U, + 0xc99b8850U, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0x70000000U, + 0x88000000U, + 0x44000000U, + 0x4a000000U, + 0x47000000U, + 0xdd800000U, + 0x42400000U, + 0xc3200000U, + 0x77100000U, + 0x75b80000U, + 0x966c0000U, + 0x715e0000U, + 0xfc950000U, + 0xa6e68000U, + 0xd9f9c000U, + 0x28386000U, + 0x142cb000U, + 0x527e6800U, + 0xfb853400U, + 0x5b5e4200U, + 0xb95c300U, + 0x1366f780U, + 0xafb9b540U, + 0x2918f6a0U, + 0x603cc150U, + 0xb0469498U, + 0x68a9927cU, + 0x34a09b66U, + 0xc250ebb9U, + 0x3186318U, + 0x973c273cU, + 0x5c66dc6U, + 0x1ee92ae9U, + 0x35807780U, + 0xb6407540U, + 0xe12096a0U, + 0x4107150U, + 0x6a38fc98U, + 0xd72ca67cU, + 0x25fed966U, + 0x8ec528b9U, + 0xcdfe9498U, + 0x7ac5927cU, + 0xeffe9b66U, + 0x9c5ebb9U, + 0xf07ee318U, + 0x4885e73cU, + 0xa4de0dc6U, + 0x3ad59ae9U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0x50000000U, + 0xd8000000U, + 0xfc000000U, + 0xf6000000U, + 0xd5000000U, + 0xbf800000U, + 0x2c400000U, + 0xeee00000U, + 0x9700000U, + 0x19080000U, + 0x21640000U, + 0xad6a0000U, + 0xd3130000U, + 0x22828000U, + 0x9707c000U, + 0x98e0a000U, + 0x1c709000U, + 0x8688f800U, + 0x5d24ac00U, + 0x9b8a2e00U, + 0x26632900U, + 0xcd8ac980U, + 0x63633940U, + 0x8a0af160U, + 0xe323b530U, + 0x4aea8fe8U, + 0xc3534414U, + 0x1a623a62U, + 0x1b774b77U, + 0xe668be68U, + 0xed54d154U, + 0x3302e502U, + 0x5247d747U, + 0x1f80f800U, + 0xbc40ac00U, + 0x16e02e00U, + 0xa5702900U, + 0x37084980U, + 0x864f940U, + 0xe4ea5160U, + 0x2a532530U, + 0x73e277e8U, + 0xb237e814U, + 0x6f081462U, + 0x34646277U, + 0x32ea77e8U, + 0xaf53e814U, + 0x14621462U, + 0x62776277U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x50000000U, + 0x58000000U, + 0xac000000U, + 0x6a000000U, + 0x85000000U, + 0xfb800000U, + 0xa8c00000U, + 0x84200000U, + 0xae300000U, + 0x4b080000U, + 0xe0740000U, + 0x10860000U, + 0x388f0000U, + 0xfc2e8000U, + 0x320b4000U, + 0x2980e000U, + 0x91c01000U, + 0x2da03800U, + 0x7ff0fc00U, + 0x6a83200U, + 0xcf842900U, + 0x4e2e9180U, + 0x5b0b2dc0U, + 0xd800ffa0U, + 0xec0046f0U, + 0xa00af28U, + 0xd5001e44U, + 0xa380038eU, + 0x4c074fbU, + 0xee2086a8U, + 0x2b308f84U, + 0xb0882e2eU, + 0x48b40b0bU, + 0x94a68000U, + 0x96bf4000U, + 0xb726e000U, + 0xd27f1000U, + 0x3906b800U, + 0xa94fbc00U, + 0xd18ed200U, + 0x4dfb3900U, + 0x2f282980U, + 0x5e4491c0U, + 0x638e2da0U, + 0x24fb7ff0U, + 0xdea886a8U, + 0x23848f84U, + 0x442e2e2eU, + 0x8e0b0b0bU, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0x50000000U, + 0xe8000000U, + 0x44000000U, + 0x5e000000U, + 0xad000000U, + 0xef800000U, + 0x68400000U, + 0x84600000U, + 0xfe500000U, + 0xfd280000U, + 0x7f40000U, + 0x2c620000U, + 0xda4f0000U, + 0x53068000U, + 0x12dfc000U, + 0x6f802000U, + 0xa8403000U, + 0x24602800U, + 0xae501400U, + 0x15283a00U, + 0x43f41100U, + 0x72621780U, + 0x774f2b40U, + 0xbc86bbe0U, + 0x7a9fda10U, + 0xebe00118U, + 0x56100f94U, + 0xd948174aU, + 0xa9a415fdU, + 0x394a3118U, + 0x99bb2793U, + 0x21648341U, + 0x6590eff7U, + 0xd3068000U, + 0xd2dfc000U, + 0xcf802000U, + 0xf8403000U, + 0xcc602800U, + 0xea501400U, + 0x4b283a00U, + 0xeef41100U, + 0x9de21780U, + 0x1f0f2b40U, + 0x38e6bbe0U, + 0x84cfda10U, + 0x16c80118U, + 0x51e40f94U, + 0xf52a174aU, + 0x73eb15fdU, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0xb0000000U, + 0x18000000U, + 0x4000000U, + 0xda000000U, + 0x9000000U, + 0x22800000U, + 0xe8400000U, + 0xbc600000U, + 0xe300000U, + 0x7b580000U, + 0x378c0000U, + 0x14c20000U, + 0x874d0000U, + 0x99d48000U, + 0xbfb94000U, + 0x18802000U, + 0x91403000U, + 0xe6e01800U, + 0x52702c00U, + 0x5380600U, + 0x34bc0100U, + 0x971a3680U, + 0x51810240U, + 0x13f688a0U, + 0xde847a10U, + 0x466c8f18U, + 0x1745738cU, + 0x91fa26d6U, + 0x73f111e3U, + 0x6ece9b30U, + 0x5e384cd3U, + 0x1376b6f5U, + 0x4bc45caeU, + 0x7a8c8000U, + 0x4c354000U, + 0xb6422000U, + 0xaf0d3000U, + 0x45b49800U, + 0x1896c00U, + 0x7bd82600U, + 0xa2cc3100U, + 0x28222e80U, + 0xdc3d2e40U, + 0xbe6c8ea0U, + 0x63457b10U, + 0x33fa3998U, + 0xcef131ccU, + 0x8e4e8e76U, + 0xbb785bf3U, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0x50000000U, + 0x88000000U, + 0x9c000000U, + 0x2e000000U, + 0x5000000U, + 0xab800000U, + 0x1c400000U, + 0x6e200000U, + 0x25100000U, + 0xfba80000U, + 0x94040000U, + 0xf26e0000U, + 0xb070000U, + 0xfeaa8000U, + 0x3fd1c000U, + 0xee202000U, + 0x65101000U, + 0xdba80800U, + 0xc4041400U, + 0x7a6e2200U, + 0x97072700U, + 0xd0aa8b80U, + 0x3ad1c140U, + 0x45a00ae0U, + 0x79501710U, + 0xb5881388U, + 0xe1141d44U, + 0x81c61ceaU, + 0x3030201U, + 0x22c4b71bU, + 0x31d6c381U, + 0xbb0ab54aU, + 0x4681d8e4U, + 0x5ba80800U, + 0x84041400U, + 0x5a6e2200U, + 0xc7072700U, + 0x58aa8b80U, + 0xa6d1c140U, + 0x6ba00ae0U, + 0x7c501710U, + 0x1e081388U, + 0xfd541d44U, + 0xefe61ceaU, + 0x26130201U, + 0xd96cb71bU, + 0xa5d2c381U, + 0x4964b54aU, + 0x4d86d8e4U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0x50000000U, + 0xc8000000U, + 0x3c000000U, + 0x3e000000U, + 0x67000000U, + 0xf9800000U, + 0xcc400000U, + 0x66600000U, + 0xb3100000U, + 0xaba80000U, + 0x5d240000U, + 0xc4fe0000U, + 0xb8cf0000U, + 0x66bb8000U, + 0x71a8c000U, + 0x10602000U, + 0x28103000U, + 0x4c280800U, + 0xa6641400U, + 0x931e3200U, + 0xfb9f0f00U, + 0x95738f80U, + 0xf89cd9c0U, + 0x86b61e60U, + 0x1bb0310U, + 0x880d9198U, + 0xdc13f8c4U, + 0x4e6db8eaU, + 0xff03e849U, + 0xdc596bfU, + 0xce27d3f3U, + 0x3f3bbdceU, + 0x2de8c47aU, + 0x9e000800U, + 0xf7001400U, + 0x11803200U, + 0xa0400f00U, + 0x90600f80U, + 0xe81019c0U, + 0x6c283e60U, + 0xf6643310U, + 0x5b1e1998U, + 0xc79f2cc4U, + 0xab73aaeaU, + 0x9f9cd749U, + 0x7f36113fU, + 0xcdfb1e33U, + 0xee6d91aeU, + 0x6f03c86aU, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0xb0000000U, + 0x58000000U, + 0x44000000U, + 0x7e000000U, + 0x69000000U, + 0x5b800000U, + 0xdc400000U, + 0x5a200000U, + 0x87100000U, + 0xdad80000U, + 0x9bec0000U, + 0xbc420000U, + 0xca0f0000U, + 0x6f7c8000U, + 0xc6d9c000U, + 0xa1a02000U, + 0xab501000U, + 0xf8f80800U, + 0xe8fc2c00U, + 0x409a1600U, + 0x7ce31100U, + 0xf6be9f80U, + 0xb996da40U, + 0xcf7cb6e0U, + 0x36d9e710U, + 0xd9a03e88U, + 0x5f501dc4U, + 0xdef828b6U, + 0xc5fc1bfbU, + 0x651a2690U, + 0xc9a339c3U, + 0xf71e92bfU, + 0xe2c6dce6U, + 0x4f848800U, + 0x2a25ec00U, + 0xbf3a3600U, + 0xeb30100U, + 0xdc69780U, + 0xc92af640U, + 0xabc6a0e0U, + 0xa42af610U, + 0xae46a108U, + 0xa16ac784U, + 0xf7e69e56U, + 0xbe3afcebU, + 0x91e9818U, + 0xcbc6e407U, + 0x34049a09U, + 0x4665d71dU, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0xb0000000U, + 0x48000000U, + 0x74000000U, + 0xc2000000U, + 0xe7000000U, + 0xb5800000U, + 0xba400000U, + 0x9b200000U, + 0xa3d00000U, + 0x2f180000U, + 0x81840000U, + 0xd82a0000U, + 0xcc190000U, + 0x5e078000U, + 0xe138c000U, + 0xd8982000U, + 0x9cc41000U, + 0x568a2800U, + 0x65892c00U, + 0xa23f9200U, + 0xb76cdd00U, + 0xedaa1080U, + 0x365929c0U, + 0x65278560U, + 0xf2e8c290U, + 0xbf8014c8U, + 0x694025f4U, + 0x4ca01346U, + 0x4e9035a1U, + 0x49b8096aU, + 0xec140096U, + 0xae1201c9U, + 0x94d297aU, + 0x1cb59080U, + 0x16e5e9c0U, + 0xc595a560U, + 0x1235d290U, + 0xff0dbcc8U, + 0x99f1c9f4U, + 0xf407a146U, + 0x8238f8a1U, + 0x471831eaU, + 0x5840556U, + 0xf22a16a9U, + 0xef1936eaU, + 0x618794c8U, + 0xc878e5f4U, + 0x34383346U, + 0x625425a1U, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0xf0000000U, + 0x98000000U, + 0xb4000000U, + 0x52000000U, + 0x7000000U, + 0xbf800000U, + 0x5a400000U, + 0x3b200000U, + 0x91d00000U, + 0xd3380000U, + 0xfdec0000U, + 0x954a0000U, + 0x58f10000U, + 0xb5df8000U, + 0x91dc000U, + 0x86b82000U, + 0xa4ac1000U, + 0x7bea2800U, + 0xd0613c00U, + 0x2847a600U, + 0x8c61ed00U, + 0x166a3480U, + 0xcd2111c0U, + 0xce787e0U, + 0xb7f1ea90U, + 0x667208c8U, + 0x151d1974U, + 0x1895884eU, + 0x15ecc2bbU, + 0xf9678cb2U, + 0x1eb1fdacU, + 0x10d23f3fU, + 0x298d0bf3U, + 0xd70db480U, + 0x9790d1c0U, + 0xd635a7e0U, + 0x2d7cfa90U, + 0x5cffa0c8U, + 0xdfcde574U, + 0x4a000e4eU, + 0xf3003fbbU, + 0x4d801032U, + 0xad40106cU, + 0x1ca03edfU, + 0x7f901c63U, + 0xba1820c8U, + 0x6b3c2574U, + 0xf9f22e4eU, + 0xff5d2fbbU, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0x70000000U, + 0xf8000000U, + 0x4c000000U, + 0xa6000000U, + 0x89000000U, + 0x6e800000U, + 0x1a400000U, + 0x17600000U, + 0x4bf00000U, + 0xa2f80000U, + 0x7c5c0000U, + 0x7e360000U, + 0x551b0000U, + 0x40808000U, + 0x272d4000U, + 0x93982000U, + 0x7eac3000U, + 0x524e3800U, + 0x43071c00U, + 0xd1d6be00U, + 0x75c65300U, + 0xd7e08980U, + 0xacdd5240U, + 0xd16003a0U, + 0x72f02a90U, + 0xd47803d8U, + 0x5a1c1dfcU, + 0x37563f3eU, + 0xdbeb2e57U, + 0x2af8adadU, + 0xc8317196U, + 0x944e2e58U, + 0x7a072da7U, + 0xa756b180U, + 0x53864e40U, + 0x9e80bda0U, + 0x222d7990U, + 0xbb180a58U, + 0x9dec0fbcU, + 0xd3ae1c9eU, + 0x5eb734c7U, + 0xc24e9675U, + 0xcb6a706aU, + 0x65aeaf66U, + 0x9fda50f0U, + 0xf8b695adU, + 0x4b366d96U, + 0xa5989058U, + 0x7fc17ea7U, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0x30000000U, + 0xb8000000U, + 0x3c000000U, + 0xde000000U, + 0xdf000000U, + 0x29800000U, + 0x32400000U, + 0xe9200000U, + 0x62900000U, + 0x71d80000U, + 0x5e3c0000U, + 0x9f2e0000U, + 0x9e70000U, + 0x26b8000U, + 0x5176c000U, + 0x5ef82000U, + 0xafac1000U, + 0x81760800U, + 0xb69b0c00U, + 0x3be5ae00U, + 0xeb41cf00U, + 0x33eb9780U, + 0x2f36e7c0U, + 0xf1d82260U, + 0x1e3c1090U, + 0xbf2e1c48U, + 0x39e71ba4U, + 0xba6b85f6U, + 0x6d76ef4fU, + 0x80f83a2bU, + 0x70ac2929U, + 0xa8f638b2U, + 0x84db0c69U, + 0xd2c59f80U, + 0x89d1ebc0U, + 0x42338c60U, + 0x710adf90U, + 0x6ef60bc8U, + 0x17db3c64U, + 0xbd458796U, + 0x6891efdfU, + 0xe493ae63U, + 0xc2dafe8dU, + 0x18e3344U, + 0xc6373c26U, + 0x9313ba2bU, + 0x6f9ae929U, + 0xe12e18b2U, + 0xa6e71c69U, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0xd0000000U, + 0xf8000000U, + 0x3c000000U, + 0x6e000000U, + 0x19000000U, + 0x50800000U, + 0xca400000U, + 0x7b200000U, + 0xafd00000U, + 0x97a80000U, + 0x4b9c0000U, + 0x55ae0000U, + 0x64ef0000U, + 0xf0288000U, + 0x68524000U, + 0x64082000U, + 0x820c1000U, + 0x8f262800U, + 0x75a33400U, + 0xf4aebe00U, + 0xa8614f00U, + 0x842ebb80U, + 0xf2215640U, + 0xa70e9c20U, + 0xb1f15690U, + 0xa6a6a8c8U, + 0xdf6d40f4U, + 0xcd88886aU, + 0x68c27fa7U, + 0x16002ccbU, + 0x650006ebU, + 0x9e803b62U, + 0x3403e30U, + 0xd3a01380U, + 0x59902240U, + 0x82880220U, + 0xfd4c0990U, + 0x92863b48U, + 0xe53322b4U, + 0xdea6aa4aU, + 0xa36d6637U, + 0x388bf83U, + 0xa1c2505fU, + 0xbe800f28U, + 0x93400707U, + 0x8ba03f83U, + 0xb590105fU, + 0x14882f28U, + 0xd84c1707U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0xd0000000U, + 0xc8000000U, + 0xbc000000U, + 0x4e000000U, + 0x57000000U, + 0x80800000U, + 0xa400000U, + 0xfd200000U, + 0x8db00000U, + 0xffa80000U, + 0xa6840000U, + 0x110e0000U, + 0x4bdf0000U, + 0x74d78000U, + 0xb8724000U, + 0x84082000U, + 0x8a741000U, + 0xbd061800U, + 0xedab3400U, + 0x2fd1b200U, + 0x6ed96f00U, + 0xad59b380U, + 0x5ed45c0U, + 0x23ff9820U, + 0x38b66690U, + 0x8e263548U, + 0x771b286cU, + 0x30f9866aU, + 0x121d6761U, + 0x8977a5e3U, + 0x7f827aa7U, + 0xe68029ddU, + 0x71403e20U, + 0x9ba02b80U, + 0xbcf031c0U, + 0x4080a20U, + 0xca741990U, + 0xdd061ec8U, + 0x3dab19acU, + 0xe7d18c4aU, + 0xd2d97ef1U, + 0xe359bb2bU, + 0x52ed630bU, + 0xa37fa597U, + 0x32f640d1U, + 0x730610abU, + 0xfaab12cbU, + 0xcf518fb7U, + 0xb4994941U, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0xb0000000U, + 0xa8000000U, + 0xd4000000U, + 0xfa000000U, + 0xf9000000U, + 0x92800000U, + 0x19400000U, + 0x42a00000U, + 0x21500000U, + 0x8ef80000U, + 0xa7040000U, + 0x59920000U, + 0x36f90000U, + 0x2b2e8000U, + 0xffd04000U, + 0x51922000U, + 0x12f91000U, + 0x592e8800U, + 0x62d06c00U, + 0x91120a00U, + 0x26b92500U, + 0x730eb680U, + 0xa3c05240U, + 0xcfca2ea0U, + 0xb9ad2350U, + 0xe6c4a628U, + 0x136d5a14U, + 0x338e8d1eU, + 0xd7804a91U, + 0xc5ea104cU, + 0xc8bd07aaU, + 0x101cafd5U, + 0x58794965U, + 0x5c44a628U, + 0x9e2d5a14U, + 0xab2e8d1eU, + 0xbfd04a91U, + 0x7192104cU, + 0xa2f907aaU, + 0xf12eafd5U, + 0xb6d04965U, + 0x6b122628U, + 0xdfb91a14U, + 0xe18ead1eU, + 0xba805a91U, + 0x8d6a184cU, + 0x98fd2baaU, + 0x683c85d5U, + 0xb4697c65U, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0xb0000000U, + 0x58000000U, + 0x1c000000U, + 0x72000000U, + 0x4f000000U, + 0xa1800000U, + 0x77400000U, + 0x4da00000U, + 0xbd300000U, + 0xaef80000U, + 0x369c0000U, + 0x8ab60000U, + 0xa8850000U, + 0xfe18000U, + 0xea0dc000U, + 0xf3362000U, + 0x83c51000U, + 0xd041b800U, + 0xa83dec00U, + 0xa44e3600U, + 0xde191700U, + 0x6557a480U, + 0xf288ffc0U, + 0xa4d79e60U, + 0x75c8cad0U, + 0x517797e8U, + 0x64f8c08cU, + 0xd58f8ddeU, + 0x164eb77U, + 0x8cb9a345U, + 0x91a1edadU, + 0x6f7812a6U, + 0xb1dc0234U, + 0x7f1617e8U, + 0xb9b5008cU, + 0x8b19addeU, + 0x8f91fb77U, + 0xaa001b45U, + 0x130001adU, + 0x338024a6U, + 0x88401534U, + 0xb4203368U, + 0xd6703f4cU, + 0x915813beU, + 0xc4ac21a7U, + 0x85ce34adU, + 0xe9592d21U, + 0xc8f79f78U, + 0xffb8e943U, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0x50000000U, + 0x88000000U, + 0x34000000U, + 0xa2000000U, + 0x3000000U, + 0x41800000U, + 0xf7400000U, + 0x3a00000U, + 0x4100000U, + 0x9a080000U, + 0x4f140000U, + 0xfb20000U, + 0xea550000U, + 0xd73b8000U, + 0x13a1c000U, + 0x2c122000U, + 0xfe451000U, + 0x6533a800U, + 0x38b5d400U, + 0x9a00200U, + 0x23101d00U, + 0x51880080U, + 0xdf5414c0U, + 0x67923260U, + 0x2e0530d0U, + 0xad13a868U, + 0xace5c1c4U, + 0xfb8816e2U, + 0xa8543e15U, + 0x24122b04U, + 0x8a452f91U, + 0x6733b14cU, + 0x6bb5da2dU, + 0xc0200068U, + 0xe05015c4U, + 0xf02814e2U, + 0xd8442315U, + 0xbc1a2b84U, + 0x96513b51U, + 0xa101832cU, + 0x42a0eafdU, + 0xb6bba800U, + 0xf4e1d400U, + 0x7b20200U, + 0x9e551d00U, + 0xd53b8080U, + 0x40a1d4c0U, + 0xe5921260U, + 0x3d0520d0U, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0xd0000000U, + 0xb8000000U, + 0x1c000000U, + 0x82000000U, + 0xfb000000U, + 0xed800000U, + 0x87400000U, + 0xffa00000U, + 0x24300000U, + 0xde480000U, + 0x992c0000U, + 0xc6e60000U, + 0xd2dd0000U, + 0x64938000U, + 0x59a7c000U, + 0x1462000U, + 0xaaed1000U, + 0xd8dbb800U, + 0xeb8bf400U, + 0x92200e00U, + 0xe3701700U, + 0xc1e81880U, + 0x6d1c0ac0U, + 0xa0ae1560U, + 0x57f126d0U, + 0x20759f68U, + 0x707af7ccU, + 0x8855acf2U, + 0x740ad79bU, + 0x263d9651U, + 0x6556d9bbU, + 0x94b398b6U, + 0x91d7d322U, + 0x952e2768U, + 0x5cb103ccU, + 0x5d5a2f2U, + 0x634ac09bU, + 0x819d8ed1U, + 0x8d66d37bU, + 0x70fb8dd6U, + 0xeffbf5f2U, + 0x3c483800U, + 0xf22c3400U, + 0x73662e00U, + 0x999d0700U, + 0xa133a080U, + 0x9a97fec0U, + 0xb08e1b60U, + 0x4f8131d0U, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0x10000000U, + 0x48000000U, + 0xac000000U, + 0x6000000U, + 0x95000000U, + 0x5800000U, + 0xc9400000U, + 0x3be00000U, + 0x8100000U, + 0xcc680000U, + 0xb6740000U, + 0xcd5e0000U, + 0xe1a70000U, + 0x635c8000U, + 0xa8e1c000U, + 0x98be2000U, + 0xb73000U, + 0x44b4a800U, + 0xfed5c400U, + 0x25803200U, + 0x19401b00U, + 0xd3e02980U, + 0xb4102140U, + 0x82681360U, + 0x8f741950U, + 0xcede0f78U, + 0xbde72744U, + 0x5d3cb27aU, + 0x69b1dfcdU, + 0x6f361dafU, + 0xbed30a6dU, + 0x458283cdU, + 0xa906c3a5U, + 0x8b82a778U, + 0x5006e344U, + 0x2802807aU, + 0x1c46c4cdU, + 0x5e62b42fU, + 0x7116eb2dU, + 0xafeab0adU, + 0x5a72eaf5U, + 0xab5c8000U, + 0xc4e1c000U, + 0x3ebe2000U, + 0x85b73000U, + 0x934a800U, + 0x9b95c400U, + 0x18603200U, + 0x84501b00U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0xd0000000U, + 0xf8000000U, + 0x34000000U, + 0x1a000000U, + 0xff000000U, + 0xf3800000U, + 0x93400000U, + 0x2da00000U, + 0x3e700000U, + 0x3d480000U, + 0x88cc0000U, + 0x52b20000U, + 0x8d910000U, + 0xce358000U, + 0x750cc000U, + 0x94922000U, + 0x84a11000U, + 0x5cdd9800U, + 0xd8b0f400U, + 0xeae81e00U, + 0xd9bc1d00U, + 0x47a1e80U, + 0x721d0bc0U, + 0x532782e0U, + 0xdede9d0U, + 0x8e6fade8U, + 0x1521e05cU, + 0x44dd8bb2U, + 0x7cb0e2e3U, + 0x68e819c4U, + 0xc2bc05f8U, + 0x15fa1c5fU, + 0x2a5d39b0U, + 0x9707b5e8U, + 0x5fddd45cU, + 0x6d07b5b2U, + 0x30ddefe3U, + 0x6879f44U, + 0x479dfa38U, + 0xc92780bfU, + 0xb2edcd60U, + 0x1def8680U, + 0x5661ffc0U, + 0x917d9ce0U, + 0x76c0f4d0U, + 0x4fa03368U, + 0xb5702b9cU, + 0xb4c82952U, + 0x348c1b33U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0x10000000U, + 0x28000000U, + 0xfc000000U, + 0xb2000000U, + 0x5b000000U, + 0x3f800000U, + 0x7f400000U, + 0x89e00000U, + 0x22700000U, + 0xb3680000U, + 0xa3a40000U, + 0xdd360000U, + 0xfaad0000U, + 0xe1a38000U, + 0x7e6ec000U, + 0x71562000U, + 0xc09d3000U, + 0x36ab9800U, + 0xcbfac400U, + 0x81682a00U, + 0x38a40f00U, + 0x82b63480U, + 0x95ed12c0U, + 0x404385e0U, + 0xa01ee0d0U, + 0x703e2ef8U, + 0x38392e5cU, + 0xd41dbb3aU, + 0x4e17f339U, + 0xe92bbf35U, + 0x64baf937U, + 0x40880032U, + 0xf6d415b2U, + 0xabde36f8U, + 0x91492a5cU, + 0x10f5b13aU, + 0x7ef3cc39U, + 0x27fd93b5U, + 0x1b67eff7U, + 0x9fc38fd2U, + 0xf5eca62U, + 0xb1de3480U, + 0xf64912c0U, + 0xfd7585e0U, + 0x4ab3e0d0U, + 0xb99daef8U, + 0xba57ee5cU, + 0x174b9b3aU, + 0xd58ac339U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x30000000U, + 0x8000000U, + 0x4c000000U, + 0xf6000000U, + 0x7f000000U, + 0x76800000U, + 0x19400000U, + 0x11a00000U, + 0x7bf00000U, + 0x8af80000U, + 0xa7540000U, + 0x42ae0000U, + 0xcb170000U, + 0xe4a58000U, + 0x8c124000U, + 0xd6562000U, + 0x2f431000U, + 0x4e8b9800U, + 0x5d454c00U, + 0xabd3a200U, + 0xf2e14300U, + 0x83058580U, + 0xc8e243c0U, + 0x4a2e27a0U, + 0xa1570950U, + 0x1585a3e8U, + 0xa1a25e3cU, + 0x338e209eU, + 0xa6a73345U, + 0x617dace3U, + 0x35f679a9U, + 0xf1a0205fU, + 0xbf0117dU, + 0xe2f82668U, + 0xdb541dfcU, + 0xbcae073eU, + 0xf8173a15U, + 0x64258f0bU, + 0xea526795U, + 0xb17620c1U, + 0x4df33238U, + 0xd5d3928bU, + 0x81e16855U, + 0x6385a561U, + 0x9ea27868U, + 0x250e34e3U, + 0x8fe735a9U, + 0x78dd825fU, + 0x206527dU, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0x70000000U, + 0xb8000000U, + 0x7c000000U, + 0x4a000000U, + 0xf3000000U, + 0x90800000U, + 0x81400000U, + 0x5fa00000U, + 0xfb900000U, + 0x5dd80000U, + 0x8cec0000U, + 0x5b360000U, + 0xc4b10000U, + 0xdf338000U, + 0x52974000U, + 0x166e2000U, + 0x891d1000U, + 0x7ba5a800U, + 0x1db65c00U, + 0x2c858e00U, + 0x2b664f00U, + 0x7cfd9a80U, + 0xa31a70c0U, + 0x18938220U, + 0xe5077350U, + 0x19b62368U, + 0xfaf11124U, + 0x4213a7d6U, + 0xd7477cabU, + 0x76963985U, + 0xf0211c58U, + 0xf86ba9f2U, + 0xdc3b49eaU, + 0x3a7839e8U, + 0x4b7c21e4U, + 0xecee05f6U, + 0xcb5d1ffbU, + 0xac85b2edU, + 0x6b66517cU, + 0xdcfd8024U, + 0xd31a7a41U, + 0xa0939aedU, + 0x99074d7cU, + 0x53b62e24U, + 0x9f12541U, + 0xd293a86dU, + 0x560761bcU, + 0x29362204U, + 0xbb11911U, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0xb0000000U, + 0x88000000U, + 0xd4000000U, + 0xea000000U, + 0xb7000000U, + 0xf5800000U, + 0xa5400000U, + 0xfea00000U, + 0x7e900000U, + 0x3eb80000U, + 0x9ef40000U, + 0x2e820000U, + 0xa6d90000U, + 0x729d8000U, + 0x98c9c000U, + 0x2fba2000U, + 0xda6d1000U, + 0x7f3fa800U, + 0x81c0ec00U, + 0xff3f8200U, + 0xc1c0e500U, + 0x5f3fb280U, + 0x71c0d1c0U, + 0xd73f9760U, + 0xa5c0e050U, + 0x3d3faf28U, + 0x12c0fb64U, + 0xc8bfa24eU, + 0xb780ea2dU, + 0x361f99e8U, + 0xc910fb82U, + 0x8a78141U, + 0x57e4d3bbU, + 0x26259da8U, + 0xf13deaa4U, + 0x54b8152eU, + 0x69f41a7dU, + 0x7b021ec0U, + 0xb3992ce6U, + 0x43d810fU, + 0x3259cc96U, + 0xfb021ec0U, + 0xf3992ce6U, + 0xa43d810fU, + 0x8259cc96U, + 0x73021ec0U, + 0x27992ce6U, + 0x4e3d810fU, + 0x3559cc96U, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0x50000000U, + 0x8000000U, + 0x34000000U, + 0x1a000000U, + 0xd1000000U, + 0xac800000U, + 0x57400000U, + 0x43a00000U, + 0x18d00000U, + 0xd480000U, + 0xb2b40000U, + 0xe4620000U, + 0x52010000U, + 0xc5668000U, + 0xe6e94000U, + 0x8e0a2000U, + 0xdb251000U, + 0x55ec8800U, + 0x9f8c5400U, + 0x6c6a200U, + 0xbe395d00U, + 0xa3422e80U, + 0x39913040U, + 0xb98ea120U, + 0xf98d4cd0U, + 0xd9a03468U, + 0x89d02f74U, + 0x81c826f2U, + 0xb5f4193dU, + 0xafc200d0U, + 0x7ed10a64U, + 0xd22ea463U, + 0x855d6763U, + 0xc6e812e8U, + 0xde640b34U, + 0xd32a05d2U, + 0x61b518edU, + 0x85849238U, + 0xd7a84150U, + 0x12cc81b1U, + 0xf41c6f8eU, + 0x7a2e88d0U, + 0xa15d5e64U, + 0xf4e80663U, + 0x6b643a63U, + 0x6daa3c68U, + 0xd3f53b74U, + 0x70a4a4f2U, + 0x4938543dU, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0xf0000000U, + 0x8000000U, + 0xe4000000U, + 0xe6000000U, + 0x7000000U, + 0x10800000U, + 0x7d400000U, + 0x5da00000U, + 0x8f00000U, + 0x21180000U, + 0x37940000U, + 0xfdfa0000U, + 0xd8ef0000U, + 0xb9258000U, + 0x2be14000U, + 0xf7c22000U, + 0xddcb1000U, + 0x48e79800U, + 0x412a7c00U, + 0xc7a5a200U, + 0xf5a16900U, + 0x3ce20180U, + 0x5f7b2dc0U, + 0x2cdf9e20U, + 0xe70e5a50U, + 0xa0e78ce8U, + 0x152a6afcU, + 0x49a58de6U, + 0xe6a17f75U, + 0xc2621636U, + 0xc13b3e57U, + 0x87ff92e7U, + 0x95be41e1U, + 0xccdf9568U, + 0x570e7b3cU, + 0xc8e791c6U, + 0x12a5c25U, + 0xa7a5835eU, + 0x5a1456bU, + 0x34e20321U, + 0xbb7b1dc4U, + 0xcadf9636U, + 0xe00e7e57U, + 0xb067b2e7U, + 0x686a51e1U, + 0x14058d68U, + 0xee51473cU, + 0xe37a13c6U, + 0xf6af2525U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0xb0000000U, + 0x38000000U, + 0xac000000U, + 0xa2000000U, + 0xcf000000U, + 0x57800000U, + 0x2fc00000U, + 0x63a00000U, + 0x51b00000U, + 0x16e80000U, + 0xd5740000U, + 0xf4e20000U, + 0xfa130000U, + 0x33448000U, + 0x5dc74000U, + 0xc4c4a000U, + 0x2077000U, + 0xbf64a800U, + 0x4fb75c00U, + 0x338ca600U, + 0xf9c37700U, + 0x32ee8e80U, + 0xe31044c0U, + 0x358a1b60U, + 0xc0a70f30U, + 0x8406a388U, + 0x46646b5cU, + 0xd9680e32U, + 0x26b40201U, + 0x2d42150aU, + 0x78a30b85U, + 0xe82cb75bU, + 0xc4736834U, + 0xa606950aU, + 0x49644b85U, + 0xaee8175bU, + 0xb9741834U, + 0x76e23d0aU, + 0x85131785U, + 0x5cc4b15bU, + 0xde076f34U, + 0x564b38aU, + 0x9cb75345U, + 0xfe0caa3bU, + 0xb5036004U, + 0xa4ce9002U, + 0x52607819U, + 0x17420409U, + 0x6ba31205U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0x10000000U, + 0x78000000U, + 0x6c000000U, + 0x7e000000U, + 0xff000000U, + 0x18800000U, + 0xc0c00000U, + 0x7ca00000U, + 0x5ab00000U, + 0xd9b80000U, + 0xc7040000U, + 0x94f20000U, + 0x8eed0000U, + 0xebe28000U, + 0x5676c000U, + 0xb62a000U, + 0x3ab6f000U, + 0x29c2a800U, + 0x8f06f400U, + 0x90fab600U, + 0xe4c2ef00U, + 0x6a8a980U, + 0xcf9fd0c0U, + 0x2c722fa0U, + 0x9e2d20f0U, + 0xcf429088U, + 0x70c6c65cU, + 0xd4da8ee6U, + 0x6eb2c39dU, + 0xdbb0bddaU, + 0x3e2bff26U, + 0x1f3806a2U, + 0x28c40e7bU, + 0xa8d23ddaU, + 0x689d3f26U, + 0x48faa6a2U, + 0x58c2fe7bU, + 0x20a895daU, + 0x4c9fcb26U, + 0x32f210a2U, + 0xcded117bU, + 0xd562bc5aU, + 0x15b6dbe6U, + 0x69429f02U, + 0x33c6c18bU, + 0xea5a84d2U, + 0x2d72e9baU, + 0xb990a7e4U, + 0x375bed16U, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0x30000000U, + 0xd8000000U, + 0xf4000000U, + 0xd2000000U, + 0xab000000U, + 0x98800000U, + 0x90c00000U, + 0xeca00000U, + 0x82f00000U, + 0xe7e80000U, + 0x2a040000U, + 0xaf3e0000U, + 0x32b70000U, + 0xfff28000U, + 0x7e46c000U, + 0x4d72a000U, + 0x4186f000U, + 0x93528800U, + 0x3cb6fc00U, + 0xa9abe00U, + 0x5b82c100U, + 0xe46c8a80U, + 0xfa01ebc0U, + 0x27682ca0U, + 0x8ec40ff0U, + 0x319e3788U, + 0x2b471f4cU, + 0x589aa672U, + 0x3082d9cdU, + 0xdcec9bbdU, + 0x5ac1d860U, + 0x13c838c1U, + 0xf8342131U, + 0x4761bbdU, + 0xaa431860U, + 0x6f2498c1U, + 0x92f5d131U, + 0xcfbe13bdU, + 0xa6772460U, + 0xb95286c1U, + 0x93b6e031U, + 0x381a913dU, + 0xa442f3a0U, + 0x9a4cb461U, + 0xb731dec1U, + 0x66a02435U, + 0x1df03b2cU, + 0xd6820b3U, + 0x21c439fcU, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0x30000000U, + 0x8000000U, + 0xc000000U, + 0x72000000U, + 0xf9000000U, + 0x4a800000U, + 0x86c00000U, + 0x14e00000U, + 0x7db00000U, + 0xf280000U, + 0x8dec0000U, + 0xe70a0000U, + 0x11830000U, + 0xad578000U, + 0xecdec000U, + 0x99b7a000U, + 0xe16ed000U, + 0x3e9f8800U, + 0x5082dc00U, + 0xa3958a00U, + 0xb401df00U, + 0x36421680U, + 0x271f2140U, + 0xf195a420U, + 0x3d01d0f0U, + 0xd4c22918U, + 0x9ddf139cU, + 0x9f75a0d2U, + 0xb5b1efe7U, + 0xe36a0f90U, + 0x6ff30ac7U, + 0x261fa0e5U, + 0x5f42f100U, + 0x55f58790U, + 0x7371d6c7U, + 0x578a2ae5U, + 0x22432e00U, + 0x21379110U, + 0xdeaef787U, + 0xc0ff8ec5U, + 0x9bf2fef0U, + 0xb05db808U, + 0x485de41bU, + 0xac602e17U, + 0x42701117U, + 0xf1483798U, + 0x469c2edcU, + 0xf4c22ef2U, + 0xeddf3017U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x50000000U, + 0x28000000U, + 0xe4000000U, + 0x1e000000U, + 0xd000000U, + 0x4f800000U, + 0x3c00000U, + 0xb9e00000U, + 0xcad00000U, + 0xd8780000U, + 0xbc2c0000U, + 0xe27e0000U, + 0x8f410000U, + 0x90ef8000U, + 0xbb1c4000U, + 0xe68fa000U, + 0x320c5000U, + 0xe717b800U, + 0x14f04400U, + 0xf511b200U, + 0xc39d7d00U, + 0x99803580U, + 0xfac03e40U, + 0xa0600660U, + 0x70102eb0U, + 0x18183018U, + 0x9c3c0804U, + 0xd2660c06U, + 0xf77d1e0fU, + 0x5c89b319U, + 0x41617e9fU, + 0xf58624c2U, + 0x70ad00a8U, + 0xab718b19U, + 0xae8d7a9fU, + 0x861836c2U, + 0xd13c2da8U, + 0xfde60699U, + 0xa4bd00dfU, + 0xcd6982a2U, + 0x6fb17e18U, + 0x33fe0301U, + 0xc181369bU, + 0x68f88c4U, + 0x220c4ea7U, + 0xaf178000U, + 0xa0f04000U, + 0xc311a000U, + 0x2a9d5000U, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0xb0000000U, + 0x38000000U, + 0x2c000000U, + 0xd2000000U, + 0x8d000000U, + 0x70800000U, + 0x14c00000U, + 0xb2e00000U, + 0x51f00000U, + 0xf6280000U, + 0xb740000U, + 0x23c20000U, + 0x8b7b0000U, + 0x63858000U, + 0xab51c000U, + 0xd3e5a000U, + 0x9361d000U, + 0xffada800U, + 0x4125fc00U, + 0x72a7a600U, + 0x31daf700U, + 0x66481280U, + 0x83441440U, + 0x378a2ea0U, + 0x753f0170U, + 0x3c8f8a18U, + 0x56aef90cU, + 0xb78a1992U, + 0x353f20d1U, + 0x1c8f8de2U, + 0xe6aedd4fU, + 0x8f8a2f23U, + 0x193f05abU, + 0xce8fa5e2U, + 0x6baee14fU, + 0xff0a2923U, + 0xdff22abU, + 0x7c6f9f62U, + 0x3a5ec90fU, + 0x9220183U, + 0x68b04dbU, + 0x5fadaffaU, + 0xb125d843U, + 0x6aa790b1U, + 0xaddad27aU, + 0x8c483a80U, + 0x22442840U, + 0x950a28a0U, + 0xecff2670U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0x50000000U, + 0xd8000000U, + 0xec000000U, + 0xf2000000U, + 0x65000000U, + 0x87800000U, + 0x5c00000U, + 0x48a00000U, + 0xcb100000U, + 0x58f80000U, + 0xb3340000U, + 0x84d20000U, + 0xc9130000U, + 0xd5f58000U, + 0x50944000U, + 0x470da000U, + 0xfaa07000U, + 0xe5fb800U, + 0xef736400U, + 0x3e8a0e00U, + 0xf8371f00U, + 0x1c5f9280U, + 0x1a737640U, + 0x10a0b60U, + 0x41f71330U, + 0x7eff9748U, + 0x58637ef4U, + 0x2c7233f6U, + 0x92031479U, + 0x350d81a2U, + 0x5fa0610dU, + 0xe9dfb597U, + 0xbab340dcU, + 0xae2a1322U, + 0xdf27174dU, + 0xb6a7bef7U, + 0xcc4753ecU, + 0x258046aU, + 0x8d2429b9U, + 0xe3aa2d01U, + 0xc3e73795U, + 0x3387bdc8U, + 0xdb976cb4U, + 0xbf803696U, + 0x79c01849U, + 0x2a0046aU, + 0x121029b9U, + 0xf5782d01U, + 0x3ff43795U, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0x90000000U, + 0x58000000U, + 0xc4000000U, + 0x66000000U, + 0x3b000000U, + 0x39800000U, + 0xd7c00000U, + 0x10a00000U, + 0xbb700000U, + 0xf9f80000U, + 0x77f40000U, + 0x80a60000U, + 0xe30d0000U, + 0x3db48000U, + 0x11c64000U, + 0xbbcca000U, + 0xdaf27000U, + 0xea4a8800U, + 0x14f5400U, + 0xa61e00U, + 0x230d2500U, + 0x9db4a780U, + 0x81c65bc0U, + 0xe3cca1e0U, + 0x1ef27a30U, + 0x8c4a9bc8U, + 0x3a4f41ecU, + 0x39262a36U, + 0xf4cd23d1U, + 0x8d14bdffU, + 0x3ab65022U, + 0x1a34b0daU, + 0x69065b7fU, + 0xcec9a7fU, + 0xd9424be2U, + 0x492b13aU, + 0xe50b514fU, + 0x36d809b7U, + 0xe0441e0eU, + 0xf07e250cU, + 0x6849279eU, + 0xc4a9bc8U, + 0xfa4f41ecU, + 0x99262a36U, + 0x64cd23d1U, + 0xd514bdffU, + 0xfeb65022U, + 0x7c34b0daU, + 0x52065b7fU, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0x10000000U, + 0xb8000000U, + 0xb4000000U, + 0xfa000000U, + 0x47000000U, + 0xd1800000U, + 0x1fc00000U, + 0xe2e00000U, + 0x94100000U, + 0x4a580000U, + 0xf240000U, + 0xcd8e0000U, + 0xe9bb0000U, + 0xebe48000U, + 0xf8a64000U, + 0xc35ca000U, + 0x23925000U, + 0xa48a9800U, + 0xd50d5400U, + 0x3ae03600U, + 0x70103900U, + 0xe8582880U, + 0xec2438c0U, + 0x5e0e24e0U, + 0x57b3b30U, + 0x2284b258U, + 0x34767334U, + 0xba64be4eU, + 0xa766713dU, + 0xc1bc814dU, + 0xa78248a3U, + 0x56d2ad0cU, + 0x6e297e8eU, + 0xd6e31cdU, + 0xdeab2463U, + 0xd23cbfecU, + 0xb427cbeU, + 0x7fb2ab15U, + 0xb2f96f97U, + 0xcc562542U, + 0xee5f36b3U, + 0x4d0a9800U, + 0x3ecd5400U, + 0xc2003600U, + 0xb3003900U, + 0xcb802880U, + 0x48c038c0U, + 0x8b6024e0U, + 0x3fd03b30U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x50000000U, + 0xb8000000U, + 0x14000000U, + 0xd2000000U, + 0x6d000000U, + 0x25800000U, + 0x73c00000U, + 0x54e00000U, + 0x38500000U, + 0x54380000U, + 0xb2440000U, + 0x3d7e0000U, + 0x9dbf0000U, + 0x67958000U, + 0x86ad4000U, + 0x554da000U, + 0x71b95000U, + 0xc18bb800U, + 0x69824400U, + 0xa5801600U, + 0x33c00100U, + 0x34e00280U, + 0x68500a40U, + 0xec3813e0U, + 0xa64402b0U, + 0xef7e28d8U, + 0xf0bf09a4U, + 0x42158956U, + 0xf56d7e75U, + 0x1adaf69U, + 0x49e955eaU, + 0x95b3bbb4U, + 0xdbc66e55U, + 0x98fe15e9U, + 0xae7f1baaU, + 0x5375be54U, + 0xeefd6de5U, + 0xb975bfb1U, + 0xd7fd584eU, + 0x2ef584e2U, + 0x993d4120U, + 0xe7958000U, + 0xc6ad4000U, + 0x354da000U, + 0x21b95000U, + 0x798bb800U, + 0x7d824400U, + 0x77801600U, + 0x5ec00100U, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0xf0000000U, + 0x38000000U, + 0x2c000000U, + 0x86000000U, + 0x79000000U, + 0xe2800000U, + 0xd8c00000U, + 0xafe00000U, + 0xc0100000U, + 0xa0280000U, + 0x10140000U, + 0xc8720000U, + 0x14490000U, + 0xaa698000U, + 0xff0ec000U, + 0x9ba1a000U, + 0x3a0ad000U, + 0x777b9800U, + 0x6f97ec00U, + 0x60001600U, + 0xb0002700U, + 0xd8001780U, + 0xdc002940U, + 0xbe001720U, + 0x55002370U, + 0x648032d8U, + 0xa1c01874U, + 0x4d603b52U, + 0x18d00231U, + 0xfc831eeU, + 0xd0043113U, + 0x685a308cU, + 0x45d3ed4U, + 0x621bbe6eU, + 0xeb47f453U, + 0x31c831acU, + 0xc5043aa4U, + 0xecda1b36U, + 0x559d0567U, + 0x177bbddeU, + 0xdf97cbe5U, + 0xb8000000U, + 0x6c000000U, + 0x66000000U, + 0x89000000U, + 0xda800000U, + 0xf4c00000U, + 0x29e00000U, + 0xb9100000U, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0x30000000U, + 0x48000000U, + 0x34000000U, + 0x3e000000U, + 0x1b000000U, + 0xe0800000U, + 0xe2c00000U, + 0xd3a00000U, + 0xc6500000U, + 0xa7080000U, + 0xacc0000U, + 0xf7e60000U, + 0x60010000U, + 0xf0188000U, + 0xa80ac000U, + 0x430a000U, + 0x7656f000U, + 0x2f7e9800U, + 0xdecbfc00U, + 0xf9880a00U, + 0x330c3100U, + 0x24c62580U, + 0x749107c0U, + 0xccb0a5a0U, + 0x5096f370U, + 0x6adea348U, + 0x79bffe4U, + 0xc8003d0aU, + 0xf4003797U, + 0xde000ad3U, + 0x2b002a27U, + 0xa88035bdU, + 0xd6c03b71U, + 0xeda03753U, + 0xdd5011e7U, + 0x47883a1dU, + 0xe80c0901U, + 0x2446299bU, + 0xa65115c3U, + 0x5710a8b7U, + 0xa2c6fce6U, + 0xf3d6a580U, + 0x1657c7c0U, + 0xdf6605a0U, + 0x76c10370U, + 0xfdb8bb48U, + 0x455ac3e4U, + 0xbb8970aU, + 0xaa5af697U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0xf0000000U, + 0x98000000U, + 0x9c000000U, + 0x4e000000U, + 0x59000000U, + 0x7800000U, + 0xddc00000U, + 0xdea00000U, + 0x1a300000U, + 0x23080000U, + 0x34a40000U, + 0xa13a0000U, + 0x8bc50000U, + 0xdb958000U, + 0x73d04000U, + 0x57bda000U, + 0x75847000U, + 0xfaafa800U, + 0x38154c00U, + 0xac280e00U, + 0xf6542b00U, + 0x35123d80U, + 0xd1910d40U, + 0x1887b460U, + 0x97414630U, + 0x9eba05c8U, + 0xfa0517bcU, + 0xf335b68aU, + 0x5ce040d5U, + 0xa5359124U, + 0x59e07e54U, + 0xccb5ade9U, + 0x2d20696cU, + 0x8d9584a4U, + 0x76d07f14U, + 0x3e3db789U, + 0x144745cU, + 0xbb8f94ecU, + 0x63e569e8U, + 0x1f801b63U, + 0x81c029b9U, + 0xb0a01580U, + 0xb3300140U, + 0xbc881a60U, + 0x75641d30U, + 0x319a1048U, + 0xc8f516fcU, + 0xff1daceaU, + 0x9ab45de5U, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0x10000000U, + 0x8000000U, + 0x84000000U, + 0x92000000U, + 0x91000000U, + 0xbd800000U, + 0x8cc00000U, + 0x61600000U, + 0xc5b00000U, + 0x30d80000U, + 0x6f6c0000U, + 0x4af60000U, + 0xa530000U, + 0x5d2d8000U, + 0x8bc04000U, + 0x9fdba000U, + 0x45935000U, + 0x70f62800U, + 0x4f531400U, + 0x5aad8a00U, + 0x2006500U, + 0xd93b8680U, + 0x19e35540U, + 0xece23e0U, + 0xf84f1370U, + 0xfc63bd38U, + 0x2e4f775cU, + 0x9f5812eeU, + 0x32ac3ff7U, + 0xb6161d6bU, + 0x53231a3fU, + 0x495b0ceU, + 0xa51c5338U, + 0x77f5a053U, + 0xb1ac6d63U, + 0xdaada220U, + 0x42006ccfU, + 0xf93bbd38U, + 0x9e3775cU, + 0x6ce12eeU, + 0x7c4f3ff7U, + 0x6e639d6bU, + 0xbf4f5a3fU, + 0x22d810ceU, + 0xbe6c0338U, + 0xd7760853U, + 0x96933963U, + 0x344d8820U, + 0xca7059cfU, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0xf0000000U, + 0x78000000U, + 0xac000000U, + 0x3a000000U, + 0xd000000U, + 0xf1800000U, + 0x6cc00000U, + 0xf5200000U, + 0x9df00000U, + 0x76a80000U, + 0x8640000U, + 0x141a0000U, + 0xb6230000U, + 0xc75f8000U, + 0x84944000U, + 0x3145a000U, + 0xa3b77000U, + 0x659a2800U, + 0x1ae30c00U, + 0x127f9600U, + 0xe9645700U, + 0x3fedb080U, + 0x7d35840U, + 0x4b801ae0U, + 0xa1c01470U, + 0x24a01728U, + 0x1302b4cU, + 0xfb883062U, + 0x39940d25U, + 0x58b22a4cU, + 0xb34737e1U, + 0x22c5b5f9U, + 0x5e7770e1U, + 0x33a3d64U, + 0xbad31cadU, + 0x2277859bU, + 0xb1307dc4U, + 0x63ff9728U, + 0x45a46b4cU, + 0xeacd9062U, + 0x6a237d25U, + 0x4528024cU, + 0x5a43be1U, + 0xaba23f9U, + 0xba1327e1U, + 0xcd578de4U, + 0xd1c044edU, + 0x9cd79f7bU, + 0x8d0069b4U, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0x30000000U, + 0x98000000U, + 0x6c000000U, + 0xaa000000U, + 0x83000000U, + 0xd7800000U, + 0xc0c00000U, + 0xa1600000U, + 0x30d00000U, + 0x99280000U, + 0x8cf40000U, + 0x9b4a0000U, + 0xfbdb0000U, + 0x8ae88000U, + 0x12644000U, + 0x7f42a000U, + 0x35af5000U, + 0x87e21800U, + 0x28ef1c00U, + 0xb5429e00U, + 0xc6af5700U, + 0x28622c80U, + 0xb42f2bc0U, + 0x2622a760U, + 0x197f5cf0U, + 0xccca1bb8U, + 0x7b1b3704U, + 0xcb889c92U, + 0x12b443c9U, + 0x7e6ab378U, + 0xd55b66fbU, + 0xb6a81eb0U, + 0x50340a9bU, + 0xe82a30c0U, + 0x140b0dffU, + 0xf640bc22U, + 0xb1504e52U, + 0x38e8b738U, + 0xbd645cc4U, + 0xe2c29bf2U, + 0x466f4f39U, + 0x690230c0U, + 0xb4ff0dffU, + 0x270abc22U, + 0xf98b4e52U, + 0xfd803738U, + 0x3c01cc4U, + 0x96e03bf2U, + 0xc0101f39U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0x30000000U, + 0x28000000U, + 0x8c000000U, + 0x2e000000U, + 0xc3000000U, + 0xae800000U, + 0x79c00000U, + 0x9d200000U, + 0xe5d00000U, + 0xb680000U, + 0xd2ec0000U, + 0x1fa20000U, + 0xe2690000U, + 0x4d328000U, + 0x3dd8c000U, + 0xcf30a000U, + 0x40a1f000U, + 0xdaca3800U, + 0x3853c00U, + 0xb4109200U, + 0x1a71ef00U, + 0x19222180U, + 0xd7a923c0U, + 0x9e12b820U, + 0x2b08e2b0U, + 0x42d8a6e8U, + 0x678df404U, + 0x76481612U, + 0xc73c010fU, + 0x5cca3c92U, + 0x8c853d51U, + 0x5490b26cU, + 0x90b1dd58U, + 0x282227aU, + 0xc7b93555U, + 0x265a967eU, + 0xdf34c357U, + 0xf8928768U, + 0x2ec8d7c4U, + 0xb9f8ae32U, + 0xfd5de3bfU, + 0xd5a01a7aU, + 0x23100955U, + 0x5ec8047eU, + 0x31fc2c57U, + 0x216a26e8U, + 0xe3953404U, + 0x4458b612U, + 0x524df10fU, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0x70000000U, + 0x48000000U, + 0x6c000000U, + 0x4e000000U, + 0x3b000000U, + 0x94800000U, + 0xc1c00000U, + 0xbe200000U, + 0xb3500000U, + 0x98880000U, + 0xffdc0000U, + 0xcd320000U, + 0x4bc10000U, + 0x17728000U, + 0x7aabc000U, + 0xeac8a000U, + 0x12b6f000U, + 0x56883800U, + 0x4dc2c00U, + 0x39b20a00U, + 0xfa010700U, + 0xe1528180U, + 0xa5fbd5c0U, + 0x3c4096a0U, + 0xd66aceb0U, + 0xf3a32a8U, + 0x8edd30a4U, + 0x90e083aaU, + 0x33fad423U, + 0x931234eeU, + 0x489108c7U, + 0xa7fa9830U, + 0x9977eeeaU, + 0x21fa87c6U, + 0xe77eda3U, + 0x9b7a8d3aU, + 0x84b7f479U, + 0xf9da8180U, + 0x9a27d5c0U, + 0x917296a0U, + 0xedabceb0U, + 0x5048b2a8U, + 0x9876f0a4U, + 0x342823aaU, + 0x1a4c2423U, + 0x511a0ceeU, + 0x8d8d24c7U, + 0x20689230U, + 0xd026e9eaU, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x90000000U, + 0x58000000U, + 0x44000000U, + 0x1a000000U, + 0xf1000000U, + 0x4e800000U, + 0xf5c00000U, + 0x32600000U, + 0x3d100000U, + 0x28f80000U, + 0xcaa40000U, + 0xcfee0000U, + 0x337f0000U, + 0xbbad8000U, + 0xc14bc000U, + 0xa6bba000U, + 0x1990d000U, + 0xa4783800U, + 0xca643400U, + 0xc90e0e00U, + 0x9aaf3500U, + 0xb7b59080U, + 0x873fed40U, + 0x69cdb520U, + 0x2c5bd130U, + 0xb643a738U, + 0x734c634U, + 0x299628a6U, + 0x4c1b18edU, + 0x2623b145U, + 0x5f24f736U, + 0x6dee3e30U, + 0x567f3cbdU, + 0xd72d86fdU, + 0x118bdc42U, + 0x985ba3b6U, + 0x6440f560U, + 0xea601080U, + 0x39102d40U, + 0x52f81520U, + 0xaba40130U, + 0xd96e1f38U, + 0x82bf3234U, + 0x93cd86a6U, + 0xd5bfdedU, + 0xc0c399c5U, + 0x26f4ee76U, + 0x59f62510U, + 0xc40b088dU, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0xf0000000U, + 0xc8000000U, + 0xe4000000U, + 0x42000000U, + 0xbd000000U, + 0x6a800000U, + 0x5c00000U, + 0x2a200000U, + 0x89100000U, + 0xf0880000U, + 0x64dc0000U, + 0x2eb60000U, + 0x97830000U, + 0x4f578000U, + 0x3fe7c000U, + 0x9b69a000U, + 0x55b8f000U, + 0x32081800U, + 0xb51c0c00U, + 0x6e960a00U, + 0xb7930500U, + 0x5f5fa280U, + 0x7fbd640U, + 0xb77faa20U, + 0xf3ebde30U, + 0xcd778828U, + 0x62f7ef34U, + 0x1e19caaU, + 0x9864ce73U, + 0xfc3e0d0fU, + 0x7e5f2697U, + 0x23619858U, + 0xb9a4c129U, + 0x741e27a7U, + 0xba4f1fe3U, + 0x7169aed2U, + 0x3cb8d16aU, + 0x32882280U, + 0x19dc1640U, + 0xa4360a20U, + 0x62432e30U, + 0xad779028U, + 0x52f7e334U, + 0x29e196aaU, + 0x8c64cb73U, + 0x763e2f8fU, + 0x275f30d7U, + 0xbe19278U, + 0x164ef19U, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0x10000000U, + 0x48000000U, + 0xdc000000U, + 0x92000000U, + 0x53000000U, + 0x6c800000U, + 0x85c00000U, + 0x36600000U, + 0xe5500000U, + 0xc9f80000U, + 0xac6c0000U, + 0x8a6a0000U, + 0x27570000U, + 0x32e88000U, + 0xcfbc000U, + 0xd5faa000U, + 0x9e00d000U, + 0x29181800U, + 0x13fc1400U, + 0x23722a00U, + 0x74ab3300U, + 0xf19ab680U, + 0x6850e3c0U, + 0x6c601fa0U, + 0x2a5025b0U, + 0xd7782eb8U, + 0x6aac1c24U, + 0x988a2de6U, + 0x9bc7254fU, + 0x5f70b464U, + 0x16c7f60eU, + 0xfae89500U, + 0x90fbfb9bU, + 0xa7faac5cU, + 0xdd00c9eaU, + 0xd980746U, + 0x4a3c2b64U, + 0x87122e80U, + 0xc2fb37c0U, + 0x54e295a0U, + 0x41fcc6b0U, + 0xd06a0038U, + 0xe8572be4U, + 0x2c68b846U, + 0xca3be3ffU, + 0xc71ab45cU, + 0x2290ddeaU, + 0x44802d46U, + 0x9c01864U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0xd0000000U, + 0x98000000U, + 0x6c000000U, + 0x2e000000U, + 0x71000000U, + 0x7c800000U, + 0xebc00000U, + 0xd2200000U, + 0x67500000U, + 0xd1d80000U, + 0xf1640000U, + 0xbc9a0000U, + 0x8bd10000U, + 0x2678000U, + 0xff1ac000U, + 0xbda5a000U, + 0xdf6ff000U, + 0xcdf83800U, + 0xf7340400U, + 0xe9c23e00U, + 0x2d752f00U, + 0xdaddad80U, + 0xe9bc740U, + 0x3c9a34a0U, + 0x4bd116b0U, + 0x6267b3a8U, + 0x2f1ad724U, + 0x25a586feU, + 0xb36fce8dU, + 0xe3f828d0U, + 0x863406edU, + 0x95420e9fU, + 0xc6b508c2U, + 0x8fdb6f8U, + 0x69cbd689U, + 0xed421cc1U, + 0xbab520ffU, + 0xdefd9580U, + 0xa4cbc340U, + 0x27c20aa0U, + 0x4c7539b0U, + 0x5e5d9e28U, + 0x595bd064U, + 0x58ba125eU, + 0x3181283dU, + 0xe13fa378U, + 0x44bed5c9U, + 0x379fb661U, + 0xb42ee94fU, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0x30000000U, + 0xb8000000U, + 0xac000000U, + 0x6000000U, + 0xfd000000U, + 0xef800000U, + 0xf8c00000U, + 0x8c200000U, + 0xf6300000U, + 0xe5480000U, + 0x73c40000U, + 0x46ca0000U, + 0xdd750000U, + 0x1fcd8000U, + 0xe0814000U, + 0x106fa000U, + 0x48007000U, + 0xb4200800U, + 0x9a303c00U, + 0x43480600U, + 0xbec42700U, + 0x114a2f80U, + 0x89b51440U, + 0x95edba60U, + 0xebb14170U, + 0x1aa7b8e8U, + 0xc30473bcU, + 0x7eca125aU, + 0xb1751d7dU, + 0xb9cdaee0U, + 0x2d814cacU, + 0x47ef99c1U, + 0x1cc06b3dU, + 0x3e003188U, + 0x91001750U, + 0x498037fbU, + 0x35c01030U, + 0xdba00800U, + 0xa2f03c00U, + 0x6f680600U, + 0x78f42700U, + 0x4c022f80U, + 0x56711440U, + 0xd527ba60U, + 0xcbc44170U, + 0xeaea38e8U, + 0xdb4533bcU, + 0xe285b25aU, + 0xf456d7dU, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0x50000000U, + 0x58000000U, + 0x14000000U, + 0x5a000000U, + 0x75000000U, + 0x6c800000U, + 0x87c00000U, + 0xdc600000U, + 0xf6700000U, + 0xcb780000U, + 0x4b840000U, + 0xd2660000U, + 0x79070000U, + 0x82c78000U, + 0xf8e4c000U, + 0x9db9a000U, + 0x917d000U, + 0xcae00800U, + 0x14b00400U, + 0x83983e00U, + 0x7e341100U, + 0xc77e0080U, + 0xa5f31840U, + 0xad598da0U, + 0x38a7fcb0U, + 0x7df80c38U, + 0xf9440c6cU, + 0xc2862dc6U, + 0x58b73b7dU, + 0xcddf9047U, + 0x5110c9a0U, + 0xdea7a2a8U, + 0x4e94ed38U, + 0xf6c194ffU, + 0x1293d98cU, + 0x40863cceU, + 0x79b73bf5U, + 0x5b5f8800U, + 0xf3d0c400U, + 0x36479e00U, + 0x2b24c100U, + 0xbbd98880U, + 0xda67dc40U, + 0x351813a0U, + 0xccf43db0U, + 0xd79e04b8U, + 0x8443102cU, + 0xe2419e66U, + 0x9153d6cdU, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0x70000000U, + 0xe8000000U, + 0x94000000U, + 0x42000000U, + 0x7b000000U, + 0x49800000U, + 0x3cc00000U, + 0x90200000U, + 0x58500000U, + 0x1c080000U, + 0xa64c0000U, + 0xd13e0000U, + 0xa6eb0000U, + 0x375c8000U, + 0xd7f94000U, + 0x81caa000U, + 0x78ce7000U, + 0x2a003800U, + 0x2f002c00U, + 0x6b802200U, + 0x37c03900U, + 0x31a02a80U, + 0xf0903bc0U, + 0xce2802e0U, + 0x851c11f0U, + 0x84b63668U, + 0x3c671924U, + 0x7642a30aU, + 0x29427f87U, + 0xaa9e134dU, + 0x97b3029U, + 0x7af4a198U, + 0xf1254044U, + 0x76dcb7a5U, + 0xcf397ecdU, + 0xdbea8272U, + 0xbf9e6733U, + 0xd5880000U, + 0x5a8c0000U, + 0x211e0000U, + 0x8ebb0000U, + 0xc3548000U, + 0xe5b54000U, + 0x12f4a000U, + 0xa5257000U, + 0x54dcb800U, + 0xc4396c00U, + 0x7a6a8200U, + 0x175e4900U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0xf0000000U, + 0x28000000U, + 0x14000000U, + 0x4a000000U, + 0xe3000000U, + 0x6f800000U, + 0x72c00000U, + 0x70200000U, + 0xe8300000U, + 0x34080000U, + 0xba3c0000U, + 0xcb0a0000U, + 0x7b850000U, + 0x38d28000U, + 0x9318c000U, + 0x87abe000U, + 0x46d4b000U, + 0xca000800U, + 0x23000c00U, + 0x4f800200U, + 0x82c00f00U, + 0x58200280U, + 0xfc300140U, + 0x7e0804a0U, + 0x593c0e30U, + 0xa48a06f8U, + 0x945072cU, + 0x48f28702U, + 0x7b28ce83U, + 0xb3a3e340U, + 0xfce8bba3U, + 0x10a04b0U, + 0x58850bb8U, + 0x7752818dU, + 0x11d8c631U, + 0xdf8beafaU, + 0xbae4b52dU, + 0xb4080000U, + 0x7a3c0000U, + 0xeb0a0000U, + 0x8b850000U, + 0x10d28000U, + 0x8718c000U, + 0xcdabe000U, + 0xa5d4b000U, + 0xa5800800U, + 0x51c00c00U, + 0x3fa00200U, + 0x6af00f00U, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0x50000000U, + 0x28000000U, + 0x9c000000U, + 0x7e000000U, + 0xff000000U, + 0x43800000U, + 0x79c00000U, + 0xb8200000U, + 0x14100000U, + 0x52380000U, + 0xf9140000U, + 0x88a0000U, + 0xd8670000U, + 0x40ff8000U, + 0x108fc000U, + 0x7c78e000U, + 0x6ad27000U, + 0x5d800800U, + 0x96c00400U, + 0x33a00e00U, + 0xa1d00500U, + 0xbc180280U, + 0x8e0409c0U, + 0x673207e0U, + 0xa7b30ff0U, + 0xb3d58438U, + 0xa538c79cU, + 0xd69f6b82U, + 0x9759b141U, + 0x7b4aed23U, + 0xdd617b91U, + 0x26558688U, + 0xfff8cc86U, + 0xb33f688fU, + 0x5589bdc8U, + 0xfad2eaa7U, + 0xd5a5749dU, + 0xbac78000U, + 0x359bc000U, + 0xeaf2e000U, + 0x1db57000U, + 0x76ff8800U, + 0x638fc400U, + 0x89f8ee00U, + 0x20127500U, + 0xf0200a80U, + 0x98100dc0U, + 0xe43809e0U, + 0xca140af0U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0x70000000U, + 0x48000000U, + 0x1c000000U, + 0xae000000U, + 0xf9000000U, + 0x6c800000U, + 0x95c00000U, + 0x7c200000U, + 0x3e300000U, + 0xe1080000U, + 0x489c0000U, + 0x6fd20000U, + 0x37270000U, + 0x59b8000U, + 0xe1764000U, + 0xcde72000U, + 0xb8277000U, + 0x94200800U, + 0x92300c00U, + 0x27080200U, + 0xdd9c0700U, + 0xe5520480U, + 0x47e701c0U, + 0xbb3b8ae0U, + 0xb3864f90U, + 0x3c4f26c8U, + 0x5b4b795cU, + 0x66da0fc2U, + 0xd3bb0fe3U, + 0xac498c10U, + 0x43514389U, + 0x42fca27dU, + 0x299132b2U, + 0xe76722b9U, + 0x78e77d87U, + 0x42800016U, + 0xacc009deU, + 0x30a00800U, + 0xdbf00c00U, + 0xd5280200U, + 0x6aac0700U, + 0x20da0480U, + 0x86bb01c0U, + 0x6c98ae0U, + 0x43914f90U, + 0xb45ca6c8U, + 0x6761395cU, + 0xb8cf2fc2U, + 0x628b7fe3U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0xd0000000U, + 0x48000000U, + 0xbc000000U, + 0xe000000U, + 0xe1000000U, + 0xb5800000U, + 0x3dc00000U, + 0x8c200000U, + 0xd6100000U, + 0x75180000U, + 0xd7b40000U, + 0x9ad20000U, + 0x648f0000U, + 0x50538000U, + 0x25c04000U, + 0x38296000U, + 0x4157000U, + 0x4a200800U, + 0xcb100400U, + 0xae980600U, + 0xdb740d00U, + 0xeb720480U, + 0x335f0bc0U, + 0xa76b80e0U, + 0xc5644e10U, + 0x62636b58U, + 0x8aee73dcU, + 0xc8180c2U, + 0x5c4f4961U, + 0xb3fae151U, + 0x2d15307bU, + 0x3a9652dU, + 0x98d57988U, + 0x13800be5U, + 0xf0c0054cU, + 0x1fa00a5aU, + 0x66d0055dU, + 0xab80800U, + 0x61640400U, + 0xd86a0600U, + 0xb9eb0d00U, + 0x86398480U, + 0x7d2b4bc0U, + 0xb90e0e0U, + 0x44fe3e10U, + 0xcd90e358U, + 0x59fe37dcU, + 0x1610e6c2U, + 0x553e3461U, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0xd0000000U, + 0x98000000U, + 0x34000000U, + 0x12000000U, + 0x43000000U, + 0x4800000U, + 0xb8400000U, + 0x46200000U, + 0x41300000U, + 0x3fb80000U, + 0x58f40000U, + 0x74460000U, + 0x701d0000U, + 0x680c8000U, + 0x9c1cc000U, + 0x6e132000U, + 0xfd051000U, + 0x61980800U, + 0xedc40c00U, + 0xb9fe0e00U, + 0xbbe90d00U, + 0x80ca8980U, + 0x6041c340U, + 0x523fa120U, + 0x6329d430U, + 0x34b32848U, + 0xf0751784U, + 0xea000262U, + 0x67000513U, + 0x6e80047bU, + 0x1f400bcfU, + 0xc8a00fe4U, + 0x8e700071U, + 0x6f1807e8U, + 0xe2840675U, + 0x95e02cbU, + 0xd1990047U, + 0x65d28180U, + 0xf5c5cf40U, + 0x4de1af20U, + 0x49f0d930U, + 0x13c1a1c8U, + 0xfcc0d4c4U, + 0xde79a342U, + 0x3734d123U, + 0x36bfac33U, + 0xcb69dc4bU, + 0xa932d86U, + 0x55451562U, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0x50000000U, + 0x98000000U, + 0xec000000U, + 0xe000000U, + 0x29000000U, + 0x9f800000U, + 0xa9400000U, + 0x52200000U, + 0x8f300000U, + 0x32a80000U, + 0x1cd40000U, + 0xa8460000U, + 0x89ab0000U, + 0xac5b8000U, + 0x63964000U, + 0x5f65e000U, + 0x673f5000U, + 0xd6880800U, + 0xc6e40c00U, + 0x336e0a00U, + 0xa93f0500U, + 0x5fbd8980U, + 0x94d4ec0U, + 0x23660e0U, + 0x170d1290U, + 0xdea3e1f8U, + 0x12d45694U, + 0x81738722U, + 0x160241f3U, + 0x503e0aaU, + 0x31a45a0dU, + 0xd07b8be4U, + 0x55a648caU, + 0xca4de9ddU, + 0x6eab5b3dU, + 0xbaee08acU, + 0x57f06d4U, + 0x3c1d8180U, + 0x563d42c0U, + 0x653e6ae0U, + 0xc1a91790U, + 0x186de878U, + 0x219b5854U, + 0x284607c2U, + 0x49ab0363U, + 0xc5b8952U, + 0x33964099U, + 0xc765e6c6U, + 0x8b3f5c39U, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0x30000000U, + 0xf8000000U, + 0xfc000000U, + 0x1e000000U, + 0x2b000000U, + 0x67800000U, + 0xc5400000U, + 0xab200000U, + 0x27900000U, + 0x65680000U, + 0x9b2c0000U, + 0xdfae0000U, + 0x99570000U, + 0x852b8000U, + 0xf4a4c000U, + 0xfecee000U, + 0x405ad000U, + 0x5fae0800U, + 0xd9570400U, + 0x252b8a00U, + 0xc4a4c300U, + 0x6ceef80U, + 0xbc5adfc0U, + 0x41ae09e0U, + 0xf25706b0U, + 0x42ab8c78U, + 0x1e4cf54U, + 0xadeee532U, + 0x9bcaddb9U, + 0x24c60fb6U, + 0x697b0f02U, + 0x9d058182U, + 0x98b3c6c1U, + 0x28c56d60U, + 0x6f6e12f3U, + 0xda08e05aU, + 0x2921db07U, + 0xc2ab8c78U, + 0x41e4cf54U, + 0xdeee532U, + 0xabcaddb9U, + 0xdcc60fb6U, + 0x957b0f02U, + 0x83058182U, + 0xb3b3c6c1U, + 0x4f456d60U, + 0xaa2e12f3U, + 0x7128e05aU, + 0xeb1db07U, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0x90000000U, + 0x68000000U, + 0x9c000000U, + 0x6000000U, + 0x2f000000U, + 0xf8800000U, + 0x2a400000U, + 0x7f200000U, + 0x30900000U, + 0xc6780000U, + 0x81040000U, + 0xeb8a0000U, + 0xa4df0000U, + 0x82458000U, + 0x4321c000U, + 0x46b12000U, + 0x11571000U, + 0x8d8a0800U, + 0x5bdf0400U, + 0xf2c58e00U, + 0x6561c900U, + 0x57912680U, + 0x92c719c0U, + 0xb5720860U, + 0xdf9b06f0U, + 0x9eef8188U, + 0xdb6ecba4U, + 0x6c8ca172U, + 0x6072dac9U, + 0xde312407U, + 0xeb171ee0U, + 0x7aaa0730U, + 0x674f05e9U, + 0x5abd8756U, + 0x5765c7fbU, + 0x429b2eecU, + 0x33581235U, + 0xb0978188U, + 0x866acba4U, + 0x6106a172U, + 0x7baddac9U, + 0xccf4a407U, + 0x1e76dee0U, + 0x453b2730U, + 0x698815e9U, + 0xe9cf8f56U, + 0xa7fec3fbU, + 0x24f4a0ecU, + 0xc276db35U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0x70000000U, + 0xa8000000U, + 0x44000000U, + 0xc2000000U, + 0x13000000U, + 0xcf800000U, + 0xe2400000U, + 0x71200000U, + 0x6cb00000U, + 0xa5c80000U, + 0xa77c0000U, + 0x77ba0000U, + 0x9e690000U, + 0xf048000U, + 0x2182c000U, + 0x5740e000U, + 0x1fa51000U, + 0xfa720800U, + 0xbd150c00U, + 0x9abe8200U, + 0xdcebc700U, + 0x3fc46a80U, + 0x9867d440U, + 0x1e12e420U, + 0xdd001d30U, + 0xa8486f8U, + 0x24c2c524U, + 0xa3e0ef92U, + 0xb655158bU, + 0x8b1a04fcU, + 0xc3990307U, + 0x346c85a3U, + 0x780ec1f2U, + 0x5c12e19aU, + 0xe001eb7U, + 0xe5048c1aU, + 0xb682c076U, + 0x7ac0ec78U, + 0x9ee51164U, + 0xecd20bb2U, + 0x77e508bbU, + 0x8c568204U, + 0x427c623U, + 0x22366a31U, + 0x4332d479U, + 0x178c6566U, + 0xe5bddb0U, + 0xf708e9b9U, + 0xbd991184U, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0x10000000U, + 0x18000000U, + 0x7c000000U, + 0x8e000000U, + 0x6f000000U, + 0x52800000U, + 0x1fc00000U, + 0x59200000U, + 0x71b00000U, + 0x2b780000U, + 0x5de40000U, + 0x90160000U, + 0xd8170000U, + 0x9c1f8000U, + 0x9e19c000U, + 0x770da000U, + 0x2ebb7000U, + 0x91ee0800U, + 0x36330c00U, + 0x23298e00U, + 0x34bec100U, + 0x4ea2180U, + 0xe186b7c0U, + 0xf355a0e0U, + 0xc1ef7af0U, + 0xe000328U, + 0xaf000cfcU, + 0xb2800a12U, + 0xfc001dbU, + 0x41200bd7U, + 0xdb004eeU, + 0xa57804c9U, + 0x32e40a8dU, + 0xc296097bU, + 0xc7d70f06U, + 0xc53f8055U, + 0xefa9c02eU, + 0x5c75a2a8U, + 0x735f7b3cU, + 0x1f80af2U, + 0xee240b2bU, + 0xbf3600ffU, + 0xaaa70412U, + 0x73e780dbU, + 0xcf3dca56U, + 0x62bba32cU, + 0xf7dc7c28U, + 0x2d29847cU, + 0x9bbec053U, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0xb0000000U, + 0x8000000U, + 0xf4000000U, + 0xa6000000U, + 0x77000000U, + 0x65800000U, + 0xd3c00000U, + 0x45200000U, + 0xe4900000U, + 0xd9680000U, + 0xbf4c0000U, + 0x28720000U, + 0x5de50000U, + 0x361d8000U, + 0x8f0bc000U, + 0x39a26000U, + 0x31ce7000U, + 0x9c3a0800U, + 0x2390400U, + 0xc9078a00U, + 0x5ea2cb00U, + 0xec4de080U, + 0xb3e0bf40U, + 0x1525e260U, + 0xfcacb370U, + 0x9557e458U, + 0xe549b23cU, + 0xd4a66d2U, + 0xe9427e09U, + 0xf7680576U, + 0x7c4c0cc4U, + 0x4bf2043fU, + 0x49250bd2U, + 0x1ebd8b8bU, + 0x4c5bc3b5U, + 0x3ea6666U, + 0x1d127cedU, + 0x8a00cd8U, + 0x3350097cU, + 0x92480eb2U, + 0x68dc0679U, + 0x3a9a01aeU, + 0xb26901b8U, + 0x98cf808dU, + 0x92bec6abU, + 0xf677eaa5U, + 0x36d9bd4dU, + 0x11a2648bU, + 0x35ce7936U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0xd0000000U, + 0x48000000U, + 0xf4000000U, + 0x26000000U, + 0x61000000U, + 0x17800000U, + 0x8c00000U, + 0xbb200000U, + 0x4b00000U, + 0xe8580000U, + 0x5d540000U, + 0x1cc20000U, + 0x8d350000U, + 0x4d958000U, + 0xdbe64000U, + 0x3bbee000U, + 0x32d4b000U, + 0xb83a0800U, + 0xcc110c00U, + 0x2a2f8600U, + 0x2b374d00U, + 0xecb16480U, + 0xac53ff40U, + 0xe3536a60U, + 0xc1d6fa10U, + 0x489eef78U, + 0x264b18cU, + 0x16620132U, + 0x20450e0bU, + 0x696d8e65U, + 0x5ac24185U, + 0x3c04e654U, + 0x1205b10fU, + 0x27358473U, + 0xa6964769U, + 0x5746e1f4U, + 0x47f0bb3fU, + 0x998003f8U, + 0x8dc002ccU, + 0xa2a00d52U, + 0x4970091bU, + 0x2af80d9dU, + 0xc4240349U, + 0x7e3a0b06U, + 0xbd110814U, + 0x15af81eeU, + 0x7f74820U, + 0x39916cf2U, + 0x3de3fe2bU, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0x70000000U, + 0x78000000U, + 0x74000000U, + 0x7e000000U, + 0x5f000000U, + 0xd0800000U, + 0x75400000U, + 0x7d200000U, + 0x2d900000U, + 0x18f80000U, + 0x85fc0000U, + 0xd86e0000U, + 0xb8950000U, + 0x496b8000U, + 0xef0dc000U, + 0x8bb2000U, + 0x9179d000U, + 0xb360800U, + 0x7eb90400U, + 0xc25d8e00U, + 0xd1b4c700U, + 0x2ae6a780U, + 0x30cd1740U, + 0x59d0afe0U, + 0x3a7411f0U, + 0xe58d2b08U, + 0xb4c0d454U, + 0x1feb8652U, + 0xf14dc699U, + 0x3b1b2fefU, + 0xe6a9ddefU, + 0xc66e08eeU, + 0xd7950a6dU, + 0x1eb87acU, + 0x9e4dc98dU, + 0x739b2c5eU, + 0x97e9d385U, + 0xbd4e0488U, + 0xd1050714U, + 0xb79387b2U, + 0x31f1c069U, + 0x6552b67U, + 0x77acdafbU, + 0x91fd8f5cU, + 0x9664ca04U, + 0x7fbeaccbU, + 0x9de11376U, + 0x9c66a302U, + 0x5e8d1981U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0x90000000U, + 0xc8000000U, + 0x24000000U, + 0x8e000000U, + 0x39000000U, + 0x6a800000U, + 0x60400000U, + 0x5aa00000U, + 0xf8700000U, + 0x96a80000U, + 0xc2540000U, + 0xe99a0000U, + 0xb5dd0000U, + 0x6d798000U, + 0xb6334000U, + 0xa5332000U, + 0xb8b35000U, + 0xab798800U, + 0x6b334c00U, + 0x61b32200U, + 0x71f35900U, + 0x53598480U, + 0xd7034e40U, + 0x23bb2ae0U, + 0x72d75a90U, + 0x46eb8228U, + 0xc0ca4844U, + 0xfdf8af4aU, + 0x89491517U, + 0x18092b42U, + 0xc1e5461U, + 0x1a2809d3U, + 0xef14024aU, + 0xbfba0795U, + 0xa0ed0a02U, + 0x8df18500U, + 0xf1574e81U, + 0x64212b42U, + 0x6e0a5461U, + 0x891209d3U, + 0x32b9024aU, + 0x8c6b8795U, + 0xf08a4a02U, + 0x4f58a500U, + 0xc5391e81U, + 0xc8a12342U, + 0xd34a5861U, + 0x17320bd3U, + 0x3890b4aU, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0xd0000000U, + 0xf8000000U, + 0xbc000000U, + 0xca000000U, + 0x39000000U, + 0x13800000U, + 0x55400000U, + 0xbba00000U, + 0xd1700000U, + 0x6d880000U, + 0xf2440000U, + 0xbf360000U, + 0x8ab0000U, + 0x9be48000U, + 0x5b754000U, + 0x34986000U, + 0x91ec1000U, + 0xc2648800U, + 0xf7354c00U, + 0x3cb86a00U, + 0xc5dc1d00U, + 0xec4c8780U, + 0x680147c0U, + 0x240666a0U, + 0x6331e90U, + 0xdb1e06b8U, + 0x6e9f0294U, + 0x30da8d1aU, + 0x1dda4387U, + 0x406ae860U, + 0xfa0251b0U, + 0x713064e9U, + 0x2798120dU, + 0xb7a8c5eU, + 0xcaa4ec7U, + 0x8de2e680U, + 0xd8465243U, + 0x36066860U, + 0x933311b0U, + 0x5a9e04e9U, + 0x6edf020dU, + 0xaafa845eU, + 0x1cea42c7U, + 0x4fc2ec80U, + 0xb5765f43U, + 0xbae67e0U, + 0x59471a70U, + 0xf9800849U, + 0x7c40019dU, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x30000000U, + 0xf8000000U, + 0xe4000000U, + 0xfa000000U, + 0xad000000U, + 0xb6800000U, + 0x89c00000U, + 0x92a00000U, + 0x53d00000U, + 0x6fb80000U, + 0x2d5c0000U, + 0xfa460000U, + 0xa1c50000U, + 0xfea88000U, + 0xd5d64000U, + 0xec992000U, + 0x34d23000U, + 0x8c088800U, + 0xf6064400U, + 0x1b212600U, + 0xcd8e3300U, + 0x744e8780U, + 0x1ec34a40U, + 0xa909a9a0U, + 0x3c9879d0U, + 0xbcf7ace8U, + 0xf00172dcU, + 0xd819288aU, + 0xb41238edU, + 0x32288c13U, + 0xb1164309U, + 0xa8b920aeU, + 0xdec238b1U, + 0x89108a59U, + 0x6c8a4784U, + 0x74df2a8fU, + 0xec173d20U, + 0xc6200413U, + 0xe3100709U, + 0x299806aeU, + 0x8e4c0bb1U, + 0xb3de0dd9U, + 0x1f890dc4U, + 0xb576832fU, + 0x2e5f44f0U, + 0xa3efa8fbU, + 0xb78d75d5U, + 0x99672e24U, + 0xc84b335cU, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0x10000000U, + 0x68000000U, + 0xe4000000U, + 0x86000000U, + 0x9d000000U, + 0xe1800000U, + 0xb0c00000U, + 0xeda00000U, + 0x12f00000U, + 0x16980000U, + 0x7e740000U, + 0x2fc20000U, + 0xc72d0000U, + 0x56b38000U, + 0x5e624000U, + 0xdfe7e000U, + 0xbf387000U, + 0xda938800U, + 0x3c524c00U, + 0xc4dfee00U, + 0xc3bc7100U, + 0x8bc98e80U, + 0x610b4240U, + 0x3bae6660U, + 0xc7f338d0U, + 0xe31de098U, + 0x3091794cU, + 0xd37a00baU, + 0x566905ffU, + 0xebc987f1U, + 0xb10b43abU, + 0xb3ae62c6U, + 0x33f33acdU, + 0xd1dea7aU, + 0x49917cddU, + 0xb4fa09c0U, + 0x7ba900a2U, + 0xe7e98ff1U, + 0x133b4fabU, + 0x48966cc6U, + 0x5f773bcdU, + 0x3447ecfaU, + 0xf0c8729dU, + 0xcd8b81a0U, + 0xe2e64972U, + 0x6ebde1e9U, + 0xf26174a7U, + 0x4de20a1cU, + 0xdc1d06e2U, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0x70000000U, + 0xa8000000U, + 0x34000000U, + 0xd2000000U, + 0x59000000U, + 0xd6800000U, + 0xf1400000U, + 0x9aa00000U, + 0x8f500000U, + 0xada80000U, + 0x96cc0000U, + 0xa9420000U, + 0x46a10000U, + 0x49468000U, + 0x56af4000U, + 0xb1672000U, + 0xbaa51000U, + 0xff668800U, + 0x5bf4400U, + 0xa2ef2200U, + 0x7b791700U, + 0x1fac8280U, + 0x9fc24740U, + 0xa7e3af20U, + 0x2beb5290U, + 0x35e72fe8U, + 0x52e51854U, + 0x93468e8aU, + 0xbaf4e65U, + 0x3de72f32U, + 0x56e51238U, + 0xc9468c9eU, + 0x16af4e4fU, + 0x91672c06U, + 0xcaa51182U, + 0x576687c0U, + 0x31bf4f61U, + 0x70ef2732U, + 0x22791638U, + 0xc92c8e9eU, + 0x6e82494fU, + 0x3d43a686U, + 0xa4bb52c2U, + 0x984f2ae0U, + 0xc4291af1U, + 0x3a04825aU, + 0x4d0e4d2cU, + 0x74a1ad34U, + 0x4a52baU, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0x90000000U, + 0x88000000U, + 0xcc000000U, + 0x5a000000U, + 0x77000000U, + 0x4e800000U, + 0x23400000U, + 0xd4a00000U, + 0xb4500000U, + 0xaa080000U, + 0x8f340000U, + 0x3a8a0000U, + 0xad570000U, + 0xbd948000U, + 0x1bfec000U, + 0xeacd2000U, + 0x41411000U, + 0x379c8800U, + 0x44cac400U, + 0xf8472a00U, + 0xb0161900U, + 0x58080080U, + 0xe43408c0U, + 0x60a0fa0U, + 0xa5170e70U, + 0xf5b48c68U, + 0x37eecef4U, + 0x80e528eaU, + 0x2e651c35U, + 0x3d3e8648U, + 0xf1b9cec7U, + 0x1f1a4e2U, + 0x3ddbd890U, + 0x9fd3a1f9U, + 0x9ce8d18cU, + 0x5c452aa4U, + 0x163514b1U, + 0x6d3686c8U, + 0x998dc607U, + 0xfdfbab42U, + 0x7fccd6e0U, + 0xace72d91U, + 0x44461f78U, + 0x5200024eU, + 0xfb000884U, + 0xb4800080U, + 0xc44008c0U, + 0x12200fa0U, + 0x5b100e70U, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0x70000000U, + 0x68000000U, + 0xb4000000U, + 0xb6000000U, + 0x9000000U, + 0x40800000U, + 0xb9400000U, + 0x3ea00000U, + 0x54700000U, + 0x30180000U, + 0x482c0000U, + 0x24220000U, + 0xae310000U, + 0xd5378000U, + 0x42af4000U, + 0x67da000U, + 0x770c1000U, + 0xadaf8800U, + 0xb7c34c00U, + 0x22ffae00U, + 0x404d1700U, + 0xd6000e80U, + 0xb9000740U, + 0xc8800560U, + 0x7d400790U, + 0xe0a00288U, + 0xe97000d4U, + 0xc698088aU, + 0xf86c05d7U, + 0x5a020709U, + 0x43010f16U, + 0xdb8f81a8U, + 0x5ef34fa4U, + 0x1247ae52U, + 0x911110a8U, + 0x5cba0a25U, + 0x5b5d0193U, + 0xf1b58989U, + 0x75ee4856U, + 0x7dd224c8U, + 0x79cf5834U, + 0x47d024daU, + 0x8ace5c7cU, + 0x145facafU, + 0x103d1344U, + 0xd8180000U, + 0x3c2c0000U, + 0x72220000U, + 0xd7310000U, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0x10000000U, + 0xb8000000U, + 0xe4000000U, + 0x86000000U, + 0x8d000000U, + 0x4b800000U, + 0x8ec00000U, + 0x79a00000U, + 0x1df00000U, + 0xab180000U, + 0xf6b40000U, + 0x8d560000U, + 0xbb5d0000U, + 0xbe5f8000U, + 0x59f24000U, + 0x1d1f6000U, + 0x33a2f000U, + 0x8ae78800U, + 0xefb64c00U, + 0x28d16e00U, + 0x48bf100U, + 0xfe4e0380U, + 0x79e90240U, + 0xed098660U, + 0x9baf49d0U, + 0xd6c0ef38U, + 0x8d90b6acU, + 0x23d8e7faU, + 0xc224b50fU, + 0x3b0ee809U, + 0x8eb9ba87U, + 0x897162cfU, + 0x2d7bf92aU, + 0x8b5604b4U, + 0xf65d0164U, + 0x15df805cU, + 0xc73247f3U, + 0xdcbf6389U, + 0xca52f4c7U, + 0xa7ff8aafU, + 0x940241faU, + 0xee07680cU, + 0x3116f588U, + 0x39b181c6U, + 0x3deb4b2cU, + 0x5b0eecb8U, + 0x5eb9b4ecU, + 0xd171619aU, + 0xd97bfcdfU, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0xb0000000U, + 0x88000000U, + 0xbc000000U, + 0xba000000U, + 0x6b000000U, + 0xbb800000U, + 0x27400000U, + 0x30a00000U, + 0x6cd00000U, + 0xfff80000U, + 0x505c0000U, + 0xa10a0000U, + 0x788b0000U, + 0xf0f88000U, + 0x95dbc000U, + 0x37d6000U, + 0x2eba9000U, + 0x59f28800U, + 0x1150c400U, + 0x2985e600U, + 0x60615b00U, + 0x690fe080U, + 0xa4aa5fc0U, + 0xfad765a0U, + 0x76e199b0U, + 0x4f20d38U, + 0xb3d706b4U, + 0x272862aU, + 0xc610c0bdU, + 0xf125e767U, + 0xb15a01U, + 0xa4f7e102U, + 0x23f65181U, + 0x5a5d6642U, + 0x422a97e1U, + 0x7f2a8052U, + 0x6d9cc26bU, + 0xce57ea5fU, + 0xd4265cb5U, + 0xf6256728U, + 0x3936913cU, + 0xdc808125U, + 0xaec7cde0U, + 0xc0d76150U, + 0x5de193eaU, + 0xdf720c1dU, + 0x24970b54U, + 0xbad2877aU, + 0x16c0c357U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0x50000000U, + 0x58000000U, + 0x54000000U, + 0x56000000U, + 0x33000000U, + 0x54800000U, + 0xe4c00000U, + 0x17a00000U, + 0x18700000U, + 0xcf780000U, + 0x5c40000U, + 0xbe1e0000U, + 0xaf290000U, + 0x6e8f8000U, + 0x85dbc000U, + 0x7e23a000U, + 0xcf057000U, + 0x3e918800U, + 0xddf2cc00U, + 0x2a2c2600U, + 0x991eb500U, + 0xd922d80U, + 0x8947b940U, + 0xcee5ab60U, + 0x8e987a30U, + 0x15f80ec8U, + 0x4604020cU, + 0xcb3e079aU, + 0x309902f7U, + 0xbad7895fU, + 0x28afc860U, + 0x4ee5aab3U, + 0x4e987609U, + 0x75f8062dU, + 0x16040bcaU, + 0x933e078eU, + 0x649902d9U, + 0xecd78797U, + 0x1bafca6cU, + 0x1a65ad29U, + 0xaa5874feU, + 0x62580f72U, + 0xe7403aaU, + 0x5c460d3dU, + 0x615d04d0U, + 0x52c989baU, + 0xb486cda6U, + 0x74ea2ca7U, + 0x2f83b327U, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0x30000000U, + 0x78000000U, + 0xdc000000U, + 0xca000000U, + 0x43000000U, + 0xe3800000U, + 0x9c400000U, + 0xb8a00000U, + 0x73d00000U, + 0x6c80000U, + 0x1c7c0000U, + 0xf8860000U, + 0xd3c30000U, + 0x36e88000U, + 0x6445c000U, + 0x24bb6000U, + 0x19c65000U, + 0x75ee8800U, + 0x87c6c400U, + 0xb8f3ea00U, + 0xa1539300U, + 0x61def80U, + 0x813c99c0U, + 0xa4bb6ea0U, + 0x59c65330U, + 0xd5ee8bb8U, + 0xb7c6c304U, + 0xc0f3eaaaU, + 0x7d539dcdU, + 0xcc1ded74U, + 0xc23c95f3U, + 0x473b649aU, + 0xc58650f5U, + 0x6d4e8330U, + 0xc416c3baU, + 0xc63be705U, + 0x612f90aaU, + 0x349be6ccU, + 0x11ff96f7U, + 0x71d3ee30U, + 0xa1c39d38U, + 0x49f5e644U, + 0xddd09249U, + 0xb3d5699fU, + 0xe6e9535fU, + 0x8c680a7cU, + 0xb0ac0c8dU, + 0x77ce0795U, + 0x20ff0ea2U, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0x90000000U, + 0x8000000U, + 0x5c000000U, + 0x3a000000U, + 0x2f000000U, + 0xac800000U, + 0x94c00000U, + 0x5fa00000U, + 0xc2700000U, + 0x44480000U, + 0xa1740000U, + 0x1afa0000U, + 0xe68b0000U, + 0x43f08000U, + 0x9732c000U, + 0xa8a4a000U, + 0x5add7000U, + 0x86aa8800U, + 0x73c9cc00U, + 0xf1c2a00U, + 0xfc9bb900U, + 0x3cf42880U, + 0x939fb9c0U, + 0xf04621a0U, + 0x3760b7f0U, + 0x37cca848U, + 0xa119798cU, + 0x15b884daU, + 0x1546ce17U, + 0x8cdea7acU, + 0xcb967d6bU, + 0x47a05bdU, + 0xc14b0033U, + 0x2ad086e9U, + 0x7e82cdffU, + 0x17cca0d3U, + 0xf1197179U, + 0xbdb887e4U, + 0xd946c8e7U, + 0xbedeab67U, + 0xb8967724U, + 0x92fa09c5U, + 0x7a8b0954U, + 0xd9f084ceU, + 0x2832c6baU, + 0xc24a945U, + 0x921d7c94U, + 0xe30a8f6eU, + 0x9eb9c84aU, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0x70000000U, + 0x28000000U, + 0xc4000000U, + 0x3a000000U, + 0x9b000000U, + 0xa1800000U, + 0x93400000U, + 0xa0a00000U, + 0xf9f00000U, + 0x2a580000U, + 0x560c0000U, + 0xa5020000U, + 0xe0950000U, + 0xd9d88000U, + 0xba7dc000U, + 0xe07e000U, + 0x49049000U, + 0x1e828800U, + 0x78e4cc00U, + 0x80dd6e00U, + 0x3cec5700U, + 0x7addea80U, + 0x47dd9040U, + 0xab7805a0U, + 0xfcbc02b0U, + 0xcffa0698U, + 0x3f690274U, + 0x7e828b2aU, + 0xc8e4ca6fU, + 0x48dd6b1dU, + 0x88ec55e4U, + 0x68dde242U, + 0x18dd94a2U, + 0x30f80332U, + 0xf4fc0a58U, + 0xceda0495U, + 0x55d904b9U, + 0xf47a8705U, + 0x6718c7d0U, + 0xc7876cc8U, + 0x3e755c7dU, + 0x14076eb7U, + 0x42355dc8U, + 0xe7276dfdU, + 0x7855a74U, + 0xde5f6f2aU, + 0x6439586cU, + 0x6a256a1fU, + 0x23105c66U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0x70000000U, + 0x28000000U, + 0xa4000000U, + 0xfe000000U, + 0x3d000000U, + 0x82800000U, + 0xb3400000U, + 0x5a00000U, + 0x42f00000U, + 0x41780000U, + 0xa28c0000U, + 0x63620000U, + 0x3d8d0000U, + 0xbed98000U, + 0x33544000U, + 0xc5ba2000U, + 0x22fe1000U, + 0x31638800U, + 0x8aa54c00U, + 0xc779a600U, + 0xc3ab5700U, + 0x83e22a80U, + 0xb1c21640U, + 0x76d981e0U, + 0x275448d0U, + 0x73ba2ca8U, + 0xcbfe1674U, + 0x65e3853aU, + 0xa0e541bfU, + 0xbe59a5dfU, + 0xf1b55ccU, + 0x45ba24c4U, + 0xe2fe1a83U, + 0x51638e40U, + 0xfaa545e2U, + 0xef79a2d2U, + 0x67ab5dabU, + 0x7de22bf7U, + 0x8cc219f8U, + 0xf459861eU, + 0x941444ecU, + 0x761a2db7U, + 0x890e101aU, + 0x249b82ccU, + 0x2694e47U, + 0xdd3bacc0U, + 0x32965fa2U, + 0xfb63a532U, + 0xd1aa527bU, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0x70000000U, + 0x88000000U, + 0x5c000000U, + 0xea000000U, + 0x43000000U, + 0x40800000U, + 0xfc400000U, + 0x9da00000U, + 0x19f00000U, + 0x90580000U, + 0xdf8c0000U, + 0x96ea0000U, + 0xc2d30000U, + 0xb4d48000U, + 0xfdcdc000U, + 0x8e49a000U, + 0xba835000U, + 0x87468800U, + 0xe922cc00U, + 0x238f2e00U, + 0x2ce19700U, + 0x99e9a080U, + 0x507359c0U, + 0x3f9e88a0U, + 0xe6eecf30U, + 0x4ac52288U, + 0xe8c29d04U, + 0x17e527faU, + 0xcd729c6fU, + 0xfa1d25adU, + 0x7b0e9d0cU, + 0x74af2a3cU, + 0x3a519cb6U, + 0xbc91abb2U, + 0x464f594bU, + 0xc68c8ca7U, + 0xfd41cf49U, + 0x5223afa5U, + 0xb71055c8U, + 0x66b20b66U, + 0xad5f08e9U, + 0x4a3e8417U, + 0x131ecc83U, + 0x589d27c1U, + 0x584e97a0U, + 0xa38f23b2U, + 0xece1954bU, + 0x79e9a2a7U, + 0x20735849U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0xd0000000U, + 0x58000000U, + 0x9c000000U, + 0x2a000000U, + 0xcf000000U, + 0x3d800000U, + 0x4c400000U, + 0xca00000U, + 0x70d00000U, + 0xb4780000U, + 0x60840000U, + 0xb2de0000U, + 0x6f6b0000U, + 0xb3188000U, + 0x878ac000U, + 0xbb4ee000U, + 0x7d285000U, + 0x4e9e8800U, + 0xebf5c400U, + 0x7d06600U, + 0x85dd9d00U, + 0x3eceed80U, + 0x3d685dc0U, + 0x503e8ca0U, + 0x1825c5f0U, + 0xfc286058U, + 0xfa199004U, + 0x9730efeaU, + 0xa193563dU, + 0x667e043fU, + 0xc3bb073cU, + 0x4d608bbfU, + 0xf80ec1ffU, + 0x6c10e79cU, + 0xc2035c4dU, + 0xdb2602a6U, + 0xd3af0b18U, + 0x356681e7U, + 0xd431cef8U, + 0xce2e6ef5U, + 0xc9269f32U, + 0x508e667bU, + 0x7af692b5U, + 0xcb766c53U, + 0xd532942aU, + 0x3a88679cU, + 0xd5c99c4dU, + 0x26c8e2a6U, + 0xc1575b18U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x90000000U, + 0xe8000000U, + 0xc000000U, + 0xbe000000U, + 0x2f000000U, + 0x73800000U, + 0x12400000U, + 0x3a600000U, + 0x16700000U, + 0x58680000U, + 0xf4c0000U, + 0x98f60000U, + 0x38b50000U, + 0x93fa8000U, + 0xd9014000U, + 0xe0b5a000U, + 0xc7dd3000U, + 0x7335a800U, + 0x59d3400U, + 0xc155ae00U, + 0x8fed3d00U, + 0xcf3da080U, + 0xa3a13dc0U, + 0x9a4bab60U, + 0xa6543f30U, + 0x40512c58U, + 0x7b657e14U, + 0xc2ec8ffeU, + 0xa5844f73U, + 0x71472278U, + 0x97e07b87U, + 0xbb1e05f7U, + 0xf9b9050cU, + 0x76c8c48U, + 0x44c4455cU, + 0xea72123U, + 0x20d07211U, + 0xfc960c48U, + 0xd1c5055cU, + 0x30128123U, + 0x580d4211U, + 0x1423a448U, + 0xca18315cU, + 0x75272f23U, + 0xee907f11U, + 0xf0f604c8U, + 0x74b50c9cU, + 0x4dfa8443U, + 0x66014021U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0x90000000U, + 0x8000000U, + 0x74000000U, + 0xea000000U, + 0x15000000U, + 0xdc800000U, + 0x40c00000U, + 0xe8e00000U, + 0xccd00000U, + 0xed80000U, + 0xfffc0000U, + 0xc17e0000U, + 0xe0a30000U, + 0x3ef98000U, + 0xa7ecc000U, + 0x9d63e000U, + 0xee9fd000U, + 0xc9e3e800U, + 0x1a5fdc00U, + 0xeb03ea00U, + 0x538fd500U, + 0x315bea80U, + 0x98b3d240U, + 0xf2c5e420U, + 0xa1c0d310U, + 0x1e6469e8U, + 0xb910171cU, + 0xaa998766U, + 0x7bfccbd1U, + 0x535bef8bU, + 0x39b3d82eU, + 0xe445e99cU, + 0x6400d324U, + 0x220468f3U, + 0x4100171aU, + 0xa6a18f05U, + 0x5dd0cfe3U, + 0x407de8f3U, + 0x662cd71aU, + 0xf3226f05U, + 0xef9f1fe3U, + 0x8f4600f3U, + 0xf78f0b1aU, + 0x335f8505U, + 0x49b3cae3U, + 0x5c646a73U, + 0x8810195aU, + 0xb4198125U, + 0xca3cc9f3U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0xd0000000U, + 0xa8000000U, + 0x9c000000U, + 0xfa000000U, + 0xd3000000U, + 0xdb800000U, + 0xb4c00000U, + 0x88e00000U, + 0x62d00000U, + 0x39d80000U, + 0xae6c0000U, + 0x48860000U, + 0x8f410000U, + 0xcc2f8000U, + 0x92034000U, + 0x6f39a000U, + 0xf1829000U, + 0xcfd9a800U, + 0xcf529c00U, + 0x2c01aa00U, + 0x623e9100U, + 0x1707a080U, + 0xc5bf98c0U, + 0xa9c82f20U, + 0xe66cd5f0U, + 0x24a98298U, + 0xd424ebcU, + 0x2b162216U, + 0x2f81d491U, + 0xf2e00b8bU, + 0x71d00f77U, + 0xc2580f83U, + 0xcaac0f43U, + 0x68660461U, + 0x71910f93U, + 0xff78a0aU, + 0xef6f4f37U, + 0xfc3fac61U, + 0xca039393U, + 0x8b16200aU, + 0x3f81de37U, + 0x7ae00ce1U, + 0x3dd00b53U, + 0x90580f2aU, + 0x85ac0bc7U, + 0x49e60e79U, + 0x165105efU, + 0x5c978d3cU, + 0x397f4f56U, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0x30000000U, + 0x88000000U, + 0xfc000000U, + 0xe6000000U, + 0x59000000U, + 0x18800000U, + 0xc1400000U, + 0x95600000U, + 0x1f700000U, + 0xf8480000U, + 0xfdc40000U, + 0xb6260000U, + 0xa1390000U, + 0x8c908000U, + 0xeb7ec000U, + 0xa254e000U, + 0xa2d6b000U, + 0xc7b4e800U, + 0xf0e6b400U, + 0x249ce600U, + 0x8752b700U, + 0x1c72ee80U, + 0xbfefb8c0U, + 0x4d2460e0U, + 0x72987d50U, + 0x16480168U, + 0x18c40144U, + 0xa8a6003eU, + 0x97904b3U, + 0x897081baU, + 0xc94ec86fU, + 0x297ce258U, + 0x1962bdbcU, + 0x915aecf1U, + 0x6d5bb29bU, + 0x8b4a695cU, + 0xd26577a2U, + 0xcafe84f1U, + 0xb83c69bU, + 0x9ee26f5cU, + 0x819170a2U, + 0x79f08271U, + 0x840eca5bU, + 0x321ce9bcU, + 0x9312baf2U, + 0x1f92ed99U, + 0xf4dfb3dfU, + 0x568c6962U, + 0xf46c7311U, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0xd0000000U, + 0x58000000U, + 0x84000000U, + 0xca000000U, + 0x6b000000U, + 0x1f800000U, + 0x12400000U, + 0x98600000U, + 0xd3500000U, + 0xfce80000U, + 0x669c0000U, + 0x22ea0000U, + 0xbf9b0000U, + 0xe2418000U, + 0xf0474000U, + 0xdf6aa000U, + 0xead53000U, + 0x4382a800U, + 0x9c493c00U, + 0xd968a600U, + 0x77d23100U, + 0xa9292380U, + 0x68957940U, + 0xa3c38f20U, + 0xfb004ff0U, + 0x67a126d8U, + 0xa65972d4U, + 0xda41895eU, + 0x64474ee1U, + 0xad6aa510U, + 0xd5d531c8U, + 0xce02a81eU, + 0x610935c1U, + 0x9488a0e2U, + 0xddc23811U, + 0xd2212c4aU, + 0xcf19745dU, + 0xe5a18362U, + 0xf1574151U, + 0x5be2a36aU, + 0x8f193badU, + 0xc580a5baU, + 0xc14e3385U, + 0xd3c32a34U, + 0x530e754cU, + 0x8b8200aaU, + 0x6047024dU, + 0xa74b822aU, + 0x5ecc408dU, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0x50000000U, + 0x68000000U, + 0xe4000000U, + 0x7e000000U, + 0x87000000U, + 0xda800000U, + 0x2c400000U, + 0x62600000U, + 0x3d700000U, + 0x9bd80000U, + 0x158c0000U, + 0x2f60000U, + 0xf83f0000U, + 0x6c388000U, + 0x6a354000U, + 0xc125e000U, + 0xd199f000U, + 0x6cfde800U, + 0xb715f400U, + 0x28be200U, + 0x506af100U, + 0xc0536480U, + 0x486fbf40U, + 0x5c4e8360U, + 0x1a4a4730U, + 0x117d66c8U, + 0x51dcb1f4U, + 0x848002eeU, + 0xbb400323U, + 0x70e00fd3U, + 0xa5300d3bU, + 0xefb8049cU, + 0x4bfc0188U, + 0x3dae0e97U, + 0x46f303dfU, + 0xd62e8eebU, + 0x833a47a5U, + 0x54a56a17U, + 0x9350bc9fU, + 0x34f60d8bU, + 0x8b3f0095U, + 0xb88cdfU, + 0x75754d6bU, + 0x6fc5ef65U, + 0xa3a9f3b6U, + 0x31c5eb0cU, + 0x34a9f450U, + 0x2345e9f9U, + 0xace9f33eU, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x70000000U, + 0xd8000000U, + 0xfc000000U, + 0xba000000U, + 0x2f000000U, + 0xd0800000U, + 0x78c00000U, + 0xaae00000U, + 0x81f00000U, + 0x7680000U, + 0x42b40000U, + 0x33e20000U, + 0x5c6d0000U, + 0x1c0b8000U, + 0x8a244000U, + 0x972a6000U, + 0x5ca55000U, + 0x1ac26800U, + 0x79d15400U, + 0xeb406e00U, + 0x508c5300U, + 0x38c3e380U, + 0xcaec1cc0U, + 0xf1e38820U, + 0xdf504e30U, + 0xbea86d28U, + 0x89f85dbcU, + 0x7341e986U, + 0xccb116a3U, + 0xf2e00270U, + 0x3df00a48U, + 0xdd680f6eU, + 0x1db406beU, + 0x3b620e06U, + 0xd8ad0c60U, + 0xceb8d52U, + 0x24d449f9U, + 0x40c26d86U, + 0x66d150a0U, + 0x83c06572U, + 0xa44c57c9U, + 0xf023e8aeU, + 0x981c191cU, + 0x9c0b82f4U, + 0xca24426aU, + 0xf72a615eU, + 0x2ca55b94U, + 0xc2c26bbaU, + 0x85d159e4U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x10000000U, + 0xb8000000U, + 0x74000000U, + 0x2000000U, + 0xbf000000U, + 0x18800000U, + 0x5c00000U, + 0x5be00000U, + 0x6af00000U, + 0xdb680000U, + 0x6b2c0000U, + 0x2aa20000U, + 0x72ef0000U, + 0x9f578000U, + 0xa12c4000U, + 0x49bc6000U, + 0xa4741000U, + 0x53b46800U, + 0x5f681400U, + 0x811e6e00U, + 0x399b1500U, + 0xc63e580U, + 0x9f845240U, + 0x294205a0U, + 0x3c1f09b0U, + 0x9e3f8c28U, + 0x11004decU, + 0xc19e6f96U, + 0x185b1a43U, + 0x8d83e1a0U, + 0x2e745fb1U, + 0x50aa052aU, + 0x99f3026fU, + 0xf5fd8ed7U, + 0xb3df4b61U, + 0xc6c1e9d2U, + 0xbd6b5d79U, + 0x6e158357U, + 0xf9334d21U, + 0x6d83e272U, + 0x7e7451c9U, + 0x88aa02ffU, + 0xfdf3068dU, + 0x4ffd8644U, + 0x78df473aU, + 0xdc41e2f7U, + 0x7ab5290U, + 0x2d758758U, + 0x960343a6U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0xf0000000U, + 0xc8000000U, + 0xdc000000U, + 0x12000000U, + 0x65000000U, + 0x6d800000U, + 0x97c00000U, + 0xc1e00000U, + 0x72f00000U, + 0xec680000U, + 0x85140000U, + 0xdd860000U, + 0x3fe10000U, + 0xeddd8000U, + 0xa8e8c000U, + 0x5559a000U, + 0xfab75000U, + 0x2f51a800U, + 0x93935400U, + 0x8dfae00U, + 0x85565b00U, + 0xa28c2280U, + 0xcb7b96c0U, + 0x958603a0U, + 0xa3e10090U, + 0x9fdd8d78U, + 0x3de8cdecU, + 0xf0d9a766U, + 0xb17755c3U, + 0xfcb1ad20U, + 0x84635452U, + 0x8937a7d8U, + 0x97825efcU, + 0xbeea235dU, + 0x866a90ceU, + 0x94338b36U, + 0x8e1dce1aU, + 0x170229ddU, + 0xf8be920eU, + 0x32558696U, + 0x8a0cc58aU, + 0xa137ae25U, + 0xfb825d22U, + 0x4ea2c50U, + 0xcf6a9bd9U, + 0x23b384fdU, + 0xa0ddc65cU, + 0xa962214eU, + 0x788e9b76U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0x70000000U, + 0x38000000U, + 0x4c000000U, + 0x66000000U, + 0xfb000000U, + 0xc4800000U, + 0x4cc00000U, + 0x47e00000U, + 0x7b500000U, + 0x5b980000U, + 0xa640000U, + 0xb23a0000U, + 0x61310000U, + 0x418c8000U, + 0x4f684000U, + 0x91b86000U, + 0xc77fd000U, + 0xc5826800U, + 0x9d4edc00U, + 0x608eea00U, + 0xeee69b00U, + 0x8ed68980U, + 0x1ec94fc0U, + 0x76cce7e0U, + 0x72e39c70U, + 0x60f801a8U, + 0xb1f403bcU, + 0xe8420c56U, + 0x9b050bc9U, + 0x54ae8e0fU, + 0x24fd471fU, + 0x43eeec84U, + 0x69769eb0U, + 0x8aae8ecaU, + 0x53fd4a8fU, + 0xc16ee05eU, + 0xaeb69e27U, + 0x31ce8f62U, + 0x286d4933U, + 0xbb16ec08U, + 0x248295eeU, + 0x1cec816dU, + 0xff84e2cU, + 0xf40608cU, + 0x718bdb5eU, + 0x974067a7U, + 0x8d8bd8a3U, + 0xe9406ad2U, + 0x4a8bde79U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0x30000000U, + 0xc8000000U, + 0xdc000000U, + 0x22000000U, + 0x4b000000U, + 0xa8800000U, + 0xc00000U, + 0xbfe00000U, + 0x19500000U, + 0xd8880000U, + 0x68e40000U, + 0x33c60000U, + 0xc3590000U, + 0x87858000U, + 0x3e494000U, + 0x5a366000U, + 0x9f01d000U, + 0x36906800U, + 0x59c8dc00U, + 0x947dee00U, + 0x6d359f00U, + 0x45858280U, + 0x854942c0U, + 0x5ab668a0U, + 0x73c1da70U, + 0x63706c28U, + 0xd798d57cU, + 0xc675ed56U, + 0x4e119a29U, + 0x61238e7eU, + 0x5f8045d7U, + 0xba5bedeaU, + 0x3c3c915eU, + 0xd2080ae4U, + 0xe3240c23U, + 0x44a60bb1U, + 0xeac90008U, + 0x28ed8eccU, + 0x93fd455fU, + 0x937868e7U, + 0x7fbcd521U, + 0x2a53ea32U, + 0xa4189e48U, + 0xf62e03adU, + 0xd52d010fU, + 0xf1ab8e7eU, + 0x2b6445d7U, + 0xcb9dedeaU, + 0x8465915eU, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0xd0000000U, + 0xc8000000U, + 0x44000000U, + 0x82000000U, + 0x2d000000U, + 0xef800000U, + 0x67400000U, + 0x48600000U, + 0xcaf00000U, + 0x62380000U, + 0x9d2c0000U, + 0xd78e0000U, + 0x3b570000U, + 0x46638000U, + 0x21cac000U, + 0x22a82000U, + 0x38c57000U, + 0x171e2800U, + 0xdebe7400U, + 0xa6f3aa00U, + 0x1423b900U, + 0xa380680U, + 0x492c0d40U, + 0xbd8e06a0U, + 0x82570b90U, + 0xe3e38a58U, + 0x2f8ac0e4U, + 0x748225eU, + 0xb875780bU, + 0xd2c6245dU, + 0xee227709U, + 0x5b25a5ddU, + 0x78a8bfc8U, + 0xf9ed89bdU, + 0xce9dc53bU, + 0xecbad94U, + 0xa00fb9b5U, + 0x90360565U, + 0xe83b089fU, + 0x940d896aU, + 0x4a2dca2eU, + 0x6913ab60U, + 0x6d93bf72U, + 0x4a600ee9U, + 0xa7f00dedU, + 0xadb80680U, + 0x2a6c0d40U, + 0x57ee06a0U, + 0xb5a70b90U, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0x70000000U, + 0xd8000000U, + 0xc4000000U, + 0xc6000000U, + 0xa1000000U, + 0x6a800000U, + 0xb5c00000U, + 0xcae00000U, + 0x65700000U, + 0xec080000U, + 0x9a340000U, + 0x43120000U, + 0x7d9b0000U, + 0xa6768000U, + 0xd188c000U, + 0xdc536000U, + 0xe2879000U, + 0x79c96800U, + 0x80e89400U, + 0x6e4de600U, + 0xfd8b5300U, + 0xe6600b80U, + 0x31b00f40U, + 0xac680fe0U, + 0x3a840150U, + 0xbdfa0748U, + 0x46df0d0cU, + 0xcf6c8666U, + 0x9727c71bU, + 0x53b7e4c6U, + 0xfb5454a8U, + 0xc90c8e5fU, + 0xd697cc2dU, + 0x27dfee96U, + 0x5d05462U, + 0xb2f68613U, + 0x3148cca9U, + 0x8233625eU, + 0x2737962eU, + 0x2ba16f95U, + 0xaf6c9ae2U, + 0xa737e9d0U, + 0x6b945b8aU, + 0x4f6c81acU, + 0xd727c2d4U, + 0xb3b7e800U, + 0x8b545400U, + 0x110c8600U, + 0x1297c300U, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0x10000000U, + 0xb8000000U, + 0x14000000U, + 0x56000000U, + 0x29000000U, + 0x7d800000U, + 0xd6400000U, + 0xe1600000U, + 0x69d00000U, + 0x88380000U, + 0x7c1c0000U, + 0x5a020000U, + 0x7b2f0000U, + 0xbabe8000U, + 0x96dac000U, + 0x1ca0a000U, + 0x77d0b000U, + 0x7d1aa800U, + 0x4ba3bc00U, + 0x4f462200U, + 0x34c67d00U, + 0x13800980U, + 0x2b400c40U, + 0x6ae004e0U, + 0x869002d0U, + 0xacd80938U, + 0xd78c0eb4U, + 0x655a0caeU, + 0x47e30969U, + 0x1504814dU, + 0x47a9cc38U, + 0x1d7c2335U, + 0xf3f576eeU, + 0x533c8e88U, + 0xd6b5c51eU, + 0x74fe25c1U, + 0x739a78a2U, + 0x9b620e30U, + 0xc2ff07eaU, + 0x2a868d8fU, + 0xeec6c31bU, + 0xa8a2ae45U, + 0x31ffb966U, + 0xec242014U, + 0x2239719cU, + 0xcf068000U, + 0xfc86c000U, + 0x7c2a000U, + 0x752fb000U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0x70000000U, + 0x58000000U, + 0xf4000000U, + 0x4e000000U, + 0x57000000U, + 0xbf800000U, + 0xd0c00000U, + 0xf5e00000U, + 0x4f500000U, + 0xf5080000U, + 0xf2b40000U, + 0x66520000U, + 0xe5970000U, + 0x79c88000U, + 0x25434000U, + 0xa425a000U, + 0xc6301000U, + 0xeb1fa800U, + 0x2d831c00U, + 0x65ed2e00U, + 0xa7735b00U, + 0x393a0b80U, + 0x38b30440U, + 0x27728760U, + 0xf9304d30U, + 0x58b72a98U, + 0x5750573cU, + 0xa1208846U, + 0xaca74089U, + 0x197fadf6U, + 0xf61311d2U, + 0x13052bebU, + 0xc99756c7U, + 0x3e00449U, + 0x5c500d56U, + 0x3c8803c3U, + 0xf1740522U, + 0x3a320d51U, + 0xd907022aU, + 0x88a082e5U, + 0x1f67439bU, + 0x7d1fa9bfU, + 0x4e831c84U, + 0xf46d2828U, + 0x50b353e5U, + 0x2b5a0918U, + 0x53230f7cU, + 0x699a8126U, + 0x13d446b9U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0xf0000000U, + 0x68000000U, + 0x1c000000U, + 0x3a000000U, + 0x7000000U, + 0xfc800000U, + 0xe6c00000U, + 0xd2600000U, + 0xf8b00000U, + 0xe8c80000U, + 0x93440000U, + 0xc9160000U, + 0x9d950000U, + 0x476d8000U, + 0x3f094000U, + 0x58b3e000U, + 0x38d71000U, + 0x6b5e6800U, + 0x4d1e5400U, + 0xd38d8e00U, + 0x66794b00U, + 0xfe9be080U, + 0x45e31ec0U, + 0xf0e06d20U, + 0xa77f55b0U, + 0x8f3e0268U, + 0x50a1051cU, + 0xd4d3826eU, + 0x39684f27U, + 0x5600668aU, + 0x150f570fU, + 0x87960675U, + 0xd0550af1U, + 0x5b8d8c09U, + 0xca7944ceU, + 0xcc9be4d7U, + 0xaee31702U, + 0x5e606a83U, + 0x5abf53c1U, + 0x9bde02a2U, + 0x49d10df3U, + 0x12fb8e8aU, + 0xb45c430fU, + 0xa5be6875U, + 0xe36e51f1U, + 0xe1258489U, + 0xe18d4e0eU, + 0x8d45e7f7U, + 0x503219b2U, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0x10000000U, + 0x28000000U, + 0x7c000000U, + 0x5e000000U, + 0x9d000000U, + 0xde800000U, + 0x7d400000U, + 0xfbe00000U, + 0x2900000U, + 0x13480000U, + 0xbedc0000U, + 0x981e0000U, + 0x641d0000U, + 0xfa348000U, + 0x873ec000U, + 0x4985e000U, + 0x1ce07000U, + 0x9b316800U, + 0xc79ebc00U, + 0x49d48600U, + 0x29aecd00U, + 0xcccdec80U, + 0x533c76c0U, + 0xabaf6f60U, + 0x3fc3b210U, + 0xc8800e08U, + 0x4c400304U, + 0xb3600ed6U, + 0x8ed0013dU, + 0x402809eaU, + 0x200c05d4U, + 0xf03600bdU, + 0x381103a8U, + 0x54028474U, + 0x222fc9cfU, + 0xc30765b1U, + 0x438fb279U, + 0xa3d60d9eU, + 0x86810c1bU, + 0xf94a850cU, + 0x11f3c1d1U, + 0xad9961eaU, + 0x26d2b9d4U, + 0xfc0286bdU, + 0x9e2fcea8U, + 0x7d0768f4U, + 0xce8fbf0fU, + 0x55560ad1U, + 0x87c10069U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x70000000U, + 0x8000000U, + 0xac000000U, + 0x12000000U, + 0x93000000U, + 0x39800000U, + 0x97400000U, + 0x82e00000U, + 0x47b00000U, + 0x36480000U, + 0x38640000U, + 0x916e0000U, + 0x87c10000U, + 0x431b8000U, + 0x61b64000U, + 0x2347a000U, + 0x44fa3000U, + 0x62bc2800U, + 0x22fc7400U, + 0x17b38e00U, + 0x2e624300U, + 0xec61a680U, + 0x275f3dc0U, + 0xaac9a9a0U, + 0xfb8b37f0U, + 0x5c6facb8U, + 0xf6e3344U, + 0x16fa2536U, + 0x91a974cfU, + 0x6b6e04eaU, + 0x88c1070dU, + 0x9b8e4aU, + 0xb9f6467eU, + 0x8227a731U, + 0xab0a3098U, + 0xfd9427f7U, + 0x596871edU, + 0xbf58bdbU, + 0x41374395U, + 0x8abc27bdU, + 0xbefc7493U, + 0x6db38a6aU, + 0x61624ecdU, + 0xcfe1a9eaU, + 0x8f1f328eU, + 0x3a9ad09U, + 0xb87b3e1cU, + 0xd147ab61U, + 0xe7fa32d2U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0xd0000000U, + 0x28000000U, + 0x4000000U, + 0xee000000U, + 0xd3000000U, + 0xe3800000U, + 0xfa400000U, + 0x65e00000U, + 0x9d900000U, + 0xa1680000U, + 0x324c0000U, + 0x71ee0000U, + 0x3b830000U, + 0xa6668000U, + 0x17c94000U, + 0x5ca32000U, + 0x53def000U, + 0x12a5a800U, + 0x30c7bc00U, + 0x90e8e00U, + 0xe6854100U, + 0x86cd2480U, + 0x461dfd40U, + 0x17232460U, + 0x6d9ef170U, + 0xf945aed8U, + 0xae57b394U, + 0x63e684e6U, + 0x2a89473dU, + 0x7cc32628U, + 0x330efa8dU, + 0xf3ada750U, + 0xb25bbe48U, + 0xb1e885feU, + 0x5b9a4889U, + 0x764da95cU, + 0x3fcbbc58U, + 0x58808bd6U, + 0xbdd64e04U, + 0xc1a3a00cU, + 0xd348b310U, + 0xf36602a8U, + 0x835f07cdU, + 0x1b608330U, + 0xe7464f38U, + 0x254bab26U, + 0x1c44bb1dU, + 0xc2e80dbaU, + 0x80c0b65U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x50000000U, + 0x68000000U, + 0x4c000000U, + 0x6000000U, + 0xf3000000U, + 0x25800000U, + 0xd2c00000U, + 0x51600000U, + 0xb00000U, + 0x2c480000U, + 0x8a2c0000U, + 0xd51e0000U, + 0xe6910000U, + 0xcf468000U, + 0xa7874000U, + 0x1bf6a000U, + 0xd9c45000U, + 0x70f82800U, + 0xa86f1400U, + 0xb0108e00U, + 0x783a4100U, + 0x442e2080U, + 0x1a1211c0U, + 0x9d280ee0U, + 0x9a9c0ff0U, + 0xf1560438U, + 0x70bd071cU, + 0x745881ceU, + 0xfe1649e7U, + 0xf73027b2U, + 0x5f831799U, + 0x1fee85cdU, + 0xa3db4fe7U, + 0xbdc0a2b3U, + 0x5ac9511aU, + 0xd68a10fU, + 0xe955f86U, + 0xc35ea581U, + 0xc1985743U, + 0xb8ce2a22U, + 0x94621f91U, + 0xee00030aU, + 0xff000145U, + 0x43800ae3U, + 0x71c009f0U, + 0x1ce00139U, + 0x9e70019fU, + 0x7b28050cU, + 0x799c0986U, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0x70000000U, + 0x8000000U, + 0x4c000000U, + 0xb6000000U, + 0xf9000000U, + 0xb2800000U, + 0x93400000U, + 0x87e00000U, + 0x55900000U, + 0xc4c80000U, + 0x88040000U, + 0x8c2e0000U, + 0x56290000U, + 0x89228000U, + 0xba91c000U, + 0xdf41e000U, + 0x31c5f000U, + 0xacab6800U, + 0x76503c00U, + 0x1b448600U, + 0xbfccb00U, + 0x3ad6e80U, + 0x4ded33c0U, + 0x328003e0U, + 0x53400750U, + 0x67e00e48U, + 0x259001a4U, + 0xccc803d6U, + 0xc40408adU, + 0x3a2e0f52U, + 0xaf290249U, + 0x3ba28fa6U, + 0x29d1c4d6U, + 0x58a1e82eU, + 0x6455fb92U, + 0x6863612aU, + 0xfe543c35U, + 0x976a89fcU, + 0x5dd5ca1bU, + 0x8a8fed6cU, + 0xf77cffb3U, + 0xedc1ef9aU, + 0x6285f02dU, + 0xcb4b6f90U, + 0x53c03b2bU, + 0xd78c8134U, + 0xcff8c47fU, + 0x39836b5aU, + 0xe2c43b4eU, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0x90000000U, + 0x8000000U, + 0x64000000U, + 0xda000000U, + 0xc5000000U, + 0x8b800000U, + 0x66c00000U, + 0x9f600000U, + 0x88b00000U, + 0x6e580000U, + 0xb10c0000U, + 0x19b60000U, + 0xe7d30000U, + 0x5eeb8000U, + 0x2375c000U, + 0x1eb2a000U, + 0x8571d000U, + 0x2d812800U, + 0x55c81400U, + 0x4fe58a00U, + 0xeadacd00U, + 0xd1572280U, + 0x2fab1f40U, + 0xdcd60520U, + 0xea630e10U, + 0x9b338718U, + 0x64b9c33cU, + 0x9064a1ceU, + 0x8e12d8a7U, + 0xc732aab3U, + 0x2b1dbcbU, + 0xc36125c6U, + 0xeeb81e01U, + 0x3d5d8703U, + 0xd1a6cf81U, + 0xe3d92dc0U, + 0x34c41260U, + 0x7e538f30U, + 0xf909cb0aU, + 0x5dbcad26U, + 0xadded271U, + 0x93e4a72bU, + 0xccd2d3b7U, + 0xa252ab28U, + 0xdf01d5b6U, + 0x2eb92028U, + 0x5d741c36U, + 0x618b86e8U, + 0x7bc5c7d6U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0xf0000000U, + 0xb8000000U, + 0xe4000000U, + 0x76000000U, + 0x87000000U, + 0x5f800000U, + 0x12c00000U, + 0xf3600000U, + 0xfa900000U, + 0xe4780000U, + 0xd140000U, + 0x7aa20000U, + 0x245f0000U, + 0x2d388000U, + 0x8aa24000U, + 0x9c472000U, + 0xc912d000U, + 0xfc87a800U, + 0x1b649c00U, + 0x96828a00U, + 0xee794300U, + 0xe825a980U, + 0x6c3b9140U, + 0xa3a04e0U, + 0xe51b0a30U, + 0x16828098U, + 0x2e79465cU, + 0xc825a14eU, + 0x9c3b90c5U, + 0xb23a0e11U, + 0x11b0b08U, + 0x60828e15U, + 0xa9794cb8U, + 0x97a5a1cfU, + 0x8efb9b06U, + 0x415a0a30U, + 0xfb8b009aU, + 0x84fa865eU, + 0xa46d414eU, + 0xed07a0c5U, + 0xaaa49612U, + 0x6c628f09U, + 0x71294014U, + 0x18bda1bbU, + 0x6d7f954dU, + 0x118006c6U, + 0xb1c00712U, + 0xfae0018bU, + 0x9f5006d7U, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0xf0000000U, + 0xe8000000U, + 0x54000000U, + 0x4e000000U, + 0xfd000000U, + 0xbf800000U, + 0x57400000U, + 0x32e00000U, + 0x36b00000U, + 0x16f80000U, + 0xd0b40000U, + 0x1fd60000U, + 0xd1270000U, + 0x5daa8000U, + 0x87ec000U, + 0x7259a000U, + 0xd163b000U, + 0x2beb2800U, + 0x8f197400U, + 0x189c8200U, + 0xfbe9cb00U, + 0xd70b2480U, + 0x4a97a40U, + 0x11e48260U, + 0x8c1dce90U, + 0x123d2518U, + 0xb73e75a4U, + 0x14b60e56U, + 0xa9d7075fU, + 0xc0328ca1U, + 0xe03aceb0U, + 0x5017a5eaU, + 0x1800b02dU, + 0xbc0fabe9U, + 0x1a04b52eU, + 0xb321aa68U, + 0x4297beeeU, + 0xe8dd2bc8U, + 0x658e75deU, + 0x44e0fe2U, + 0x20630b53U, + 0xc66481b9U, + 0xcf5dcf14U, + 0xcedd29bcU, + 0x8c8e7c72U, + 0x55ce03c8U, + 0x7a2301deU, + 0xa3048de2U, + 0xfaadc053U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0x50000000U, + 0x98000000U, + 0xb4000000U, + 0x7a000000U, + 0x97000000U, + 0x63800000U, + 0xf5400000U, + 0x70e00000U, + 0xd4900000U, + 0x66e80000U, + 0x2dac0000U, + 0xd8420000U, + 0xe4730000U, + 0x12778000U, + 0x7b554000U, + 0x3dcc2000U, + 0x10013000U, + 0x3833a800U, + 0x84287c00U, + 0xb2358e00U, + 0xbb264900U, + 0xadbbaf80U, + 0x18547e40U, + 0x847f8620U, + 0x42694e30U, + 0xe3662798U, + 0x89de3324U, + 0x6a0620b6U, + 0xaf0e355dU, + 0xe78e28c0U, + 0x47723fe3U, + 0xcbc42a52U, + 0x793d3189U, + 0x7e99ab8dU, + 0xa9f77f8bU, + 0x9a00028dU, + 0x700000bU, + 0x9b8004cdU, + 0x11400228U, + 0x92e000ffU, + 0xf79006b2U, + 0x7f680f58U, + 0x4fec0cc7U, + 0xcb220ae4U, + 0xc5a304d4U, + 0x47f834dU, + 0x82694068U, + 0x836628dfU, + 0xd9de3182U, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0xd0000000U, + 0x48000000U, + 0xf4000000U, + 0xd6000000U, + 0x8d000000U, + 0x46800000U, + 0x400000U, + 0x3be00000U, + 0x25100000U, + 0x2980000U, + 0xee5c0000U, + 0xdac60000U, + 0x9bf0000U, + 0xadd08000U, + 0xc82ac000U, + 0x3424e000U, + 0x7616b000U, + 0x5d326800U, + 0xe837c00U, + 0xf4460200U, + 0xedff0100U, + 0xa8308e80U, + 0x443ac240U, + 0xee3ce9e0U, + 0xe10ab790U, + 0x2c946108U, + 0xaf6c74d4U, + 0x266e85d6U, + 0xeed9c355U, + 0x7faa6d17U, + 0xf0df7ef4U, + 0xc6800c65U, + 0xc04005eeU, + 0x9be00479U, + 0xf51009cdU, + 0x4a980ac9U, + 0x1a5c06f6U, + 0xcc60866U, + 0x84bf03edU, + 0xeb50837aU, + 0xc86ac04dU, + 0xfc4e108U, + 0x5306b4d4U, + 0x5faa65d6U, + 0xe0df7355U, + 0x2e800517U, + 0xe44002f4U, + 0x5e00e65U, + 0x8c1004eeU, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0xb0000000U, + 0xd8000000U, + 0x64000000U, + 0xaa000000U, + 0x69000000U, + 0x9a800000U, + 0xf4c00000U, + 0x9f600000U, + 0x75100000U, + 0x24b80000U, + 0xcfe40000U, + 0xb8fa0000U, + 0x697f0000U, + 0x422b8000U, + 0x1524c000U, + 0x74aee000U, + 0x87d89000U, + 0xb4ff6800U, + 0x7f435c00U, + 0xe51a0a00U, + 0x4caf0700U, + 0x73f38f80U, + 0x76d0cd40U, + 0xaa6ce720U, + 0xb18390d0U, + 0x7b4eeb08U, + 0x1f0895dcU, + 0x6da76a5eU, + 0xe5775f1dU, + 0x94380c3dU, + 0x92240aefU, + 0x9d1a0ce4U, + 0x58af01b9U, + 0x21f38125U, + 0xcbd0c859U, + 0x42ece996U, + 0x484397a2U, + 0xd4aee610U, + 0xf7d8976aU, + 0x4cff6f2cU, + 0xab435906U, + 0x971a0308U, + 0x41af09dcU, + 0x4373805eU, + 0xeb10c81dU, + 0xaf8cebbdU, + 0x30539bafU, + 0xc096e1c4U, + 0xa5fc9669U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0xb0000000U, + 0x98000000U, + 0x1c000000U, + 0xe6000000U, + 0xdf000000U, + 0xae800000U, + 0xac00000U, + 0x7f600000U, + 0xe1100000U, + 0xcda80000U, + 0x92740000U, + 0x82aa0000U, + 0xb4d10000U, + 0xdc468000U, + 0x19b24000U, + 0x80526000U, + 0x5fba1000U, + 0x8f5ee800U, + 0xd9095c00U, + 0x1820e00U, + 0x5c650700U, + 0xd98c8f80U, + 0xe0734ac0U, + 0xefbce7e0U, + 0x177c5c30U, + 0xc5268c88U, + 0xe7a2415cU, + 0x837a6b1eU, + 0x770e15bdU, + 0xea94eaacU, + 0x90c85af6U, + 0xf66c8490U, + 0x8a3489aU, + 0x75f4e086U, + 0x1d850baU, + 0xc3c48dd7U, + 0x36d74a41U, + 0x895eeea2U, + 0x76095710U, + 0x57020c59U, + 0xfaa50066U, + 0xd8ec8308U, + 0xc2634b9cU, + 0x6a94ecfeU, + 0x50c8598dU, + 0x966c8e24U, + 0xb8a347aaU, + 0xedf4e18eU, + 0x1dd85a27U, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0x90000000U, + 0xa8000000U, + 0x9c000000U, + 0xf6000000U, + 0x15000000U, + 0x89800000U, + 0xe7c00000U, + 0x75600000U, + 0x9a300000U, + 0x9b280000U, + 0x489c0000U, + 0x944e0000U, + 0xd9ad0000U, + 0xefca8000U, + 0x9960c000U, + 0x54332000U, + 0xba199000U, + 0xab1fa800U, + 0x90885400U, + 0x30480600U, + 0x1bac0d00U, + 0x90e60480U, + 0xf3f100c0U, + 0x2f6485e0U, + 0xa13dc890U, + 0xa3b1a7f8U, + 0xe4d55f2cU, + 0x79ca87ceU, + 0x5c60c3dfU, + 0x95b320e4U, + 0x51d9942aU, + 0x807fa276U, + 0x83b854d3U, + 0xd4e00ed8U, + 0xa1f0085cU, + 0xf84807a7U, + 0x57ac0c8bU, + 0x2ee60d44U, + 0xeaf1039aU, + 0xf8e487ffU, + 0xcffdc317U, + 0xa951ac80U, + 0x8c2554c0U, + 0x1e0283e0U, + 0x690cc590U, + 0xefb52378U, + 0x5ad89fecU, + 0x60d3222eU, + 0x8be99b4fU, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0xd0000000U, + 0x78000000U, + 0xa4000000U, + 0x5e000000U, + 0xf3000000U, + 0x97800000U, + 0x6d400000U, + 0x4be00000U, + 0x18300000U, + 0x34280000U, + 0xc60c0000U, + 0x872a0000U, + 0xb1b70000U, + 0x3a7e8000U, + 0x824b4000U, + 0x86692000U, + 0xe876b000U, + 0xb375a800U, + 0xf8f6f400U, + 0x6f800600U, + 0x89400900U, + 0xf5e00980U, + 0x3b300740U, + 0xdba80260U, + 0xf4c0570U, + 0x92ca0c98U, + 0x5a8709e4U, + 0x99d68dc6U, + 0x29074757U, + 0x4aa327fcU, + 0x41f1bde3U, + 0xbd232330U, + 0xbcb1b37bU, + 0x6ec32dd5U, + 0xd081ba3fU, + 0x7ceb2a41U, + 0x418db5e3U, + 0x32412731U, + 0x6e7abd78U, + 0xd45fa0d7U, + 0x9941fdbfU, + 0x2dfe8000U, + 0xaf0b4000U, + 0x2d892000U, + 0x2046b000U, + 0xff5da800U, + 0x9afaf400U, + 0xb6aa0600U, + 0xcbf70900U, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0x70000000U, + 0x38000000U, + 0xc000000U, + 0x1e000000U, + 0x63000000U, + 0xcc800000U, + 0xb3c00000U, + 0xc6600000U, + 0xb0300000U, + 0x58180000U, + 0x5c140000U, + 0x56120000U, + 0x570d0000U, + 0xde848000U, + 0xcedf4000U, + 0x69cbe000U, + 0xcf6fd000U, + 0x2da56800U, + 0x2a599400U, + 0xbe000a00U, + 0x53000300U, + 0xd4800180U, + 0xcfc007c0U, + 0xe0600260U, + 0xdf3006f0U, + 0x8a980d28U, + 0x8cd40d0cU, + 0x5cf200aeU, + 0x54fd003fU, + 0x40fc89e7U, + 0x22fb4ec2U, + 0x67c1e0e0U, + 0xc476d0b1U, + 0xa533e089U, + 0xb38bdd9dU, + 0x94f6174U, + 0x52b0931bU, + 0x90ee8dc6U, + 0x2af64d93U, + 0x73c5695aU, + 0xa6699665U, + 0xe0180000U, + 0x10140000U, + 0x68120000U, + 0x440d0000U, + 0x2a048000U, + 0x711f4000U, + 0xb1abe000U, + 0x1c5fd000U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0xf0000000U, + 0xd8000000U, + 0xc4000000U, + 0xe2000000U, + 0x7b000000U, + 0x38800000U, + 0x10c00000U, + 0x3aa00000U, + 0xe0100000U, + 0x30180000U, + 0xb80c0000U, + 0x341e0000U, + 0x3a1b0000U, + 0xbf188000U, + 0xda9c4000U, + 0x6bcf6000U, + 0x2271000U, + 0xf0d21800U, + 0xabf5400U, + 0x58000200U, + 0x4000300U, + 0x82000180U, + 0x8b0003c0U, + 0xe0800360U, + 0xd4c00310U, + 0xd8a00388U, + 0x9b1001ecU, + 0x89800e2U, + 0xa8cc0043U, + 0xebe00eaU, + 0xda0b0380U, + 0x8f0080c0U, + 0x629042e0U, + 0x5fd160d0U, + 0x383c10e8U, + 0x4fca9afcU, + 0xd023176aU, + 0x33cf63afU, + 0x6271308U, + 0x72d21a43U, + 0x81bf57eaU, + 0xb8800000U, + 0xd0c00000U, + 0x5aa00000U, + 0x10100000U, + 0xe8180000U, + 0x7c0c0000U, + 0xd61e0000U, + 0x411b0000U, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0xb0000000U, + 0x18000000U, + 0x5c000000U, + 0xae000000U, + 0xa9000000U, + 0x3b800000U, + 0x78c00000U, + 0x18e00000U, + 0xb8100000U, + 0xcc180000U, + 0xe61c0000U, + 0x5d160000U, + 0xd1830000U, + 0x23cb8000U, + 0x2475c000U, + 0x52452000U, + 0x97bf7000U, + 0x3e231800U, + 0x31fd1c00U, + 0x43800200U, + 0x54c00300U, + 0x4ee00380U, + 0xfd1002c0U, + 0x41980060U, + 0x6bdc0170U, + 0xd07602b8U, + 0xb85302a4U, + 0xccb380eeU, + 0x2b9c1e3U, + 0xdbab2063U, + 0x183072e0U, + 0x8ce69b30U, + 0x2217df98U, + 0x6f18a374U, + 0x3689b046U, + 0x14dbb0fU, + 0x7f27ae51U, + 0x6e7e3b29U, + 0x995e6c2eU, + 0xe3351bc0U, + 0x207e1fa3U, + 0x804b8000U, + 0xc0b5c000U, + 0x4a52000U, + 0x36af7000U, + 0xd1bb1800U, + 0xf3211c00U, + 0xa8760200U, + 0x94530300U, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0xf0000000U, + 0x38000000U, + 0x44000000U, + 0xda000000U, + 0xe5000000U, + 0x59800000U, + 0x35400000U, + 0x5ca00000U, + 0x74100000U, + 0x2080000U, + 0xf1140000U, + 0x4b9e0000U, + 0xac470000U, + 0x9b288000U, + 0x7e4b4000U, + 0xe234a000U, + 0xe9cf3000U, + 0x2070a800U, + 0x75e89400U, + 0xa6a00200U, + 0x21100100U, + 0xc3880280U, + 0x705403c0U, + 0xf53e00e0U, + 0x79570110U, + 0x1aa08368U, + 0x5f1f4394U, + 0xac8aa166U, + 0x4d830d5U, + 0xe5f02972U, + 0x8ea7d5d0U, + 0xd02a208U, + 0x958c32c4U, + 0x334e2baeU, + 0xd7b0d571U, + 0x2a82208cU, + 0xcfc371e9U, + 0x1b6c8a60U, + 0xb36ce7f3U, + 0xdf640b07U, + 0x2977a512U, + 0x9a78a800U, + 0x80fc9400U, + 0x973e0200U, + 0x98570100U, + 0x39208280U, + 0x7f5f43c0U, + 0x91aaa0e0U, + 0x1883110U, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0xd0000000U, + 0x58000000U, + 0x44000000U, + 0x32000000U, + 0x87000000U, + 0xc9800000U, + 0x8b400000U, + 0xb3200000U, + 0xb4100000U, + 0xfa080000U, + 0x3b140000U, + 0x6f9a0000U, + 0x664b0000U, + 0xb9a88000U, + 0xc4d64000U, + 0x4578e000U, + 0xf5bd3000U, + 0xaad36800U, + 0x14616400U, + 0x59200200U, + 0x37100100U, + 0xa1880280U, + 0xe7540340U, + 0x4d3a0160U, + 0x1d1b0110U, + 0xc28080c8U, + 0xccd2421cU, + 0x196ae326U, + 0x23a2322dU, + 0xcfc1eaccU, + 0x2ec26d0U, + 0x5ff861e8U, + 0x3d6f71ecU, + 0x21b98b3eU, + 0x60c356d9U, + 0x761e986U, + 0xfabc2703U, + 0x7f50615dU, + 0xe92b738aU, + 0x5f0b8a6dU, + 0xcd8c542cU, + 0x195b6800U, + 0xe4356400U, + 0x259a0200U, + 0x354b0100U, + 0xba288280U, + 0x5c964340U, + 0x55d8e160U, + 0x9ed3110U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0x10000000U, + 0x8000000U, + 0xf4000000U, + 0x86000000U, + 0xd7000000U, + 0x5e800000U, + 0xec400000U, + 0x9b600000U, + 0xe6100000U, + 0x27180000U, + 0x66840000U, + 0x420000U, + 0xe1610000U, + 0x430e8000U, + 0x2888c000U, + 0x35ee000U, + 0x29e9d000U, + 0x704c8800U, + 0x1975ec00U, + 0x8f180200U, + 0x42840300U, + 0xae420080U, + 0xd2610040U, + 0x938e8020U, + 0xe7c8c3d0U, + 0x40bee218U, + 0xf4b9d35cU, + 0x92b4897aU, + 0x75a1efb1U, + 0x3322006dU, + 0x23710098U, + 0xca16801cU, + 0x7d0cc1daU, + 0xd39ce021U, + 0x7c8d055U, + 0x70a20b14U, + 0xecad2ffeU, + 0x6ebee377U, + 0x7b9d016U, + 0x62348b2cU, + 0xaae1efbdU, + 0x78c20080U, + 0xa210040U, + 0xaeee8020U, + 0xc6d8c3d0U, + 0x3126e218U, + 0x8a7dd35cU, + 0x8f96897aU, + 0xa5d0efb1U, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0xd0000000U, + 0x88000000U, + 0x84000000U, + 0x12000000U, + 0xdd000000U, + 0xd6800000U, + 0x36400000U, + 0xd1e00000U, + 0x56100000U, + 0x6f080000U, + 0x3b9c0000U, + 0xb8da0000U, + 0xebb10000U, + 0x11e08000U, + 0xf61a4000U, + 0x5f0fa000U, + 0x639cd000U, + 0xb4cdc800U, + 0x7dbbbc00U, + 0xdee80200U, + 0xfd8c0100U, + 0xbfd20380U, + 0x842d0340U, + 0x333a8220U, + 0x44ab4210U, + 0x8a6f2048U, + 0x7ec69374U, + 0xeca26b5aU, + 0x7e776cd9U, + 0xd4cdc947U, + 0xedbbbc58U, + 0xb6e8003cU, + 0xa98c02aeU, + 0x25d20343U, + 0xdd2d02feU, + 0xf7ba822fU, + 0xafeb42bcU, + 0x8d0f226eU, + 0x1e969223U, + 0x524a6aceU, + 0x13fb6c77U, + 0x31fcb80U, + 0x3d96bf40U, + 0x1fd28020U, + 0xb4274310U, + 0x6b3d23c8U, + 0x48ab9034U, + 0x1c78e97aU, + 0xb1cc2ec9U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0xb0000000U, + 0xd8000000U, + 0xc000000U, + 0x1e000000U, + 0x5d000000U, + 0x2e800000U, + 0xd8400000U, + 0x83200000U, + 0xf2100000U, + 0xb3080000U, + 0xcb8c0000U, + 0x4ad60000U, + 0x9d7b0000U, + 0x20318000U, + 0x719bc000U, + 0xfdcfa000U, + 0x2cffd000U, + 0xfde60800U, + 0x8d72e400U, + 0x68280200U, + 0x759c0100U, + 0x87de0180U, + 0xbbf702c0U, + 0x9c678360U, + 0x38a0c030U, + 0x40de2078U, + 0xf2741174U, + 0x9da1a8baU, + 0xb2413761U, + 0x5c38080cU, + 0x9785e6c8U, + 0x7ccf814cU, + 0x747cc0eeU, + 0xaca023cbU, + 0x32d31085U, + 0x16e2b98U, + 0x363df482U, + 0x48982935U, + 0x1956f7a6U, + 0xbba1aac1U, + 0x1341355cU, + 0xd4b80980U, + 0xaec5e6c0U, + 0x176f8160U, + 0xf2cc130U, + 0xac0821f8U, + 0x8e0f13b4U, + 0x55102bdaU, + 0x4a9af751U, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0x70000000U, + 0xc8000000U, + 0xa4000000U, + 0xf2000000U, + 0x23000000U, + 0xba800000U, + 0x5ec00000U, + 0xc1600000U, + 0x1e100000U, + 0xb5180000U, + 0x8b9c0000U, + 0xb74e0000U, + 0xed390000U, + 0x25a48000U, + 0x98764000U, + 0x3906000U, + 0x335d5000U, + 0x8f20d800U, + 0xbeabac00U, + 0x4ef80200U, + 0xb4c0300U, + 0x23360380U, + 0x8b501c0U, + 0xeff28320U, + 0x5ad34290U, + 0x637ae3c8U, + 0x6512108cU, + 0x13943aeaU, + 0x4b40bd7bU, + 0x328b905U, + 0x98aaff78U, + 0x57f6db54U, + 0x36ceaceeU, + 0x3572807dU, + 0xb41343e4U, + 0x8a1ae3feU, + 0xaf0211bdU, + 0x9c8c3a0cU, + 0x47dcbfaaU, + 0xfce6ba1bU, + 0x853fc75U, + 0x9b25b80U, + 0xee68edc0U, + 0x429ae120U, + 0x12c21190U, + 0x76c3848U, + 0x770cbd4cU, + 0x409ebbcaU, + 0x39dffcebU, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0x90000000U, + 0x58000000U, + 0x8c000000U, + 0x5a000000U, + 0xcd000000U, + 0x78800000U, + 0x2400000U, + 0x7600000U, + 0x5e100000U, + 0xe3180000U, + 0x938c0000U, + 0x25d20000U, + 0x64ab0000U, + 0xf5a18000U, + 0x2f234000U, + 0x9c7da000U, + 0x71991000U, + 0x34cd4800U, + 0x7e246c00U, + 0x26f80200U, + 0x52dc0300U, + 0x812a0180U, + 0xb7770240U, + 0x360b8160U, + 0xc7144230U, + 0x8d962168U, + 0x66dd5334U, + 0x72369e2U, + 0x18653c09U, + 0x9f916a1dU, + 0xbfde3e78U, + 0xc9a8e80cU, + 0x1d317f0eU, + 0x75674a77U, + 0x17136ee2U, + 0x7593805eU, + 0x1ad840f8U, + 0x9524221bU, + 0x166528bU, + 0x311ae924U, + 0x2a8a7d8dU, + 0x7b5ec980U, + 0x39fc2e40U, + 0x935c2360U, + 0xddfa5130U, + 0xed50e8e8U, + 0xeed7d74U, + 0xd6cd4a82U, + 0x6f246d39U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0x70000000U, + 0x18000000U, + 0xcc000000U, + 0xe000000U, + 0xb1000000U, + 0x1a800000U, + 0xf3c00000U, + 0xb200000U, + 0x61100000U, + 0xb2980000U, + 0x7c40000U, + 0xb92e0000U, + 0xc6130000U, + 0xd5018000U, + 0xe085c000U, + 0xf0d82000U, + 0xb6a05000U, + 0xf557f800U, + 0x5ef8a400U, + 0x2f2e0200U, + 0x7b130300U, + 0xe1818080U, + 0xd245c1c0U, + 0xf9782060U, + 0xe8705330U, + 0x42eff838U, + 0x892ca6c4U, + 0x3e18026aU, + 0x490400cfU, + 0x868e00acU, + 0x95c30044U, + 0x6e3982aaU, + 0xb991c32fU, + 0xfe4e22dcU, + 0xa76751dcU, + 0x31607b3eU, + 0x8c6a644dU, + 0xb8f9a1efU, + 0x8a35905eU, + 0x8397d99fU, + 0xdd5cf4a4U, + 0x6af7f838U, + 0xbd28a6c4U, + 0xac16026aU, + 0x9e0700cfU, + 0xf91780acU, + 0xbe82c044U, + 0x29cfa2aaU, + 0x7822932fU, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x50000000U, + 0xd8000000U, + 0x4000000U, + 0xe2000000U, + 0xe7000000U, + 0x95800000U, + 0xbdc00000U, + 0x6ba00000U, + 0xdf100000U, + 0x81880000U, + 0xe7cc0000U, + 0xd8aa0000U, + 0x708b0000U, + 0xdf488000U, + 0xfbf04000U, + 0x5d66e000U, + 0xf31b000U, + 0x5a433800U, + 0xc97f3400U, + 0x152a0200U, + 0x894b0100U, + 0x36e88180U, + 0x93e04140U, + 0x916ee360U, + 0x513db010U, + 0xb493b88U, + 0x81e4379cU, + 0xde6a8056U, + 0x28b743f7U, + 0xd884602eU, + 0x334af23cU, + 0x95ed5966U, + 0x847ec78fU, + 0x9bafdaeaU, + 0x7715875eU, + 0x6d89baabU, + 0x89d87558U, + 0x1a6603bU, + 0xe40df310U, + 0xf20fda07U, + 0x5f058676U, + 0xc181bb88U, + 0x87d4779cU, + 0x88ac6056U, + 0xa896f3f7U, + 0xdb4f582eU, + 0x19f9c63cU, + 0xba6d5b66U, + 0x9abec68fU, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0xf0000000U, + 0xc8000000U, + 0x74000000U, + 0xa000000U, + 0xff000000U, + 0x45800000U, + 0xdec00000U, + 0xfde00000U, + 0xe7100000U, + 0xa9980000U, + 0xf8cc0000U, + 0x44fe0000U, + 0xeb890000U, + 0xb3d68000U, + 0x6b6d4000U, + 0x3a51e000U, + 0xc3a9b000U, + 0x26a95800U, + 0x6428fc00U, + 0x237e0200U, + 0x8e490300U, + 0xa9b68180U, + 0x29bd43c0U, + 0xe9a9e320U, + 0x89b5b1d0U, + 0x79af5828U, + 0xb1bdfffcU, + 0xc5ae8316U, + 0xcfb1407bU, + 0x30b7e277U, + 0x752cb05cU, + 0xabe1d986U, + 0x561cbe33U, + 0xb101633bU, + 0x1891f352U, + 0xe0483a59U, + 0xa4a90d16U, + 0x4f2e3a3eU, + 0xfcec0e42U, + 0x9786b994U, + 0xadc84d4fU, + 0x6e61d828U, + 0x48dcbffcU, + 0x2ce16316U, + 0xf81f07bU, + 0x81d03a77U, + 0x28650c5cU, + 0x1d03b86U, + 0xe8650d33U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0x10000000U, + 0x68000000U, + 0x24000000U, + 0xda000000U, + 0xc1000000U, + 0xd1800000U, + 0x17c00000U, + 0x2200000U, + 0x75100000U, + 0xa3980000U, + 0xd2c40000U, + 0x19a20000U, + 0xcbdd0000U, + 0x543c8000U, + 0x6a0f4000U, + 0x79022000U, + 0xbd933000U, + 0xf9c47800U, + 0x71360400U, + 0x41820200U, + 0xbfcd0300U, + 0x6248080U, + 0xbf0b4040U, + 0xa8021a0U, + 0x275e3090U, + 0xd460fb68U, + 0x8fd4704U, + 0xf0a22146U, + 0xde43335fU, + 0xa9fc7888U, + 0xd1220594U, + 0x9198012eU, + 0xf7c400dbU, + 0x3222038eU, + 0xd1d006bU, + 0xef9c83b6U, + 0x2cdf4167U, + 0x2ba2284U, + 0xdb473026U, + 0x927e7a2fU, + 0x7fef06d0U, + 0xe3c8368U, + 0x6b0f4304U, + 0x88822346U, + 0xba53305fU, + 0x93e47808U, + 0x202605d4U, + 0x381a008eU, + 0xac09004bU, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0x90000000U, + 0x18000000U, + 0x1c000000U, + 0x3a000000U, + 0x29000000U, + 0x43800000U, + 0xd1c00000U, + 0x6c600000U, + 0xad100000U, + 0x25880000U, + 0x22dc0000U, + 0x96f20000U, + 0x27530000U, + 0x842b8000U, + 0xd9ab4000U, + 0x376f2000U, + 0x638f7000U, + 0xe1dfb800U, + 0x467cc00U, + 0x39120200U, + 0x1b830100U, + 0x2dc38380U, + 0xc6674240U, + 0x9c152060U, + 0x7a007070U, + 0xc90638e8U, + 0xd39f8ca4U, + 0xc9d6a30eU, + 0x70673247U, + 0x97131a31U, + 0xc9ffcf4U, + 0x61509af6U, + 0x4738bdfbU, + 0x4b25bb33U, + 0x2928cf79U, + 0xfc2b82feU, + 0x15ab4311U, + 0xf56f2264U, + 0xc68f71aeU, + 0x805fba97U, + 0xe0a7cf09U, + 0x2cf200e8U, + 0x4e5300a4U, + 0x27ab810eU, + 0x986b4347U, + 0x430f21b1U, + 0xd29f72b4U, + 0xfe57b896U, + 0xfbbcc8bU, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0x90000000U, + 0xc8000000U, + 0xc4000000U, + 0xf6000000U, + 0xd9000000U, + 0x38800000U, + 0xe3400000U, + 0x1ae00000U, + 0x9f100000U, + 0x19880000U, + 0xa7dc0000U, + 0x93b20000U, + 0xa6e90000U, + 0x55008000U, + 0x4a8ac000U, + 0x2c552000U, + 0x6b6c1000U, + 0x8ccde800U, + 0x242d1c00U, + 0xd43a0200U, + 0xcc350100U, + 0x20328380U, + 0x8223c240U, + 0x6535a320U, + 0x40b6d310U, + 0x6d70cbd8U, + 0x4dcd0f64U, + 0xf0adeae2U, + 0x957d1e8dU, + 0x31d201ebU, + 0x9ab9013cU, + 0xb66880c6U, + 0xe246c3cfU, + 0x6e6f22b6U, + 0xae5912efU, + 0xbc7f6a6eU, + 0x114eddc3U, + 0x95efa238U, + 0xe93d15cU, + 0x9a4a49beU, + 0x5272ce33U, + 0x244a4858U, + 0xf72cd24U, + 0xaca49c2U, + 0xa532cd9dU, + 0xe0aa4a33U, + 0x1d62ce58U, + 0x15c24a24U, + 0xfcaecd42U, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0x30000000U, + 0xb8000000U, + 0x3c000000U, + 0x56000000U, + 0x85000000U, + 0x6c800000U, + 0x51c00000U, + 0x70a00000U, + 0xeb100000U, + 0x95880000U, + 0x8b5c0000U, + 0x94660000U, + 0x4f270000U, + 0x135f8000U, + 0x387ec000U, + 0x713aa000U, + 0x22449000U, + 0x86eeb800U, + 0xcfe95400U, + 0xed6e0200U, + 0xd5bb0100U, + 0x17998380U, + 0xac49c0c0U, + 0x4fed22e0U, + 0xad6650f0U, + 0x35b21958U, + 0x278ac614U, + 0x145f3bb2U, + 0x73ec9447U, + 0xfb6d2042U, + 0xb0a6526cU, + 0x4b121b36U, + 0x459ac61dU, + 0x3573be9U, + 0x107096d8U, + 0x252b2127U, + 0xc0515272U, + 0xd1e598d4U, + 0x4c680652U, + 0x3239837U, + 0x1d5f055aU, + 0xb1741ad8U, + 0xf3bdc6d4U, + 0xca88b952U, + 0xccce54b7U, + 0xf031811aU, + 0x64c5c078U, + 0xe4232284U, + 0x66cd535aU, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x30000000U, + 0x68000000U, + 0xd4000000U, + 0x7e000000U, + 0x7b000000U, + 0xee800000U, + 0xb1c00000U, + 0xad600000U, + 0x51100000U, + 0xab880000U, + 0x444c0000U, + 0xc2260000U, + 0x25bd0000U, + 0x83e28000U, + 0xc0dbc000U, + 0x56ed6000U, + 0x4d4ad000U, + 0xd5afb800U, + 0xcbf1ec00U, + 0x44ce0200U, + 0x70e10100U, + 0x8a4c8180U, + 0x912ac0c0U, + 0x7f29e1a0U, + 0x7c2c1350U, + 0x7ea059f8U, + 0x3d60fdecU, + 0x290cd9baU, + 0x479a3fc7U, + 0xb64d3935U, + 0x7b2a2c84U, + 0x1a23608eU, + 0xd9abd381U, + 0x49e33ad0U, + 0xf5db2eeaU, + 0xab67e3edU, + 0xc60d1278U, + 0xb70cd82cU, + 0x4c9a3f9aU, + 0x50cd3b57U, + 0x2eea2fedU, + 0xa1436078U, + 0x27bbd12cU, + 0x72eb3a1aU, + 0x7b572d97U, + 0x2aa1e14dU, + 0x36011a8U, + 0x32065894U, + 0x991dff16U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0xf0000000U, + 0x38000000U, + 0x74000000U, + 0x96000000U, + 0x77000000U, + 0x5a800000U, + 0xef400000U, + 0x1ee00000U, + 0x35100000U, + 0x6b880000U, + 0x6acc0000U, + 0x173e0000U, + 0x1eb70000U, + 0xd5768000U, + 0x8fc6c000U, + 0xd4b4e000U, + 0xc86e5000U, + 0x18526800U, + 0x47c9c00U, + 0xba560200U, + 0x856b0100U, + 0x67c08180U, + 0x8bdc3c0U, + 0xe27c60e0U, + 0xb55f91d0U, + 0xcbf00a58U, + 0xee840ddcU, + 0x59588b6aU, + 0xf9e5cebdU, + 0xa792ebfbU, + 0xc8c15e14U, + 0x962a62ceU, + 0xc33492bbU, + 0x58b08b64U, + 0xa79cfb6U, + 0x6944ea87U, + 0xe1ea5c8eU, + 0x438ae39bU, + 0x96d95354U, + 0xad24e9beU, + 0x7bba5cc3U, + 0x56e2e3d8U, + 0x3905521cU, + 0xe992e98aU, + 0x7bc15e6dU, + 0x2aa6023U, + 0xdf749008U, + 0xb2d08944U, + 0xd329cdd6U, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0xb0000000U, + 0xd8000000U, + 0x64000000U, + 0xda000000U, + 0x97000000U, + 0x85800000U, + 0x18c00000U, + 0xb6a00000U, + 0x59100000U, + 0x70880000U, + 0xfe440000U, + 0x99f60000U, + 0xdc6b0000U, + 0xa4b48000U, + 0x82074000U, + 0xb308e000U, + 0x7f99b000U, + 0x3fc29800U, + 0xeb3a1400U, + 0x25de0200U, + 0x1c3f0100U, + 0x304a8080U, + 0x6ce842c0U, + 0x3aea6360U, + 0x8be5f190U, + 0x776fb68U, + 0x6720e65cU, + 0x3c27816U, + 0x1527a563U, + 0x48ca985aU, + 0xbebe16a4U, + 0x75080022U, + 0xa68401a9U, + 0xf5602efU, + 0x357b027dU, + 0xc3c808cU, + 0x184341a7U, + 0xf0fee168U, + 0x34f2b2a5U, + 0x1ef619f1U, + 0x71fd5552U, + 0x2076e3e8U, + 0x3ab6b09cU, + 0x7f001976U, + 0x799655f3U, + 0x86c263b2U, + 0x4bb1f238U, + 0x9388fb54U, + 0x89cfe55aU, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0xf0000000U, + 0x28000000U, + 0x14000000U, + 0x6a000000U, + 0x91000000U, + 0x5800000U, + 0xb5400000U, + 0xbba00000U, + 0xa7100000U, + 0xda980000U, + 0x83dc0000U, + 0x7e7e0000U, + 0xee750000U, + 0xf66a8000U, + 0x2a794000U, + 0xa4782000U, + 0x776fb000U, + 0xf7fb2800U, + 0x2d37b400U, + 0xb2c60200U, + 0xabf90300U, + 0x632c8380U, + 0x81c043c0U, + 0xdb74a0a0U, + 0x91fff050U, + 0xa3789a8U, + 0xa8444644U, + 0xc8378a16U, + 0xed4445d5U, + 0x47b78b6eU, + 0x3904465cU, + 0xd1978a4aU, + 0x3f54469fU, + 0xdaaf8971U, + 0x8a98456dU, + 0x7bc98b47U, + 0x527144a8U, + 0x487d08e1U, + 0x316d0740U, + 0xc0f7aac5U, + 0xefa7f426U, + 0xed0aa228U, + 0x5b8af184U, + 0x5e5d08b6U, + 0xf73d0685U, + 0x2bcfa946U, + 0xaa6bf7d8U, + 0x646ca2fcU, + 0x9763f01aU, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0x10000000U, + 0x48000000U, + 0xac000000U, + 0x8e000000U, + 0xe5000000U, + 0x4e800000U, + 0x97c00000U, + 0xe5600000U, + 0x3e900000U, + 0xfd80000U, + 0xe17c0000U, + 0xc920000U, + 0x2cd10000U, + 0xe6e98000U, + 0x5bc3c000U, + 0xbb6da000U, + 0x73905000U, + 0xfd593800U, + 0xb0b50c00U, + 0xa0e98200U, + 0xd2c3c300U, + 0x9beda380U, + 0x11505040U, + 0x1eb93920U, + 0xb5e50eb0U, + 0xc4518038U, + 0xe82fc094U, + 0xd627a2baU, + 0x4b3d521fU, + 0x11a2bab5U, + 0xfc67ce4aU, + 0x960da007U, + 0x21005311U, + 0x9c813a88U, + 0xa4c90eacU, + 0xaafb832eU, + 0xc5d2c025U, + 0x1664236aU, + 0x9103919fU, + 0xe48c9bddU, + 0xb0c95e9eU, + 0xd0fabab5U, + 0x4adbce4aU, + 0x9fffa007U, + 0x23415311U, + 0x3db0ba88U, + 0xb276ceacU, + 0x9304232eU, + 0x7f939025U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0xd0000000U, + 0xc8000000U, + 0x4000000U, + 0xa000000U, + 0x1b000000U, + 0xeb800000U, + 0x57400000U, + 0xfe00000U, + 0x63900000U, + 0xf3580000U, + 0xb5ec0000U, + 0x608a0000U, + 0xd4c10000U, + 0xecac8000U, + 0x7e6b4000U, + 0x47d26000U, + 0xa329f000U, + 0x932da800U, + 0x4b299c00U, + 0xe72c8200U, + 0x392b4300U, + 0xe0326180U, + 0x14b9f340U, + 0xa275ab20U, + 0xe1c59c10U, + 0x66268228U, + 0xa1aa436cU, + 0xe8fee22eU, + 0x5e02b21dU, + 0x191fcb1fU, + 0x94906d9eU, + 0x66d929e5U, + 0x8baeddbbU, + 0x83f4e1acU, + 0xcd83b24eU, + 0x5253492dU, + 0x5d6b2f27U, + 0x10534bdaU, + 0x826b2f27U, + 0x91d34bc8U, + 0x1e2b2f0eU, + 0xbdb34b1fU, + 0x2efb2d9eU, + 0x4b0b49e5U, + 0xe3872dbbU, + 0x335949acU, + 0xd5ea2e4eU, + 0xb09fcb2dU, + 0x1cd06c27U, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0x10000000U, + 0xb8000000U, + 0x94000000U, + 0x12000000U, + 0xdd000000U, + 0x86800000U, + 0xe0400000U, + 0xd2a00000U, + 0xb2900000U, + 0xa2480000U, + 0x97a40000U, + 0xb0120000U, + 0xe81f0000U, + 0xc168000U, + 0x96004000U, + 0x770ca000U, + 0xcf825000U, + 0x74de4800U, + 0xefe1f400U, + 0xe6b68200U, + 0xf0904100U, + 0xe744a080U, + 0x95265040U, + 0xfa4c4ae0U, + 0x73bef650U, + 0x2a000248U, + 0x9000274U, + 0xb480029aU, + 0x2d4003c1U, + 0xec2001aaU, + 0xc6d0009aU, + 0x62e802c1U, + 0xf834012aU, + 0x94da00daU, + 0x9ffb0021U, + 0x6ea4837aU, + 0xcc8f4092U, + 0xd9522355U, + 0xce261160U, + 0xb3c0eb13U, + 0xc87ca41fU, + 0x9e7e49aaU, + 0x8971f49aU, + 0x76fe80c1U, + 0xaa34402aU, + 0x69d6a05aU, + 0x9795061U, + 0x36fac99aU, + 0x8a2eb6c2U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x30000000U, + 0xf8000000U, + 0x74000000U, + 0x66000000U, + 0x13000000U, + 0x9b800000U, + 0x8a400000U, + 0xf6200000U, + 0x5f900000U, + 0x54480000U, + 0xf12c0000U, + 0x92160000U, + 0x35170000U, + 0xe8828000U, + 0x21cac000U, + 0x847d6000U, + 0xddadf000U, + 0x6dc58800U, + 0xb678a400U, + 0xf8a28200U, + 0x2d5ac100U, + 0x2bb56180U, + 0x96c1f0c0U, + 0xf1f38be0U, + 0xa8ffa5d0U, + 0x22680398U, + 0xeebc014cU, + 0xa65e03eeU, + 0xf43b02e9U, + 0x82948038U, + 0x60ddc0aeU, + 0xaffe0c9U, + 0xef673388U, + 0x7238e826U, + 0xe19556fdU, + 0x63470a7aU, + 0xc4b264f9U, + 0x875fe0c0U, + 0x4ab73172U, + 0x4850e99fU, + 0xb29571dU, + 0x3b190838U, + 0x678964aeU, + 0x4b62c9U, + 0xc72af288U, + 0x490f09a6U, + 0x229e663dU, + 0x70c9e19aU, + 0xa2e03129U, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0x50000000U, + 0x28000000U, + 0xdc000000U, + 0x22000000U, + 0x27000000U, + 0xed800000U, + 0xa7c00000U, + 0xbf200000U, + 0x9900000U, + 0x51d80000U, + 0xd63c0000U, + 0x991a0000U, + 0xc89d0000U, + 0xdd478000U, + 0x8d6e4000U, + 0xe571e000U, + 0x196e3000U, + 0x8b64b800U, + 0xd46d0400U, + 0xcde78200U, + 0x943e4300U, + 0x2e09e380U, + 0xed023140U, + 0xf686b8a0U, + 0x385c0770U, + 0x17e20288U, + 0x8731039cU, + 0xdd858036U, + 0x1fcf43dfU, + 0xab2c625cU, + 0xa79d7356U, + 0x7cd2d9cfU, + 0xc0ad77c4U, + 0xf152dbd2U, + 0xf76d76bdU, + 0x8672d809U, + 0x72fd7453U, + 0xddaadbf2U, + 0x5fc1760dU, + 0x8b30d9e1U, + 0x179c75dfU, + 0x4d75a5cU, + 0x34a23756U, + 0xf5ebbcfU, + 0xf26004c4U, + 0x4cf80052U, + 0x38ac03fdU, + 0xc54202a9U, + 0xe9610023U, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0x10000000U, + 0x8000000U, + 0x8c000000U, + 0x5e000000U, + 0x1b000000U, + 0xda800000U, + 0x62c00000U, + 0xcc600000U, + 0x2e900000U, + 0xe8c80000U, + 0xed7c0000U, + 0x2d120000U, + 0x1d890000U, + 0xe4d8000U, + 0x29a9c000U, + 0x6e726000U, + 0x3392d000U, + 0x4d539800U, + 0x9724ec00U, + 0xcead8200U, + 0xb2f9c100U, + 0x2e5a6380U, + 0x99bed040U, + 0x96699820U, + 0xa781ee30U, + 0x975a0378U, + 0x5e35016cU, + 0x513f80eaU, + 0x11b0c1cbU, + 0x5a77e311U, + 0x1987128aU, + 0x9c53fadbU, + 0x8caf3fd9U, + 0xbffb99deU, + 0x83c8ecfdU, + 0x6ff78288U, + 0x2bccc15cU, + 0x13e5e1baU, + 0x6dce110bU, + 0x8cfe78d9U, + 0x6556fc76U, + 0xab21fb11U, + 0x68b63e8aU, + 0x3dfe18dbU, + 0x2edd2ed9U, + 0x3277e25eU, + 0xc58710bdU, + 0x2a53f8a8U, + 0xbaf3e6cU, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0x30000000U, + 0x68000000U, + 0x5c000000U, + 0x56000000U, + 0x87000000U, + 0xa3800000U, + 0x22c00000U, + 0x30a00000U, + 0x95900000U, + 0xd5c80000U, + 0x1b3c0000U, + 0xdb560000U, + 0xdb650000U, + 0x55a78000U, + 0xfb14c000U, + 0x6589e000U, + 0x1dc5f000U, + 0x97259800U, + 0xd5407400U, + 0x686f8200U, + 0xfc28c100U, + 0x8dfe380U, + 0x71a0f0c0U, + 0x90219a0U, + 0x5094b570U, + 0x6b466358U, + 0xf37d331cU, + 0xe9b2790eU, + 0x9d1c844bU, + 0x8a9b9b62U, + 0xe2497626U, + 0xe3f6038fU, + 0x62f503b0U, + 0x5e6f83c3U, + 0xb28c256U, + 0x235fe16cU, + 0x3f60f2d6U, + 0x7a21917U, + 0x1e04b68cU, + 0x4b0e617dU, + 0x4d8133e5U, + 0xa1c478e2U, + 0xf12986e6U, + 0x3a541a2fU, + 0x97f1b6c0U, + 0x88e1e09bU, + 0xbf69f14aU, + 0x47bb9862U, + 0xfe19769dU, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0x30000000U, + 0x48000000U, + 0x64000000U, + 0xb6000000U, + 0x19000000U, + 0xd6800000U, + 0x36c00000U, + 0x40200000U, + 0xd0900000U, + 0xa7d80000U, + 0x12bc0000U, + 0x60560000U, + 0xb6f10000U, + 0x70a08000U, + 0x4758c000U, + 0xfd6e2000U, + 0x16fc5000U, + 0x60b71800U, + 0xdf5aa400U, + 0xe1788200U, + 0x8ce4c300U, + 0xabb82380U, + 0xa6cd50c0U, + 0x18379920U, + 0x2c926590U, + 0xdcea0d8U, + 0x91a49364U, + 0x7dd938daU, + 0xf9a6f41bU, + 0xc9cf9a20U, + 0x37be65d2U, + 0xfcc0a1c7U, + 0x332993eeU, + 0x650fb87bU, + 0xbc9f3750U, + 0x55d9393aU, + 0x6da6f4abU, + 0xd7cf9968U, + 0x7abe676eU, + 0xd440a2f9U, + 0x78e9906fU, + 0x45afb9a0U, + 0x43cf3512U, + 0x64a138e7U, + 0x994af67eU, + 0x506198a3U, + 0xe636434U, + 0x636e21e0U, + 0x9bfc50b0U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x50000000U, + 0x68000000U, + 0x74000000U, + 0xee000000U, + 0xc9000000U, + 0x8a800000U, + 0x27400000U, + 0xff600000U, + 0x8c900000U, + 0xda480000U, + 0xfbec0000U, + 0x32da0000U, + 0xc7a50000U, + 0x24328000U, + 0xf9efc000U, + 0x79c02000U, + 0x4631d000U, + 0xe2e22800U, + 0x90574c00U, + 0xf4fa8200U, + 0x6543c100U, + 0xd47a2180U, + 0x5d04d140U, + 0x7498a9a0U, + 0xe6548dd0U, + 0x51e0a1b8U, + 0x2dd71224U, + 0x982a8baaU, + 0x13fc5dddU, + 0x6c2085dU, + 0x49b69ee2U, + 0xbd30ab51U, + 0x1b688c8bU, + 0x2a92a0c1U, + 0x574e1213U, + 0xa76a08f5U, + 0xc08a9e61U, + 0x2842a8bcU, + 0xa8f18d9eU, + 0x9f5222afU, + 0xa378d094U, + 0x768aa9ddU, + 0xad5d8fa2U, + 0xd06822f1U, + 0xeb0dd15bU, + 0xf1902979U, + 0x9ece4c37U, + 0x25ba015fU, + 0x7f3502bcU, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0x30000000U, + 0xe8000000U, + 0xe4000000U, + 0x1a000000U, + 0x11000000U, + 0x53800000U, + 0xb8c00000U, + 0x80e00000U, + 0xd1900000U, + 0xc5d80000U, + 0xbd740000U, + 0xba560000U, + 0xba50000U, + 0x79b88000U, + 0x4cad4000U, + 0xa5232000U, + 0x3cecf000U, + 0x7935800U, + 0x8ad9bc00U, + 0xd5e08200U, + 0xa8194300U, + 0x84152280U, + 0x8a19f0c0U, + 0xc913dba0U, + 0x5f90ff90U, + 0x46cda268U, + 0x8be4b344U, + 0x9308fbceU, + 0x2e980e23U, + 0x8550fba3U, + 0xeb2c0fd6U, + 0x1fe6fbffU, + 0x1190d71U, + 0x4b867887U, + 0x14c04e9dU, + 0x4ef358adU, + 0x3289be60U, + 0x63588385U, + 0x4c3d40f1U, + 0x937b20f2U, + 0x958f0b4U, + 0xd5255923U, + 0xb4ecbf16U, + 0x7380005fU, + 0x48c002e1U, + 0xc8e002efU, + 0x59001d9U, + 0x37d80163U, + 0x48740343U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0x50000000U, + 0xe8000000U, + 0x54000000U, + 0xbe000000U, + 0x1b000000U, + 0x7f800000U, + 0xa9c00000U, + 0xbf600000U, + 0x3d900000U, + 0xf8d80000U, + 0x55ec0000U, + 0x48da0000U, + 0x2de50000U, + 0x94d68000U, + 0x97e5c000U, + 0xd9c26000U, + 0xa7777000U, + 0xb183f800U, + 0xaacc0c00U, + 0x4cee8200U, + 0xc659c300U, + 0x5ea06180U, + 0xe6ee7140U, + 0xc3577ba0U, + 0xa20cd50U, + 0x88a060f8U, + 0x69ee736cU, + 0x62d7787eU, + 0xe8e0cfe7U, + 0xa040635dU, + 0xa9be72a6U, + 0x9b6f789bU, + 0x9b9ccc7bU, + 0x6fc2617dU, + 0x78777040U, + 0xf803fbd6U, + 0x1c0c0f85U, + 0xda0e80daU, + 0x1d09c33dU, + 0xd8986260U, + 0x3c5273c6U, + 0xb3b57addU, + 0xe679cfe6U, + 0x1314e13bU, + 0xbb92b22bU, + 0x9fc19805U, + 0xa07b7e6cU, + 0x140d7a08U, + 0x1e05ce32U, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0xf0000000U, + 0x48000000U, + 0x14000000U, + 0x2a000000U, + 0x47000000U, + 0x1e800000U, + 0xf0400000U, + 0x96200000U, + 0x8900000U, + 0xb9580000U, + 0x4dbc0000U, + 0x454e0000U, + 0xa3b10000U, + 0x704e8000U, + 0x56234000U, + 0xe88de000U, + 0x49475000U, + 0x5ae4800U, + 0x5156a400U, + 0x89b68200U, + 0x374f4300U, + 0x48bbe380U, + 0x18da53c0U, + 0xdf76c920U, + 0xd38e450U, + 0xe81be2a8U, + 0xc40a521cU, + 0x720ecbfaU, + 0xeb14e401U, + 0x688de178U, + 0x89475372U, + 0xe5ae49cdU, + 0xa156a7eaU, + 0xc1b6824fU, + 0x234f421fU, + 0x62bbe0b1U, + 0x5fda53a6U, + 0xc1f6c81dU, + 0xfd78e782U, + 0x7e3be1f3U, + 0xcc9a51f5U, + 0xcb56caf8U, + 0xa6a8e4b2U, + 0x2dc3e2edU, + 0x2af650baU, + 0x95e0cb67U, + 0xf775e7c3U, + 0x293b606bU, + 0x6a0810f7U, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0xd0000000U, + 0x78000000U, + 0xe4000000U, + 0x42000000U, + 0x5d000000U, + 0xe5800000U, + 0xd8c00000U, + 0x1be00000U, + 0xb900000U, + 0xebd80000U, + 0xd740000U, + 0x65ca0000U, + 0x4e770000U, + 0xdb588000U, + 0xbc2a4000U, + 0xd8e0a000U, + 0x75123000U, + 0xb9905800U, + 0xdeda5c00U, + 0xd4e08200U, + 0xcb0e4300U, + 0x3292a280U, + 0x8c413340U, + 0x28bad9e0U, + 0x4ba31f90U, + 0xe52aa308U, + 0xcf653274U, + 0xf8c8d916U, + 0xbf01c23U, + 0xd380238fU, + 0xdfdc70beU, + 0x3762f827U, + 0xdccb6e01U, + 0xe9e259e1U, + 0x5e895ecaU, + 0x424a028aU, + 0xbb703eaU, + 0x8538803aU, + 0xbf7a4252U, + 0x50d8a3f6U, + 0x97f63088U, + 0x7582590fU, + 0xc0d95ffeU, + 0x8ff203c7U, + 0xe1930291U, + 0x2aca8069U, + 0x4ee943feU, + 0xa212207cU, + 0xed1f7359U, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0xf0000000U, + 0x88000000U, + 0xac000000U, + 0xfe000000U, + 0xbf000000U, + 0x21800000U, + 0x2c400000U, + 0x86200000U, + 0x5e900000U, + 0x6dc80000U, + 0x7a640000U, + 0xa0ae0000U, + 0x17490000U, + 0x45b98000U, + 0x9bd5c000U, + 0x2970e000U, + 0x5f34b000U, + 0x7409c800U, + 0x6a05e400U, + 0x45178200U, + 0x3c9cc100U, + 0xc4c96080U, + 0x98e173c0U, + 0x2b792a20U, + 0x263156b0U, + 0xee9e49f8U, + 0xc5d927fcU, + 0x267ee206U, + 0xd6adb271U, + 0x45848b8U, + 0x9a24240aU, + 0x881626fU, + 0x8ec570a5U, + 0x2df7297cU, + 0x9fe855d0U, + 0x4eefcba8U, + 0x8868e414U, + 0x51a00272U, + 0x21d001d3U, + 0x146800c3U, + 0x47b401ddU, + 0xe2c60140U, + 0xb3fd03f6U, + 0xf0ff8069U, + 0x1768c2d4U, + 0x802f61c4U, + 0x858c71daU, + 0x3e4ea9c7U, + 0xe73d94b1U, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0xf0000000U, + 0xb8000000U, + 0x1c000000U, + 0x2a000000U, + 0xc7000000U, + 0x25800000U, + 0x49400000U, + 0xc9600000U, + 0xf2900000U, + 0x44c80000U, + 0xf4240000U, + 0x45ee0000U, + 0xff4f0000U, + 0x646f8000U, + 0x300f4000U, + 0xd819e000U, + 0xcc143000U, + 0x6211e800U, + 0x63138c00U, + 0x13818200U, + 0xa4404100U, + 0x2bf66080U, + 0x9e5b73c0U, + 0xc4e80ae0U, + 0xcfd7bc70U, + 0xf3b86aa8U, + 0x4fa7ce1cU, + 0xd5b1e216U, + 0x8aa033e5U, + 0x4337e945U, + 0x98788c7aU, + 0x8a00015bU, + 0x770001bcU, + 0xbd8001a9U, + 0xa5400204U, + 0x5b6000c2U, + 0x2990025fU, + 0x4b4801feU, + 0x7a640036U, + 0xa90e011aU, + 0x449f0084U, + 0xe9c783edU, + 0x36bb4266U, + 0xd93fe34dU, + 0xc77f3259U, + 0x439068ecU, + 0xac53ce7eU, + 0xaff7e199U, + 0x585b33e3U, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0xd0000000U, + 0x78000000U, + 0x9c000000U, + 0x2a000000U, + 0x95000000U, + 0x20800000U, + 0xb9400000U, + 0x27e00000U, + 0xb9900000U, + 0xebd80000U, + 0xa7bc0000U, + 0x3cea0000U, + 0x9a070000U, + 0xfd178000U, + 0x24834000U, + 0xdf47a000U, + 0xe0f89000U, + 0x9011e800U, + 0x580b1c00U, + 0xac1d8200U, + 0x82144300U, + 0x71082380U, + 0x9687d340U, + 0x65c49e0U, + 0x92648e70U, + 0x2043eaa8U, + 0x75601d54U, + 0x39d80102U, + 0x6ebc02a5U, + 0xd66a02ffU, + 0x664703d6U, + 0x827782e7U, + 0xb85342baU, + 0x397fa0d9U, + 0x6bd492d9U, + 0x67a3ebe9U, + 0xdcf01c91U, + 0x4a00024dU, + 0x850000fbU, + 0xb880029cU, + 0xf54002d6U, + 0x75e00057U, + 0xb0900282U, + 0xe15801e5U, + 0x8bfc031fU, + 0x3b8a01a6U, + 0x9ad7024fU, + 0x312f80eeU, + 0x3aaf405bU, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0xb0000000U, + 0xb8000000U, + 0x34000000U, + 0xca000000U, + 0x59000000U, + 0x8a800000U, + 0x81c00000U, + 0x58e00000U, + 0x37900000U, + 0x9580000U, + 0xec3c0000U, + 0xabe60000U, + 0x941f0000U, + 0x5a028000U, + 0xb1134000U, + 0xb68a2000U, + 0xc7c0d000U, + 0xffeff800U, + 0x2e097c00U, + 0x5b048200U, + 0xbf9c4300U, + 0x4550a380U, + 0xf22f92c0U, + 0x88e3dae0U, + 0xff86acd0U, + 0x6551f928U, + 0xa22a7e64U, + 0x80e003aaU, + 0x739003c7U, + 0x9b580003U, + 0x313c02ceU, + 0x536601edU, + 0x78df0204U, + 0x426283adU, + 0x5e434133U, + 0x6db22221U, + 0x9dacd01dU, + 0x5b1fb9cU, + 0x61ba7c71U, + 0xa3b80375U, + 0x76ac0258U, + 0x23e012bU, + 0x10e300aaU, + 0x9b848047U, + 0xa75c42c3U, + 0x7730a02eU, + 0xf47f913dU, + 0x615bd92cU, + 0x102aaec9U, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0xf0000000U, + 0x98000000U, + 0x6c000000U, + 0xaa000000U, + 0xcb000000U, + 0xdc800000U, + 0x18400000U, + 0xece00000U, + 0x93900000U, + 0x5ad80000U, + 0x19bc0000U, + 0x32ee0000U, + 0x5e9b0000U, + 0x7498000U, + 0xe6774000U, + 0x82c46000U, + 0x55bd1000U, + 0x88f7c800U, + 0xfd87bc00U, + 0x2fc78200U, + 0x383c4300U, + 0xf35e380U, + 0xd1a653c0U, + 0x16e5aa60U, + 0x108dadb0U, + 0x624fc8a8U, + 0xafebbc2cU, + 0x4b1182f2U, + 0x1c8b40a1U, + 0xf84a6253U, + 0x1cf6103eU, + 0xb8649a3U, + 0x36dcfefaU, + 0xb3b5e311U, + 0xf9e65137U, + 0x8205ab5cU, + 0x1f1dae76U, + 0xa97c8b3U, + 0x1157bdceU, + 0xf7f80abU, + 0x91504106U, + 0xcf63e2fbU, + 0x71515012U, + 0x3f7a2951U, + 0xe94ded5bU, + 0x53742ac2U, + 0x4346eec9U, + 0x9865aa9fU, + 0x9fcdae3cU, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0x30000000U, + 0xe8000000U, + 0x64000000U, + 0x2a000000U, + 0x9b000000U, + 0x5800000U, + 0x2fc00000U, + 0x18a00000U, + 0xd4900000U, + 0x61580000U, + 0xcae40000U, + 0x5ff60000U, + 0xb750000U, + 0xaa208000U, + 0x40cf4000U, + 0x2f346000U, + 0xcc433000U, + 0x26f3800U, + 0x68b0b400U, + 0xdc8e8200U, + 0x155e4300U, + 0x38e2e080U, + 0x48f970c0U, + 0x40fbdba0U, + 0x34fcc590U, + 0xc6f5daa8U, + 0xd1fdc56cU, + 0x9a7b5a96U, + 0x4a3877fU, + 0x8299b942U, + 0x7c5af502U, + 0x2a62600dU, + 0x2ca63317U, + 0xc697bae1U, + 0x665bf7aeU, + 0x596ce3d4U, + 0x4d387212U, + 0xc3555965U, + 0xe5f2855bU, + 0x886f3927U, + 0x3b0b7d9U, + 0x110e836aU, + 0x6e9e40aeU, + 0xe242e13bU, + 0x636971f8U, + 0xe23d90bU, + 0x4ad8c7c0U, + 0x8423d94fU, + 0x21d8c67aU, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0x50000000U, + 0xd8000000U, + 0x2c000000U, + 0xa2000000U, + 0x65000000U, + 0xe4800000U, + 0xa8c00000U, + 0xd2e00000U, + 0x2b900000U, + 0x9d480000U, + 0xf0bc0000U, + 0xc6ba0000U, + 0x3da30000U, + 0x26218000U, + 0x737a4000U, + 0x97d9a000U, + 0x8f7c1000U, + 0xadd9d800U, + 0x267e3c00U, + 0xbb538200U, + 0x33a54100U, + 0xa1222380U, + 0x12f55140U, + 0x8b89fb60U, + 0x2d546cb0U, + 0x78a1f888U, + 0x32b86c94U, + 0xb3b3fa12U, + 0xe1376ee3U, + 0xf2e079abU, + 0xdb922c5eU, + 0xf5425a1dU, + 0x54a77ea6U, + 0x90aba0e0U, + 0xd6a31331U, + 0x5a25a29U, + 0x5a377fa4U, + 0x963a31bU, + 0xdedf13d6U, + 0xc9f85a09U, + 0x60047d74U, + 0x100a22a3U, + 0x3819518aU, + 0x7c1bfb6fU, + 0x7a1b6cf5U, + 0x491279c3U, + 0x468d2ffbU, + 0xcdd9d826U, + 0x367e3ee1U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0x50000000U, + 0xc8000000U, + 0x14000000U, + 0x82000000U, + 0xc1000000U, + 0x14800000U, + 0x8dc00000U, + 0x61a00000U, + 0xe3900000U, + 0x4a580000U, + 0xd1e40000U, + 0x5f7a0000U, + 0xfb10000U, + 0xcc8e8000U, + 0xb1c64000U, + 0x87af2000U, + 0x38831000U, + 0x43c27800U, + 0xdea2d400U, + 0xf00c8200U, + 0x58034300U, + 0xfc03a080U, + 0xc6105140U, + 0x8b19db20U, + 0xc1968450U, + 0x1b4f5808U, + 0x2d74c404U, + 0x96ba7ad2U, + 0x2416d477U, + 0xfa0e8026U, + 0x6d06419eU, + 0x1a8f2081U, + 0x12d31153U, + 0x223a7807U, + 0x39d6d55dU, + 0x73ae82eeU, + 0xca96437aU, + 0x1ad72263U, + 0x1637135cU, + 0xebc07bfdU, + 0x7aa7d7ddU, + 0xca0000aeU, + 0x150000daU, + 0xb6800373U, + 0x1cc00274U, + 0xbd2000a9U, + 0x7a500187U, + 0xa9f8039dU, + 0xf374020eU, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0x50000000U, + 0x58000000U, + 0x3c000000U, + 0xe2000000U, + 0x4d000000U, + 0xcd800000U, + 0xadc00000U, + 0x8ae00000U, + 0x66900000U, + 0x43580000U, + 0x6da40000U, + 0xf53a0000U, + 0x49630000U, + 0xfc4b8000U, + 0x552a4000U, + 0xd97ca000U, + 0x84573000U, + 0x39397800U, + 0x637d3c00U, + 0xf5498200U, + 0x16bd4300U, + 0x83b52080U, + 0xb22a7140U, + 0xddec5960U, + 0x4a074cf0U, + 0xb91dd988U, + 0x6b8e0e34U, + 0x6ecaf9b6U, + 0xb0637cf7U, + 0x77d721cbU, + 0x4bed732aU, + 0x611ddb65U, + 0x978e0d32U, + 0xaccaf80aU, + 0xad637d56U, + 0xe25723e4U, + 0xda2d710dU, + 0x9fdda95U, + 0xbc1e0d3aU, + 0x2212f8feU, + 0x6d077e40U, + 0x9d8d20c3U, + 0xf5de705eU, + 0xb6ee59b3U, + 0x84904e35U, + 0xe5458c9U, + 0xa0334d08U, + 0x58ffda57U, + 0xc3890f38U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x90000000U, + 0x58000000U, + 0xd4000000U, + 0xee000000U, + 0xab000000U, + 0x1b800000U, + 0x4a400000U, + 0x3fa00000U, + 0xca500000U, + 0x7fa80000U, + 0xaa5c0000U, + 0xefba0000U, + 0xf2570000U, + 0x3ba08000U, + 0x1c4ac000U, + 0x90b5e000U, + 0x7c9b000U, + 0xdafca800U, + 0x386e4400U, + 0x10b5e200U, + 0x47c9b100U, + 0xbafca980U, + 0xa86e4640U, + 0x48b5e360U, + 0x93c9b250U, + 0x54fcaa38U, + 0x36e44ecU, + 0x5335e30eU, + 0xd989b379U, + 0x6b5caac6U, + 0xc93e47c5U, + 0x2c9de2f0U, + 0x73d5b1d0U, + 0x84e6a978U, + 0x3b69440cU, + 0x173d621eU, + 0x6f9f71a1U, + 0x14534b3aU, + 0x3ca0f413U, + 0xcdc1c975U, + 0x57f13540U, + 0x4e6a978U, + 0x7b69440cU, + 0x773d621eU, + 0xff9f71a1U, + 0x4c534b3aU, + 0xe8a0f413U, + 0x23c1c975U, + 0xfcf13540U, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0x10000000U, + 0x58000000U, + 0x9c000000U, + 0xe2000000U, + 0x8b000000U, + 0x52800000U, + 0x56c00000U, + 0x4a600000U, + 0xb6d00000U, + 0x3a680000U, + 0xded40000U, + 0xee6a0000U, + 0xf8df0000U, + 0x1b798000U, + 0xc3434000U, + 0x9428e000U, + 0x8d691000U, + 0x3e523800U, + 0x4bb85c00U, + 0x6c28e200U, + 0x41691100U, + 0xa4523880U, + 0x4cb85c40U, + 0x84a8e360U, + 0xa91370U, + 0x5eb23b08U, + 0x27a85e6cU, + 0xa620e22aU, + 0x3e6d122bU, + 0xc0d03a21U, + 0xb7735cb7U, + 0x695b62c3U, + 0xdb255150U, + 0xa1eb5998U, + 0x1860f54U, + 0xd8583aaeU, + 0xdeb75e5dU, + 0x67b961c8U, + 0x863e5061U, + 0x2e70d8d7U, + 0x98de4e33U, + 0x2b6b5998U, + 0x8b460f54U, + 0x50383aaeU, + 0xf3675e5dU, + 0x575161c8U, + 0x922a5061U, + 0x687ad8d7U, + 0x5dd14e33U, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0xb0000000U, + 0x48000000U, + 0x44000000U, + 0xca000000U, + 0xd000000U, + 0x28800000U, + 0x51400000U, + 0xd8a00000U, + 0x59500000U, + 0xbcb80000U, + 0xc34c0000U, + 0x49ae0000U, + 0xe7c50000U, + 0x96e68000U, + 0xf87c4000U, + 0xea372000U, + 0x3d015000U, + 0xa0910800U, + 0xf5444400U, + 0xa2b72200U, + 0x1c415300U, + 0xd0310b80U, + 0x581446c0U, + 0x9c0f2320U, + 0x960d5210U, + 0x7b1f08a8U, + 0xe39146f4U, + 0xfac9a382U, + 0x66611355U, + 0xf5302bcaU, + 0x448c1791U, + 0xaf4ea970U, + 0xb7ac5458U, + 0x88cf88ecU, + 0x4774070eU, + 0x3ae00abU, + 0x2ac50179U, + 0x5e668064U, + 0x193c41eaU, + 0x7a972081U, + 0x20515358U, + 0xd62908ecU, + 0x3b08470eU, + 0xc39920abU, + 0xaac45179U, + 0x9e778864U, + 0xf93805eaU, + 0xca800281U, + 0x68400058U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0x10000000U, + 0xa8000000U, + 0xac000000U, + 0xe6000000U, + 0x9000000U, + 0x38800000U, + 0xe2c00000U, + 0x50a00000U, + 0xead00000U, + 0x2cb80000U, + 0x84d40000U, + 0x99ba0000U, + 0xf2410000U, + 0xde6f8000U, + 0x7c7dc000U, + 0xdf7ea000U, + 0x38e2d000U, + 0x53a6f800U, + 0xdd4ac400U, + 0xcffea200U, + 0xb622d300U, + 0xc506f880U, + 0x2e9ac440U, + 0x73c6a0a0U, + 0x7c36d1b0U, + 0xea1cfb18U, + 0x3f0bc464U, + 0xb9912042U, + 0x665f123bU, + 0xfc785a5aU, + 0x1f7817cfU, + 0x18e058f0U, + 0x43bc1428U, + 0x75425a3cU, + 0x63f91706U, + 0x502fdb09U, + 0xcc11d599U, + 0x1604fbe1U, + 0x910fc555U, + 0x2c9321dfU, + 0xca12c8U, + 0x13adda3cU, + 0x3d44d706U, + 0xfff17b09U, + 0xe230599U, + 0xc11a03e1U, + 0x64910155U, + 0x9cd783dfU, + 0x4da9c1c8U, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0x30000000U, + 0x48000000U, + 0x64000000U, + 0xea000000U, + 0xc5000000U, + 0x4f800000U, + 0x75c00000U, + 0x3b600000U, + 0xa1d00000U, + 0xd9680000U, + 0xe0cc0000U, + 0x4cee0000U, + 0x18050000U, + 0x5c028000U, + 0x26084000U, + 0x7b122000U, + 0x289db000U, + 0x9b5a9800U, + 0xeb33dc00U, + 0x2a722200U, + 0xc4db100U, + 0xedb29b80U, + 0x4e3fdcc0U, + 0x15fc2320U, + 0xd198b090U, + 0x82d81828U, + 0x4dfb9fd4U, + 0x6d80021eU, + 0x94c00147U, + 0x7ee000c5U, + 0x21100153U, + 0xe588037bU, + 0x50dc03c4U, + 0x44e60276U, + 0x9c1901f3U, + 0x8604832bU, + 0xab0142ccU, + 0x509ea032U, + 0xb740f245U, + 0x65223878U, + 0x56a2cb7U, + 0x86d49a76U, + 0xd7e6ddf3U, + 0x98a12bU, + 0x8f49f3ccU, + 0xa92ebbb2U, + 0xbb776e85U, + 0xe1cc3b58U, + 0x396f2c27U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0x90000000U, + 0x58000000U, + 0x54000000U, + 0x72000000U, + 0xcf000000U, + 0xf2800000U, + 0x99400000U, + 0xcfa00000U, + 0xfb500000U, + 0x98b80000U, + 0x7dd40000U, + 0xe3ea0000U, + 0x257f0000U, + 0xbe308000U, + 0x56894000U, + 0xc35d6000U, + 0xbcad1000U, + 0xe7c94800U, + 0xb0f06400U, + 0xa9e56200U, + 0xce791300U, + 0xd6a34880U, + 0x9ccf6640U, + 0x8075e360U, + 0x37a05250U, + 0xff462948U, + 0x92b6757cU, + 0x76d6a8aaU, + 0x3b6f3435U, + 0x2733c876U, + 0xf1162591U, + 0xfb908248U, + 0x66d94382U, + 0xa3656099U, + 0x53391354U, + 0x13034bf8U, + 0x6c9f64a4U, + 0xc04de3beU, + 0x483453d3U, + 0x538c2b71U, + 0x1ad975a6U, + 0x6d7e2819U, + 0x72227514U, + 0x509ca898U, + 0xee4036f4U, + 0xd93b4af6U, + 0xd80b66afU, + 0x9407e3dbU, + 0x521b5193U, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0x70000000U, + 0xd8000000U, + 0xdc000000U, + 0x62000000U, + 0xdf000000U, + 0x2c800000U, + 0x15400000U, + 0xbe600000U, + 0x2b500000U, + 0x43680000U, + 0x38cc0000U, + 0xaa60000U, + 0x4bf70000U, + 0x438d8000U, + 0x41c34000U, + 0xe7326000U, + 0x5f2cd000U, + 0xb321c800U, + 0xe9219c00U, + 0x9a3a6200U, + 0xcb0d100U, + 0x1aefcb80U, + 0xea1a9dc0U, + 0xb11e160U, + 0xda849270U, + 0xdc502a08U, + 0x2bf50ebcU, + 0x738249d2U, + 0x79c9de25U, + 0x4b2b82f1U, + 0xe5344311U, + 0xb03fe15fU, + 0xa7af9206U, + 0x5073a83bU, + 0x9e5d4d8eU, + 0x24f3ab39U, + 0x171d4fcdU, + 0x1893a87dU, + 0x934d4c6bU, + 0xaf7baad6U, + 0x62c14d5dU, + 0x79bdabbbU, + 0xdd664c4eU, + 0x55d82859U, + 0xb1290cbdU, + 0x62c49f5U, + 0x8ea2df17U, + 0xb5e80264U, + 0x1e8c0108U, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0x30000000U, + 0x98000000U, + 0xa4000000U, + 0x5a000000U, + 0x33000000U, + 0xdf800000U, + 0x4ac00000U, + 0xa9600000U, + 0xa4d00000U, + 0x28680000U, + 0xd4440000U, + 0x732e0000U, + 0xc6f70000U, + 0x360a8000U, + 0x85044000U, + 0x1a80e000U, + 0xf045b000U, + 0x6928b800U, + 0x55e11c00U, + 0xd988e200U, + 0x57d1b100U, + 0x17eeba80U, + 0xe921cc0U, + 0x724c6060U, + 0x5e32f390U, + 0xe06cdbe8U, + 0x3847ec0cU, + 0x85223b1eU, + 0xa3e55ebbU, + 0xbc88034dU, + 0xdd54039fU, + 0x4fa6033fU, + 0x5ba3002aU, + 0xd9ac8061U, + 0xeea743d4U, + 0x5b2c626fU, + 0xbae2f0a2U, + 0x6804d87dU, + 0xdc03ef62U, + 0x6e0c3978U, + 0xc1125f81U, + 0xd08282e1U, + 0x6b504314U, + 0x8aa6e00fU, + 0xe126b232U, + 0x19e43915U, + 0x1f965faeU, + 0xaacc8206U, + 0x397742aaU, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0xd0000000U, + 0x8000000U, + 0x84000000U, + 0xea000000U, + 0x8f000000U, + 0x9c800000U, + 0x2ec00000U, + 0x86200000U, + 0x18d00000U, + 0xaf380000U, + 0x45540000U, + 0xa8620000U, + 0xf6350000U, + 0xc28000U, + 0x3204000U, + 0xfb4f6000U, + 0xc56dd000U, + 0x61b1b800U, + 0x589c9400U, + 0x24d76200U, + 0xf929d300U, + 0x5c4bb880U, + 0xded9740U, + 0xad6fe220U, + 0xd5b89110U, + 0x4a9c5b28U, + 0xf7c1057cU, + 0x3b1b852U, + 0x939c95abU, + 0x72576330U, + 0x88e9d21fU, + 0x4eebb86eU, + 0xbffd94feU, + 0x6e77e131U, + 0x73c9097U, + 0xd1465be5U, + 0x6a6004deU, + 0x2d313b06U, + 0x7e59d505U, + 0x26e28009U, + 0xbf04264U, + 0x7c7761b1U, + 0xd439d3d7U, + 0x2bd3bbc5U, + 0xa5a996ceU, + 0x5295e0aeU, + 0x5bc99339U, + 0xbda4d87bU, + 0xfe9045dfU, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0x70000000U, + 0x28000000U, + 0x2c000000U, + 0x82000000U, + 0x61000000U, + 0xbc800000U, + 0x5e400000U, + 0xbba00000U, + 0x88500000U, + 0x8ca80000U, + 0x43cc0000U, + 0xf9660000U, + 0xfda90000U, + 0xe7538000U, + 0x43214000U, + 0x980ba000U, + 0xa404d000U, + 0x3e1b6800U, + 0xbb1b2400U, + 0xd983a200U, + 0x4cd8d100U, + 0x6f56b80U, + 0xee6e25c0U, + 0xe63e22a0U, + 0x2a8c91b0U, + 0x89434988U, + 0x3eb444U, + 0xd5936852U, + 0x1ec724c9U, + 0xdfeda166U, + 0x26edd365U, + 0x3e68ebe0U, + 0x5e2a6506U, + 0x5e8001a3U, + 0xf4001e3U, + 0xcf2002d5U, + 0x8a10013eU, + 0x9d080139U, + 0x869c028eU, + 0x4b4e01b1U, + 0x8125014aU, + 0x19158223U, + 0x68984023U, + 0x48502275U, + 0x2cb9918eU, + 0xd3decb31U, + 0xa17af70aU, + 0xf9ad4943U, + 0x494bb533U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0x10000000U, + 0xa8000000U, + 0x8c000000U, + 0xbe000000U, + 0x41000000U, + 0x31800000U, + 0x5c00000U, + 0x9ae00000U, + 0xe4d00000U, + 0x7b780000U, + 0x69140000U, + 0x7d9a0000U, + 0x9bd10000U, + 0xcbf38000U, + 0x7d52c000U, + 0xf2a1a000U, + 0x4de5f000U, + 0xd8429800U, + 0xd13c6c00U, + 0xa73ba200U, + 0x9a34f300U, + 0x8db11880U, + 0xfd6eac40U, + 0xcc1a00a0U, + 0x5e110130U, + 0x71138278U, + 0x8982c144U, + 0x21d9a266U, + 0xa8f1f227U, + 0x1bd89893U, + 0xbed6e97U, + 0x5d48232bU, + 0xe2a632b3U, + 0xe5f0bb1dU, + 0x545b5dbcU, + 0x6f209a62U, + 0xe6396d61U, + 0xabb22244U, + 0x8867311cU, + 0x679b3aa8U, + 0x28cd9cd6U, + 0x25633965U, + 0x18199cf8U, + 0xf4193804U, + 0xba189f46U, + 0x6312bad7U, + 0x669e5f8bU, + 0xf9491983U, + 0x10baae65U, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0x90000000U, + 0x18000000U, + 0x94000000U, + 0xbe000000U, + 0xa7000000U, + 0x39800000U, + 0x6a400000U, + 0x6c600000U, + 0x55500000U, + 0x81e80000U, + 0x21040000U, + 0xda9a0000U, + 0x55d70000U, + 0xa5208000U, + 0xa6a4c000U, + 0x8dfe6000U, + 0x4b1cf000U, + 0x6397a800U, + 0x5b4fbc00U, + 0xeee46200U, + 0x348bf100U, + 0xad72a80U, + 0x38bb7e40U, + 0xfaf20260U, + 0xca930350U, + 0xdda8078U, + 0x9123c0dcU, + 0x88b6e086U, + 0x32fc33f9U, + 0xe693cb49U, + 0xb7d44fc9U, + 0x903b48e1U, + 0x82248c2dU, + 0xdf372a5bU, + 0x47ab7f42U, + 0xb77a0073U, + 0x2ec7030eU, + 0x4ea88145U, + 0x71f0c2f7U, + 0x490c6164U, + 0x668ff292U, + 0xf7cd2a23U, + 0x302c7f9eU, + 0x123280f5U, + 0xc727c0f7U, + 0xd3ace20cU, + 0x96b313eU, + 0x89d34b85U, + 0x77208fbfU, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0xd0000000U, + 0x8000000U, + 0x94000000U, + 0x36000000U, + 0xbd000000U, + 0x28800000U, + 0xa9c00000U, + 0x60a00000U, + 0x2cd00000U, + 0xc4380000U, + 0x4f1c0000U, + 0x6b820000U, + 0xc84d0000U, + 0x7e88000U, + 0x50b7c000U, + 0x34cd2000U, + 0x3837d000U, + 0x3d049800U, + 0xe88a0400U, + 0xc9cf2200U, + 0xb0bad300U, + 0x24cc1980U, + 0x502dc740U, + 0x791a0220U, + 0xd6810150U, + 0xe0d28158U, + 0xae26c1b4U, + 0x3007a082U, + 0x181d10f7U, + 0xfc19395aU, + 0x72161647U, + 0x830499b2U, + 0x18a049bU, + 0xb74f23acU, + 0x747ad3d2U, + 0x64ec1aafU, + 0x413dc56eU, + 0xeb820385U, + 0x84d0065U, + 0x67e88111U, + 0x80b7c1f3U, + 0x3ccd22f4U, + 0xac37d266U, + 0xb049a2dU, + 0x558a0599U, + 0xe14f22dfU, + 0x197ad222U, + 0x446c1aa3U, + 0x7cfdc668U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0xb0000000U, + 0x8000000U, + 0xf4000000U, + 0xc6000000U, + 0xe9000000U, + 0xd6800000U, + 0xf2400000U, + 0x6200000U, + 0x4f500000U, + 0x86a80000U, + 0x8c1c0000U, + 0x1a1e0000U, + 0xb0d0000U, + 0x41888000U, + 0x31d9c000U, + 0x10e3a000U, + 0x94321000U, + 0xf05b6800U, + 0x613e1400U, + 0xe4dda200U, + 0xd46f1100U, + 0x997be980U, + 0x71fbd6c0U, + 0xf6a00220U, + 0xa41002d0U, + 0x3e080298U, + 0x750c0164U, + 0x5496037aU, + 0xd5410019U, + 0xcdbe8300U, + 0xad88c299U, + 0x9bd52140U, + 0x13f6d1f9U, + 0x21b84870U, + 0x799c511U, + 0x98d3691cU, + 0xa67217f7U, + 0xd66ba3abU, + 0xfe7e11bcU, + 0xda6d6b67U, + 0xa46f1453U, + 0xb16b22e8U, + 0x55ebd075U, + 0x88b8c866U, + 0xb10c06eeU, + 0xda86c92bU, + 0xa85105e5U, + 0x6d264807U, + 0xbed4c77aU, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0x70000000U, + 0xc8000000U, + 0xfc000000U, + 0xc6000000U, + 0xa5000000U, + 0x7a800000U, + 0xc6400000U, + 0x8ee00000U, + 0x2f500000U, + 0x9a680000U, + 0xe0140000U, + 0x10060000U, + 0x981d0000U, + 0x44118000U, + 0xf201c000U, + 0x9f0b2000U, + 0x19979000U, + 0x19cc6800U, + 0x323e8c00U, + 0x67ed2200U, + 0x3bda9100U, + 0x5535e880U, + 0x6a6b4dc0U, + 0x68000120U, + 0xcc0002f0U, + 0x2e000398U, + 0x29000354U, + 0x748002caU, + 0x9f4000e9U, + 0x32600123U, + 0x4c100229U, + 0x6e080383U, + 0x9040099U, + 0x48e027bU, + 0x575902ddU, + 0xce7f8379U, + 0x8a08c048U, + 0xcb1ca23cU, + 0x738b5206U, + 0xc2d6c977U, + 0xd9a8df00U, + 0xe12a69e3U, + 0x10738d89U, + 0x2b14a3b3U, + 0x638f51a1U, + 0x5ad8cb9fU, + 0x9db1ddefU, + 0x1335ebd4U, + 0x8f6b4d69U, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0xb0000000U, + 0x58000000U, + 0xac000000U, + 0x6e000000U, + 0x41000000U, + 0x23800000U, + 0x46c00000U, + 0x22200000U, + 0x33d00000U, + 0x23a80000U, + 0x4a040000U, + 0x8b1e0000U, + 0xe89f0000U, + 0xe438000U, + 0x9c66c000U, + 0xf7ada000U, + 0x7811b000U, + 0x5c1cf800U, + 0x96023400U, + 0x5d13a200U, + 0x159eb100U, + 0xabd77a80U, + 0x6fb0f6c0U, + 0x34080360U, + 0x221403b0U, + 0x3f160338U, + 0x8a8b03c4U, + 0x915581eeU, + 0xa6edc3abU, + 0x3ef82130U, + 0x72fc71cbU, + 0xce4d800U, + 0xa5fe4433U, + 0x727778a4U, + 0xf6a0f66dU, + 0xfb800037U, + 0xaac00099U, + 0xec200212U, + 0xc2d00232U, + 0x58280191U, + 0xa0c4039dU, + 0xc73e039cU, + 0x9a4f01a9U, + 0xe6b83d9U, + 0x90a2c232U, + 0x5e93a1a2U, + 0xa35eb139U, + 0x71f778f1U, + 0x4060f51eU, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0x50000000U, + 0x48000000U, + 0xc000000U, + 0xca000000U, + 0xfb000000U, + 0xb1800000U, + 0x5ec00000U, + 0xc9600000U, + 0xc1d00000U, + 0xaee80000U, + 0x46040000U, + 0x71020000U, + 0xea9d0000U, + 0xbf4b8000U, + 0xdfb04000U, + 0x4aee000U, + 0xa5377000U, + 0x13f8b800U, + 0x86891c00U, + 0xc54ce200U, + 0x9cba7100U, + 0xa13b3a80U, + 0x75ed5d40U, + 0xe7880320U, + 0xc7d40130U, + 0x7fea01a8U, + 0xfc9902acU, + 0x864983e6U, + 0x392d414bU, + 0x71e5600dU, + 0x818730ebU, + 0xa6d6587dU, + 0x7d7e6c63U, + 0x1fd458e1U, + 0xdbe36dadU, + 0xca9fd8c6U, + 0xaf532e26U, + 0x37b13876U, + 0x58a45d4eU, + 0x2729803aU, + 0xe4fd42f8U, + 0xfd0d6149U, + 0x60833301U, + 0xe4545920U, + 0x3e236e6dU, + 0x127fdafbU, + 0x60432ce5U, + 0x18393967U, + 0xd3705eabU, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0xf0000000U, + 0xa8000000U, + 0xfc000000U, + 0xaa000000U, + 0x63000000U, + 0x18800000U, + 0xbb400000U, + 0xa6e00000U, + 0x7a500000U, + 0x91680000U, + 0xfb940000U, + 0xe3d60000U, + 0x3db10000U, + 0x2cb18000U, + 0x43384000U, + 0x96efe000U, + 0xb2545000U, + 0xbd7c0800U, + 0x9974c00U, + 0xd4d1e200U, + 0x73315100U, + 0x5efb8880U, + 0x9e4e0fc0U, + 0x4f6780a0U, + 0x3e8942f0U, + 0x9a5e6228U, + 0x16c124cU, + 0x8393eac2U, + 0x47c31d1dU, + 0xc3adea33U, + 0x19a61d65U, + 0x92aa68a7U, + 0x563f5fc3U, + 0xb77c0934U, + 0xda974c2fU, + 0x4451e07fU, + 0xc471525eU, + 0xfa1b893eU, + 0x7b1e0d6eU, + 0x6c8f82b6U, + 0x1d5d4152U, + 0xc7e8639cU, + 0xfdcd11a3U, + 0x98aa6a1dU, + 0x853f5db3U, + 0x27fc0925U, + 0x6dd74e47U, + 0xe0b1e2d3U, + 0x2121528cU, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0xd0000000U, + 0xd8000000U, + 0x24000000U, + 0xf2000000U, + 0x2b000000U, + 0x7f800000U, + 0xb2c00000U, + 0x24200000U, + 0x3d00000U, + 0xbca80000U, + 0xb0840000U, + 0xdf520000U, + 0xcdef0000U, + 0x506e8000U, + 0xf1bd4000U, + 0xfe0de000U, + 0xb517b000U, + 0xfa863800U, + 0xe04ef400U, + 0xe877e200U, + 0xe5bcb100U, + 0xa41aba80U, + 0xb20cb740U, + 0x8b1c8160U, + 0xaf824190U, + 0x6acb6148U, + 0x2ef3ecU, + 0xf1d9da9eU, + 0x97b6465bU, + 0xcf1f5958U, + 0x6d8f05a3U, + 0xe9c0bb8cU, + 0x53b7b649U, + 0x4d08000dU, + 0x4e9401e8U, + 0x6a5a019bU, + 0x377b0278U, + 0xb03481d3U, + 0x19c64314U, + 0x1bb9600dU, + 0x1111f22fU, + 0x489f5bc5U, + 0x6b4f0544U, + 0x47e0ba65U, + 0x8f67b5b3U, + 0xa42001c3U, + 0x43d0015bU, + 0x1ca8031fU, + 0x6084033dU, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0x50000000U, + 0xd8000000U, + 0x4c000000U, + 0x22000000U, + 0xdf000000U, + 0x26800000U, + 0x8ec00000U, + 0xb0e00000U, + 0xefd00000U, + 0x73780000U, + 0xf4940000U, + 0x19d20000U, + 0x227f0000U, + 0x5f138000U, + 0xe6874000U, + 0xaed66000U, + 0xe0ea9000U, + 0x37c13800U, + 0x3f634c00U, + 0xd69c6200U, + 0xc6d19300U, + 0x4f8b880U, + 0xd1cf0d40U, + 0x566b8160U, + 0x41134230U, + 0x93846008U, + 0xc355923cU, + 0x26b2bbfaU, + 0xf4f40f0bU, + 0x99d2004bU, + 0xe27f03c3U, + 0x7f1381d7U, + 0xb68740a9U, + 0x76d661c4U, + 0xacea9206U, + 0x15c13839U, + 0xe0634f34U, + 0xf01c6046U, + 0x48119231U, + 0xb418bbe0U, + 0x3e1f0d98U, + 0x2513814cU, + 0xb587417aU, + 0x8a5660a3U, + 0xe12a910fU, + 0x79a13885U, + 0x12734e8eU, + 0x370460adU, + 0x295900aU, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0x30000000U, + 0x68000000U, + 0xec000000U, + 0xfa000000U, + 0xfb000000U, + 0x61800000U, + 0x89c00000U, + 0xd9200000U, + 0x34d00000U, + 0x1a80000U, + 0x33840000U, + 0x7ece0000U, + 0xd2b90000U, + 0x1e0b8000U, + 0x3d1a4000U, + 0x9896e000U, + 0xa7557000U, + 0x4f635800U, + 0x893a9400U, + 0x8cd0e200U, + 0x15b87100U, + 0x7d8eda80U, + 0xfbddd4c0U, + 0x5e2383a0U, + 0xf75e42b0U, + 0xf778e168U, + 0x9d3c732cU, + 0xc2c0d826U, + 0x90a4d597U, + 0xf108028cU, + 0x1294023fU, + 0x94460300U, + 0xf2ed0229U, + 0x92ed833fU, + 0x42e74029U, + 0xbaf36396U, + 0xee633d6U, + 0x70f63a1fU, + 0x9de1a7f0U, + 0xfd635821U, + 0xee3a9703U, + 0xdf50e0d7U, + 0xbb7873c5U, + 0x572eda10U, + 0x51cdd5f1U, + 0x1d2b837bU, + 0x82ca4223U, + 0x30bee0a7U, + 0xc111720dU, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0xf0000000U, + 0x68000000U, + 0x6c000000U, + 0x62000000U, + 0x69000000U, + 0xc2800000U, + 0xf2c00000U, + 0x5e600000U, + 0x7dd00000U, + 0x3bf80000U, + 0x269c0000U, + 0xccc60000U, + 0x5d610000U, + 0x4a438000U, + 0x1b94000U, + 0x8f3ca000U, + 0x4fe21000U, + 0x809a7800U, + 0xcbd41c00U, + 0x64e2a200U, + 0x7b0f1300U, + 0x387f980U, + 0x3c405fc0U, + 0x3ea383a0U, + 0x22a942b0U, + 0xe8a4a008U, + 0x8dae1264U, + 0xdd247aaaU, + 0x2ee91e7bU, + 0xde0722f1U, + 0x33075353U, + 0x3f80da65U, + 0xa6470c91U, + 0xa3a359eaU, + 0x862e4e32U, + 0x7d67fbceU, + 0x1a505df8U, + 0xf9bb8025U, + 0x7b2542f1U, + 0x29faa3faU, + 0xe783110aU, + 0x259f862U, + 0x3dad5f96U, + 0x153e00c4U, + 0xd2fd0233U, + 0x2405835cU, + 0x5e184006U, + 0xf31f2295U, + 0x5f8b5250U, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0xf0000000U, + 0xb8000000U, + 0xac000000U, + 0x46000000U, + 0x6b000000U, + 0xdf800000U, + 0xbec00000U, + 0x1fa00000U, + 0x37d00000U, + 0x99380000U, + 0x87840000U, + 0x82c60000U, + 0xb1a30000U, + 0xb8db8000U, + 0x14a7c000U, + 0xb85ce000U, + 0x6ff53000U, + 0x8c29b800U, + 0x5f1b8400U, + 0x582e200U, + 0x8bc23300U, + 0xf72c3a80U, + 0xa88b47c0U, + 0xff5b80e0U, + 0x3667c1b0U, + 0xf9fce398U, + 0x6f25326cU, + 0x3491b99eU, + 0xa15f844bU, + 0x164e366U, + 0xd8713273U, + 0x16efbb9aU, + 0xb2b88725U, + 0x43596295U, + 0x5865f3a9U, + 0xd6f0db1fU, + 0x12be7420U, + 0xb3523b74U, + 0xe06c4432U, + 0x7ae60135U, + 0x54b3009dU, + 0xd843838dU, + 0x3ff3c205U, + 0xc422e061U, + 0x4b1232dbU, + 0xef94390aU, + 0xa6cf47edU, + 0x43bd81d1U, + 0xc9d4c143U, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0xb0000000U, + 0xa8000000U, + 0xc000000U, + 0x22000000U, + 0x27000000U, + 0xf8800000U, + 0x65c00000U, + 0x4c600000U, + 0xdd500000U, + 0x49b80000U, + 0x81240000U, + 0x8cfe0000U, + 0x6c890000U, + 0x23db8000U, + 0xe5734000U, + 0x90d66000U, + 0x5bf7d000U, + 0x5c099800U, + 0x5a183c00U, + 0x930de200U, + 0xce849300U, + 0xc4dffa80U, + 0xbdefeec0U, + 0x450478a0U, + 0xbf9caf30U, + 0x8d521808U, + 0x31ab7d5cU, + 0x353b81c2U, + 0xbae34067U, + 0xcd8e6199U, + 0xd243d119U, + 0x7d2f98ecU, + 0x66e53f3fU, + 0x57906268U, + 0xe15ad0ccU, + 0x3ac19faU, + 0xa227db3U, + 0xe66000c7U, + 0x8650029cU, + 0x9b3800e2U, + 0x7fe40317U, + 0xb21e03f1U, + 0xff1901d5U, + 0xfc838116U, + 0xfbc7428cU, + 0xe17062afU, + 0xecad250U, + 0xf6f41918U, + 0x8f967ea4U, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0xd0000000U, + 0x78000000U, + 0x7c000000U, + 0xe2000000U, + 0x11000000U, + 0xb800000U, + 0x7ec00000U, + 0xf9600000U, + 0x25500000U, + 0xbfa80000U, + 0x402c0000U, + 0xa8e20000U, + 0x968b0000U, + 0x9f418000U, + 0xa2b54000U, + 0xe1a8a000U, + 0x1325b000U, + 0x827a3800U, + 0x4bde3c00U, + 0x1ce92200U, + 0xe090f100U, + 0x88529b80U, + 0xf63b8f40U, + 0x1ff31be0U, + 0xf21eccf0U, + 0xc913ba08U, + 0x47877e04U, + 0x34c3804eU, + 0xec6e424bU, + 0xb0c1220dU, + 0x327cf261U, + 0xa3d098b8U, + 0xf8e08d4fU, + 0xae9a98e0U, + 0x3478e70U, + 0x90b91ac8U, + 0x88b9cca4U, + 0x64b0385eU, + 0x1eb93c33U, + 0xa3aaa3c1U, + 0x323eb30bU, + 0x21f3baedU, + 0x31177c11U, + 0x7b8b8270U, + 0x36d241ebU, + 0x2d6b20beU, + 0xc34bf243U, + 0x30bb1909U, + 0xb8a2cfafU, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0xf0000000U, + 0x18000000U, + 0x3c000000U, + 0x3e000000U, + 0x99000000U, + 0xd3800000U, + 0x13c00000U, + 0x3ee00000U, + 0x58500000U, + 0x51280000U, + 0xb8ac0000U, + 0x60660000U, + 0x22070000U, + 0xf70d8000U, + 0x4286c000U, + 0x1449a000U, + 0x37393000U, + 0xfda11800U, + 0x7df14c00U, + 0xb0c42200U, + 0x267ff100U, + 0x3708bb80U, + 0xe2987fc0U, + 0x44d3a60U, + 0xdf22bdf0U, + 0xd9aa9978U, + 0x7fe08ca4U, + 0x17c802aeU, + 0x6cfc027fU, + 0xf74e03e3U, + 0xcfab0035U, + 0x62eb8292U, + 0xd641c039U, + 0x302422ccU, + 0xa72ff3c2U, + 0x55a0b92dU, + 0xb9f47ec6U, + 0x42cb3a6fU, + 0x9975bed7U, + 0x418f196fU, + 0x1cca4c57U, + 0xb067a12fU, + 0x6a0233f7U, + 0xc3029bbfU, + 0xa88c8effU, + 0x974e00a3U, + 0x7fab0115U, + 0x9aeb8242U, + 0x1a41c391U, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0x90000000U, + 0x98000000U, + 0x64000000U, + 0x2e000000U, + 0xab000000U, + 0xfc800000U, + 0xe6c00000U, + 0xf8a00000U, + 0x26500000U, + 0xf4680000U, + 0x2bec0000U, + 0x8daa0000U, + 0x39d70000U, + 0xf22a8000U, + 0xef88c000U, + 0x4e50e000U, + 0xd879d000U, + 0x19e2f800U, + 0xfcbb2400U, + 0xd85a6200U, + 0x27611100U, + 0x237a1b80U, + 0xdd7ef640U, + 0xe7a9860U, + 0x6e13490U, + 0x5620f938U, + 0x618025ecU, + 0x955ae012U, + 0x2cfed14bU, + 0x3207abaU, + 0x4e1fe5e5U, + 0x7b0080fbU, + 0x849fc108U, + 0x12da611eU, + 0x4ea11309U, + 0xe95a1a69U, + 0x26eef583U, + 0x66329984U, + 0x899d341cU, + 0xf942f83aU, + 0xfeeb24dfU, + 0xe23263a4U, + 0x378d12ecU, + 0xca501892U, + 0x6669f58bU, + 0x2af01b1aU, + 0x6439f555U, + 0x10981833U, + 0x74d5f4ccU, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0x90000000U, + 0xa8000000U, + 0x6c000000U, + 0xf2000000U, + 0xdf000000U, + 0x42800000U, + 0x15c00000U, + 0x57200000U, + 0x63500000U, + 0x4e80000U, + 0xed640000U, + 0x5c2a0000U, + 0x57d90000U, + 0xf0238000U, + 0x45dd4000U, + 0x1f396000U, + 0x3f4a9000U, + 0xcef09800U, + 0xf6761400U, + 0x80bae200U, + 0x6f07d100U, + 0x3a81fa80U, + 0x71c88640U, + 0x592878a0U, + 0xe65cc4b0U, + 0xf57a9b48U, + 0x483f143cU, + 0xc1d1632aU, + 0x212e92a7U, + 0x825a9ab4U, + 0xfb6f1501U, + 0xcd396271U, + 0x304a902eU, + 0x8470986eU, + 0x1fb615b9U, + 0x8d9ae325U, + 0xbf57d3c8U, + 0x8ee9f90bU, + 0x566c86a6U, + 0x10a27832U, + 0xc715c4c3U, + 0x56911adaU, + 0x83d654b8U, + 0x862a0354U, + 0xa4d902e6U, + 0xe0a383e5U, + 0x1f1d415fU, + 0xa29961b7U, + 0x25da92bbU, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0x50000000U, + 0x48000000U, + 0x4c000000U, + 0xd6000000U, + 0x63000000U, + 0x9f800000U, + 0xbf400000U, + 0xb6a00000U, + 0x76d00000U, + 0x2ae80000U, + 0xffe40000U, + 0xb3720000U, + 0x2ba50000U, + 0x764f8000U, + 0x6425c000U, + 0xc102e000U, + 0x3e8bb000U, + 0x31d5c800U, + 0x3f700400U, + 0x1da56200U, + 0xe54a7100U, + 0xe3a52a80U, + 0x7a5eb540U, + 0x123f2b20U, + 0xf21fb430U, + 0xe902abd8U, + 0xc29f75ccU, + 0x5fcfcbdeU, + 0x871078dU, + 0x5038e022U, + 0xa31ab127U, + 0x7f804a2dU, + 0x4f54c4feU, + 0xaeba0211U, + 0x72d10234U, + 0xb0f5800eU, + 0x4af4c185U, + 0x4ff760e6U, + 0xb7f71bdU, + 0x7fa2aafaU, + 0xa44f766bU, + 0x9d27c8b3U, + 0xeb950653U, + 0x7d4ae103U, + 0xa7bfb14bU, + 0x404fc92fU, + 0xf7310645U, + 0x4698e12aU, + 0x85cab063U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x30000000U, + 0x98000000U, + 0x64000000U, + 0x6000000U, + 0x65000000U, + 0x55800000U, + 0xb6400000U, + 0x17600000U, + 0x15d00000U, + 0x7c280000U, + 0x633c0000U, + 0x71be0000U, + 0x91670000U, + 0x30de8000U, + 0x49b1c000U, + 0xe5692000U, + 0xfecbf000U, + 0xe0a12800U, + 0x4af2bc00U, + 0x4f9fa200U, + 0xc1463100U, + 0xd9f60980U, + 0xc71e4cc0U, + 0x16800860U, + 0xd6d54c90U, + 0x5ca88b98U, + 0x48ef8c54U, + 0x1c8928b6U, + 0x69cebe89U, + 0x5e21a1a5U, + 0x60213193U, + 0x71288b5eU, + 0xeaaf8f91U, + 0xf5e928b5U, + 0x4d1ebdcfU, + 0xe989a3a0U, + 0xb45d3270U, + 0x44768948U, + 0xbd588fecU, + 0xfbffab52U, + 0xc4037e97U, + 0x16168090U, + 0xad1dc09cU, + 0x999f209eU, + 0x4c40f171U, + 0x1069aa65U, + 0x23587e77U, + 0xfaf60044U, + 0x978b026eU, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x10000000U, + 0x68000000U, + 0x5c000000U, + 0xaa000000U, + 0x5d000000U, + 0x91800000U, + 0x34400000U, + 0x4a00000U, + 0xf7d00000U, + 0x19e80000U, + 0xf4fc0000U, + 0x3d7a0000U, + 0x4d390000U, + 0xc79d8000U, + 0xf35e4000U, + 0xd0232000U, + 0x7613f000U, + 0xb716e800U, + 0xac8bc400U, + 0xb5d6a200U, + 0x58f1b100U, + 0xaf6fc980U, + 0x44313440U, + 0xb015cba0U, + 0x58083470U, + 0x44084928U, + 0x8e167434U, + 0xc30b6866U, + 0x3a9584e1U, + 0x52d5809aU, + 0xfc72429bU, + 0x56b120a9U, + 0xded6f346U, + 0x1e7169a9U, + 0x27ac863eU, + 0x9d480185U, + 0x432c0364U, + 0x44920006U, + 0xa9c50071U, + 0x92e780e2U, + 0xe2674137U, + 0xbdbea0b3U, + 0xd84db0e5U, + 0xf6b5ca8cU, + 0xeed83452U, + 0x6604887U, + 0x3aa767bU, + 0x3516b01U, + 0xe83c87b2U, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0xf0000000U, + 0xc8000000U, + 0x64000000U, + 0x9a000000U, + 0xfd000000U, + 0xa6800000U, + 0xecc00000U, + 0x86200000U, + 0x8500000U, + 0xabe80000U, + 0xcef40000U, + 0x74660000U, + 0x8ea50000U, + 0xfb8e8000U, + 0xfa584000U, + 0x82f02000U, + 0x1a7c1000U, + 0xf1bcf800U, + 0xfc187400U, + 0x8616a200U, + 0xeb105100U, + 0x558ad880U, + 0xe55167c0U, + 0x556cd920U, + 0x5e346490U, + 0x344258e8U, + 0x4dfc2534U, + 0xf5fa7b3aU, + 0x19e434e3U, + 0xc7e881d0U, + 0x50fd4085U, + 0xc37ea1fdU, + 0xed24512cU, + 0x1dccd81bU, + 0x6ea467ccU, + 0x6b8a59abU, + 0xe25825b4U, + 0xdef47b77U, + 0x2c75343aU, + 0xf2a000eeU, + 0x3d900269U, + 0x3148014bU, + 0x27640089U, + 0x372e0176U, + 0xc0c10008U, + 0x38208384U, + 0x4f5942c2U, + 0x70a07fU, + 0x4cb5523eU, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x90000000U, + 0x88000000U, + 0x74000000U, + 0x6e000000U, + 0x2f000000U, + 0x7f800000U, + 0x4c400000U, + 0xfea00000U, + 0xc9d00000U, + 0x23e80000U, + 0x8ffc0000U, + 0x3dea0000U, + 0xf8e50000U, + 0xde688000U, + 0x3ebac000U, + 0xe9dc6000U, + 0xd3ebb000U, + 0x97f02800U, + 0xc1ed8400U, + 0xe2fce200U, + 0x9f7d7100U, + 0x6e2e4980U, + 0xda1f3640U, + 0x610e4820U, + 0xa08f34d0U, + 0x2bc64a38U, + 0x4ee337fcU, + 0x2d64485eU, + 0xab2a37a1U, + 0xfc8ecbe2U, + 0x81c9f50bU, + 0x77f02969U, + 0x11ed8522U, + 0xafce2ebU, + 0x7b7d73d9U, + 0x882e4beaU, + 0x811f37ffU, + 0x708e4843U, + 0xc3cf34e9U, + 0xaae64962U, + 0xcb7337cbU, + 0xf02c4889U, + 0xed063492U, + 0xe28cc8a3U, + 0xf6d0f70dU, + 0x9472a910U, + 0xd7b2468cU, + 0x3d4802f6U, + 0x962c0345U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0x90000000U, + 0xe8000000U, + 0xfc000000U, + 0x12000000U, + 0x67000000U, + 0xf4800000U, + 0xeac00000U, + 0xbe600000U, + 0x40500000U, + 0xf9b80000U, + 0x89bc0000U, + 0x31ba0000U, + 0x45b90000U, + 0x3ba98000U, + 0xa6a94000U, + 0xc9386000U, + 0xc5685000U, + 0xf6c77800U, + 0xfc637c00U, + 0xaf49e200U, + 0x612d1300U, + 0x997d1980U, + 0x14ce2e40U, + 0xe37d19a0U, + 0x4fce2cf0U, + 0x65fd1bc8U, + 0x520e2cdcU, + 0xc71d1bf2U, + 0x49e2d1bU, + 0x92c51a91U, + 0xaa722e2dU, + 0xae47185cU, + 0x8cb72ea1U, + 0x1a349985U, + 0x2ff76c90U, + 0x111d7a4bU, + 0xc58a7d3aU, + 0x1f586147U, + 0xb93851a3U, + 0x7d7f7b56U, + 0x82df7cddU, + 0x8273e294U, + 0x325410fdU, + 0xeb499b7U, + 0x95376c6bU, + 0x277d7a8aU, + 0xe9da7fafU, + 0x1ce0634fU, + 0xab84500cU, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0xf0000000U, + 0x38000000U, + 0x7c000000U, + 0xb2000000U, + 0xaf000000U, + 0xb8800000U, + 0x54c00000U, + 0x4a600000U, + 0x8a500000U, + 0x77b80000U, + 0xc1ac0000U, + 0x80b60000U, + 0x35330000U, + 0xbe658000U, + 0x5c5b4000U, + 0x6a76000U, + 0xac3bd000U, + 0x87f7b800U, + 0x5d017c00U, + 0x379ae200U, + 0xfc5c9300U, + 0xd6bedb80U, + 0x8435afc0U, + 0x33e6dae0U, + 0xab09aef0U, + 0x5688db48U, + 0x59c6ae7cU, + 0x95e35b82U, + 0x2202ec63U, + 0xa717ba81U, + 0x1c917da5U, + 0x6ac2e094U, + 0x6f6091d9U, + 0xe1d0d861U, + 0x29faaf22U, + 0x700d58c4U, + 0xf80ded41U, + 0x9c1c3b45U, + 0x42053c64U, + 0x970e0191U, + 0xc49f019dU, + 0xe6d38160U, + 0xe5684147U, + 0x32c2e0b0U, + 0x23609168U, + 0x8bd0dbecU, + 0xafaaefaU, + 0x428d5a37U, + 0x7fcded4fU, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0xd0000000U, + 0xc8000000U, + 0x14000000U, + 0x8e000000U, + 0xcf000000U, + 0x7d800000U, + 0x5bc00000U, + 0x53200000U, + 0x49500000U, + 0x85780000U, + 0xb9ac0000U, + 0x93120000U, + 0x279d0000U, + 0xfac48000U, + 0x31b2c000U, + 0xa7126000U, + 0x9984f000U, + 0x2ddf5800U, + 0x90263400U, + 0x66c4e200U, + 0x8bab3300U, + 0xd609bb80U, + 0x33100740U, + 0xd789d920U, + 0x2c9f750U, + 0x3db203b8U, + 0xf50d037cU, + 0xcc9c8156U, + 0x114ec27fU, + 0x79786054U, + 0x13b5f249U, + 0xca09d9dbU, + 0x4909f4b5U, + 0x469200f6U, + 0x785d03d4U, + 0xfe48332U, + 0x73e2c045U, + 0x19ea61e5U, + 0xa0e8f04eU, + 0x1e6d5b28U, + 0x6a2b3524U, + 0x37d8631aU, + 0x1125f2e1U, + 0x3451dbbfU, + 0x7df5f68fU, + 0x16f80147U, + 0x3d6c01d3U, + 0x95b201c1U, + 0xf10d01d4U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0x30000000U, + 0xa8000000U, + 0x64000000U, + 0x96000000U, + 0x23000000U, + 0xf800000U, + 0x50400000U, + 0xc8600000U, + 0xcd00000U, + 0x9fb80000U, + 0xa0fc0000U, + 0x550e0000U, + 0xdc810000U, + 0x97c68000U, + 0xcc21c000U, + 0xfaade000U, + 0xd477b000U, + 0xa6d8a800U, + 0x86ae9c00U, + 0x4e656200U, + 0x17d77300U, + 0xc33c980U, + 0x9ab8ecc0U, + 0xe47028a0U, + 0xede5e90U, + 0xe2b601d8U, + 0xd87d034cU, + 0x34c8831eU, + 0x3a0c011U, + 0xcaeb63d9U, + 0x2c16712fU, + 0x2154818U, + 0x7d092f4eU, + 0x7885c84bU, + 0x61c5ed00U, + 0xdf38a880U, + 0x5d3e9e40U, + 0xe03d61e0U, + 0xf8bb70f0U, + 0xa965c8e8U, + 0xde55ef84U, + 0xe760aa4aU, + 0x91529f63U, + 0x4aeb6386U, + 0xec16711fU, + 0x62154a72U, + 0x4d092cdfU, + 0xd085c870U, + 0x5c5ee8aU, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0x90000000U, + 0x58000000U, + 0x4000000U, + 0x82000000U, + 0x5000000U, + 0x5800000U, + 0x52400000U, + 0x42e00000U, + 0xcad00000U, + 0x71280000U, + 0xe8740000U, + 0x340a0000U, + 0xa070000U, + 0x79168000U, + 0x13894000U, + 0x8d4b2000U, + 0x46707000U, + 0x1f0aa800U, + 0x64804c00U, + 0x65d7a200U, + 0xddbe3100U, + 0xd1b70880U, + 0x6fa97e40U, + 0x5cbe2b60U, + 0x163a0d10U, + 0x18e00088U, + 0x8bd00354U, + 0xd6a801f6U, + 0x2f340319U, + 0x2b6a0263U, + 0x9697032fU, + 0xc8de83daU, + 0x342d42fcU, + 0xcde921cdU, + 0xf643724aU, + 0x10f6292bU, + 0xb7de0cc4U, + 0xe0a20121U, + 0x60330390U, + 0x77fc81c8U, + 0x475e43b4U, + 0x5f75a326U, + 0xbc8d3231U, + 0x21cb8b07U, + 0x7fb73d21U, + 0x44ab8a8fU, + 0x32273ef5U, + 0xae38939U, + 0xd6c33c8cU, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0x30000000U, + 0x98000000U, + 0x34000000U, + 0x22000000U, + 0x2b000000U, + 0xbd800000U, + 0x79400000U, + 0x2fe00000U, + 0x57d00000U, + 0xaf280000U, + 0x1b640000U, + 0xf81e0000U, + 0xe40f0000U, + 0x2a148000U, + 0xb7114000U, + 0x3390e000U, + 0x44557000U, + 0x9b6e0800U, + 0xb8072c00U, + 0x441a6200U, + 0x1a0b3100U, + 0x2f0a6a80U, + 0x7931cc0U, + 0x664c8860U, + 0xb07d6dd0U, + 0x5800008U, + 0x3d40016cU, + 0x35e00216U, + 0x78d001f5U, + 0xa8a80257U, + 0x7d240123U, + 0x487e00c2U, + 0xe19f0124U, + 0x175c81a9U, + 0x82e5432aU, + 0x4b46e2abU, + 0xecee73eeU, + 0xe64c8992U, + 0xf07d6eecU, + 0xa5800325U, + 0xd4002acU, + 0xade003f6U, + 0x4cd00365U, + 0x8aa8007fU, + 0x5624033fU, + 0xf5fe026cU, + 0x98df00e5U, + 0x38bc834cU, + 0xd5354166U, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0xd0000000U, + 0x68000000U, + 0x24000000U, + 0xaa000000U, + 0x93000000U, + 0xf4800000U, + 0xc4c00000U, + 0x8da00000U, + 0xb7500000U, + 0xcff80000U, + 0x51240000U, + 0x37920000U, + 0x98410000U, + 0xcd6a8000U, + 0x40f24000U, + 0x83b3e000U, + 0x4e535000U, + 0x869b800U, + 0xb16e4400U, + 0x16eb6200U, + 0x86b01300U, + 0x1fc8da80U, + 0x4d2b5740U, + 0x11833ba0U, + 0x255c0790U, + 0xd0f88228U, + 0x8bb3420cU, + 0x1a5960f2U, + 0x1a6110c3U, + 0x6e7a593eU, + 0x6c6d1401U, + 0x7b7ad845U, + 0xf5fa571bU, + 0xca31b9baU, + 0x971a47efU, + 0x4e81631cU, + 0x9fd5124aU, + 0x8d305867U, + 0xb1981780U, + 0xf55a5910U, + 0xb8fd1768U, + 0xafa2daacU, + 0xb04e55e2U, + 0x897bb9abU, + 0x9aef4692U, + 0xa8a1e263U, + 0xf6d2532eU, + 0x42a339e9U, + 0x5cc05a9U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0x10000000U, + 0x28000000U, + 0xcc000000U, + 0x4a000000U, + 0x81000000U, + 0x61800000U, + 0x4a400000U, + 0xdee00000U, + 0x2ed00000U, + 0x83380000U, + 0x69740000U, + 0x678a0000U, + 0x41590000U, + 0x1e7f8000U, + 0x151e4000U, + 0x3f94a000U, + 0x5558f000U, + 0x80722800U, + 0x2a12cc00U, + 0x71012200U, + 0x798fb300U, + 0xbe410880U, + 0x70f07c40U, + 0x29d5aaa0U, + 0x29a88c30U, + 0xc3a783a8U, + 0x92ba4144U, + 0xfb26a1a6U, + 0x6d75f259U, + 0xd187aaf3U, + 0xb2558d8fU, + 0x1aea00a2U, + 0xb8c90188U, + 0x602783e3U, + 0x45fa40d7U, + 0x646a1aeU, + 0x54e5f27aU, + 0x8fdfaa44U, + 0xf2b18ff1U, + 0xb380060U, + 0x757403d0U, + 0x258a02b8U, + 0x1c59001cU, + 0x1dff82aaU, + 0x125e42abU, + 0xcaf4a3d4U, + 0xb0c8f2e9U, + 0xbc2a29ccU, + 0x27f6cf12U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0xf0000000U, + 0x98000000U, + 0xe4000000U, + 0x76000000U, + 0xb5000000U, + 0xe3800000U, + 0xae400000U, + 0xfe200000U, + 0x94d00000U, + 0x9e80000U, + 0x1bbc0000U, + 0x57860000U, + 0x90570000U, + 0xa72e8000U, + 0x8d53c000U, + 0x18b12000U, + 0x21123000U, + 0x4d9ba800U, + 0x9f4a1400U, + 0x9bb9a200U, + 0x1786f100U, + 0xf04c0980U, + 0x5727e7c0U, + 0x155d2860U, + 0xfca5d690U, + 0x570e8258U, + 0xf883c014U, + 0x7cd9206eU, + 0x35ee32e9U, + 0xe9bda840U, + 0x648d1717U, + 0x5edf2071U, + 0xef93103U, + 0xab3328a8U, + 0xc74ed56bU, + 0x5fa60123U, + 0xf1870298U, + 0x2d468143U, + 0xc8afc3bfU, + 0x2917231aU, + 0xc1953320U, + 0x955d2ab0U, + 0xbca5d668U, + 0x370e833cU, + 0x883c072U, + 0xe4d9202bU, + 0xd1ee3203U, + 0x9fbda828U, + 0xd18d172bU, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0x10000000U, + 0xd8000000U, + 0x24000000U, + 0x82000000U, + 0x91000000U, + 0xa2800000U, + 0x2f400000U, + 0x19200000U, + 0xed00000U, + 0x1df80000U, + 0x5e2c0000U, + 0xb74a0000U, + 0x1d3f0000U, + 0x7cca8000U, + 0x44f14000U, + 0xa1a000U, + 0x3e0a9000U, + 0x17188800U, + 0x419fd400U, + 0xd4d92200U, + 0x68e8d300U, + 0x9eb9ab80U, + 0x191b0440U, + 0x7e8a8960U, + 0x795cd790U, + 0xc221a388U, + 0xc14a9104U, + 0x36388a6aU, + 0x7b4fd46dU, + 0x9321230cU, + 0x83c4d1efU, + 0x973ab75U, + 0xba6407c1U, + 0xb9e00953U, + 0x1c3d9762U, + 0xc6580268U, + 0xafbc0154U, + 0x8b9200c2U, + 0x79c30199U, + 0x8c78827eU, + 0xb2e2428eU, + 0xeba12257U, + 0xd984d3c9U, + 0xd0d3aa17U, + 0x1af40568U, + 0xc7b80915U, + 0x47819610U, + 0xf7ca0109U, + 0x737f0076U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0xf0000000U, + 0xf8000000U, + 0x5c000000U, + 0x26000000U, + 0x5000000U, + 0xf2800000U, + 0x91400000U, + 0x43600000U, + 0x8d00000U, + 0x61b80000U, + 0x82740000U, + 0x90560000U, + 0xfbe30000U, + 0x62818000U, + 0x795dc000U, + 0x37702000U, + 0x7adf1000U, + 0xe6b14800U, + 0xfe91c00U, + 0xd09fa200U, + 0xde55d300U, + 0x4af6e880U, + 0xc218cfc0U, + 0x9f0749e0U, + 0x19a1e70U, + 0x6ec62218U, + 0x84ac10d4U, + 0xa0e8c8aaU, + 0x910dcf5U, + 0x1c818075U, + 0x105dc247U, + 0x3bf02254U, + 0x429f1398U, + 0x89514b66U, + 0xcf791cf9U, + 0x26c7a399U, + 0xc0b1d0dbU, + 0xaf8e850U, + 0x221fcd88U, + 0x4f08c8bcU, + 0x980dc66U, + 0xcad9818bU, + 0xfeb9c1aaU, + 0x83fe2087U, + 0xfe9811c6U, + 0x7f5ec95bU, + 0xc263dfe2U, + 0x705803dbU, + 0x2be400d0U, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0xd0000000U, + 0x58000000U, + 0x3c000000U, + 0x82000000U, + 0x53000000U, + 0x5c800000U, + 0xd3c00000U, + 0x67e00000U, + 0xb6500000U, + 0x4fa80000U, + 0x58ec0000U, + 0x70c20000U, + 0x137f0000U, + 0x31918000U, + 0x1e494000U, + 0x5bbae000U, + 0x8ef65000U, + 0x15d35800U, + 0xfafe8c00U, + 0x53c16200U, + 0x27ec1100U, + 0x565a3b80U, + 0x9fae9f40U, + 0xf15b60U, + 0x4cd18df0U, + 0x9178e388U, + 0x6289530cU, + 0x42c2db92U, + 0x8877ccffU, + 0xe91b80f7U, + 0xa38a4265U, + 0xb54161c4U, + 0xb2c1020U, + 0x573a384eU, + 0x453e9d2bU, + 0xae39586fU, + 0x1ead8f8fU, + 0x1772e161U, + 0x1f8a521aU, + 0x77595a2dU, + 0xb83d8eb6U, + 0xdbbae0b1U, + 0xcef65302U, + 0xf5d35959U, + 0x2afe8ea0U, + 0xbc16250U, + 0x1bec1258U, + 0xd45a3a14U, + 0xccae9ce6U, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0x70000000U, + 0x38000000U, + 0xdc000000U, + 0x92000000U, + 0xf000000U, + 0x97800000U, + 0x7fc00000U, + 0xee200000U, + 0x49500000U, + 0x8b780000U, + 0xa8240000U, + 0x50460000U, + 0x8deb0000U, + 0x95718000U, + 0xbd334000U, + 0x8cc16000U, + 0x5bb93000U, + 0xa1915800U, + 0x5ec45400U, + 0x34aee200U, + 0xe6157300U, + 0x691fba80U, + 0x3e8125c0U, + 0xe1495ae0U, + 0x7f705470U, + 0xe30e2c8U, + 0x594a72fcU, + 0x6370383eU, + 0x3c2d674fU, + 0x2647bb10U, + 0xccf52569U, + 0x9ff75abbU, + 0x5a7f55a3U, + 0x8aa760c7U, + 0x8302335dU, + 0x8d98dbe8U, + 0x34d317fdU, + 0x47a983a9U, + 0x9387404aU, + 0x21df60bcU, + 0x9b26309eU, + 0x45dedb9fU, + 0x15381508U, + 0x78d8018dU, + 0xfdb40261U, + 0xa89e0036U, + 0xb05f0142U, + 0x9def8331U, + 0x7d6c41ffU, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0x90000000U, + 0x38000000U, + 0x54000000U, + 0x5a000000U, + 0xf000000U, + 0xc6800000U, + 0x60400000U, + 0x4aa00000U, + 0x17d00000U, + 0xd1780000U, + 0x38a40000U, + 0xb4da0000U, + 0xb9eb0000U, + 0x9dfc8000U, + 0xff64000U, + 0x5cf06000U, + 0x3c771000U, + 0x652fa800U, + 0xe813e400U, + 0xc0ee200U, + 0x3e1e5300U, + 0xfd014a80U, + 0xa59db640U, + 0xa8d7aae0U, + 0x7ff7e650U, + 0x94f4e1e8U, + 0x6065517cU, + 0xc325c97aU, + 0xd11ff691U, + 0xcb85caa2U, + 0xcdcff633U, + 0x1e7dc9b7U, + 0x5e2bf41fU, + 0x4487c883U, + 0xcb50f729U, + 0xde234910U, + 0x8492b4aeU, + 0x6b512af7U, + 0x4e3aa759U, + 0xbc800208U, + 0x3f40008aU, + 0x14200149U, + 0xb3900226U, + 0xf9d8013dU, + 0x74740370U, + 0xf92203beU, + 0xee0f017fU, + 0xa5068135U, + 0xc18d40faU, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0x30000000U, + 0xb8000000U, + 0x34000000U, + 0x92000000U, + 0xdd000000U, + 0xff800000U, + 0xdcc00000U, + 0x9e200000U, + 0xee300000U, + 0x76280000U, + 0x92340000U, + 0x88320000U, + 0xd9250000U, + 0x80a38000U, + 0x1371c000U, + 0xafca6000U, + 0x62a59000U, + 0x56760800U, + 0xb441cc00U, + 0xa4760a00U, + 0x9941cf00U, + 0x3f60980U, + 0x4181cfc0U, + 0xb7d60b60U, + 0x46b1cf10U, + 0xac7e0928U, + 0xd545cc64U, + 0x45ec0ad6U, + 0x3e90cf17U, + 0x2d4788aeU, + 0x51e50cafU, + 0x7c97e976U, + 0x78519ee7U, + 0x22706356U, + 0x6449183U, + 0xa96f8b54U, + 0xeed10eceU, + 0x5325e86bU, + 0x79b49c84U, + 0x16f3e052U, + 0x12055245U, + 0x1d0de86bU, + 0x1f809c84U, + 0xecc1e052U, + 0x26205245U, + 0xda2e686bU, + 0xe4315c84U, + 0x4f2b8052U, + 0x77b5c245U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0xb0000000U, + 0x8000000U, + 0xcc000000U, + 0x92000000U, + 0xb9000000U, + 0x10800000U, + 0xf3c00000U, + 0xb4200000U, + 0xe4300000U, + 0x1c380000U, + 0xb8340000U, + 0x56220000U, + 0x75230000U, + 0x10ba8000U, + 0x61e8c000U, + 0x9f1fe000U, + 0xdf8df000U, + 0xd45b8800U, + 0xc4610c00U, + 0xce5b8a00U, + 0xf1610d00U, + 0x2cdb8b80U, + 0xba10fc0U, + 0x807b8ba0U, + 0xd0510cf0U, + 0xba6389e8U, + 0x35550e14U, + 0xe0f989aaU, + 0xb820ddbU, + 0x12410b7aU, + 0xfb79ce4bU, + 0x81dc6b0aU, + 0xfd28fcabU, + 0x9cba0252U, + 0x93e7017fU, + 0x96008010U, + 0xc70fc1f8U, + 0xeb9f63ecU, + 0xe2423046U, + 0x9364e89dU, + 0xfdd33c67U, + 0x672763ecU, + 0xe9b63046U, + 0x1166e89dU, + 0xdcc03c67U, + 0x63a5e3ecU, + 0xfc6af046U, + 0x4a5b089dU, + 0xcf6ecc67U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0x90000000U, + 0x98000000U, + 0xec000000U, + 0x2a000000U, + 0x27000000U, + 0xa9800000U, + 0x9400000U, + 0x11e00000U, + 0x99f00000U, + 0x2de80000U, + 0x8be40000U, + 0x16f60000U, + 0x650000U, + 0x4cb88000U, + 0x7e1dc000U, + 0xd1092000U, + 0xcc841000U, + 0x63c93800U, + 0xef390400U, + 0x60493a00U, + 0x1790700U, + 0xb8293b80U, + 0x1c90540U, + 0x1c2139e0U, + 0xffdd06f0U, + 0xd3f3948U, + 0x535c066cU, + 0xfef1bbeeU, + 0x2464c649U, + 0x72a01ba9U, + 0xf0d142eU, + 0xed88031eU, + 0xa7540201U, + 0xf8fe0145U, + 0x49710100U, + 0x6c2681f7U, + 0x37dcc2b8U, + 0x1927a0d3U, + 0x54cd23aU, + 0x6bf099f4U, + 0x46f4d51aU, + 0xf87720d3U, + 0x30b5123aU, + 0xcc0fb9f4U, + 0x1a15c51aU, + 0x4f0698d3U, + 0x4d91d63aU, + 0x574fa3f4U, + 0xf0e8d21aU, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0x10000000U, + 0xf8000000U, + 0x84000000U, + 0x26000000U, + 0xa7000000U, + 0x3a800000U, + 0x9ec00000U, + 0x4fe00000U, + 0x87f00000U, + 0x4bf80000U, + 0xe1e40000U, + 0xce60000U, + 0xcb790000U, + 0x6a298000U, + 0x8d4000U, + 0xcbc9a000U, + 0xec66f000U, + 0x10b92800U, + 0x7e5ad400U, + 0x94392a00U, + 0x939ad500U, + 0xdf592980U, + 0xb9aad540U, + 0x3fc12a60U, + 0x627ed750U, + 0x2bbf2af8U, + 0xf6d3d5ccU, + 0x73e8aa12U, + 0xc5f397b7U, + 0xdaf68b2dU, + 0x847525a8U, + 0x2cb18202U, + 0x3c59422fU, + 0x537a031U, + 0xf60bf002U, + 0xff0eaa19U, + 0x4e8a9440U, + 0x50df08d6U, + 0x94f864e1U, + 0x1f78238cU, + 0x543fb3c4U, + 0x338e88d6U, + 0x2f5124e1U, + 0x51b7838cU, + 0x43d043c4U, + 0xc06620d6U, + 0xaaa2b0e1U, + 0x6b41098cU, + 0xd7a566c4U, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0x30000000U, + 0x28000000U, + 0x34000000U, + 0x76000000U, + 0x53000000U, + 0xb1800000U, + 0x57400000U, + 0xf5e00000U, + 0x4bf00000U, + 0x7cf80000U, + 0x837c0000U, + 0xab3a0000U, + 0x855f0000U, + 0x88e98000U, + 0x957f4000U, + 0xe8392000U, + 0x2ccd1000U, + 0xc3b4f800U, + 0x2291c400U, + 0x86ccfa00U, + 0xb2adc500U, + 0xa616fa80U, + 0x2b02c5c0U, + 0xbd877a20U, + 0xd418510U, + 0xcce45bf8U, + 0xeb63945cU, + 0xbf21213eU, + 0xc3411101U, + 0xf3f6f8e9U, + 0x10f2c52eU, + 0xc97f7b9aU, + 0x8a3d86e3U, + 0x39de5916U, + 0x93c94e6U, + 0xf048a24dU, + 0x527e532fU, + 0x5fafd8f3U, + 0x208fd68dU, + 0x83d3806cU, + 0x602043b5U, + 0x68d0a273U, + 0xbdb2534dU, + 0x758dda4cU, + 0x695cd6a5U, + 0x82f8018bU, + 0x947c0311U, + 0x64ba0172U, + 0x851f02a4U, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0x50000000U, + 0x98000000U, + 0xc000000U, + 0x6a000000U, + 0x85000000U, + 0x30800000U, + 0xd7c00000U, + 0x7ae00000U, + 0x9cf00000U, + 0x33f80000U, + 0xa67c0000U, + 0x11360000U, + 0x24050000U, + 0xce148000U, + 0xb11c000U, + 0x1b856000U, + 0x9c497000U, + 0x7ea08800U, + 0xee5e5400U, + 0xb7b88a00U, + 0x94d25500U, + 0xb5768a80U, + 0x46ab5440U, + 0xf25408e0U, + 0x65bf9470U, + 0x4dc5e948U, + 0x77e72664U, + 0x1860018aU, + 0xd230013bU, + 0xab980261U, + 0x344c0248U, + 0x9aae022eU, + 0x40490191U, + 0xccba800aU, + 0x4758c131U, + 0xbd3fe29aU, + 0x5e11b309U, + 0xf31f6a36U, + 0x678fe627U, + 0x3e47e027U, + 0x6fadb2edU, + 0xb8c968b6U, + 0x8f7ae667U, + 0x5bab62c7U, + 0xcec0739dU, + 0xd87a0b7eU, + 0xb2369443U, + 0xdb9f6badU, + 0xfc4fe6d6U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0xd0000000U, + 0x48000000U, + 0xa4000000U, + 0xb6000000U, + 0x69000000U, + 0x56800000U, + 0x18400000U, + 0x4e200000U, + 0xcc300000U, + 0xbb280000U, + 0xd0ac0000U, + 0xb0760000U, + 0x631f0000U, + 0xa59b8000U, + 0x15d54000U, + 0xffc6000U, + 0xeddcb000U, + 0xd3feb800U, + 0x47cffc00U, + 0x30f6ba00U, + 0x2253ff00U, + 0x528ba80U, + 0xfda0fc40U, + 0xa0e53ba0U, + 0x8a5abed0U, + 0x512ad978U, + 0xd3bf4f74U, + 0x25fe0022U, + 0xcec30315U, + 0x9665831aU, + 0xa2164325U, + 0xa719e176U, + 0x238af327U, + 0xc4c75a97U, + 0x65750c3bU, + 0xaf99e0d9U, + 0xe6caf2c8U, + 0x2675b3cU, + 0xac050d5eU, + 0xf211e2ebU, + 0x2f16f1a1U, + 0xa79959bcU, + 0xa2c60d1eU, + 0x4474634bU, + 0x5d00b071U, + 0x4880ba44U, + 0x254cfe2aU, + 0x36b338c9U, + 0x5175bdb4U, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0x30000000U, + 0x38000000U, + 0xc4000000U, + 0xe6000000U, + 0x85000000U, + 0x23800000U, + 0x39c00000U, + 0x84e00000U, + 0x5ef00000U, + 0x19f80000U, + 0xc96c0000U, + 0x5e2a0000U, + 0x3c8d0000U, + 0xfd458000U, + 0x5db14000U, + 0x7545e000U, + 0xe1bf9000U, + 0xf753a800U, + 0xb2b1b400U, + 0x69cbaa00U, + 0x6cedb500U, + 0x32f9a880U, + 0x33fcb5c0U, + 0x566e2860U, + 0xdaacf6d0U, + 0x45c44bf8U, + 0xe6ef24c4U, + 0x9df78376U, + 0x8f604023U, + 0xeb326365U, + 0x271fd058U, + 0x81c982U, + 0x3f5e67bdU, + 0xaeb2621aU, + 0xdbdfd15fU, + 0x7e1caf7U, + 0x686e67fdU, + 0xbaa63ccU, + 0x8843d24cU, + 0xa633c9faU, + 0x188f6539U, + 0x8b45e34cU, + 0xd0bf938cU, + 0xaad3ab9aU, + 0xfa71b6e9U, + 0x10aba834U, + 0x4addb688U, + 0x6a61aa8cU, + 0x18a0b51aU, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0x50000000U, + 0x88000000U, + 0xac000000U, + 0x5e000000U, + 0x2d000000U, + 0xf8800000U, + 0x88c00000U, + 0x5ea00000U, + 0x13b00000U, + 0xfb380000U, + 0x1be40000U, + 0xb94e0000U, + 0x7cef0000U, + 0x6c28000U, + 0xbbad4000U, + 0xa726e000U, + 0x7df6f000U, + 0xe0556800U, + 0xfe6bfc00U, + 0x511b6a00U, + 0x6e84fd00U, + 0xe9d9e980U, + 0xa829bc40U, + 0x3e7f0ba0U, + 0xf11f4ef0U, + 0xde8a62d8U, + 0x31c4b244U, + 0x8c290b3aU, + 0xcc644d67U, + 0x821ee3c0U, + 0xb12f169U, + 0x419b6b8cU, + 0x5a44fff6U, + 0x8179ebb1U, + 0x6a99bc41U, + 0xebc70890U, + 0xe33b4fc8U, + 0x9fe463ccU, + 0xfb5bb256U, + 0xd7f38a41U, + 0xf75d0e19U, + 0x39ee0114U, + 0x25f0012U, + 0xe57a817bU, + 0x7889437eU, + 0xc8c8e2d4U, + 0xbea9f17bU, + 0x43afeaf7U, + 0x7322bc88U, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0xf0000000U, + 0xa8000000U, + 0xf4000000U, + 0xf6000000U, + 0xbf000000U, + 0x7c800000U, + 0x7c00000U, + 0x4ee00000U, + 0x81f00000U, + 0x95680000U, + 0xc6bc0000U, + 0x8e420000U, + 0x18a70000U, + 0x5518000U, + 0x32334000U, + 0x4d86a000U, + 0xa85e3000U, + 0x3fa74800U, + 0x85c1d400U, + 0xc7e54a00U, + 0xe266d700U, + 0x1e34c880U, + 0x279594c0U, + 0xb5526a20U, + 0xfa3ba710U, + 0xe99d21f8U, + 0x64671ecU, + 0xdcba6a0aU, + 0xfb47a6f3U, + 0x893f23b1U, + 0x6f117034U, + 0xe483ebc4U, + 0xfbc8e43eU, + 0xbcfb8005U, + 0x60e841b0U, + 0xa2f5201aU, + 0x4bfa708bU, + 0x78786a1dU, + 0xab20a6deU, + 0x160ea307U, + 0x2f1233e7U, + 0x848d4be5U, + 0xabdad732U, + 0xe4f6c90dU, + 0x3cf29514U, + 0xa0e3e854U, + 0x2f8e706U, + 0xbbf382c9U, + 0xd064412aU, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0x90000000U, + 0x88000000U, + 0x1c000000U, + 0x16000000U, + 0xb9000000U, + 0x3f800000U, + 0x2a400000U, + 0xf3e00000U, + 0x62f00000U, + 0xf1680000U, + 0x35340000U, + 0x7bc60000U, + 0xa4a70000U, + 0xcc8c8000U, + 0x9ada4000U, + 0x2f3b6000U, + 0x9cd39000U, + 0xde3e5800U, + 0x5f446400U, + 0x72785a00U, + 0x9da36700U, + 0x3314d980U, + 0x50892540U, + 0x4cc7bba0U, + 0x762eb530U, + 0x335fe3f8U, + 0x7c7dd3d4U, + 0xb0a33906U, + 0x680f47dU, + 0xd5c28349U, + 0x39b940b6U, + 0x119e32cU, + 0x1b9ad152U, + 0xd84fbb3bU, + 0x58eab714U, + 0x6671e08fU, + 0x57aed042U, + 0x7c09badaU, + 0x460db4b7U, + 0xd11d62f6U, + 0xb384910cU, + 0xb45ad922U, + 0x56ea2763U, + 0x4b653bf0U, + 0x6227f571U, + 0xf94e026bU, + 0x336303d5U, + 0xa62282dcU, + 0x9b494323U, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0xd0000000U, + 0x58000000U, + 0x2c000000U, + 0x12000000U, + 0x31000000U, + 0xe800000U, + 0x1f400000U, + 0x62e00000U, + 0x1bf00000U, + 0x81780000U, + 0xd02c0000U, + 0x19d60000U, + 0x49ad0000U, + 0xe7108000U, + 0x699ec000U, + 0x36dee000U, + 0xf43a3000U, + 0x3fdd5800U, + 0xe6a5c400U, + 0x1a8b5a00U, + 0x1148c500U, + 0x69fbd880U, + 0x80660640U, + 0xf6bd39e0U, + 0xa28036f0U, + 0x4d4e61a8U, + 0xf3e4f234U, + 0xc563bb92U, + 0xc62ff749U, + 0x9ece0299U, + 0x10310166U, + 0xf9de817cU, + 0x39afc0d6U, + 0x6f0062b3U, + 0x1d95f2c4U, + 0x8dd383dU, + 0xd730376bU, + 0x56631fU, + 0xf778f16dU, + 0x672db8d4U, + 0x685ef7e5U, + 0xf37082b7U, + 0xd12ec359U, + 0x3f46e346U, + 0xf2e630acU, + 0xe3f3582eU, + 0x7d64c63fU, + 0x9a2dd83aU, + 0x4cb057aU, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0xf0000000U, + 0xf8000000U, + 0xa4000000U, + 0x1a000000U, + 0xa7000000U, + 0x88800000U, + 0x6b400000U, + 0x7200000U, + 0x8300000U, + 0x6cb80000U, + 0x61fc0000U, + 0x8fc20000U, + 0x4a6d0000U, + 0xc6018000U, + 0x591ec000U, + 0x15982000U, + 0xb4cc3000U, + 0x1cf4d800U, + 0xc04cfc00U, + 0x79b6da00U, + 0xa261fd00U, + 0xa175a80U, + 0xcf0f3ec0U, + 0x4977960U, + 0xdd4f0c50U, + 0xe639a108U, + 0x99a2f2ccU, + 0x3274f92aU, + 0x220cce61U, + 0x631803b6U, + 0x428c0081U, + 0xc45a0364U, + 0xd3a10156U, + 0xdd7b8253U, + 0xd68fc3b3U, + 0x465ba0e1U, + 0xbff376U, + 0x47ed7ae1U, + 0x46de0eb4U, + 0x77fa231eU, + 0xded130bfU, + 0x3ed5be9U, + 0xccde3c78U, + 0xf8f4fa34U, + 0xfa4ccedeU, + 0x2eb8005fU, + 0xd2fc00f9U, + 0xc5420350U, + 0xd22d0288U, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0x30000000U, + 0xd8000000U, + 0x1c000000U, + 0x46000000U, + 0xd1000000U, + 0x20800000U, + 0x42400000U, + 0xae200000U, + 0xfb300000U, + 0xe1a80000U, + 0xa4fc0000U, + 0x135a0000U, + 0x4eb10000U, + 0x197a8000U, + 0x7f9e4000U, + 0x87c66000U, + 0xeee77000U, + 0xac53b800U, + 0xdb233c00U, + 0x11a9ba00U, + 0xdce23f00U, + 0x3f5b3880U, + 0xd0b07fc0U, + 0xd46f5be0U, + 0x191a0fb0U, + 0x149c62f8U, + 0x605670f4U, + 0x1529387aU, + 0x94bd7efdU, + 0x4e6fda42U, + 0x2e054ed1U, + 0xd5088024U, + 0xda9340f2U, + 0xe546e011U, + 0x87b831fcU, + 0x85e75b6eU, + 0x4bd60e8fU, + 0x20ee622bU, + 0x295b70a1U, + 0x49a9b83cU, + 0xe23e36U, + 0xd95b38d3U, + 0x31b07c55U, + 0x2cef5a46U, + 0x475a0fcbU, + 0xfcbc6211U, + 0x4a667144U, + 0xd4013b82U, + 0x72017f89U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0xd0000000U, + 0xf8000000U, + 0x4c000000U, + 0x6a000000U, + 0x8f000000U, + 0x43800000U, + 0x2400000U, + 0x7fa00000U, + 0xf4b00000U, + 0x59280000U, + 0xfa6c0000U, + 0x47560000U, + 0xa3390000U, + 0x6d788000U, + 0xb8c9c000U, + 0xe3762000U, + 0x29d35000U, + 0x29e99800U, + 0x5d14ac00U, + 0x609f9a00U, + 0xdbddaf00U, + 0xdaef1a80U, + 0x7c886c40U, + 0x89c73960U, + 0x39fe3d70U, + 0x850820c8U, + 0xfc86534cU, + 0x49c71bc6U, + 0x19e46c45U, + 0x551138b8U, + 0x4873fd7U, + 0x5d0a2bcU, + 0x73ff924eU, + 0xda193be9U, + 0x471b3cceU, + 0x78ea07aU, + 0xc5a9058U, + 0x2ebfba67U, + 0x1e37fe54U, + 0xfdfe0292U, + 0x4b150057U, + 0x8d8e82afU, + 0x7340c118U, + 0x4526a354U, + 0xa8769312U, + 0xa449b897U, + 0x5abefe8fU, + 0x182e8288U, + 0xc8f0c32cU, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0xd0000000U, + 0xf8000000U, + 0x14000000U, + 0xe6000000U, + 0x99000000U, + 0x47800000U, + 0xef400000U, + 0x4de00000U, + 0x12f00000U, + 0xbc780000U, + 0xdca40000U, + 0x421e0000U, + 0x17110000U, + 0xd29b8000U, + 0x8adb4000U, + 0x25b26000U, + 0x95959000U, + 0xe052f800U, + 0x5b738400U, + 0x8634fa00U, + 0x14c68500U, + 0xe8b17980U, + 0xd40cc640U, + 0x46189a60U, + 0xa9021610U, + 0x6f9801f8U, + 0x3540074U, + 0xbfe602e6U, + 0x6df502c9U, + 0x62e58051U, + 0x747a41c2U, + 0xe0b1e140U, + 0x481ad2e0U, + 0x7c069bd0U, + 0xea1314d8U, + 0xbb038384U, + 0xc08f404eU, + 0x25d463a5U, + 0x3209013U, + 0x29577ab5U, + 0xa4f9c51cU, + 0x9d7d1bddU, + 0x6f385627U, + 0x9b49e233U, + 0x3bfed1c5U, + 0x93f89a74U, + 0x3ff21791U, + 0x2de00195U, + 0x82f001ecU, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0xb0000000U, + 0xc8000000U, + 0x4c000000U, + 0x3a000000U, + 0x1f000000U, + 0x94800000U, + 0xebc00000U, + 0x37600000U, + 0x82700000U, + 0x31f80000U, + 0x6aac0000U, + 0x701a0000U, + 0x28130000U, + 0x5c128000U, + 0x4201c000U, + 0x9b142000U, + 0xe29fb000U, + 0xcecb4800U, + 0xbceae400U, + 0xfd294a00U, + 0xed55e500U, + 0xdfa1c880U, + 0xc38727c0U, + 0x73476ba0U, + 0x46a956f0U, + 0x1a000348U, + 0xef00028cU, + 0xfc80031aU, + 0x17c00023U, + 0xc5600147U, + 0xd17000eaU, + 0x9f7802a0U, + 0x9e6c0070U, + 0xd3fa0388U, + 0x41a300acU, + 0x5a8a80aaU, + 0xaaddc20bU, + 0xdaf6221bU, + 0xa020b388U, + 0xe2c3c9e7U, + 0xd6f824d1U, + 0x3a2fe9d3U, + 0x4dcb96c4U, + 0x8a7ea15dU, + 0x9df27202U, + 0x40a56bdcU, + 0x171654a2U, + 0x388880e7U, + 0xc1d2c251U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0x50000000U, + 0xa8000000U, + 0x2c000000U, + 0xfe000000U, + 0x51000000U, + 0xef800000U, + 0x6400000U, + 0x57600000U, + 0x10700000U, + 0x22e80000U, + 0x5240000U, + 0xfd0e0000U, + 0xd18b0000U, + 0x37568000U, + 0xe8e54000U, + 0xbe356000U, + 0x59859000U, + 0xeb5cd800U, + 0x8efbf400U, + 0x3b3ada00U, + 0xcc14f700U, + 0x6e025b80U, + 0x990ab640U, + 0x9389b920U, + 0x504e66f0U, + 0x2a6e02d8U, + 0x1fb03b4U, + 0x75be8366U, + 0xbdc140adU, + 0xeb3b63bbU, + 0xa40e91acU, + 0x220a5990U, + 0x371eb508U, + 0x6a8fbb9cU, + 0x93d1640aU, + 0xd23e817fU, + 0x78142f0U, + 0x8a5b627aU, + 0x997e9067U, + 0xb9625b24U, + 0x497ab64cU, + 0xd161bb22U, + 0x56a6593U, + 0x7f600162U, + 0xfc700011U, + 0xbce80241U, + 0x424038bU, + 0xba8e0194U, + 0xfbcb02b4U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0xb0000000U, + 0xc8000000U, + 0x7c000000U, + 0xc2000000U, + 0x13000000U, + 0x61800000U, + 0xc3400000U, + 0x58200000U, + 0xa1300000U, + 0x5fb80000U, + 0x97740000U, + 0xd3020000U, + 0x418b0000U, + 0x134c8000U, + 0x2038c000U, + 0x153ca000U, + 0xe1a19000U, + 0x467a7800U, + 0xa19f3c00U, + 0xe3407a00U, + 0x88203d00U, + 0xd92efb80U, + 0xeba3ffc0U, + 0x2966d8a0U, + 0x20eae30U, + 0x330203a8U, + 0xb18b027cU, + 0xbb4c802eU, + 0xec38c071U, + 0x1f3ca0ceU, + 0x8ea19035U, + 0xe5fa7a90U, + 0x71df3f98U, + 0xdae078d4U, + 0xea503fd2U, + 0xdeb6f89fU, + 0xdde7fe9fU, + 0xa5dcda8bU, + 0xd4f1ae6dU, + 0xf34c81e4U, + 0xd038c2faU, + 0xbd3ca2a3U, + 0x2da193d1U, + 0x4c7a796aU, + 0xce9f3cbbU, + 0x40c079c5U, + 0x58603d98U, + 0xe08ef9d4U, + 0x89d3fe52U, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0x50000000U, + 0xf8000000U, + 0x2c000000U, + 0x96000000U, + 0xcf000000U, + 0x62800000U, + 0xdd400000U, + 0xfea00000U, + 0x4bb00000U, + 0x90380000U, + 0x10ec0000U, + 0xf9860000U, + 0x45c90000U, + 0xdae48000U, + 0x48924000U, + 0x9c59a000U, + 0x8f36f000U, + 0xca66d800U, + 0xa8d6cc00U, + 0x7d78da00U, + 0xa643cd00U, + 0x96225880U, + 0xc7f48c40U, + 0x47197b60U, + 0xa6993cf0U, + 0x3f428138U, + 0xdbab43ccU, + 0x882522b2U, + 0xccf8b1b9U, + 0xc7817bc8U, + 0x5ec53dd7U, + 0x27c8068U, + 0xccce4024U, + 0xcf67a156U, + 0x7b53f24fU, + 0x79a45ad7U, + 0xd3d8de8U, + 0x5f7df8e4U, + 0x634b7c76U, + 0xa5bb20dfU, + 0x332db39fU, + 0x447bf95cU, + 0xbbc27ffaU, + 0x21ffa30dU, + 0x600ff3d6U, + 0xb01a5b2cU, + 0x8188da1U, + 0x841f7ab7U, + 0x42103ebbU, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0xb0000000U, + 0x48000000U, + 0x5c000000U, + 0x3a000000U, + 0xe7000000U, + 0x99800000U, + 0x4400000U, + 0xbb200000U, + 0xa300000U, + 0x46b80000U, + 0x407c0000U, + 0xec8a0000U, + 0xf6d30000U, + 0xc4f08000U, + 0xf643c000U, + 0x40312000U, + 0x89b71000U, + 0x15e61800U, + 0x2acd3c00U, + 0xbef41a00U, + 0x31523d00U, + 0x69b69a80U, + 0xc5feffc0U, + 0xf2dd3ba0U, + 0x1ae92eb0U, + 0x1f428348U, + 0xe8acc12cU, + 0x816ba32eU, + 0x8817d03dU, + 0x3c1fb942U, + 0xaa05eed5U, + 0x1f092378U, + 0x8d8b13a4U, + 0x624c1aa2U, + 0x662e3c23U, + 0x74bc9877U, + 0xdb6dfd5bU, + 0xff0dbad3U, + 0x5d9aef79U, + 0xba4ba030U, + 0xc227d02eU, + 0x5aa7bb1bU, + 0x5a79ed95U, + 0xbb8322beU, + 0x275813a3U, + 0x9cbc9b91U, + 0x776dfdacU, + 0xad0db948U, + 0x569aee8aU, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0xb0000000U, + 0x58000000U, + 0xac000000U, + 0xde000000U, + 0xe9000000U, + 0x99800000U, + 0x82c00000U, + 0x9d600000U, + 0x3e700000U, + 0x6cf80000U, + 0x8ac0000U, + 0x239a0000U, + 0xb1c10000U, + 0x67fc8000U, + 0xe234000U, + 0x85c06000U, + 0xf5fc5000U, + 0x29378800U, + 0x1d48e400U, + 0x1ab58a00U, + 0x4495e500U, + 0x894b0880U, + 0x38aba7c0U, + 0x3b95e9e0U, + 0xbdd9b570U, + 0x9e48298U, + 0xbf3f42d4U, + 0xb04262feU, + 0xa92151dfU, + 0x5d490a0bU, + 0xbab6a7e6U, + 0xf48b68d8U, + 0xd157f474U, + 0x94a261aeU, + 0xe59153d7U, + 0x54d10937U, + 0x906aa654U, + 0x3de96aadU, + 0x2d3af51eU, + 0x9744e23cU, + 0x31b31332U, + 0xb20de8b5U, + 0xd705b40aU, + 0x60868322U, + 0xf352429dU, + 0xeba4e0a6U, + 0xd10312f8U, + 0x6595eae4U, + 0x14d9b746U, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0x50000000U, + 0x8000000U, + 0x54000000U, + 0xd6000000U, + 0xe5000000U, + 0xab800000U, + 0xe9400000U, + 0x1b200000U, + 0x70b00000U, + 0x39f80000U, + 0x92c40000U, + 0xba7e0000U, + 0xdf870000U, + 0xcf498000U, + 0x462d4000U, + 0xd736e000U, + 0x5aaa1000U, + 0xeefa7800U, + 0x525ffc00U, + 0x41b3fa00U, + 0x472bd00U, + 0x7e851980U, + 0x5ad8ac40U, + 0x4e7f61a0U, + 0xb9875110U, + 0x724c98f8U, + 0xb1b5ef84U, + 0xbc6983d6U, + 0x729d4061U, + 0xd0cee21aU, + 0x296e10b3U, + 0x21047a05U, + 0xd598fd7cU, + 0xe85a7b3aU, + 0x3eaffe63U, + 0x20ebfa1dU, + 0xb46bfc8U, + 0x38231b44U, + 0xd62bafdeU, + 0x7f30e1c5U, + 0xbea911f4U, + 0x60edf95eU, + 0xeb45bf6dU, + 0x68349bc0U, + 0xde31ec88U, + 0x2b378264U, + 0x68aa410eU, + 0x85ff61ddU, + 0x40c75340U, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0xb0000000U, + 0x18000000U, + 0x54000000U, + 0xfa000000U, + 0x83000000U, + 0xca800000U, + 0x95c00000U, + 0xb7a00000U, + 0x2d300000U, + 0x70f80000U, + 0x1b5c0000U, + 0x307a0000U, + 0x75810000U, + 0x89578000U, + 0x9f72c000U, + 0x8103a000U, + 0xcd9d7000U, + 0x2d550800U, + 0x5d745c00U, + 0xe6028a00U, + 0xe5069d00U, + 0x6f812a80U, + 0xda5befc0U, + 0xddf422e0U, + 0xe8dfb290U, + 0xcc2eab08U, + 0x2d752d9cU, + 0x9e0d82a2U, + 0x2103c00bU, + 0x3d8c229cU, + 0x1543b22fU, + 0xb974a857U, + 0x4042fdeU, + 0x32020234U, + 0x5f1d0203U, + 0xcc8d808dU, + 0xa0c3c351U, + 0x502c225eU, + 0xb73b179U, + 0x1b0caabfU, + 0xde982e5fU, + 0x4fd800c2U, + 0x84ac0356U, + 0xffa202e8U, + 0xb12d0181U, + 0x56f582f6U, + 0x9e5fc155U, + 0xcff62265U, + 0x7c2b2d0U, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0x50000000U, + 0x48000000U, + 0x9c000000U, + 0x42000000U, + 0x51000000U, + 0xc2800000U, + 0x25c00000U, + 0x65600000U, + 0x9ff00000U, + 0xfe280000U, + 0xad5c0000U, + 0xeda60000U, + 0x8a070000U, + 0xd088000U, + 0x2086c000U, + 0x24dbe000U, + 0xeff33000U, + 0x26354800U, + 0xd9500400U, + 0x63bdca00U, + 0xd116c700U, + 0x2862880U, + 0x85d5f640U, + 0x357b61a0U, + 0xd7e9f030U, + 0x6228aaa8U, + 0xef543674U, + 0xbca80122U, + 0x489c00a3U, + 0x28c60117U, + 0x45f702ecU, + 0xbb208047U, + 0x11dac22dU, + 0x8b7de0d3U, + 0x34f433a6U, + 0xe9bdcb70U, + 0xdc16c488U, + 0x22062884U, + 0xa115f46aU, + 0xda9b6347U, + 0xf1d9f0adU, + 0xbb60a993U, + 0x8cf83686U, + 0x6da60300U, + 0x4a070280U, + 0xad088140U, + 0x7086c120U, + 0x6cdbe270U, + 0x73f33108U, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0x70000000U, + 0x38000000U, + 0x4000000U, + 0x76000000U, + 0xdf000000U, + 0x84800000U, + 0x84400000U, + 0xfca00000U, + 0x5c300000U, + 0x7e780000U, + 0xf5c40000U, + 0x617a0000U, + 0xd1450000U, + 0x75218000U, + 0x65e54000U, + 0x1503a000U, + 0x6996b000U, + 0x49c97800U, + 0x53784c00U, + 0x9848fa00U, + 0x5ead0d00U, + 0x5d335980U, + 0x69ffbcc0U, + 0xbf002160U, + 0xb482f0d0U, + 0x5c495ab8U, + 0x88babeacU, + 0x1221a12aU, + 0xa567b07dU, + 0x74afbb8U, + 0x3a2c0dddU, + 0xa968daf9U, + 0xad5ffda6U, + 0xe72203d6U, + 0xbcf1025eU, + 0x768380daU, + 0x6d5442c4U, + 0x472022cfU, + 0x2cf2f168U, + 0x3e915a94U, + 0x514ebfc6U, + 0x3523a177U, + 0x85e6b0b5U, + 0x65117a6dU, + 0x518c4f60U, + 0x4dcafb21U, + 0x256c0e2bU, + 0x4748dbd7U, + 0xda2ffd74U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0x30000000U, + 0x48000000U, + 0x5c000000U, + 0xaa000000U, + 0xb5000000U, + 0x17800000U, + 0x42400000U, + 0x6200000U, + 0xddb00000U, + 0x8de80000U, + 0xacc0000U, + 0x6fa0000U, + 0x9e5b0000U, + 0x6c3c8000U, + 0x48a3c000U, + 0xaa666000U, + 0x841000U, + 0x5ccd9800U, + 0xe9f43c00U, + 0x54d11a00U, + 0x55e7ff00U, + 0xeedf7a80U, + 0x98efefc0U, + 0xed48e3a0U, + 0x2cb0d2b0U, + 0xf46d7b08U, + 0x5388ef64U, + 0x2c4661d6U, + 0x1d3411adU, + 0xf1259a6eU, + 0xd3383c6bU, + 0x1a2b1951U, + 0x97bcfc24U, + 0x28e3fa1cU, + 0x654c2c30U, + 0x50ae8062U, + 0x6e74c0c9U, + 0xae80e012U, + 0x67ccd34bU, + 0xf57f7b8bU, + 0x421fec01U, + 0x1900e27cU, + 0xd58cd320U, + 0x9b5f78daU, + 0xf3afef25U, + 0x76e8e2e0U, + 0x3640d0d0U, + 0x20257b18U, + 0x9ab4ed5cU, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0xb0000000U, + 0x98000000U, + 0x5c000000U, + 0x12000000U, + 0x7000000U, + 0x4e800000U, + 0x4ac00000U, + 0xf7e00000U, + 0x2b700000U, + 0xa6a80000U, + 0xbfdc0000U, + 0x6e7a0000U, + 0xa7210000U, + 0x6f868000U, + 0xb556c000U, + 0xaaab2000U, + 0xe5de7000U, + 0xbd60e800U, + 0x8fb3b400U, + 0xf44e6a00U, + 0x45397700U, + 0x909f4880U, + 0xb7c605c0U, + 0xda7922e0U, + 0xd12370b0U, + 0x969c68a8U, + 0x76c477acU, + 0xf5e3c912U, + 0x471c747U, + 0x2c34822dU, + 0xbb1bc05aU, + 0x8c9fa09fU, + 0xc5c5b0c9U, + 0xcd7f4ad4U, + 0xb7b605a2U, + 0x185121efU, + 0xcf3f7081U, + 0xcb866ac8U, + 0xeb557498U, + 0x97ad48c4U, + 0x684b075eU, + 0xf72da065U, + 0x2788b102U, + 0x614bcabbU, + 0xccadc727U, + 0x34ce8219U, + 0xbafac30cU, + 0x9ef92246U, + 0xe370e1U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0x50000000U, + 0x78000000U, + 0x14000000U, + 0x2a000000U, + 0x69000000U, + 0xe800000U, + 0x54c00000U, + 0x82200000U, + 0xc6b00000U, + 0x4b680000U, + 0xcfcc0000U, + 0x61b60000U, + 0xeef10000U, + 0xb08f8000U, + 0xd7d4c000U, + 0xc5a4e000U, + 0xccfcb000U, + 0xe583e800U, + 0x9f40cc00U, + 0xc6646a00U, + 0x3580f00U, + 0x10768a80U, + 0xc55be40U, + 0x19fae360U, + 0x6d01b210U, + 0xbc9a69c8U, + 0x59d50cb4U, + 0x8ea70b72U, + 0x977c7fa7U, + 0xf9c7801aU, + 0x1ea8c1adU, + 0xcf7ae27fU, + 0xbdc1b066U, + 0x4cba6bebU, + 0xb2650e6aU, + 0x994f08fbU, + 0x71707c2cU, + 0x3ed180e0U, + 0xb29c3deU, + 0xb83d6007U, + 0x37a97324U, + 0x21e08a7aU, + 0x9914bc33U, + 0xe69d6118U, + 0x18d97152U, + 0xec288859U, + 0xfda8beedU, + 0x38e36291U, + 0xbf9472d9U, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0x10000000U, + 0x28000000U, + 0x84000000U, + 0x82000000U, + 0x55000000U, + 0x37800000U, + 0xb0400000U, + 0x3be00000U, + 0x6700000U, + 0x37380000U, + 0xb15c0000U, + 0xc66e0000U, + 0x57330000U, + 0x814f8000U, + 0xfe69c000U, + 0xfb3c6000U, + 0x87431000U, + 0x2963d800U, + 0x99a14400U, + 0x945a00U, + 0xa2d48500U, + 0xa4263a80U, + 0x31d49540U, + 0x24b26220U, + 0xd3001350U, + 0xa0945a28U, + 0xf2d48704U, + 0xac263876U, + 0xa5d49485U, + 0x8eb260b9U, + 0x20012ccU, + 0x151458cdU, + 0x1794864dU, + 0xa0463b82U, + 0x13e495c4U, + 0x826a6196U, + 0xb52c12b5U, + 0xe4425ae1U, + 0xf1fb8430U, + 0xe767b9d7U, + 0xbabe571aU, + 0xf81980d8U, + 0xcc06c3bcU, + 0x361de33aU, + 0xef19d207U, + 0xce903972U, + 0x81cb957cU, + 0x5cabe0daU, + 0x5f06d137U, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0x70000000U, + 0x48000000U, + 0x8c000000U, + 0x9a000000U, + 0x57000000U, + 0x4b800000U, + 0x50400000U, + 0xca00000U, + 0x65300000U, + 0xe6780000U, + 0x975c0000U, + 0x1f220000U, + 0xa1730000U, + 0xc4ce8000U, + 0xfb67c000U, + 0xf3d22000U, + 0xe0ffd000U, + 0x9b851800U, + 0x28462c00U, + 0xe8b39a00U, + 0x33ded00U, + 0x6363ba80U, + 0x7c13cc0U, + 0x9ef023a0U, + 0xaa8cd2f0U, + 0xe6cb9bc8U, + 0x2861eeacU, + 0x8e41b866U, + 0xdb23f2dU, + 0xc3bea1f4U, + 0xdaab1149U, + 0xc839bb25U, + 0xaaee3d78U, + 0xb49ca29fU, + 0x87d81320U, + 0xdef73b30U, + 0x8a89fee8U, + 0x96ce829cU, + 0x6067c10eU, + 0x25223f1U, + 0x97bfd39aU, + 0x94a519e8U, + 0x91362c87U, + 0x986b9b74U, + 0xa651ec12U, + 0xd1b9b8bfU, + 0x61ae3d0bU, + 0x49bca222U, + 0x95a810d7U, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0x70000000U, + 0x88000000U, + 0x4000000U, + 0x66000000U, + 0xc5000000U, + 0x57800000U, + 0xcac00000U, + 0x99a00000U, + 0x6c300000U, + 0xe5f80000U, + 0x3ecc0000U, + 0x37b20000U, + 0xd3b0000U, + 0xa4678000U, + 0xb9114000U, + 0xfd86e000U, + 0xcdd59000U, + 0x1d348800U, + 0xbc6ddc00U, + 0xe50b0a00U, + 0x67809d00U, + 0xe2c7e880U, + 0xeda20cc0U, + 0x8226e2a0U, + 0x24e590d0U, + 0xf4c8938U, + 0x3861dec4U, + 0xc31908e6U, + 0x28b9d2fU, + 0xc5586a20U, + 0xaf7f4d4fU, + 0x1f92020fU, + 0x2ecb02b0U, + 0x2fbf8017U, + 0x512d43bbU, + 0x3e6ce33eU, + 0x96129204U, + 0xd190b19U, + 0xf38b9c68U, + 0xdcd86bbcU, + 0xd4bf4c42U, + 0x3fb201b9U, + 0x493b01e7U, + 0x62678113U, + 0xc114322U, + 0x2206e016U, + 0x3159058U, + 0xe294886bU, + 0x155ddcd9U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0xf0000000U, + 0xb8000000U, + 0x94000000U, + 0xaa000000U, + 0xb9000000U, + 0x77800000U, + 0x87c00000U, + 0x5b600000U, + 0xc2f00000U, + 0xbe280000U, + 0x97c40000U, + 0xd36a0000U, + 0x8ef50000U, + 0x70338000U, + 0x3cd4c000U, + 0x89fae000U, + 0xd4b99000U, + 0x159aa800U, + 0xd2d1a400U, + 0x72e12a00U, + 0xa6316700U, + 0x93d9cb80U, + 0x3179f4c0U, + 0x1bfae160U, + 0x39b99290U, + 0xa81aa9c8U, + 0x1c11a774U, + 0xe6012b96U, + 0x770165abU, + 0xdc91c99bU, + 0xdd4df730U, + 0x138e32bU, + 0xa74891dbU, + 0x50232910U, + 0x6cc0641bU, + 0xa1e04be3U, + 0x8a8353cU, + 0x939b8131U, + 0x55d0c2aaU, + 0x1670e29aU, + 0xef7c9231U, + 0x38e12b2aU, + 0x2f31655aU, + 0x3c59cad1U, + 0xd2b9f67aU, + 0x529ae072U, + 0xd64992f5U, + 0xcbb2abc4U, + 0xb515a47dU, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0x70000000U, + 0x38000000U, + 0xdc000000U, + 0xde000000U, + 0x6d000000U, + 0x90800000U, + 0x6dc00000U, + 0x1e600000U, + 0x34f00000U, + 0xf6280000U, + 0xebcc0000U, + 0x3f720000U, + 0x127d0000U, + 0x62fa8000U, + 0x5f2b4000U, + 0x94fe000U, + 0xd9b17000U, + 0x2d948800U, + 0x754d2400U, + 0xb7a60a00U, + 0x589a6700U, + 0x49d3ea80U, + 0x3c6a16c0U, + 0xf7e7e260U, + 0x33bd71b0U, + 0xca868b18U, + 0x92c02704U, + 0x55f48bdaU, + 0x30bd2473U, + 0x2f0e0bc3U, + 0xc3966610U, + 0xc041eb83U, + 0xab27177bU, + 0xa3556244U, + 0xdeaa3331U, + 0x9a136bf4U, + 0xdf005429U, + 0x3b8882f0U, + 0x3c5642f3U, + 0x5356303U, + 0xf65a3170U, + 0x923b6bb3U, + 0x29cc5623U, + 0xac7a80e0U, + 0x9feb40bbU, + 0xa7afe06fU, + 0xf08170d6U, + 0xfddc88aeU, + 0x76712651U, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0xb0000000U, + 0x88000000U, + 0xd4000000U, + 0x46000000U, + 0xd9000000U, + 0x81800000U, + 0xd5400000U, + 0xd0600000U, + 0xc0f00000U, + 0xe0380000U, + 0xf3040000U, + 0x2820000U, + 0xffdb0000U, + 0xabbd8000U, + 0x15534000U, + 0x70616000U, + 0x90efd000U, + 0xd83fb800U, + 0xaf059400U, + 0x90803a00U, + 0x60cdd500U, + 0xf33cd980U, + 0x418147c0U, + 0x755a03a0U, + 0x806f0090U, + 0xf8e780b8U, + 0xbc3c42f4U, + 0x6106e13eU, + 0x9d939361U, + 0xa759585fU, + 0xff660732U, + 0x106160c7U, + 0x60efd29aU, + 0xb03fbb4bU, + 0xcb0595f0U, + 0x5e803904U, + 0x6dcdd636U, + 0x34bcdbfdU, + 0x4dc1454dU, + 0x24ba01a9U, + 0x95df036fU, + 0xc8bf831aU, + 0x8fc8408bU, + 0x83bce050U, + 0x914c9294U, + 0xe66d80eU, + 0x15ee4649U, + 0xcbbd8393U, + 0xe5534338U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0x90000000U, + 0x8000000U, + 0xfc000000U, + 0xae000000U, + 0x11000000U, + 0x24800000U, + 0x8d400000U, + 0x88600000U, + 0x45f00000U, + 0x68280000U, + 0x870c0000U, + 0x918e0000U, + 0xd3d70000U, + 0xd62c8000U, + 0x5e1b4000U, + 0x69106000U, + 0x60977000U, + 0x47451800U, + 0xc3653400U, + 0x22679a00U, + 0x7ee97700U, + 0xb7bb7a80U, + 0xf5d54540U, + 0xfb2602a0U, + 0xf49b02b0U, + 0x65428218U, + 0xc47c41f4U, + 0x73f4e20aU, + 0x8d303181U, + 0xf193780bU, + 0xa3d94766U, + 0x6e280113U, + 0x3a0c023eU, + 0x330e0147U, + 0x23970204U, + 0xdccc809eU, + 0x7bab43dbU, + 0x3d86202U, + 0x3e2b73f1U, + 0x12031b73U, + 0x5f0e35c2U, + 0x858d1811U, + 0x31d93563U, + 0xf121986aU, + 0x9f82767dU, + 0x92d1f95dU, + 0xdaa50401U, + 0xbf5ce3e7U, + 0x477c3098U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x30000000U, + 0x58000000U, + 0xa4000000U, + 0x2000000U, + 0x39000000U, + 0x93800000U, + 0x41c00000U, + 0x80a00000U, + 0x3e300000U, + 0xf6780000U, + 0xca140000U, + 0xd5020000U, + 0x3d810000U, + 0xb6d98000U, + 0xd43fc000U, + 0x7363e000U, + 0x9f8d1000U, + 0x9fd96800U, + 0x4fa05c00U, + 0xfea2ea00U, + 0xe12e9d00U, + 0x3ee08b80U, + 0x11484dc0U, + 0xdff802e0U, + 0x66d40350U, + 0xfc2200e8U, + 0xef7102b4U, + 0x9818326U, + 0xfcdbc373U, + 0x4139e044U, + 0x2ee8111bU, + 0x195aeb95U, + 0x13fa9ed7U, + 0x98c2888fU, + 0x63394e26U, + 0x47f981d6U, + 0xe2cfc14eU, + 0xae3be0a2U, + 0xbe691388U, + 0x66036801U, + 0x1b055e64U, + 0xfa81680eU, + 0xba445c27U, + 0x3d78eab2U, + 0x188b9ec0U, + 0xf3430b45U, + 0x96e28edaU, + 0xcd406211U, + 0x29e7d209U, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0x10000000U, + 0xd8000000U, + 0xb4000000U, + 0xda000000U, + 0xa1000000U, + 0xcd800000U, + 0x69400000U, + 0xae600000U, + 0x7ef00000U, + 0x8c380000U, + 0x340c0000U, + 0x9a1e0000U, + 0x10d0000U, + 0xdd8f8000U, + 0xb156c000U, + 0x1a79e000U, + 0xa4e6d000U, + 0x2d38b800U, + 0xf98d5400U, + 0xf3493a00U, + 0xaf669500U, + 0xa3675880U, + 0x3d6a8540U, + 0x2e6003e0U, + 0x3ef00390U, + 0x2c380288U, + 0x240c0014U, + 0x421e033eU, + 0xb50d01f1U, + 0x78f82e7U, + 0x1056c2daU, + 0xd7f9e3bfU, + 0xcda6d08eU, + 0x8358bae1U, + 0x877d552fU, + 0x7f71392eU, + 0x9b6a9711U, + 0x397959f7U, + 0x3c678512U, + 0xf3ef804bU, + 0x8fa6c020U, + 0x3641e198U, + 0x80ead3dcU, + 0x6f26bacaU, + 0x4c80545fU, + 0xf4c6b91eU, + 0xbf305569U, + 0x749eb9bbU, + 0xf0cc5550U, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0xb0000000U, + 0xc8000000U, + 0x8c000000U, + 0x5e000000U, + 0xbf000000U, + 0xa9800000U, + 0x68400000U, + 0xd7e00000U, + 0x15700000U, + 0xbea80000U, + 0x41c0000U, + 0xb21a0000U, + 0xf11b0000U, + 0x6e9e8000U, + 0x85c34000U, + 0x6dada000U, + 0x23991000U, + 0xbd57d800U, + 0x7b76c400U, + 0x9b35a00U, + 0x819e8700U, + 0x34487880U, + 0x51e8d5c0U, + 0x5e6003a0U, + 0xd3003f0U, + 0x14800d8U, + 0x2d6c020cU, + 0x9ab200feU, + 0xc607016dU, + 0x2b048081U, + 0xa3984308U, + 0x7d532303U, + 0xdb6a51e4U, + 0xb9b27b6dU, + 0x4983d781U, + 0xb8568388U, + 0xfef42c3U, + 0xe17fa044U, + 0xa4ae139dU, + 0x691b59d9U, + 0xfa828544U, + 0x8fd2781dU, + 0x78b3d699U, + 0x2f1e8024U, + 0x118342cdU, + 0x8c4da371U, + 0xb5e913d0U, + 0x3c7fd90fU, + 0x242ac51aU, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0xf0000000U, + 0xa8000000U, + 0x4000000U, + 0xba000000U, + 0xfb000000U, + 0xaf800000U, + 0x36400000U, + 0xdce00000U, + 0x42700000U, + 0xc8b80000U, + 0x298c0000U, + 0xcb420000U, + 0xce7f0000U, + 0xc6bb8000U, + 0x609ac000U, + 0x6bd4a000U, + 0x45b7d000U, + 0xd3175800U, + 0xeb952400U, + 0x2c56da00U, + 0xd7fce500U, + 0x45fbf880U, + 0xfaeef6c0U, + 0x4f638220U, + 0x7226c2d0U, + 0xa94ea2c8U, + 0xd974d03cU, + 0x7736daf6U, + 0xe7cce725U, + 0x4ba3f925U, + 0x9a12f73cU, + 0x4b19826fU, + 0xa795c3b6U, + 0xc257235cU, + 0xcee11146U, + 0xbd61fb5dU, + 0xdd2df5e1U, + 0xe4c203ceU, + 0xb83f0198U, + 0xba5b82b4U, + 0xd2eac12aU, + 0xb6ca0a3U, + 0x683bd058U, + 0xa255580dU, + 0xdeea2769U, + 0x456d5812U, + 0x8126261eU, + 0xf2cf5bc9U, + 0xfd29261bU, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0xb0000000U, + 0x18000000U, + 0x1c000000U, + 0x96000000U, + 0x9b000000U, + 0x9c800000U, + 0x34c00000U, + 0x3d600000U, + 0x94f00000U, + 0xaba80000U, + 0x60840000U, + 0xd2c20000U, + 0xde790000U, + 0xa4668000U, + 0x117a4000U, + 0xdae62000U, + 0x4ca03000U, + 0xda176800U, + 0x65102400U, + 0x639bea00U, + 0x92576700U, + 0x1cb94b80U, + 0xb20415c0U, + 0x10683e0U, + 0x598a41b0U, + 0x874e23b8U, + 0x72430dcU, + 0x8c55684aU, + 0x93a926cfU, + 0x6c9d6adfU, + 0x8cdd27ecU, + 0xf1776ba9U, + 0xaae026c2U, + 0x34b3eaf0U, + 0x76136518U, + 0xeb1b4accU, + 0xe48d1562U, + 0x98c8017bU, + 0xb3740101U, + 0x13ea03adU, + 0xa13d02bfU, + 0xcf44839cU, + 0x733343f1U, + 0x7e48a3aeU, + 0x32ae7302U, + 0xe51b480bU, + 0xa38d15d9U, + 0xf2480081U, + 0xacb4016dU, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0x50000000U, + 0x58000000U, + 0x24000000U, + 0xca000000U, + 0xa1000000U, + 0xe2800000U, + 0xe4400000U, + 0x85600000U, + 0x44f00000U, + 0x3f280000U, + 0x62840000U, + 0x245e0000U, + 0xe56d0000U, + 0x14f58000U, + 0x673ec000U, + 0x468de000U, + 0xee4f3000U, + 0x4479f800U, + 0xf665f400U, + 0x837a7a00U, + 0xc3f23700U, + 0xaabc1b80U, + 0x7b5ec640U, + 0x94f582e0U, + 0xa73ec2d0U, + 0x268de3c8U, + 0xbe4f3354U, + 0x1c79f9c2U, + 0xd265f585U, + 0x497a78b7U, + 0x62f23706U, + 0x483c1ae3U, + 0x9f1ec548U, + 0x11958098U, + 0xe3cec1dcU, + 0x19a5e3f6U, + 0xdccb30d7U, + 0x3827f81aU, + 0x3708f435U, + 0x5d8ff8efU, + 0x5ccf6faU, + 0xeb1f8e5U, + 0x7151f627U, + 0x55ec792eU, + 0x15ab34e7U, + 0x9adf9b02U, + 0x1f3907a9U, + 0x929be3f9U, + 0x4c5633fdU, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x10000000U, + 0x78000000U, + 0xb4000000U, + 0xfe000000U, + 0x8d000000U, + 0x51800000U, + 0xb5c00000U, + 0xc7a00000U, + 0xd1300000U, + 0x6780000U, + 0xc8940000U, + 0x2a460000U, + 0xf7610000U, + 0x9b0b8000U, + 0x508e4000U, + 0xce54e000U, + 0x11665000U, + 0xb2122800U, + 0x871afc00U, + 0x4287aa00U, + 0x7951bd00U, + 0x5be6cb80U, + 0x174cad40U, + 0xeeed8260U, + 0x92df4390U, + 0xb5276398U, + 0xa07c10a4U, + 0x8180cb5eU, + 0xedddae33U, + 0x3be03a0U, + 0x473502a7U, + 0x476d83c1U, + 0xd31f42f1U, + 0xec87624eU, + 0xec4c116bU, + 0xae78c924U, + 0x2489af89U, + 0x105802baU, + 0xec64010dU, + 0x8b9e0103U, + 0xfec5001fU, + 0xcf358102U, + 0xdb7b424eU, + 0x811961fcU, + 0x3b89124dU, + 0xb6cd48f4U, + 0x7332ec66U, + 0xf9616227U, + 0x3e1d1296U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0x70000000U, + 0x8000000U, + 0x84000000U, + 0x7e000000U, + 0x49000000U, + 0x24800000U, + 0x55400000U, + 0xd3600000U, + 0x64f00000U, + 0xf2280000U, + 0x1840000U, + 0x3bda0000U, + 0xd9230000U, + 0x2e0f8000U, + 0x91064000U, + 0xb89a6000U, + 0xd74c7000U, + 0x68661800U, + 0xf374d400U, + 0xb4fb9a00U, + 0xea259700U, + 0xfd9c7b80U, + 0xc9c8a6c0U, + 0x6a3583a0U, + 0x3d9540d0U, + 0xa9dde058U, + 0x1a3e32f4U, + 0x358e794aU, + 0x2ddfa661U, + 0x64280027U, + 0x7c8402e2U, + 0x95a0197U, + 0x31630100U, + 0xafef804aU, + 0x6db640e1U, + 0xc3526267U, + 0xae787002U, + 0x56741a27U, + 0x1a63d728U, + 0x80661ab6U, + 0xc774d447U, + 0xa2fb99d8U, + 0x572595feU, + 0xaf1c7bcbU, + 0x5188a4f6U, + 0xe3d5826dU, + 0x452543c9U, + 0xac15e2d1U, + 0x2a0a3345U, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0xd0000000U, + 0x78000000U, + 0x9c000000U, + 0x6a000000U, + 0xeb000000U, + 0x26800000U, + 0x18c00000U, + 0x76a00000U, + 0x15300000U, + 0x26680000U, + 0x379c0000U, + 0xcd560000U, + 0xa4e10000U, + 0xb9568000U, + 0x4ae9c000U, + 0xd447a000U, + 0x4576f000U, + 0xe511a800U, + 0xfb989c00U, + 0x1f592a00U, + 0x73fc5f00U, + 0x25d60880U, + 0xc12e6c40U, + 0x18688160U, + 0x2294c230U, + 0x5ec722c8U, + 0xffbe329cU, + 0xeca088d2U, + 0x9637adbfU, + 0x44e722e8U, + 0x94e309bU, + 0x42e88b59U, + 0xe05bafa9U, + 0xcb792196U, + 0xf8033369U, + 0x5c000a61U, + 0xca0f6f8aU, + 0x3b1e01fbU, + 0x5e8d03beU, + 0x84c880d2U, + 0x1ca4c368U, + 0xfe2f215bU, + 0xe231f9U, + 0x2f568839U, + 0xbbe6ac4eU, + 0xb1d9a06dU, + 0x9f3bf0d7U, + 0x7d792ab3U, + 0x190c5ce2U, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0xd0000000U, + 0xf8000000U, + 0x44000000U, + 0xc2000000U, + 0xd000000U, + 0x6b800000U, + 0x4b400000U, + 0xf0e00000U, + 0x9bb00000U, + 0xfb580000U, + 0x38fc0000U, + 0x57be0000U, + 0x555d0000U, + 0x4beb8000U, + 0xb72ec000U, + 0xba84e000U, + 0x96c75000U, + 0xfcbad800U, + 0x61db9400U, + 0x3e3e3a00U, + 0xf31cc500U, + 0xa084e080U, + 0x4fc75240U, + 0xd3ad960U, + 0xb39b9650U, + 0x9f5e3ae8U, + 0x6aecc424U, + 0x2bce226U, + 0xaacb5359U, + 0x3abcdb0dU, + 0xeca9513U, + 0x88b3bac6U, + 0x2bd306a9U, + 0x5f358095U, + 0xe683c2efU, + 0x60d7637cU, + 0x1ba5929aU, + 0xbb583b03U, + 0x98fdc72eU, + 0x87b1630dU, + 0xad449273U, + 0xfedbb96U, + 0x753e05c1U, + 0xb7860071U, + 0xfd5100e9U, + 0xb7ed8095U, + 0x913fc2efU, + 0xa589637cU, + 0x848929aU, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0x10000000U, + 0x8000000U, + 0x94000000U, + 0xb6000000U, + 0x5d000000U, + 0xdc800000U, + 0x3ec00000U, + 0x8d600000U, + 0xcbb00000U, + 0x8ad80000U, + 0x8b740000U, + 0x6eae0000U, + 0xda5b0000U, + 0x9fa78000U, + 0x9cca4000U, + 0x26766000U, + 0xaa2fb000U, + 0x78820800U, + 0x30de1400U, + 0xbc746a00U, + 0x2d31a500U, + 0xc3166180U, + 0xa59fb140U, + 0xac5a0ba0U, + 0x62aa1610U, + 0xb05a68f8U, + 0xaaa624U, + 0xbb51e02aU, + 0x9125f0cfU, + 0x51146ae7U, + 0xb681a5c5U, + 0xa1ce60e6U, + 0xaaebb327U, + 0x7cf409bbU, + 0x71f1148bU, + 0x457de8a3U, + 0xffa0e59fU, + 0xccc781a1U, + 0xce7a41ecU, + 0x2e2e6238U, + 0xc69bb1c4U, + 0xf9cc081aU, + 0xd6f51567U, + 0x4eebea9bU, + 0x92ffe45bU, + 0x50f601bbU, + 0xabef008bU, + 0x226982a3U, + 0x5421409fU, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0x90000000U, + 0xc8000000U, + 0x14000000U, + 0xd2000000U, + 0x45000000U, + 0x28800000U, + 0xebc00000U, + 0xb6600000U, + 0xc9b00000U, + 0x6dc80000U, + 0x1640000U, + 0xd43e0000U, + 0xf6830000U, + 0x80df8000U, + 0x6df6c000U, + 0xc5e9e000U, + 0x81fe3000U, + 0x7bf4a800U, + 0xbaff5400U, + 0x887d4a00U, + 0x32b16700U, + 0x7e41e180U, + 0x192a3140U, + 0xea02a8a0U, + 0xc9185610U, + 0xc69cca68U, + 0xf8c4a644U, + 0xc1f7826aU, + 0x5be2c3fbU, + 0xcaffe2dbU, + 0xd0693299U, + 0xeebd2b06U, + 0xb85e9667U, + 0x8e3d2b0dU, + 0x879e9664U, + 0xa5d2aa8U, + 0x9b2e97a4U, + 0x871528daU, + 0x658a9583U, + 0x374b29f7U, + 0x1fb99737U, + 0xf2dcabd7U, + 0x98eb57e7U, + 0x556b495fU, + 0x26266793U, + 0xc388628dU, + 0xf04bf324U, + 0x5a22c808U, + 0xb587a6b4U, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0xb0000000U, + 0xf8000000U, + 0xac000000U, + 0x1a000000U, + 0xd1000000U, + 0xd800000U, + 0xfe400000U, + 0x3ea00000U, + 0xccf00000U, + 0x78480000U, + 0xcda40000U, + 0x5c7a0000U, + 0x21810000U, + 0x244e8000U, + 0xfbcc000U, + 0x71606000U, + 0x7e191000U, + 0x5f0cb800U, + 0x8a8b7c00U, + 0x88ccda00U, + 0xe4626f00U, + 0xad886180U, + 0x6e4d11c0U, + 0x96beb860U, + 0x28ee7c70U, + 0x36585988U, + 0xaaafaef4U, + 0x9aee81deU, + 0x34cc17dU, + 0xe92860acU, + 0x3bd10baU, + 0xfb76ba93U, + 0x70a7df1U, + 0xb6825aceU, + 0x3adeac0dU, + 0xd16800acU, + 0xee1401b2U, + 0xf712002fU, + 0x6e9501b3U, + 0xc6dc83a1U, + 0x8369c196U, + 0x6b1ce2e1U, + 0x4c80d1beU, + 0x5bd8590dU, + 0x24efaf24U, + 0xbc4e834eU, + 0xd3bcc1cdU, + 0x736062ccU, + 0xb31912c2U, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0xf0000000U, + 0x8000000U, + 0x84000000U, + 0x3e000000U, + 0xe9000000U, + 0x50800000U, + 0x7ec00000U, + 0x30600000U, + 0xfab00000U, + 0x5cd80000U, + 0xdb740000U, + 0x11320000U, + 0xd1870000U, + 0x1a458000U, + 0x98b54000U, + 0x57d5e000U, + 0xc0eeb000U, + 0x947e8800U, + 0x94b53400U, + 0xadcb6a00U, + 0xf7eb8500U, + 0xddede180U, + 0xb2eab2c0U, + 0x67748ba0U, + 0x33635d0U, + 0x9284ead8U, + 0x65ddc4b4U, + 0xd3f7803aU, + 0xf3f2409fU, + 0xa3f06223U, + 0xbbebf3c1U, + 0xc7f3696aU, + 0x75ef8533U, + 0x26e7e28dU, + 0xa169b374U, + 0x663b0a2eU, + 0x780074f5U, + 0xcc1e8aa4U, + 0x5a0536f6U, + 0x27136b41U, + 0xb19f841eU, + 0xaa5fe029U, + 0x70adb182U, + 0x23d10b6fU, + 0xf6f375ebU, + 0xf9690b0dU, + 0xfa3775b4U, + 0x3a030b8eU, + 0x97047425U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0x50000000U, + 0x28000000U, + 0xd4000000U, + 0x42000000U, + 0xb1000000U, + 0xfb800000U, + 0x9cc00000U, + 0xf0e00000U, + 0xd0300000U, + 0x16c80000U, + 0x5f40000U, + 0x21b60000U, + 0xbf070000U, + 0x648b8000U, + 0x854c000U, + 0xe0b16000U, + 0x9c86d000U, + 0x34462800U, + 0x16bfe400U, + 0x3f974a00U, + 0x56c93700U, + 0xa5f96380U, + 0x11b2d240U, + 0xc7102920U, + 0x9888e610U, + 0x9e54cba8U, + 0x13a9f694U, + 0xd61e0166U, + 0x530302f7U, + 0x7a95810dU, + 0x1f57c323U, + 0x9024e230U, + 0xb6d112c3U, + 0x35e2ca3bU, + 0x59aef65cU, + 0x43158339U, + 0xf297c0eeU, + 0xfb44e008U, + 0xaa211044U, + 0xfbcacb2eU, + 0x586af793U, + 0x366b8233U, + 0xf964c218U, + 0x45f96217U, + 0x81b2d07dU, + 0x8f1029bbU, + 0x1c88e41cU, + 0xf454ca19U, + 0x76a9f6feU, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0xb0000000U, + 0x38000000U, + 0xf4000000U, + 0xee000000U, + 0x1f000000U, + 0xe4800000U, + 0x39400000U, + 0xea600000U, + 0x2f300000U, + 0xa7580000U, + 0x6d740000U, + 0x6fba0000U, + 0xf8090000U, + 0x540d8000U, + 0xbe094000U, + 0x970f2000U, + 0x2886f000U, + 0x2358f800U, + 0x1b644400U, + 0xd4b7da00U, + 0x7a92b500U, + 0xbe572180U, + 0xaaf2f3c0U, + 0x7062fb60U, + 0x9e2d4510U, + 0xbcda5958U, + 0xabf6acU, + 0x848001aaU, + 0xc9400359U, + 0x3260035bU, + 0x6b300149U, + 0x7158026cU, + 0x867402a5U, + 0x653a0309U, + 0xde4902ccU, + 0x5aed80d5U, + 0xa8794141U, + 0xda372238U, + 0x6ac2f353U, + 0xebbaf9f2U, + 0x8e19469aU, + 0xef005931U, + 0x3c92f59fU, + 0x7d558327U, + 0x3c7d42dbU, + 0xc4352289U, + 0xadcff10cU, + 0x4b357bb5U, + 0x615d0451U, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0xf0000000U, + 0x98000000U, + 0x14000000U, + 0x6a000000U, + 0xc9000000U, + 0x4e800000U, + 0xdd400000U, + 0x84200000U, + 0x53700000U, + 0xe580000U, + 0xdbbc0000U, + 0x74ba0000U, + 0xcd350000U, + 0x5dfd8000U, + 0x731dc000U, + 0xaf856000U, + 0xbfcb7000U, + 0xd770b800U, + 0xec5ecc00U, + 0xceadda00U, + 0x2c29bd00U, + 0x3f676080U, + 0x204272c0U, + 0x10b738e0U, + 0x7f360f90U, + 0x20f539c8U, + 0xa78f0e74U, + 0x23cab812U, + 0x616bce91U, + 0x335059caU, + 0xaf347ca8U, + 0x8e20161U, + 0x8b890397U, + 0xadc78199U, + 0x5a68c39bU, + 0xa0d8e047U, + 0x56e6b3b4U, + 0x988dd972U, + 0x1259bd41U, + 0x2dbf6122U, + 0xbbe722cU, + 0x5cad386bU, + 0xe1330c1aU, + 0xd3f0b985U, + 0x481ece08U, + 0x3c0dd8d1U, + 0x4619bf2fU, + 0x471f60b5U, + 0x758e72b5U, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0x90000000U, + 0x8000000U, + 0x8c000000U, + 0x66000000U, + 0x71000000U, + 0x7c800000U, + 0x6a400000U, + 0x7e200000U, + 0xa2700000U, + 0x85480000U, + 0xa7a40000U, + 0xb6be0000U, + 0x9a3b0000U, + 0x18648000U, + 0x7a5b4000U, + 0xb635e000U, + 0xce6f3000U, + 0x73449800U, + 0xdeb4ec00U, + 0x46397a00U, + 0x967fdf00U, + 0x1743e180U, + 0xa4b03140U, + 0x593e1ba0U, + 0x17e4ac70U, + 0x67801bb8U, + 0xc1dfacf4U, + 0xf9e499eaU, + 0x5a84ed2dU, + 0x3b5179aaU, + 0x72abdc50U, + 0x5035e3d5U, + 0x7f6f32a3U, + 0xefc49b05U, + 0x24f4ecebU, + 0x30197909U, + 0xb80fdc55U, + 0xf40be0beU, + 0x721433eaU, + 0x93001870U, + 0xe79fafe5U, + 0x1c49a3bU, + 0x19f4ee41U, + 0xca997ad9U, + 0x334fdfc0U, + 0xfeabe13dU, + 0x3624315fU, + 0xe681b43U, + 0x934bad08U, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0x70000000U, + 0xa8000000U, + 0xd4000000U, + 0x4a000000U, + 0x9b000000U, + 0x3b800000U, + 0x56400000U, + 0x4ee00000U, + 0xdab00000U, + 0x6b480000U, + 0xc86c0000U, + 0xca6a0000U, + 0x95730000U, + 0x9cf38000U, + 0x5da1c000U, + 0x1edd2000U, + 0x97399000U, + 0x58017800U, + 0xbc00b400U, + 0x3e145a00U, + 0xa1152700U, + 0x89f2080U, + 0xb9d692c0U, + 0x52b0f820U, + 0xf4e7690U, + 0x8a78f988U, + 0xf562763cU, + 0x4cf2f946U, + 0x85a175f5U, + 0x62c97bf5U, + 0x92cb7a3U, + 0x891e5b9eU, + 0x1c9627b7U, + 0x53c4a162U, + 0xb9ab53d1U, + 0x9ccfd987U, + 0x828e5ecU, + 0xf18003f8U, + 0xd400004U, + 0xd56001e2U, + 0xfcf00047U, + 0x8da8021aU, + 0xc6dc0115U, + 0xeb220045U, + 0xc61f033bU, + 0x6d19806aU, + 0x9e92c32dU, + 0xcccea2e1U, + 0x10285189U, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0x70000000U, + 0x78000000U, + 0x7c000000U, + 0xda000000U, + 0x45000000U, + 0xfb800000U, + 0x94c00000U, + 0xeae00000U, + 0x4c300000U, + 0xf7c80000U, + 0x4e6c0000U, + 0xc66a0000U, + 0x2690000U, + 0x47c8000U, + 0xeb66c000U, + 0x2deee000U, + 0x3ea55000U, + 0x9a842800U, + 0x795ea400U, + 0x3922ca00U, + 0x1457f700U, + 0x76ace080U, + 0xfe9052c0U, + 0xf5aab60U, + 0xae3d6430U, + 0xaedaa888U, + 0xbffd67e4U, + 0x1fbaa806U, + 0x170d6587U, + 0x7a92a925U, + 0x69516453U, + 0x9130aa7cU, + 0x6054662dU, + 0xa8a62920U, + 0x1d9ba547U, + 0x6bd44945U, + 0x846836e3U, + 0x2b768134U, + 0x8dffc329U, + 0x4eba6256U, + 0xe29f9268U, + 0x548c894U, + 0xe33ef4aeU, + 0x51506073U, + 0x8d3690bbU, + 0x6a544928U, + 0xe5a83463U, + 0xe2168023U, + 0x590fc054U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0x10000000U, + 0xc8000000U, + 0x8c000000U, + 0x82000000U, + 0x83000000U, + 0xc9800000U, + 0xb0400000U, + 0x3ee00000U, + 0xc8b00000U, + 0xbb480000U, + 0xdb740000U, + 0x8afe0000U, + 0xdeb30000U, + 0x9e4c8000U, + 0x8ff7c000U, + 0x3a272000U, + 0x968bd000U, + 0x93c3f800U, + 0xf1ae7400U, + 0x65ccda00U, + 0x4a1a700U, + 0x99592380U, + 0x2878d340U, + 0x9b6f7aa0U, + 0x2ae9b670U, + 0xaea3fb28U, + 0x465e773cU, + 0xcbe4daaeU, + 0x3425a78dU, + 0x978f237dU, + 0xd94fd093U, + 0x8875fabeU, + 0xeb697433U, + 0xf2fe58c8U, + 0xeaa565eaU, + 0x48528207U, + 0xcaf4c1eaU, + 0x7ea3a101U, + 0xee48109bU, + 0x57fadbb2U, + 0x7e26a695U, + 0x988ba249U, + 0x92cc1231U, + 0xbb2cd915U, + 0x1c11a60fU, + 0x8a1123e0U, + 0x6f0cd2d6U, + 0x5b9178a9U, + 0xfb5ab667U, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0x70000000U, + 0x98000000U, + 0x84000000U, + 0x16000000U, + 0x99000000U, + 0x16800000U, + 0x9e400000U, + 0x3e600000U, + 0x9a300000U, + 0x17480000U, + 0xe40000U, + 0xf8620000U, + 0xcb350000U, + 0x8dd78000U, + 0xe4b84000U, + 0x5500e000U, + 0x4c847000U, + 0x9d4c5800U, + 0xcbfb6400U, + 0x81e4ba00U, + 0xaaeb1700U, + 0xa362e180U, + 0x5ab172c0U, + 0xf01bd9e0U, + 0x580327d0U, + 0x64045838U, + 0x661f6774U, + 0x106b982U, + 0x929e16ddU, + 0x88556343U, + 0xa77930c1U, + 0x8cb3391cU, + 0x891357dfU, + 0x3e8203deU, + 0x62450222U, + 0xdc7f82adU, + 0x8d2c430bU, + 0x1ccae1fdU, + 0x9e2570a2U, + 0xc151d83cU, + 0x79e2253eU, + 0x9ef9dba3U, + 0xcd762440U, + 0x37b3d971U, + 0x689726e5U, + 0xdb4e5be6U, + 0x5afe6556U, + 0xfb7b3b2fU, + 0x3eb755d6U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0x50000000U, + 0x58000000U, + 0xc000000U, + 0x3a000000U, + 0x5d000000U, + 0xf3800000U, + 0x8400000U, + 0x57e00000U, + 0x81b00000U, + 0x75480000U, + 0x54740000U, + 0xe1f60000U, + 0x26a90000U, + 0xbbce8000U, + 0xffb8c000U, + 0xe651e000U, + 0xfced5000U, + 0x752eb800U, + 0x83849400U, + 0xa0575a00U, + 0x33edc700U, + 0xbfa7e380U, + 0x46445240U, + 0xcce038e0U, + 0x7d3c5570U, + 0xd786bb88U, + 0x96409644U, + 0x54e958a6U, + 0x1130c715U, + 0xbd9f6071U, + 0x93559057U, + 0xab7f5882U, + 0x2369c753U, + 0xb779e214U, + 0xe16953aeU, + 0xd670ba91U, + 0x20e99577U, + 0xd727d952U, + 0xb288044bU, + 0x39ce8228U, + 0x3eb8c104U, + 0x17d1e0c6U, + 0xf5ad51a5U, + 0xb34eba59U, + 0x5b749603U, + 0x4b7f599cU, + 0xb369c5eaU, + 0x8f79e237U, + 0xbd695262U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0xf0000000U, + 0xa8000000U, + 0xd4000000U, + 0xd6000000U, + 0xb3000000U, + 0xc1800000U, + 0xe7c00000U, + 0xdba00000U, + 0xf700000U, + 0x55580000U, + 0xdde40000U, + 0xa3020000U, + 0xd9830000U, + 0xfbc38000U, + 0x29be4000U, + 0xc269a000U, + 0xf3ccd000U, + 0x2dba0800U, + 0x2c73ec00U, + 0xccd1aa00U, + 0x463c3d00U, + 0x7aa82380U, + 0xb3f192c0U, + 0xdc102b20U, + 0xd2017c90U, + 0x5d0203f8U, + 0xfe83009cU, + 0x8c4381deU, + 0x8d7e4293U, + 0x7049a2c8U, + 0xcf7cd0f2U, + 0x75420963U, + 0x4de7ed86U, + 0xfb0baadfU, + 0xa59b3e8eU, + 0xf9c9a18dU, + 0x4cbcd13dU, + 0xb0e20a93U, + 0xd597ec8eU, + 0x11d3aacbU, + 0xf8bf3c84U, + 0x96eba3b4U, + 0xce8fd29cU, + 0x4598a98U, + 0xc97daf2aU, + 0xfe400befU, + 0x64eee0U, + 0xb6c82930U, + 0xcf257e28U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x70000000U, + 0xa8000000U, + 0xb4000000U, + 0x66000000U, + 0x93000000U, + 0x57800000U, + 0x4f400000U, + 0x2d200000U, + 0x99700000U, + 0x77d80000U, + 0xd7e40000U, + 0xc6120000U, + 0xc3130000U, + 0xef8f8000U, + 0x23544000U, + 0x572ba000U, + 0xd87e1000U, + 0xd557d800U, + 0x5c3a2c00U, + 0xf3ee7a00U, + 0x38173d00U, + 0x2c162380U, + 0x1a0950c0U, + 0x310bfb20U, + 0xa847f10U, + 0x3fd80138U, + 0x53e4019cU, + 0x68120146U, + 0x941302b1U, + 0x760f834aU, + 0x4b144188U, + 0x4b8ba0f3U, + 0x9d4e1376U, + 0xd82fdb99U, + 0x5dee2d6eU, + 0x6f047a12U, + 0xb5903ce4U, + 0x7253a0bdU, + 0x2daa1073U, + 0x4fbdda31U, + 0x32bd2e0dU, + 0x522bfa1cU, + 0xf4f47c81U, + 0x19800165U, + 0x28400058U, + 0x7ca001ebU, + 0x3530017aU, + 0xa57801a7U, + 0xb5d40023U, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0x70000000U, + 0x38000000U, + 0x34000000U, + 0x1e000000U, + 0xf3000000U, + 0x86800000U, + 0xc6c00000U, + 0xf5a00000U, + 0x68700000U, + 0x7580000U, + 0xebec0000U, + 0x881a0000U, + 0x6c010000U, + 0x7a058000U, + 0xa50b4000U, + 0x799aa000U, + 0x6a483000U, + 0xde6bc800U, + 0xe8480c00U, + 0x2f6b6a00U, + 0xdfc13d00U, + 0xfe252280U, + 0x8b3270c0U, + 0xfaace860U, + 0xbce77d10U, + 0x38800298U, + 0x5c0021cU, + 0x6b2002e2U, + 0xeab00117U, + 0xd4f8012cU, + 0x449c026aU, + 0x17c203b3U, + 0xb22d01c2U, + 0x813f8027U, + 0x67ba4104U, + 0xf167201eU, + 0x4cdf7285U, + 0x28b36813U, + 0x5ed3c92U, + 0x31f22bfU, + 0xfe8372b8U, + 0xd2d16aacU, + 0x9bb03f8aU, + 0xa378a043U, + 0xb5d5312aU, + 0x332c4b93U, + 0x8eae4d72U, + 0x82ee4b4fU, + 0xbb834f50U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x50000000U, + 0x98000000U, + 0x84000000U, + 0x72000000U, + 0x73000000U, + 0xdd800000U, + 0x86400000U, + 0x4e600000U, + 0xff300000U, + 0x3ed80000U, + 0x4a40000U, + 0x61960000U, + 0x510000U, + 0xe76f8000U, + 0x1da4c000U, + 0xb0b2000U, + 0x49815000U, + 0xc433800U, + 0xe96e6400U, + 0xc8be1a00U, + 0x4f8e3500U, + 0xe54aa380U, + 0x6be09040U, + 0xad699be0U, + 0x9abef750U, + 0xc8f81a8U, + 0xf0d4c2dcU, + 0xf1b3233eU, + 0x15155295U, + 0x648d382fU, + 0x9cdb67f5U, + 0xafa79a0aU, + 0x580bf722U, + 0xa416018bU, + 0x4211024aU, + 0xbb0f80c2U, + 0xc194c0dbU, + 0x705320e2U, + 0x4f65529eU, + 0x51b53b25U, + 0x650f6557U, + 0xcc8998c1U, + 0xd0cef608U, + 0xc1b782d9U, + 0xdd00c219U, + 0x789d238cU, + 0x6ad05323U, + 0xaeacb816U, + 0xf68aa73cU, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0x90000000U, + 0x18000000U, + 0x9c000000U, + 0x32000000U, + 0x3d000000U, + 0x5c800000U, + 0xb3400000U, + 0x83200000U, + 0x59700000U, + 0x90c80000U, + 0x19f40000U, + 0xd18e0000U, + 0xc7c90000U, + 0x447c8000U, + 0xfc57c000U, + 0x42bae000U, + 0x46a3b000U, + 0x28a1b800U, + 0x47a6ac00U, + 0xb6355a00U, + 0x41fc1f00U, + 0xed806380U, + 0x5c97140U, + 0xf169d9e0U, + 0x24dbdc30U, + 0x5ff282a8U, + 0xca9ec184U, + 0x1046603aU, + 0x38b47079U, + 0x9fbb5b1eU, + 0x4a351dd8U, + 0xe3fce287U, + 0xc89eb2f6U, + 0xc55339f7U, + 0x70386ff5U, + 0x9af33a3bU, + 0x5a086cfbU, + 0xe91b3910U, + 0x8a8c6f38U, + 0xb05d387cU, + 0xc8b16ee6U, + 0x17afba4fU, + 0xce2fad49U, + 0x4de9d87dU, + 0xc79bdd64U, + 0xa4d283c1U, + 0x9feec2e9U, + 0xaa8e6166U, + 0x80407244U, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0x30000000U, + 0x38000000U, + 0x94000000U, + 0xd6000000U, + 0x99000000U, + 0x3800000U, + 0x43400000U, + 0xc5a00000U, + 0x59f00000U, + 0x2ec80000U, + 0x4be40000U, + 0xa9ca0000U, + 0x9d790000U, + 0x9b198000U, + 0x6c964000U, + 0x9d2e000U, + 0x8d67d000U, + 0x7305d800U, + 0xf0897c00U, + 0x73d53a00U, + 0x5673af00U, + 0x3f836180U, + 0x295593c0U, + 0xf6bd3b60U, + 0x8967ae90U, + 0x8d0161b8U, + 0x15889334U, + 0x3a4eb8d6U, + 0xf638efa9U, + 0x22a201f8U, + 0x7f6d013aU, + 0xc41b8375U, + 0x1e0b42ecU, + 0xd50162f2U, + 0x71889007U, + 0x344eb885U, + 0xcb38ecc4U, + 0xcf2200feU, + 0x312d00a5U, + 0xd43b83daU, + 0x9dbb4225U, + 0x3de96234U, + 0x20dc9056U, + 0x76ecb8e9U, + 0x4455efd8U, + 0xd339828aU, + 0x8b2642fdU, + 0xef3ae090U, + 0xe133d0b8U, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0x30000000U, + 0x38000000U, + 0xa4000000U, + 0xb6000000U, + 0x29000000U, + 0x48800000U, + 0x7a400000U, + 0x9ba00000U, + 0x16f00000U, + 0xd80000U, + 0xeef40000U, + 0x4ca0000U, + 0x88e90000U, + 0x25df8000U, + 0x5c6c4000U, + 0x4d98e000U, + 0x58d6b000U, + 0x3aeb9800U, + 0x6adb9c00U, + 0x35e17a00U, + 0xe3502d00U, + 0xab3f6180U, + 0x28bef1c0U, + 0x1d617b60U, + 0xe9102e50U, + 0xe89f6038U, + 0xaa4ef334U, + 0x93b9787aU, + 0x8ae42d8dU, + 0x12d561acU, + 0x71e7f222U, + 0x6546fb35U, + 0xba386f84U, + 0xc43583d2U, + 0xd13543e1U, + 0x5bbf63b2U, + 0xb6fef36dU, + 0xd0c17860U, + 0xe6e02cd0U, + 0x98c76378U, + 0x9afaf314U, + 0xbad37a0aU, + 0x3dfd2dc5U, + 0x7f52e3d0U, + 0xb93fb3a4U, + 0xb7b41bfeU, + 0x7cf7dc03U, + 0xdbd999e7U, + 0x9769fb9U, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0x90000000U, + 0x38000000U, + 0x1c000000U, + 0xd2000000U, + 0x51000000U, + 0xc9800000U, + 0x65c00000U, + 0x23600000U, + 0x21b00000U, + 0xb4580000U, + 0x8abc0000U, + 0x48d60000U, + 0x48fd0000U, + 0x1d608000U, + 0xeab3c000U, + 0x38db6000U, + 0x40fe9000U, + 0xa97ec800U, + 0x1cac7400U, + 0xa7cbaa00U, + 0xa63e500U, + 0x543be080U, + 0x938d5340U, + 0xc0c5aa60U, + 0xbce2e630U, + 0x4b6d61a8U, + 0xe5b39034U, + 0x4a464aeeU, + 0xa1a3b693U, + 0xf446c94bU, + 0x2aa07461U, + 0xd8c5a994U, + 0x70e2e4a8U, + 0x16d60b4U, + 0x38b391aeU, + 0x69c648f3U, + 0x8963b57bU, + 0xcca6c8c9U, + 0x3fd07520U, + 0x867dab06U, + 0xbe2ee747U, + 0xde836155U, + 0xdb4293faU, + 0x8828c97bU, + 0xa191779fU, + 0xa1cb29ffU, + 0xdd6025cfU, + 0xab88167U, + 0x8cfc1d3U, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0x90000000U, + 0xd8000000U, + 0xdc000000U, + 0x3a000000U, + 0x4d000000U, + 0x60800000U, + 0xf0c00000U, + 0x76a00000U, + 0xe5700000U, + 0xc0580000U, + 0xfe740000U, + 0x3fde0000U, + 0x57210000U, + 0x772c8000U, + 0x4736c000U, + 0xef31e000U, + 0x7b283000U, + 0x45384800U, + 0xee2fec00U, + 0xf9afaa00U, + 0x24e2dd00U, + 0xc21d6180U, + 0xa11ef340U, + 0xf289a8e0U, + 0x29c7dd30U, + 0x2837e188U, + 0xbebd3344U, + 0xa16acaeaU, + 0xc6482cb7U, + 0x196ac938U, + 0xca482e26U, + 0x1b6acbb3U, + 0xcb482e18U, + 0x99eac89cU, + 0xaa882d56U, + 0xb5cacaf1U, + 0xf2382ed1U, + 0x63b2caebU, + 0x19fc2dceU, + 0xea94c807U, + 0x55d92e5aU, + 0x623e4a7fU, + 0xbbbaec9cU, + 0xc5fd2afcU, + 0xd0851c0cU, + 0x18d801a4U, + 0x2b40370U, + 0x4b7e0142U, + 0xb35100c9U, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0x30000000U, + 0xc8000000U, + 0xcc000000U, + 0xd6000000U, + 0x3f000000U, + 0xc9800000U, + 0xe5400000U, + 0x65e00000U, + 0xb9300000U, + 0x11980000U, + 0x915c0000U, + 0x17f20000U, + 0xac2f0000U, + 0xf9188000U, + 0x4e9f4000U, + 0x88cf2000U, + 0xaaa1d000U, + 0xfdd51800U, + 0x923b5400U, + 0x7a02ba00U, + 0x3905c500U, + 0xae988080U, + 0x18df41c0U, + 0x52af21a0U, + 0xf9d1d3f0U, + 0x882d1878U, + 0x931757ccU, + 0xcf88ba7eU, + 0x8246c669U, + 0x986a0231U, + 0x8e7300b1U, + 0x516a8071U, + 0x8f04351U, + 0x15b7a061U, + 0x744e9339U, + 0xd7623bc5U, + 0x2ff684e3U, + 0x483da176U, + 0x730d93e1U, + 0x5f90ba85U, + 0x7a5ac483U, + 0x9c780326U, + 0x946c0069U, + 0xb86a0131U, + 0xfe730331U, + 0x396a8231U, + 0xf4f040b1U, + 0xbb7a071U, + 0x874e9351U, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0x30000000U, + 0x38000000U, + 0xf4000000U, + 0x26000000U, + 0x33000000U, + 0xe4800000U, + 0x95c00000U, + 0x42e00000U, + 0xbbb00000U, + 0xe0980000U, + 0x2bd40000U, + 0x55fa0000U, + 0x71310000U, + 0x8a418000U, + 0x5fae4000U, + 0x6e88a000U, + 0x4d3f000U, + 0x6b6ba800U, + 0x3df6a400U, + 0xcd228a00U, + 0x804b1500U, + 0x8ea18180U, + 0xa71e41c0U, + 0xb290a360U, + 0x7ec7f310U, + 0x6271a878U, + 0x3077a71cU, + 0x657b090aU, + 0x52f1579bU, + 0x13b32319U, + 0xfc8cb179U, + 0xf1c289e9U, + 0x8cfb1551U, + 0x74b980adU, + 0xee0a4377U, + 0x5f0aa3f4U, + 0xe686f2e1U, + 0x88c829eaU, + 0x597de604U, + 0x18f1a806U, + 0x22b7a769U, + 0x51b0a5eU, + 0x7f81540aU, + 0x6d4b221bU, + 0xd28b0d9U, + 0x20408b19U, + 0x5eae1579U, + 0xaf1a03e9U, + 0x7e810051U, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0x10000000U, + 0xb8000000U, + 0xcc000000U, + 0xd2000000U, + 0x99000000U, + 0x77800000U, + 0x35c00000U, + 0xe6e00000U, + 0x50b00000U, + 0x5d880000U, + 0x40c40000U, + 0xb37e0000U, + 0x54650000U, + 0xb8e68000U, + 0x3bb7c000U, + 0x431f6000U, + 0xaa8cd000U, + 0x1458c800U, + 0xfc2ca400U, + 0xfec12a00U, + 0xc867b700U, + 0xf2ee8180U, + 0x9eb3c340U, + 0x4e816160U, + 0x7259d370U, + 0x9b3649a8U, + 0xd25f6554U, + 0xab204896U, + 0x9a4e65b3U, + 0xcf30cbc5U, + 0x3c58a6d5U, + 0x4837298dU, + 0xc6b431U, + 0x93760393U, + 0xa4610246U, + 0x10f883d8U, + 0x4fa2c07cU, + 0x5d11e002U, + 0xe18f1285U, + 0xfad1a926U, + 0xbe7177a8U, + 0x2de96054U, + 0x7e2dd216U, + 0xffc04973U, + 0x83fe64e5U, + 0xbd38ca45U, + 0x955ca595U, + 0x77a928edU, + 0x5113b741U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x50000000U, + 0xd8000000U, + 0x5c000000U, + 0x9e000000U, + 0x31000000U, + 0xf7800000U, + 0xb400000U, + 0xf1e00000U, + 0x29300000U, + 0x61980000U, + 0xfe440000U, + 0xa4660000U, + 0xdd610000U, + 0x8ee88000U, + 0x77ac4000U, + 0xa14be000U, + 0xcaedd000U, + 0x95b91800U, + 0x3e4e1400U, + 0x847a7a00U, + 0xed7f8500U, + 0x6f08380U, + 0xf3a84040U, + 0x634de2e0U, + 0x65fcd030U, + 0x53299918U, + 0xc29655b4U, + 0x7ecf9ba6U, + 0x35b755e9U, + 0x4e471b99U, + 0x6c6b14c9U, + 0x3974faa1U, + 0x1cf2c66dU, + 0xb3e18fU, + 0x3bd9d178U, + 0xa8271becU, + 0x5e1b1672U, + 0x110cfbbfU, + 0xc786c6c8U, + 0x834de0b4U, + 0x75fcd026U, + 0xeb2999a9U, + 0xce965779U, + 0x38cf9bf9U, + 0x58b75539U, + 0x27c71819U, + 0x562b1489U, + 0x3f14f841U, + 0x3e82c65dU, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0xb0000000U, + 0x58000000U, + 0xbc000000U, + 0x6e000000U, + 0x85000000U, + 0xf7800000U, + 0xf9c00000U, + 0xb6a00000U, + 0x9ef00000U, + 0x40980000U, + 0x354c0000U, + 0xf5f20000U, + 0x720d0000U, + 0x1b148000U, + 0xa9e4000U, + 0x24b6000U, + 0x79655000U, + 0x11464800U, + 0x47ec2c00U, + 0x901aa00U, + 0x819b3d00U, + 0xe0de8280U, + 0x9f2f43c0U, + 0xba35e1e0U, + 0xbdba1030U, + 0x3c6ba8d8U, + 0x86da3ce4U, + 0x2e380066U, + 0x57bc00f3U, + 0xfb6a0184U, + 0x7241035cU, + 0x416682b8U, + 0x3d53405eU, + 0xc1ffe36dU, + 0x680b1309U, + 0xa4152865U, + 0xf2057e05U, + 0x5b15e0bfU, + 0x2a8a12b4U, + 0xb253a9ceU, + 0x21663eefU, + 0xad5200d6U, + 0x29fd0121U, + 0x8c0c82f3U, + 0x76124084U, + 0x191963dcU, + 0x29985078U, + 0x24cac93eU, + 0xfd3e6d9dU, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0xf0000000U, + 0xd8000000U, + 0xcc000000U, + 0xba000000U, + 0x11000000U, + 0xb1800000U, + 0xbec00000U, + 0xd1600000U, + 0x98300000U, + 0xa4980000U, + 0x11440000U, + 0xb0b20000U, + 0x6fd50000U, + 0x40ea8000U, + 0xb6f2c000U, + 0x5df36000U, + 0x9d7b1000U, + 0x62326800U, + 0xd58bb400U, + 0x50d38a00U, + 0xd6766500U, + 0x72b88380U, + 0x62d7c2c0U, + 0x361e2e0U, + 0xfd3dd0f0U, + 0x930b0988U, + 0xdc91a774U, + 0xd41622eU, + 0x42ae13bfU, + 0x9ad8e803U, + 0x5f79775bU, + 0x6f20e8b7U, + 0x960d7415U, + 0x1b0ae938U, + 0x189c777eU, + 0x335269e7U, + 0xdbbb46fU, + 0x944b8939U, + 0x3732677aU, + 0x1a0a82a3U, + 0xc102c229U, + 0xf98b6382U, + 0x5acf119fU, + 0x7f786b13U, + 0xff2ab7a3U, + 0xbe13098bU, + 0xf15a42fU, + 0x6e936099U, + 0x984b12aaU, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0x30000000U, + 0x8000000U, + 0xc000000U, + 0x9e000000U, + 0x77000000U, + 0xf9800000U, + 0x4400000U, + 0x7c600000U, + 0x83b00000U, + 0xea880000U, + 0xbfdc0000U, + 0x89220000U, + 0x45570000U, + 0xef88000U, + 0xc8664000U, + 0xd9b32000U, + 0x2f9cd000U, + 0x9f443800U, + 0xbffc400U, + 0xc8e79a00U, + 0x6b695700U, + 0xaa3a8280U, + 0xf6c143c0U, + 0xf7a3a0a0U, + 0x909690f0U, + 0x4add1a58U, + 0xa1a815ecU, + 0xcb99239eU, + 0x1d57d2cdU, + 0xdafeba97U, + 0x427e86dfU, + 0x4a4387bU, + 0x3b0fc7c1U, + 0x878f9976U, + 0x634555f6U, + 0xbdf08359U, + 0x83fa41d5U, + 0x4f12074U, + 0xd57bd0bdU, + 0xed34bb0fU, + 0x7458793U, + 0xfff6b915U, + 0x72e28454U, + 0xbe663a8dU, + 0xb2a8c677U, + 0x701f18cfU, + 0xe80f1733U, + 0x1c09a1e5U, + 0xa61d920cU, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0x10000000U, + 0x78000000U, + 0xac000000U, + 0x5a000000U, + 0x11000000U, + 0x53800000U, + 0xf3400000U, + 0x63e00000U, + 0xed300000U, + 0xca980000U, + 0x4cc0000U, + 0x2ea60000U, + 0x1dd0000U, + 0xeb328000U, + 0x898ac000U, + 0xa2436000U, + 0x10635000U, + 0xe739800U, + 0xd16e5400U, + 0x45fa7a00U, + 0xbe3bc500U, + 0x14148280U, + 0x9617c140U, + 0x7b11e160U, + 0x2a9992f0U, + 0x74c8f888U, + 0x66b106f4U, + 0xc5d7e226U, + 0x65349289U, + 0x6e827841U, + 0xbac7c439U, + 0xa1aa8145U, + 0xcd46c017U, + 0xace56278U, + 0x1be5010U, + 0x9d411bb8U, + 0xf4e4975cU, + 0xbdb91bc2U, + 0xbf589497U, + 0x49e71a54U, + 0xb439959aU, + 0x5d0b9b7bU, + 0x799255feU, + 0xaa447bc9U, + 0xf46ac521U, + 0x906000c9U, + 0x4e7002cdU, + 0xf1780363U, + 0x55fc029eU, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0x30000000U, + 0xd8000000U, + 0xc4000000U, + 0xb2000000U, + 0x1d000000U, + 0xf1800000U, + 0xe4400000U, + 0xfce00000U, + 0x34300000U, + 0xbd180000U, + 0x818c0000U, + 0x1c420000U, + 0x8fd0000U, + 0x5e338000U, + 0x6416c000U, + 0xc219e000U, + 0xe51f9000U, + 0x59fb800U, + 0x8e409400U, + 0x25f7da00U, + 0x77b4c500U, + 0x44420280U, + 0x8cfd01c0U, + 0xcc3383e0U, + 0x4916c3d0U, + 0xeb99e1a8U, + 0xc55f9364U, + 0x4b7fb90eU, + 0xa77097e5U, + 0x696fda35U, + 0x1278c641U, + 0xa4e00387U, + 0xb0300316U, + 0x2f180165U, + 0xac8c01f5U, + 0x35c200a1U, + 0x28bd02d7U, + 0x10d3837eU, + 0x4d26c1e1U, + 0x8e81e32bU, + 0x80d392ecU, + 0xe53db986U, + 0xb28d9531U, + 0xc6dc5903U, + 0x922e04c8U, + 0x9a19e1a8U, + 0x611f9364U, + 0x979fb90eU, + 0xa34097e5U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x30000000U, + 0x28000000U, + 0x2c000000U, + 0x96000000U, + 0x7000000U, + 0x14800000U, + 0xd4c00000U, + 0x4c600000U, + 0x23300000U, + 0xc3180000U, + 0x8e840000U, + 0x15ca0000U, + 0x47e30000U, + 0xe7708000U, + 0xe1af4000U, + 0x70c62000U, + 0xe6607000U, + 0xca270800U, + 0xe48d9400U, + 0xdcdbaa00U, + 0x3061a500U, + 0xad2a0380U, + 0xc01301c0U, + 0x20088120U, + 0x501b4070U, + 0x181422f8U, + 0x40770acU, + 0xba1d8a0aU, + 0x9101d74fU, + 0x138d0b63U, + 0xc05e96dfU, + 0x98b329bdU, + 0x6f4ae776U, + 0xe026207bU, + 0x4d907255U, + 0x9b5f08b2U, + 0x523996f5U, + 0xa089aaf4U, + 0x6c6a6e0U, + 0x91708250U, + 0x96af4208U, + 0x2c462314U, + 0x2ea072c6U, + 0x38470955U, + 0xecbd94c4U, + 0x9d43aaf8U, + 0x6d25a4acU, + 0xe000000aU, + 0x7000024fU, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0x30000000U, + 0x38000000U, + 0xe4000000U, + 0x4e000000U, + 0x7b000000U, + 0x80800000U, + 0x46c00000U, + 0x3f600000U, + 0xda300000U, + 0x17080000U, + 0xd29c0000U, + 0xb7c20000U, + 0xbae10000U, + 0x5f6b8000U, + 0xa3d4000U, + 0x3f0aa000U, + 0x3e857000U, + 0x25ddc800U, + 0x6bf2b400U, + 0xeafeea00U, + 0xb76b8700U, + 0xc6220280U, + 0x9d1103c0U, + 0xd7838060U, + 0x74514350U, + 0x98a0a1d8U, + 0x68c8727cU, + 0x947c4b3aU, + 0x72b2f4f7U, + 0xbdddc8ffU, + 0x7ff2b573U, + 0xbcfeea21U, + 0x186b87e2U, + 0x30a200e3U, + 0x44d101f1U, + 0x266382faU, + 0x93a1407fU, + 0x3048a25bU, + 0x26a473b5U, + 0xbd64bacU, + 0xc0fff6caU, + 0x427c4b9fU, + 0x1db2f54bU, + 0x6b5dc84dU, + 0x9632b5a0U, + 0x751ee9d8U, + 0x1b9b867cU, + 0xd64a013aU, + 0x71bd03f7U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0xb0000000U, + 0xd8000000U, + 0x5c000000U, + 0xe2000000U, + 0xe5000000U, + 0x5d800000U, + 0x4ac00000U, + 0x10a00000U, + 0xcaf00000U, + 0xe9080000U, + 0x17940000U, + 0x4bda0000U, + 0x432d0000U, + 0x5f208000U, + 0x1d3fc000U, + 0x2824e000U, + 0x1da51000U, + 0xd36be800U, + 0x7dc9cc00U, + 0xb0358a00U, + 0xe1be1f00U, + 0xe17a0380U, + 0xf0dd01c0U, + 0x69a882e0U, + 0x156bc3b0U, + 0xf6dee0e8U, + 0x82b812e4U, + 0x97e36afeU, + 0x58920ebfU, + 0x67436b34U, + 0xe2620d00U, + 0x364b6866U, + 0x19f60eb5U, + 0x47916a6bU, + 0xe3db0de2U, + 0xa731eb3bU, + 0x5124ce5cU, + 0xc2350bc2U, + 0xccb1de0dU, + 0xe8f6e1b1U, + 0x6c1c10a5U, + 0xfa116a75U, + 0xd91b0c0bU, + 0xf91e812U, + 0x77d4cef3U, + 0x113d08e8U, + 0x6225dee4U, + 0x1cace0feU, + 0x80f111bfU, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0xd0000000U, + 0x48000000U, + 0xfc000000U, + 0xca000000U, + 0x4d000000U, + 0xe1800000U, + 0x2a400000U, + 0x2a200000U, + 0xf0f00000U, + 0x2b180000U, + 0x6e840000U, + 0x1ad60000U, + 0xfbf30000U, + 0xf5868000U, + 0xec4ec000U, + 0x553ce000U, + 0x387f9000U, + 0x9ec87800U, + 0x15fb8c00U, + 0xa6841a00U, + 0xa6c9dd00U, + 0x51ee0380U, + 0x68870240U, + 0x45c880a0U, + 0x8379c0b0U, + 0xd84c6208U, + 0x233252c4U, + 0xdf6a18aeU, + 0xe24edd9dU, + 0x9626812eU, + 0x5afec26aU, + 0xb604e184U, + 0xc70b9139U, + 0xcc8679e7U, + 0x1bcc8da5U, + 0x48749a95U, + 0x26c41c6aU, + 0x11ec6284U, + 0x88251b9U, + 0x95d21b27U, + 0xcb7adfc5U, + 0x24488045U, + 0xe939c0b2U, + 0x926c6298U, + 0x3c2520bU, + 0xbc721988U, + 0x70cadc84U, + 0x46f0820eU, + 0xec0dc02dU, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0x30000000U, + 0x18000000U, + 0xec000000U, + 0x5a000000U, + 0xc3000000U, + 0x72800000U, + 0x67c00000U, + 0x33200000U, + 0x59700000U, + 0xcd080000U, + 0x17840000U, + 0x445a0000U, + 0x21650000U, + 0xd10e8000U, + 0xb58ec000U, + 0x5b4f2000U, + 0x11f03000U, + 0x99d1a800U, + 0xae2f1c00U, + 0xa6ea0a00U, + 0x9d44ef00U, + 0xb0f20180U, + 0x145103c0U, + 0xc97c83e0U, + 0xc51fc370U, + 0x3393a108U, + 0xda5ff0bcU, + 0x4c6a08a2U, + 0xd684ee93U, + 0x39d20306U, + 0xbe2103faU, + 0x6ef48078U, + 0x595bc1fbU, + 0x1ee9a245U, + 0x614af36bU, + 0x22ec8b3dU, + 0x134e2d5fU, + 0x15e721e3U, + 0xd7c4300eU, + 0xeb23a846U, + 0x557e1f5aU, + 0xa71689a8U, + 0xcc9b2c23U, + 0xdac1a1a1U, + 0x1cbef26dU, + 0x213e8888U, + 0x9e6f2f7cU, + 0xf193a142U, + 0x355ff2e3U, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0x30000000U, + 0x58000000U, + 0x4c000000U, + 0x8e000000U, + 0x5d000000U, + 0x15800000U, + 0xd6400000U, + 0x2e200000U, + 0x84f00000U, + 0x5b080000U, + 0xc8c0000U, + 0xc9d20000U, + 0xf6d0000U, + 0x78528000U, + 0x83204000U, + 0x697e6000U, + 0xf1471000U, + 0xf4bf7800U, + 0x5c348c00U, + 0xcfe19a00U, + 0xff8edf00U, + 0x715a0080U, + 0x34a103c0U, + 0xfc2083e0U, + 0xfffd41f0U, + 0xa784e358U, + 0x3d5b5044U, + 0xbabb1a6eU, + 0xa1229e2dU, + 0xea7662eeU, + 0x71cb124aU, + 0x136d7b54U, + 0x3e598ee1U, + 0xfa33192bU, + 0xe6ee9e3fU, + 0xb804607eU, + 0x1c161085U, + 0x4617fbf2U, + 0x7905cf60U, + 0x8f977b97U, + 0x49488fe2U, + 0xe8bb9b6fU, + 0x1a2fdf51U, + 0xb6fa80d3U, + 0x701c40abU, + 0x380463d8U, + 0xdc161384U, + 0xe617f98eU, + 0x4905cfddU, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0x90000000U, + 0x98000000U, + 0x84000000U, + 0xe6000000U, + 0x13000000U, + 0x78800000U, + 0xafc00000U, + 0x1ee00000U, + 0xccb00000U, + 0xde080000U, + 0x27040000U, + 0x768e0000U, + 0x30c10000U, + 0x9c638000U, + 0x127c4000U, + 0x4d76a000U, + 0x2ff97000U, + 0x613ce800U, + 0x6a432400U, + 0xe6afca00U, + 0x17031700U, + 0x5e880180U, + 0x5cc40140U, + 0xf66e01e0U, + 0xfb710050U, + 0x44eb81f8U, + 0xdb8425cU, + 0xbb98a27aU, + 0x6f4872f3U, + 0x45376999U, + 0x3c4b658dU, + 0x1dbf6903U, + 0xe38f64aeU, + 0xb516b22U, + 0x333e651fU, + 0xb75ae84bU, + 0xe13627daU, + 0xaa4a4b3cU, + 0x6ba57eaU, + 0x8713212bU, + 0xc68030b5U, + 0xd8c7c9ffU, + 0x10771464U, + 0xe86e03f9U, + 0x3c710162U, + 0xa26b8180U, + 0xa5784140U, + 0xa3f8a1e0U, + 0x9b387050U, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0xb0000000U, + 0x28000000U, + 0x8c000000U, + 0x2a000000U, + 0x9b000000U, + 0xe7800000U, + 0xfb400000U, + 0x86200000U, + 0x43f00000U, + 0xae080000U, + 0x4d0c0000U, + 0xde820000U, + 0xbbd30000U, + 0x98f48000U, + 0x2984c000U, + 0xa64e2000U, + 0xc0bb9000U, + 0x5c259800U, + 0x90e2ac00U, + 0xd5953a00U, + 0x442ff00U, + 0x67a80080U, + 0xb9bc01c0U, + 0x7caa0220U, + 0x9e2f00f0U, + 0x27fe8008U, + 0xa81bc05cU, + 0x4c18a336U, + 0x8a1c5181U, + 0x2b173986U, + 0xcf91fee2U, + 0x775c82a0U, + 0xac38c33bU, + 0xd8e42342U, + 0x4994911bU, + 0xb65b19b9U, + 0x58b96c79U, + 0xf82d9a52U, + 0x36eeaec8U, + 0x649738f7U, + 0x78d1ff6cU, + 0x7b7c801eU, + 0xc4c8c0adU, + 0xb96c22f8U, + 0x73d8915fU, + 0xc4f91880U, + 0x3b9a6dc0U, + 0x29511820U, + 0xa9266ff0U, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0x30000000U, + 0xc8000000U, + 0x3c000000U, + 0xda000000U, + 0x53000000U, + 0x2e800000U, + 0x11400000U, + 0x94a00000U, + 0x7e700000U, + 0xac080000U, + 0x2040000U, + 0x771a0000U, + 0x309f0000U, + 0x6c5e8000U, + 0xf3cc000U, + 0xc8a12000U, + 0x5467b000U, + 0xd713f800U, + 0x2092bc00U, + 0x745e5a00U, + 0xcb22cf00U, + 0xe6a00180U, + 0xe17003c0U, + 0x708800a0U, + 0x4c440030U, + 0xdf3a0048U, + 0x30af01bcU, + 0xa07683d2U, + 0x3108c109U, + 0xa99322e8U, + 0x9ccb1bcU, + 0xf4ff78e2U, + 0x63457df1U, + 0xbb3f96cU, + 0xa2e2bfcaU, + 0xe25659edU, + 0xaa26cf3eU, + 0x773a0033U, + 0xfcaf025dU, + 0x527683b6U, + 0x6e08c0afU, + 0x9513227fU, + 0x778cb257U, + 0x94df7bcbU, + 0x5f757c59U, + 0x1d9bf800U, + 0xcfd6bc00U, + 0xade45a00U, + 0xe6cdcf00U, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0x70000000U, + 0x28000000U, + 0x54000000U, + 0xba000000U, + 0x85000000U, + 0x43800000U, + 0x29c00000U, + 0x70e00000U, + 0x81b00000U, + 0x4c080000U, + 0xa60c0000U, + 0xbb1a0000U, + 0x248b0000U, + 0x934f8000U, + 0xf4bdc000U, + 0xe797e000U, + 0x7bc0d000U, + 0x1f94800U, + 0x8352400U, + 0xc8d32a00U, + 0xc17f3700U, + 0xa9600080U, + 0x9d7002c0U, + 0xf7680220U, + 0x2a7c0090U, + 0x15f20248U, + 0xd2370344U, + 0x9ddd83e6U, + 0xdafac2b3U, + 0xfca260cdU, + 0x38612a1U, + 0x49c928f3U, + 0xa0f4349eU, + 0xd9af81dcU, + 0x300dc10aU, + 0x481fe221U, + 0x840cd280U, + 0xe2034973U, + 0xf90e276dU, + 0xad94ab71U, + 0x16cef4dbU, + 0xb66de2aaU, + 0xebfbd142U, + 0x153eca65U, + 0x5744e7e6U, + 0x76bec800U, + 0xce84e400U, + 0x8e5eca00U, + 0x6b34e700U, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0x70000000U, + 0x18000000U, + 0xec000000U, + 0xf2000000U, + 0xa1000000U, + 0x8e800000U, + 0xcbc00000U, + 0xdd200000U, + 0xe7900000U, + 0x2a080000U, + 0xed040000U, + 0xec8e0000U, + 0x2c70000U, + 0xa7a18000U, + 0x325ec000U, + 0xa4272000U, + 0x251e1000U, + 0x83cee800U, + 0xf92fbc00U, + 0x71925200U, + 0xfd0fb900U, + 0xc4880080U, + 0x16c40040U, + 0xc9ae00e0U, + 0x79570070U, + 0x67a98018U, + 0x925ac0ecU, + 0x342920f2U, + 0x4d1910a1U, + 0x77cf688eU, + 0xe7217ccbU, + 0x229d72ddU, + 0xd285a9e7U, + 0x81c0e8aaU, + 0x28bcadU, + 0xf313d20cU, + 0xb4c17972U, + 0xa0a7203fU, + 0x93de109eU, + 0xda6ee8b6U, + 0xe87fbcf4U, + 0xe23a5215U, + 0x715bb9deU, + 0xa3ae00deU, + 0x745700fbU, + 0xfb298080U, + 0x889ac040U, + 0x7f8920e0U, + 0x8d491070U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0x10000000U, + 0x18000000U, + 0xbc000000U, + 0xce000000U, + 0xab000000U, + 0xbe800000U, + 0x98400000U, + 0x17200000U, + 0x17500000U, + 0xe2080000U, + 0xbd0c0000U, + 0x89820000U, + 0xf8c10000U, + 0x3c618000U, + 0x2fbc000U, + 0xa314e000U, + 0xe32eb000U, + 0x9d55e800U, + 0xb028400U, + 0x6e8df200U, + 0xa0493500U, + 0xbb280080U, + 0xc15c00c0U, + 0xf50a0020U, + 0xcd8d0010U, + 0xbac38018U, + 0x516ac0bcU, + 0xb37d60ceU, + 0xf7d970abU, + 0x94308beU, + 0x88ad3498U, + 0xd8999a17U, + 0xbee07117U, + 0x94b91262U, + 0x3f37857dU, + 0x5af5e829U, + 0xff128428U, + 0x1d25f204U, + 0x3e5535aeU, + 0x118200f5U, + 0x84c10034U, + 0xd26180cdU, + 0xb9fbc028U, + 0x594e0dfU, + 0xc76eb093U, + 0x4475e880U, + 0xb75284c0U, + 0x3205f220U, + 0x85053510U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0xf0000000U, + 0xb8000000U, + 0x84000000U, + 0xd6000000U, + 0x83000000U, + 0xdc800000U, + 0x6f400000U, + 0x56200000U, + 0x80b00000U, + 0x5a080000U, + 0xc90c0000U, + 0x9d860000U, + 0xaecf0000U, + 0x5aeb8000U, + 0x37584000U, + 0xb6d56000U, + 0x1a1c3000U, + 0x3dffc800U, + 0x992bf400U, + 0x763be200U, + 0x844acb00U, + 0xe6a80080U, + 0x95fc00c0U, + 0x952e0060U, + 0xfc3300f0U, + 0xa54580b8U, + 0xd72b4084U, + 0x2130e0d6U, + 0xa6c77083U, + 0xc6e728dcU, + 0xf550846fU, + 0xabd2ca56U, + 0x79994f80U, + 0xdc374adaU, + 0xf5420f09U, + 0xff2faa7dU, + 0xed397f9eU, + 0x4cc68202U, + 0x17eafb83U, + 0x7cd9c838U, + 0x9b14f42dU, + 0x9c7862efU, + 0x65ee8b01U, + 0x79d36012U, + 0xec9330acU, + 0xe3b44880U, + 0xb683b4c0U, + 0x7e468260U, + 0xbfaafbf0U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0xb0000000U, + 0x38000000U, + 0xd4000000U, + 0xca000000U, + 0xa7000000U, + 0xd9800000U, + 0xc8c00000U, + 0x9ce00000U, + 0xec500000U, + 0x76080000U, + 0xf10c0000U, + 0x38860000U, + 0x184b0000U, + 0xd8a38000U, + 0x12fd4000U, + 0xddf4a000U, + 0x987e7000U, + 0x16bf9800U, + 0x83558c00U, + 0xe3834e00U, + 0xf7c10500U, + 0x41680080U, + 0x669c00c0U, + 0xa1ee0060U, + 0xdad700b0U, + 0xeb4d8038U, + 0xb2a40d4U, + 0x1d3920caU, + 0x289430a7U, + 0x84e6b8d9U, + 0x2851bcc8U, + 0x540df69cU, + 0xa0cb9ecU, + 0xc70bf6f6U, + 0x6987b931U, + 0xf0c876d8U, + 0x48eaf968U, + 0x2654d600U, + 0xd10889b6U, + 0x28854ecfU, + 0xf04a059bU, + 0x84ab80ddU, + 0x34f14048U, + 0x64f2a034U, + 0x2cf57010U, + 0xa0fc1880U, + 0xef8ccc0U, + 0x5bffee60U, + 0xf17375b0U, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0xb0000000U, + 0x78000000U, + 0xec000000U, + 0x52000000U, + 0x13000000U, + 0x43800000U, + 0xd0c00000U, + 0x9de00000U, + 0x1f900000U, + 0x5b080000U, + 0x97840000U, + 0xceca0000U, + 0x6ceb0000U, + 0x37178000U, + 0x2446c000U, + 0x88a12000U, + 0x5fbb3000U, + 0x6bf73800U, + 0x2b568c00U, + 0xe0e11e00U, + 0x3511d900U, + 0x5f4a0080U, + 0xef2b0040U, + 0x497780a0U, + 0x5b16c0b0U, + 0x36492078U, + 0x3baf30ecU, + 0xac353852U, + 0xc3398c13U, + 0x5abc9e43U, + 0xad7c19d0U, + 0x7d1ca01dU, + 0x8b46f05fU, + 0xf12998fbU, + 0xb87f7c27U, + 0x739506b6U, + 0x49036580U, + 0x2489a6e5U, + 0x3d459577U, + 0xc4203eebU, + 0x46fae97fU, + 0x69d538aeU, + 0xc0a98c28U, + 0x8bb49e31U, + 0x75f819edU, + 0xda56a078U, + 0xc86df0ecU, + 0x4a5e1852U, + 0x4069bc13U, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0xb0000000U, + 0xa8000000U, + 0xc4000000U, + 0x2e000000U, + 0xdb000000U, + 0x3f800000U, + 0xf0400000U, + 0x85200000U, + 0x18100000U, + 0xdd080000U, + 0x60840000U, + 0x1ce0000U, + 0x1e6b0000U, + 0xaba8000U, + 0xf1544000U, + 0x16aee000U, + 0xa257b000U, + 0xfd2ef800U, + 0x841a8400U, + 0x7f089200U, + 0xe1802100U, + 0x63460080U, + 0xceaf0040U, + 0x6e5480e0U, + 0x472f40b0U, + 0x691c60a8U, + 0xf787f0c4U, + 0xc44e182eU, + 0xe32634dbU, + 0xb71cea3fU, + 0x648ee5f0U, + 0x8fc07205U, + 0x95689158U, + 0x2d3478bdU, + 0x6d1ec490U, + 0x798e7249U, + 0x4f43916aU, + 0xc4aef80cU, + 0x2b5a84aeU, + 0xba892e7U, + 0x62d02139U, + 0xacee006fU, + 0x827b00e8U, + 0x19b280e9U, + 0xfad040f2U, + 0x80e0e028U, + 0x887cb084U, + 0x5cb478ceU, + 0xb65ec46bU, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0xf0000000U, + 0x38000000U, + 0xbc000000U, + 0xea000000U, + 0xd9000000U, + 0x16800000U, + 0xb6c00000U, + 0xcce00000U, + 0x2dd00000U, + 0x3f080000U, + 0x7d8c0000U, + 0x954a0000U, + 0x4eaf0000U, + 0xaf38000U, + 0x9eb3c000U, + 0xea9aa000U, + 0xd4a39000U, + 0x2bf86800U, + 0x9435ec00U, + 0x465f8e00U, + 0xf94a3d00U, + 0xaca20080U, + 0xf7f300c0U, + 0x2e3180a0U, + 0x5750c0f0U, + 0x6bc32038U, + 0x4c6f50bcU, + 0x81948eaU, + 0xcc69bcd9U, + 0xc8174616U, + 0x6c6341b6U, + 0x381e664cU, + 0x546311edU, + 0x8414ae1fU, + 0xbe696d4dU, + 0x5d11488dU, + 0xa8e5bcc2U, + 0xebdd4678U, + 0x640c410bU, + 0xc60de6aeU, + 0x5b00d1c7U, + 0xbb860e3bU, + 0xce46fde6U, + 0xf52320bbU, + 0xc4bf5093U, + 0x6b9148b8U, + 0x2e25bc7cU, + 0xbf3d464aU, + 0x5dc4129U, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0xb0000000U, + 0xd8000000U, + 0xe4000000U, + 0xb6000000U, + 0x57000000U, + 0x28800000U, + 0x8c00000U, + 0x9ea00000U, + 0x3ef00000U, + 0x8880000U, + 0x18c40000U, + 0x16ae0000U, + 0xb2fb0000U, + 0x82858000U, + 0x1dca4000U, + 0xdf256000U, + 0xc5be7000U, + 0x3c670800U, + 0xb55acc00U, + 0x77f48a00U, + 0xeb019f00U, + 0x3a858080U, + 0x9ca4040U, + 0x512560e0U, + 0xc6be70b0U, + 0x7ae708d8U, + 0xe9acce4U, + 0x77d48ab6U, + 0x8a319f57U, + 0x842d80a8U, + 0x273e4048U, + 0xd1a3607eU, + 0x5271708eU, + 0xe64488d0U, + 0xb96f8cfcU, + 0x3cda6aa0U, + 0xe0beafe5U, + 0xe5ea682aU, + 0x4a10bc55U, + 0x451582a1U, + 0xc994534bU, + 0x97528a6cU, + 0xeefe9f09U, + 0x208e00b7U, + 0xc4cb00feU, + 0xf4ad80a8U, + 0x8bfe4048U, + 0x1903607eU, + 0x8b81708eU, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0xb0000000U, + 0x78000000U, + 0x94000000U, + 0x6a000000U, + 0xdb000000U, + 0x60800000U, + 0xea400000U, + 0xed600000U, + 0xe9500000U, + 0x8880000U, + 0x96440000U, + 0xbb660000U, + 0x45b0000U, + 0x350f8000U, + 0x398d4000U, + 0x6dc0a000U, + 0x51a6b000U, + 0xb3718800U, + 0x493fe400U, + 0x4c547600U, + 0x99092500U, + 0xa78f8080U, + 0x6ccd4040U, + 0x9220a060U, + 0xadb6b0b0U, + 0x24198878U, + 0x936be494U, + 0x185a766aU, + 0xd30625dbU, + 0xac8e00e0U, + 0xc44f00aaU, + 0x9461808dU, + 0xbed24059U, + 0x7c492070U, + 0x2060f002U, + 0x4d6a8d1U, + 0x6f4014dfU, + 0xaceb5e55U, + 0x109f71d3U, + 0x332bfe00U, + 0xfe39c1f8U, + 0x92da765bU, + 0xa246252fU, + 0x416e006fU, + 0x775f00f9U, + 0x98980e0U, + 0x55c640aaU, + 0xa5a7208dU, + 0x697ff059U, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0x30000000U, + 0x68000000U, + 0x2c000000U, + 0x36000000U, + 0x13000000U, + 0x63800000U, + 0x62400000U, + 0x78a00000U, + 0x89300000U, + 0xf880000U, + 0x344c0000U, + 0xfbaa0000U, + 0xb2b30000U, + 0x29ce8000U, + 0x56eec000U, + 0x57996000U, + 0xcdba3000U, + 0x1c44b800U, + 0xb7a2e400U, + 0x14bdea00U, + 0x62c42300U, + 0x716e8080U, + 0x2fdec0c0U, + 0x901160a0U, + 0xe5f63030U, + 0xb9eeb868U, + 0x3a11e42cU, + 0x68f36a36U, + 0x456ae313U, + 0x3dd7e0e3U, + 0x914f0a2U, + 0xfb7dd8d8U, + 0xef28d4b9U, + 0x59715267U, + 0xde2ac718U, + 0xcbf96a4dU, + 0x8ee9e361U, + 0xd391606aU, + 0x77b630c4U, + 0x94eb8e7U, + 0xaf21e458U, + 0x397b6a4dU, + 0x4e26e3bcU, + 0x93fde03aU, + 0xcae7f061U, + 0xc99358e3U, + 0x52b614a2U, + 0x79c032d8U, + 0xaeecf7b9U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0x30000000U, + 0x28000000U, + 0x4000000U, + 0x4a000000U, + 0xad000000U, + 0xce800000U, + 0xffc00000U, + 0x45200000U, + 0x19900000U, + 0x92880000U, + 0x79cc0000U, + 0xb6220000U, + 0x28130000U, + 0x22ca8000U, + 0x43ac4000U, + 0xf256a000U, + 0x85a1d000U, + 0xe1526800U, + 0xa425bc00U, + 0x491ff200U, + 0xb243c900U, + 0x436a8080U, + 0xf8fc40c0U, + 0xe37ea020U, + 0x2e3dd030U, + 0xe2d86828U, + 0x456abc04U, + 0xcbff724aU, + 0xf2f089adU, + 0xae74a04eU, + 0xf0b2d03fU, + 0x518e865U, + 0x2c49fc29U, + 0x9c6952baU, + 0x8772197dU, + 0xb430e87cU, + 0x77d5fc45U, + 0x97e352ccU, + 0x523d198cU, + 0x54d0681fU, + 0x9e66bc58U, + 0xfe7d7219U, + 0x8b38940U, + 0x39162099U, + 0x7a4290a1U, + 0x5764484eU, + 0xaaf72c3fU, + 0x6273ba65U, + 0xaeb8e529U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0x70000000U, + 0x78000000U, + 0x74000000U, + 0xf6000000U, + 0x5f000000U, + 0x7f800000U, + 0x5d400000U, + 0xe0e00000U, + 0xf0100000U, + 0x99880000U, + 0xea4c0000U, + 0xc3620000U, + 0x27570000U, + 0xdc6f8000U, + 0xb8db4000U, + 0xd1256000U, + 0x503ef000U, + 0x2d3a7800U, + 0x4bb19400U, + 0x6e70ee00U, + 0xa85cb100U, + 0x6be78080U, + 0xc99740c0U, + 0xc3c76020U, + 0x7129f070U, + 0xe035f878U, + 0x753ad474U, + 0x4fbd8ef6U, + 0xe07e415fU, + 0x8357f8ffU, + 0xe26dd49dU, + 0xcbd20ec0U, + 0x5ca50180U, + 0xdc729861U, + 0x9953245eU, + 0x6f687615U, + 0x15549508U, + 0x2d62765bU, + 0x9c5f9551U, + 0x7de7f667U, + 0xc69fd54fU, + 0xb44f1613U, + 0x206d6538U, + 0x82df8e63U, + 0x2c2941e4U, + 0xf6b8787fU, + 0x28f6945dU, + 0xfd976ee0U, + 0xd5cbf1f0U, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0xd0000000U, + 0xa8000000U, + 0xe4000000U, + 0x66000000U, + 0x11000000U, + 0xff800000U, + 0x30c00000U, + 0x90a00000U, + 0x72700000U, + 0xd1880000U, + 0x75cc0000U, + 0xd12a0000U, + 0xcfbd0000U, + 0x94a28000U, + 0xa4724000U, + 0x18846000U, + 0x16401000U, + 0xcbef7800U, + 0xcc104c00U, + 0x6e5dea00U, + 0xabbc7700U, + 0x32aa8080U, + 0x157e40c0U, + 0x370e60a0U, + 0x8e8d10d0U, + 0xbf45f8a8U, + 0xd86e0ce4U, + 0xaed38a66U, + 0x21f16711U, + 0xd34f787fU, + 0x4a604cf0U, + 0xd1d5ea30U, + 0xfb7077a2U, + 0xd20080f9U, + 0x1f034051U, + 0xaa8ce017U, + 0x794f500eU, + 0x196998c3U, + 0xf9521c70U, + 0xf53ef2eeU, + 0x25e02b75U, + 0x29121265U, + 0xffdf7b49U, + 0xbe738a0fU, + 0x93816706U, + 0xa2c778ffU, + 0xefac4c30U, + 0xa8ffea90U, + 0xd0cd7772U, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0xf0000000U, + 0xe8000000U, + 0x4c000000U, + 0xe000000U, + 0x49000000U, + 0x93800000U, + 0x81c00000U, + 0x49600000U, + 0xdc300000U, + 0x51880000U, + 0x86c40000U, + 0xb3e20000U, + 0x3e7f0000U, + 0x71268000U, + 0x5f90c000U, + 0x305ae000U, + 0xa0379000U, + 0xd789b800U, + 0x53c5dc00U, + 0x3667f600U, + 0x52bc1300U, + 0xe9ce8080U, + 0x4564c040U, + 0xf230e020U, + 0xe88c90f0U, + 0xfd4d38e8U, + 0x7e2a1c4cU, + 0x791b960eU, + 0xe41b4349U, + 0x9d9dd813U, + 0x37568cc1U, + 0x5abeae69U, + 0x35c55f2cU, + 0x736c4e39U, + 0xef36cf8aU, + 0xd107f61dU, + 0x778c13c7U, + 0xe3c680aaU, + 0xfe60c022U, + 0xeeb2e0bfU, + 0xfc39089U, + 0x4063b8f3U, + 0x6fbedc51U, + 0x20437651U, + 0x27a3d378U, + 0x23dae093U, + 0x61f79081U, + 0xbee9b849U, + 0x7ff5dcdcU, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0xd0000000U, + 0x68000000U, + 0x8c000000U, + 0xe6000000U, + 0xbf000000U, + 0x3d800000U, + 0x85c00000U, + 0x59a00000U, + 0x67d00000U, + 0x47880000U, + 0x54c40000U, + 0x272a0000U, + 0x819d0000U, + 0xc0ee8000U, + 0x3d3cc000U, + 0xdbbc6000U, + 0x49faf000U, + 0x6c935800U, + 0x6b9c00U, + 0xf07e7a00U, + 0xb35ccd00U, + 0x18c68080U, + 0x2128c040U, + 0x4e9e60a0U, + 0x4563f0d0U, + 0x5cf7d868U, + 0xe81a5c8cU, + 0x77249ae6U, + 0xa99efdbfU, + 0xece3b8bdU, + 0xb34acc5U, + 0xcb5c2f9U, + 0xf87c61b7U, + 0xf5142afU, + 0xe6cda198U, + 0xaa2ba2e1U, + 0x711f91aeU, + 0x15a69ab5U, + 0x61d7fda4U, + 0x888f382cU, + 0xd1416c8dU, + 0x46e52238U, + 0xb2335132U, + 0xfe32fabdU, + 0xf8390da3U, + 0x373e603dU, + 0xb2b3f085U, + 0xd37fd859U, + 0xe0de5c67U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0x50000000U, + 0xb8000000U, + 0x54000000U, + 0x5e000000U, + 0xfb000000U, + 0xbd800000U, + 0xe6400000U, + 0x8be00000U, + 0x12900000U, + 0xa6880000U, + 0xcbcc0000U, + 0xb5a60000U, + 0x9d750000U, + 0x52138000U, + 0xc2414000U, + 0x9defe000U, + 0x359cb000U, + 0xf90d5800U, + 0x648ca400U, + 0x72ce1e00U, + 0x712e7900U, + 0xdfb58080U, + 0xcb3440c0U, + 0xf1fc6060U, + 0x5cddf050U, + 0x6162b8b8U, + 0xe3501454U, + 0x5e23465eU, + 0xfc32ddfbU, + 0xb6739e3dU, + 0x97963926U, + 0x100fe06bU, + 0x180cb082U, + 0x6405587eU, + 0xb600a4cfU, + 0x17081e53U, + 0xb78b7932U, + 0x434e0031U, + 0xcd69001fU, + 0x495d80cbU, + 0xcb284091U, + 0x52b2606cU, + 0x1b4f0e9U, + 0xf03f383fU, + 0x2c7854dcU, + 0xea912685U, + 0x52862d72U, + 0xa5cca635U, + 0xa6ae6d79U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0x90000000U, + 0xe8000000U, + 0xd4000000U, + 0xf2000000U, + 0xc9000000U, + 0x43800000U, + 0x30400000U, + 0x41600000U, + 0xb7f00000U, + 0xf6880000U, + 0xf5cc0000U, + 0xba260000U, + 0x4190000U, + 0xeb68000U, + 0x54694000U, + 0x82752000U, + 0x75cb9000U, + 0x7a2fb800U, + 0x6416c400U, + 0x9eb77600U, + 0xbc624f00U, + 0x56708080U, + 0x87c040c0U, + 0xb32ba060U, + 0x279ed090U, + 0xaef498e8U, + 0xfd0854d4U, + 0xe1884ef2U, + 0x7144cbc9U, + 0x46e456c3U, + 0x9db0dff0U, + 0xaae9b8a1U, + 0xf3bfc4e7U, + 0xb5e9f67eU, + 0xf3370fb1U, + 0x332ba020U, + 0xe79ed0d9U, + 0xcef498dfU, + 0x6d08543dU, + 0x9884e68U, + 0xa544cb26U, + 0xb4e456bfU, + 0x54b0df2fU, + 0xe969b871U, + 0xc3ffc42dU, + 0xf489f62bU, + 0x44c70f24U, + 0xc5a3a053U, + 0x1252d02eU, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0x70000000U, + 0xe8000000U, + 0xb4000000U, + 0xfa000000U, + 0x9000000U, + 0x31800000U, + 0xd8c00000U, + 0x35200000U, + 0x25900000U, + 0xda880000U, + 0xfc440000U, + 0xb2620000U, + 0x4b770000U, + 0x1ab68000U, + 0x5e174000U, + 0x8341a000U, + 0x1ce19000U, + 0x2d389800U, + 0xf1d74c00U, + 0xbce53200U, + 0x1d302900U, + 0x39dc8080U, + 0x78e44040U, + 0xf352020U, + 0x84d1d070U, + 0xb367b8e8U, + 0xdef59cb4U, + 0x80760afaU, + 0x4e35f509U, + 0x3155aab1U, + 0x59a36598U, + 0x26dbb295U, + 0x86636915U, + 0xf17f2092U, + 0x33b2d078U, + 0x1f9b3880U, + 0xb381dc86U, + 0x9dcb2a39U, + 0xf2a0253bU, + 0x225012fdU, + 0x7121f9a8U, + 0x779b3853U, + 0x4781dcc0U, + 0x47cb2a29U, + 0x8ba0254bU, + 0xfbd012d9U, + 0x1de1f96cU, + 0xb8bb384fU, + 0x6b11dc6cU, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0x90000000U, + 0x68000000U, + 0x3c000000U, + 0x86000000U, + 0xb5000000U, + 0x36800000U, + 0x49400000U, + 0xa3200000U, + 0xc0700000U, + 0x9d880000U, + 0xeecc0000U, + 0xbee20000U, + 0xdd190000U, + 0xaf5e8000U, + 0xc3f7c000U, + 0x224e6000U, + 0x24ac5000U, + 0x4dbee800U, + 0xe8e0d400U, + 0xe01b1200U, + 0x15d6f700U, + 0xf4b48080U, + 0x6062c0c0U, + 0x6852e020U, + 0xaa729090U, + 0x26860868U, + 0xe147443cU, + 0xbf219a86U, + 0xd67f73b5U, + 0x4085fab6U, + 0xe4462389U, + 0x71a79203U, + 0xcb383790U, + 0x59a46055U, + 0x17395082U, + 0x6fa26870U, + 0x5a3e14c4U, + 0xd23f277U, + 0xa9716703U, + 0x9d0e08b1U, + 0xea8b44d8U, + 0x7f439a65U, + 0xee26731fU, + 0xa2fb7a88U, + 0x6ec1e31aU, + 0x7ee1f25eU, + 0xfd186775U, + 0x3f5888a5U, + 0xabf084b5U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0x90000000U, + 0x28000000U, + 0x8c000000U, + 0x1e000000U, + 0xd1000000U, + 0x98800000U, + 0x15c00000U, + 0x5fe00000U, + 0xaeb00000U, + 0x65c80000U, + 0x27ec0000U, + 0x6ab60000U, + 0x67c10000U, + 0xc0ee8000U, + 0xaf3ec000U, + 0xf480e000U, + 0x5bc39000U, + 0xc6e74800U, + 0x2a39bc00U, + 0x46026e00U, + 0x2507a300U, + 0x4280e080U, + 0xc6c390c0U, + 0x20674860U, + 0x7ef9bc90U, + 0xa9626e28U, + 0x1277a38cU, + 0x66a8e09eU, + 0x9e9f9011U, + 0xb79948f8U, + 0x2b14bc85U, + 0x5cdaee77U, + 0x74386322U, + 0x370e80fbU, + 0x4d8ec036U, + 0xef48e092U, + 0x3d2f90e2U, + 0x1cd148b7U, + 0xd438bc8dU, + 0xc70cee8fU, + 0xf58963adU, + 0x4b4800b4U, + 0xaf2c0098U, + 0xd3d600b9U, + 0x9db100b4U, + 0x4a4680fbU, + 0xbfa2c036U, + 0xba1ee092U, + 0x645e90e2U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0xb0000000U, + 0xd8000000U, + 0xe4000000U, + 0xe2000000U, + 0x7b000000U, + 0x59800000U, + 0xa0c00000U, + 0x12a00000U, + 0x20b00000U, + 0xbcc80000U, + 0x4ac0000U, + 0xb1b60000U, + 0x12430000U, + 0x23e18000U, + 0x7ed84000U, + 0xe0dd2000U, + 0x3dde3000U, + 0x2d59d800U, + 0xc71d2c00U, + 0x10f21a00U, + 0x842d5300U, + 0x93fd2080U, + 0x29ae30c0U, + 0xd931d860U, + 0xcc012cb0U, + 0x7e0c1ad8U, + 0xad0253e4U, + 0xa88aa062U, + 0xbe4570bbU, + 0xede57839U, + 0xbdb5c10U, + 0xac56e2caU, + 0x619e4fc4U, + 0xbbbee2deU, + 0x95424fbfU, + 0x1c60e208U, + 0xf71d4fc2U, + 0x8ff6209U, + 0x2a0fcaU, + 0xc1f5c286U, + 0x8aaf7fd6U, + 0x64b0ba1fU, + 0x8ec4239aU, + 0x17ae58a2U, + 0xd4366c95U, + 0xb486badeU, + 0xa84723bfU, + 0x7cefd808U, + 0xa55e2cc2U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0xf0000000U, + 0x58000000U, + 0x44000000U, + 0x86000000U, + 0xdf000000U, + 0x1f800000U, + 0xa4400000U, + 0x29e00000U, + 0xced00000U, + 0xa8480000U, + 0x3e40000U, + 0xebd60000U, + 0x5ac70000U, + 0xb9218000U, + 0xe2f24000U, + 0x803f6000U, + 0x8d147000U, + 0xb1efb800U, + 0xaadf2400U, + 0xbe4bee00U, + 0x74e7d500U, + 0xe85f6080U, + 0x3c847040U, + 0xc9c7b860U, + 0xecab24f0U, + 0x93b5ee58U, + 0x354d544U, + 0xbd00e006U, + 0x9685309fU, + 0xacc7587fU, + 0x7e2e1454U, + 0xd972b671U, + 0x527ac18aU, + 0x23f256aeU, + 0x24bff19cU, + 0x20d50e14U, + 0x4b41e54eU, + 0x4e6fb828U, + 0xbe9f24d8U, + 0xafabee96U, + 0xe37d5e5U, + 0x9e17601bU, + 0xa460708fU, + 0xbb91b8d7U, + 0xcd2c24d3U, + 0x1cf46eaeU, + 0x8b36959cU, + 0xbc978014U, + 0xd6a5404eU, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0x90000000U, + 0xc8000000U, + 0x74000000U, + 0xda000000U, + 0x9f000000U, + 0x13800000U, + 0x80400000U, + 0x47600000U, + 0x6e100000U, + 0xce480000U, + 0xf2640000U, + 0x9a920000U, + 0x71810000U, + 0x53488000U, + 0x82e54000U, + 0x8754a000U, + 0x63ad7000U, + 0x3eb27800U, + 0xc57fa400U, + 0xa6588600U, + 0xbd255900U, + 0x667ca080U, + 0x5bd97040U, + 0x58687820U, + 0x3d9aa490U, + 0x6e0206c8U, + 0x25011974U, + 0x3c80805aU, + 0xcbc140dfU, + 0x7b26a033U, + 0x877c7010U, + 0xe552f88fU, + 0xb0aee41aU, + 0xfb362614U, + 0x2c3d296dU, + 0xbbc5809U, + 0x71f694b1U, + 0x3996de34U, + 0x8c02cd7cU, + 0xb60afe01U, + 0xd90afda5U, + 0xb28c26deU, + 0x1ec829fbU, + 0x3faed88eU, + 0x60b6d41bU, + 0xf878fe94U, + 0x6dbfd2dU, + 0x48eca629U, + 0x90596921U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x10000000U, + 0x28000000U, + 0xfc000000U, + 0x96000000U, + 0x13000000U, + 0xe3800000U, + 0x96400000U, + 0xf600000U, + 0x2b300000U, + 0x14480000U, + 0x56640000U, + 0x3db60000U, + 0x4a890000U, + 0xf8c68000U, + 0xe5a9c000U, + 0xff986000U, + 0x615bb000U, + 0xeffdf800U, + 0x47ea0400U, + 0xcaf2c600U, + 0x87610b00U, + 0xe7306080U, + 0xda4fb040U, + 0x8163f860U, + 0x9c370410U, + 0xa5ca4628U, + 0x9125cbfcU, + 0xa8588016U, + 0x9174c053U, + 0x8520e083U, + 0xe25f7086U, + 0x64751827U, + 0x4da174d7U, + 0x4399de82U, + 0x975d7f45U, + 0xecf13e5eU, + 0x8c660f9cU, + 0xa0b22617U, + 0x1e0e7b9eU, + 0xdf0d7823U, + 0x2d8ac49bU, + 0x414c260cU, + 0xaee37bf2U, + 0xc47df8efU, + 0x7daa045bU, + 0x1b92c602U, + 0x53510b05U, + 0xaef8603eU, + 0xf56bb08cU, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0x30000000U, + 0xa8000000U, + 0x14000000U, + 0x5a000000U, + 0xa9000000U, + 0xbc800000U, + 0x80400000U, + 0xf3e00000U, + 0xa0500000U, + 0xb6480000U, + 0xece40000U, + 0x43d20000U, + 0xf58b0000U, + 0x6cce8000U, + 0xcba34000U, + 0xdfb6a000U, + 0xf0181000U, + 0xbda68800U, + 0xe0bba400U, + 0x239cae00U, + 0x56644d00U, + 0x749ea080U, + 0xf1ec1040U, + 0xd55c8820U, + 0x54c4a430U, + 0x7a82ea8U, + 0x19b80d14U, + 0x271c80daU, + 0x5a2840e9U, + 0x6178209cU, + 0xb6bb50b0U, + 0x2c90285bU, + 0x2de3b4b4U, + 0x8b5a26ecU, + 0x3fcfe945U, + 0xae2a0e7fU, + 0x6b7c5d35U, + 0xa7b8283fU, + 0x1c17b41bU, + 0x4ba026e1U, + 0x9fb0e938U, + 0xd01e8e8cU, + 0x8da01de8U, + 0x48ba0809U, + 0x3793e4c4U, + 0xc648e6cU, + 0xdd9f1d05U, + 0x4d6e885fU, + 0x551fa405U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0xb0000000U, + 0x18000000U, + 0x84000000U, + 0xee000000U, + 0x45000000U, + 0x7e800000U, + 0xe2c00000U, + 0x64a00000U, + 0x5a900000U, + 0xbc80000U, + 0x28240000U, + 0xf7560000U, + 0xae30000U, + 0xb3f58000U, + 0x80764000U, + 0x1039e000U, + 0x345fd000U, + 0x8d6ea800U, + 0x95b84c00U, + 0x51eda00U, + 0x89826100U, + 0x934fe080U, + 0x83ecd040U, + 0x4f732860U, + 0x35ba0cb0U, + 0x95193a18U, + 0x418ab184U, + 0xbf4ac86eU, + 0xf1e5dc05U, + 0x6077921eU, + 0xe032fd52U, + 0x4c5412fcU, + 0xb967bd9eU, + 0x63b87205U, + 0xc41e2d9dU, + 0x19073a71U, + 0x348db19cU, + 0x99c948c1U, + 0xf7209cebU, + 0x5ad3f2f3U, + 0xe7af6d8fU, + 0xbd1d5a16U, + 0x9d8721a6U, + 0xb54b80a9U, + 0xeae1402cU, + 0x43f2601dU, + 0xf87e9019U, + 0x243cc81fU, + 0xc256dc99U, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0xd0000000U, + 0xf8000000U, + 0x3c000000U, + 0x22000000U, + 0x7000000U, + 0xf9800000U, + 0xf400000U, + 0x55e00000U, + 0x74b00000U, + 0xaa480000U, + 0xeb640000U, + 0x227a0000U, + 0x20e50000U, + 0x323b8000U, + 0xc081c000U, + 0x43cb2000U, + 0xfc25f000U, + 0x3b915800U, + 0x5e555400U, + 0x5b7aee00U, + 0xcc6cf300U, + 0x4bf92080U, + 0x77a4f040U, + 0x8bd0d8a0U, + 0x6e3194d0U, + 0xd28a4ef8U, + 0xccc8c33cU, + 0x11a358a2U, + 0xd2d45447U, + 0x12bb6e59U, + 0xf34833dfU, + 0x97e9802dU, + 0x3b0c008U, + 0x7bc2a028U, + 0x2025303cU, + 0x699bf823U, + 0x71546413U, + 0x66fb1645U, + 0xdd2d97b3U, + 0x3b11b690U, + 0xfd9ca758U, + 0xd7584e6cU, + 0xdff9c39aU, + 0xd1aad81bU, + 0x32d4944bU, + 0x62b1ce50U, + 0xdb490340U, + 0x53e87821U, + 0x1db1a484U, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0xb0000000U, + 0x88000000U, + 0x84000000U, + 0x92000000U, + 0x4d000000U, + 0x95800000U, + 0x3cc00000U, + 0x50200000U, + 0x92900000U, + 0x13c80000U, + 0x20ac0000U, + 0xefde0000U, + 0xd5230000U, + 0xa3148000U, + 0xed0e4000U, + 0x58e2000U, + 0xe4c25000U, + 0xec2a1800U, + 0xc926c00U, + 0x48c19200U, + 0x6a255100U, + 0xb982080U, + 0x2c4d50c0U, + 0x5d6098e0U, + 0x3c7f2cb0U, + 0xa47b3288U, + 0x38794184U, + 0xf6741812U, + 0x95716c8dU, + 0xd3f51275U, + 0x21bb118cU, + 0x7de0058U, + 0x212300d6U, + 0x59148061U, + 0x940e40ddU, + 0x8a0e20f2U, + 0x1102506dU, + 0xbb8a1861U, + 0xefc26c32U, + 0x9ea99283U, + 0xe4d951f8U, + 0xa7ae20d3U, + 0x4b52508bU, + 0x2621818U, + 0x24fe6c17U, + 0xed3f9269U, + 0xe4965199U, + 0xbcc4a000U, + 0x902f1050U, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0xb0000000U, + 0x48000000U, + 0x8c000000U, + 0x3e000000U, + 0xeb000000U, + 0xb3800000U, + 0xa1c00000U, + 0x2f600000U, + 0x48900000U, + 0x82480000U, + 0xd6a40000U, + 0xf3fe0000U, + 0x80d30000U, + 0x45e88000U, + 0xcfd2c000U, + 0xb46ee000U, + 0x13153000U, + 0xff817800U, + 0x3fce3c00U, + 0x94652600U, + 0x312c100U, + 0xe7866080U, + 0x4bc7f040U, + 0x6e6f98e0U, + 0x5a1b0cb0U, + 0x81045e48U, + 0xb28cfd8cU, + 0x534b46beU, + 0x9c2131abU, + 0x64bff8d3U, + 0xaefbfc51U, + 0xf4554687U, + 0x39a23174U, + 0x527f7874U, + 0xa41d3cf1U, + 0xca0da69eU, + 0x5100017aU, + 0xa888011U, + 0x7742c0eaU, + 0x9e26e0c7U, + 0xf9b130d6U, + 0x7a7f7875U, + 0xd81d3c44U, + 0x5c0da633U, + 0x860001efU, + 0xcf0880a7U, + 0xb182c0a0U, + 0x3cc6e019U, + 0xfbe1300eU, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0xf0000000U, + 0xf8000000U, + 0x64000000U, + 0xa000000U, + 0x43000000U, + 0x10800000U, + 0xb400000U, + 0x36a00000U, + 0xfe300000U, + 0xf3c80000U, + 0x91ec0000U, + 0x3e960000U, + 0xd0f70000U, + 0xc3ab8000U, + 0x93bc4000U, + 0xc901a000U, + 0x9388b000U, + 0x7bcec800U, + 0xcde95400U, + 0x30987a00U, + 0x69f49b00U, + 0x682a2080U, + 0xec74f0c0U, + 0xfeef6860U, + 0x1811e4f0U, + 0x66beb2f8U, + 0xa481cf64U, + 0xa94c5a8aU, + 0x79ab6b83U, + 0x88b0c8f0U, + 0x2d82543bU, + 0x9acdfaaeU, + 0x9263db6aU, + 0x4d5e0081U, + 0x811b0076U, + 0x9d3d8044U, + 0xb34b4068U, + 0xf2aa201dU, + 0x6434f002U, + 0xb8cf6806U, + 0x1d61e4bfU, + 0x5bd6b2a6U, + 0xaf5dcf87U, + 0x6e125a7bU, + 0x7bb06b14U, + 0x650d4871U, + 0x6589144dU, + 0xa6c7daeaU, + 0x6c672b02U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0xb0000000U, + 0x38000000U, + 0x44000000U, + 0x4a000000U, + 0x57000000U, + 0xa6800000U, + 0x3f400000U, + 0xbda00000U, + 0xb6900000U, + 0x5dc80000U, + 0x88e40000U, + 0x3c360000U, + 0xfdd30000U, + 0xd26f8000U, + 0x4d764000U, + 0x3d71a000U, + 0x2571f000U, + 0xb177a800U, + 0x73721400U, + 0x58788a00U, + 0xf0f2b100U, + 0xd2be2080U, + 0x9e97b040U, + 0xb1ce0860U, + 0x6ee7e4b0U, + 0xed392238U, + 0x3a53a544U, + 0x12a92acaU, + 0x74134117U, + 0xf8818846U, + 0xea41a4cfU, + 0x502082e5U, + 0x91565542U, + 0xfa2082afU, + 0x365655dbU, + 0x4a08230U, + 0xfd165565U, + 0xcb008211U, + 0x58865570U, + 0x7a48824fU, + 0xb82255f8U, + 0x5d5e82e4U, + 0xcc2155daU, + 0x6f59023fU, + 0xbf23152aU, + 0x33d6a2e9U, + 0xef65e514U, + 0x6cf88ad5U, + 0x2cb2b127U, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0xf0000000U, + 0x38000000U, + 0x3c000000U, + 0xd6000000U, + 0xbd000000U, + 0x4c800000U, + 0xc0400000U, + 0xbe200000U, + 0xd6300000U, + 0xf8c80000U, + 0xec640000U, + 0xdf1e0000U, + 0xf9770000U, + 0x1d6f8000U, + 0x3d99c000U, + 0x58346000U, + 0xc9cb5000U, + 0xaeee8800U, + 0x6e53a400U, + 0xe5d9d200U, + 0x8a1e3b00U, + 0xe1fbe080U, + 0x1f229040U, + 0x1cb2e8e0U, + 0xad8cf4f0U, + 0xeac15a38U, + 0x1b6e9f3cU, + 0xe89bb256U, + 0xb66bfdU, + 0x2b8ce82cU, + 0x7fcbf470U, + 0xa3e6da66U, + 0xfad35f1aU, + 0xe991d296U, + 0xda3a3b2dU, + 0xb6c5e025U, + 0x7d659034U, + 0x8d956837U, + 0x803134e7U, + 0x5cb3af0U, + 0x40e2cf72U, + 0xef52ba93U, + 0x7f580f46U, + 0xf75f5ab5U, + 0x13599fe8U, + 0x95432baU, + 0x5a5fab5dU, + 0x97d08843U, + 0xcd14a42eU, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0xd0000000U, + 0x28000000U, + 0xf4000000U, + 0xe2000000U, + 0x25000000U, + 0x92800000U, + 0x62400000U, + 0xe200000U, + 0x2b00000U, + 0x1cc80000U, + 0xe26c0000U, + 0x679a0000U, + 0x47f50000U, + 0x15668000U, + 0x48194000U, + 0x1b312000U, + 0x9709d000U, + 0x5f82e800U, + 0xa4c04400U, + 0x5e631200U, + 0x1969300U, + 0x78f7a080U, + 0x7ee090c0U, + 0xaedbc8a0U, + 0xb05594d0U, + 0x2c13fa28U, + 0xb13fd7f4U, + 0x36003262U, + 0xd70643e5U, + 0x3f89c8b2U, + 0xd4cc9472U, + 0xa66f7a86U, + 0xdd939726U, + 0x6ef79256U, + 0xb9e6d3f3U, + 0x19520037U, + 0x40990010U, + 0x407c8001U, + 0xbdac400cU, + 0x2877a0c3U, + 0x29a090a6U, + 0xba7bc854U, + 0xf4a59446U, + 0xf4fbfab0U, + 0x80e3d76eU, + 0x3dd232e4U, + 0x35df4381U, + 0xd1d548b1U, + 0xbbd0d436U, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0xf0000000U, + 0xe8000000U, + 0xac000000U, + 0xd6000000U, + 0x1f000000U, + 0x53800000U, + 0x24c00000U, + 0x25a00000U, + 0x3fd00000U, + 0xf1480000U, + 0x46640000U, + 0x2df20000U, + 0x60570000U, + 0xb3828000U, + 0xb4ccc000U, + 0x1da06000U, + 0x8bd07000U, + 0x63497800U, + 0x2361ec00U, + 0xb77cca00U, + 0x8103500U, + 0xe16ae080U, + 0x8a78b040U, + 0xf69b1820U, + 0x3269cf0U, + 0xf99732e8U, + 0x28ad19acU, + 0x495e4a56U, + 0x6f0cf55fU, + 0xfb8280f3U, + 0xa8ccc094U, + 0x3a060edU, + 0xc8d07063U, + 0xec978cfU, + 0xb4a1ecf5U, + 0x175ccaa8U, + 0xc00355bU, + 0x6602e045U, + 0xd70cb0efU, + 0xf8118e9U, + 0x1ac59c02U, + 0x96afb257U, + 0xba52d9a9U, + 0xca8eaa7fU, + 0x30474583U, + 0x36e918bcU, + 0xb4b19c21U, + 0xca35b265U, + 0x6871d9c8U, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0xd0000000U, + 0x18000000U, + 0x4000000U, + 0x46000000U, + 0x5d000000U, + 0x61800000U, + 0x2d400000U, + 0xfd600000U, + 0x5d300000U, + 0x96c80000U, + 0x8f240000U, + 0xfad20000U, + 0xa350000U, + 0xb04d8000U, + 0xfce64000U, + 0x807b6000U, + 0xa3a15000U, + 0xce13d800U, + 0x2e1cf400U, + 0x9e1f6600U, + 0x76199b00U, + 0xba1ee080U, + 0xe0131040U, + 0xff12b820U, + 0x859ca4d0U, + 0x945b3e18U, + 0x25f22f04U, + 0xa8e566c6U, + 0x9e789b1dU, + 0xdaa960c1U, + 0x399450bdU, + 0x465e58c5U, + 0x6fab489U, + 0x406406c8U, + 0x8cb8cbd6U, + 0x538d385dU, + 0xbe4fe43aU, + 0xfdedde0cU, + 0x83f53f5cU, + 0x45edde73U, + 0x17f53f35U, + 0x3bedde44U, + 0x9ef53f66U, + 0x46dde0dU, + 0xeab53f39U, + 0xde8dde89U, + 0xc7c53f2bU, + 0xd4a5deb8U, + 0x38913f63U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0x30000000U, + 0x68000000U, + 0x84000000U, + 0x9a000000U, + 0xc7000000U, + 0x4c800000U, + 0x37400000U, + 0xd4600000U, + 0xe5700000U, + 0x64c80000U, + 0x83ac0000U, + 0x78560000U, + 0x38db0000U, + 0xe1928000U, + 0x60fa4000U, + 0xba08a000U, + 0x5703f000U, + 0x748f0800U, + 0xeb471400U, + 0xa2665600U, + 0x3c770f00U, + 0x754c2080U, + 0x3f62b0c0U, + 0xd7f52860U, + 0x3e8ea430U, + 0xb449fe68U, + 0x62efeb84U, + 0x253b7e1aU, + 0x9425ab07U, + 0xd59bdeacU, + 0x52fa5bc7U, + 0x990ad65cU, + 0xb18a4f91U, + 0xecc80076U, + 0xf7ac0030U, + 0xea5600a6U, + 0x4bdb007cU, + 0x5f12808bU, + 0x14ba40f1U, + 0xb8e8a0dcU, + 0x4233f0c1U, + 0x88a708f0U, + 0xbadb1482U, + 0x6a98568bU, + 0x62700f02U, + 0x8840a0b2U, + 0xe4eff073U, + 0xf43908e0U, + 0x31ac14eaU, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0xd0000000U, + 0x38000000U, + 0xc4000000U, + 0xf6000000U, + 0x9b000000U, + 0xf7800000U, + 0xaa400000U, + 0x66600000U, + 0x32900000U, + 0x42c80000U, + 0xadac0000U, + 0x15ba0000U, + 0x9b50000U, + 0x8bb78000U, + 0xaeb24000U, + 0xee3c6000U, + 0xb9f93000U, + 0xdcd3b800U, + 0x12a90400U, + 0xa4347600U, + 0x70fa4100U, + 0x3651e080U, + 0x3c6e70c0U, + 0x639058a0U, + 0xbc4e74d0U, + 0x4d61ae38U, + 0x8d1f75c4U, + 0xc481ae76U, + 0xc1cf755bU, + 0x8e29aed7U, + 0xd1f375baU, + 0xe0dbae7eU, + 0x80aa75e6U, + 0x19362eacU, + 0x247d35e2U, + 0xaf95ce0cU, + 0x64a45ecU, + 0xac6816f4U, + 0x3b937179U, + 0x84a58d3U, + 0x536b74c3U, + 0xea1e2e74U, + 0x10135a1U, + 0x687cea7U, + 0x84c3457dU, + 0xbead9643U, + 0x6e38319cU, + 0x79fbb804U, + 0x7cd50451U, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0xf0000000U, + 0xd8000000U, + 0xf4000000U, + 0xea000000U, + 0xbd000000U, + 0x5b800000U, + 0xddc00000U, + 0x4d200000U, + 0xfd500000U, + 0xbf480000U, + 0x396c0000U, + 0x84ba0000U, + 0x4eb70000U, + 0xc3b98000U, + 0xe0314000U, + 0x39ffa000U, + 0x46d75000U, + 0xf2867800U, + 0xfc48bc00U, + 0xa5e66200U, + 0x37f2dd00U, + 0x59dc2080U, + 0x680110c0U, + 0x4c0858a0U, + 0x4e02acf0U, + 0x7f05bad8U, + 0xca8a31f4U, + 0x984dba6aU, + 0xc7e6317dU, + 0x56f7ba7bU, + 0xc45131edU, + 0x16ce3ab5U, + 0xda07139U, + 0x88119aadU, + 0xb272140U, + 0x9e5fe2cdU, + 0x13c39deaU, + 0xf22380c7U, + 0x97d640b9U, + 0xd70e2002U, + 0x268a10e6U, + 0x2643d8edU, + 0x60e8ece2U, + 0x68799aa1U, + 0xb61b213dU, + 0x6c2de20eU, + 0xd89d59U, + 0x91800012U, + 0x50c000aeU, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0x70000000U, + 0xf8000000U, + 0xec000000U, + 0xfa000000U, + 0xeb000000U, + 0xc2800000U, + 0x5c400000U, + 0x37e00000U, + 0x40f00000U, + 0xd7e80000U, + 0x50f40000U, + 0x7fea0000U, + 0x34f30000U, + 0x91e58000U, + 0xc9fdc000U, + 0x426a2000U, + 0xbc337000U, + 0xeb460800U, + 0x9766b400U, + 0x4bbd7600U, + 0x508ebb00U, + 0xb3460880U, + 0x4b66b440U, + 0x69bd7620U, + 0x278ebb70U, + 0x73c60878U, + 0x1026b4acU, + 0x66dd76daU, + 0xd03ebb9bU, + 0x514e08baU, + 0x5c62b4f0U, + 0xf93f76edU, + 0xf4c9bbdbU, + 0x68a9886dU, + 0xf19874a0U, + 0x555ad692U, + 0xb5f40befU, + 0x506020fcU, + 0x13307069U, + 0xb7cb88d0U, + 0xce2f7453U, + 0x43dd5697U, + 0x9fbecbbeU, + 0x268d803bU, + 0xf249c033U, + 0xeae020fcU, + 0xe3707069U, + 0x5a2b88d0U, + 0x15df7453U, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0x10000000U, + 0x28000000U, + 0x9c000000U, + 0xe6000000U, + 0x59000000U, + 0x7c800000U, + 0x5e400000U, + 0x35e00000U, + 0xea300000U, + 0x1e80000U, + 0x503c0000U, + 0x1ee20000U, + 0x65bd0000U, + 0x14208000U, + 0x9214c000U, + 0x2dfee000U, + 0x20c95000U, + 0xad2800U, + 0x3052b400U, + 0x4e117600U, + 0xabf19700U, + 0xc9cd2880U, + 0x4422b4c0U, + 0xda1976a0U, + 0x1fd9710U, + 0xfec728a8U, + 0xeda3b45cU, + 0x36dbf646U, + 0xaf545749U, + 0xbb9948d4U, + 0x13e2402U, + 0x2e683e73U, + 0x55ffb3a3U, + 0xf4cd16d5U, + 0xcaa10752U, + 0xb75660edU, + 0xdf919006U, + 0xf339c8e1U, + 0x1d6ae410U, + 0xbe76dec8U, + 0x1306e36aU, + 0x3b883e0fU, + 0x6fcfb335U, + 0x7d251614U, + 0x169d078aU, + 0x67b460e1U, + 0x7f2c9010U, + 0x7d9948c8U, + 0x883e246aU, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0x50000000U, + 0x38000000U, + 0xbc000000U, + 0x76000000U, + 0x9d000000U, + 0x26800000U, + 0x6f400000U, + 0x57600000U, + 0xd6f00000U, + 0x33680000U, + 0x2cf40000U, + 0x906a0000U, + 0x43710000U, + 0x2ba98000U, + 0x2c5ac000U, + 0x67bee000U, + 0x1d0b1000U, + 0x66808800U, + 0x4f43e400U, + 0x766fe00U, + 0xeefa0b00U, + 0x8f608880U, + 0x5af3e440U, + 0xd6efe20U, + 0x65fe0b50U, + 0x44e288b8U, + 0x7b36e4fcU, + 0xb14d7e56U, + 0x2e65cbcdU, + 0x4a7de89eU, + 0xdf233493U, + 0x44111601U, + 0xc5583f1bU, + 0xa3301eadU, + 0x3d451bbfU, + 0x106a0011U, + 0x3710018U, + 0xba98026U, + 0x7c5ac083U, + 0x5fbee0eeU, + 0xa10b10a9U, + 0x1080882eU, + 0xd243e4bdU, + 0x21e6fe81U, + 0x81ba0b09U, + 0xd8008826U, + 0x8c03e483U, + 0x3e06feeeU, + 0x490a0ba9U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x50000000U, + 0x58000000U, + 0x54000000U, + 0x26000000U, + 0x4b000000U, + 0x5800000U, + 0x95c00000U, + 0xc4e00000U, + 0x2df00000U, + 0x12e80000U, + 0x4ef40000U, + 0x2b6e0000U, + 0xa1310000U, + 0x8e8b8000U, + 0xb0444000U, + 0x6121e000U, + 0xe114f000U, + 0x331fb800U, + 0x2e14ac00U, + 0x8947600U, + 0xc4d03300U, + 0xbff7b880U, + 0x6fe0ac40U, + 0x387a7660U, + 0xbf213350U, + 0x8e1c38d8U, + 0x7894ec14U, + 0xacd39646U, + 0xe3f1c31bU, + 0x45e580ddU, + 0x1754081U, + 0xd7aa6082U, + 0x5550b036U, + 0x2c3e584fU, + 0xd0005c8fU, + 0x180bcec9U, + 0x34049fc7U, + 0x7603ce19U, + 0x13009f2bU, + 0x5185ce6eU, + 0xb3c59f7dU, + 0x8fe04e17U, + 0x2870df94U, + 0x872a2edcU, + 0x8a106f8bU, + 0x69c7699U, + 0xb3d4336bU, + 0xc071b80eU, + 0x9b25ac2dU, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0x30000000U, + 0x98000000U, + 0x34000000U, + 0x52000000U, + 0x45000000U, + 0x63800000U, + 0x23c00000U, + 0xdc200000U, + 0xc8f00000U, + 0x6280000U, + 0xd1fc0000U, + 0x3ba20000U, + 0xe13f0000U, + 0xb0b8000U, + 0x188c4000U, + 0xc346a000U, + 0xbb641000U, + 0x899a9800U, + 0x66bd2c00U, + 0xb2cada00U, + 0xbdace300U, + 0xa6329880U, + 0x25812cc0U, + 0xc4c8daa0U, + 0xc2a3e330U, + 0x8cb11818U, + 0x33c16cf4U, + 0xb4247af2U, + 0xc4f4f375U, + 0x502a007bU, + 0x5ef300d7U, + 0x2921802eU, + 0xf37f40bdU, + 0xb1e720fdU, + 0x6fdb50c6U, + 0x2e5db8b5U, + 0xb0967c6cU, + 0xab3f626eU, + 0xba069feaU, + 0x890ffaa4U, + 0x9588b352U, + 0x9cc4a0a4U, + 0x56ab105fU, + 0xeeb91872U, + 0xeecd6ce3U, + 0xe3ae7aeeU, + 0xb537f32aU, + 0xc9038004U, + 0xf5804062U, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0x70000000U, + 0x98000000U, + 0xac000000U, + 0x32000000U, + 0x29000000U, + 0x14800000U, + 0x2c00000U, + 0xcde00000U, + 0xadf00000U, + 0xb3e80000U, + 0xa6fc0000U, + 0xc6620000U, + 0xf4bb0000U, + 0xf4b8000U, + 0x23a1c000U, + 0x1ed0a000U, + 0x9f75000U, + 0xa5efe800U, + 0x59fe7c00U, + 0x8debb600U, + 0xcdfae300U, + 0x63e7e880U, + 0x4ef27cc0U, + 0xf261b6a0U, + 0x6abde370U, + 0x144e6818U, + 0x1e28bc6cU, + 0x89a9692U, + 0xc6db7359U, + 0xc5f9200cU, + 0x47ed906eU, + 0x98f4c85fU, + 0xad68ecf4U, + 0x5134fe3fU, + 0xb503cf08U, + 0xde8bb6b9U, + 0x57cae3b0U, + 0x36fe888U, + 0xb23e7c37U, + 0xf48bb62dU, + 0x12cae38cU, + 0x85efe833U, + 0xe9fe7c99U, + 0xb5ebb6d3U, + 0x11fae36bU, + 0xc9e7e808U, + 0xcbf27cf7U, + 0xd4e1b68dU, + 0x417de3fcU, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0x90000000U, + 0x98000000U, + 0xb4000000U, + 0xde000000U, + 0x61000000U, + 0xca800000U, + 0x63c00000U, + 0x39200000U, + 0xc9300000U, + 0x6b280000U, + 0x923c0000U, + 0xa6aa0000U, + 0x7e750000U, + 0x70c38000U, + 0x38ae4000U, + 0xff766000U, + 0xa4c5000U, + 0x5364c800U, + 0xea596c00U, + 0xa973da00U, + 0x87413f00U, + 0xd3ecc880U, + 0xa6956cc0U, + 0xa3d1da20U, + 0x53383f90U, + 0x3c2d4818U, + 0xa5b22c74U, + 0x6dee3afeU, + 0xb79f2ff1U, + 0x415460d2U, + 0x8cf55017U, + 0xf70548c7U, + 0x678e2c38U, + 0x73443a39U, + 0xedea2f45U, + 0x7797e0c1U, + 0x615b1016U, + 0x1cf328f1U, + 0x6f027c59U, + 0xd380f2f8U, + 0xad434309U, + 0x8cec3a16U, + 0xbd162fe1U, + 0x29de09aU, + 0x25de10c0U, + 0xa638a871U, + 0xb8a03c99U, + 0x3f7492d8U, + 0x2a461399U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x10000000U, + 0xb8000000U, + 0x3c000000U, + 0x82000000U, + 0x79000000U, + 0x1d800000U, + 0xf6400000U, + 0x67a00000U, + 0x8d300000U, + 0x82a80000U, + 0x22b40000U, + 0xc5ee0000U, + 0xcc950000U, + 0xb8958000U, + 0xee9ec000U, + 0xf199a000U, + 0x3b1f5000U, + 0x93d97800U, + 0x5abbb400U, + 0xd9ecc200U, + 0x3e934700U, + 0x69977880U, + 0x771eb440U, + 0xb9d14260U, + 0xa7b98710U, + 0x7a60d838U, + 0x33d4e47cU, + 0x6abdbae2U, + 0x11ecf369U, + 0xaa9dba25U, + 0x6f9cf38aU, + 0xb015ba05U, + 0x5f58f3a4U, + 0x3573bac7U, + 0xf609f3b8U, + 0x2f003a78U, + 0x2863354U, + 0x3cca1afdU, + 0xcf66a32fU, + 0x44514294U, + 0x1f98799U, + 0xc5c0d809U, + 0x92e4e4f8U, + 0xd215ba4fU, + 0x7658f3c5U, + 0xf0f3bac5U, + 0x2c49f353U, + 0x72a03a76U, + 0xcab633f0U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x70000000U, + 0x88000000U, + 0x34000000U, + 0xd6000000U, + 0xe5000000U, + 0x25800000U, + 0x89c00000U, + 0xa2600000U, + 0x93b00000U, + 0xe3680000U, + 0xd8340000U, + 0x53ae0000U, + 0xcdd30000U, + 0xf2d68000U, + 0x78584000U, + 0xc31fe000U, + 0x6301000U, + 0xc2aab800U, + 0x5e580c00U, + 0xee17de00U, + 0x77b25700U, + 0xed64b880U, + 0x913b0c40U, + 0x6c295e60U, + 0xcb1e1770U, + 0x72355808U, + 0x74a81c74U, + 0xcb5d66b6U, + 0x439a5b95U, + 0xca7b662dU, + 0x990d5bfdU, + 0xe78be694U, + 0xaac21b46U, + 0x9ae486aeU, + 0x83fd4b55U, + 0x2ac15e4fU, + 0xdaea17bfU, + 0xe3fb588aU, + 0x5acb1cc8U, + 0x52e3e629U, + 0xd7f61b70U, + 0x8cca868aU, + 0xb7ee4b75U, + 0xf277de2cU, + 0x50257abU, + 0x158cb882U, + 0x61cf0cbcU, + 0xe6675e9fU, + 0xcdbd17e5U, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0x50000000U, + 0xa8000000U, + 0xe4000000U, + 0x2e000000U, + 0xc7000000U, + 0xfe800000U, + 0x22c00000U, + 0xfae00000U, + 0xf2300000U, + 0x7be80000U, + 0xcfb40000U, + 0x79a20000U, + 0x28910000U, + 0xc3f88000U, + 0x49874000U, + 0x64466000U, + 0x342d3000U, + 0x92d28800U, + 0xc8d29c00U, + 0x69d0e600U, + 0x44559f00U, + 0x4e188880U, + 0x1d379c40U, + 0x216a66a0U, + 0x6373df50U, + 0x144e6828U, + 0x8c29eca4U, + 0x7edc8e8eU, + 0x52dd7397U, + 0x28d486d6U, + 0x99d9af86U, + 0xbc5a80f4U, + 0x2164025U, + 0xd73ee08dU, + 0xc86a7059U, + 0x5af4e805U, + 0xc80facf9U, + 0x540a6e68U, + 0x76030363U, + 0xdb026e99U, + 0x9c87038cU, + 0x2fc86ef0U, + 0xed6203acU, + 0xe972ee87U, + 0x5d444363U, + 0xe5a40ec0U, + 0xa9a3387U, + 0x6ef2e6b7U, + 0xe049f4bU, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0xb0000000U, + 0x98000000U, + 0xd4000000U, + 0x1e000000U, + 0xe5000000U, + 0x6b800000U, + 0xb9400000U, + 0x56e00000U, + 0x33700000U, + 0xed680000U, + 0x423c0000U, + 0x678a0000U, + 0x93470000U, + 0x3deb8000U, + 0x95f64000U, + 0x73a06000U, + 0x679f1000U, + 0xf91d5800U, + 0xc3dac400U, + 0x407c5600U, + 0x5fe8e300U, + 0xe2f6d880U, + 0x172c84c0U, + 0xfe5c3620U, + 0x37f3b0U, + 0xa08b8018U, + 0x6fc64014U, + 0x7028603eU, + 0x72d31055U, + 0xf5ff58f3U, + 0x23a1c46dU, + 0x6f9dd648U, + 0x519a3d6U, + 0x91dd3806U, + 0x6f75d43bU, + 0xcf690e11U, + 0xd53e2710U, + 0x93088ec8U, + 0x228f67c3U, + 0x88c36eaaU, + 0x3ca63761U, + 0xa71e5697U, + 0xc6d3e34bU, + 0xbbf75843U, + 0xceadc44aU, + 0xf81fd63bU, + 0xee52a3aeU, + 0xe834b8e2U, + 0xcc8894b7U, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0x10000000U, + 0xe8000000U, + 0xc000000U, + 0x22000000U, + 0xa3000000U, + 0xd0800000U, + 0x8bc00000U, + 0x44a00000U, + 0x13f00000U, + 0xc280000U, + 0xac3c0000U, + 0x6e860000U, + 0x22cd0000U, + 0xdb208000U, + 0x7ab1c000U, + 0x8844a000U, + 0x27e6f000U, + 0xd8912800U, + 0x657b8c00U, + 0xdae3c200U, + 0xb11b4300U, + 0x9931a880U, + 0xfb0a4cc0U, + 0x48762e0U, + 0xbdcdb310U, + 0x31a88068U, + 0xa67dc0ccU, + 0xda6aa0c2U, + 0x32d7f0b3U, + 0xc197a838U, + 0x22f74c87U, + 0xa7afe266U, + 0xe37073b0U, + 0x77e2205cU, + 0x109a30e7U, + 0x997508caU, + 0xecbc21U, + 0xf6164a3fU, + 0x67b63fdaU, + 0xf1cb4244U, + 0x33a68366U, + 0xf57b08b3U, + 0xf2edbc44U, + 0x5d18ca1eU, + 0xab36ff99U, + 0xb0096207U, + 0xd80cb35dU, + 0x14060022U, + 0xd60d00d6U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0xd0000000U, + 0x88000000U, + 0x24000000U, + 0x5e000000U, + 0x85000000U, + 0xb6800000U, + 0x1c00000U, + 0xf2200000U, + 0x42f00000U, + 0x6aa80000U, + 0x5e3c0000U, + 0xa20a0000U, + 0xb7010000U, + 0x698a8000U, + 0xbc4f4000U, + 0x486d6000U, + 0x239a1000U, + 0x85b68800U, + 0x14c4c00U, + 0x62ea4a00U, + 0x205b3300U, + 0xd0940880U, + 0x823f0cc0U, + 0x400d2a20U, + 0xe00023d0U, + 0xf0080008U, + 0x580c00e4U, + 0xac02007eU, + 0x7a0d0055U, + 0xdb08803eU, + 0x33824025U, + 0xb745e0acU, + 0xf3e850c7U, + 0xb0db68dcU, + 0x28581c5fU, + 0x349b2250U, + 0xfc322ff5U, + 0x150daa83U, + 0xde8e6322U, + 0xd5cfe04aU, + 0xf4295084U, + 0x6bf1e844U, + 0xa6275c49U, + 0x84fe42fcU, + 0x63a43fa2U, + 0x42b9223dU, + 0xf0cf2fc7U, + 0x52ad2ac6U, + 0xc2302393U, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0x70000000U, + 0x98000000U, + 0x94000000U, + 0x6e000000U, + 0xa3000000U, + 0x96800000U, + 0x3e400000U, + 0x56200000U, + 0x91700000U, + 0xbba80000U, + 0xcdbc0000U, + 0x6dc20000U, + 0x41eb0000U, + 0xdd938000U, + 0xf3b64000U, + 0xe6cb6000U, + 0x7b657000U, + 0x69d28800U, + 0xf09f5400U, + 0xd638ca00U, + 0x60b5300U, + 0x6f030880U, + 0xcc8214c0U, + 0x83402aa0U, + 0xfba86370U, + 0xadb2e018U, + 0xbdc43054U, + 0xa9e868ceU, + 0xd19764d3U, + 0x9baa20eU, + 0x2bcb37aaU, + 0x4ee82ab8U, + 0xc11463f2U, + 0x98f0e00dU, + 0x116f3043U, + 0x2cdbe803U, + 0x19112434U, + 0x6cf9c290U, + 0xaf624709U, + 0x67d0a2f3U, + 0x839c3767U, + 0xa8b9aa54U, + 0x3449231cU, + 0xc3280065U, + 0x90fc0005U, + 0xd620086U, + 0x9edb00f7U, + 0xa81b8085U, + 0x3b7a4046U, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0xd0000000U, + 0x58000000U, + 0x5c000000U, + 0x7a000000U, + 0xcd000000U, + 0x80800000U, + 0x5e400000U, + 0x4ce00000U, + 0x5b100000U, + 0x5b680000U, + 0x58dc0000U, + 0x31420000U, + 0x9d610000U, + 0x5fdf8000U, + 0x54c0c000U, + 0x97ae2000U, + 0x33731000U, + 0xa83aa800U, + 0xa058b400U, + 0x23070600U, + 0x538cf500U, + 0x45cf2880U, + 0xad2574c0U, + 0x34a6a0U, + 0xb45e25d0U, + 0xfd0420d8U, + 0x688e109cU, + 0x2a4728daU, + 0xe2e9741dU, + 0xe81ea6d8U, + 0x30e32502U, + 0x3119a0b6U, + 0x6e6fd056U, + 0x5456887bU, + 0x4d0aa4d6U, + 0x40822e25U, + 0xfe44819aU, + 0x9cee0efeU, + 0x3169101U, + 0x76b2606U, + 0x22dee5e0U, + 0xfc4a00c3U, + 0x1ded00e3U, + 0x195806dU, + 0x182dc079U, + 0xccbba07eU, + 0x681ed05fU, + 0xf0e108caU, + 0x9116647bU, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0x10000000U, + 0xb8000000U, + 0x94000000U, + 0x1a000000U, + 0x4b000000U, + 0xa5800000U, + 0x7bc00000U, + 0x48600000U, + 0xd2700000U, + 0xe4e80000U, + 0xa33c0000U, + 0x60c20000U, + 0x35ed0000U, + 0x8db18000U, + 0x1e804000U, + 0x16462000U, + 0xafa7f000U, + 0xbc1af800U, + 0x4b908c00U, + 0x27539e00U, + 0x4cb53b00U, + 0x88017880U, + 0xfc01ccc0U, + 0x96063ea0U, + 0xd50f8b10U, + 0x4c842038U, + 0x14af054U, + 0x8c2b78baU, + 0xaad0cc5bU, + 0xdb75be1dU, + 0xee62cbefU, + 0x6f7380d2U, + 0x246d4059U, + 0x3c77a0e1U, + 0x5e7b0c8U, + 0xe5bcd890U, + 0x92877c73U, + 0x88416673U, + 0x46a9b7f6U, + 0xc698e653U, + 0x8fd5f721U, + 0x5ffcc659U, + 0x732f0757U, + 0xc55fbe4dU, + 0xf3b3cb04U, + 0x878000d6U, + 0x64c0008dU, + 0x57e0009bU, + 0xf2b00033U, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0x90000000U, + 0x8000000U, + 0x5c000000U, + 0x62000000U, + 0x81000000U, + 0xed800000U, + 0x87c00000U, + 0x6e600000U, + 0x9e300000U, + 0x58e80000U, + 0xf1740000U, + 0x4aca0000U, + 0xa9ed0000U, + 0xe4f28000U, + 0x2904c000U, + 0x6182a000U, + 0xcdcfd000U, + 0x2361f800U, + 0x19b0ec00U, + 0x225fe00U, + 0x1093bf00U, + 0xd2317880U, + 0x72ed2c40U, + 0xc7fde20U, + 0x5545af90U, + 0xa728a088U, + 0x3b12d01cU, + 0x52fb7842U, + 0xd6002c11U, + 0x4f0d5ee5U, + 0xb6816fdbU, + 0x2f4a008cU, + 0x322d005fU, + 0xc8928095U, + 0xa634c0e6U, + 0xdceaa02cU, + 0xe77bd06bU, + 0x65cbf8deU, + 0xaf6dec59U, + 0x53bf7ec6U, + 0x4f237fe3U, + 0x9719d829U, + 0x88fffceeU, + 0x9304a61bU, + 0x948583bcU, + 0x8e45fe33U, + 0x4fa3bfdeU, + 0x47597828U, + 0x94592c3dU, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0x50000000U, + 0xb8000000U, + 0xec000000U, + 0x66000000U, + 0x23000000U, + 0xab800000U, + 0xadc00000U, + 0x1b600000U, + 0x17100000U, + 0x9e80000U, + 0xc5c0000U, + 0xabca0000U, + 0x88690000U, + 0x74998000U, + 0xa023c000U, + 0x2531e000U, + 0x15d6f000U, + 0x6f0dd800U, + 0x5d8d6c00U, + 0x16c2ce00U, + 0xce34d00U, + 0x64d65880U, + 0xdd8bacc0U, + 0xd6c8ae20U, + 0x2ce37d50U, + 0x34d9e038U, + 0x658af02cU, + 0x3ac7d846U, + 0x4ae46c73U, + 0x17db4e13U, + 0xce008d41U, + 0x9707b8fdU, + 0x518d5cf4U, + 0xcd7682U, + 0xc7e211f1U, + 0x9b592e88U, + 0xfa4cbdb3U, + 0x88aa00bbU, + 0xb379001fU, + 0x3b7180bdU, + 0xdf7fc08cU, + 0x9d7be0deU, + 0xdc7ff025U, + 0x66f458f7U, + 0xc9beac9bU, + 0x919b2e10U, + 0xb8a9bdb2U, + 0xbb718026U, + 0x1f7fc05bU, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0x10000000U, + 0xd8000000U, + 0x44000000U, + 0x7e000000U, + 0x61000000U, + 0x23800000U, + 0x7ec00000U, + 0xf1200000U, + 0x26500000U, + 0x1fe80000U, + 0xcf7c0000U, + 0x1dbe0000U, + 0xbe950000U, + 0x6bcf8000U, + 0xc4af4000U, + 0xd59d6000U, + 0x3f46d000U, + 0x14e01800U, + 0x8bf45c00U, + 0x15f5da00U, + 0xa4f82100U, + 0x3f7d7880U, + 0x15b28cc0U, + 0x4295c260U, + 0x41cc7d10U, + 0x3a8a258U, + 0xd31aad84U, + 0x1c00ba9eU, + 0xfa02f1b1U, + 0x7f03601bU, + 0x5283d0eaU, + 0x85479837U, + 0xcbe71c13U, + 0xa976ba9aU, + 0x58bbf194U, + 0xf31ae031U, + 0xac059047U, + 0x520b78c6U, + 0xf30b8c43U, + 0xb08c42feU, + 0xde4a3d2cU, + 0xf7644283U, + 0x95363d9fU, + 0xf4da4275U, + 0x5aa33d4fU, + 0x6495c25cU, + 0xa4cc7dd7U, + 0x3e28a2cfU, + 0xdcdaad6bU, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0x10000000U, + 0xa8000000U, + 0x7c000000U, + 0x16000000U, + 0x6d000000U, + 0x7b800000U, + 0x66400000U, + 0xe3200000U, + 0x87d00000U, + 0xf3680000U, + 0xf9f40000U, + 0x17320000U, + 0xa8dd0000U, + 0xcfec8000U, + 0x3f38c000U, + 0x94d8e000U, + 0x79e69000U, + 0x42359800U, + 0x47551400U, + 0x63a9ba00U, + 0xb71c3100U, + 0xad857880U, + 0xeb478440U, + 0x28ae22a0U, + 0x59942510U, + 0xc4404228U, + 0x1423753cU, + 0x9f53ba36U, + 0x47a5313dU, + 0xc513f8f3U, + 0x1286444aU, + 0x3fc042fdU, + 0x32637586U, + 0xdc73bab6U, + 0xd07531ceU, + 0x9e7bf8b9U, + 0x97724474U, + 0x3ef242acU, + 0xf7be754bU, + 0x681f3aadU, + 0x890df1feU, + 0xe9831824U, + 0x6944d472U, + 0x8fafdabfU, + 0x491f61d4U, + 0x1c84809aU, + 0x96ccc0c5U, + 0x8beae0b4U, + 0xbd3b909aU, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0xf0000000U, + 0xb8000000U, + 0x24000000U, + 0xe000000U, + 0xd1000000U, + 0x96800000U, + 0x5c00000U, + 0x12600000U, + 0x69b00000U, + 0x41a80000U, + 0x3ed40000U, + 0x689e0000U, + 0x7fb30000U, + 0x64a18000U, + 0x8e5f4000U, + 0xd05a6000U, + 0x6957d000U, + 0xf3da4800U, + 0x941aec00U, + 0xc57b3e00U, + 0xc14e7f00U, + 0xcca82880U, + 0xa2593c40U, + 0x225f7660U, + 0x625793f0U, + 0x25a9638U, + 0xf25c0364U, + 0x4a533eeeU, + 0x6e5a7f61U, + 0x605628ceU, + 0xb15a3c91U, + 0x27d6f6c4U, + 0x221cd36cU, + 0x307ef6e1U, + 0x59c8d38eU, + 0x1860f602U, + 0x26bbd372U, + 0x4e2176f9U, + 0x31949348U, + 0x553316bdU, + 0xdb674304U, + 0xb3f5e7eU, + 0x626aaf1bU, + 0x91b3e0cbU, + 0x5ac9070U, + 0xc0d62898U, + 0x19a3c86U, + 0xcd36f6dfU, + 0x6f6cd386U, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0x50000000U, + 0x28000000U, + 0x4c000000U, + 0x4a000000U, + 0xe5000000U, + 0x7c800000U, + 0x45400000U, + 0x8b600000U, + 0x90500000U, + 0x7c280000U, + 0xda340000U, + 0x76f60000U, + 0x1c590000U, + 0x96208000U, + 0x8f3bc000U, + 0x72752000U, + 0x3d111000U, + 0x1b472800U, + 0xb0656400U, + 0x97dc0e00U, + 0xdeef8900U, + 0xa39a0880U, + 0xb7007440U, + 0xed8d26e0U, + 0xf7c3ed50U, + 0x7d2e86a8U, + 0xe0b03d0cU, + 0x7cbc0e2aU, + 0x5ebf89f5U, + 0x17b20834U, + 0x71347419U, + 0xf97b2609U, + 0x429aed69U, + 0xdd8e06e2U, + 0xcfcbfd76U, + 0xf9292eabU, + 0xb6be993cU, + 0xfbbd2055U, + 0x8b3510dcU, + 0x64792871U, + 0x5a186492U, + 0x9ec28e99U, + 0xeba94915U, + 0xf0f1a838U, + 0xf357a400U, + 0xefa1ae37U, + 0xe6f159eaU, + 0x945e003aU, + 0x6a2d00feU, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0x50000000U, + 0x28000000U, + 0xfc000000U, + 0xa000000U, + 0xf9000000U, + 0x8e800000U, + 0x6bc00000U, + 0x2ae00000U, + 0x9a300000U, + 0xe4280000U, + 0x24540000U, + 0xe4da0000U, + 0xc8190000U, + 0x137c8000U, + 0xe704c000U, + 0xe1812000U, + 0x6645d000U, + 0x4ea00800U, + 0x8194cc00U, + 0xc932b600U, + 0x83a4c700U, + 0xc91b2880U, + 0x9f81c40U, + 0x5ac63e20U, + 0x6860cb50U, + 0xa3f2bea8U, + 0xb3c00bbcU, + 0xeee19eaaU, + 0x6438dbe9U, + 0xbb2f1606U, + 0x71d5d787U, + 0x49200a8U, + 0xdbd008fU, + 0x316e8068U, + 0x3d79c01aU, + 0xd00fa062U, + 0x680c103cU, + 0xdc07a859U, + 0x5a0cdccbU, + 0xd10f1e45U, + 0x72811b7bU, + 0x61c0b6f7U, + 0xd3e9c750U, + 0x14bda89bU, + 0x8fe5dcfeU, + 0xebb9e99U, + 0x7ee1db6dU, + 0x2c33968dU, + 0x372117aeU, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0xb0000000U, + 0x38000000U, + 0xb4000000U, + 0x46000000U, + 0x4b000000U, + 0xfc800000U, + 0x86400000U, + 0x3a00000U, + 0xb6700000U, + 0x52e80000U, + 0x73540000U, + 0xc3da0000U, + 0xd7970000U, + 0x493d8000U, + 0xc0ce4000U, + 0x64eae000U, + 0x60557000U, + 0x1b506800U, + 0x9fdc7400U, + 0x8d9a6200U, + 0x78391b00U, + 0xbd408880U, + 0xa72e0440U, + 0x143f8a20U, + 0x9f4f2fb0U, + 0x2220ab8U, + 0x9fb16ff4U, + 0x2f80eae6U, + 0x3ec01fbbU, + 0xdbe28264U, + 0xfadf6bc2U, + 0x661f60ddU, + 0x58ff30b9U, + 0x9a888f0U, + 0x6f7a04baU, + 0x33658a42U, + 0xca982f18U, + 0x36bf8a22U, + 0x160f2f88U, + 0xa3020aaaU, + 0xe0816f04U, + 0xfc48ea58U, + 0x82a41f09U, + 0xf3f082efU, + 0x252c6b73U, + 0x4130e06aU, + 0xcc270c6U, + 0xb6ede80eU, + 0xdd5234a7U, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0xf0000000U, + 0x58000000U, + 0x9c000000U, + 0x1e000000U, + 0x3f000000U, + 0x83800000U, + 0x2400000U, + 0x18e00000U, + 0x1bd00000U, + 0xe1280000U, + 0xad7c0000U, + 0x4120000U, + 0x48b0000U, + 0x8dc38000U, + 0xcacc000U, + 0x83b6000U, + 0xa377b000U, + 0xf3141800U, + 0x130c3400U, + 0xa5834600U, + 0xf1492100U, + 0x2d6cf880U, + 0xe29744c0U, + 0xf84c3ea0U, + 0x95e2a5f0U, + 0x4153a6d8U, + 0x33ee515cU, + 0x7251803eU, + 0xa667c00fU, + 0x7b18e07bU, + 0xe70b706eU, + 0xdf87785eU, + 0xbc4784b8U, + 0xd7e55e7cU, + 0xc05e1590U, + 0x7f643e1fU, + 0xab9ea5ddU, + 0x20c1a654U, + 0x6625518aU, + 0x22f20095U, + 0x105b00a6U, + 0x176b809cU, + 0xcf90c048U, + 0x52c960e5U, + 0x1f2cb0ffU, + 0x27f9853U, + 0x8f9cf474U, + 0x32ca26d4U, + 0x4f2591c3U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0x30000000U, + 0xd8000000U, + 0xfc000000U, + 0x6a000000U, + 0xab000000U, + 0x71800000U, + 0xfc00000U, + 0x83200000U, + 0x33b00000U, + 0x95680000U, + 0x5b5c0000U, + 0xd3fe0000U, + 0xc870000U, + 0x1f478000U, + 0x66ac000U, + 0x26d82000U, + 0xe30f000U, + 0xe8aa7800U, + 0xef76ec00U, + 0xcbc89a00U, + 0xe5265f00U, + 0x4ab5d880U, + 0x83ecdcc0U, + 0x971ac260U, + 0x8104330U, + 0xa79f3a58U, + 0x1d506f3cU, + 0x3af1808aU, + 0x9201c05bU, + 0xc709a0c9U, + 0x938130c3U, + 0xb0cbd831U, + 0xbcabdc64U, + 0x17d428eU, + 0xa6ca83ffU, + 0xbdaf1aa1U, + 0xbbfc9ff0U, + 0xe885f8e9U, + 0xe9402c9eU, + 0xf76ebad8U, + 0x2451af95U, + 0x8c782016U, + 0xe40f072U, + 0xf4e27889U, + 0x1c9aec79U, + 0x24de9aaeU, + 0x413d5fa2U, + 0x6f2c5848U, + 0x11b11c01U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0xd0000000U, + 0x38000000U, + 0x2c000000U, + 0xe6000000U, + 0xb7000000U, + 0x59800000U, + 0xea400000U, + 0xdf200000U, + 0x17d00000U, + 0x4ae80000U, + 0xb5b40000U, + 0x6b9e0000U, + 0xeac10000U, + 0x5fe18000U, + 0xe939c000U, + 0xc558e000U, + 0x7263000U, + 0xabdb3800U, + 0xf4e8b400U, + 0xfeb99a00U, + 0xec150100U, + 0x9b8a5880U, + 0x3f434440U, + 0xa3a44260U, + 0x91a85d0U, + 0x4f097ab8U, + 0x5587316cU, + 0xbc4f6006U, + 0x802af027U, + 0x5a5c5801U, + 0x6aa64416U, + 0x3b93c201U, + 0x92c6458cU, + 0x13e61a75U, + 0xdf3dc1a8U, + 0x4a5b380dU, + 0x72a8b487U, + 0xa7999a92U, + 0x9cc501b7U, + 0xb0e258baU, + 0x4cb74483U, + 0xf11a4240U, + 0x430b857aU, + 0x380fa5aU, + 0xe34af193U, + 0xcda98066U, + 0x7a1dc049U, + 0xe48ee0d6U, + 0xc2c33058U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0xb0000000U, + 0x68000000U, + 0x3c000000U, + 0xd6000000U, + 0x51000000U, + 0x1a800000U, + 0x49c00000U, + 0xdf200000U, + 0xead00000U, + 0xfa680000U, + 0x5d3c0000U, + 0x9d1a0000U, + 0x884f0000U, + 0x5b688000U, + 0xcfbac000U, + 0x78d8e000U, + 0x59645000U, + 0xb4b10800U, + 0xc55dec00U, + 0xeb20ca00U, + 0x50d0d900U, + 0x85696880U, + 0xf2bf7cc0U, + 0x4c532220U, + 0xa5a665b0U, + 0xf3102ae8U, + 0xdd4889fcU, + 0x53e26076U, + 0xe57d9021U, + 0x6e736852U, + 0x5bf07cc5U, + 0x45bba261U, + 0xafdca587U, + 0xeae8cab6U, + 0x3fcd985U, + 0xd1bb68f8U, + 0x65dc7c5bU, + 0xdde9a236U, + 0x207fa5f4U, + 0xbef24a21U, + 0x25351921U, + 0xb911081eU, + 0x2a4deceaU, + 0x5068ca45U, + 0x3a3cd9e9U, + 0x469b6852U, + 0x30c7c74U, + 0x9981a298U, + 0x1043a54dU, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0xd0000000U, + 0x58000000U, + 0x14000000U, + 0xda000000U, + 0xf3000000U, + 0x1800000U, + 0x7e400000U, + 0x28600000U, + 0x55d00000U, + 0x21a80000U, + 0x2efc0000U, + 0x4c9e0000U, + 0x12490000U, + 0x966f8000U, + 0x94da4000U, + 0x4f2d2000U, + 0xc737f000U, + 0x27b2f800U, + 0x477c7400U, + 0x6eda2e00U, + 0xcc2ce100U, + 0x2eb85880U, + 0xc5fdc4c0U, + 0xf913f660U, + 0x60265d0U, + 0xc5090ed8U, + 0x8c8211d4U, + 0xdecd203aU, + 0xe8a7f0e3U, + 0xcc7af839U, + 0xb5074baU, + 0x806c2eaaU, + 0x69d9e1b2U, + 0x7a9d87aU, + 0x9bfe8463U, + 0x28195605U, + 0x5083d5e9U, + 0xe8c0d647U, + 0x65ac953bU, + 0x6cfc7618U, + 0xcb982518U, + 0x19c42e44U, + 0x4325e1bbU, + 0xa937d8fdU, + 0xbeb7843dU, + 0x3df6d684U, + 0x5d199522U, + 0x540df6d7U, + 0x7a0b6593U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0xb0000000U, + 0xa8000000U, + 0xcc000000U, + 0x22000000U, + 0xb1000000U, + 0xbe800000U, + 0xea400000U, + 0x9de00000U, + 0xf3100000U, + 0x48280000U, + 0x523c0000U, + 0x609e0000U, + 0xe6ef0000U, + 0x90908000U, + 0xeee9c000U, + 0x8c9fa000U, + 0xd4e35000U, + 0x59920800U, + 0x84631400U, + 0x20d2e600U, + 0x160cdd00U, + 0x87032880U, + 0x298684c0U, + 0xbbcfce60U, + 0xf22559b0U, + 0x473c6628U, + 0x501a1d0cU, + 0x2fa408c2U, + 0xaaf014c1U, + 0x853c6676U, + 0x911a1d96U, + 0x59240897U, + 0x3cb0144eU, + 0x92dc66b4U, + 0x1f0a1db9U, + 0x8d8c086bU, + 0x35cc14f3U, + 0xd1226607U, + 0xe0b51d4eU, + 0xc8d48832U, + 0x7a09d486U, + 0x750bc676U, + 0x80854d7eU, + 0x614800e2U, + 0xf66c0098U, + 0x49d600edU, + 0xac83006dU, + 0x3346800cU, + 0x8f6ac0faU, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0x90000000U, + 0xd8000000U, + 0x64000000U, + 0xaa000000U, + 0xc1000000U, + 0x47800000U, + 0x8f400000U, + 0x94a00000U, + 0xbb300000U, + 0x49680000U, + 0xc55c0000U, + 0x34b20000U, + 0xba2d0000U, + 0x3ffb8000U, + 0x748d4000U, + 0xadc22000U, + 0x566dd000U, + 0xf1d19800U, + 0xf97bc400U, + 0xdc436200U, + 0x862b9f00U, + 0x31fa3880U, + 0xbf8654c0U, + 0xbb435aa0U, + 0x46accb90U, + 0x8e38e258U, + 0x7ce6dfa4U, + 0xef18188aU, + 0x4d9b8491U, + 0x4f5ac23fU, + 0xa5bb0f7bU, + 0x85a18066U, + 0x44bc40deU, + 0x922ba004U, + 0xb3fd901bU, + 0xf280383fU, + 0x7ac754eaU, + 0x1ee2da48U, + 0x52108bcbU, + 0x64134217U, + 0x3b1b4f66U, + 0x6f98204eU, + 0x925cd0dcU, + 0xbc38187fU, + 0xb9eb8495U, + 0x3292c22bU, + 0x4bd70f0fU, + 0x207b80c4U, + 0x5fcd40c3U, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0xb0000000U, + 0x68000000U, + 0x24000000U, + 0xa2000000U, + 0x15000000U, + 0x4f800000U, + 0xee400000U, + 0xb600000U, + 0x6d700000U, + 0xb3a80000U, + 0x21dc0000U, + 0x9cf20000U, + 0x76ef0000U, + 0x8e308000U, + 0x1b4b4000U, + 0x94eba000U, + 0xfb3f9000U, + 0x44cf9800U, + 0xa2af1400U, + 0xbc5d5e00U, + 0xafb5eb00U, + 0xa606b880U, + 0xc704c4c0U, + 0x9281e6a0U, + 0x35c22fb0U, + 0x2f25dee8U, + 0x5712abe4U, + 0x33571882U, + 0x69385465U, + 0xf9c4fe87U, + 0x69257b7aU, + 0x4019a041U, + 0xd9d0909cU, + 0xa0ff18feU, + 0x38e4546aU, + 0xad36feb0U, + 0x8bca7bd1U, + 0x4292014U, + 0xf39bd082U, + 0xd994b854U, + 0x389bc4f2U, + 0xad196635U, + 0xaa556f86U, + 0xbc7e37U, + 0x10823bbbU, + 0x50c80085U, + 0xa8ac0076U, + 0x2d5a0027U, + 0xf23300daU, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x30000000U, + 0xd8000000U, + 0xf4000000U, + 0x16000000U, + 0xfd000000U, + 0xc3800000U, + 0x53400000U, + 0x8a200000U, + 0x27b00000U, + 0x5be80000U, + 0x17540000U, + 0x323e0000U, + 0xd5af0000U, + 0xeff8000U, + 0xaec24000U, + 0x286be000U, + 0xdc1b1000U, + 0x2c191800U, + 0xd41a0400U, + 0x701e0a00U, + 0x8e131700U, + 0x5f137880U, + 0x7e9c5440U, + 0xc6db7260U, + 0x72744330U, + 0xc5098a58U, + 0x478557b4U, + 0xfd4698f6U, + 0xb328448dU, + 0x2a3dea7bU, + 0x1ac0797U, + 0x48fc60c4U, + 0xbbcd506eU, + 0xc7ecf8eeU, + 0x6d5e1489U, + 0x4d3092a3U, + 0xcd2f5355U, + 0xbb309249U, + 0x402f5323U, + 0xc0b09262U, + 0xd76f533dU, + 0x849092a2U, + 0xf9df530cU, + 0xaf89223U, + 0x40cb5392U, + 0x71669284U, + 0xe1945389U, + 0xae5112f3U, + 0x7fb2138bU, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0xf0000000U, + 0x48000000U, + 0xe4000000U, + 0xbe000000U, + 0x51000000U, + 0xd1800000U, + 0xb7c00000U, + 0x1f600000U, + 0x47500000U, + 0x16280000U, + 0xaf7c0000U, + 0x485e0000U, + 0xa6ab0000U, + 0xe13e8000U, + 0xf4ff4000U, + 0x8946000U, + 0x54dd000U, + 0x222db800U, + 0x9780c00U, + 0x25543e00U, + 0x95273100U, + 0x15f15880U, + 0x311d9cc0U, + 0xc68d6660U, + 0x3b46adf0U, + 0xb3223ec8U, + 0xb8f03124U, + 0x6291d85eU, + 0xc249dc61U, + 0xb6a786f9U, + 0x99343da3U, + 0x38fbe669U, + 0xa295ed32U, + 0xa2405e99U, + 0x46aae179U, + 0xd13ce02eU, + 0xdcf59082U, + 0x1c91587eU, + 0xf34d9c59U, + 0x97256671U, + 0x66faad0eU, + 0xc39c3e7bU, + 0x5bcb313aU, + 0xe56758f4U, + 0x385a9c0bU, + 0x2ea5e656U, + 0x653eed67U, + 0xbafede08U, + 0x1195a12fU, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0x90000000U, + 0xf8000000U, + 0x9c000000U, + 0x76000000U, + 0xd000000U, + 0x9f800000U, + 0xc9c00000U, + 0x9b200000U, + 0x98100000U, + 0x76180000U, + 0x971c0000U, + 0xb6960000U, + 0x865f0000U, + 0x90f08000U, + 0x26294000U, + 0x2f962000U, + 0x7bdaf000U, + 0x763d0800U, + 0xad829400U, + 0xfec5a600U, + 0x27ae6700U, + 0xcf5da680U, + 0x35726740U, + 0xcceba620U, + 0x2a3d67d0U, + 0x3b8326d8U, + 0xc3c8274cU, + 0xd02306aeU, + 0x629dd741U, + 0x44568e31U, + 0x2ffa0388U, + 0xceab08aaU, + 0xfadd9410U, + 0x27b5265cU, + 0x554727c7U, + 0x1c6b86caU, + 0x83789791U, + 0x21eeae02U, + 0x85b3f3bbU, + 0x9a4880a3U, + 0x3ce54051U, + 0xa23820bcU, + 0x6f89f078U, + 0x41c388e6U, + 0xcf28d49eU, + 0x1a15063cU, + 0x6912d738U, + 0xef9e0ec6U, + 0x9bdf434eU, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0x50000000U, + 0xd8000000U, + 0x34000000U, + 0xd6000000U, + 0x8d000000U, + 0xd3800000U, + 0xea400000U, + 0xfd600000U, + 0xca100000U, + 0x74180000U, + 0x85140000U, + 0xc920000U, + 0xd9d70000U, + 0x743a8000U, + 0x3ee9c000U, + 0x585ca000U, + 0x8d707000U, + 0x11074800U, + 0x1982ec00U, + 0x6d49ba00U, + 0xc9eddb00U, + 0x44d1ba80U, + 0xdfb9dbc0U, + 0xd0a3bae0U, + 0xfb3edb90U, + 0x26613a38U, + 0x54931ba4U, + 0x2dd79aeeU, + 0xc2306b29U, + 0xe3e0523dU, + 0x53d847c3U, + 0x533dc8c0U, + 0x3a6b2c09U, + 0x5e951a34U, + 0xcaddab4cU, + 0xa6b6f2d8U, + 0xb52b3705U, + 0xcc720014U, + 0xd087005fU, + 0x40c280c2U, + 0x72adc0abU, + 0x36a0b6U, + 0x48e37085U, + 0xe557c82dU, + 0xd6f82c58U, + 0x17459a36U, + 0x6e76b45U, + 0xfc5ad2cdU, + 0xe37187c8U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0x90000000U, + 0x48000000U, + 0x64000000U, + 0xfa000000U, + 0x17000000U, + 0xdd800000U, + 0xd0c00000U, + 0x9ba00000U, + 0x34f00000U, + 0xebf80000U, + 0x92740000U, + 0xd8b20000U, + 0xc41b0000U, + 0x656f8000U, + 0x3a51c000U, + 0xc98a6000U, + 0x32c91000U, + 0xc0a7c800U, + 0xe7714400U, + 0x9e3b3e00U, + 0xa7591100U, + 0x1b093e80U, + 0x738211c0U, + 0x85c6bee0U, + 0xed23d150U, + 0xefb4dea8U, + 0x299ec134U, + 0xda11652U, + 0x1df48523U, + 0x2b75a88fU, + 0x503c54f3U, + 0x6256f694U, + 0x25875507U, + 0xcccf809fU, + 0xbda1c0c5U, + 0x65f260efU, + 0xf77d1035U, + 0x1635c858U, + 0xa35a44ecU, + 0x710cbefeU, + 0x2c8cd17dU, + 0x3c495e02U, + 0xc7e401a9U, + 0x631cf651U, + 0xc0e855e8U, + 0x369200aaU, + 0x142b009dU, + 0xc7378003U, + 0x7fd5c0cbU, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0xf0000000U, + 0x88000000U, + 0x44000000U, + 0xa6000000U, + 0x6b000000U, + 0xcd800000U, + 0x47400000U, + 0x69e00000U, + 0x62300000U, + 0xa1380000U, + 0x78bc0000U, + 0x1f20000U, + 0x3f1d0000U, + 0xfaa58000U, + 0x95d9c000U, + 0x840fa000U, + 0x60b1000U, + 0x7b02c800U, + 0xb58f3c00U, + 0x8b4a6200U, + 0x8beae100U, + 0xaf386280U, + 0x7b7e140U, + 0xf27de260U, + 0x2f5e21b0U, + 0x34ca42e8U, + 0x39a931f4U, + 0x4c5a8a4eU, + 0xfd4b0d9fU, + 0x38ed6883U, + 0xbeb42cd8U, + 0xdaf0aa6aU, + 0x9a99ddfaU, + 0x9e000abU, + 0xd2300032U, + 0xc9380042U, + 0xccbc00f9U, + 0x2ff20076U, + 0x101d00b3U, + 0x91258011U, + 0xb999c0ddU, + 0x206fa068U, + 0x237b1026U, + 0xb3dac8e6U, + 0xaf033cf0U, + 0x2b806280U, + 0xcc4be1d2U, + 0x546fe2a8U, + 0xad73216fU, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0xd0000000U, + 0xe8000000U, + 0xf4000000U, + 0x4a000000U, + 0x51000000U, + 0xae800000U, + 0xb5c00000U, + 0xb5a00000U, + 0x7a500000U, + 0x67580000U, + 0xdfdc0000U, + 0xe51a0000U, + 0x35370000U, + 0xed298000U, + 0xd09ec000U, + 0x3f766000U, + 0x23c17000U, + 0x7aa89800U, + 0x7fd44400U, + 0x1510de00U, + 0x6d359b00U, + 0x212ade80U, + 0x86929b40U, + 0xd07b5ee0U, + 0x96405b90U, + 0x30ef3e08U, + 0xd13a2b64U, + 0x6f2c2642U, + 0xc59baf35U, + 0xe3f918ecU, + 0xdb068480U, + 0xdf84bed9U, + 0xab4febbaU, + 0x3869c65eU, + 0xd3f31ff5U, + 0xa30e6033U, + 0xa38d70e4U, + 0xc54a98fcU, + 0xcb6f44d1U, + 0xd87b5e47U, + 0xf2405bc6U, + 0xf2ef3e4eU, + 0xa43a2bc2U, + 0x63ac26a3U, + 0xd55baf8bU, + 0xb2d91846U, + 0x459684a6U, + 0xa3fcbee1U, + 0xbb03ebbeU, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0xb0000000U, + 0xf8000000U, + 0x34000000U, + 0x76000000U, + 0x4d000000U, + 0x88800000U, + 0x93c00000U, + 0x9e200000U, + 0x5fd00000U, + 0x40d80000U, + 0x9b540000U, + 0x511a0000U, + 0xde710000U, + 0x7b4e8000U, + 0x7de5c000U, + 0xd9fea000U, + 0x9b0c7000U, + 0x558bf800U, + 0xb34f4400U, + 0x71e0e600U, + 0x7bf6fb00U, + 0x1002e680U, + 0x6803fbc0U, + 0x9c0e6660U, + 0xa033b70U, + 0xf7044698U, + 0x878b8b44U, + 0x20479eeeU, + 0xc8697f09U, + 0xdab02066U, + 0x12e9b09aU, + 0x1a755878U, + 0xd5433405U, + 0x54eb1ed8U, + 0x6f79bf2eU, + 0x89c200f1U, + 0x1250004U, + 0x4454809cU, + 0x6a94c044U, + 0xa43020d5U, + 0xc29b0c8U, + 0xecd55890U, + 0xa953345dU, + 0x72131e5fU, + 0x9ffdbf63U, + 0xee000088U, + 0x90000d9U, + 0xe68000d1U, + 0x5ac0001aU, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0x70000000U, + 0x68000000U, + 0x44000000U, + 0x32000000U, + 0x19000000U, + 0x5d800000U, + 0x52400000U, + 0x2b600000U, + 0x5c100000U, + 0xd9980000U, + 0x7dc0000U, + 0xcab20000U, + 0xa5a50000U, + 0x14bb8000U, + 0x6aa3c000U, + 0xf232e000U, + 0x64667000U, + 0xfa902800U, + 0x3752cc00U, + 0x7f7c9a00U, + 0xf1802b00U, + 0x64471a80U, + 0xe063eb40U, + 0x6895fa60U, + 0xbe559b30U, + 0x3afdd208U, + 0x8fcb5774U, + 0x392b483aU, + 0x97727c6dU, + 0xf585d2e7U, + 0xb647577fU, + 0x896148acU, + 0x5d1b7c13U, + 0xa814527dU, + 0x239d9760U, + 0xcada288dU, + 0xbd3bcca8U, + 0xc2ed1afeU, + 0x145aebfdU, + 0x4ffc7a40U, + 0x44435bfaU, + 0x306cb2afU, + 0x9092e7e9U, + 0xe25b80efU, + 0x24f3c0e9U, + 0xe0cae048U, + 0x4faa7096U, + 0x81ba2843U, + 0xd12bccfaU, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0x70000000U, + 0x28000000U, + 0xcc000000U, + 0x4a000000U, + 0x63000000U, + 0x6e800000U, + 0x26400000U, + 0x3ee00000U, + 0xa1700000U, + 0x4bf80000U, + 0x5bb40000U, + 0x845a0000U, + 0x94ad0000U, + 0xf5978000U, + 0x198f4000U, + 0x26c1e000U, + 0x1da2d000U, + 0xa81fb800U, + 0xe94c9c00U, + 0xaa619200U, + 0x2c37d500U, + 0xa7961280U, + 0xbe8895c0U, + 0x5e4ff260U, + 0x4aee45b0U, + 0x7f724a48U, + 0x86fbd97cU, + 0xd03e5802U, + 0xe59e4c1fU, + 0x81862aecU, + 0x22cf49f9U, + 0xebad80b2U, + 0xa91240e8U, + 0x28ce60b1U, + 0xa8a990cfU, + 0x579c58b7U, + 0x56874c84U, + 0x724baa4eU, + 0x70ed0914U, + 0x347be0f2U, + 0x247fd02dU, + 0xbc703821U, + 0xb877dca8U, + 0x4e7a72b2U, + 0x4f780556U, + 0x8efe2acdU, + 0x8c3b4951U, + 0xf7978000U, + 0x68f40beU, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0xd0000000U, + 0x98000000U, + 0x6c000000U, + 0x16000000U, + 0x45000000U, + 0x5a800000U, + 0x77c00000U, + 0x93e00000U, + 0xc9d00000U, + 0x5580000U, + 0xf7940000U, + 0x1ef60000U, + 0x70eb0000U, + 0x7e5a8000U, + 0x2c184000U, + 0x21b72000U, + 0xe3cc7000U, + 0xd9e55800U, + 0xf2d16400U, + 0x3ed5fa00U, + 0x38dd5700U, + 0xc5d77a80U, + 0x235117c0U, + 0xda965aa0U, + 0x60766710U, + 0xe5298238U, + 0xd2bf437cU, + 0xec4b582eU, + 0x4cae6439U, + 0xaaf97af4U, + 0xeaee178eU, + 0xdd5adac7U, + 0x7b952757U, + 0xf8fc227aU, + 0x7def731cU, + 0xd0d720eaU, + 0x21dc7045U, + 0xe15d5858U, + 0x3595649bU, + 0xf1fbfa90U, + 0xe1625716U, + 0x7a1bfac7U, + 0x84b25776U, + 0x4943fad4U, + 0xe626575cU, + 0x9535fab3U, + 0x8d0d5738U, + 0x6e8f7ab3U, + 0x2dc5171bU, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0xd0000000U, + 0xb8000000U, + 0x54000000U, + 0xce000000U, + 0x93000000U, + 0xa1800000U, + 0xe3400000U, + 0x76600000U, + 0x13b00000U, + 0xc8380000U, + 0x66740000U, + 0xfa920000U, + 0x2fef0000U, + 0x4fc8000U, + 0xc05dc000U, + 0x8ecb2000U, + 0x7f211000U, + 0x30d18800U, + 0xd50f7c00U, + 0xce88ba00U, + 0xcdd100U, + 0x4c2c3a80U, + 0x215411c0U, + 0x5e4d1ae0U, + 0x54ee0110U, + 0x89721258U, + 0xd913bd44U, + 0x75ad0896U, + 0xe612bcd7U, + 0xee239ab7U, + 0xe85cc1f4U, + 0xc2c5b221U, + 0x552f6df7U, + 0x5d7a031U, + 0xb8cd015U, + 0x1642a83dU, + 0xc8ea6c3dU, + 0x1b733236U, + 0xb819ad5dU, + 0x652a0057U, + 0xaddb0046U, + 0x878e80f7U, + 0x5c42c065U, + 0x2defa072U, + 0x7df8d04bU, + 0x34d0a8c0U, + 0x63056c51U, + 0x698fb2b3U, + 0xbf446dacU, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0x30000000U, + 0xb8000000U, + 0x4000000U, + 0x3e000000U, + 0x3b000000U, + 0x2e800000U, + 0x80400000U, + 0x5a00000U, + 0x8df00000U, + 0x51780000U, + 0x88340000U, + 0xb2160000U, + 0x1c250000U, + 0x61368000U, + 0xf592c000U, + 0x1bef2000U, + 0x43559000U, + 0x6a0bf800U, + 0x6d0e3c00U, + 0xb980c600U, + 0x1cc2c900U, + 0x3cee4680U, + 0xa7d409c0U, + 0x774f66a0U, + 0x492099f0U, + 0x1cbc1e18U, + 0xf75d65f4U, + 0x2c0b7826U, + 0x7209fccfU, + 0x99016688U, + 0x1f81998fU, + 0x13c49e2dU, + 0x946ea5f2U, + 0x189cd8e4U, + 0x626fac4eU, + 0x7f9d3e50U, + 0x66e9f5adU, + 0x72d80081U, + 0xcac40013U, + 0x6bee00a9U, + 0x1b5100a9U, + 0x7e008031U, + 0xdb07c0ceU, + 0x3e81a0c3U, + 0x84350f9U, + 0xb9aad839U, + 0xb7faac81U, + 0x5473be4eU, + 0x9dbf35fbU, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0x10000000U, + 0x38000000U, + 0xac000000U, + 0xda000000U, + 0x3b000000U, + 0x73800000U, + 0xa400000U, + 0xbd600000U, + 0x95100000U, + 0x8d980000U, + 0xac540000U, + 0x77e0000U, + 0xdd0f0000U, + 0x6a848000U, + 0x4ec24000U, + 0xea5e000U, + 0x21375000U, + 0x7a6be800U, + 0x64958c00U, + 0xa0ddfa00U, + 0x90b01b00U, + 0x37277a80U, + 0xe87d5bc0U, + 0xb8861a20U, + 0x31c84bd0U, + 0x93281218U, + 0x767a977cU, + 0x6d8600c2U, + 0x1f4b0047U, + 0x33e28031U, + 0x25d9408dU, + 0xe63f602cU, + 0x8bea1008U, + 0x49d28899U, + 0x9c349c08U, + 0xa0edf244U, + 0x25dc7eeU, + 0x3a75e8ddU, + 0xc78a8c6aU, + 0xac417a4eU, + 0xc4665b0eU, + 0x619c9aa1U, + 0x16550bbaU, + 0x8c717244U, + 0x868b8770U, + 0xf4ce0888U, + 0x85a2dc4bU, + 0x7ab612aaU, + 0xe425973fU, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0x50000000U, + 0xf8000000U, + 0xe4000000U, + 0x62000000U, + 0xdf000000U, + 0x8d800000U, + 0xfd400000U, + 0x1600000U, + 0x2bd00000U, + 0xe5580000U, + 0xd3940000U, + 0xb2b60000U, + 0x9a830000U, + 0xdcc48000U, + 0xf226c000U, + 0xdbb2e000U, + 0xe2021000U, + 0x1f014800U, + 0xad8edc00U, + 0xad4fea00U, + 0xf96a2700U, + 0xcfdd6a80U, + 0x875fe7c0U, + 0xc930aa0U, + 0x3f3f3790U, + 0x67cea258U, + 0xdda4fb74U, + 0xd9f2803aU, + 0x3ee5c0abU, + 0x31966037U, + 0xadb4d096U, + 0x370ba816U, + 0x7188ccedU, + 0xb40a20bU, + 0x1463fbdaU, + 0x6558005bU, + 0x1394005fU, + 0x92b600aaU, + 0xca8300c0U, + 0x24c480a8U, + 0x1626c0bdU, + 0xb9b2e0c8U, + 0x3d0210f8U, + 0x92814838U, + 0x50cedcb9U, + 0xac2feaa7U, + 0xd2ba271aU, + 0x2a856a14U, + 0x54cbe7ffU, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0x10000000U, + 0x98000000U, + 0xd4000000U, + 0x6e000000U, + 0x1f000000U, + 0xf800000U, + 0x4ac00000U, + 0x3de00000U, + 0x2b500000U, + 0x47d80000U, + 0x709c0000U, + 0x9ab60000U, + 0x36870000U, + 0xf6468000U, + 0x72afc000U, + 0xa5732000U, + 0xdebd000U, + 0xe35ea800U, + 0xabd14400U, + 0xda9b7a00U, + 0x73babf00U, + 0xf20bfa80U, + 0xdd027f40U, + 0x1a865a20U, + 0xbc4a6f50U, + 0x2ba5d2b8U, + 0xe9fbfb84U, + 0x6aa880d6U, + 0x3174c09bU, + 0xc3e3a059U, + 0xec531091U, + 0x3c5308c4U, + 0x445954aaU, + 0x2058f21bU, + 0xc65b2b0eU, + 0x955ea86fU, + 0x20d14467U, + 0x1b1b7ab6U, + 0x367abf0fU, + 0x586bfa96U, + 0x68927fadU, + 0xebe5a64U, + 0xf8866fadU, + 0xf94bd2ddU, + 0xe520fb69U, + 0x3bb80085U, + 0x5e0c00b8U, + 0xd70e00cfU, + 0xe38b0058U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0x90000000U, + 0x28000000U, + 0x84000000U, + 0x9a000000U, + 0xfd000000U, + 0xd5800000U, + 0xc5c00000U, + 0x5b600000U, + 0x3fb00000U, + 0x9d380000U, + 0x98740000U, + 0x37520000U, + 0x9c4b0000U, + 0xb0a18000U, + 0xdbd5c000U, + 0xb6026000U, + 0x2300b000U, + 0xd2856800U, + 0x7d4e7400U, + 0x6329e200U, + 0x251f0900U, + 0x63e26280U, + 0xc7f5c9c0U, + 0xe79382e0U, + 0xf6abb950U, + 0x40d50ac8U, + 0xc880bdd4U, + 0x4043e052U, + 0xd6a57029U, + 0x70df0807U, + 0x108ac42cU, + 0x7c468a3cU, + 0xe0ae7d83U, + 0x93d80009U, + 0xa204005fU, + 0x910a0044U, + 0xab8f006eU, + 0x32cb8069U, + 0x5beac064U, + 0xabf1e036U, + 0x999e7001U, + 0x1a68836U, + 0x405b04dcU, + 0x5cceeaecU, + 0x44e1cd9fU, + 0x4f76e879U, + 0x7d0b4e4U, + 0xd00a0262U, + 0x880a7965U, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0xb0000000U, + 0x8000000U, + 0x24000000U, + 0xee000000U, + 0xcb000000U, + 0x1a800000U, + 0xdb400000U, + 0xd5600000U, + 0xdab00000U, + 0xf5380000U, + 0x67f40000U, + 0xf5a0000U, + 0xa9c10000U, + 0x5a298000U, + 0x9d7c000U, + 0x708f2000U, + 0x6e4c9000U, + 0x5cefb800U, + 0x87754c00U, + 0x39157a00U, + 0x692aa100U, + 0x1f5efa80U, + 0x31c861c0U, + 0x26225a60U, + 0x7bd23170U, + 0x798b4268U, + 0x75cc2d54U, + 0xb826a086U, + 0x58db509fU, + 0xf700981cU, + 0x4889dc84U, + 0x8242c229U, + 0x76ebedeeU, + 0x12718054U, + 0xe093c06dU, + 0x8ced20d5U, + 0xff79907fU, + 0xf51c387dU, + 0x13238c39U, + 0x3253da3eU, + 0xc441f162U, + 0x9e662e3U, + 0xbef5bd52U, + 0x6cda98faU, + 0x8108dc23U, + 0xff8b4217U, + 0xeacc2d42U, + 0xa4a6a035U, + 0xdc9b5022U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x70000000U, + 0x68000000U, + 0x9c000000U, + 0x6e000000U, + 0x9f000000U, + 0xd3800000U, + 0x1c400000U, + 0xcea00000U, + 0xd7f00000U, + 0xc9780000U, + 0xa7bc0000U, + 0x41da0000U, + 0x134d0000U, + 0x45238000U, + 0x5fbe4000U, + 0x85d6a000U, + 0xe94c5000U, + 0x5829e800U, + 0x1532ec00U, + 0x49106600U, + 0x862e2900U, + 0xc231e680U, + 0x16916940U, + 0xec66c6e0U, + 0x67927930U, + 0xe0e00e88U, + 0xc85f85acU, + 0x420ca0e6U, + 0xb9015033U, + 0xc08a68b5U, + 0xb9ccac6fU, + 0xb9e6c61bU, + 0x38d279c8U, + 0xf3c00e3aU, + 0xecef85b3U, + 0xfe54a075U, + 0x490d504fU, + 0xe888680bU, + 0x45cdacd0U, + 0xa7e7464eU, + 0xcfdd3901U, + 0xbc4f2ee4U, + 0x9ea09573U, + 0xaff0682cU, + 0x4d71acdeU, + 0x3dbd4659U, + 0x2cd039f0U, + 0x31ccae31U, + 0x15eed515U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x50000000U, + 0xa8000000U, + 0xbc000000U, + 0x66000000U, + 0x3b000000U, + 0x1b800000U, + 0x66c00000U, + 0x74600000U, + 0xfb00000U, + 0x51780000U, + 0x111c0000U, + 0xf4aa0000U, + 0xd70000U, + 0x25418000U, + 0x76a04000U, + 0x39d12000U, + 0x47c31000U, + 0x12eae800U, + 0x79f9a400U, + 0xa05bf200U, + 0x1804e100U, + 0x40ad280U, + 0x1207f140U, + 0xb1003ae0U, + 0xee8e5510U, + 0xfa43c848U, + 0x6f26b4acU, + 0x261b1aaeU, + 0x312a45d7U, + 0x2910a055U, + 0xc0a350a1U, + 0xeadbc869U, + 0x804ab402U, + 0x42291a96U, + 0x9e9145c4U, + 0x8632037U, + 0x49b81065U, + 0x5a7968fbU, + 0xf292e451U, + 0x86615234U, + 0xaeb0b182U, + 0x77f09ab9U, + 0x75d0522U, + 0x55800084U, + 0xa1c00050U, + 0x69e0002fU, + 0x27000e6U, + 0x969800b3U, + 0xc46c0035U, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0x30000000U, + 0xf8000000U, + 0x64000000U, + 0xa2000000U, + 0x73000000U, + 0xca800000U, + 0x3bc00000U, + 0x5ca00000U, + 0x1c700000U, + 0x33b80000U, + 0x15140000U, + 0xce6a0000U, + 0x5d510000U, + 0x9c8a8000U, + 0x2c6c000U, + 0xa92de000U, + 0xe3385000U, + 0x19d63800U, + 0x2a4a6400U, + 0xc1e2fe00U, + 0xa51d8100U, + 0xf66f1e80U, + 0xd955d1c0U, + 0xe812660U, + 0x89cbb5f0U, + 0x7a9d898U, + 0x7af73494U, + 0x367446baU, + 0xfcb02527U, + 0xc9928010U, + 0xeca2c0ecU, + 0x247fe0d4U, + 0xb7bd5064U, + 0x8716b85dU, + 0x456da456U, + 0xf3dd9e03U, + 0x5471127U, + 0x2d66c62bU, + 0x7fd2e5b1U, + 0xeb4d60c7U, + 0x506f9050U, + 0xf8515807U, + 0xaf04f48aU, + 0x2c8126e5U, + 0x3acbb526U, + 0x2d29d85aU, + 0x713734dcU, + 0x92d446e6U, + 0x84c02501U, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0x10000000U, + 0xf8000000U, + 0xc000000U, + 0xca000000U, + 0x53000000U, + 0xef800000U, + 0x7ac00000U, + 0xde600000U, + 0x8b100000U, + 0xc5d80000U, + 0x3dbc0000U, + 0x9fa60000U, + 0xeff0000U, + 0x520c8000U, + 0xaf0a4000U, + 0x6d89e000U, + 0xcdc85000U, + 0xfe8e800U, + 0x64dca400U, + 0x6d301200U, + 0x70ebcb00U, + 0x1159f280U, + 0x1cf39b40U, + 0x5d091a20U, + 0xd2833f50U, + 0x584708d8U, + 0xce2bf45cU, + 0xa1347a92U, + 0x5aed2f4fU, + 0xf258005dU, + 0x1b7c0065U, + 0xd3c6005bU, + 0xcaef00b2U, + 0x4a54800cU, + 0xb77640c0U, + 0x9cfe04eU, + 0x61e750ebU, + 0xa9dc68e7U, + 0x7bae4e6U, + 0x84a7f27eU, + 0x5709be7U, + 0x16c39a75U, + 0xe4667f7bU, + 0x901a68b0U, + 0xce55e487U, + 0x79737279U, + 0xd4c6dbbbU, + 0xf36c7afeU, + 0x51912f6cU, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0x30000000U, + 0x48000000U, + 0x94000000U, + 0xd6000000U, + 0xa1000000U, + 0x65800000U, + 0x7dc00000U, + 0x5fe00000U, + 0xd6b00000U, + 0x59780000U, + 0xf9940000U, + 0x1fa20000U, + 0xb8990000U, + 0x8a298000U, + 0xed52c000U, + 0x71cea000U, + 0xa5e13000U, + 0x1db3a800U, + 0xeff9d400U, + 0xded99a00U, + 0x6d0e1900U, + 0xff8f3a80U, + 0x86cb29c0U, + 0xa16692e0U, + 0x65fffdf0U, + 0xfdd488a8U, + 0x1f8a2464U, + 0x76c492feU, + 0x8966fd05U, + 0xc1fd087bU, + 0x63d8e488U, + 0x2a8a328cU, + 0xc547cd3aU, + 0x55aea0abU, + 0xfb913006U, + 0xc8aba8afU, + 0x2c1dd406U, + 0xea639ae1U, + 0x13731945U, + 0xba9cbaedU, + 0x5d24e947U, + 0x79dbb23aU, + 0x11810dd3U, + 0x5bc2005aU, + 0xd6e9002dU, + 0x17318011U, + 0xbab6c015U, + 0x9374a015U, + 0x7a9c30dbU, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0x90000000U, + 0x8000000U, + 0x6c000000U, + 0x7a000000U, + 0x77000000U, + 0x74800000U, + 0x9c00000U, + 0xabe00000U, + 0xff900000U, + 0x51580000U, + 0xa6340000U, + 0x4c6a0000U, + 0x54db0000U, + 0x1e7f8000U, + 0x61cb4000U, + 0x97e3e000U, + 0x6d911000U, + 0xda561800U, + 0xa0b2e400U, + 0x5ea60a00U, + 0xf1be0b00U, + 0x9f2fea80U, + 0xeff41bc0U, + 0xc7867260U, + 0xdb4dbf50U, + 0xd7239868U, + 0xa3f2a43cU, + 0xcd826a92U, + 0x34405b8bU, + 0xc7a81286U, + 0xbc38efd2U, + 0x6b63e0c5U, + 0xc85110d1U, + 0xebb61866U, + 0xb822e4acU, + 0x737e0ac4U, + 0x324a0b16U, + 0x2a5ea8dU, + 0x33bf1b2dU, + 0xfc21f27aU, + 0x1572fffeU, + 0xa74a78c1U, + 0x6528b4c9U, + 0x58f3f29cU, + 0x530dff45U, + 0x4287f8cfU, + 0x74ccf459U, + 0x306592caU, + 0xe6dcafd8U, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0x90000000U, + 0x8000000U, + 0x7c000000U, + 0x5a000000U, + 0x33000000U, + 0xb8800000U, + 0x92c00000U, + 0x2fe00000U, + 0xafd00000U, + 0xdc180000U, + 0x447c0000U, + 0x3be60000U, + 0xf9d70000U, + 0x8d1b8000U, + 0x2bf24000U, + 0x3fa4e000U, + 0x51f65000U, + 0xdca69800U, + 0x417bd400U, + 0xa260ba00U, + 0x3c9d7f00U, + 0x42ba5a80U, + 0x2002f40U, + 0xa7014220U, + 0xae8ebbd0U, + 0x63c69828U, + 0xd06bd4acU, + 0xa398baf2U, + 0x8317fdfU, + 0x4fc45a6aU, + 0x626b2f9dU, + 0xdc9cc2edU, + 0x72bbfbdeU, + 0x9a01f863U, + 0xd303c4d5U, + 0x8884c23aU, + 0xac7fbcdU, + 0x5be7f800U, + 0x89d4c40bU, + 0xb51f42e4U, + 0xcff5bb1dU, + 0x11a318adU, + 0x44f2947eU, + 0xd21da73U, + 0x58326f9dU, + 0xa7c5a266U, + 0x2e68eb47U, + 0x1e98009bU, + 0x35bc005fU, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0x50000000U, + 0xf8000000U, + 0x1c000000U, + 0x62000000U, + 0x77000000U, + 0xf3800000U, + 0x93c00000U, + 0xcb600000U, + 0x3500000U, + 0x19980000U, + 0xf4740000U, + 0x6a0000U, + 0xe2d70000U, + 0xb55c8000U, + 0x789f4000U, + 0x16f26000U, + 0x392f9000U, + 0xa4f6e800U, + 0x762c3400U, + 0xab7bd200U, + 0xd7ecaf00U, + 0xef1bb280U, + 0x3b303fc0U, + 0x743da60U, + 0x73204b90U, + 0xf7fce898U, + 0x1bab348cU, + 0x7dbf527aU, + 0x6007ef3bU, + 0x9003d2e9U, + 0x1808af38U, + 0x4c09b23aU, + 0x9a033f77U, + 0x6b0d5ab9U, + 0x918c0be8U, + 0xe4c00828U, + 0x38e8e4eeU, + 0x90955a25U, + 0xd2f80bc6U, + 0xf72a0881U, + 0x19ffe498U, + 0x16a9daa4U, + 0xb5374b74U, + 0x9a406840U, + 0xa3a474c2U, + 0x41b53205U, + 0xb20c7fd0U, + 0x4f073a72U, + 0xf879b87U, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0x10000000U, + 0x48000000U, + 0xbc000000U, + 0x2000000U, + 0xdf000000U, + 0xb8800000U, + 0xb1c00000U, + 0xc8600000U, + 0x77d00000U, + 0x8f180000U, + 0xcefc0000U, + 0xc5620000U, + 0xf85b0000U, + 0xca538000U, + 0xed524000U, + 0x51dd6000U, + 0x6151000U, + 0xe771d800U, + 0x49212400U, + 0x12787200U, + 0xc2a57700U, + 0xb13f1280U, + 0xc8076740U, + 0xfc074a60U, + 0xe2030350U, + 0xcf0bd828U, + 0xf08624ecU, + 0xdc9f2aaU, + 0xca6c3773U, + 0xa8d1f272U, + 0x37903792U, + 0x7f33f212U, + 0xd0b3749U, + 0x8f8072d7U, + 0x454977e4U, + 0x23a512a8U, + 0x94b06772U, + 0xfe4eca12U, + 0x2d264359U, + 0xa47f3804U, + 0x43a674e6U, + 0xc4b4ca29U, + 0x564143d9U, + 0x812eb854U, + 0xee7f345eU, + 0x20a22a56U, + 0x7e3a1391U, + 0x38800036U, + 0xf1c0000fU, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0x30000000U, + 0xa8000000U, + 0x94000000U, + 0xde000000U, + 0x11000000U, + 0xf1800000U, + 0xb8c00000U, + 0x95200000U, + 0xad700000U, + 0x94380000U, + 0x71d40000U, + 0x4d8e0000U, + 0x32c50000U, + 0xfa238000U, + 0x7df0c000U, + 0x75762000U, + 0xc831b000U, + 0xabdde800U, + 0x1a888400U, + 0xee424600U, + 0xf962c900U, + 0x9f17e680U, + 0xada3b9c0U, + 0xb83c2e20U, + 0x63da8df0U, + 0x1e838088U, + 0xa840c064U, + 0xd46e20d6U, + 0x2495b0b5U, + 0xda6be887U, + 0xcd99843dU, + 0x87efc6baU, + 0xa7570904U, + 0xe1c24670U, + 0xa0a2c9a4U, + 0xf3b7e66cU, + 0x1c13b91eU, + 0xcf242eabU, + 0x3a7e8d5aU, + 0xe8b58094U, + 0x4291c0f2U, + 0x763a003U, + 0x7e1070a2U, + 0x54264822U, + 0xa4fcf4bbU, + 0x80f20ef4U, + 0x36ff3d3bU, + 0x13f068f4U, + 0xc7d44a1U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0x70000000U, + 0x88000000U, + 0x2c000000U, + 0x66000000U, + 0x75000000U, + 0xe3800000U, + 0x2fc00000U, + 0xbaa00000U, + 0xeed00000U, + 0xea980000U, + 0xf3f40000U, + 0xd1820000U, + 0x58cd0000U, + 0x6298000U, + 0x419d4000U, + 0x61742000U, + 0x47c7f000U, + 0x26a50800U, + 0x60da9400U, + 0xc390ee00U, + 0xfe79fb00U, + 0xa74d4e80U, + 0x67e34bc0U, + 0xb23c66e0U, + 0xf22e2fb0U, + 0x53918068U, + 0xc679409cU, + 0x634e208eU, + 0x5deef029U, + 0x2936880dU, + 0x48aed476U, + 0xf9d74e3fU, + 0x261a4bb4U, + 0xd4b7e633U, + 0x766e6ff2U, + 0x8af42061U, + 0x8407f0f5U, + 0x9a0508d5U, + 0x8b0a94b6U, + 0x4288ee58U, + 0xe4dfb07U, + 0xaa6f4e44U, + 0xa4fe4bfcU, + 0xbd0de63dU, + 0x6f876fa8U, + 0x59c7a07aU, + 0x37a3b078U, + 0xa95aa863U, + 0x8f5d24e9U, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0x90000000U, + 0xb8000000U, + 0x9c000000U, + 0xc6000000U, + 0xb5000000U, + 0xab800000U, + 0x79400000U, + 0xc600000U, + 0x78b00000U, + 0xe2780000U, + 0xc35c0000U, + 0x65860000U, + 0x38470000U, + 0xe5e88000U, + 0x7efb4000U, + 0x8e962000U, + 0x4022f000U, + 0x9f538800U, + 0x438d7c00U, + 0xbd4b6a00U, + 0x66689900U, + 0x23b5ca80U, + 0xd8f12940U, + 0x4b906220U, + 0x63aea5d0U, + 0x52108098U, + 0xade7404cU, + 0x2af020deU, + 0x5c95f0b9U, + 0x872308d5U, + 0x63da3c50U, + 0x7e434a61U, + 0x10e169b4U, + 0x7570c2c5U, + 0x67dc1582U, + 0xf443a8abU, + 0x7be88c53U, + 0x67f0627aU, + 0xcb1ea589U, + 0xa86880f0U, + 0x62bb406fU, + 0x31762039U, + 0x4dd2f021U, + 0xf4b88b3U, + 0xd1617cf8U, + 0x57356a29U, + 0x513399f3U, + 0x43b4a79U, + 0x9fbd691fU, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0x70000000U, + 0xe8000000U, + 0xc4000000U, + 0x3e000000U, + 0x47000000U, + 0xf4800000U, + 0x83c00000U, + 0xdc600000U, + 0xb5d00000U, + 0x74980000U, + 0x38340000U, + 0x23060000U, + 0x7a890000U, + 0xccb8000U, + 0x9ce5c000U, + 0xe0112000U, + 0x2bf3d000U, + 0x476cd800U, + 0x935d0400U, + 0x6a57b200U, + 0x19d32700U, + 0x4e951280U, + 0x613137c0U, + 0xe08eeaa0U, + 0xe5c6e3b0U, + 0x97660048U, + 0xcb590074U, + 0x665380f6U, + 0x93d1c0f3U, + 0xdf972022U, + 0x16bad000U, + 0xa9c75816U, + 0xfd68c471U, + 0xa5e925cU, + 0x89d4f70eU, + 0xf69fca0bU, + 0x3d353337U, + 0xf28ad8fbU, + 0x58c4046eU, + 0x1ae43207U, + 0xfb12e779U, + 0xcd7a32fdU, + 0x79afe767U, + 0xc2b7b2a7U, + 0xefc327d5U, + 0xc66d1203U, + 0x9cd537a9U, + 0x5f10ea1aU, + 0x637be323U, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0xb0000000U, + 0x28000000U, + 0x14000000U, + 0x92000000U, + 0xbd000000U, + 0xa0800000U, + 0xe400000U, + 0x94e00000U, + 0xe6500000U, + 0x5d980000U, + 0x33bc0000U, + 0x7d460000U, + 0x5f650000U, + 0x5f938000U, + 0x56b0c000U, + 0x41c6e000U, + 0x672db000U, + 0xcc79f800U, + 0xb960bc00U, + 0x20946200U, + 0x733daf00U, + 0x63070280U, + 0x5385df40U, + 0x85cb9a20U, + 0x8d2813f0U, + 0x5d78e008U, + 0x7e4b0e4U, + 0x3dd4781aU, + 0x7c597c19U, + 0x49f021aU, + 0x8939dfa7U, + 0x6a0d9a26U, + 0xd10d1315U, + 0x1e8b6049U, + 0xad44702bU, + 0x276a983cU, + 0x7398cc2eU, + 0x48b8fac5U, + 0x52c06393U, + 0xfcac78d1U, + 0x4db57c9dU, + 0x3e410246U, + 0xfce0dfd0U, + 0x52581accU, + 0x7f98d32cU, + 0xa6be001dU, + 0xc9c900b8U, + 0xc32d80ccU, + 0x7679c00eU, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0xf0000000U, + 0x68000000U, + 0xb4000000U, + 0xfa000000U, + 0xcf000000U, + 0xb9800000U, + 0x67c00000U, + 0x27600000U, + 0x3d700000U, + 0xf8380000U, + 0xeb1c0000U, + 0x61c60000U, + 0x16610000U, + 0x79f38000U, + 0xad7ac000U, + 0x803e6000U, + 0x671e1000U, + 0xb7c1c800U, + 0xff669400U, + 0x41775200U, + 0x4632bd00U, + 0xb61cb280U, + 0xa3476d40U, + 0x32289a20U, + 0xf65929b0U, + 0xee66048U, + 0x22b21004U, + 0x535fc832U, + 0x6b948bU, + 0x70fad22bU, + 0xc5f57d1cU, + 0xf37752e4U, + 0x8d32bdd5U, + 0x3d9cb246U, + 0x4f876d01U, + 0x3ec89af6U, + 0xd7e929c4U, + 0x923e6052U, + 0x5c1e109bU, + 0x5441c813U, + 0xa7a69430U, + 0xb7975242U, + 0xa882bd14U, + 0x9344b26aU, + 0xba2b6de0U, + 0x12569a67U, + 0x6ce4290dU, + 0x31b3e04aU, + 0xa4d9d07aU, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0x50000000U, + 0xc8000000U, + 0xec000000U, + 0x42000000U, + 0x1f000000U, + 0x77800000U, + 0xe5c00000U, + 0xe8600000U, + 0xa9500000U, + 0x70180000U, + 0x9c340000U, + 0x71c20000U, + 0x1e6f0000U, + 0xb05f8000U, + 0xe69f4000U, + 0x9b726000U, + 0xf8e91000U, + 0x8f1da800U, + 0x7bbf5400U, + 0x3c04e200U, + 0x4a062f00U, + 0x930b0280U, + 0x658f7fc0U, + 0x32c34ae0U, + 0x73e27b90U, + 0xe926028U, + 0x8779107cU, + 0x42e5a8eaU, + 0xe41b54a3U, + 0x6a3ee2fdU, + 0x68cd2f16U, + 0x88ee825dU, + 0xb71b3f93U, + 0x6fb4aa0fU, + 0xa0f2b40U, + 0x330028c1U, + 0x558f1457U, + 0xaac9025bU, + 0x57e07fc7U, + 0xa09cca27U, + 0xda7d3bd6U, + 0x2a600099U, + 0x765000a6U, + 0x6798006fU, + 0x29f400a5U, + 0x51a20043U, + 0x5b3f008cU, + 0x82478019U, + 0x65ab40c2U, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0xd0000000U, + 0xd8000000U, + 0xf4000000U, + 0x2e000000U, + 0x73000000U, + 0x1e800000U, + 0x67400000U, + 0x9f600000U, + 0xde700000U, + 0x7ab80000U, + 0x2f140000U, + 0xb7ce0000U, + 0x3b2b0000U, + 0xf79a8000U, + 0x3f87c000U, + 0xc8cc2000U, + 0xefa09000U, + 0xb5d93800U, + 0xe9652c00U, + 0x997d2a00U, + 0xea328500U, + 0xeb5d8a80U, + 0xee2ad5c0U, + 0x761c1220U, + 0x3c43a910U, + 0xbdeea0f8U, + 0x1b3350e4U, + 0x9cdb1856U, + 0x6aeebc57U, + 0x33be92e8U, + 0xdc9069e0U, + 0x150c802fU, + 0x2188c00aU, + 0xd3c0a05bU, + 0xad285046U, + 0x99988aU, + 0x70d7c3eU, + 0xf084b214U, + 0xb44ff958U, + 0x51e13816U, + 0x61312c4cU, + 0x11d32ab5U, + 0xdf698537U, + 0xbe7f0ac6U, + 0xab915f7U, + 0x271e327eU, + 0x9bc839b5U, + 0xe12d1815U, + 0xaa91bc84U, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0xf0000000U, + 0x28000000U, + 0xec000000U, + 0xca000000U, + 0x51000000U, + 0x17800000U, + 0xf1c00000U, + 0x65200000U, + 0xc7500000U, + 0xd2180000U, + 0xcc740000U, + 0x524a0000U, + 0x5aed0000U, + 0x35738000U, + 0x69cb4000U, + 0x812ce000U, + 0xf1597000U, + 0x911fc800U, + 0x4efdf400U, + 0x920cf600U, + 0x55049b00U, + 0xd1819680U, + 0x9acfabc0U, + 0xbab3e60U, + 0xcd1d6f30U, + 0x8cff6048U, + 0x3f0230dcU, + 0x508b2802U, + 0xb540844dU, + 0xce613ef5U, + 0xa6306f4cU, + 0x3cace038U, + 0x619970a7U, + 0x2bbfc840U, + 0x646df40aU, + 0xc734f6cdU, + 0xe3209bbdU, + 0x8c5396ffU, + 0xac96ab6eU, + 0x1e32be91U, + 0xc8ab2f03U, + 0x8f980008U, + 0xacb400cdU, + 0xc0ea0052U, + 0x9c7d006bU, + 0xaa4b8075U, + 0x8eef4097U, + 0xcb7ee0c5U, + 0x36c0700cU, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0xb0000000U, + 0xf8000000U, + 0x3c000000U, + 0x4e000000U, + 0x19000000U, + 0x56800000U, + 0x7e400000U, + 0x65200000U, + 0xa7500000U, + 0xe2780000U, + 0xb52c0000U, + 0xf5e0000U, + 0x36790000U, + 0x8f288000U, + 0x9c524000U, + 0xbfe2000U, + 0xf0edf000U, + 0xc8b6b800U, + 0xe14cac00U, + 0xaea44600U, + 0x5d9e9f00U, + 0x1e12fe80U, + 0xc0d23340U, + 0x5eb6b820U, + 0x344cacf0U, + 0xee244658U, + 0xb6de9f8cU, + 0x9bb2fe36U, + 0x3cc23365U, + 0xc16eb838U, + 0x4170ac97U, + 0x30a2466bU, + 0xec9b9f55U, + 0x9c9c7eb1U, + 0x84957377U, + 0xa89e18d5U, + 0xae9a1c14U, + 0x739c5eebU, + 0x571183ffU, + 0x7e582035U, + 0x54f8f01bU, + 0xdb603896U, + 0x2277ec45U, + 0x552ae62dU, + 0x1f5d2ff3U, + 0x7e7c667dU, + 0x4b266fbaU, + 0xee52c618U, + 0x5cf5dfe8U, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0x90000000U, + 0x98000000U, + 0x34000000U, + 0xbe000000U, + 0x59000000U, + 0xff800000U, + 0x1fc00000U, + 0xae600000U, + 0xb7700000U, + 0x1180000U, + 0xc26c0000U, + 0xdd7e0000U, + 0xd61b0000U, + 0x6cec8000U, + 0x9134c000U, + 0xedb3a000U, + 0x92f2f000U, + 0x81d6a800U, + 0xce89a400U, + 0x3c4bea00U, + 0x93a23900U, + 0xc21d4280U, + 0x2eb9d40U, + 0xf036a820U, + 0xb639a4d0U, + 0xab33ea38U, + 0x42be39a4U, + 0x387b42a6U, + 0x7b9c9d2dU, + 0x242861U, + 0xb7d66496U, + 0x7b8cca69U, + 0xe9c8090cU, + 0xfb664a09U, + 0x52fbc958U, + 0x61df6abdU, + 0xfe8af982U, + 0x3448e258U, + 0x3fae6d0bU, + 0x48128028U, + 0xe5efc0cbU, + 0x56bf20c9U, + 0x567630aaU, + 0x1a9d087bU, + 0x5ba754dfU, + 0x8e1b4291U, + 0xb8ec9da1U, + 0x1f3c2853U, + 0xbcba6414U, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0x50000000U, + 0xf8000000U, + 0xb4000000U, + 0x12000000U, + 0x39000000U, + 0x2d800000U, + 0x4bc00000U, + 0xa1e00000U, + 0xc8f00000U, + 0xf1180000U, + 0x3dec0000U, + 0xd6fe0000U, + 0xce170000U, + 0x6b668000U, + 0x71bac000U, + 0xbdbd6000U, + 0x5bb43000U, + 0xd0b38800U, + 0x943f0400U, + 0xa709200U, + 0x54501900U, + 0x2f431a80U, + 0x2faf1d40U, + 0xced38820U, + 0x6e0f0410U, + 0xd7089258U, + 0xba8c19e4U, + 0x51451a6aU, + 0xa0a41dcdU, + 0x9053081fU, + 0xd54ec462U, + 0xfaad72d4U, + 0x1555e967U, + 0xf6cd723aU, + 0xd665e938U, + 0x6357238U, + 0x7379e991U, + 0xd9d372e9U, + 0x3482e998U, + 0x764bf24cU, + 0xb22f2942U, + 0x8d1012adU, + 0xd3e1d9eaU, + 0x41fefa21U, + 0xd49aed61U, + 0x6a25e044U, + 0x2919f072U, + 0x99e8686dU, + 0x9cf1f423U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0x30000000U, + 0x98000000U, + 0x3c000000U, + 0xe2000000U, + 0xbb000000U, + 0x6c800000U, + 0x7a400000U, + 0xa0a00000U, + 0x70b00000U, + 0xcc180000U, + 0xcea40000U, + 0x71ba0000U, + 0x479d0000U, + 0xa6e8000U, + 0x88504000U, + 0xc700e000U, + 0x2e831000U, + 0x91413800U, + 0x642f8c00U, + 0xaef1be00U, + 0xb2bbb900U, + 0xe7108680U, + 0x6a2435c0U, + 0x9ff938e0U, + 0xa13b8cf0U, + 0x1fd3bef8U, + 0x71c2b90cU, + 0xa46406faU, + 0xe9597547U, + 0x7c8f586eU, + 0x724cdc31U, + 0x54a86634U, + 0x6b32506U, + 0x311a0096U, + 0xc72d00f9U, + 0x3e768053U, + 0x4af44078U, + 0xccbae02fU, + 0xee1e10f9U, + 0x15afb843U, + 0x2d3fcca3U, + 0xa5d15e87U, + 0x96c8a9b9U, + 0x1ae9be64U, + 0xb01fb9a9U, + 0x8caa86a8U, + 0x9ab93540U, + 0x8317b827U, + 0xd42bcc0aU, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x10000000U, + 0x68000000U, + 0x74000000U, + 0x72000000U, + 0x8b000000U, + 0x7f800000U, + 0x31400000U, + 0x43200000U, + 0x88700000U, + 0x49580000U, + 0x722c0000U, + 0x38f20000U, + 0x6d9f0000U, + 0x874b8000U, + 0xe223c000U, + 0x10f76000U, + 0x79901000U, + 0xe5428800U, + 0x1268c00U, + 0x1b7fb600U, + 0x3adc7d00U, + 0x2d653e80U, + 0xf6d6f140U, + 0x636888e0U, + 0xbd58c50U, + 0x9de63608U, + 0xd210bd64U, + 0x9601de9aU, + 0xd10921bfU, + 0xe08f60edU, + 0x2ccc10eaU, + 0x91688834U, + 0xc0d58cddU, + 0x82663610U, + 0xf350bd05U, + 0xbd21defcU, + 0x2d7921e5U, + 0xdbd76063U, + 0xd5e01066U, + 0xd61a8895U, + 0x9c0a8c05U, + 0x460db69eU, + 0x99037d98U, + 0xe48ebeccU, + 0x26c5314eU, + 0x667e87dU, + 0xb9599cbeU, + 0x4a2ebeb9U, + 0x44f5311bU, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0xf0000000U, + 0x58000000U, + 0x1c000000U, + 0x6a000000U, + 0xff000000U, + 0xe9800000U, + 0x2400000U, + 0x5ea00000U, + 0xc5f00000U, + 0x4580000U, + 0x38240000U, + 0xb63e0000U, + 0x64b50000U, + 0x397e8000U, + 0xd0924000U, + 0xad4e6000U, + 0xdf2dd000U, + 0xa3b82800U, + 0xdcfb5c00U, + 0x30dcde00U, + 0xb8e9bd00U, + 0xdd5af680U, + 0x2ca7e1c0U, + 0xc6f8a8a0U, + 0x57dc1c30U, + 0x6d6c3e78U, + 0x45162decU, + 0xd50cbeb2U, + 0xf6816d23U, + 0x3bc45e23U, + 0xf4eafdcdU, + 0xdf54164fU, + 0xb7ad71ebU, + 0xa97060c8U, + 0x9898d02eU, + 0x3946a849U, + 0x1291c4dU, + 0x72b2be0aU, + 0xbc746d90U, + 0x4e1adecdU, + 0xf288bdcfU, + 0xadc276abU, + 0xb1e4a1a8U, + 0x61d648beU, + 0x18668c01U, + 0x839cf6d9U, + 0x96c6e1d4U, + 0xee6028c1U, + 0xd69f5cedU, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0xf0000000U, + 0xa8000000U, + 0x34000000U, + 0x12000000U, + 0xbd000000U, + 0xb3800000U, + 0x50c00000U, + 0x6200000U, + 0x14d00000U, + 0xd7f80000U, + 0xbca40000U, + 0x259a0000U, + 0x5c110000U, + 0xedd18000U, + 0x1e7bc000U, + 0x56f6000U, + 0x72357000U, + 0xd082800U, + 0xbb85d400U, + 0xf4c05e00U, + 0x4c2ca700U, + 0x35d27680U, + 0x427873c0U, + 0x4363a8e0U, + 0x2d3f1430U, + 0xab86bec8U, + 0x6cc617c4U, + 0xb02f3e3aU, + 0xe3d9d749U, + 0x457a5e41U, + 0x79eda7ddU, + 0xdc7bf6fdU, + 0x4067b340U, + 0xcdb6c88bU, + 0x23cb6411U, + 0x8ea7169bU, + 0xc89c03c9U, + 0xd79a0047U, + 0xd111004fU, + 0x965180f8U, + 0x8abbc0d9U, + 0xb94f60e7U, + 0xefe57059U, + 0x7b7028f2U, + 0xeae1d4a0U, + 0x64fa5e68U, + 0x542da7d2U, + 0x9dbf630U, + 0xf477b330U, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0xb0000000U, + 0x38000000U, + 0x94000000U, + 0x2a000000U, + 0x77000000U, + 0xc8800000U, + 0x27400000U, + 0xcf600000U, + 0x42d00000U, + 0xeb80000U, + 0xdee40000U, + 0x58120000U, + 0xa51d0000U, + 0x8a9c8000U, + 0xd50c000U, + 0xf97ae000U, + 0xf2c75000U, + 0x77a83800U, + 0x32739c00U, + 0x2c429200U, + 0xf1e74300U, + 0x7498aa80U, + 0x7059dfc0U, + 0x16feb860U, + 0x950a5c70U, + 0x338ef2d8U, + 0x1c9d324U, + 0x3d24f292U, + 0x9e30d323U, + 0x1daa7282U, + 0x657d1320U, + 0xb4cc125fU, + 0x5eaa8381U, + 0x17fecab3U, + 0x8c8e4f0fU, + 0x454c60ecU, + 0xf46e90cfU, + 0x845c5827U, + 0x4cf90c9eU, + 0x3a0cca68U, + 0xdf034fa7U, + 0x3488e075U, + 0x114a5069U, + 0x3e6cb860U, + 0x43575c60U, + 0xbc72728aU, + 0x894913d3U, + 0x3a66129aU, + 0x15383e4U, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0x70000000U, + 0x88000000U, + 0x84000000U, + 0xe6000000U, + 0xe5000000U, + 0x4a800000U, + 0x25c00000U, + 0xfd600000U, + 0x11700000U, + 0xb5180000U, + 0xe4ec0000U, + 0x233e0000U, + 0x8b350000U, + 0x3f338000U, + 0xf136c000U, + 0xe0372000U, + 0xc4b9b000U, + 0x807b3800U, + 0xd1995400U, + 0x2c7a00U, + 0x2d39900U, + 0xd2894280U, + 0xb9cfcd40U, + 0xc76eb820U, + 0x6e769430U, + 0xf096da28U, + 0xca9e9f4U, + 0xb216daeeU, + 0xed69e921U, + 0x976da8cU, + 0x6919e9f0U, + 0x7eeeda1fU, + 0x2c35e980U, + 0x46b0da06U, + 0x5370e9a4U, + 0x861b5a92U, + 0x636a291bU, + 0xb8727ae5U, + 0x3d96991fU, + 0xb222c293U, + 0xf9d50db4U, + 0x7107980fU, + 0xb48a241fU, + 0x1cc66250U, + 0x2dea7d68U, + 0x3bb380c2U, + 0x85f6c0f4U, + 0x99d7202dU, + 0xe109b0fdU, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0xf0000000U, + 0x28000000U, + 0xc4000000U, + 0x9a000000U, + 0x9b000000U, + 0xbf800000U, + 0x60400000U, + 0xf8200000U, + 0x3b100000U, + 0xe2380000U, + 0x4dac0000U, + 0xf85e0000U, + 0x199d0000U, + 0x90f18000U, + 0xf48c000U, + 0x15a4e000U, + 0x54579000U, + 0xe79b8800U, + 0x61f69c00U, + 0x3c3d600U, + 0xe66db00U, + 0x563e5e80U, + 0xbfa14740U, + 0x7520820U, + 0xcc125cb0U, + 0x43b93688U, + 0x8cec4b34U, + 0xd4f45632U, + 0xd54f1b1fU, + 0x2ead3e05U, + 0x1bdf174bU, + 0xafdae04fU, + 0x5dda902fU, + 0xa2d20808U, + 0x77525cd9U, + 0xa4193617U, + 0x27bc4b6bU, + 0xe6ec5635U, + 0x67f31b96U, + 0xaecb3e00U, + 0xd4ee17fdU, + 0x78f56018U, + 0x2b4f502eU, + 0xdfa7687cU, + 0x175d0c9bU, + 0xb41e5e25U, + 0x5fb147ccU, + 0xfaea086eU, + 0x11fe5cc9U, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0x30000000U, + 0x38000000U, + 0xdc000000U, + 0xaa000000U, + 0x29000000U, + 0xb2800000U, + 0x83c00000U, + 0xd6600000U, + 0x65300000U, + 0x80580000U, + 0x86e40000U, + 0xbf20000U, + 0x42b50000U, + 0xeb148000U, + 0x22444000U, + 0xe6266000U, + 0xb616b000U, + 0xceccf800U, + 0xd2ebf400U, + 0x85feaa00U, + 0xfdb32d00U, + 0xea985280U, + 0x209d9c0U, + 0xdd007860U, + 0x2c8bb4f0U, + 0xd4cacad8U, + 0x3e09decU, + 0xb782a12U, + 0xe4726d35U, + 0x2df2b278U, + 0x9bf295aU, + 0x7498e03cU, + 0x5503f0caU, + 0x88c1824U, + 0x42cc0426U, + 0xb0e0b2abU, + 0xa8fa29b2U, + 0x93460aeU, + 0xd253b06fU, + 0x93e07809U, + 0x237bb4c4U, + 0xd072ca4dU, + 0x53f49d19U, + 0x6eb22a01U, + 0x99136d20U, + 0xe74c32bbU, + 0xc6aa695aU, + 0xc0d8007aU, + 0x240021U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x10000000U, + 0xa8000000U, + 0xb4000000U, + 0xe6000000U, + 0x15000000U, + 0x63800000U, + 0xf1c00000U, + 0xc5a00000U, + 0xedf00000U, + 0x6b580000U, + 0x682c0000U, + 0xfd320000U, + 0x4b7f0000U, + 0x71178000U, + 0x984bc000U, + 0x8b662000U, + 0xc4d2b000U, + 0x43efa800U, + 0xf928400U, + 0x8e093600U, + 0x810e8d00U, + 0xf58c9e80U, + 0x5ccf0940U, + 0xba2028e0U, + 0x4e354450U, + 0x5dfd16c8U, + 0xf3533da4U, + 0x42cb6ceU, + 0x173a4de1U, + 0xa47d3e65U, + 0x559679b4U, + 0xf909a0eeU, + 0xc98570f8U, + 0x7ec38880U, + 0xf1233434U, + 0x24bb1ebbU, + 0x9db4c973U, + 0x343e084cU, + 0x5afbf49aU, + 0x3d8be57U, + 0x9362b938U, + 0xe8d800b3U, + 0xc9ec00f1U, + 0xf09200acU, + 0x28f0030U, + 0x544f80b7U, + 0x5167c08fU, + 0xf3d420d5U, + 0x6b6db0b9U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x70000000U, + 0xa8000000U, + 0x9c000000U, + 0xea000000U, + 0xbf000000U, + 0x54800000U, + 0x12400000U, + 0x33a00000U, + 0xd5900000U, + 0x47380000U, + 0x2f2c0000U, + 0x6bd20000U, + 0x56990000U, + 0xa9b18000U, + 0x3a694000U, + 0x48f26000U, + 0x4f46d000U, + 0x142ef800U, + 0xc15f8c00U, + 0x9dd18e00U, + 0x4398fb00U, + 0x22357680U, + 0xca27740U, + 0xc11f78e0U, + 0x3576cc30U, + 0x6c83eec8U, + 0x164e2becU, + 0x8da38ec2U, + 0x6c91fb63U, + 0xeebcf65eU, + 0x4ae7379dU, + 0xf4bf182fU, + 0x1de91c6bU, + 0x5c3c9656U, + 0x95a8e7a9U, + 0x789860baU, + 0x88b3d008U, + 0xc7ed782fU, + 0x2b3fcc64U, + 0x2d2a6e69U, + 0x28db6b01U, + 0x981bee29U, + 0xacf22bddU, + 0xc1498eb8U, + 0x6524fbe3U, + 0x84df764eU, + 0xba177715U, + 0xfffcf8f3U, + 0xd7c68cb1U, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0xd0000000U, + 0x8000000U, + 0x7c000000U, + 0x72000000U, + 0xc3000000U, + 0x73800000U, + 0x50400000U, + 0x2de00000U, + 0x40300000U, + 0xfe580000U, + 0x5e2c0000U, + 0x75960000U, + 0xcf870000U, + 0x42498000U, + 0x1ee54000U, + 0xebbde000U, + 0xda139000U, + 0x7dc0c800U, + 0x84a31c00U, + 0x8154ea00U, + 0x3fa46500U, + 0x16dda280U, + 0x49e23940U, + 0x2634a8a0U, + 0xc355cc90U, + 0x44a9c228U, + 0xe154e9acU, + 0xcfa980faU, + 0xced540ffU, + 0x3de5e021U, + 0x283f9043U, + 0x7256c856U, + 0xf4241c6cU, + 0xc29d6aa1U, + 0xb20125ddU, + 0xa3004278U, + 0x8381a981U, + 0x884c60baU, + 0x59ead001U, + 0x4e33287fU, + 0x4f5b8c36U, + 0xeeaba299U, + 0x5655392eU, + 0xb225283fU, + 0x2f9c8c76U, + 0xa0822202U, + 0x4bc0796cU, + 0xf1a0c816U, + 0xc7d31c2cU, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0x30000000U, + 0x58000000U, + 0x74000000U, + 0x5e000000U, + 0xa1000000U, + 0x23800000U, + 0x68c00000U, + 0xd7200000U, + 0x1b500000U, + 0xdbf80000U, + 0xd6640000U, + 0xabb20000U, + 0x2d050000U, + 0x198a8000U, + 0x1fccc000U, + 0x49a1a000U, + 0x221a7000U, + 0xef176800U, + 0xc6955400U, + 0x815bee00U, + 0xbcf7ff00U, + 0xc0e60680U, + 0x8efe6bc0U, + 0x6be44860U, + 0x8277e4f0U, + 0xe9a726b8U, + 0x3219db44U, + 0x67120086U, + 0xda950015U, + 0xf352809dU, + 0x37f8c0f9U, + 0x1c6ba0acU, + 0x64bb7007U, + 0xf78fe852U, + 0x26cc946cU, + 0xfe28ce53U, + 0x24d54f93U, + 0xc13acee5U, + 0x8a404fe9U, + 0x6c684eebU, + 0x1cb88f1bU, + 0x5383ee35U, + 0x10c3ff4dU, + 0x732c0611U, + 0x2d5f6b40U, + 0x56fcc84dU, + 0xdfee245dU, + 0x3c740656U, + 0x78ab6b5cU, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0x30000000U, + 0x58000000U, + 0x24000000U, + 0x56000000U, + 0x41000000U, + 0x4e800000U, + 0x400000U, + 0xe7600000U, + 0x33700000U, + 0xc980000U, + 0xdeac0000U, + 0xabda0000U, + 0x2e450000U, + 0x12628000U, + 0xa3f9c000U, + 0x1dc2000U, + 0x5d48f000U, + 0xabe8b800U, + 0x9c3c8c00U, + 0xf074e200U, + 0xad126900U, + 0x2566da80U, + 0x3c7b2540U, + 0xc7141860U, + 0xf664bc70U, + 0x55f8fab8U, + 0x90dad514U, + 0x7bc4208eU, + 0xd7a4f025U, + 0x952b8f8U, + 0xd4098c71U, + 0xae0e62f1U, + 0xb507a917U, + 0x7080fa3dU, + 0x3d46d5ecU, + 0xdbe62089U, + 0x243df080U, + 0xe47238e6U, + 0xa3194caaU, + 0x406ac211U, + 0x24f39945U, + 0x8656e299U, + 0x5f8b69eeU, + 0x66c65a80U, + 0x7b2be5d1U, + 0x9610b807U, + 0x70e08c75U, + 0xf9b6e200U, + 0x6dbb69f3U, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0x50000000U, + 0xa8000000U, + 0x3c000000U, + 0x3e000000U, + 0x65000000U, + 0x92800000U, + 0x4ac00000U, + 0xfe00000U, + 0x52900000U, + 0xd9f80000U, + 0xd8ac0000U, + 0x82360000U, + 0x77cf0000U, + 0x196b8000U, + 0x925b4000U, + 0xe11d2000U, + 0xebb33000U, + 0xda82b800U, + 0x46cd6400U, + 0xe9ef8200U, + 0xf390bf00U, + 0xe17eba80U, + 0xf56a9b40U, + 0x445a18a0U, + 0x98161410U, + 0x17359a88U, + 0x5d46ab6cU, + 0xe7ab2016U, + 0xcfbc3019U, + 0x4089388cU, + 0xf9c6247fU, + 0xe46aa235U, + 0xe4df8f24U, + 0x51d20268U, + 0x2b54ffafU, + 0x7d901a69U, + 0x1c7eebf5U, + 0x83eb809cU, + 0xf49b409bU, + 0x58fd2097U, + 0xb02330a8U, + 0x7fab8bdU, + 0x8da164c9U, + 0xc8b98289U, + 0xf90fbf5aU, + 0xbc8d3a2dU, + 0xa7cddb6dU, + 0xf169388bU, + 0x8e5624c6U, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0x10000000U, + 0xd8000000U, + 0x4000000U, + 0x16000000U, + 0xe5000000U, + 0x78800000U, + 0xb0400000U, + 0x5600000U, + 0x5c300000U, + 0x3fd80000U, + 0x4aac0000U, + 0xea9a0000U, + 0x77470000U, + 0xe6e88000U, + 0x5df3c000U, + 0x28782000U, + 0x8cbeb000U, + 0x39b9800U, + 0x65ceec00U, + 0x51a38200U, + 0x1b10dd00U, + 0x85889a80U, + 0x6cc1f140U, + 0x53293860U, + 0x74589c50U, + 0xc76aba38U, + 0xd7384114U, + 0x565a204eU, + 0x5c65b0a1U, + 0x66b1188eU, + 0x44962c45U, + 0xc64922a5U, + 0xb06aade8U, + 0x1cbba2acU, + 0x9b9e6db3U, + 0x81cb02cdU, + 0x57a31dddU, + 0x2610bab1U, + 0xf90f4122U, + 0xca8aa05fU, + 0xb34a702aU, + 0x50eb3897U, + 0x48f39cdfU, + 0x98f83a07U, + 0xe0fc812eU, + 0x14f28028U, + 0xcaf4c0f8U, + 0xf3f0a09dU, + 0x997d70bcU, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0x10000000U, + 0x28000000U, + 0x3c000000U, + 0x92000000U, + 0xb7000000U, + 0x60800000U, + 0xdc00000U, + 0xa8200000U, + 0x3100000U, + 0x2db80000U, + 0xea640000U, + 0xe2720000U, + 0xfd470000U, + 0x4def8000U, + 0x773f4000U, + 0xaca3e000U, + 0x58dcd000U, + 0x5498b800U, + 0x80faf400U, + 0xaf89ae00U, + 0x594c7b00U, + 0xfbe69680U, + 0xb63dcfc0U, + 0xed26d860U, + 0x49e64d0U, + 0x88fd76c8U, + 0x63851f2cU, + 0xf34c603aU, + 0x58e3904bU, + 0x78bb5812U, + 0xc5e624aaU, + 0x7b3116e0U, + 0xe6a68f32U, + 0xebd73897U, + 0xb215b49eU, + 0x94324e4fU, + 0x4224ab0aU, + 0x80142eafU, + 0x13343b75U, + 0xfaaaf63eU, + 0x89de5fa2U, + 0x3d1d8032U, + 0xe0b840c4U, + 0xe1ec6044U, + 0xd339036U, + 0xc7a3580fU, + 0xba5224dbU, + 0xc65b16faU, + 0x74558f76U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0x30000000U, + 0x98000000U, + 0xc000000U, + 0x6e000000U, + 0x15000000U, + 0x54800000U, + 0xa5c00000U, + 0xd1600000U, + 0x8900000U, + 0x78780000U, + 0x71a40000U, + 0x857a0000U, + 0x112d0000U, + 0x12b68000U, + 0x13474000U, + 0xcfa92000U, + 0xf8783000U, + 0xb1afd800U, + 0xe57c7400U, + 0x2128da00U, + 0x8ab13700U, + 0x1f4b8280U, + 0xa1a703c0U, + 0xed7cf8e0U, + 0xe52944f0U, + 0x40b182f8U, + 0xf04a033cU, + 0x822a7876U, + 0x673e04d9U, + 0xd000a25aU, + 0x68063380U, + 0xf407a09dU, + 0x520b7061U, + 0xe304f8a7U, + 0x4d8d445cU, + 0x9f4b8231U, + 0x61a703c9U, + 0x8d7cf8a8U, + 0xd52944dfU, + 0xd8b18291U, + 0xfc4a030fU, + 0xec2a7832U, + 0x723e04c8U, + 0x8480a2f4U, + 0xcdc63328U, + 0x2567a038U, + 0x5a9b70abU, + 0x9b7cf88eU, + 0x3c29449fU, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0xd0000000U, + 0x38000000U, + 0x54000000U, + 0x8a000000U, + 0x43000000U, + 0xba800000U, + 0xf1400000U, + 0x9f200000U, + 0x8e700000U, + 0xb8d80000U, + 0x56c0000U, + 0xa7d60000U, + 0xe9e70000U, + 0x39a8000U, + 0xb94cc000U, + 0x6324e000U, + 0x487d1000U, + 0xf5dfd800U, + 0x4ee39c00U, + 0xfb119600U, + 0xb7051d00U, + 0xa082ce80U, + 0xaa4d4140U, + 0xa1ad38a0U, + 0xcd398c90U, + 0x30f4ce18U, + 0xbb9a4184U, + 0xad4fb832U, + 0xc9294c57U, + 0xdb7e2e10U, + 0x775c5162U, + 0xeba4e09dU, + 0xee3d106bU, + 0x7a7fd88dU, + 0xa2d39c18U, + 0x5e69969dU, + 0x99591d49U, + 0xaaacce31U, + 0x8bb641ddU, + 0x7b9b8c2U, + 0x69be4c95U, + 0x68bcaeb6U, + 0x2d3c91e5U, + 0x80f60087U, + 0x73970012U, + 0x1142808fU, + 0x2f20c0deU, + 0x4672e0eaU, + 0x4da10bbU, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0x70000000U, + 0xa8000000U, + 0x5c000000U, + 0x22000000U, + 0x2b000000U, + 0xaa800000U, + 0xd3400000U, + 0x3a200000U, + 0xd1b00000U, + 0xf0d80000U, + 0x774c0000U, + 0x3c2a0000U, + 0xbcb90000U, + 0xd7558000U, + 0xf3834000U, + 0x2acde000U, + 0x27e99000U, + 0x9ed59800U, + 0xe640dc00U, + 0xa9ad7600U, + 0xcb702900U, + 0x9f350e80U, + 0xc5996540U, + 0x506de060U, + 0x62199030U, + 0x94ad9848U, + 0x94fcdc2cU, + 0x7fff768aU, + 0x75752977U, + 0x36328e08U, + 0xd41f25b8U, + 0xf1a780f0U, + 0x7f764032U, + 0x1326082U, + 0xbc93d08aU, + 0x79edf846U, + 0x47da0cbcU, + 0x5fcd0e63U, + 0x546565b7U, + 0xf41fe0edU, + 0x21ac9096U, + 0x4772189eU, + 0x85369c17U, + 0x6a9f1653U, + 0x2ce3f9baU, + 0xe458f67fU, + 0xd03692aU, + 0x1780eef8U, + 0xccccf590U, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0x50000000U, + 0xc8000000U, + 0x14000000U, + 0xa2000000U, + 0x65000000U, + 0x74800000U, + 0x22c00000U, + 0x2ce00000U, + 0x80900000U, + 0x96b80000U, + 0x26c40000U, + 0x26e60000U, + 0x19f0000U, + 0xd8318000U, + 0xbd09c000U, + 0xc88d6000U, + 0x64c37000U, + 0x73e89800U, + 0x4d18a400U, + 0x76f38200U, + 0xefe2b700U, + 0x9b167a80U, + 0x41f963c0U, + 0x666d6020U, + 0x11537090U, + 0xf9d09868U, + 0xd1ca444U, + 0x16f5826aU, + 0x1fedb771U, + 0x31ffa56U, + 0x9df4a387U, + 0xd0660078U, + 0xd65f0032U, + 0xe85180d2U, + 0x5b59c0e2U, + 0x18d560daU, + 0xb3977056U, + 0x15369828U, + 0x2d83a4fbU, + 0xd0440248U, + 0xf124777bU, + 0x31f29a81U, + 0x3e67d34fU, + 0x6d569895U, + 0x1fd3a415U, + 0x21c027bU, + 0x13707756U, + 0xebac9a07U, + 0x683cd338U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0xb0000000U, + 0x78000000U, + 0x9c000000U, + 0x6e000000U, + 0x3000000U, + 0xeb800000U, + 0xbf400000U, + 0x8ee00000U, + 0xf6500000U, + 0x4bf80000U, + 0xb54c0000U, + 0x3fe20000U, + 0x10dd0000U, + 0xac348000U, + 0x17624000U, + 0x641d2000U, + 0x4d93d000U, + 0xa7de0800U, + 0x3db10c00U, + 0x412d3a00U, + 0x407fdb00U, + 0xfa0e1280U, + 0xa90d0740U, + 0xca8520e0U, + 0xf1cfd0f0U, + 0x3d240818U, + 0xde700c2cU, + 0xe103ba16U, + 0x6e8c9b9fU, + 0x63c5b205U, + 0xe02197fcU, + 0x4ef28885U, + 0x29cf4cb9U, + 0x312a1addU, + 0x187d0b6fU, + 0xb6069ae2U, + 0xf034b7aU, + 0x2d81baf6U, + 0xe8419b4bU, + 0xef693235U, + 0xb81fd77fU, + 0x4395a8f0U, + 0x14dd9c5cU, + 0xae3a920fU, + 0x626f4748U, + 0xa09800dbU, + 0xf5c0078U, + 0x97a00d8U, + 0xc081004dU, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0xf0000000U, + 0x48000000U, + 0xe4000000U, + 0xa2000000U, + 0x4f000000U, + 0x6b800000U, + 0x6c400000U, + 0x29a00000U, + 0xf0f00000U, + 0x77180000U, + 0x514c0000U, + 0x152a0000U, + 0x4b310000U, + 0xccf38000U, + 0xc916c000U, + 0xf0466000U, + 0x87abd000U, + 0xe9f7c800U, + 0x499dbc00U, + 0xb588be00U, + 0x7d470500U, + 0x13211680U, + 0x463d6940U, + 0x18746060U, + 0x86d6d0b0U, + 0x51ae48a8U, + 0xfcfa7c14U, + 0x211d5eeaU, + 0x44a15abU, + 0x9da8be49U, + 0xaf70563U, + 0x64191622U, + 0x34c1692cU, + 0x70666076U, + 0xe41bd0f5U, + 0x74cfc868U, + 0x9061bc41U, + 0x141abe58U, + 0x3cca0545U, + 0x7460965cU, + 0xb616a9ddU, + 0x73cb804cU, + 0x1feac0b3U, + 0xda5460bfU, + 0x5a66d0caU, + 0xef1648e2U, + 0xad467c43U, + 0xb2f5eebU, + 0xfa3715e6U, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0x50000000U, + 0x98000000U, + 0xb4000000U, + 0xa6000000U, + 0x1f000000U, + 0x68800000U, + 0x5ac00000U, + 0x57a00000U, + 0x51700000U, + 0xe2180000U, + 0xfcc0000U, + 0xd22e0000U, + 0x2a3f0000U, + 0x50f48000U, + 0x175ec000U, + 0x7e272000U, + 0x78309000U, + 0x49f9f800U, + 0x30d8e400U, + 0xd46e7600U, + 0xc15bbd00U, + 0xe928ae80U, + 0x9cbfc940U, + 0x51312020U, + 0x46739010U, + 0x469b7838U, + 0xb70524e4U, + 0xf48bd63eU, + 0x20c6edabU, + 0x92acf64eU, + 0xacf67d05U, + 0xdd550e1fU, + 0xd32e991bU, + 0xf9bb780dU, + 0xfcb524faU, + 0xe133d6aeU, + 0x2e7aeddeU, + 0x3a9af654U, + 0x3d057d8cU, + 0xf98f8e97U, + 0xf14f596bU, + 0xbfe8d852U, + 0xc91b74e8U, + 0x814d0e64U, + 0x37e2997eU, + 0x4515788bU, + 0xc34a24deU, + 0x16e7567dU, + 0x86942ddbU, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0x50000000U, + 0x8000000U, + 0x34000000U, + 0x6e000000U, + 0xa3000000U, + 0xd9800000U, + 0xc9c00000U, + 0x23e00000U, + 0x7ef00000U, + 0x6ed80000U, + 0x8ec40000U, + 0x5c620000U, + 0xc03b0000U, + 0xaabd8000U, + 0x92f7c000U, + 0xfcdfa000U, + 0x97c3d000U, + 0x18e02800U, + 0x7b79c400U, + 0xad168200U, + 0x682ec100U, + 0x6c110a80U, + 0xd0a0d5c0U, + 0x6d5da060U, + 0x4a08d090U, + 0xe505a8e8U, + 0xfe8a0464U, + 0x264b2266U, + 0x75261197U, + 0xde94a237U, + 0x14ead1aaU, + 0xb976829aU, + 0xbc1ec127U, + 0x18a90a25U, + 0xb954d554U, + 0x7407a034U, + 0x4e07d049U, + 0x130228a9U, + 0x8182c45cU, + 0xf5cb02caU, + 0x79e90125U, + 0xb3f6aa9eU, + 0x145705b6U, + 0x9e87881dU, + 0xb64e147aU, + 0x9d2caa92U, + 0xba98057eU, + 0x72e00883U, + 0x2e76d486U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0x70000000U, + 0x18000000U, + 0xc000000U, + 0x22000000U, + 0xc5000000U, + 0x13800000U, + 0x2a400000U, + 0x3d200000U, + 0x6e900000U, + 0xff80000U, + 0x17440000U, + 0x92aa0000U, + 0x1ed10000U, + 0x8bde8000U, + 0x50554000U, + 0x7e10e000U, + 0x53b7000U, + 0x98a9e800U, + 0x6fdfdc00U, + 0xa65b1600U, + 0xf5190b00U, + 0x81ba1e80U, + 0x7c69a7c0U, + 0x673ae0e0U, + 0xfdaa70b0U, + 0x6c576878U, + 0xe41a9c7cU, + 0xdc33f63aU, + 0xc1267bc9U, + 0x9499f6b1U, + 0xa6f77b2fU, + 0x56c776ceU, + 0x65e23bf4U, + 0x3c7796caU, + 0xed094bc5U, + 0xa7867e47U, + 0x14429770U, + 0xb22f68d0U, + 0xac1e9c1dU, + 0x1839f681U, + 0xe7277ba8U, + 0x179f767dU, + 0x46763b30U, + 0x8405964fU, + 0x860c4ba2U, + 0x930afee7U, + 0x8882d728U, + 0xc6cb0869U, + 0xcde1accaU, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x50000000U, + 0xe8000000U, + 0xac000000U, + 0xae000000U, + 0xa1000000U, + 0x90800000U, + 0x54c00000U, + 0x9a200000U, + 0x93100000U, + 0xcf80000U, + 0xd4c0000U, + 0xb2620000U, + 0x93f30000U, + 0xf4c38000U, + 0xea204000U, + 0x4b162000U, + 0x18fdf000U, + 0xe7419800U, + 0x11648400U, + 0xc750e00U, + 0x91890300U, + 0xb440b680U, + 0x16e37740U, + 0x1d37a0e0U, + 0x75eeb010U, + 0xa2b43888U, + 0x20a934fcU, + 0x44dab646U, + 0x395c770dU, + 0x431620beU, + 0xa4fdf0b5U, + 0xc141986aU, + 0x4c648497U, + 0xdaf50e7eU, + 0xc8490332U, + 0x10e0b690U, + 0x7033777fU, + 0x1b6fa036U, + 0xbf72b03dU, + 0x860e38adU, + 0x2d06349dU, + 0xe8336e6U, + 0x4dc33709U, + 0x4ea180e7U, + 0xc5d340a6U, + 0x99d5a026U, + 0xafddb0faU, + 0x7ad7b89cU, + 0x50597449U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0x90000000U, + 0xa8000000U, + 0x24000000U, + 0x9a000000U, + 0x1000000U, + 0xe2800000U, + 0x29c00000U, + 0xcd600000U, + 0x8b300000U, + 0x90980000U, + 0xf440000U, + 0x2eaa0000U, + 0x8f5f0000U, + 0x4d2b8000U, + 0x8414c000U, + 0xc985e000U, + 0x524cb000U, + 0x7a22b800U, + 0xe997f400U, + 0xc1c56a00U, + 0x496a3500U, + 0xe1303280U, + 0xa99a71c0U, + 0x61ce60e0U, + 0xb9687050U, + 0xd93f58c8U, + 0x259f44b4U, + 0xdfcdd232U, + 0x2262c125U, + 0x3abed8f8U, + 0xeed484e8U, + 0x3b63b24fU, + 0x643ab132U, + 0x21198075U, + 0x710fc060U, + 0x1a846044U, + 0xc5c77011U, + 0xe36cd829U, + 0xb83f8406U, + 0x571a32d3U, + 0x5e05715cU, + 0xcb05e041U, + 0x2b8cb05dU, + 0x7f42b838U, + 0xd6a7f434U, + 0x635d6a55U, + 0x632e354fU, + 0xb71a327dU, + 0xe05710cU, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0x10000000U, + 0x78000000U, + 0x1c000000U, + 0x86000000U, + 0x21000000U, + 0x60800000U, + 0x3c400000U, + 0x80e00000U, + 0x92300000U, + 0xb6180000U, + 0xc48c0000U, + 0x64a0000U, + 0xd7ef0000U, + 0xbbb68000U, + 0x8ede4000U, + 0xe225a000U, + 0xb3907000U, + 0xb2431800U, + 0x95e74c00U, + 0xf0b38a00U, + 0x21518d00U, + 0xfbe3b280U, + 0xf5b8f140U, + 0x3bd68060U, + 0x70ae4050U, + 0x4cdda098U, + 0xe92c700cU, + 0xfc1118feU, + 0xbb844c3dU, + 0xabcf0ae6U, + 0x6520cd1dU, + 0x42109260U, + 0x6686c1eeU, + 0x5d483856U, + 0x657c06U, + 0xbe7f3228U, + 0x4ef9b11fU, + 0x4abda0c3U, + 0x365c7024U, + 0x3269185fU, + 0xdd784c30U, + 0x657d0ac8U, + 0xd973cd94U, + 0xaf741272U, + 0xe67b8183U, + 0xe2f118bbU, + 0x44b44cabU, + 0x63570a65U, + 0xb0eccd42U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0xb0000000U, + 0x8000000U, + 0xfc000000U, + 0x5a000000U, + 0x41000000U, + 0x84800000U, + 0xa5400000U, + 0x6a200000U, + 0x7bb00000U, + 0xc8580000U, + 0x68840000U, + 0x874e0000U, + 0xff290000U, + 0xe93b8000U, + 0x7e174000U, + 0x3b2e6000U, + 0x873fb000U, + 0xb91d5800U, + 0x14ad9c00U, + 0xeffdb600U, + 0xefa7900U, + 0xfa750e80U, + 0x773f15c0U, + 0x511b80a0U, + 0x78a74070U, + 0xdf66028U, + 0xbbfbb04cU, + 0xd8f35852U, + 0xc9749cbdU, + 0xfebe36deU, + 0x22d939e4U, + 0xacd6e6eU, + 0xc2eda51eU, + 0xec535802U, + 0x96849c63U, + 0xf8463667U, + 0x24ad39dbU, + 0x27fb6ebcU, + 0xd2f0a5fcU, + 0x107ed8acU, + 0x3e3edc6dU, + 0x299dd644U, + 0x87ecc901U, + 0x26d3d626U, + 0x44c5c974U, + 0xb5e85624U, + 0xcbd2897aU, + 0x2463683U, + 0x15ad39dcU, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0xd0000000U, + 0x98000000U, + 0xc4000000U, + 0x6000000U, + 0xb000000U, + 0x4f800000U, + 0x35400000U, + 0x52600000U, + 0xb1700000U, + 0x3dd80000U, + 0xdd840000U, + 0x604e0000U, + 0xf2ef0000U, + 0x1db48000U, + 0xc9fdc000U, + 0xb5182000U, + 0xdfa6d000U, + 0x4bd74800U, + 0x5e892c00U, + 0x53c2b200U, + 0xd5a99100U, + 0xdad95a80U, + 0xf80badc0U, + 0xf40c80a0U, + 0x6e09c010U, + 0x870e20b8U, + 0x158dd014U, + 0xfc4dc89eU, + 0x10ebeccfU, + 0xc0b61249U, + 0x1576813eU, + 0xbd8329dU, + 0xbe8b5144U, + 0xa3cdfacfU, + 0x9da4bd7cU, + 0x86d5e865U, + 0x3a0d3cfbU, + 0xf9015ac3U, + 0x2a8fad24U, + 0xfdc280f9U, + 0x72a6c02cU, + 0x1f5aa0c5U, + 0x9c4010deU, + 0x20ede8a0U, + 0xa8b93c16U, + 0x99775a80U, + 0x51d4adb8U, + 0x778000a1U, + 0xe1400085U, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0xb0000000U, + 0x48000000U, + 0x74000000U, + 0x36000000U, + 0xe3000000U, + 0x7e800000U, + 0x70400000U, + 0xaf600000U, + 0xd6300000U, + 0xfd980000U, + 0x95840000U, + 0x1ac60000U, + 0xf9210000U, + 0x625f8000U, + 0x692bc000U, + 0x5a582000U, + 0xf52f5000U, + 0xa85ed800U, + 0x68266c00U, + 0x41ddb200U, + 0x50e27500U, + 0x7dfcca80U, + 0x573489c0U, + 0x26198020U, + 0x904ac070U, + 0x7f67a0e8U, + 0x8e3490c4U, + 0x719ef87eU, + 0x9f8d3c97U, + 0xbbc56a48U, + 0x52a51993U, + 0x8f9ef851U, + 0xc88d3c66U, + 0x53456af2U, + 0x71e519f3U, + 0x167ef82fU, + 0x1afd3cd8U, + 0x37bd6aeeU, + 0xd15119c3U, + 0x8fa0f88eU, + 0x6183c58U, + 0xe044eacbU, + 0x976bd918U, + 0x4a3f58a2U, + 0xf98ac69U, + 0x884121fU, + 0xf343e57bU, + 0xc1e3b272U, + 0x5e7775ffU, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x10000000U, + 0x38000000U, + 0xc000000U, + 0x9a000000U, + 0x8f000000U, + 0x8a800000U, + 0xc2c00000U, + 0xbb600000U, + 0x1db00000U, + 0xc9980000U, + 0x530c0000U, + 0x8820000U, + 0x31c70000U, + 0x83e28000U, + 0x64734000U, + 0x6e716000U, + 0x997d5000U, + 0x7ffa5800U, + 0x373f8400U, + 0x3b5f1a00U, + 0xa0622d00U, + 0x3134a280U, + 0x5654b940U, + 0xc9e200e0U, + 0xf3770050U, + 0x98fa8058U, + 0xe9bf401cU, + 0x7f9360a2U, + 0x360a5083U, + 0x2500d810U, + 0x4d80c44dU, + 0x6c4c7a31U, + 0xd7a87ddfU, + 0xbfd47af2U, + 0x4ba47d0eU, + 0x5dd67a21U, + 0xa8a37d32U, + 0x5d54fa53U, + 0xdd603d09U, + 0x60bd9aafU, + 0x98116d2eU, + 0x9d45c2d9U, + 0x5c29e9bfU, + 0x9e985837U, + 0x8588849bU, + 0x8459a30U, + 0x19ad6de9U, + 0xb6dfc22aU, + 0xec22e9dbU, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0x50000000U, + 0x58000000U, + 0x5c000000U, + 0xae000000U, + 0x83000000U, + 0xc4800000U, + 0xd4400000U, + 0x18200000U, + 0xc7500000U, + 0xd8b80000U, + 0xdd0c0000U, + 0xf860000U, + 0x34c70000U, + 0x6e608000U, + 0xaa704000U, + 0x4672000U, + 0xbb76d000U, + 0x9dee7800U, + 0x20b00c00U, + 0x91034600U, + 0xd9893700U, + 0xbbcc9e80U, + 0x5ce8ab40U, + 0xa13e00a0U, + 0x76cb0010U, + 0x2b668078U, + 0x99f7400cU, + 0xeea7a0f6U, + 0x5e1690dfU, + 0xf711586aU, + 0x29adc57U, + 0x1f533edcU, + 0xc4b23b13U, + 0x53095840U, + 0xdc86dc5aU, + 0xa84d3ef7U, + 0xe6293bb9U, + 0x1c57d8b9U, + 0x403d9c82U, + 0xa74c9ee4U, + 0x94a8abc2U, + 0x371e0085U, + 0x629b0053U, + 0x6f5e809aU, + 0xccbb40edU, + 0x5701a06eU, + 0x2e8190d0U, + 0x8549d8a3U, + 0xa1a69c5aU, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0xb0000000U, + 0x18000000U, + 0xc000000U, + 0xb2000000U, + 0x9000000U, + 0xe0800000U, + 0x3cc00000U, + 0xbba00000U, + 0x6cb00000U, + 0x86580000U, + 0x5b040000U, + 0x39860000U, + 0xd4410000U, + 0x236a8000U, + 0x71114000U, + 0x5de3e000U, + 0x86d7b000U, + 0xb7cc9800U, + 0x8a2ac400U, + 0x1cf3f600U, + 0x33eb100U, + 0x9d100e80U, + 0x3fe385c0U, + 0x87de0020U, + 0xf3450070U, + 0x10ec80b8U, + 0x105040bcU, + 0x340960aaU, + 0xce06f005U, + 0x30f7852U, + 0x558d7435U, + 0x76476e5bU, + 0x82607550U, + 0x859df8bdU, + 0xdf2834f7U, + 0x867a8e1fU, + 0x32f2c53fU, + 0xd03de082U, + 0xc092b069U, + 0xeda0186cU, + 0xa3ba844eU, + 0xc1da9612U, + 0x9448413cU, + 0x43677622U, + 0x611af12cU, + 0xf5e76ec7U, + 0x92d0752bU, + 0x9c5f8a0U, + 0x312c3408U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0x90000000U, + 0xe8000000U, + 0x74000000U, + 0xe2000000U, + 0xf000000U, + 0x20800000U, + 0x98c00000U, + 0x10e00000U, + 0xe6700000U, + 0xb3d80000U, + 0xda040000U, + 0x730e0000U, + 0x68b0000U, + 0xdc78000U, + 0xa369c000U, + 0xc8396000U, + 0xd6f6d000U, + 0x316f800U, + 0x9eed8400U, + 0xe77f8200U, + 0x5252e900U, + 0x83419a80U, + 0xaaaf7dc0U, + 0xd15800a0U, + 0x1dc40050U, + 0x8b6e00c8U, + 0x9c3b00e4U, + 0xa4ff800aU, + 0xe41dc07bU, + 0xca6f60c2U, + 0x9db9d097U, + 0x4dbf7830U, + 0x45bf447eU, + 0x81b962a3U, + 0x1bb9f93cU, + 0x88b80240U, + 0x3e3b291cU, + 0x4bf8fadeU, + 0x7499adf5U, + 0x2aaef88dU, + 0x11598451U, + 0x3dc982e1U, + 0x1b6de9a3U, + 0x74301a4eU, + 0xd0f9bdefU, + 0x610e016U, + 0xc56410d9U, + 0xbd301819U, + 0xd57694f7U, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0x90000000U, + 0xa8000000U, + 0x4c000000U, + 0x4e000000U, + 0x97000000U, + 0xc5800000U, + 0x7d400000U, + 0xa7600000U, + 0x3bf00000U, + 0x55280000U, + 0xf8040000U, + 0x84020000U, + 0xb2010000U, + 0xe1048000U, + 0xb6854000U, + 0xbac26000U, + 0x3227000U, + 0xce14b800U, + 0xd61e2c00U, + 0x770fea00U, + 0xe0933b00U, + 0x58dadf80U, + 0xfe2b2940U, + 0x2b800020U, + 0x3a400010U, + 0xeae00008U, + 0x9ab00024U, + 0x1448002aU, + 0x18f40013U, + 0x5aaa0013U, + 0xa0450025U, + 0x7e68031U, + 0x4234401fU, + 0xa98ee029U, + 0x7653300eU, + 0xa5fcd815U, + 0x9f395c3eU, + 0xdc1dd221U, + 0x3209572cU, + 0x7413d5b8U, + 0xab1f226dU, + 0x78c078eU, + 0x11577550U, + 0x787b521bU, + 0x967d1701U, + 0xd17d35bfU, + 0x9cfc124fU, + 0x3db8df8fU, + 0x7cda2959U, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0x10000000U, + 0x38000000U, + 0x8c000000U, + 0x5a000000U, + 0x21000000U, + 0x3b800000U, + 0x38400000U, + 0xcbe00000U, + 0x69f00000U, + 0x2d980000U, + 0x2c040000U, + 0x6a060000U, + 0xe9070000U, + 0x9f808000U, + 0xd641c000U, + 0x3ce46000U, + 0x2972d000U, + 0xf590800U, + 0xe425dc00U, + 0xf057c200U, + 0x66895f00U, + 0xf7efcf80U, + 0xbddaacc0U, + 0x93e00020U, + 0x35f00030U, + 0xaf980038U, + 0x91040004U, + 0x3386000eU, + 0x7c470023U, + 0x35e08016U, + 0xa6f1c008U, + 0xe11c600eU, + 0x54c6d00eU, + 0x83270832U, + 0x48d6dc1aU, + 0x2849420bU, + 0x75cb9f0bU, + 0x3e8d2f9aU, + 0xabeebcfaU, + 0x3fdde807U, + 0x2ee6cc05U, + 0x6c72aa37U, + 0x3ada530eU, + 0x3b67058dU, + 0x43312fdaU, + 0xa1b88d8aU, + 0x485233e1U, + 0x2a8bafabU, + 0x4de87cd5U, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0x30000000U, + 0xc8000000U, + 0xdc000000U, + 0x4a000000U, + 0x4f000000U, + 0x53800000U, + 0xe2c00000U, + 0x86600000U, + 0x10f00000U, + 0x7ed80000U, + 0xb4040000U, + 0xe6020000U, + 0xed010000U, + 0xf0818000U, + 0x33464000U, + 0xf7a6e000U, + 0x8f125000U, + 0xc3ea7800U, + 0x1f3e9c00U, + 0xa0311600U, + 0xf3bf3300U, + 0xb9740780U, + 0x5b1e36c0U, + 0x9de00020U, + 0x6e300010U, + 0x92b80008U, + 0xdbf4000cU, + 0x35a0032U, + 0x67c50037U, + 0xdae38012U, + 0x81b74013U, + 0x2a7f6014U, + 0xea901038U, + 0x542e9821U, + 0x6dddcc04U, + 0xed82ee1fU, + 0x6bc3ef2dU, + 0x8e1f1b9U, + 0xcab255fbU, + 0x17ffff9cU, + 0x1956eadcU, + 0x58cff615U, + 0xc969633fU, + 0xeb7c7f8aU, + 0xf811aafcU, + 0xe4689628U, + 0x7bfd7308U, + 0xdb50e7a0U, + 0xebcd66f1U, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0xd0000000U, + 0x28000000U, + 0x34000000U, + 0x6a000000U, + 0xa5000000U, + 0xda800000U, + 0x10c00000U, + 0xd5200000U, + 0xc6900000U, + 0xfcf80000U, + 0x2040000U, + 0xf1060000U, + 0xc0850000U, + 0x4dc68000U, + 0x13a14000U, + 0x8851a000U, + 0xe6db5000U, + 0xbb112800U, + 0xc7b8d400U, + 0x7618600U, + 0xaf762900U, + 0xe94a7480U, + 0x3b6cc7c0U, + 0x6780020U, + 0x2c40030U, + 0xac260028U, + 0xe2150034U, + 0xf33e800aU, + 0x80a5400dU, + 0xc9d7a01aU, + 0x939e5029U, + 0xf977a836U, + 0x2499404U, + 0xa6e82635U, + 0x8d397931U, + 0x5fa55cbfU, + 0x3e5513c0U, + 0xbdd9061cU, + 0x7e966900U, + 0x80fb54bbU, + 0x2c03d7f0U, + 0xc6060808U, + 0xa302c404U, + 0xd9810e1cU, + 0x1945ad2cU, + 0xe462dabdU, + 0x16f63ae2U, + 0x800df2b5U, + 0x270feee6U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0xd0000000U, + 0xd8000000U, + 0xe4000000U, + 0xbe000000U, + 0x37000000U, + 0xdd800000U, + 0x3d400000U, + 0xf3200000U, + 0x6bd00000U, + 0x3c480000U, + 0xba040000U, + 0x99060000U, + 0x52830000U, + 0xd4c68000U, + 0xa866c000U, + 0x4bf72000U, + 0x341df000U, + 0x8c0db800U, + 0xda4ec00U, + 0x9d14ea00U, + 0x492a1900U, + 0xad771e80U, + 0x46de0240U, + 0x97680020U, + 0xf5d40030U, + 0x7b4e0018U, + 0xf870034U, + 0x48408036U, + 0x23a5c039U, + 0xd211a02fU, + 0xc0ab300dU, + 0x26329837U, + 0xbefd1c0fU, + 0x7b3f523cU, + 0x7dddf51aU, + 0xd8ed748fU, + 0x1d96db6eU, + 0xe8ee3e86U, + 0xd594f264U, + 0xb4ed380dU, + 0x5f912c2eU, + 0xe5ed4a3cU, + 0x51152900U, + 0xbb2b86baU, + 0xa8741e77U, + 0xfe5fd21fU, + 0xc2a83520U, + 0x8b34d4b8U, + 0x8a79eb70U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0x90000000U, + 0x28000000U, + 0x84000000U, + 0xda000000U, + 0x23000000U, + 0x31800000U, + 0xcec00000U, + 0x2aa00000U, + 0x96100000U, + 0x4b580000U, + 0xae040000U, + 0xa1060000U, + 0xe810000U, + 0x19448000U, + 0xb1614000U, + 0xf0342000U, + 0xdb0ed000U, + 0x13bd1800U, + 0x4cf38c00U, + 0x96a97600U, + 0x4e28d500U, + 0x7a6b7080U, + 0xb8c3ac0U, + 0x33f80020U, + 0xcf140030U, + 0x9de0008U, + 0x59450024U, + 0x5162800aU, + 0x40304021U, + 0x6308a036U, + 0xbfbb9008U, + 0x12f7380cU, + 0x6fa85c33U, + 0x5caeee0aU, + 0x852f1925U, + 0xefeca692U, + 0x8f4e7febU, + 0x1258c888U, + 0xec8526f3U, + 0x5642ce2eU, + 0xfee5c938U, + 0x57f7bebeU, + 0xcb2cf3f3U, + 0xfeed3e98U, + 0x39c8b3caU, + 0xa71b9eb7U, + 0x3e623fcU, + 0x5f7626baU, + 0x376a3fe1U, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0x90000000U, + 0x38000000U, + 0x84000000U, + 0x56000000U, + 0x27000000U, + 0x2b800000U, + 0xc7c00000U, + 0x4f600000U, + 0xd9900000U, + 0xdfb80000U, + 0x77040000U, + 0xf3820000U, + 0x73c50000U, + 0xb1648000U, + 0x4291c000U, + 0x263c2000U, + 0xc1c6b000U, + 0xb0633800U, + 0x46145c00U, + 0xe67abe00U, + 0xa367bb00U, + 0xd390ec80U, + 0x1ab94dc0U, + 0x85820020U, + 0x84c50010U, + 0x2e48028U, + 0x9151c024U, + 0x75c200eU, + 0xbb56b021U, + 0x125b3815U, + 0xd1d05c09U, + 0x7118be0aU, + 0xcef2bb31U, + 0xf22c6c93U, + 0xf6bc8df6U, + 0x8f842017U, + 0x41c2b00dU, + 0xf0613814U, + 0xe6115c38U, + 0x767e3e22U, + 0x9b667b31U, + 0x5794cc9cU, + 0x4cbbfdf9U, + 0xa2833806U, + 0xaf445c30U, + 0xc522be02U, + 0xde33bb3aU, + 0xdecaec8dU, + 0x64e84dfaU, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0x10000000U, + 0xf8000000U, + 0x3c000000U, + 0x5a000000U, + 0x1b000000U, + 0xa8800000U, + 0x1c400000U, + 0x7b600000U, + 0x81100000U, + 0x4f080000U, + 0xab040000U, + 0x80860000U, + 0xf8410000U, + 0xd608000U, + 0x3817c000U, + 0xc089e000U, + 0x45c6d000U, + 0xfca6d800U, + 0xaab44400U, + 0xdf386200U, + 0xa7781b00U, + 0x6a1fe880U, + 0x720ba840U, + 0xa2860020U, + 0x1f410030U, + 0xdfe08008U, + 0x2f57c004U, + 0xeb69e03eU, + 0xe496d00fU, + 0x92ced816U, + 0x9ba04406U, + 0xb836622aU, + 0xe87d1b07U, + 0x9c99689eU, + 0x334d6860U, + 0x20676033U, + 0xc994101aU, + 0x6349b828U, + 0x3864543aU, + 0xc597da3dU, + 0xd14d4f01U, + 0xe760b2a6U, + 0xb152757U, + 0x8c0952b5U, + 0x2f83f75dU, + 0x3ec78a81U, + 0xa423b37dU, + 0x7ef1e89fU, + 0x705ea84dU, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0x90000000U, + 0x28000000U, + 0x3c000000U, + 0xd2000000U, + 0x7b000000U, + 0xef800000U, + 0x48400000U, + 0xc9200000U, + 0x88100000U, + 0x90a80000U, + 0xa3040000U, + 0x8b820000U, + 0xbe450000U, + 0xe4248000U, + 0xda914000U, + 0xa269e000U, + 0x64e29000U, + 0x1671d800U, + 0xc81a7c00U, + 0xdefac200U, + 0x23890900U, + 0x2c16a080U, + 0x86a99540U, + 0xbe020020U, + 0x61050010U, + 0x98848028U, + 0xcdc14024U, + 0xee61e00aU, + 0x40b6900fU, + 0xf9fbd834U, + 0x6e0b7c1eU, + 0x754423bU, + 0x24094912U, + 0xb851c0b2U, + 0xad8b4562U, + 0xf514b804U, + 0xa2dac38U, + 0x9dc0fa0aU, + 0x2664e50bU, + 0x4cb13ab3U, + 0x93ffa079U, + 0x10d82bcU, + 0x6d60c57U, + 0xc54f78b6U, + 0xe5f7e954U, + 0x825ac207U, + 0xe4d90911U, + 0xe81ea0b9U, + 0xefd957cU, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0xb0000000U, + 0xf8000000U, + 0xbc000000U, + 0xc2000000U, + 0x57000000U, + 0xc0800000U, + 0x30c00000U, + 0x82200000U, + 0x28b00000U, + 0x66380000U, + 0xcb040000U, + 0x72860000U, + 0x3fc50000U, + 0x4ea58000U, + 0x2277c000U, + 0xf1de000U, + 0xe1321000U, + 0x737cb800U, + 0xb6670400U, + 0x24520600U, + 0xf9aed100U, + 0xa20d2580U, + 0xd7f8e1c0U, + 0x88a60020U, + 0x6b750030U, + 0x4a9d8028U, + 0xe73c02cU, + 0x451be03eU, + 0x5237102fU, + 0x7df93830U, + 0xeba0c415U, + 0x8df7e630U, + 0xe358c10cU, + 0x21d79da0U, + 0x76eae5caU, + 0x84698639U, + 0x7ba81102U, + 0x950b45b4U, + 0x77c31e3U, + 0xf064d80dU, + 0xad52d417U, + 0x1c2b5e1bU, + 0xfd4fc501U, + 0x199d9b92U, + 0xd0f034ceU, + 0xf0daa3b9U, + 0xf91f0d1U, + 0xe10ec589U, + 0x417bf1d7U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x70000000U, + 0x88000000U, + 0xc000000U, + 0xca000000U, + 0x37000000U, + 0x2b800000U, + 0x9d400000U, + 0xd2e00000U, + 0x56b00000U, + 0x55c80000U, + 0xeb040000U, + 0x39820000U, + 0x3e430000U, + 0xc7638000U, + 0xb2f44000U, + 0x5da86000U, + 0xf6725000U, + 0x3f6bb800U, + 0xe7d65c00U, + 0xb23d6a00U, + 0xb62dd700U, + 0x4b375580U, + 0xfd89be40U, + 0x49620020U, + 0x63f30010U, + 0x9b2b8018U, + 0x8fb0401cU, + 0xdf4a6022U, + 0x38c15003U, + 0x9ea03832U, + 0x42d61c0dU, + 0x7abf0a0aU, + 0x5ee88727U, + 0xd956db4U, + 0x2b5ca255U, + 0xdde8a35U, + 0x441fc72aU, + 0x4c3e8d96U, + 0xef2ab253U, + 0x81b55233U, + 0x4e4fcb3fU, + 0x9e425fbdU, + 0x9766396cU, + 0x2af6ed87U, + 0xa9a8e24dU, + 0xb876ea12U, + 0xce6d9739U, + 0x315535b7U, + 0x33fcee7dU, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0x50000000U, + 0x38000000U, + 0x54000000U, + 0x12000000U, + 0xed000000U, + 0x9c800000U, + 0x89400000U, + 0x8a600000U, + 0x7500000U, + 0xc1380000U, + 0x91040000U, + 0x82860000U, + 0xd2450000U, + 0x81e28000U, + 0x9391c000U, + 0x189aa000U, + 0x6a749000U, + 0xbf096800U, + 0x90ede400U, + 0x507cca00U, + 0xdf629300U, + 0xfd31a80U, + 0xfa78d9c0U, + 0xa6660020U, + 0x21550030U, + 0xce3a8028U, + 0x8885c014U, + 0xfb44a00eU, + 0x97659015U, + 0xf3d5e804U, + 0x247d243bU, + 0x5d62ea27U, + 0x7ad2c322U, + 0x62fa52a2U, + 0x5246dc1U, + 0x12370210U, + 0x47efe714U, + 0x2df8b888U, + 0x7ca6aee0U, + 0x9bf5508eU, + 0x6acf8ac1U, + 0x33c9ba8aU, + 0x8d4c49c5U, + 0x210f680eU, + 0xbe8e437U, + 0xfbfe4a14U, + 0x1ba3530cU, + 0xee71ba9eU, + 0x550849d6U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x90000000U, + 0x48000000U, + 0x14000000U, + 0x6e000000U, + 0xc9000000U, + 0xf3800000U, + 0xd4c00000U, + 0x89e00000U, + 0xbb100000U, + 0x7eb80000U, + 0xe5040000U, + 0x11820000U, + 0x4fc30000U, + 0x59648000U, + 0x73524000U, + 0xd18a000U, + 0x9eb77000U, + 0x400c4800U, + 0x15089c00U, + 0xbc8c2600U, + 0x3f4b0f00U, + 0x542cf880U, + 0x947b45c0U, + 0xcde20020U, + 0xbd130010U, + 0x53bc8018U, + 0xa0864024U, + 0x5042a012U, + 0x4fa07005U, + 0x91b2c81bU, + 0xbe8ddc32U, + 0x744a063cU, + 0xaca93f35U, + 0xd83e90a2U, + 0x9845e9eeU, + 0x1ba64e3fU, + 0x9fb1a329U, + 0xe78ab69cU, + 0xcfcae6f7U, + 0x6c68b6a4U, + 0x3fd9e6c9U, + 0xea5436a0U, + 0x969fa6e1U, + 0xae769686U, + 0x7fefd6c1U, + 0x3b1c5ebcU, + 0x4bb60ae2U, + 0xa98c5887U, + 0xf6c835eaU, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0x90000000U, + 0xf8000000U, + 0x4c000000U, + 0x76000000U, + 0x7000000U, + 0xb5800000U, + 0x5f400000U, + 0x91e00000U, + 0x80900000U, + 0xb2980000U, + 0xb1040000U, + 0x52820000U, + 0xdac50000U, + 0xa6a48000U, + 0xa577c000U, + 0x80a6000U, + 0x729fb000U, + 0x51063800U, + 0x6282ac00U, + 0xb2c37a00U, + 0x12a7cf00U, + 0x9f71a480U, + 0x790c44c0U, + 0xc01a0020U, + 0xbbc10010U, + 0xac268028U, + 0xa3b2c024U, + 0x20aee03eU, + 0x9ce87013U, + 0x9a8c581dU, + 0x485d1c01U, + 0xc7a5422dU, + 0xaff56317U, + 0xecadea4U, + 0x5a3f8be0U, + 0xbf71a48cU, + 0xa90c44fcU, + 0x981a001cU, + 0x67c10002U, + 0x2226803fU, + 0xe8b2c01eU, + 0xe32ee021U, + 0xc4a8700eU, + 0xbeec5824U, + 0x978d1c0eU, + 0xe4dd4225U, + 0x9e616333U, + 0xeed0deafU, + 0x31fe8bd2U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0xf0000000U, + 0xb8000000U, + 0xfc000000U, + 0x26000000U, + 0xe3000000U, + 0xc1800000U, + 0xcec00000U, + 0x3ce00000U, + 0x41900000U, + 0xe9780000U, + 0xb5040000U, + 0x5a860000U, + 0x93430000U, + 0x24278000U, + 0x2675c000U, + 0x956fe000U, + 0xb4bd3000U, + 0x30651800U, + 0x49d30c00U, + 0x90daf600U, + 0x8bb7a700U, + 0xa80e2c80U, + 0x5bee9bc0U, + 0x15fe0020U, + 0x5470030U, + 0xdf218018U, + 0x8bf6c03cU, + 0x35a8602eU, + 0x2f58f03fU, + 0x6a72f809U, + 0xab6a3c38U, + 0x3bb9ee30U, + 0x9fe7ab33U, + 0x20135a8fU, + 0xb7bcfcd0U, + 0xc1e7cc9aU, + 0x5f10abddU, + 0xa03c982eU, + 0x5421cc28U, + 0x5e74963fU, + 0x96c570aU, + 0x62bb5482U, + 0x6b6167eaU, + 0x74500e15U, + 0x78199b29U, + 0x5451c283U, + 0x281a30fdU, + 0x7c52da91U, + 0x9c1a3ce4U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0x50000000U, + 0xb8000000U, + 0x64000000U, + 0x7a000000U, + 0xf5000000U, + 0xb5800000U, + 0xd7c00000U, + 0x78600000U, + 0xdff00000U, + 0xca580000U, + 0x6b040000U, + 0xfa860000U, + 0xb7410000U, + 0x4a228000U, + 0xc855c000U, + 0x9cb2000U, + 0x4afd000U, + 0xaedda800U, + 0x9346ac00U, + 0xd0233e00U, + 0x4d558300U, + 0x544a9f80U, + 0xf6f62c0U, + 0xc8be0020U, + 0xc3b50030U, + 0x5afc8008U, + 0x4410c014U, + 0x16fa02eU, + 0x1fbb1019U, + 0x9734081eU, + 0xaabcbc3dU, + 0xc2b5b62dU, + 0xd7cff35U, + 0x52d4099eU, + 0xe8c4df7U, + 0x868fa192U, + 0xea8be1eaU, + 0x3c8e1f96U, + 0x3f8ba2c9U, + 0xd90fa014U, + 0x504b100fU, + 0xc56c083aU, + 0xf5b8bc31U, + 0xfa33b636U, + 0x2b3dff35U, + 0xd7768999U, + 0xe4198decU, + 0x42a481b4U, + 0xe61431ebU, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0x10000000U, + 0x28000000U, + 0x6c000000U, + 0xa2000000U, + 0x55000000U, + 0x89800000U, + 0xc400000U, + 0x1d600000U, + 0xcdb00000U, + 0x25580000U, + 0x73040000U, + 0xf2820000U, + 0xc2c50000U, + 0xf5a08000U, + 0x11114000U, + 0x37cb6000U, + 0x71891000U, + 0xb5eca800U, + 0xe3df4c00U, + 0xa7c3e200U, + 0x4262b00U, + 0xf951cd80U, + 0xf4ae9ac0U, + 0x633a0020U, + 0x20310010U, + 0xb71a8028U, + 0x11604004U, + 0x9fb1e00aU, + 0xe859501bU, + 0xae854828U, + 0x18c21c15U, + 0x44a4aa22U, + 0x46913703U, + 0xe48de787U, + 0xdc6aedf3U, + 0x5f9e87a9U, + 0x82a7fdccU, + 0x8d902fb4U, + 0x120db1e4U, + 0x70ab4dbfU, + 0x4d3edacbU, + 0x6733e027U, + 0x539c5006U, + 0xd0a5c805U, + 0x40935c31U, + 0xcf8fca2eU, + 0x9ae8273fU, + 0xcb594fbaU, + 0xd401a1c4U, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0x70000000U, + 0xb8000000U, + 0xd4000000U, + 0xaa000000U, + 0x6b000000U, + 0xff800000U, + 0xc2c00000U, + 0x9e200000U, + 0x44500000U, + 0xf5980000U, + 0xaf840000U, + 0x4ac20000U, + 0x52250000U, + 0x4a538000U, + 0x8c9dc000U, + 0xef02a000U, + 0xdd875000U, + 0x65c65800U, + 0x6fa47c00U, + 0xff93d600U, + 0x2b3a5100U, + 0x7c937280U, + 0x88bef4c0U, + 0xd8538020U, + 0x739dc010U, + 0x1a82a028U, + 0x447501cU, + 0xbc66582eU, + 0x3d347c35U, + 0x3e2bd62aU, + 0xabee511aU, + 0x3c4972bfU, + 0xb7dff4f0U, + 0x46e20007U, + 0xe9750001U, + 0x4a4b8015U, + 0xfad9c037U, + 0x7c60a03cU, + 0xdd325021U, + 0xee2dd838U, + 0x63edbc39U, + 0x504b7604U, + 0xc9dc0107U, + 0x87e4aabeU, + 0x7df248caU, + 0x77097622U, + 0xa6390131U, + 0xa6172aa5U, + 0x6cff88eaU, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0x10000000U, + 0x48000000U, + 0x54000000U, + 0x96000000U, + 0xdb000000U, + 0x1d800000U, + 0x79400000U, + 0xd9600000U, + 0xf0500000U, + 0x22a80000U, + 0xb5840000U, + 0xfd460000U, + 0x67630000U, + 0x6f508000U, + 0xe12a4000U, + 0x43c6a000U, + 0xafa2b000U, + 0x3575d800U, + 0x89186c00U, + 0xddbd8a00U, + 0x454e6b00U, + 0x8d123280U, + 0x85ca4d40U, + 0xbad08020U, + 0xc6a4030U, + 0x6ca6a018U, + 0x94f2b004U, + 0x425dd812U, + 0x11dc6c15U, + 0x6f9b8a25U, + 0x97d6b36U, + 0xdd6ab287U, + 0xa8240d5eU, + 0xdd302016U, + 0x34fbf00cU, + 0x142bf810U, + 0x49449c29U, + 0x2160f22dU, + 0x9c53b70cU, + 0xb8ace0beU, + 0xe4850a4eU, + 0xf9c118b7U, + 0x4ea29645U, + 0x9f16a83U, + 0xacdb616aU, + 0x311b2a15U, + 0x11bcdb1dU, + 0xaf4feab3U, + 0x8416215fU, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0x10000000U, + 0x68000000U, + 0xa4000000U, + 0x26000000U, + 0x8f000000U, + 0x92800000U, + 0x61c00000U, + 0xfce00000U, + 0x6ff00000U, + 0x89780000U, + 0xa6840000U, + 0xefc60000U, + 0x77e50000U, + 0xcb708000U, + 0xfbb4000U, + 0x6ce12000U, + 0xc7f73000U, + 0x8d797800U, + 0x90801400U, + 0x8c64e00U, + 0x4167c700U, + 0x8cb2cf80U, + 0x7c5b73c0U, + 0x91908020U, + 0x2f4b4030U, + 0xd7192028U, + 0x10b33004U, + 0xf65f781aU, + 0x2c951429U, + 0x6ccece09U, + 0x67588723U, + 0x9d15efa4U, + 0xad8943d8U, + 0x2b79781fU, + 0xdf80142bU, + 0x3a464e0aU, + 0x30a7c72dU, + 0x1852cfa1U, + 0xb7ab73f4U, + 0x3ee8801bU, + 0x6cf4010U, + 0xaa5f2017U, + 0x696302dU, + 0xc1cff806U, + 0x4cde5416U, + 0x8957ee29U, + 0x62bb71aU, + 0xffaa97bcU, + 0x4aec57daU, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0xf0000000U, + 0xa8000000U, + 0x34000000U, + 0x2a000000U, + 0xc3000000U, + 0x6b800000U, + 0x67400000U, + 0x41600000U, + 0x83300000U, + 0x49280000U, + 0xf840000U, + 0x35460000U, + 0xe670000U, + 0xaeb78000U, + 0x5b6d4000U, + 0xf865a000U, + 0x53b75000U, + 0xc9e91800U, + 0x6fa0dc00U, + 0x82107a00U, + 0x72fcab00U, + 0xddec980U, + 0xef0b1140U, + 0xdd78020U, + 0x1f5d4030U, + 0xb8cda038U, + 0x3c73503cU, + 0x544f182aU, + 0x72b7dc0dU, + 0x656ffa0aU, + 0x165eb30U, + 0xa335699aU, + 0x592f4159U, + 0x57871830U, + 0xa943dc10U, + 0x1061fa2aU, + 0x47b6eb3fU, + 0xf3ece9a7U, + 0xf4a1014eU, + 0x75933801U, + 0xbbecc16U, + 0xa5bac21cU, + 0xc4bc2731U, + 0x48382b88U, + 0x36fe2676U, + 0x4fda9398U, + 0xf80aaa5fU, + 0xbc52718cU, + 0x131c9d6dU, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0x30000000U, + 0xe8000000U, + 0xcc000000U, + 0x5e000000U, + 0x39000000U, + 0x43800000U, + 0x8fc00000U, + 0x75e00000U, + 0x68900000U, + 0x10e80000U, + 0x97840000U, + 0x95c20000U, + 0xcee10000U, + 0x94118000U, + 0xc1af4000U, + 0xbc226000U, + 0x6070f000U, + 0xb9f8c800U, + 0xb7af9c00U, + 0x29253e00U, + 0x6df6cf00U, + 0xd7393480U, + 0xa5cb8f40U, + 0x5c718020U, + 0x6fff4010U, + 0x52aa6008U, + 0xeca4f00cU, + 0xff32c83aU, + 0x735a9c33U, + 0x259ebe17U, + 0x43fc8f0eU, + 0x5ca8d490U, + 0x2da53f63U, + 0xa8b2a83dU, + 0x869b6c0aU, + 0xfb7ff60cU, + 0xfe85329U, + 0xb9058a9fU, + 0x3860040U, + 0xafc0d492U, + 0x45e13f6eU, + 0x8090a817U, + 0xdcea6c27U, + 0xc9867601U, + 0xacc31308U, + 0x8d65eaa3U, + 0x1bd7f043U, + 0xb4499cb7U, + 0xd4b1e367U, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0x10000000U, + 0x48000000U, + 0x34000000U, + 0xe2000000U, + 0xaf000000U, + 0xdf800000U, + 0x1cc00000U, + 0x52200000U, + 0xfed00000U, + 0xbaa80000U, + 0x7d840000U, + 0xd3c60000U, + 0x3da50000U, + 0xba108000U, + 0x948a4000U, + 0x5555a000U, + 0x24691000U, + 0x30a47800U, + 0xaa907c00U, + 0xe7cfa600U, + 0x43b7b100U, + 0xf49ca680U, + 0xa2d80d40U, + 0x20b88020U, + 0x390e4030U, + 0x6e93a028U, + 0x3dcc1004U, + 0x20b4f812U, + 0xa51a3c0dU, + 0x8f1a0638U, + 0xd41ea12bU, + 0x4998deb7U, + 0xea587147U, + 0x2fff2634U, + 0xf9edf10fU, + 0xf3610686U, + 0xdf351d5bU, + 0x69daf806U, + 0x353b3c32U, + 0xecc863eU, + 0x5931e10aU, + 0xcddfeb0U, + 0xc1bb2143U, + 0x778efe00U, + 0xc4d49d0eU, + 0xa9aad888U, + 0xd402d04cU, + 0x9201f8afU, + 0x57008065U, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0xb0000000U, + 0x88000000U, + 0xa4000000U, + 0x4a000000U, + 0x5f000000U, + 0x94800000U, + 0x90c00000U, + 0x71e00000U, + 0x89f00000U, + 0x4a980000U, + 0x9a840000U, + 0x55c20000U, + 0xa2610000U, + 0x11b58000U, + 0xcdbc4000U, + 0xd3912000U, + 0x17285000U, + 0x293ff800U, + 0xab572400U, + 0x52cbc600U, + 0xd2ce2f00U, + 0x92c9df80U, + 0xb2ceccc0U, + 0x2cd8020U, + 0x8ac84010U, + 0x2ecb2008U, + 0x64cd502cU, + 0x3bc87822U, + 0xaf4a6429U, + 0x3f8f6612U, + 0x4e6a3f17U, + 0xc79f07a5U, + 0x8d05b8e4U, + 0x1783be3cU, + 0x42444b32U, + 0xe026b99aU, + 0xf194f3caU, + 0x3c2a8797U, + 0xefb9f8d1U, + 0xf8929e3eU, + 0xd1ac1b18U, + 0x7af941bbU, + 0x2833d7e4U, + 0xfaf94186U, + 0x6833d7e6U, + 0xdaf94199U, + 0xd833d7ddU, + 0x52f94182U, + 0x7c33d7d7U, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0x30000000U, + 0xb8000000U, + 0x2c000000U, + 0x2e000000U, + 0xe7000000U, + 0x2e800000U, + 0xa6c00000U, + 0x58e00000U, + 0x61b00000U, + 0xf8c80000U, + 0x5c840000U, + 0xb7c60000U, + 0x2d650000U, + 0x4ff18000U, + 0x75edc000U, + 0x49556000U, + 0x417f7000U, + 0x184e3800U, + 0x4d42f400U, + 0xe9a3f600U, + 0x4e172700U, + 0x55de3d80U, + 0xadd85e40U, + 0xe1d98020U, + 0x5fd9c030U, + 0x30db6028U, + 0x8a5e700cU, + 0x2e99b82eU, + 0xbf7a340bU, + 0x174f160bU, + 0x67c19739U, + 0xc563658bU, + 0x4bf0da69U, + 0xffedce36U, + 0x1455d328U, + 0x8afdcb96U, + 0x590f795bU, + 0x7ae7bda3U, + 0x58b19e70U, + 0x294ae010U, + 0xc8c3b018U, + 0xdfe4d81fU, + 0xdf31443eU, + 0xd60f2e35U, + 0x90626339U, + 0xd4771384U, + 0x1caf3d54U, + 0xdaf71385U, + 0x4a6f3d61U, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0x30000000U, + 0x88000000U, + 0xec000000U, + 0x1a000000U, + 0xb5000000U, + 0x46800000U, + 0xf7c00000U, + 0xe3200000U, + 0x1c900000U, + 0x35780000U, + 0x88840000U, + 0x7cc20000U, + 0x6a70000U, + 0x32d18000U, + 0x5a1c4000U, + 0x2a736000U, + 0x5bcad000U, + 0xf1eea800U, + 0xa9fdb400U, + 0x6a42fe00U, + 0x964f900U, + 0x55f2f480U, + 0x808ea3c0U, + 0x38098020U, + 0xccc84010U, + 0x26696038U, + 0xeb9d00cU, + 0xe1a52822U, + 0x8d52f43bU, + 0x215a1e06U, + 0x3391692dU, + 0x86fcbc91U, + 0xd9c287fdU, + 0x58273618U, + 0x71179d17U, + 0xf73ca2b5U, + 0xfde0eeeeU, + 0x6b300a9dU, + 0x672a5aeaU, + 0x325b7492U, + 0x2216e3e7U, + 0x6b8e021U, + 0x4da5900cU, + 0x77564818U, + 0xa4582437U, + 0xfd14b622U, + 0x9d3cdd0bU, + 0x20e642a5U, + 0xf1b27ef6U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0x50000000U, + 0xf8000000U, + 0xec000000U, + 0xa2000000U, + 0xcd000000U, + 0x7a800000U, + 0x86400000U, + 0x83200000U, + 0x3e500000U, + 0x38b80000U, + 0x67840000U, + 0xc4c60000U, + 0x89630000U, + 0x4f728000U, + 0x33efc000U, + 0xc9bb6000U, + 0x87071000U, + 0x3836800U, + 0x82c25400U, + 0xc2617200U, + 0x1ef4b900U, + 0xb42b8280U, + 0x355ebdc0U, + 0xa9b48020U, + 0xb78cc030U, + 0x9c49e018U, + 0x62a8d014U, + 0xb118083eU, + 0xd795443bU, + 0x5b5a1a28U, + 0x36b2ed33U, + 0xc80cf09eU, + 0x248904e1U, + 0xd1cd8280U, + 0x8f6dbdffU, + 0xc4fe0036U, + 0x35a7003dU, + 0xea148017U, + 0xbe9cc00dU, + 0x6751e005U, + 0xcc3cd004U, + 0xeec60804U, + 0xa0624433U, + 0xb3f69a3eU, + 0x9eaa2d0eU, + 0x4b1b109eU, + 0xc696d4d1U, + 0x2bd90ab2U, + 0x69f039c6U, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0x50000000U, + 0x88000000U, + 0x34000000U, + 0x12000000U, + 0x4f000000U, + 0x8800000U, + 0x2e400000U, + 0xa00000U, + 0x8a300000U, + 0xc3b80000U, + 0x6f840000U, + 0x62c60000U, + 0x4e70000U, + 0x29928000U, + 0xef0c4000U, + 0xeb7da000U, + 0x58629000U, + 0x85d37800U, + 0xc8adc400U, + 0xdcbb200U, + 0x2f9fe500U, + 0x91f06180U, + 0x3adf75c0U, + 0xabd48020U, + 0x61ab4030U, + 0xb84f2038U, + 0x165ed014U, + 0x3f96d822U, + 0xaa0b540dU, + 0xf0feca04U, + 0x8a52113U, + 0x7e315382U, + 0x31b8d0cbU, + 0x708741a0U, + 0xe245a5d2U, + 0x1ea45828U, + 0x3b37143fU, + 0x2a3b6a02U, + 0x2043b118U, + 0x19a42bacU, + 0xe7b214e5U, + 0x467e739cU, + 0xe7e600feU, + 0xaf1199bbU, + 0x184ef1ffU, + 0x665a9209U, + 0x792351bU, + 0x460a3992U, + 0x5efb61deU, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0xd0000000U, + 0x38000000U, + 0xd4000000U, + 0x7a000000U, + 0x91000000U, + 0x6800000U, + 0x47400000U, + 0x96600000U, + 0x3b300000U, + 0x5ba80000U, + 0x1f840000U, + 0xbdc60000U, + 0xa7270000U, + 0x42568000U, + 0xb519c000U, + 0x40eaa000U, + 0xfe1d000U, + 0x61f58800U, + 0x1509b400U, + 0xcf117a00U, + 0x9a7dd300U, + 0x715fa980U, + 0x6d090540U, + 0x3b108020U, + 0xd07ec030U, + 0x85c2038U, + 0x87881034U, + 0xd257280eU, + 0xad1c6435U, + 0xa4eaf21eU, + 0x9de76724U, + 0x1cf65381U, + 0xbd8e1651U, + 0x63550985U, + 0x9b98d57eU, + 0xbad080eU, + 0xe7837403U, + 0x89c35a19U, + 0xd26c328U, + 0xeb500180U, + 0x679fa17cU, + 0x7da8522fU, + 0x882b706U, + 0x5c45db84U, + 0x9e0a26eU, + 0x46f2f3aeU, + 0x1c8cc66aU, + 0x8dd001a3U, + 0x30dfa155U, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0x30000000U, + 0xf8000000U, + 0x4c000000U, + 0x8a000000U, + 0xd9000000U, + 0x17800000U, + 0x6e400000U, + 0xeca00000U, + 0x2a100000U, + 0x8b180000U, + 0x6a840000U, + 0xd7c20000U, + 0xb5e70000U, + 0x6318000U, + 0x3fcfc000U, + 0x6bfe6000U, + 0x51325000U, + 0x8f4bc800U, + 0xed3a3c00U, + 0xa7533200U, + 0x113fc500U, + 0x9555e080U, + 0x643a80c0U, + 0x38d38020U, + 0x2b78c010U, + 0x8ff7e038U, + 0xe529900cU, + 0x314fa83eU, + 0xb23b6c13U, + 0x3d37a22U, + 0x81f93936U, + 0xf8333285U, + 0x80cbd5dbU, + 0xff78489bU, + 0x39f6ecdaU, + 0xae297a3aU, + 0x83ca3906U, + 0xb9f8b2b3U, + 0x143715f2U, + 0xdacda8bdU, + 0xee787cfaU, + 0x9a775225U, + 0x66e9525U, + 0x3c6da89bU, + 0x5d687cf5U, + 0xe6ef520cU, + 0x32aa9521U, + 0xff0fa8adU, + 0x8e9f7ccfU, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0x10000000U, + 0xc8000000U, + 0x24000000U, + 0x2e000000U, + 0xe1000000U, + 0xc0800000U, + 0x9d400000U, + 0x4b600000U, + 0xea300000U, + 0x84880000U, + 0x8f840000U, + 0xfcc20000U, + 0x36a10000U, + 0x2c108000U, + 0xedde4000U, + 0xc53d2000U, + 0xd9cf7000U, + 0xa4e00800U, + 0x26f58400U, + 0x6a2b2a00U, + 0x4f91bb00U, + 0x1b1b4180U, + 0x3c9e7c40U, + 0xd45a8020U, + 0x14fb4010U, + 0x35efa008U, + 0x12b03004U, + 0x85cda832U, + 0x36e4b409U, + 0x25f6020bU, + 0x51ab4f38U, + 0x155063b0U, + 0xc8ba4367U, + 0xee0aebb2U, + 0x8dc4876aU, + 0x7e266189U, + 0xb5510c77U, + 0x98ba8825U, + 0x60ec410U, + 0xb9c48a3aU, + 0x98218b0eU, + 0x7056e9b8U, + 0x763ac860U, + 0x7a4c8220U, + 0x32200f3cU, + 0xef57c391U, + 0xbfbe7369U, + 0x138d4398U, + 0x2053342U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0x90000000U, + 0x28000000U, + 0x94000000U, + 0x3e000000U, + 0xed000000U, + 0xd7800000U, + 0x13c00000U, + 0xbe200000U, + 0x1cb00000U, + 0x4ed80000U, + 0x64840000U, + 0x59460000U, + 0xe2610000U, + 0x9d548000U, + 0x6e494000U, + 0x71e8a000U, + 0x779bf000U, + 0xf6e46800U, + 0x5c153c00U, + 0xa02c5e00U, + 0x6eb89100U, + 0x5ed6f580U, + 0x838f4ec0U, + 0x2ca8020U, + 0x2cac4030U, + 0x83fa2008U, + 0x12b3b024U, + 0xdbd8480aU, + 0x2f078c25U, + 0x7080960fU, + 0xa7465d3bU, + 0x2f66c3b5U, + 0xdad6e3c4U, + 0x558e2b8fU, + 0x5bce9ff7U, + 0x552cd5bbU, + 0x553cfecdU, + 0xef12c834U, + 0xeaabcc09U, + 0x32fab62aU, + 0xdf35ed21U, + 0xa31e8bacU, + 0x17a16fc7U, + 0x276bd88U, + 0x977cc2dfU, + 0xd3f41609U, + 0x15bf1d15U, + 0x305663bfU, + 0x59c913c7U, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0x30000000U, + 0x48000000U, + 0xac000000U, + 0xd2000000U, + 0xb3000000U, + 0x2800000U, + 0x38400000U, + 0x63e00000U, + 0x6f100000U, + 0x98e80000U, + 0x33840000U, + 0x31c60000U, + 0x5d270000U, + 0x7ab18000U, + 0xbd1a4000U, + 0xd9f96000U, + 0x726c9000U, + 0xb7c09800U, + 0x18209400U, + 0x55350200U, + 0xd6ddbf00U, + 0x7bdec880U, + 0xe858af40U, + 0xc99f8020U, + 0xcb94030U, + 0xa20ee038U, + 0x2911d00cU, + 0x3de87812U, + 0x2c06442bU, + 0x1204fa34U, + 0x5305bb2cU, + 0x32855280U, + 0x7046844eU, + 0xcfe3cab8U, + 0xbd11106bU, + 0x2bef48beU, + 0x3102ef70U, + 0x986e006U, + 0x3ec5d000U, + 0x15a67800U, + 0x25f54424U, + 0xea7b7a10U, + 0x43acfb15U, + 0xeae3b281U, + 0x6293547fU, + 0xe82db28bU, + 0xf20545cU, + 0x9b232b4U, + 0x5f991446U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x10000000U, + 0xe8000000U, + 0xb4000000U, + 0x3a000000U, + 0x9f000000U, + 0x85800000U, + 0x3dc00000U, + 0x38e00000U, + 0x34f00000U, + 0x7a280000U, + 0x78840000U, + 0x4b420000U, + 0x96a30000U, + 0xd8d08000U, + 0xabf4000U, + 0x9f19a000U, + 0x6c4fd000U, + 0x8e31f800U, + 0xcb4dac00U, + 0x77b12e00U, + 0x889a700U, + 0x12559780U, + 0x7af9d940U, + 0x5e3a8020U, + 0xa2584010U, + 0x3eb2018U, + 0xc2639004U, + 0xdcb0d83aU, + 0xf7093c2dU, + 0xd093760eU, + 0xd79cdb27U, + 0xbf0fc1a1U, + 0x5495924fU, + 0x759d19aeU, + 0x6c0fae5dU, + 0xb716efa6U, + 0x5958354aU, + 0x746a8e10U, + 0xa4a5771cU, + 0xa3d4ef9aU, + 0x3d3b354cU, + 0x99da0e12U, + 0x32a370eU, + 0xac054f9aU, + 0x3600e553U, + 0x9901f636U, + 0x84809b23U, + 0xf546e190U, + 0xaba5024bU, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x70000000U, + 0xc8000000U, + 0x54000000U, + 0xf2000000U, + 0x39000000U, + 0xe9800000U, + 0x44c00000U, + 0x59e00000U, + 0x5f100000U, + 0xe4b80000U, + 0xb6840000U, + 0x46420000U, + 0xdda30000U, + 0x13b38000U, + 0x3a8e4000U, + 0xf2cea000U, + 0x80699000U, + 0x195cc800U, + 0x9391cc00U, + 0xaffee600U, + 0xa2af00U, + 0xe0300880U, + 0x34e9dc0U, + 0x8a98020U, + 0x3eb94010U, + 0xeb872018U, + 0xf5c0d01cU, + 0x8463e832U, + 0x99d51c15U, + 0x4c5f0e3cU, + 0x5414b30eU, + 0x143c86baU, + 0xbc46ed1U, + 0xe363a6b6U, + 0x4750bec7U, + 0xe1a4e81U, + 0xa3b2a2e1U, + 0xd28cc09bU, + 0xb6cf51eeU, + 0xca6f6632U, + 0xbc5fef19U, + 0xdc152890U, + 0x203d4df6U, + 0x89c1e804U, + 0x12661c29U, + 0xfad48e1aU, + 0xb8def339U, + 0xc350268eU, + 0x641efec9U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0x30000000U, + 0x58000000U, + 0x8c000000U, + 0xee000000U, + 0x7b000000U, + 0x28800000U, + 0xf4c00000U, + 0x94600000U, + 0xe2700000U, + 0x86280000U, + 0xe9840000U, + 0x5460000U, + 0xfd210000U, + 0xe1518000U, + 0x747ac000U, + 0x61786000U, + 0xf2fd7000U, + 0xeb8d800U, + 0x5e1bc400U, + 0x700fe600U, + 0x98508300U, + 0x19f84380U, + 0x8e3ab940U, + 0x5edf8020U, + 0xb66fc030U, + 0xb727e008U, + 0x4052b00cU, + 0x55ff3816U, + 0x40397423U, + 0x15d8de3bU, + 0xc6edf71eU, + 0xcfe69d8aU, + 0x3a364e7dU, + 0xcc889d85U, + 0xee934e48U, + 0x89f1d89U, + 0x57c88e46U, + 0xd0b6fdbfU, + 0x5d4f3e60U, + 0x517645bdU, + 0x8aa98a5cU, + 0x7417b97U, + 0xb822cd40U, + 0xfad6de29U, + 0x4c38f713U, + 0x3bd91db7U, + 0x9de98e68U, + 0xd7677d84U, + 0x96f5fe6eU, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0x70000000U, + 0x78000000U, + 0x64000000U, + 0xf2000000U, + 0xeb000000U, + 0xc800000U, + 0x79c00000U, + 0x6d200000U, + 0x6fb00000U, + 0x3dc80000U, + 0xb9840000U, + 0x10420000U, + 0x35610000U, + 0x66d38000U, + 0xbd1bc000U, + 0x659f2000U, + 0xf6599000U, + 0x44785800U, + 0xdd4ce400U, + 0x6e448e00U, + 0x20630900U, + 0x3f568d80U, + 0xbd5a4640U, + 0x78f98020U, + 0xfc8ec010U, + 0x1766a008U, + 0xc5d7501cU, + 0x8d9ef81eU, + 0xfa5bb419U, + 0xfa7a763cU, + 0xa848bd3aU, + 0x67c4fb83U, + 0x2826fb5eU, + 0x3e377bbbU, + 0x218d3b4bU, + 0x32e05ba7U, + 0x390ab62U, + 0x81fa03b2U, + 0xb0d4f58U, + 0x4a250d93U, + 0xbd318640U, + 0x610ea010U, + 0xd523500cU, + 0x6bb4f823U, + 0x9fceb40dU, + 0x5a83f62eU, + 0xc67d00U, + 0xdaa25ba0U, + 0x12f1ab73U, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0xb0000000U, + 0x18000000U, + 0x1c000000U, + 0x22000000U, + 0x87000000U, + 0xac800000U, + 0x58400000U, + 0x2fe00000U, + 0xfab00000U, + 0x50680000U, + 0x70440000U, + 0x6be20000U, + 0xe4b10000U, + 0x456d8000U, + 0x43c4c000U, + 0x8322e000U, + 0xb1101000U, + 0x1739b800U, + 0x4599a400U, + 0xfb4c2200U, + 0x85576f00U, + 0x62dd6d80U, + 0xb42fa740U, + 0x8da2e020U, + 0x2e501010U, + 0xb459b808U, + 0x5769a42cU, + 0x9cc42206U, + 0x13a36f07U, + 0x7b576d88U, + 0xa7daa761U, + 0xfad600bU, + 0xd165d006U, + 0x5df6d803U, + 0x5f0d7412U, + 0x58b77a12U, + 0x976edb1bU, + 0xfcc0f792U, + 0x83a56c58U, + 0xd351af9aU, + 0xa3d9d856U, + 0x31abb583U, + 0x7462d36eU, + 0x76759a3fU, + 0xabcecb36U, + 0x2f114fa2U, + 0x4238c852U, + 0x561f8d8cU, + 0xa38fb75dU, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0xf0000000U, + 0xd8000000U, + 0x34000000U, + 0xc2000000U, + 0x7b000000U, + 0x20800000U, + 0xa8c00000U, + 0x76e00000U, + 0x50500000U, + 0xccf80000U, + 0xfcc40000U, + 0x84e60000U, + 0x13570000U, + 0x287f8000U, + 0x4e02c000U, + 0xbd07a000U, + 0xa1811000U, + 0x37445800U, + 0xe4a7c400U, + 0xc174e600U, + 0x8cda700U, + 0xb3ad5a80U, + 0xe2bd63c0U, + 0x93e7a020U, + 0x5d11030U, + 0xd9bc5838U, + 0x9363c43cU, + 0xbd12e636U, + 0x875aa70dU, + 0x2f32dab0U, + 0x87efa3deU, + 0xc2980028U, + 0xf054001aU, + 0x1cfe0025U, + 0x34c30028U, + 0x98e18005U, + 0x3d51c032U, + 0xa57e2011U, + 0xd784d01aU, + 0x4e447802U, + 0x5f201439U, + 0xb9311e32U, + 0xeec733cU, + 0xa11a64beU, + 0xbc11c0c6U, + 0xd8dfbcb1U, + 0x5d77c4f6U, + 0xe6cd7abeU, + 0xdeaab3e7U, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0x30000000U, + 0x38000000U, + 0x4000000U, + 0x8e000000U, + 0x13000000U, + 0xa2800000U, + 0xbf400000U, + 0x2a200000U, + 0x4ad00000U, + 0x54480000U, + 0x23440000U, + 0xb0260000U, + 0x3fd70000U, + 0xe9c98000U, + 0x8c85c000U, + 0xbc462000U, + 0x60a37000U, + 0xf9911800U, + 0xcc6cd400U, + 0xf091da00U, + 0xdbeb2100U, + 0x1251ce80U, + 0x6e083640U, + 0x6ce62020U, + 0x61337030U, + 0xd1f91838U, + 0x82f8d40cU, + 0x7fda0eU, + 0x6f382101U, + 0x4d1e4ea3U, + 0x3bcaf644U, + 0xe5818008U, + 0x5bc1c01fU, + 0x5a602032U, + 0x7874701eU, + 0x4d8981bU, + 0xe8a91409U, + 0x4a77fa0fU, + 0x5dd8510bU, + 0x3728d692U, + 0x74b0e24cU, + 0x5239fa05U, + 0xec9b513aU, + 0xce0f5693U, + 0x7ce62277U, + 0x89305a3eU, + 0xddfae108U, + 0x30f9eea5U, + 0x99784670U, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0x10000000U, + 0xf8000000U, + 0x94000000U, + 0x16000000U, + 0x47000000U, + 0x54800000U, + 0x46c00000U, + 0xa600000U, + 0xed900000U, + 0xdd580000U, + 0x1ac40000U, + 0xa0660000U, + 0x70950000U, + 0x5cd88000U, + 0xa183c000U, + 0x6b42a000U, + 0x9325b000U, + 0x67b2b800U, + 0xd56d6400U, + 0xa7ea9600U, + 0x8e2ae300U, + 0x1cca5480U, + 0x259bcec0U, + 0x5ba2a020U, + 0x2b75b030U, + 0x520ab828U, + 0x33f96404U, + 0x7c34963eU, + 0xdb2be325U, + 0x214cd485U, + 0x44d90ed1U, + 0x45868035U, + 0x3542c021U, + 0xa824202aU, + 0x4937703fU, + 0x56ae9809U, + 0xa80e1423U, + 0x36fa0e2dU, + 0xd9b5f70dU, + 0x9e6eda82U, + 0xc168f9f9U, + 0x71ee5ab8U, + 0x692f39efU, + 0x584afaa6U, + 0x9b5f89c7U, + 0xc5c0c2b7U, + 0xd0e12deeU, + 0xc850f4a3U, + 0x7dba7ee1U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0xf0000000U, + 0x88000000U, + 0x74000000U, + 0xa6000000U, + 0x41000000U, + 0x89800000U, + 0xa9c00000U, + 0xdaa00000U, + 0xfa700000U, + 0xf2280000U, + 0xcfc40000U, + 0xbba20000U, + 0xe3f30000U, + 0x23ef8000U, + 0xe9604000U, + 0x93d1a000U, + 0xf6de3000U, + 0x24a98800U, + 0x72860c00U, + 0x347ee00U, + 0xf5e76500U, + 0xc5961b80U, + 0xdcbc3d40U, + 0x81f9a020U, + 0x891a3010U, + 0x770b8818U, + 0x15750c3cU, + 0xea86e22U, + 0x2987251dU, + 0x79c7bba9U, + 0xc2a20d50U, + 0xf6702802U, + 0xa82c3c3aU, + 0x5cc4662eU, + 0xd5266902U, + 0x82b4759eU, + 0xd90c186eU, + 0x60739ba7U, + 0x412b7d78U, + 0x31458012U, + 0xa2e7403cU, + 0xe5142028U, + 0x78f97022U, + 0xdc9da83eU, + 0x9ccf7c22U, + 0x50d24625U, + 0xc05c193fU, + 0x29ee5dadU, + 0x22672459U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x10000000U, + 0xa8000000U, + 0x2c000000U, + 0x52000000U, + 0x5f000000U, + 0x76800000U, + 0x5a400000U, + 0xe3600000U, + 0xadf00000U, + 0x4a780000U, + 0x70440000U, + 0x18620000U, + 0xd5730000U, + 0xa5388000U, + 0x3ea14000U, + 0xe7536000U, + 0x2b299000U, + 0xb26e7800U, + 0xed88f400U, + 0xb13eb200U, + 0xa8a00b00U, + 0xa6535780U, + 0x40ae47c0U, + 0x69ab6020U, + 0xe2d9010U, + 0xf7ec7818U, + 0xf34bf404U, + 0x471e322aU, + 0x38b54b0bU, + 0x379a3794U, + 0xcbf0d7d7U, + 0xf37f983dU, + 0xffc72406U, + 0xada12a20U, + 0x93d72f2fU, + 0xe66a7db8U, + 0x1b8d68d7U, + 0xe03b1db2U, + 0x6b27f8f2U, + 0x5195e58cU, + 0xf10a4ccdU, + 0x707a3793U, + 0x2340d7feU, + 0x4ce79838U, + 0x6833242fU, + 0xb4db2a11U, + 0xb7102f11U, + 0x4348fd9bU, + 0xdf1b28feU, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0xb0000000U, + 0xe8000000U, + 0xe4000000U, + 0xde000000U, + 0xbb000000U, + 0xe8800000U, + 0x24400000U, + 0x4ba00000U, + 0x7c300000U, + 0xfd680000U, + 0xc2440000U, + 0x8ca60000U, + 0xa6b70000U, + 0xe82d8000U, + 0xec634000U, + 0x63512000U, + 0x2b9f000U, + 0x82bc5800U, + 0x42ba0400U, + 0xa2bb0200U, + 0x12bc2d00U, + 0xfab9f980U, + 0x1eb84f40U, + 0xc0b92020U, + 0x7bbdf030U, + 0x933a5838U, + 0xb77d042cU, + 0xfcde823aU, + 0x80eb6d39U, + 0x7d86d9b7U, + 0xbfc2bf6eU, + 0x3366f81aU, + 0x95d7b439U, + 0x7dfbfa2aU, + 0x919c9933U, + 0xf2cf8385U, + 0xf0779649U, + 0x72cf83b4U, + 0x30779677U, + 0x92cf8398U, + 0x8077966eU, + 0x7acf83a8U, + 0x6477967aU, + 0xa4cf838aU, + 0xdf77966bU, + 0x4c4f83a4U, + 0xfb37966fU, + 0x7ef83b9U, + 0x87079661U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x30000000U, + 0x98000000U, + 0x3c000000U, + 0x6e000000U, + 0x53000000U, + 0xb2800000U, + 0xfa400000U, + 0x50600000U, + 0x5ed00000U, + 0xcc080000U, + 0x80440000U, + 0x89620000U, + 0x8d530000U, + 0x89c98000U, + 0x53e0c000U, + 0xf313e000U, + 0xdba87000U, + 0x98371800U, + 0x7a9b5400U, + 0x41293200U, + 0x86767300U, + 0x18fdae80U, + 0x12fc9440U, + 0x33fbe020U, + 0xec7c7010U, + 0x5fbd1818U, + 0xe31c540cU, + 0x45eab226U, + 0xba51b30fU, + 0x494dce9bU, + 0xc4a32454U, + 0xeaf4980cU, + 0x69bc942eU, + 0xac19520cU, + 0xc969c31bU, + 0xbb12d695U, + 0xfac706fU, + 0x3237aa19U, + 0x4b9de727U, + 0x56af7c96U, + 0xa1b69766U, + 0x6e5b56aeU, + 0xb50cb07eU, + 0x43c44a36U, + 0x4a59736U, + 0xcaf064a0U, + 0x39b9c37fU, + 0x41864adU, + 0x6d6dc34cU, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0x50000000U, + 0xe8000000U, + 0x8c000000U, + 0x92000000U, + 0x17000000U, + 0x26800000U, + 0x9ac00000U, + 0xbe600000U, + 0x6bd00000U, + 0xfe880000U, + 0x5cc40000U, + 0xef660000U, + 0xdc510000U, + 0xf3ca8000U, + 0xbfe34000U, + 0x8f926000U, + 0xce2d9000U, + 0x2f763800U, + 0x9b387400U, + 0x519db600U, + 0x7929e300U, + 0x99f7a680U, + 0xc9ff2040U, + 0x33fa6020U, + 0x68f99030U, + 0xfc783808U, + 0x21bd7414U, + 0x5159363aU, + 0x2c4fa323U, + 0xfea146a4U, + 0xdeb4f045U, + 0xe9dab829U, + 0xf38a3416U, + 0x51455627U, + 0x5927330eU, + 0xdbf3fe85U, + 0xf6fac474U, + 0xb979ee3fU, + 0x303c0702U, + 0xbd1c28bdU, + 0xe0eeb75dU, + 0xa7107096U, + 0xd9ef537aU, + 0x5c95feb8U, + 0x66abc450U, + 0xf8b36e34U, + 0xc8df4708U, + 0xfc0e48a3U, + 0x38032775U, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0x50000000U, + 0x98000000U, + 0x5c000000U, + 0xe000000U, + 0xc5000000U, + 0xe0800000U, + 0x54400000U, + 0x59a00000U, + 0xb6900000U, + 0x9d80000U, + 0x41440000U, + 0x61220000U, + 0x1ed50000U, + 0xe7a8000U, + 0xaad0c000U, + 0xd478e000U, + 0x5d17000U, + 0xf3fea800U, + 0xe212c400U, + 0x8798c200U, + 0xb7e77d00U, + 0xf031fc80U, + 0xf0cefac0U, + 0x3b5ae020U, + 0x9e047010U, + 0xbd042828U, + 0x4c820414U, + 0x92402226U, + 0x58a60d17U, + 0x4175483U, + 0x96983ef1U, + 0x3d602218U, + 0x63760d05U, + 0x1aef54beU, + 0xa00c3ef9U, + 0x74ba2204U, + 0x82370d17U, + 0x2bcfd4b3U, + 0x26ddfee2U, + 0x26c2423dU, + 0x26e7bd38U, + 0x3ab11c88U, + 0xc38b8ac9U, + 0x817e4800U, + 0x9d57b43aU, + 0xbbc6a04U, + 0x7db4b922U, + 0x3009bea3U, + 0xcb847c4U, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0x90000000U, + 0x38000000U, + 0xfc000000U, + 0xea000000U, + 0x61000000U, + 0x30800000U, + 0xcb400000U, + 0xf0a00000U, + 0xb0100000U, + 0x31580000U, + 0x72440000U, + 0xcc260000U, + 0x99550000U, + 0xf4fc8000U, + 0xdcd5c000U, + 0x4139e000U, + 0xa0365000U, + 0x12098800U, + 0x7fb94400U, + 0x4c773a00U, + 0xc12a1500U, + 0x396ce880U, + 0xa4481ec0U, + 0xa59fe020U, + 0x5e235030U, + 0x64550828U, + 0x1e7c8424U, + 0xde96da0eU, + 0x4518453fU, + 0xcd6360baU, + 0x58f45ad8U, + 0xec6c5a2cU, + 0x4ac88502U, + 0x11de0094U, + 0x4103cac8U, + 0x60823222U, + 0x53469113U, + 0x9ca232a1U, + 0x62145bdaU, + 0xac5a809fU, + 0xa8c20acaU, + 0x6665d21eU, + 0x5971c108U, + 0x8fa93aa2U, + 0x1d29dfeaU, + 0x836eda88U, + 0x5d4e8fedU, + 0xf91dd281U, + 0x47670bfcU, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0xb0000000U, + 0xf8000000U, + 0x1c000000U, + 0x32000000U, + 0xeb000000U, + 0x73800000U, + 0x21400000U, + 0x7de00000U, + 0x55b00000U, + 0x30880000U, + 0x42440000U, + 0x8a620000U, + 0xcaf10000U, + 0xdc6d8000U, + 0x6b73c000U, + 0xc62ae000U, + 0xd149000U, + 0xe6d8d800U, + 0x96795c00U, + 0x342a6a00U, + 0x8612bf00U, + 0x55b9580U, + 0xff3cc840U, + 0xadc8e020U, + 0xfda59010U, + 0xecd55808U, + 0x25fa9c2cU, + 0x75688a3eU, + 0x6bf22f07U, + 0x18e94d8cU, + 0x2bb0947aU, + 0xc18d0a3cU, + 0xaec5ef18U, + 0xbea1ad97U, + 0xab550479U, + 0x42b85212U, + 0x858f7307U, + 0x70c127a6U, + 0xbfa32b64U, + 0x9fd31fb5U, + 0xda7ee745U, + 0x2e29ad8aU, + 0x19110450U, + 0x10da523fU, + 0xe37e7306U, + 0x66aca78aU, + 0x23d0eb57U, + 0x1879ffb4U, + 0x1d2a7750U, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0x50000000U, + 0x98000000U, + 0x1c000000U, + 0x5e000000U, + 0xab000000U, + 0x85800000U, + 0x3cc00000U, + 0xa6600000U, + 0x23700000U, + 0xbc880000U, + 0xd3c40000U, + 0xc1e20000U, + 0x5ab70000U, + 0xfc6a8000U, + 0xcdf0c000U, + 0xa5cae000U, + 0xf961f000U, + 0x8cf5d800U, + 0x414fec00U, + 0xd1278600U, + 0x2ad10300U, + 0x101ba380U, + 0xe6fdb840U, + 0x27c8e020U, + 0xac66f010U, + 0x12775838U, + 0x300b2c14U, + 0xcf876626U, + 0xedc3f307U, + 0x7ae6fb97U, + 0xa735946aU, + 0x8caf0601U, + 0xad96c31fU, + 0x31bbc391U, + 0x9e6c885cU, + 0xc8f7d829U, + 0xa348ec23U, + 0x9425061fU, + 0xcc55c328U, + 0x2d5b43b8U, + 0x3e5f487bU, + 0x57ddb837U, + 0x1d1adc0cU, + 0xc47abe15U, + 0xb8881f3fU, + 0xd1c37d8bU, + 0xd4e39753U, + 0x243625a3U, + 0xdd2fbb44U, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0x10000000U, + 0x38000000U, + 0xc4000000U, + 0x6e000000U, + 0x59000000U, + 0x36800000U, + 0xb7c00000U, + 0xb5e00000U, + 0xc7900000U, + 0xc2f80000U, + 0x62c40000U, + 0xe1620000U, + 0xb550000U, + 0x9a988000U, + 0xef15c000U, + 0xe43c2000U, + 0xada27000U, + 0x13304800U, + 0xb74d7400U, + 0xfa4f1e00U, + 0x7ac91f00U, + 0xe009d480U, + 0x256f53c0U, + 0xf03e2020U, + 0x1ba77010U, + 0x3e30c828U, + 0xc7ccb404U, + 0xe8893e0eU, + 0x53aa6f31U, + 0xa75b1c9bU, + 0x3df6e7d6U, + 0xd42f9e2dU, + 0x3a18df3dU, + 0x25d7f485U, + 0xb95823f5U, + 0xacf6e81eU, + 0xaeafc439U, + 0xfdbf60bU, + 0x5b33db10U, + 0xbb4aa2a5U, + 0xd84948e7U, + 0xa1c8a2afU, + 0x1d8c48dcU, + 0x572822b1U, + 0xf39d88ccU, + 0xb19602adU, + 0xffaf8c8U, + 0xa246cab3U, + 0xdba64cd9U, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0x70000000U, + 0x8000000U, + 0xf4000000U, + 0x12000000U, + 0x67000000U, + 0x1800000U, + 0xe8400000U, + 0xb9200000U, + 0xb6f00000U, + 0x5c680000U, + 0x4d440000U, + 0xe7a20000U, + 0x83310000U, + 0x9b0b8000U, + 0x3f944000U, + 0x9fbda000U, + 0x69dd9000U, + 0x78eb800U, + 0x55574c00U, + 0x85586200U, + 0x654b9900U, + 0xbbb4ef80U, + 0x9bce9f40U, + 0xbe77a020U, + 0x74a89010U, + 0x48a73808U, + 0x16b20c1cU, + 0x314e4202U, + 0x99b2493dU, + 0xd4cff784U, + 0x3bf04359U, + 0x86eb7a20U, + 0x6281452aU, + 0xb3c235a6U, + 0xe2624a71U, + 0x6c532db5U, + 0x6dd9967eU, + 0x5d8e7795U, + 0xe6510375U, + 0xe6df5a0cU, + 0xe2099504U, + 0xf712ad87U, + 0xd778d64fU, + 0x3c3a57b0U, + 0x8e99d348U, + 0x1b2fc21aU, + 0x61e3093bU, + 0xfb13d7bbU, + 0x797c934cU, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0xd0000000U, + 0x88000000U, + 0x54000000U, + 0x96000000U, + 0x31000000U, + 0x7f800000U, + 0xfec00000U, + 0x91200000U, + 0x85500000U, + 0x24c80000U, + 0xbdc40000U, + 0xf1a20000U, + 0x99150000U, + 0xaeae8000U, + 0x2c704000U, + 0x4d98a000U, + 0xa30db000U, + 0xe7610800U, + 0x6c30bc00U, + 0x45fed600U, + 0x35bef900U, + 0xc5dd4280U, + 0x5f6fca40U, + 0x37d2a020U, + 0xf78cb010U, + 0x5d258828U, + 0x2f51fc34U, + 0xa7caf622U, + 0x3d460915U, + 0x9de26aa5U, + 0x4b76864cU, + 0xe31fde3fU, + 0x524e452fU, + 0xd083948cU, + 0xa4413355U, + 0x2667e28bU, + 0xbb77a6aU, + 0xc73d2811U, + 0xb69c4c0eU, + 0x6f8bfe3eU, + 0x6126b515U, + 0x9d54bcb0U, + 0x58cc7f50U, + 0xafc09caaU, + 0xdea48f57U, + 0x8397b49eU, + 0xb9e9c351U, + 0x7290ca9dU, + 0x266a3663U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0x30000000U, + 0x68000000U, + 0x3c000000U, + 0x52000000U, + 0xf7000000U, + 0x69800000U, + 0x66400000U, + 0x91600000U, + 0x20b00000U, + 0x52580000U, + 0xf7440000U, + 0xb1e60000U, + 0xf2710000U, + 0x5ff98000U, + 0x4f574000U, + 0xad2fe000U, + 0x2a3f9000U, + 0x93743800U, + 0x377f0c00U, + 0x91965200U, + 0x9a8adb00U, + 0x59291d80U, + 0xb4392ec0U, + 0x7e71e020U, + 0xa5fa9030U, + 0xa453b808U, + 0xa6ad4c0cU, + 0xd37e321aU, + 0x57970b0fU, + 0x238d4594U, + 0xa5aff2fdU, + 0x24fdea3aU, + 0xdcd39729U, + 0x20692facU, + 0xb0db25c4U, + 0x4a8325aeU, + 0xa1c322c2U, + 0x72203210U, + 0x1f520b3dU, + 0x152ac59fU, + 0x6e3db2c9U, + 0xa5758a21U, + 0xc67e4700U, + 0x611577b6U, + 0x3049f9d8U, + 0x30892f8cU, + 0xa2b25f4U, + 0xfbbb258dU, + 0xb13722caU, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0x70000000U, + 0xa8000000U, + 0xec000000U, + 0xb6000000U, + 0x95000000U, + 0xef800000U, + 0x61c00000U, + 0x55200000U, + 0x90700000U, + 0xc3480000U, + 0x36c40000U, + 0xfda60000U, + 0x41370000U, + 0xe32b8000U, + 0xacd14000U, + 0x2ff96000U, + 0x332eb000U, + 0x54d52800U, + 0xfbfb3c00U, + 0xb12cee00U, + 0x33d3d900U, + 0xdb7b0b80U, + 0x1c6b3640U, + 0x7db76020U, + 0x906db030U, + 0x7bb0a838U, + 0x4d697c1cU, + 0x8300e2aU, + 0x32af293bU, + 0x2412c3adU, + 0xfb5cfa65U, + 0x139a461bU, + 0x773da528U, + 0x1f8885adU, + 0xa0615f78U, + 0x5a12c3baU, + 0x325cfa46U, + 0x21a460aU, + 0x1ffda519U, + 0xbb288591U, + 0x28d15f54U, + 0x95fac3b9U, + 0x6028fa46U, + 0x8654462bU, + 0x99bea522U, + 0x33cd05afU, + 0x63831f47U, + 0x67c6238cU, + 0x88240a6bU, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0xb0000000U, + 0xd8000000U, + 0xd4000000U, + 0x2a000000U, + 0xd3000000U, + 0x62800000U, + 0xcbc00000U, + 0x59e00000U, + 0x64500000U, + 0x7f80000U, + 0x89440000U, + 0x62220000U, + 0x45b50000U, + 0x7ad8000U, + 0x7cbac000U, + 0xec60a000U, + 0x6f165000U, + 0x5ade1800U, + 0x40745400U, + 0x3f4c3e00U, + 0xdd6c3f00U, + 0xd8df6a80U, + 0x7f7073c0U, + 0xb3cd2020U, + 0x87ac9010U, + 0x3cbeb828U, + 0x4c62042cU, + 0xdf122636U, + 0x82d86b35U, + 0x9473548aU, + 0x154c4cf4U, + 0xe6a4ab8U, + 0xba58e3e2U, + 0xb4b1981eU, + 0xea2b9425U, + 0xe3f91e1fU, + 0x3b44af3bU, + 0xc523d2a4U, + 0xbd3777d0U, + 0xc76a8633U, + 0x93da3b09U, + 0x69f74c9dU, + 0xe20918dcU, + 0xd549f497U, + 0xee6b1cceU, + 0xaa5bd294U, + 0xdcb377ccU, + 0xe6288609U, + 0x1dff3b2aU, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x30000000U, + 0x48000000U, + 0x84000000U, + 0x76000000U, + 0x3000000U, + 0xa1800000U, + 0x400000U, + 0xca00000U, + 0x46f00000U, + 0xfd480000U, + 0x85c40000U, + 0x6ae20000U, + 0x51530000U, + 0xe6398000U, + 0xc2ce4000U, + 0x12822000U, + 0xa9c2b000U, + 0xe8e29800U, + 0xc56cc00U, + 0xf0be6200U, + 0x5d0bf500U, + 0x99679f80U, + 0x3413fe40U, + 0x501ba020U, + 0xd9fcf010U, + 0x5928b818U, + 0x97507c0cU, + 0xed3efa12U, + 0x874e3921U, + 0x54c07d9dU, + 0xee664b40U, + 0x8b961f88U, + 0x8759be50U, + 0x7adb803bU, + 0xd09d400dU, + 0x353ba035U, + 0x5b4cf00cU, + 0xbec0b815U, + 0x67647c35U, + 0x9314fa0cU, + 0xd7993930U, + 0xa2bbfdafU, + 0x380b0b7bU, + 0x23e5bfa6U, + 0x69d14e63U, + 0xe6f93821U, + 0x62aa3c3eU, + 0x3616da0fU, + 0x4d1b8904U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0x10000000U, + 0xe8000000U, + 0x14000000U, + 0x22000000U, + 0x8d000000U, + 0x19800000U, + 0xf7c00000U, + 0x69200000U, + 0x14700000U, + 0x78980000U, + 0xaa440000U, + 0xf4e60000U, + 0x94530000U, + 0xaf688000U, + 0x541b4000U, + 0x1802a000U, + 0x2c041000U, + 0xbe07e800U, + 0xab070c00U, + 0x5e805e00U, + 0x7742f900U, + 0xa565db80U, + 0x79760c0U, + 0x1c4a2020U, + 0x316f5030U, + 0x4f1d4818U, + 0xde871c04U, + 0xb741b63aU, + 0xc566f505U, + 0x17950588U, + 0xf44ad9e3U, + 0x256b5ba6U, + 0x6d1f20cdU, + 0x53800022U, + 0xaec00031U, + 0x32a0003cU, + 0x7eb0002bU, + 0xe038000fU, + 0x5df40003U, + 0xc75e0025U, + 0xa767000bU, + 0x3a96801aU, + 0x9dcc4033U, + 0x2aac202bU, + 0xf83c5005U, + 0x71f5c834U, + 0x795c5c12U, + 0xc63163fU, + 0x6412e531U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0x50000000U, + 0x58000000U, + 0x4c000000U, + 0x2e000000U, + 0x59000000U, + 0x57800000U, + 0x2b400000U, + 0x14a00000U, + 0xb4100000U, + 0x3ac80000U, + 0x32c40000U, + 0xd6e60000U, + 0xdf310000U, + 0xe19a8000U, + 0x26aec000U, + 0x6b306000U, + 0x139e7000U, + 0x29ad4800U, + 0x79b0fc00U, + 0x195efa00U, + 0x34c3500U, + 0xa0845880U, + 0xe5c60240U, + 0x4862e020U, + 0xdbf4b030U, + 0xc27b2808U, + 0xf01f8c14U, + 0xf0e93216U, + 0x62120913U, + 0xbfcac28bU, + 0x33444756U, + 0xb8a3f0b5U, + 0xea164e7aU, + 0x6bc9322dU, + 0x71420909U, + 0x9fa2c290U, + 0xbc90474bU, + 0x5b0df088U, + 0x60a34e42U, + 0x6615b20eU, + 0x65cdc931U, + 0x78402294U, + 0x9024f764U, + 0xdbd6d8bcU, + 0x61acc24aU, + 0x8db4800bU, + 0xb5bc003U, + 0x7c4ce02bU, + 0xba01b027U, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0xf0000000U, + 0x68000000U, + 0xcc000000U, + 0xae000000U, + 0x27000000U, + 0xf7800000U, + 0x98c00000U, + 0xa7a00000U, + 0x5fb00000U, + 0xdba80000U, + 0x9440000U, + 0x64620000U, + 0xe9910000U, + 0x7df8000U, + 0x44cf4000U, + 0x41506000U, + 0xa87e7000U, + 0x77bb800U, + 0xacfd7c00U, + 0x223ee600U, + 0xf69ead00U, + 0x54ad7580U, + 0x52c5f940U, + 0x82a7e020U, + 0xf1353010U, + 0xbe9d808U, + 0x65a20c3cU, + 0x66b2de1aU, + 0x43289133U, + 0x5a01f3abU, + 0x9d042449U, + 0xfa86ad9dU, + 0xda46f576U, + 0x29e2be01U, + 0x7c56e13bU, + 0xe2fa4ba4U, + 0x9539584dU, + 0xb9184b88U, + 0x98685850U, + 0xff67cbbfU, + 0x98171852U, + 0x541fabb6U, + 0x4aed6844U, + 0xc9261387U, + 0xeff11468U, + 0x674f7583U, + 0x9394f975U, + 0x6ad86000U, + 0xd64a7018U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0xb0000000U, + 0x68000000U, + 0xdc000000U, + 0x96000000U, + 0xb9000000U, + 0x1c800000U, + 0xf400000U, + 0xefa00000U, + 0x80300000U, + 0xba680000U, + 0xddc40000U, + 0xade20000U, + 0x59130000U, + 0xaa1d8000U, + 0x458f4000U, + 0x3fd0e000U, + 0x387db000U, + 0xf85f4800U, + 0x64a82400U, + 0x4ba0da00U, + 0x3231ad00U, + 0xf168b980U, + 0xea44df40U, + 0x25256020U, + 0x5676f010U, + 0xf94da818U, + 0x3ab6942cU, + 0x242a121aU, + 0x92e2c937U, + 0x49283a5U, + 0xdddfc26eU, + 0x376d11a7U, + 0xcb464b53U, + 0xeda57203U, + 0xa333391cU, + 0x51e8abacU, + 0xc301166cU, + 0x1b8063b4U, + 0x16c1725fU, + 0xda67d9b0U, + 0xb1d52f40U, + 0x157f4811U, + 0x7ed82426U, + 0x9ce8da0cU, + 0xb585ad3bU, + 0xebc2b9afU, + 0x84e3df77U, + 0xfd92e004U, + 0xa15eb020U, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0x50000000U, + 0x38000000U, + 0xd4000000U, + 0x16000000U, + 0xd9000000U, + 0x6a800000U, + 0xe9400000U, + 0x73200000U, + 0xe1700000U, + 0xa1b80000U, + 0x71c40000U, + 0xdd620000U, + 0x3dd50000U, + 0x690a8000U, + 0x691dc000U, + 0x4f70a000U, + 0xecbfb000U, + 0xad454800U, + 0xbd221400U, + 0x1c752a00U, + 0xb53f0900U, + 0xad84b380U, + 0x6c431c0U, + 0xfae22020U, + 0x8167010U, + 0x7a6fe828U, + 0xa9cca414U, + 0x32f8e20eU, + 0x59e5dd35U, + 0x3993b985U, + 0x96ad48f6U, + 0xd0297bbaU, + 0x1b6ee5eaU, + 0x574d2a14U, + 0x6dbb093cU, + 0xa3c6b38eU, + 0x8a6131fdU, + 0xa50a01cU, + 0xc4cfb01cU, + 0xfe7d482dU, + 0xa1a61402U, + 0x9c372a1bU, + 0x649a090cU, + 0x19b6339aU, + 0x2e5df1fdU, + 0x71508022U, + 0xd14cc014U, + 0x6cb82032U, + 0xed477038U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0x50000000U, + 0x88000000U, + 0xd4000000U, + 0xce000000U, + 0xfb000000U, + 0xb8800000U, + 0xc3400000U, + 0xa4e00000U, + 0xe8500000U, + 0x8ab80000U, + 0x69c40000U, + 0x46a60000U, + 0xa1330000U, + 0xb22a8000U, + 0xb4584000U, + 0x7494a000U, + 0xef9b7000U, + 0xe3325800U, + 0x1b2d0400U, + 0x8ddbfa00U, + 0x6a557700U, + 0x43bfaa80U, + 0x4569c0U, + 0xd0662020U, + 0xd9173030U, + 0x9f58f818U, + 0x84117414U, + 0x98dd2222U, + 0xd9d73335U, + 0x807c70b3U, + 0x6be02efeU, + 0xed5f28eU, + 0x5afc6dc0U, + 0xf1a3da11U, + 0x2bb5471eU, + 0xa06bd298U, + 0x453f5dfbU, + 0x40052220U, + 0xa0033313U, + 0x300270a9U, + 0xd8072ef7U, + 0x5c017298U, + 0x1a032df4U, + 0x3503fa38U, + 0x4381773cU, + 0x7bc1aa84U, + 0x67a269f9U, + 0x4cb2a035U, + 0x62e87004U, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0xd0000000U, + 0x8000000U, + 0x9c000000U, + 0x32000000U, + 0xeb000000U, + 0xa0800000U, + 0xc1400000U, + 0x1f600000U, + 0xc2700000U, + 0xc7e80000U, + 0x37c40000U, + 0x83260000U, + 0x90950000U, + 0xf15e8000U, + 0x5f8c4000U, + 0x7f36e000U, + 0x5a8a9000U, + 0x66b0d800U, + 0xa04dc400U, + 0xc013aa00U, + 0x281d0b00U, + 0x74e99b80U, + 0xc3440340U, + 0x4c606020U, + 0x86f2d030U, + 0x70a83828U, + 0x65a65434U, + 0xa4d3f202U, + 0xefbd8f27U, + 0x533c518cU, + 0x607ed87aU, + 0x341f4388U, + 0x86ecc740U, + 0x88454a0fU, + 0x3ce79b34U, + 0x4fb1439bU, + 0xf3cdc75eU, + 0x95d5ca0eU, + 0x883adb09U, + 0x78ff23b0U, + 0x115e1769U, + 0xef8d7212U, + 0x731cf01U, + 0x1e8ab18bU, + 0xc0b4485bU, + 0xe54f9babU, + 0xb9910344U, + 0xa2dee002U, + 0xa4e900dU, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0x30000000U, + 0xf8000000U, + 0x14000000U, + 0x32000000U, + 0x1d000000U, + 0xa2800000U, + 0x60400000U, + 0xa4200000U, + 0x7f00000U, + 0x93080000U, + 0xffc40000U, + 0xf6e20000U, + 0xeb970000U, + 0xecd98000U, + 0xb53bc000U, + 0xa12ea000U, + 0x6f309000U, + 0x2e6c6800U, + 0xd4905400U, + 0x3b5fe200U, + 0x4bf8d100U, + 0x8b4e6780U, + 0xfe63440U, + 0x23152020U, + 0x559c5010U, + 0x499b4838U, + 0x379b040cU, + 0xdc9d2a3eU, + 0x99181505U, + 0xaadded8cU, + 0xea3eb147U, + 0x6aca588U, + 0x89f6b548U, + 0x200a0fb1U, + 0x7e42605dU, + 0x3f20c202U, + 0x5a778126U, + 0x84ceafb7U, + 0x7521f074U, + 0x13772a01U, + 0xf44b1527U, + 0x38666d9dU, + 0xedd27149U, + 0x87fb85b0U, + 0x3d4de546U, + 0x8e0c7aaU, + 0x4096a44dU, + 0x4959480eU, + 0xb6fc042aU, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0xf0000000U, + 0x78000000U, + 0x6c000000U, + 0x1e000000U, + 0x55000000U, + 0x77800000U, + 0x3cc00000U, + 0xcc200000U, + 0xd9100000U, + 0x51e80000U, + 0xce440000U, + 0x4f620000U, + 0x9df50000U, + 0xc6df8000U, + 0x75bfc000U, + 0x9e4d6000U, + 0x4993f000U, + 0xb1aa2800U, + 0x4c26fc00U, + 0x9914c600U, + 0xf1eb3100U, + 0x3e447080U, + 0x3762ab40U, + 0xf1f0e020U, + 0xd8d93010U, + 0x20b8c828U, + 0xe9cacc3cU, + 0x75538e1eU, + 0x7d8e3d1bU, + 0x95329e87U, + 0xc8fb6655U, + 0x3faa56bdU, + 0x7121aa5fU, + 0xaa91d8bbU, + 0x372b975aU, + 0xad614602U, + 0xbef5f104U, + 0xa05c90a2U, + 0xc4ff9b55U, + 0x31aa2815U, + 0xc26fc0cU, + 0x3914c626U, + 0x1eb3102U, + 0x46447088U, + 0x5b62ab42U, + 0xeff0e035U, + 0x8dd9301bU, + 0x5738c80cU, + 0xd50acc37U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0x30000000U, + 0x48000000U, + 0x4c000000U, + 0xe2000000U, + 0xd000000U, + 0x44800000U, + 0x29400000U, + 0x3200000U, + 0xb8d00000U, + 0xebe80000U, + 0xc8c40000U, + 0xd2e60000U, + 0x58b30000U, + 0x21198000U, + 0x757e4000U, + 0x99886000U, + 0xe7361000U, + 0x37dce800U, + 0xa09ee400U, + 0x94baea00U, + 0x31ee2900U, + 0x61c05e80U, + 0x6864c340U, + 0xe6f7e020U, + 0x6fbb5030U, + 0xe6d0818U, + 0xb706b40cU, + 0xdd866212U, + 0xdbc2dd13U, + 0xf1605cb8U, + 0x14770e43U, + 0x9dfcd4b1U, + 0xa2cbfa7aU, + 0xc114d6b8U, + 0xb78c3752U, + 0xc831e210U, + 0x1e5b9d1dU, + 0xfd5fbc86U, + 0xf6d85e4aU, + 0xc61fdc93U, + 0xd0fa4e77U, + 0x464d34b7U, + 0xb853aa62U, + 0xcca85e8cU, + 0x74e0c351U, + 0x5bb1e039U, + 0xda98502aU, + 0x6dbc883dU, + 0xf36cf435U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0x30000000U, + 0x58000000U, + 0x54000000U, + 0x6000000U, + 0x61000000U, + 0xd0800000U, + 0x2dc00000U, + 0x96a00000U, + 0x59d00000U, + 0x7b80000U, + 0x88440000U, + 0x8de60000U, + 0x93b10000U, + 0x70498000U, + 0xf7eec000U, + 0xc6b8a000U, + 0xa8c33000U, + 0xd8258800U, + 0x6114c400U, + 0x77988e00U, + 0xc550e500U, + 0x987d5680U, + 0x69e081c0U, + 0xdb72020U, + 0x654cf030U, + 0x116ca808U, + 0xd27d340cU, + 0xbae3a616U, + 0xaa361115U, + 0x9109d081U, + 0x768a60d8U, + 0x62ca5894U, + 0x152fa4fbU, + 0xcd9b568dU, + 0x6e5181eaU, + 0x5bfea03fU, + 0xc3a2300bU, + 0x5f54083cU, + 0x37e0425U, + 0xf2662e3fU, + 0xf3f2d53bU, + 0x31a95ea1U, + 0x165e85efU, + 0xe1f10e06U, + 0xb6ae2517U, + 0xb7ddf692U, + 0x74b7b1edU, + 0x1cca82eU, + 0x2aad3404U, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0x30000000U, + 0x88000000U, + 0x54000000U, + 0xfa000000U, + 0x37000000U, + 0x21800000U, + 0x60c00000U, + 0x30200000U, + 0x91300000U, + 0x1bb80000U, + 0x92440000U, + 0x43620000U, + 0x42d70000U, + 0x51298000U, + 0xc7084000U, + 0x8f3ca000U, + 0x9806d000U, + 0x4c053800U, + 0xf603cc00U, + 0x21046600U, + 0x3080b100U, + 0xd8404180U, + 0xbc67b9c0U, + 0xd7572020U, + 0xfbe99010U, + 0x48281838U, + 0x6b895c0cU, + 0x197ffe22U, + 0xd962ad15U, + 0x5d09fbeU, + 0x18a884cdU, + 0xc3cda7a8U, + 0xcd1f48c8U, + 0x6a33c194U, + 0x8c3cf9f8U, + 0x3380003cU, + 0x73c0002dU, + 0x83a00034U, + 0xa2f00004U, + 0x78180000U, + 0xb40031U, + 0xb37a0019U, + 0x16630017U, + 0x18538011U, + 0xe66b4025U, + 0xb6ef2012U, + 0x1ead901cU, + 0xcaca1834U, + 0x799e5c2aU, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0x50000000U, + 0xe8000000U, + 0x2c000000U, + 0xce000000U, + 0xdf000000U, + 0x74800000U, + 0xa0400000U, + 0x10a00000U, + 0x19f00000U, + 0x28880000U, + 0x4fc40000U, + 0xe6660000U, + 0x18150000U, + 0xda5a8000U, + 0x427b4000U, + 0x1dcb6000U, + 0x76e17000U, + 0xca577800U, + 0x93fb6400U, + 0x8c0da200U, + 0xc782d500U, + 0x7ac22780U, + 0x9fe5e840U, + 0xc5d7e020U, + 0x553f3030U, + 0x95ee9828U, + 0xa1555414U, + 0x7d7fba3aU, + 0x5949c10bU, + 0xcea47db3U, + 0x4ef21977U, + 0x800985bdU, + 0x99823d58U, + 0xedc7478cU, + 0x97659862U, + 0x43941838U, + 0xb69e143cU, + 0x369cda18U, + 0xf69cb12eU, + 0x569d05a2U, + 0x6987d44U, + 0xee98a78dU, + 0xc29ea874U, + 0xc9c8029U, + 0xd39e403dU, + 0xa719e006U, + 0x75e303dU, + 0x17fa1812U, + 0xe0f141eU, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0xb0000000U, + 0x8000000U, + 0x24000000U, + 0xa000000U, + 0xbd000000U, + 0x75800000U, + 0xfbc00000U, + 0xaa600000U, + 0xf9100000U, + 0x1bc80000U, + 0x3f440000U, + 0x1a260000U, + 0xc7b30000U, + 0x1c3d8000U, + 0x75dc4000U, + 0xfc0b2000U, + 0x73215000U, + 0x10356800U, + 0xaefd6c00U, + 0x183f3e00U, + 0x6fde6300U, + 0x990a5080U, + 0x9aa24a40U, + 0xcdf0a020U, + 0x979e1030U, + 0x23abc818U, + 0x47547c2cU, + 0x826f7602U, + 0x28355f09U, + 0x42fb8682U, + 0x563e056fU, + 0x68db6ebdU, + 0x598b294eU, + 0x30e17092U, + 0x96531a62U, + 0x79edc83cU, + 0xb4f77c1aU, + 0x981af61eU, + 0xd6d1f3bU, + 0xcb6a69aU, + 0x82bc5545U, + 0x9b86aaU, + 0xfb2e0543U, + 0x11136e8dU, + 0x4fcf2978U, + 0x5d477096U, + 0x33201a4eU, + 0xb0304819U, + 0x7efb3c3fU, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0x90000000U, + 0xb8000000U, + 0x4c000000U, + 0x26000000U, + 0xb7000000U, + 0x86800000U, + 0x64c00000U, + 0xcd600000U, + 0xde700000U, + 0xa2280000U, + 0x71440000U, + 0xdd260000U, + 0xdad70000U, + 0x8ebc8000U, + 0xac59c000U, + 0x4b686000U, + 0x90643000U, + 0x9f03800U, + 0x176a7400U, + 0xce640600U, + 0x12f6fb00U, + 0x27ef1b80U, + 0xa5a52d40U, + 0x1512e020U, + 0xbb5af030U, + 0x7decd838U, + 0x3ca38424U, + 0xa0925e2eU, + 0x1b1bbf13U, + 0xb149a589U, + 0x7433626dU, + 0xaf8b1d81U, + 0x5053d669U, + 0xec7dfbabU, + 0xa63fdd63U, + 0x3b9e381eU, + 0xa289741bU, + 0xdfd68628U, + 0x853c3b2cU, + 0x871dfba5U, + 0xf4fdd4cU, + 0xff363829U, + 0x270d7417U, + 0x77908600U, + 0xcd9b3b13U, + 0x8d897bb1U, + 0x65521d4aU, + 0xeff8581cU, + 0x97e4435U, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0x30000000U, + 0xe8000000U, + 0xb4000000U, + 0x22000000U, + 0x45000000U, + 0xed800000U, + 0x25400000U, + 0xa1600000U, + 0xa8100000U, + 0xee480000U, + 0x9bc40000U, + 0xcea60000U, + 0x64b70000U, + 0x1ff98000U, + 0xb1bb4000U, + 0x65fa000U, + 0x558c1000U, + 0x8566a800U, + 0x7210ac00U, + 0x274d4a00U, + 0x38437b00U, + 0xd0e29880U, + 0xfb518640U, + 0x18282020U, + 0x73545030U, + 0x5c2e8838U, + 0x5954fc0cU, + 0x9d2bc23aU, + 0x7ed3872dU, + 0x496f5a88U, + 0x10350151U, + 0x813efa9bU, + 0xb29a1179U, + 0x97afd2b0U, + 0x3312fd56U, + 0xc0cab899U, + 0xc05d677U, + 0x8e06a819U, + 0xdb00ac19U, + 0xe854a36U, + 0x47c77b15U, + 0x98a498a0U, + 0xe3b6864aU, + 0x8779a021U, + 0x917b1038U, + 0x367f282aU, + 0x7efbec1eU, + 0x863aea29U, + 0xea1b6b2aU, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0x30000000U, + 0xd8000000U, + 0x94000000U, + 0x52000000U, + 0x49000000U, + 0x7e800000U, + 0xfa400000U, + 0x35e00000U, + 0x45700000U, + 0xf6780000U, + 0x5bc40000U, + 0x82260000U, + 0x11570000U, + 0xf4298000U, + 0xe46ac000U, + 0xfc8ea000U, + 0xad7f9000U, + 0x4c46c800U, + 0xd6e5b400U, + 0x36f33200U, + 0xc8b8df00U, + 0x91649380U, + 0x4a363fc0U, + 0x43192020U, + 0x5bf65030U, + 0xfc3fe838U, + 0x5623e40cU, + 0x6354da36U, + 0x6d2f3b25U, + 0x72ee4994U, + 0x4aca04d2U, + 0x5e98e9bfU, + 0x123194ceU, + 0x17182195U, + 0xe9f320edU, + 0x853a9393U, + 0xf0a53fcfU, + 0xd16a01aU, + 0xacb900fU, + 0x7e98c838U, + 0xc236b43cU, + 0xff1cb20fU, + 0xa5f51f33U, + 0x433bb3a8U, + 0xeba76fdeU, + 0x3a974822U, + 0x8e0b743fU, + 0xb13b9231U, + 0xb2a04f24U, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0x50000000U, + 0x18000000U, + 0x1c000000U, + 0xae000000U, + 0x8f000000U, + 0x90800000U, + 0x7bc00000U, + 0x4ee00000U, + 0xbc300000U, + 0xc0380000U, + 0x1e440000U, + 0xc0a20000U, + 0xc4970000U, + 0xa8aa8000U, + 0x50ecc000U, + 0x1b4ee000U, + 0xfd5c7000U, + 0xf37f800U, + 0xebbc400U, + 0x42827e00U, + 0x4ac7a700U, + 0xa963c980U, + 0x1b71edc0U, + 0x431e6020U, + 0x7f93b010U, + 0x82299838U, + 0xee287414U, + 0xa82be606U, + 0x932fd307U, + 0xf9a82fabU, + 0xa76e3ee3U, + 0x440e4f84U, + 0x32798eceU, + 0xd8e5d78bU, + 0xdf36faebU, + 0x56bcb1aeU, + 0xbe81e9c4U, + 0xb4c07e05U, + 0x3e60a711U, + 0x97f1499bU, + 0x96d92dfaU, + 0xbe72803cU, + 0xae98c03aU, + 0x55d4e017U, + 0xf88f7002U, + 0xefbf7821U, + 0xfd000412U, + 0x11861e38U, + 0xd4471728U, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0xd0000000U, + 0x28000000U, + 0xb4000000U, + 0x22000000U, + 0xa7000000U, + 0xb800000U, + 0xf3c00000U, + 0x64200000U, + 0x7b700000U, + 0xd5880000U, + 0x74240000U, + 0x33720000U, + 0x91890000U, + 0xae228000U, + 0x8734000U, + 0xc0ca000U, + 0xd8e39000U, + 0xc0d67800U, + 0x8f3cfc00U, + 0x9a8c0e00U, + 0xaba15900U, + 0x12b52780U, + 0xaaafa240U, + 0x42d67820U, + 0xb83cfc10U, + 0x990c0e08U, + 0x3c615934U, + 0x7c95278aU, + 0xc2dfa26dU, + 0xbede7828U, + 0x98d8fc39U, + 0xc5de0e0aU, + 0x25585908U, + 0x631fa793U, + 0xc5f8e273U, + 0x5428d81dU, + 0xa5966c24U, + 0x9858f606U, + 0x339ee52cU, + 0x5bbd89b8U, + 0xbec96b71U, + 0x8a47279eU, + 0x58e6a252U, + 0x80d4f816U, + 0xaf3fbc1fU, + 0x4a88ae16U, + 0x83a6c92fU, + 0xa6b15fb0U, + 0x88aa5e45U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0xb0000000U, + 0x38000000U, + 0x54000000U, + 0x4e000000U, + 0x17000000U, + 0x6a800000U, + 0x6b400000U, + 0xa2a00000U, + 0x80b00000U, + 0x6280000U, + 0xdaa40000U, + 0x34b60000U, + 0xd8290000U, + 0x45a18000U, + 0x3237c000U, + 0xa96ba000U, + 0xbe03f000U, + 0xcf077800U, + 0xae80f400U, + 0xad44aa00U, + 0xd9a46d00U, + 0xf035f180U, + 0x34691b40U, + 0x5877820U, + 0xb5c0f430U, + 0x17e4aa08U, + 0xbd146d2cU, + 0x801df18eU, + 0xadcd1b55U, + 0x15b17833U, + 0x11a9f435U, + 0x9a652a12U, + 0x64d3ad36U, + 0x8dfe51a6U, + 0x49daeb75U, + 0xe8280032U, + 0xbda40003U, + 0x4636001fU, + 0x57690000U, + 0x91018037U, + 0xf187c039U, + 0x8bc3a038U, + 0x18e7f01cU, + 0x33917824U, + 0x9d59f407U, + 0x4c6d2a12U, + 0xb187ad1aU, + 0x6bc05197U, + 0x88e7eb54U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0xf0000000U, + 0x18000000U, + 0xe4000000U, + 0xf2000000U, + 0x85000000U, + 0xe800000U, + 0xb1c00000U, + 0xf5200000U, + 0x9c100000U, + 0x5e80000U, + 0x3d240000U, + 0x30160000U, + 0x9beb0000U, + 0x46238000U, + 0xb596c000U, + 0xb7ac2000U, + 0x7b441000U, + 0xe6e2e800U, + 0x64345400U, + 0x9b7d9e00U, + 0x870f4100U, + 0x6b11b480U, + 0x4e6f3140U, + 0xe262e820U, + 0x84f45430U, + 0xeadd9e18U, + 0x3bdf413cU, + 0x7f59b486U, + 0x3f9b3179U, + 0xde3ce81cU, + 0x8aeb5411U, + 0x62a01e1bU, + 0x5568110U, + 0x4e0814bbU, + 0xcb96e15eU, + 0xfcafa01dU, + 0x86c2d01eU, + 0xdea6c817U, + 0xb3544436U, + 0xa909762aU, + 0xa8101533U, + 0xbfefaa90U, + 0xd426b070U, + 0xc0977c96U, + 0xa12b7563U, + 0x2e839e32U, + 0xe1c04127U, + 0x7d2434a8U, + 0x9012f147U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x50000000U, + 0x58000000U, + 0xdc000000U, + 0xe6000000U, + 0x89000000U, + 0x74800000U, + 0xa8400000U, + 0x7b200000U, + 0xb2100000U, + 0xb8b80000U, + 0x47240000U, + 0x44120000U, + 0x9bb0000U, + 0xbfa68000U, + 0x5250c000U, + 0x279de000U, + 0x9f31b000U, + 0xcbac8800U, + 0x6f1a4400U, + 0xc176f200U, + 0x18c5100U, + 0x258d5480U, + 0x6f89f7c0U, + 0x688c8820U, + 0x410a4410U, + 0xffcef218U, + 0x9fa85114U, + 0x4d1f5496U, + 0x1272f7f7U, + 0x4a0a0819U, + 0x284a8432U, + 0x146b1205U, + 0xeffde13eU, + 0xb981dc88U, + 0xc6c3b3dbU, + 0x8c627a37U, + 0x3cb21523U, + 0x5269a694U, + 0x16fea6fcU, + 0xa5075c87U, + 0xba8373dfU, + 0x95479a26U, + 0x3da7a510U, + 0xf1572eb0U, + 0x41fe2d0U, + 0x46f72e8eU, + 0xd24fe2fdU, + 0x5b6f2eb2U, + 0x227be2e1U, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0xf0000000U, + 0xe8000000U, + 0xb4000000U, + 0x2000000U, + 0xf1000000U, + 0xa4800000U, + 0x50c00000U, + 0x73a00000U, + 0xb0500000U, + 0x68180000U, + 0xb7a40000U, + 0x1a520000U, + 0xcd1f0000U, + 0xe1238000U, + 0x53954000U, + 0xae3aa000U, + 0x3b39000U, + 0xb92ac800U, + 0xd4b8400U, + 0x213b1600U, + 0xb0325500U, + 0x466f8680U, + 0xd7aa16c0U, + 0x488ac820U, + 0xc1b8410U, + 0xda31638U, + 0xa756553cU, + 0xc79d86baU, + 0x1ee516edU, + 0xc3b14820U, + 0x192ac42cU, + 0x1d4bb611U, + 0x393ac528U, + 0xec34cea6U, + 0xf06bd2c1U, + 0x24a8fe3aU, + 0x1d0f0101U, + 0xf85cf897U, + 0x2ec457dbU, + 0x64a690beU, + 0x1fd743c5U, + 0xc15ecea9U, + 0x6e40d2fdU, + 0xce617e23U, + 0x31714125U, + 0x8b8fd8aeU, + 0x119987f9U, + 0x5de77893U, + 0x9e3517cdU, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0x70000000U, + 0x68000000U, + 0x7c000000U, + 0xa2000000U, + 0x69000000U, + 0x63800000U, + 0x24400000U, + 0x18600000U, + 0x55500000U, + 0x9ff80000U, + 0x5c640000U, + 0xd3520000U, + 0xe0fd0000U, + 0xf8e78000U, + 0x37914000U, + 0xaa5ee000U, + 0x50129000U, + 0xa81a0800U, + 0x4771fc00U, + 0x31cdb200U, + 0x4049cb00U, + 0x850fd680U, + 0x52e88dc0U, + 0x99fa0820U, + 0x6361fc10U, + 0xd7d5b228U, + 0x743dcb1cU, + 0xda45d69aU, + 0xe3618ddfU, + 0x97d78808U, + 0xd439bc0aU, + 0xaa46d230U, + 0x8b671b15U, + 0xebd4be9cU, + 0x763ea1caU, + 0xc341522fU, + 0xe8e65b1dU, + 0xcf925e84U, + 0x6e5831edU, + 0x96115a02U, + 0x771ea717U, + 0x93f26c8dU, + 0xbd09bac5U, + 0x76edecbcU, + 0x8ffcfaefU, + 0xa4610c94U, + 0x17536adeU, + 0x26fc84a6U, + 0x27e3d6cdU, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0xb0000000U, + 0x18000000U, + 0xdc000000U, + 0x16000000U, + 0x1f000000U, + 0x3a800000U, + 0x55c00000U, + 0x9e200000U, + 0x72d00000U, + 0x4c980000U, + 0x10240000U, + 0x71d60000U, + 0x801f0000U, + 0xeae18000U, + 0xcd76c000U, + 0x7b09e000U, + 0x2e593000U, + 0xb0823800U, + 0x7cc63400U, + 0xeba09e00U, + 0xb5914900U, + 0x437c6280U, + 0x36d29ac0U, + 0x469a3820U, + 0xf9223430U, + 0xe4569e38U, + 0xf75e492cU, + 0xfd05e286U, + 0x37805af7U, + 0x5a45d825U, + 0x48640437U, + 0x84b52636U, + 0x132ebd39U, + 0xf38c9ca1U, + 0xde9823ebU, + 0xe52382b6U, + 0x1254aaf3U, + 0x5859800aU, + 0xdf82c029U, + 0xbe47e023U, + 0xd2623034U, + 0x25b5b80eU, + 0xf2aff43fU, + 0x56c8fe3bU, + 0x1c7eb92dU, + 0x2c57baa9U, + 0x435d9ed7U, + 0xcf009e1aU, + 0x5281492eU, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x70000000U, + 0xe8000000U, + 0xe4000000U, + 0x7a000000U, + 0xb3000000U, + 0xd6800000U, + 0x93c00000U, + 0x16200000U, + 0x79900000U, + 0x43780000U, + 0x24240000U, + 0x7e920000U, + 0x17fb0000U, + 0x78e78000U, + 0xc8354000U, + 0xd0ac2000U, + 0x323c5000U, + 0x63c4d800U, + 0xbe209400U, + 0xfd97ce00U, + 0x4979e900U, + 0x7f211880U, + 0x4c1075c0U, + 0xfe3cd820U, + 0xddc49410U, + 0x6725ce18U, + 0x12e91cU, + 0x3e98baU, + 0x64c135f9U, + 0xeaa2f83eU, + 0xa153c43cU, + 0xffde962dU, + 0xb8733d38U, + 0x6cf76bfU, + 0x55cb8ce7U, + 0xb34ab8aeU, + 0xa88965f5U, + 0x2aac2012U, + 0xc13c502dU, + 0xd544d839U, + 0x5de09409U, + 0x3b7ce00U, + 0xd4e9e910U, + 0x465918acU, + 0xdb3475e2U, + 0x562ed831U, + 0x59ff940aU, + 0x9e24e26U, + 0xb1b7a914U, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0xb0000000U, + 0xb8000000U, + 0xc4000000U, + 0xca000000U, + 0x89000000U, + 0xa9800000U, + 0x50c00000U, + 0x81600000U, + 0x6d500000U, + 0xf1c80000U, + 0xf640000U, + 0xee560000U, + 0x714d0000U, + 0x46218000U, + 0x87f3c000U, + 0x597b2000U, + 0x10bfd000U, + 0xf05b8800U, + 0x11cc6c00U, + 0xdf665600U, + 0x46530300U, + 0xbd4d4680U, + 0xf0213840U, + 0xf38820U, + 0xb3f86c30U, + 0x60f85628U, + 0x887a032cU, + 0xad3ac6aeU, + 0xc29ff871U, + 0xd5a92812U, + 0xadb47c12U, + 0x6058fe02U, + 0xd9c9bf38U, + 0x367188eU, + 0xf850976aU, + 0x464a38aeU, + 0x14a24751U, + 0x33b03099U, + 0xeb5deb54U, + 0x254d4697U, + 0x44213857U, + 0xd2f3883eU, + 0x4ef86c08U, + 0xbb785619U, + 0x95ba0333U, + 0x4fdac6b0U, + 0x760ff86cU, + 0xc81281dU, + 0x9f407c26U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0xd0000000U, + 0xa8000000U, + 0x8c000000U, + 0x6e000000U, + 0x4f000000U, + 0x9800000U, + 0x43400000U, + 0x83e00000U, + 0xa5b00000U, + 0xdd580000U, + 0x11e40000U, + 0x3cb60000U, + 0x9fd90000U, + 0x69228000U, + 0x75134000U, + 0x730d6000U, + 0x3509f000U, + 0x360d3800U, + 0x718f2c00U, + 0xadccea00U, + 0x8faea700U, + 0xe559c180U, + 0xd5e320c0U, + 0x2eb53820U, + 0xc6db2c30U, + 0xba2ea08U, + 0xddd3a734U, + 0x92ad41aaU, + 0x55d960e3U, + 0x422d83bU, + 0x7d959c23U, + 0xa6ccb20aU, + 0x54287b24U, + 0xdf18138aU, + 0xe482abcaU, + 0x8bc0138cU, + 0x7626abe7U, + 0x149613a5U, + 0x9c4fabf3U, + 0x8ec93b8U, + 0x74b8ebd3U, + 0x2957f3b2U, + 0x91681bfdU, + 0x7ff84b99U, + 0xd6b477dfU, + 0x22d9c18aU, + 0xc9a320f3U, + 0x2cd53829U, + 0x7c2b2c31U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0xb0000000U, + 0x48000000U, + 0x24000000U, + 0xbe000000U, + 0xa7000000U, + 0xda800000U, + 0x5a400000U, + 0x94200000U, + 0xff300000U, + 0x12d80000U, + 0xd6240000U, + 0x9a360000U, + 0x6d5b0000U, + 0x93e18000U, + 0xfbd44000U, + 0xbb8a2000U, + 0x73ec7000U, + 0x73fd7800U, + 0xe96f400U, + 0x712fa200U, + 0xb8995900U, + 0xaa05cd80U, + 0x9101d4c0U, + 0x39857820U, + 0x8ec2f430U, + 0x2161a218U, + 0x9596592cU, + 0x9aa4d92U, + 0xf7da94c9U, + 0x69a0d80fU, + 0xbff5c419U, + 0xbcb97a2eU, + 0xd379d3aU, + 0x3fdd37b7U, + 0x8da209f6U, + 0x61f26f8bU, + 0xabbc8decU, + 0x9fb6b5a8U, + 0x419820d1U, + 0xa7855a2bU, + 0x39c0ed14U, + 0x63e1cf8fU, + 0x13d0bde5U, + 0x4f8fed91U, + 0x35eda4deU, + 0xb8f8003cU, + 0x4e14000cU, + 0x326e0019U, + 0x513f0001U, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0x70000000U, + 0xf8000000U, + 0xf4000000U, + 0x9a000000U, + 0x41000000U, + 0xf4800000U, + 0xa4400000U, + 0x56600000U, + 0x97700000U, + 0x81980000U, + 0xd7640000U, + 0x3f20000U, + 0x75d90000U, + 0x9078000U, + 0x9885c000U, + 0x9a46a000U, + 0x5675000U, + 0x2ef5c800U, + 0xbf580400U, + 0xfe45f200U, + 0x7762bb00U, + 0x33f21f80U, + 0xaddaaec0U, + 0x8d07c820U, + 0xfa810410U, + 0x2f427208U, + 0x6be77b1cU, + 0xcbb4bfbeU, + 0x1dbdfefdU, + 0xcd720006U, + 0xa0990000U, + 0x73e78035U, + 0x2fb5c035U, + 0x2fbea02bU, + 0xf0735018U, + 0xc21fc806U, + 0xf8a50425U, + 0x5650723dU, + 0xa90e7b34U, + 0x774b3f97U, + 0x702c3ec3U, + 0xbbdea026U, + 0xe2035024U, + 0xf507c803U, + 0x4e81042eU, + 0x95427203U, + 0x5ae77b06U, + 0xc734bf8cU, + 0x4dfdfefaU, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0x70000000U, + 0xa8000000U, + 0x94000000U, + 0xae000000U, + 0xbf000000U, + 0x9b800000U, + 0x71400000U, + 0xfba00000U, + 0x33d00000U, + 0x51d80000U, + 0xdca40000U, + 0xf4560000U, + 0xca9d0000U, + 0xee078000U, + 0xdf034000U, + 0x4b81a000U, + 0xa946f000U, + 0xc7a0b800U, + 0x9d07c00U, + 0x40defa00U, + 0xf8262500U, + 0x1e934280U, + 0x407c04c0U, + 0x2676b820U, + 0xbd0d7c30U, + 0xc6f97a28U, + 0x81b5651cU, + 0xf96ae2aaU, + 0x2d4ef4e5U, + 0x71d8000bU, + 0x6ca4001fU, + 0xfc56000eU, + 0x2e9d0000U, + 0xe8078014U, + 0xf4034029U, + 0x7e01a03fU, + 0x6706f018U, + 0xa780b81bU, + 0x4b407c2eU, + 0xeaa6fa05U, + 0x1752253bU, + 0xbb1d4286U, + 0x564504ddU, + 0x3c27382cU, + 0xa8933c00U, + 0x637f5a03U, + 0xf7f0d515U, + 0x754bfabfU, + 0x8dd878dfU, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0x90000000U, + 0x88000000U, + 0xbc000000U, + 0x46000000U, + 0x65000000U, + 0x2800000U, + 0xcb400000U, + 0x90a00000U, + 0x4ff00000U, + 0xe6280000U, + 0xcda40000U, + 0xa9720000U, + 0xff6d0000U, + 0x52008000U, + 0x4f064000U, + 0x980e000U, + 0x80c6b000U, + 0x97676800U, + 0xcd15f400U, + 0x7dfc6a00U, + 0xca3bad00U, + 0x10dc6b80U, + 0x1f0a6b40U, + 0x72956820U, + 0x6038f410U, + 0x5bdcea28U, + 0xf48ded24U, + 0xe5548ba2U, + 0x6ad8db6fU, + 0x7c080031U, + 0xb5140009U, + 0x39fa0028U, + 0x88390016U, + 0x97da8006U, + 0xa8f403cU, + 0x24526028U, + 0x1a5df02aU, + 0x284f082aU, + 0x431040dU, + 0xdac9e230U, + 0x3775e900U, + 0x4e6fe9bbU, + 0x9a867253U, + 0xbf4789afU, + 0xcaa2825cU, + 0xfcf20183U, + 0x9acc655U, + 0xb86183acU, + 0xb490df7cU, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0x30000000U, + 0x58000000U, + 0x8c000000U, + 0xe2000000U, + 0xc7000000U, + 0xb8800000U, + 0xb4400000U, + 0x70a00000U, + 0x5bf00000U, + 0xf3c80000U, + 0x43a40000U, + 0xfd720000U, + 0x9a8d0000U, + 0xf0858000U, + 0x1040c000U, + 0xe6a16000U, + 0xc2f69000U, + 0x364cf800U, + 0x465a400U, + 0x6310b200U, + 0xc298bd00U, + 0x909a9b80U, + 0x4f9efc40U, + 0xdb1ef820U, + 0xbd58a410U, + 0x52fd3228U, + 0x3d8c7d0cU, + 0x9801fb96U, + 0x6c016c63U, + 0x72058018U, + 0xaf00c021U, + 0x6c816006U, + 0xda469021U, + 0x55a4f80aU, + 0x2471a435U, + 0xff0ab204U, + 0x8741bd21U, + 0xd6251b91U, + 0x32b73c4bU, + 0x40e81800U, + 0xae93f402U, + 0x815d2a2dU, + 0xa8fb892cU, + 0xd68ed1a4U, + 0xf287e544U, + 0x4746d1bcU, + 0x3623e555U, + 0xa2b4d1bbU, + 0x28eee552U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0x50000000U, + 0x48000000U, + 0xf4000000U, + 0xa6000000U, + 0x9d000000U, + 0xc3800000U, + 0xb8c00000U, + 0xf4a00000U, + 0x84b00000U, + 0x87a80000U, + 0xe5a40000U, + 0xed360000U, + 0xc8690000U, + 0x5868000U, + 0x95c44000U, + 0xf26a000U, + 0xd077b000U, + 0x690ea800U, + 0xae15bc00U, + 0x921ef600U, + 0xcb8e4d00U, + 0x6752b980U, + 0x957cbb40U, + 0xfd18a820U, + 0xa30cbc30U, + 0xe9107608U, + 0xbe9e0d14U, + 0xdbca1992U, + 0x3db60b7dU, + 0x6a2e8009U, + 0x14604017U, + 0x2c10a038U, + 0x211eb03aU, + 0x4108282fU, + 0xea11fc1cU, + 0xc185608U, + 0xba89fd1eU, + 0xbed4118bU, + 0xe2bd075cU, + 0xf1385e1cU, + 0xc1fff134U, + 0xe15a4faaU, + 0x93ebf659U, + 0xc1449193U, + 0x13604754U, + 0xe0907e24U, + 0x41580114U, + 0x3ec47b0U, + 0xa944fa56U, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0xb0000000U, + 0x98000000U, + 0x4c000000U, + 0xde000000U, + 0xe1000000U, + 0xbf800000U, + 0x36c00000U, + 0x7ca00000U, + 0x2cd00000U, + 0xea880000U, + 0xc3a40000U, + 0xb2560000U, + 0xc3cd0000U, + 0x39c18000U, + 0x7a22c000U, + 0x49976000U, + 0xceeb7000U, + 0xead7c800U, + 0x87899c00U, + 0x2264600U, + 0xd5976d00U, + 0x98ed5a80U, + 0x6fd50240U, + 0x3209c820U, + 0x47e09c30U, + 0x29b1c628U, + 0xdc78ad2cU, + 0x70bbbaa6U, + 0x971cb253U, + 0x4f496017U, + 0xef827008U, + 0x7ec04807U, + 0xb8a65c21U, + 0x96d0a639U, + 0x18edd18U, + 0xf25f28dU, + 0x413ee48U, + 0xd72e4623U, + 0xe0f36d0dU, + 0xf61b5ab9U, + 0x30c80279U, + 0x7940482eU, + 0xb2665c20U, + 0xc70a609U, + 0x305edd05U, + 0x1c2df287U, + 0x5c77ee75U, + 0x7858463cU, + 0xd82e6d2bU, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0xb0000000U, + 0x68000000U, + 0xfc000000U, + 0x46000000U, + 0x7f000000U, + 0x68800000U, + 0xcfc00000U, + 0x3ea00000U, + 0xbc900000U, + 0x6d980000U, + 0x67a40000U, + 0xfb160000U, + 0x32d90000U, + 0xb2c18000U, + 0xab254000U, + 0x26d6e000U, + 0xe97fb000U, + 0xefd4b800U, + 0x76faa400U, + 0x24914e00U, + 0x19998d00U, + 0x4da0e080U, + 0x1a1172c0U, + 0xb15ab820U, + 0xaf87a430U, + 0x6346ce08U, + 0xb365cd2cU, + 0x9f37809aU, + 0x148b82ffU, + 0x6878e031U, + 0x3c52b02fU, + 0x93bb3812U, + 0xc8f2e41fU, + 0x5e282e15U, + 0xfeee7d10U, + 0xb0cd388aU, + 0x779c26c6U, + 0x2ea62e04U, + 0xa4937d0fU, + 0xd99ab8abU, + 0x6da066e9U, + 0xaa114e28U, + 0xd9598d2cU, + 0x5380e09cU, + 0x254172e2U, + 0xcc62b805U, + 0xf7b3a410U, + 0xdb48ce0cU, + 0x56d8cd20U, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0x90000000U, + 0xe8000000U, + 0x1c000000U, + 0x16000000U, + 0xa3000000U, + 0x28800000U, + 0x8cc00000U, + 0xb4a00000U, + 0xc8f00000U, + 0xc7480000U, + 0xd1a40000U, + 0x8b760000U, + 0xf0f0000U, + 0x87c08000U, + 0xa0214000U, + 0x2237e000U, + 0xa8ec3000U, + 0xc5d65800U, + 0xcaffa400U, + 0xdf0fd600U, + 0x4fc63d00U, + 0xcc214380U, + 0x4c313c40U, + 0xffe85820U, + 0xe754a430U, + 0xf3395638U, + 0xe0287d24U, + 0x237623baU, + 0x330c4c47U, + 0xe1c1e025U, + 0x7b233018U, + 0xfeb6d832U, + 0x2e2ee407U, + 0xc4703617U, + 0x898e0d35U, + 0xbc011bb4U, + 0xa601985cU, + 0x3b070e08U, + 0x4c83d910U, + 0x6ec7f5b4U, + 0x1da1717eU, + 0x557623a3U, + 0xc00c4c69U, + 0xc141e00eU, + 0x7be3300dU, + 0xb416d81eU, + 0x59dee43bU, + 0x3db83629U, + 0x77ea0d24U, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0xb0000000U, + 0xc8000000U, + 0xc000000U, + 0x4e000000U, + 0xc3000000U, + 0xf5800000U, + 0xb400000U, + 0x68e00000U, + 0xfb500000U, + 0x99180000U, + 0xa9e40000U, + 0xa3d60000U, + 0xf4df0000U, + 0x47c18000U, + 0xff204000U, + 0xbc776000U, + 0x16ff000U, + 0x5a8c5800U, + 0xbc5dcc00U, + 0x72072a00U, + 0x8501df00U, + 0xda84b680U, + 0xc732c0U, + 0x68a25820U, + 0x6a36cc30U, + 0x2708aa38U, + 0x9b1a9f2cU, + 0x4e456b2U, + 0xc55782c3U, + 0x7218e033U, + 0xe064b000U, + 0x2e94b805U, + 0x53397c2eU, + 0x7139228U, + 0xae78a33dU, + 0x88f724b5U, + 0x52af91daU, + 0x5fad7cb5U, + 0xa92d5dcfU, + 0xb7ebd693U, + 0x644cc2ddU, + 0x3ff80023U, + 0x51b40035U, + 0x2f4e0027U, + 0xe67b000dU, + 0x44f78011U, + 0xfcaf402fU, + 0x2caee02dU, + 0x94abb00cU, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0xf0000000U, + 0x68000000U, + 0x14000000U, + 0x86000000U, + 0x8f000000U, + 0x3a800000U, + 0x7e400000U, + 0xa0200000U, + 0xe5f00000U, + 0xb1f80000U, + 0xeaa40000U, + 0x33b60000U, + 0xe5df0000U, + 0x79538000U, + 0x654d4000U, + 0x21fba000U, + 0xb2a1b000U, + 0xafb63800U, + 0x87d9f400U, + 0x18570200U, + 0xc4cc9900U, + 0xe3396b80U, + 0xe3c3b5c0U, + 0xd0e5b820U, + 0xad94b430U, + 0xe32ca238U, + 0xf82d293cU, + 0x84af539aU, + 0x95ea41c5U, + 0xff4aba01U, + 0xcfc2d13U, + 0x923c9b6U, + 0x80719ce3U, + 0x8d396b92U, + 0xb8c3b5ccU, + 0x8c65b815U, + 0xacd4b415U, + 0x118ca220U, + 0x779d291fU, + 0x1377538dU, + 0x15be41c6U, + 0x4784ba2bU, + 0x7dc72d1aU, + 0xe3e649b9U, + 0xe513dcc2U, + 0x64694ba6U, + 0x858b45deU, + 0x319e2029U, + 0x7c73f038U, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0x90000000U, + 0x48000000U, + 0x4c000000U, + 0x2a000000U, + 0xdd000000U, + 0x49800000U, + 0xbec00000U, + 0x55600000U, + 0x8a300000U, + 0x12680000U, + 0xf4e40000U, + 0xc8f60000U, + 0x550f0000U, + 0x37d08000U, + 0xbd1c4000U, + 0xa4296000U, + 0x14c7d000U, + 0x4865a800U, + 0x23b3ac00U, + 0x3caa6600U, + 0xe9806300U, + 0xec32d80U, + 0x6d65dd40U, + 0x1e352820U, + 0x3c6fec30U, + 0x4fe30638U, + 0x7677b324U, + 0x7f4e8592U, + 0x95f27153U, + 0xdc894e2aU, + 0x69108f07U, + 0x7878abaaU, + 0x661a2e4bU, + 0x4aaccda7U, + 0x96814d41U, + 0x36416016U, + 0x2023d01eU, + 0x6093a80aU, + 0xe6bcac0dU, + 0x437ae600U, + 0x189c2329U, + 0x80ea4db5U, + 0xa4a20d60U, + 0x1fd08007U, + 0xa11c4020U, + 0x2629602bU, + 0x15c7d02eU, + 0x63e5a80eU, + 0xc73ac25U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x50000000U, + 0xa8000000U, + 0xbc000000U, + 0x6a000000U, + 0x6d000000U, + 0x95800000U, + 0xc9c00000U, + 0x90200000U, + 0x4b900000U, + 0xf8c80000U, + 0x1da40000U, + 0x86520000U, + 0x76eb0000U, + 0xbd368000U, + 0x441f4000U, + 0xe60ae000U, + 0x9d07d000U, + 0x4d872800U, + 0xedc0cc00U, + 0xbe22de00U, + 0x58974900U, + 0xd6484080U, + 0x46e5b040U, + 0x2731a820U, + 0xf11f8c10U, + 0x57883e18U, + 0x7ac09914U, + 0xcea768aaU, + 0x88d17c6fU, + 0x1da9763aU, + 0xe457c50bU, + 0xd7ecfebdU, + 0xdab56966U, + 0xa4d8a0aeU, + 0x9dad606dU, + 0xa452001cU, + 0xb7eb0018U, + 0x8ab68036U, + 0xcdf4014U, + 0x21aae03bU, + 0xce57d037U, + 0xdaef2838U, + 0x1f34cc09U, + 0xc518de33U, + 0xb1884906U, + 0x85c4c09aU, + 0x2225f052U, + 0x297c833U, + 0x43481c3cU, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0xb0000000U, + 0x48000000U, + 0x7c000000U, + 0x5a000000U, + 0x2b000000U, + 0xfc800000U, + 0xa1c00000U, + 0x8ce00000U, + 0xa7900000U, + 0x99a80000U, + 0x8c640000U, + 0x9c560000U, + 0xde4f0000U, + 0x67718000U, + 0xec3c4000U, + 0xa2c8e000U, + 0x6b55000U, + 0x80da1800U, + 0xb55a8400U, + 0xd71a1e00U, + 0x70b99f00U, + 0x730b6880U, + 0x22508b40U, + 0xeb4b9820U, + 0x3ef6c430U, + 0xc7afe38U, + 0x4a68cf2cU, + 0x27877092U, + 0x35450f5fU, + 0x1200636U, + 0x89731b3aU, + 0x21397687U, + 0xcf4d1444U, + 0xc0f6f091U, + 0x19794f46U, + 0x43e8e628U, + 0x3fc64b35U, + 0xe9e36eb2U, + 0x617906cU, + 0x4decee9eU, + 0x42c0d077U, + 0xcc638ebfU, + 0xbc56c05cU, + 0x8e48f691U, + 0x9f715458U, + 0xd83e10b5U, + 0x84cc1f64U, + 0x77b2fe16U, + 0x575ccf3cU, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0xf0000000U, + 0xf8000000U, + 0xa4000000U, + 0x7e000000U, + 0x71000000U, + 0xc7800000U, + 0xb5c00000U, + 0x54200000U, + 0xa1b00000U, + 0xa4580000U, + 0xe7a40000U, + 0x22720000U, + 0x7d7d0000U, + 0xab938000U, + 0xc4edc000U, + 0xdc7c2000U, + 0x24127000U, + 0x8d2b4800U, + 0xa25d9c00U, + 0x72a01e00U, + 0x3bf4c900U, + 0x49bf6180U, + 0xc034b4c0U, + 0x7498c820U, + 0x52005c10U, + 0x13043e28U, + 0xcc82b93cU, + 0x8d4629beU, + 0xaf6428e9U, + 0x23d3563fU, + 0x9a0d550cU, + 0xc76d7f99U, + 0x7bd7dd1U, + 0xa934298bU, + 0x471928d1U, + 0x91c0d63eU, + 0x6a209509U, + 0x70b15fafU, + 0x93df0de7U, + 0xaa6761beU, + 0xd250b4fcU, + 0xa2cac838U, + 0x7ecd5c2dU, + 0xe4cfbe19U, + 0x4bcb7927U, + 0xd4809abU, + 0x870b58dbU, + 0xc2eb9e0aU, + 0x497d093eU, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0xd0000000U, + 0x88000000U, + 0xd4000000U, + 0x46000000U, + 0x63000000U, + 0x1c800000U, + 0x3cc00000U, + 0xb4e00000U, + 0x77f00000U, + 0x58780000U, + 0xa4640000U, + 0x11320000U, + 0x3d990000U, + 0x3a128000U, + 0x820e4000U, + 0xd95ba000U, + 0x92f2b000U, + 0x47fc5800U, + 0x7425c400U, + 0xc1131600U, + 0xa28d5f00U, + 0x879d4b80U, + 0x5b104dc0U, + 0x138ed820U, + 0x9e1b8410U, + 0xc850b608U, + 0xf2bef34U, + 0xb5cb13a2U, + 0x153889f5U, + 0xe7c54e31U, + 0x44659b08U, + 0xa136dd8fU, + 0x459e52fbU, + 0xb610b3afU, + 0x980a39f8U, + 0x2859162fU, + 0xab705f15U, + 0x4bdcba9U, + 0xe0870dc1U, + 0x3ec7f830U, + 0x39e77400U, + 0xc774e3eU, + 0xb63c9b2eU, + 0x9b445d9dU, + 0x88a012f5U, + 0x4dd313b4U, + 0x6e6c89f4U, + 0x7c6f4e2aU, + 0x19689b3fU, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0xb0000000U, + 0xb8000000U, + 0xcc000000U, + 0x1a000000U, + 0x9000000U, + 0x18800000U, + 0x70400000U, + 0x7ca00000U, + 0xc0100000U, + 0x89b80000U, + 0x86240000U, + 0x55560000U, + 0xa79f0000U, + 0x37718000U, + 0xcccbc000U, + 0x47ed6000U, + 0x843f5000U, + 0x3ce08800U, + 0xc4b22400U, + 0x65ac1200U, + 0xa5998d00U, + 0x6277b480U, + 0x264837c0U, + 0xfaa90820U, + 0x8e1de430U, + 0x53b77238U, + 0x3a29dd2cU, + 0x425ebcaeU, + 0x6d15d3f3U, + 0x8f3e7a26U, + 0x71643932U, + 0x5e71cebeU, + 0xa4480ef0U, + 0x6faec691U, + 0x849aeaf3U, + 0x5ef034bcU, + 0x880cf7ffU, + 0xe10de825U, + 0x898d741aU, + 0xa1cc9a02U, + 0xa16ba91eU, + 0xc37ba69dU, + 0x8fc1baedU, + 0xb66bca5U, + 0x2771d3c6U, + 0xe4c87a37U, + 0x63eb390bU, + 0x5a384eb7U, + 0x5be7cecfU, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0x70000000U, + 0xb8000000U, + 0x84000000U, + 0xb2000000U, + 0x29000000U, + 0xcf800000U, + 0xd400000U, + 0x57200000U, + 0x45900000U, + 0x2e880000U, + 0xb2a40000U, + 0x55d60000U, + 0x1c2d0000U, + 0x27778000U, + 0xe9fbc000U, + 0x4b5d2000U, + 0x768c1000U, + 0x26a38800U, + 0x8fd2dc00U, + 0x792eba00U, + 0x66f59100U, + 0xfbbe2080U, + 0x48f8e640U, + 0xd8dc0820U, + 0x9dcd1c30U, + 0x22859a28U, + 0x10c4811cU, + 0xa36228aeU, + 0x1535fa61U, + 0x5a59920cU, + 0xfd099d3aU, + 0x39e7b29bU, + 0x81f17b5fU, + 0x4b3bba9bU, + 0xc13c6740U, + 0xac3e20afU, + 0x71b8e64aU, + 0x25fc0800U, + 0x55d1c09U, + 0xc98d9a36U, + 0x220811cU, + 0xdc1428a8U, + 0x68c8fa59U, + 0xcb061236U, + 0xee865d0cU, + 0x5ec49292U, + 0x1c646b41U, + 0x31b1b2a9U, + 0x99c7b64U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x70000000U, + 0x8000000U, + 0x34000000U, + 0x3a000000U, + 0xd000000U, + 0x7f800000U, + 0xbb400000U, + 0x9a00000U, + 0xd8700000U, + 0x37080000U, + 0xb8240000U, + 0x74320000U, + 0x5c2b0000U, + 0xdc978000U, + 0xcdda4000U, + 0x3bdea000U, + 0x70dc5000U, + 0x6c5d2800U, + 0xef9cdc00U, + 0x27faca00U, + 0x6ef4500U, + 0x61738f80U, + 0x328eba40U, + 0x6e62a820U, + 0x72129c10U, + 0x371e6a18U, + 0xd63c151cU, + 0x978b2782U, + 0x75e3264dU, + 0xeb51422eU, + 0x7fbbc913U, + 0x77ce6d87U, + 0x18c22372U, + 0x8ce66da0U, + 0x8ed6236bU, + 0xd9fc6dbbU, + 0x79e92361U, + 0x47f1edb8U, + 0xbc4c6378U, + 0xd982cd81U, + 0xe8457347U, + 0x5924c5a8U, + 0x5db4bf5eU, + 0xfc6a07afU, + 0xd1b13676U, + 0xda68ca1aU, + 0xc2b44506U, + 0xeaec0f8fU, + 0x3770fa63U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0x70000000U, + 0x68000000U, + 0x3c000000U, + 0xba000000U, + 0xbf000000U, + 0x9a800000U, + 0xd9400000U, + 0x5c600000U, + 0x41100000U, + 0x5f680000U, + 0xa8e40000U, + 0x61560000U, + 0xfc8b0000U, + 0x65378000U, + 0x499d4000U, + 0xac5ee000U, + 0xfc7c5000U, + 0xbc8fb800U, + 0xc537b400U, + 0x599eda00U, + 0xb4593b00U, + 0xa8782c80U, + 0x3a8fb940U, + 0xc0303820U, + 0x7c1ef430U, + 0xf79e3a18U, + 0x2d5a6b1cU, + 0x27fe149aU, + 0xde4a4d4fU, + 0x8b91820eU, + 0x3e2ddf1fU, + 0xb080cebeU, + 0xbe43766aU, + 0xf2e1aeadU, + 0x6e56666fU, + 0x6e0ef681U, + 0xf0728269U, + 0xc7fe149cU, + 0x6e4a4d6aU, + 0x83918202U, + 0x722ddf0eU, + 0x6280ceb6U, + 0x3d43765fU, + 0xd261ae92U, + 0x8166678U, + 0xa8eef6bfU, + 0x68228270U, + 0xc4f6149dU, + 0x87be4d61U, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0xd0000000U, + 0x28000000U, + 0x4c000000U, + 0xda000000U, + 0xd3000000U, + 0xad800000U, + 0xd1c00000U, + 0x6fa00000U, + 0xb8300000U, + 0xf1b80000U, + 0x9c240000U, + 0x9cf60000U, + 0x629d0000U, + 0x3f528000U, + 0xc0af4000U, + 0xbdeb6000U, + 0x210a5000U, + 0xd8d8d800U, + 0x60368c00U, + 0x85bc9e00U, + 0x82214500U, + 0x9f5dd80U, + 0xee1f6bc0U, + 0xdc125820U, + 0x94dcc30U, + 0x68b9fe28U, + 0xaaa21534U, + 0xdcb1858aU, + 0xfeffa7d3U, + 0x5fc12616U, + 0xb2a49904U, + 0x8b51b83U, + 0x30fae2c0U, + 0xe2c2fbb1U, + 0x7226f2cdU, + 0x31f5c382U, + 0x2a186ed7U, + 0x9a10658eU, + 0x284eb7fbU, + 0x5a3c9e20U, + 0xce1453dU, + 0xb1d5ddacU, + 0x84ef6bc8U, + 0xc78a583dU, + 0xb099cc0dU, + 0xb057fe3cU, + 0x3f2b152dU, + 0x232d058cU, + 0x1129e7c5U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0xd0000000U, + 0xd8000000U, + 0xc000000U, + 0xee000000U, + 0x9d000000U, + 0xf2800000U, + 0x18c00000U, + 0xd4e00000U, + 0xf3700000U, + 0x11e80000U, + 0xdb640000U, + 0x29360000U, + 0xf5c90000U, + 0xf8f28000U, + 0xf1a8c000U, + 0x40456000U, + 0x8b27f000U, + 0x5a132800U, + 0x73d97400U, + 0xbd2d7600U, + 0xdd802f00U, + 0x81407f80U, + 0x8fa32140U, + 0xf3d7a820U, + 0x6bb8b430U, + 0x139a9608U, + 0xe60f1f34U, + 0x5f9637b6U, + 0xfe9da543U, + 0xdc89f61bU, + 0xb351ef17U, + 0x187f9fb4U, + 0x84f81172U, + 0xc13fe023U, + 0xc75b300fU, + 0xfce84837U, + 0xe1e38425U, + 0xc5f2de00U, + 0x132c9b38U, + 0xa084e9b0U, + 0x83c13e67U, + 0x9f651f88U, + 0xf334d162U, + 0x7acc8001U, + 0x7175c019U, + 0x52e9e02bU, + 0x9ce2300aU, + 0xc772c837U, + 0x3ef4418U, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0xb0000000U, + 0x8000000U, + 0x5c000000U, + 0xf6000000U, + 0x69000000U, + 0xf800000U, + 0x59c00000U, + 0x22600000U, + 0x6ef00000U, + 0x73280000U, + 0xb4e40000U, + 0x10b60000U, + 0x48f0000U, + 0xb6718000U, + 0x306e4000U, + 0x66c1e000U, + 0xd4e43000U, + 0x60b40800U, + 0xec8f1c00U, + 0x5a713e00U, + 0xce6ebb00U, + 0x53c7bb80U, + 0x2d619f40U, + 0x50738820U, + 0xc16e5c30U, + 0x6d415e38U, + 0x9f24cb2cU, + 0x89d25382U, + 0x4efab357U, + 0xe01ebe1dU, + 0x67abfb2aU, + 0x59a1dbbbU, + 0x4f94ef7aU, + 0x6d5fe02aU, + 0x488f303cU, + 0xd8738819U, + 0x5d6e5c1bU, + 0x7b415e05U, + 0x4624cb00U, + 0x8e525398U, + 0x4b3ab34dU, + 0x347ebe26U, + 0x605bfb3eU, + 0x2509dbacU, + 0xa2b0ef4dU, + 0x5f89e005U, + 0x22f03035U, + 0x1d2a080cU, + 0xd9e41c09U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0x50000000U, + 0xd8000000U, + 0x2c000000U, + 0xfa000000U, + 0x3000000U, + 0xce800000U, + 0x31c00000U, + 0xff600000U, + 0xb4f00000U, + 0x5c080000U, + 0xae40000U, + 0xf7b60000U, + 0xd0ab0000U, + 0x3e768000U, + 0xf3c8c000U, + 0x98866000U, + 0x8c35000U, + 0x52e5d800U, + 0x1bb59400U, + 0x4aa89e00U, + 0x6d728300U, + 0xe54a0380U, + 0x85447640U, + 0xda55820U, + 0xe5165430U, + 0x89387e18U, + 0x71891314U, + 0x65a1bbb6U, + 0x8116b24bU, + 0xe73e1e1eU, + 0xf48a4330U, + 0x8a2463abU, + 0x51532658U, + 0x1d1e8029U, + 0x8ddcc016U, + 0x53386031U, + 0x828c5016U, + 0x43255838U, + 0x14d65433U, + 0x16587e0eU, + 0x95791311U, + 0xe1a9bb82U, + 0xa7f2b24cU, + 0xea881e36U, + 0x2721432fU, + 0x7ad2e392U, + 0x935be671U, + 0x7af8e034U, + 0x31ef902cU, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0x30000000U, + 0x78000000U, + 0xc4000000U, + 0xf2000000U, + 0x9f000000U, + 0x74800000U, + 0x87c00000U, + 0x18200000U, + 0xfa700000U, + 0xa080000U, + 0x3ba40000U, + 0x75360000U, + 0xc3eb0000U, + 0x84f58000U, + 0x16cdc000U, + 0xc5012000U, + 0xa7801000U, + 0xdd443800U, + 0x6e40400U, + 0x83d06e00U, + 0x583a1900U, + 0x28cfe780U, + 0xb4029640U, + 0x2a07b820U, + 0xb02c430U, + 0xce84ce18U, + 0xa4c7c90cU, + 0x5aa2ff9eU, + 0x10b28271U, + 0xf9adee1cU, + 0x3293d917U, + 0xe0d8c785U, + 0x1a19866dU, + 0x1be0038U, + 0xe48f003fU, + 0xf638026U, + 0x796c025U, + 0x5f5ca01eU, + 0x3359d020U, + 0x8d5b181bU, + 0x3c5b141cU, + 0xd1dfd62eU, + 0x379cdd06U, + 0x87fd29acU, + 0x64ee5f4fU, + 0x9470c7a3U, + 0x330d866dU, + 0xa20001eU, + 0x95700008U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x50000000U, + 0x48000000U, + 0xbc000000U, + 0xae000000U, + 0x1000000U, + 0x19800000U, + 0xfcc00000U, + 0xc7600000U, + 0x8bf00000U, + 0xca180000U, + 0x67e40000U, + 0xeab20000U, + 0x9bbb0000U, + 0x20768000U, + 0xe9d84000U, + 0xc002e000U, + 0x2005f000U, + 0x30014800U, + 0x1807ac00U, + 0xf400d600U, + 0x1203d300U, + 0xaf01e380U, + 0x1881bec0U, + 0xe545c820U, + 0x3ba4ec10U, + 0x4c94b618U, + 0x41ee6314U, + 0xadfa4b92U, + 0x8d57e2efU, + 0x710e560bU, + 0xbbcf9310U, + 0xc9a9039eU, + 0x29db4eebU, + 0xe0000003U, + 0x1000001dU, + 0x28000001U, + 0xec00000dU, + 0xe600002eU, + 0xbd000036U, + 0xb7800012U, + 0xfdc00018U, + 0xdee00004U, + 0x7730002eU, + 0xd780007U, + 0xec140002U, + 0x20aa0007U, + 0xfc5f0027U, + 0xcac48021U, + 0x72634028U, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0x90000000U, + 0x8000000U, + 0x84000000U, + 0xae000000U, + 0x89000000U, + 0xea800000U, + 0xbb400000U, + 0xb0a00000U, + 0x32500000U, + 0xd5080000U, + 0x67240000U, + 0x75960000U, + 0xabef0000U, + 0xbd508000U, + 0x828e4000U, + 0xe0e72000U, + 0xeb77f000U, + 0xe19b0800U, + 0x424bf400U, + 0x4d82ea00U, + 0x18c4ed00U, + 0x1603680U, + 0xa9b3fa40U, + 0x5ffd8820U, + 0x47ab430U, + 0x69bd4a38U, + 0x30595d24U, + 0x89aa1e82U, + 0x2f70fe61U, + 0x6f9cea0bU, + 0xbb4fed12U, + 0x3f06b682U, + 0x2f82ba4aU, + 0x9bc2280eU, + 0xbce7041dU, + 0xe9776226U, + 0x329a591fU, + 0x17cb7ca5U, + 0x1945a765U, + 0xd3a71688U, + 0x1fd40a7eU, + 0x9dce802fU, + 0x8e454019U, + 0xc821a033U, + 0x5216b033U, + 0xb42ca820U, + 0xafb2443cU, + 0xe2fec234U, + 0x38f8e936U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0xd0000000U, + 0x98000000U, + 0xb4000000U, + 0xbe000000U, + 0xe3000000U, + 0xe800000U, + 0xa9400000U, + 0x9f600000U, + 0xd4300000U, + 0x8b180000U, + 0x2ee40000U, + 0xf1f60000U, + 0xec390000U, + 0x52328000U, + 0xcc1ac000U, + 0x2660a000U, + 0xdfb57000U, + 0x5bdad800U, + 0x78475400U, + 0x68e27a00U, + 0x96f74300U, + 0x34bda580U, + 0xe476cac0U, + 0xcffe5820U, + 0xb2149430U, + 0x98485a08U, + 0xe5ccf334U, + 0x3a09dda6U, + 0x4829eeedU, + 0xf57a7a0fU, + 0x65534308U, + 0xc42ba58bU, + 0xef7fcadeU, + 0x8054d821U, + 0x4daa5428U, + 0x6ebefa05U, + 0xe1708307U, + 0xb6798599U, + 0x7bd07afcU, + 0xd56ea03cU, + 0x1418700eU, + 0x72665820U, + 0x91b09422U, + 0xf0de5a2bU, + 0x5ac5f33dU, + 0xcba35d83U, + 0x54972ee5U, + 0xd0cda1bU, + 0xc8af332fU, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0x50000000U, + 0x38000000U, + 0xfc000000U, + 0x42000000U, + 0x47000000U, + 0xdd800000U, + 0x8c400000U, + 0xa3e00000U, + 0xbfd00000U, + 0xd8f80000U, + 0x1b640000U, + 0xb9120000U, + 0xf2df0000U, + 0x27168000U, + 0x7dbc000U, + 0x3594e000U, + 0xc21a9000U, + 0x9c30f800U, + 0x27298c00U, + 0x239cb200U, + 0xf2744700U, + 0x73cdc280U, + 0x29cefdc0U, + 0x62cc7820U, + 0x75494c10U, + 0x2a0cd238U, + 0xd26a1714U, + 0x18ff5a8eU, + 0xbb6621ffU, + 0x914d230U, + 0x9ade1701U, + 0xe3155a8fU, + 0xb9dd21f7U, + 0x30905206U, + 0x589ad700U, + 0xcdf73a9eU, + 0x88c71c3U, + 0x3fac4a37U, + 0x955dcb30U, + 0xb0517089U, + 0x8bbabaebU, + 0x2901baa2U, + 0xa087b1faU, + 0xac0aa29U, + 0xe0235b0fU, + 0xef7388b6U, + 0xe54c36f3U, + 0xb20b88a9U, + 0x9e6836d7U, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0xd0000000U, + 0x48000000U, + 0x94000000U, + 0x2e000000U, + 0x45000000U, + 0x6800000U, + 0x67c00000U, + 0xb8e00000U, + 0x4ad00000U, + 0x1ae80000U, + 0xe5640000U, + 0x96920000U, + 0xef490000U, + 0x52928000U, + 0xc9484000U, + 0xa391a000U, + 0x31cdf000U, + 0xc9556800U, + 0x1ba81400U, + 0xca450e00U, + 0xfca7cf00U, + 0x63705280U, + 0x171be140U, + 0xd1bde820U, + 0x99cd5410U, + 0xed542e08U, + 0x8dab7f34U, + 0x83461a92U, + 0x8264565U, + 0xfbb42e2bU, + 0xc27b7f01U, + 0xbf2e1a89U, + 0x5a82456dU, + 0x9dc62e1cU, + 0xf3e27f27U, + 0xd9549a85U, + 0x33ae055cU, + 0xae458e16U, + 0x4aa68f17U, + 0xfa7372b9U, + 0xab9e5145U, + 0xdd79201dU, + 0x62a8b019U, + 0xc6c4483aU, + 0x4864a40aU, + 0x94134633U, + 0xce8a6b08U, + 0xeb7194b0U, + 0xe319ca71U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0xd0000000U, + 0xd8000000U, + 0x54000000U, + 0x1a000000U, + 0xe9000000U, + 0x34800000U, + 0xc2400000U, + 0x2b200000U, + 0x98b00000U, + 0x22880000U, + 0x14a40000U, + 0xa3760000U, + 0x8d6b0000U, + 0xd0728000U, + 0x90e8c000U, + 0x46b5a000U, + 0xa9885000U, + 0x2d268800U, + 0x47b38400U, + 0x10b0200U, + 0x19663100U, + 0x1b957180U, + 0x8639ee40U, + 0x702a0820U, + 0xc8d44430U, + 0xbd9a2218U, + 0x58dda134U, + 0x747cd9b6U, + 0x930efa55U, + 0xbc642226U, + 0x112a10aU, + 0x67785995U, + 0x5e8d3a44U, + 0xf2a3021cU, + 0x6c723103U, + 0x16eb7196U, + 0x59b6ee4bU, + 0xea0e8833U, + 0xf0e78436U, + 0x27550220U, + 0x5e59310cU, + 0xa339f1a2U, + 0xaaae2e4aU, + 0x4993280fU, + 0x433bd41eU, + 0xbaad8a29U, + 0xf195b523U, + 0xc73e7383U, + 0x78afdf5bU, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0xb0000000U, + 0xb8000000U, + 0x34000000U, + 0x2a000000U, + 0x93000000U, + 0x6e800000U, + 0x89400000U, + 0x9200000U, + 0xaa900000U, + 0xc4380000U, + 0x9aa40000U, + 0xec520000U, + 0xdddf0000U, + 0xfcd18000U, + 0x1d9fc000U, + 0x5072a000U, + 0xd4ced000U, + 0x862a5800U, + 0x4ad95400U, + 0x4051da00U, + 0xd3ddf100U, + 0xadd43080U, + 0xdc1d13c0U, + 0x11b1d820U, + 0xd9ad9410U, + 0xf218fa38U, + 0x50b7e12cU, + 0xf02f48aeU, + 0x8fda57cdU, + 0xfbd17a2aU, + 0x91c2134U, + 0x4237e8a3U, + 0x3f6f87ceU, + 0xbbf8a20cU, + 0x3ec5b537U, + 0x8de51283U, + 0x1c7366eeU, + 0x6acc6aaeU, + 0x6f2b22c8U, + 0xbf5d48afU, + 0x2b9557f5U, + 0x4db8fa08U, + 0xb767e100U, + 0x4f374884U, + 0xa8ee57caU, + 0x2f3b7a01U, + 0x6027210eU, + 0x1f1468afU, + 0x4fff47f5U, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0x70000000U, + 0xc8000000U, + 0x6c000000U, + 0x1e000000U, + 0x2d000000U, + 0x71800000U, + 0x9c00000U, + 0x9600000U, + 0x4a700000U, + 0x6f580000U, + 0xc0a40000U, + 0xe3120000U, + 0xb52f0000U, + 0x17ff8000U, + 0x87b04000U, + 0x243e6000U, + 0x91d07000U, + 0xcccea800U, + 0xdbcdac00U, + 0xb54e5e00U, + 0x1e0e9300U, + 0x32295780U, + 0xc17c88c0U, + 0x88f0c820U, + 0x7a1ddc10U, + 0x5180f638U, + 0xd9c33f1cU, + 0x516709b2U, + 0x9e721bdbU, + 0xd5599fa7U, + 0x9fa154dbU, + 0xa1903e04U, + 0xe06ee30eU, + 0x66dfff88U, + 0xcd6524d5U, + 0x874960eU, + 0x74584f30U, + 0x8024219bU, + 0x4d50f7f8U, + 0xf48e2189U, + 0x3b6bf7faU, + 0x865ba18fU, + 0xf320b7c1U, + 0xf1d041a6U, + 0xfccb87feU, + 0xf3cd09bfU, + 0xa9491bc5U, + 0xc80c1faaU, + 0x732a14dbU, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0x70000000U, + 0x68000000U, + 0xc4000000U, + 0xc6000000U, + 0xa7000000U, + 0x71800000U, + 0x3400000U, + 0x2c200000U, + 0x41700000U, + 0xfc580000U, + 0xf640000U, + 0x5d520000U, + 0x752d0000U, + 0x473f8000U, + 0xfc354000U, + 0x4b792000U, + 0x8594b000U, + 0x1f4ff800U, + 0xeaefec00U, + 0x8cdd8a00U, + 0x4aa22900U, + 0xbbb61f80U, + 0xc73f84c0U, + 0xbc36d820U, + 0xeb7b5c10U, + 0xf5927228U, + 0x774dc51cU, + 0x2eeb959aU, + 0x4addadf1U, + 0xeda0c791U, + 0xca34d8f9U, + 0xc47caa14U, + 0x9012990cU, + 0xaa0be7b9U, + 0x9cd68fdU, + 0x782cd234U, + 0x73b8350bU, + 0x3ff74d92U, + 0xaa9ff1e8U, + 0x360735bcU, + 0x8f055dceU, + 0x15839f9fU, + 0xb543c4d7U, + 0xe3227821U, + 0xf4f7ac19U, + 0x391b2a2dU, + 0x8443d924U, + 0x6da0c7a5U, + 0x8a34d8f4U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0xd0000000U, + 0xf8000000U, + 0x24000000U, + 0x36000000U, + 0x7000000U, + 0xe6800000U, + 0xb8400000U, + 0xc2e00000U, + 0xcab00000U, + 0x1a80000U, + 0x2a40000U, + 0x6c520000U, + 0x9d1b0000U, + 0xd40a8000U, + 0x7071c000U, + 0x6d082000U, + 0xbdf03000U, + 0x69cb7800U, + 0xfa56d400U, + 0x6a19d200U, + 0x7a8f5f00U, + 0xc430f980U, + 0x45ed8b40U, + 0x62435820U, + 0xbfe6e410U, + 0xa132aa18U, + 0x9a698b34U, + 0x57812bbeU, + 0x19c6d449U, + 0xfc21a1adU, + 0x60106f51U, + 0xf1fb7201U, + 0xedbeaf0aU, + 0x595ba196U, + 0xf4ef6f4fU, + 0xc3c3f213U, + 0x81246f18U, + 0xb9101b7U, + 0x6a3a9f7cU, + 0xb89aaa22U, + 0x2ccd8b19U, + 0x95d32bbeU, + 0x77ddd468U, + 0xab21a6U, + 0x8b21af6eU, + 0x8e935231U, + 0x25be9f32U, + 0x1558d980U, + 0x7eedbb71U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0x10000000U, + 0xa8000000U, + 0xa4000000U, + 0xc2000000U, + 0xa5000000U, + 0x55800000U, + 0xcd400000U, + 0x49600000U, + 0x85900000U, + 0x47a80000U, + 0x90240000U, + 0x76f60000U, + 0x4b390000U, + 0xf40c8000U, + 0xe4974000U, + 0x202a2000U, + 0x60639000U, + 0x7616e800U, + 0xcdebcc00U, + 0x39c1da00U, + 0xc3a23300U, + 0x2cb78880U, + 0x6ad86b40U, + 0xf55cc820U, + 0xe9185c30U, + 0xbfff3208U, + 0xe62dff04U, + 0xd76052aaU, + 0xe935869U, + 0xe12fc090U, + 0xd7e37759U, + 0xe57da3dU, + 0x790b3307U, + 0xd51308b0U, + 0xf6b2b4cU, + 0x9c00e82bU, + 0xe02cc14U, + 0xe3055a30U, + 0x2281730cU, + 0x95c3a890U, + 0x75a6fb42U, + 0xc3b0a01bU, + 0x2e5dd004U, + 0x798480cU, + 0x6c3b1c32U, + 0xe48b1216U, + 0x4c536f13U, + 0x1c0c3a9fU, + 0xa096d476U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0xb0000000U, + 0x88000000U, + 0xa4000000U, + 0x3a000000U, + 0xbb000000U, + 0x2b800000U, + 0x95c00000U, + 0xb7600000U, + 0x57300000U, + 0xb9580000U, + 0xdea40000U, + 0xa6560000U, + 0xd3690000U, + 0x51798000U, + 0x6bb64000U, + 0x591a2000U, + 0x5d015000U, + 0x66821800U, + 0xb413c00U, + 0xb025de00U, + 0xc915f300U, + 0x794b1d80U, + 0x936de8c0U, + 0xb1783820U, + 0xfbb06c30U, + 0x611fc608U, + 0x7100cf2cU, + 0xf880c3a2U, + 0x8a451be9U, + 0x20a4a5aeU, + 0x7756c4deU, + 0x5bea5e22U, + 0x733ab339U, + 0x5f10bd87U, + 0x9c4ef8d0U, + 0x19ee0022U, + 0x43d0000U, + 0x7a978025U, + 0xb08b4013U, + 0x120da011U, + 0x734a1003U, + 0x606fb81bU, + 0x1efb2c1bU, + 0xe4726614U, + 0xe57adf24U, + 0xa9b77bbcU, + 0xee1a37c9U, + 0x5880c392U, + 0xfa451beeU, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0x90000000U, + 0x48000000U, + 0xc4000000U, + 0xb2000000U, + 0xcd000000U, + 0xcc800000U, + 0x71400000U, + 0x7a00000U, + 0x78300000U, + 0x27480000U, + 0x94e40000U, + 0x9a920000U, + 0xe7f90000U, + 0xa8e88000U, + 0x48d44000U, + 0xbfdd2000U, + 0x661c1000U, + 0x72fea800U, + 0xa86d0400U, + 0x6f93ba00U, + 0x577e0500U, + 0x57ae2d80U, + 0x2c77a440U, + 0xf86b8820U, + 0x47951410U, + 0x237f1208U, + 0x3daa0124U, + 0x6d751792U, + 0x42ede171U, + 0x49d0858cU, + 0x255aa063U, + 0xf858321bU, + 0x3cdb1128U, + 0xa9993f9bU, + 0x8c39a54bU, + 0x710c9f97U, + 0x5ec1f577U, + 0x9671791U, + 0x5954e162U, + 0xa1805a2U, + 0xf4fee055U, + 0x2f6d1231U, + 0x72130114U, + 0xd4bd97b6U, + 0x9a49a14cU, + 0xe065a5bbU, + 0xd7d2b06eU, + 0x4e5c9a2fU, + 0x23db1520U, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0x30000000U, + 0x48000000U, + 0xac000000U, + 0xb2000000U, + 0x8f000000U, + 0xd7800000U, + 0x14c00000U, + 0x9b600000U, + 0x70300000U, + 0x70780000U, + 0x35a40000U, + 0xe8560000U, + 0xb5cf0000U, + 0xa61d8000U, + 0x75104000U, + 0x276c6000U, + 0xc5cf1000U, + 0xce1db800U, + 0x9149c00U, + 0xed68d600U, + 0xaecdf300U, + 0x79de580U, + 0x20d229c0U, + 0x2e89d820U, + 0x1dbf8c30U, + 0xf8436e38U, + 0xfe266f0cU, + 0xc690b392U, + 0xedab9aebU, + 0x83ae5d8cU, + 0xd6adb5d3U, + 0xf22a8e2dU, + 0xfb6d3f39U, + 0x1fcf6b8cU, + 0x3d1b16fbU, + 0x1490b382U, + 0x92ab9af5U, + 0xfc2e5dbbU, + 0x5e6db5f7U, + 0x934a8e30U, + 0xa85d3f13U, + 0xa376bb5U, + 0x937f16e4U, + 0xb026b3beU, + 0x43949adfU, + 0xb12bdd8fU, + 0x6ee9f5ddU, + 0x2c08ee24U, + 0xedf92f27U, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0xd0000000U, + 0x18000000U, + 0x64000000U, + 0x76000000U, + 0xdb000000U, + 0x15800000U, + 0x37c00000U, + 0x63a00000U, + 0xa5b00000U, + 0xbbf80000U, + 0x6a640000U, + 0xa1160000U, + 0xb9cd0000U, + 0x9b5a8000U, + 0x7e52c000U, + 0xfb282000U, + 0xbb0c3000U, + 0x927a9800U, + 0x2fa44c00U, + 0x1fb4ae00U, + 0x1afd3500U, + 0x7ee23980U, + 0x52529dc0U, + 0x312ab820U, + 0xd20c7c30U, + 0xfaf83628U, + 0xcee47934U, + 0x3a541786U, + 0x9d2968d9U, + 0xd80ea1bdU, + 0x33fbd1c6U, + 0x7664960dU, + 0xc3138909U, + 0xdcca2fb6U, + 0x29ded4c4U, + 0x4e123795U, + 0x24c58c5U, + 0xb398b9b8U, + 0xae705dd1U, + 0xaa5a9835U, + 0x12d44c26U, + 0x1c6cae3bU, + 0x8de93506U, + 0x7c2c39bcU, + 0xac8b9dddU, + 0xb0be3829U, + 0x3687bc15U, + 0xf644961cU, + 0x4a63892fU, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0xf0000000U, + 0x38000000U, + 0xdc000000U, + 0x82000000U, + 0xcf000000U, + 0x6a800000U, + 0x4dc00000U, + 0xa0e00000U, + 0x4f500000U, + 0xca180000U, + 0xc3240000U, + 0xdab20000U, + 0x5ccd0000U, + 0x5c7b8000U, + 0x3b7c000U, + 0xdf49e000U, + 0x4a3a9000U, + 0x39163800U, + 0xe0bb7400U, + 0x94d61e00U, + 0x105b2f00U, + 0x13817680U, + 0x3e401ac0U, + 0x8ea7d820U, + 0xa9f5e410U, + 0x77ea2628U, + 0xd2c95b3cU, + 0x997ee88eU, + 0xe231f5f7U, + 0x560cce80U, + 0xd21caee3U, + 0xaf202612U, + 0xc0b05b3fU, + 0xbfcf688eU, + 0x8cff35d8U, + 0x5d74aebcU, + 0x9728fee4U, + 0x87ae7e04U, + 0x396f7f1bU, + 0x210f2e83U, + 0x249f3ecbU, + 0xc0e79e23U, + 0x5f55ef25U, + 0xa2191698U, + 0xd7244ac3U, + 0xbcb18018U, + 0xcdcec034U, + 0x7bf86036U, + 0xebf45031U, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0xb0000000U, + 0xa8000000U, + 0xe4000000U, + 0x3e000000U, + 0xb7000000U, + 0xaf800000U, + 0xd6400000U, + 0x71e00000U, + 0x69300000U, + 0xdf980000U, + 0x75a40000U, + 0xe5d60000U, + 0x682f0000U, + 0x98f98000U, + 0xea574000U, + 0x2e6e2000U, + 0x111f7000U, + 0x7f677800U, + 0x83f61c00U, + 0x9bae200U, + 0xbc330700U, + 0x251fed80U, + 0x9960e2c0U, + 0x98f15820U, + 0xcc3d6c30U, + 0x4b739a38U, + 0xa87e1b2cU, + 0xb7928faaU, + 0x57cfa5f9U, + 0xecf15afU, + 0xce4abeddU, + 0x1b8a1a33U, + 0xd6295b29U, + 0xeffcaf8eU, + 0xa5d0d5cfU, + 0x48286db2U, + 0xc8fca2f9U, + 0xf250f805U, + 0x626a5c1eU, + 0xcb1b4203U, + 0xf6643700U, + 0x9b773585U, + 0x707aced7U, + 0x1b94e215U, + 0x3dc8070fU, + 0x2fc86d92U, + 0x32cca2ccU, + 0x5c48f805U, + 0xc68e5c16U, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0xb0000000U, + 0xd8000000U, + 0x4000000U, + 0x2a000000U, + 0x2f000000U, + 0xc1800000U, + 0x5fc00000U, + 0xc7200000U, + 0x7300000U, + 0x76e80000U, + 0x9ee40000U, + 0x79160000U, + 0xa15d0000U, + 0x1b498000U, + 0x4d94c000U, + 0xa81b2000U, + 0x562dd000U, + 0x90403800U, + 0xede3ec00U, + 0x56930e00U, + 0x5b9d5100U, + 0x82edad80U, + 0xce43540U, + 0x42131820U, + 0x22da3c30U, + 0xb78d3628U, + 0x6537bd2cU, + 0xf5e923b6U, + 0x964a441U, + 0x97d215aaU, + 0x7afe197bU, + 0xa93ab638U, + 0x481a7d0bU, + 0x862d83afU, + 0x5840b46cU, + 0x81e08d81U, + 0xa094e55dU, + 0x5a9aa02cU, + 0x466d1028U, + 0xbda51819U, + 0x1b773c28U, + 0xbd0cb63aU, + 0x1777d39U, + 0x8a0c039dU, + 0x64f07468U, + 0x4fcdadacU, + 0x54d4354bU, + 0x8d7b1828U, + 0x57fe3c3fU, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0x10000000U, + 0x68000000U, + 0x5c000000U, + 0xae000000U, + 0xad000000U, + 0x5a800000U, + 0x9ac00000U, + 0xcea00000U, + 0xf5b00000U, + 0xbdc80000U, + 0x99640000U, + 0x91960000U, + 0x8ab90000U, + 0xce0c8000U, + 0x67414000U, + 0xf9e5e000U, + 0x8454f000U, + 0x559ea800U, + 0x1aff7400U, + 0x12694600U, + 0x30556d00U, + 0x679f9180U, + 0x39fd2c40U, + 0xf5ed4820U, + 0x98128430U, + 0x6ffb6e08U, + 0xaceb5904U, + 0x1093379aU, + 0xe63cb157U, + 0xfdcc718bU, + 0x7960dc5bU, + 0xa197603eU, + 0xf2b8b012U, + 0xfa09c821U, + 0x9547c42eU, + 0xfae08e1eU, + 0x73d2a91aU, + 0x95df1f99U, + 0x4e9f856fU, + 0x297a57b6U, + 0x78290172U, + 0x4337398aU, + 0x310b584eU, + 0xeec08e2cU, + 0xdca2a921U, + 0xc6b71faaU, + 0x324b854fU, + 0x6d245793U, + 0x37f4015cU, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0x50000000U, + 0x88000000U, + 0xac000000U, + 0x4a000000U, + 0x3d000000U, + 0x99800000U, + 0x9b400000U, + 0xdf200000U, + 0x3700000U, + 0x3980000U, + 0x31640000U, + 0x49d20000U, + 0x61af0000U, + 0x8de8000U, + 0xc6424000U, + 0x56a06000U, + 0xf037d000U, + 0x20bf2800U, + 0xf011ec00U, + 0xdb49ea00U, + 0x834e4100U, + 0xe749bf80U, + 0xe14d4ac0U, + 0xc64d4820U, + 0xeac93c10U, + 0x44084238U, + 0x4a6ded14U, + 0xab3835a2U, + 0x3250dbebU, + 0x9be9dfb2U, + 0x3c7a9adfU, + 0x1772603eU, + 0x7d98d022U, + 0x8261a82dU, + 0x5b53ac3fU, + 0x9c698a30U, + 0x44399128U, + 0x52d697a6U, + 0x2f2ca6f1U, + 0x871ca233U, + 0xc3a37d07U, + 0x35b3fd9aU, + 0xc9ffa7e4U, + 0x6633fd98U, + 0x2fbfa7d3U, + 0xc093fdacU, + 0xe78fa7c2U, + 0x942bfdb2U, + 0x799ba7fcU, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0xf0000000U, + 0xc8000000U, + 0xf4000000U, + 0xf6000000U, + 0xf000000U, + 0x76800000U, + 0xa7c00000U, + 0xb8200000U, + 0x1d300000U, + 0x3b980000U, + 0xa8e40000U, + 0x2f960000U, + 0x636f0000U, + 0x225b8000U, + 0x2bc44000U, + 0x5226a000U, + 0x373000U, + 0x8c19b800U, + 0x4aa65400U, + 0x44f32e00U, + 0x98bd0900U, + 0xc550a580U, + 0x74cf16c0U, + 0xf1291820U, + 0x413e6430U, + 0xc4111638U, + 0xb32f1d3cU, + 0x983d2bb2U, + 0xad912ffdU, + 0x5a6e059dU, + 0xbbdc26f3U, + 0xa86a005U, + 0x85c73025U, + 0x5121b824U, + 0x5cb25406U, + 0xd6dd2e01U, + 0xb5060914U, + 0x738525abU, + 0x3c4056f2U, + 0x6062381bU, + 0xb3521414U, + 0xbbcd8e0cU, + 0x67ae3911U, + 0x16ff1d94U, + 0xb43642ddU, + 0x5a19b60fU, + 0x55a32d07U, + 0xa711388U, + 0x3783bc2U, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0x50000000U, + 0xe8000000U, + 0xe4000000U, + 0x96000000U, + 0xed000000U, + 0x2a800000U, + 0xaec00000U, + 0x13e00000U, + 0xdf900000U, + 0x95180000U, + 0xdc240000U, + 0xd4f20000U, + 0x7f4f0000U, + 0xcd5e8000U, + 0xbb014000U, + 0x67822000U, + 0x34413000U, + 0x522a800U, + 0xc0713400U, + 0x388ee600U, + 0x323f4700U, + 0xcf56c080U, + 0x2ffd8ac0U, + 0xf328820U, + 0xba2f0410U, + 0x960ace38U, + 0x1afb3314U, + 0x39b006baU, + 0x6ee8fdf9U, + 0x4aea6085U, + 0x7cedfaebU, + 0x21ea0012U, + 0xb36b002fU, + 0x11ac8006U, + 0x704e401aU, + 0xd4dca03aU, + 0x86407035U, + 0xde20881aU, + 0xb7f0040fU, + 0x4cc4e3dU, + 0x831e7332U, + 0x712026b8U, + 0x1e76cdcdU, + 0x818e48b1U, + 0x36b98ec8U, + 0x8094c610U, + 0x649a7739U, + 0x566689bU, + 0xfb53bec5U, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0xb0000000U, + 0xc8000000U, + 0x4c000000U, + 0x66000000U, + 0x1000000U, + 0x49800000U, + 0x7c00000U, + 0x6fe00000U, + 0xa3900000U, + 0x13880000U, + 0xd240000U, + 0x7ff20000U, + 0x88d90000U, + 0xdc98000U, + 0x7d004000U, + 0xa7816000U, + 0x6ac7b000U, + 0xf063c800U, + 0x6d566c00U, + 0x79e96e00U, + 0xcf744700U, + 0x29d5880U, + 0x6fefee40U, + 0x6670a820U, + 0x9718dc10U, + 0x762b2608U, + 0x8c966b2cU, + 0x570f56b2U, + 0x5611953U, + 0xa6d5b8b9U, + 0xc5281e50U, + 0xf612003aU, + 0x6a49003dU, + 0x77c18021U, + 0xc7e44017U, + 0x7f93602fU, + 0xd8eb010U, + 0x88224814U, + 0x1c722c23U, + 0xe81a0e0aU, + 0x2aaaf736U, + 0x90d710b6U, + 0xdc29c271U, + 0xab90a607U, + 0x3f8f2b2aU, + 0xfb27b68aU, + 0x6f6e962U, + 0x455f10b8U, + 0x200dc25dU, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0x50000000U, + 0xe8000000U, + 0x3c000000U, + 0xe6000000U, + 0xaf000000U, + 0xc5800000U, + 0x61c00000U, + 0x8ea00000U, + 0x72300000U, + 0x24e80000U, + 0xa4640000U, + 0x9b160000U, + 0x4a1f0000U, + 0xeeae8000U, + 0x48054000U, + 0x4c00e000U, + 0xbe02b000U, + 0x2b00b800U, + 0xf7808c00U, + 0x14c5de00U, + 0x2263d00U, + 0x7970c580U, + 0xe0c0540U, + 0x39365820U, + 0x436d3c30U, + 0xb8a3e638U, + 0xf537f114U, + 0x3d6bfbbaU, + 0x73a3884fU, + 0x52b6a599U, + 0xc1aff55bU, + 0x4d800029U, + 0xcdc0003cU, + 0x60a00021U, + 0xb1300007U, + 0xef68000aU, + 0x56a4000dU, + 0x3636002eU, + 0xf6ef0021U, + 0x81668029U, + 0xff914016U, + 0x7d5ee039U, + 0x2249b01aU, + 0x7a503825U, + 0x51fecc06U, + 0x2d7dbe18U, + 0xbe3ecd00U, + 0xf0de1db6U, + 0xf8b797eU, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0x70000000U, + 0x88000000U, + 0x1c000000U, + 0x16000000U, + 0xc1000000U, + 0x2c800000U, + 0x3cc00000U, + 0x46200000U, + 0xecb00000U, + 0x8e380000U, + 0xede40000U, + 0x27160000U, + 0xa2cd0000U, + 0xe13f8000U, + 0xf4664000U, + 0xed53e000U, + 0xf72e3000U, + 0x322dc800U, + 0x8cafc400U, + 0x236eb600U, + 0x7ac80900U, + 0xc538c980U, + 0xd664d3c0U, + 0x56502820U, + 0x84a8f430U, + 0xff6afe28U, + 0xcccc8d1cU, + 0x743a1fa2U, + 0x72e4aac7U, + 0x7696c9a5U, + 0xd48dd3c0U, + 0xd2d9a803U, + 0x6e73b423U, + 0xa51e9e1bU, + 0x13d0fd20U, + 0x38ea3784U, + 0xbb8c5eccU, + 0xcb5c37a7U, + 0xa4315ee7U, + 0xf0fbb7aaU, + 0xc0c31ee5U, + 0x402657a3U, + 0x75b42ed6U, + 0x46ba1f89U, + 0x5324aaebU, + 0xaa36c99dU, + 0xb5fdd3dfU, + 0xbe41a807U, + 0x4fe7b41aU, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0xb0000000U, + 0x38000000U, + 0xe4000000U, + 0xe000000U, + 0x7d000000U, + 0xc9800000U, + 0xecc00000U, + 0x9da00000U, + 0x19900000U, + 0xfc980000U, + 0x16640000U, + 0xe6b60000U, + 0xc9490000U, + 0xd4198000U, + 0x3923c000U, + 0x74d02000U, + 0x71fcf000U, + 0xc853a800U, + 0x48beac00U, + 0x73353600U, + 0xf8cf500U, + 0x1ab9a880U, + 0x24366ec0U, + 0x950d8820U, + 0xf2ff5c30U, + 0xa4d11e08U, + 0x19fc992cU, + 0x84533e8eU, + 0x2abcabf9U, + 0xdc3628a3U, + 0x510caeefU, + 0x4cfc281aU, + 0xe1d46c27U, + 0x347c9621U, + 0x6693c513U, + 0xca1a20b2U, + 0xc2432e3U, + 0x41531628U, + 0xc7390526U, + 0x1ef380a8U, + 0x1ab02dfU, + 0xa4e89e2bU, + 0x158f5916U, + 0xb1bb1ebfU, + 0xe4b45bd6U, + 0x364b808cU, + 0x229f02cdU, + 0x3669e22U, + 0x6332591eU, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0xd0000000U, + 0xa8000000U, + 0xfc000000U, + 0xe6000000U, + 0xe9000000U, + 0x73800000U, + 0xe6400000U, + 0xda600000U, + 0xe3300000U, + 0x4eb80000U, + 0x47240000U, + 0x29d20000U, + 0x3f4d0000U, + 0x833a8000U, + 0x8c634000U, + 0x9230e000U, + 0x193cb000U, + 0xc3608800U, + 0xa8b33c00U, + 0x5cfae200U, + 0x57442b00U, + 0x6de48d80U, + 0x17743bc0U, + 0xb7da6820U, + 0x70968c10U, + 0xe7aaea28U, + 0xd1cd5734U, + 0x9cfe0faaU, + 0xb746e0ffU, + 0x1de60d99U, + 0x6f737beaU, + 0xe3d88814U, + 0x6a973c1dU, + 0xe8a8e234U, + 0x4b492b33U, + 0x93e0d80U, + 0x8b677bd4U, + 0x24b2880fU, + 0xc2fe3c1cU, + 0xea406222U, + 0x4676b16U, + 0xfe346dabU, + 0xf7388bd0U, + 0x662e030U, + 0x9531b01eU, + 0xafba0809U, + 0x18a07c34U, + 0x81920203U, + 0xf02c9b27U, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0xb0000000U, + 0x18000000U, + 0x6c000000U, + 0x1e000000U, + 0x5b000000U, + 0xfc800000U, + 0x93c00000U, + 0xb5600000U, + 0xf2900000U, + 0x5da80000U, + 0x2240000U, + 0x58320000U, + 0x145d0000U, + 0x5e198000U, + 0x8f3ec000U, + 0xaf886000U, + 0xe2167000U, + 0x90689800U, + 0x4c40c400U, + 0xe6204e00U, + 0xc2312300U, + 0x855cb880U, + 0x3b9f7f40U, + 0xbd797820U, + 0x42a87410U, + 0xd4a0b628U, + 0x42f7972cU, + 0xa8bc6e86U, + 0x80ca985bU, + 0x64b78ea7U, + 0x679b2846U, + 0xfb7cf6b7U, + 0xd5ae5c58U, + 0x8625c0a3U, + 0x92370b5bU, + 0x8d59ce1eU, + 0xff9fe331U, + 0xd77cd880U, + 0x6bad0f40U, + 0x6d23e024U, + 0x76b5b026U, + 0x72997801U, + 0x54f8741aU, + 0x7ee8b631U, + 0xca839715U, + 0xfcc66e85U, + 0x9be3987cU, + 0x94540e83U, + 0x574ce864U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0xb0000000U, + 0xa8000000U, + 0x24000000U, + 0xda000000U, + 0x99000000U, + 0x9e800000U, + 0x85400000U, + 0x4a200000U, + 0xf7f00000U, + 0x57680000U, + 0x45e40000U, + 0xa920000U, + 0x37bb0000U, + 0x11f98000U, + 0xac5b4000U, + 0x886c2000U, + 0x84665000U, + 0xe550800U, + 0x195e1400U, + 0x78ef1a00U, + 0x3a222900U, + 0x7ff17380U, + 0xa36efd40U, + 0x87e0a820U, + 0x1f930410U, + 0x573e3218U, + 0xd7be6d2cU, + 0xe1f961aaU, + 0x6459c049U, + 0x1c6f4196U, + 0xf6609076U, + 0xb351c99fU, + 0x5ddec45dU, + 0x64ab7380U, + 0xee81fd48U, + 0xd432831U, + 0xbe274402U, + 0x35f19221U, + 0x426c7d2fU, + 0x2563c9adU, + 0xccd5c458U, + 0x7a1af394U, + 0xfdcebd5aU, + 0x34550819U, + 0x705e143aU, + 0x2e6f1a2dU, + 0x2b622921U, + 0x47d173b2U, + 0xe99efd51U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0xd0000000U, + 0x48000000U, + 0xe4000000U, + 0xf2000000U, + 0xf5000000U, + 0x6d800000U, + 0xd8c00000U, + 0x78e00000U, + 0x31700000U, + 0xddb80000U, + 0xf1a40000U, + 0x6f560000U, + 0xc72b0000U, + 0xefea8000U, + 0xaf084000U, + 0x827e2000U, + 0xd1c01000U, + 0x8b666800U, + 0x6ab38c00U, + 0x1fdab600U, + 0xc8929f00U, + 0x9b4bff80U, + 0x55dc7fc0U, + 0xe192c820U, + 0x18cbdc30U, + 0xf61afe18U, + 0x5ff50334U, + 0x7ff92192U, + 0xe1026cf9U, + 0xa787019cU, + 0x31c27ccdU, + 0x9b6169a3U, + 0x42b1f0f2U, + 0x2bdbdfb4U, + 0x72936ff1U, + 0x8a482021U, + 0xca5b103cU, + 0xcc54e836U, + 0xdafcc37U, + 0x1faa9610U, + 0xfaad8f15U, + 0xbf2917aeU, + 0x53e8b3cfU, + 0x910ade2bU, + 0xb17a131dU, + 0xf343c996U, + 0x2f22a0ecU, + 0x551117a3U, + 0x7b8cb3ceU, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0x90000000U, + 0xe8000000U, + 0x54000000U, + 0xc6000000U, + 0x23000000U, + 0xbb800000U, + 0xefc00000U, + 0x29200000U, + 0xff700000U, + 0xe0180000U, + 0xcb640000U, + 0x2920000U, + 0x81c90000U, + 0xd1c88000U, + 0x59c94000U, + 0xbdcda000U, + 0x3cdb000U, + 0x9ccdd800U, + 0xb54bbc00U, + 0xbf8f2e00U, + 0xe280100U, + 0xa51b6f80U, + 0x83e4eac0U, + 0x9ed0f820U, + 0x832b4c10U, + 0x299d5608U, + 0x31a70d24U, + 0xeb3119baU, + 0x6fe17d5U, + 0x8d311991U, + 0xf5fe17d8U, + 0xfeb11986U, + 0xde3e17cfU, + 0xf9911998U, + 0x564e17deU, + 0x6409199bU, + 0x51ea17dbU, + 0xf43b198dU, + 0xc09317f2U, + 0xeccb99b3U, + 0xad4e57fbU, + 0xb38c3990U, + 0xe42ee7dfU, + 0xfc1b6198U, + 0x89651bd2U, + 0x2f916fa4U, + 0xdd49eaeaU, + 0xab8a780dU, + 0xe82b0c09U, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0x90000000U, + 0x58000000U, + 0x44000000U, + 0x22000000U, + 0x61000000U, + 0x2c800000U, + 0x21c00000U, + 0x4ee00000U, + 0xee100000U, + 0x65a80000U, + 0xd9a40000U, + 0x54320000U, + 0x23d90000U, + 0x9ed88000U, + 0xb45cc000U, + 0x669d2000U, + 0xadfa9000U, + 0x52aa4800U, + 0x3e220400U, + 0x4777e00U, + 0x967d0f00U, + 0x4ec6c80U, + 0x7887bf40U, + 0x1bc7e820U, + 0x4be05410U, + 0x70921608U, + 0x7d6c9b24U, + 0xffc1da96U, + 0xb9e07451U, + 0x6993daa8U, + 0x85e97448U, + 0xa4035aa3U, + 0xd201b47cU, + 0x89047aadU, + 0xa086245eU, + 0x1fc4b2afU, + 0x49e1e04bU, + 0x81966ca8U, + 0x9eabf7dU, + 0x9a056809U, + 0xd5019423U, + 0xe685b60eU, + 0xccc3cb03U, + 0x5c66329eU, + 0xc8d0204bU, + 0x44c9cc9aU, + 0x5bf1ef4dU, + 0x72388003U, + 0x7b4cc021U, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0xf0000000U, + 0xa8000000U, + 0xcc000000U, + 0xb6000000U, + 0xf9000000U, + 0xe5800000U, + 0xc8400000U, + 0x5ea00000U, + 0x93100000U, + 0x3f880000U, + 0x3d640000U, + 0x28f20000U, + 0xe5b90000U, + 0x2abb8000U, + 0x763b4000U, + 0x7bf96000U, + 0x1d1d3000U, + 0x78aa0800U, + 0x18348c00U, + 0xacdc5200U, + 0x40492d00U, + 0x68836c80U, + 0x6fc2ca40U, + 0x6de0e820U, + 0xf336fc10U, + 0xaa5d3a08U, + 0xf289913cU, + 0xbae6b6aaU, + 0xebb02b73U, + 0x2d9cb68dU, + 0x736d2b6eU, + 0xfd53691U, + 0x10ef6b5eU, + 0xf697d695U, + 0xb7c91b7bU, + 0x43c4bea0U, + 0x4be0a76eU, + 0x7232e49cU, + 0xdbdd066aU, + 0xe8cdda0bU, + 0x6746e12aU, + 0xd2265eb0U, + 0xc6d6d76fU, + 0x3d698c92U, + 0x22d0ba7bU, + 0x769800fU, + 0x4dd2403fU, + 0xebeae007U, + 0xc812702eU, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0x90000000U, + 0xb8000000U, + 0x74000000U, + 0x9a000000U, + 0x35000000U, + 0xc7800000U, + 0xbfc00000U, + 0xe3200000U, + 0x87b00000U, + 0x32e80000U, + 0xa5640000U, + 0xac560000U, + 0xe0fd0000U, + 0xda788000U, + 0x9e3fc000U, + 0xa4dca000U, + 0x334f5000U, + 0x2297e800U, + 0x165fdc00U, + 0x2b0ace00U, + 0x4e728100U, + 0x5aca1980U, + 0x52510d40U, + 0x37fbc820U, + 0xfcfb4c30U, + 0xec7f8628U, + 0x753b0d24U, + 0xe459bfaeU, + 0xb20e905dU, + 0x57f73f86U, + 0x620c507dU, + 0x8ff31fb9U, + 0x260cc07bU, + 0x3df0579eU, + 0xdf084c68U, + 0x1473718cU, + 0xcfcc116dU, + 0x5d5261aU, + 0x30395d13U, + 0x6bded79fU, + 0xf1ca8c5dU, + 0x72d75184U, + 0x86bc814bU, + 0xa19e6e08U, + 0x5429d103U, + 0x3fc3f194U, + 0x2327d152U, + 0x27b7863eU, + 0xa2ef0d2fU, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x50000000U, + 0xe8000000U, + 0x14000000U, + 0x56000000U, + 0x79000000U, + 0x8800000U, + 0xd6c00000U, + 0xb8e00000U, + 0xec900000U, + 0xcf880000U, + 0xca40000U, + 0x99b20000U, + 0x8c7b0000U, + 0x30fe8000U, + 0xc0394000U, + 0xd9dda000U, + 0x91cd3000U, + 0x22830800U, + 0xadc42400U, + 0xff626600U, + 0x1bd1df00U, + 0x4129b880U, + 0x9a155640U, + 0x54482820U, + 0xdac45410U, + 0x62e6ce18U, + 0xf97cb14U, + 0x440c56baU, + 0x1e6ed45U, + 0xc412d6b5U, + 0x294fad4eU, + 0xc4776baU, + 0x89269d71U, + 0x1f67eacU, + 0x1359b97aU, + 0x280a98a4U, + 0x8be1265cU, + 0xcf168033U, + 0xb6cd4009U, + 0x5707a017U, + 0xad823031U, + 0xac478806U, + 0xf9226432U, + 0xd9f34624U, + 0xbf5eaf1bU, + 0x8209908aU, + 0xb0e50258U, + 0xe894e631U, + 0x118c9f39U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x70000000U, + 0x38000000U, + 0xf4000000U, + 0x5a000000U, + 0x6d000000U, + 0xb9800000U, + 0xd0400000U, + 0xb600000U, + 0x9900000U, + 0x8e480000U, + 0x4a40000U, + 0x69b20000U, + 0x963b0000U, + 0xadbf8000U, + 0xd4ffc000U, + 0x641aa000U, + 0x54cc5000U, + 0xa642800U, + 0x4e112c00U, + 0x410ab200U, + 0x67400300U, + 0x9fe05880U, + 0x522440U, + 0x25690820U, + 0x3e56bc10U, + 0x1a6e3a18U, + 0x46d27f1cU, + 0xadab428eU, + 0x92f3cb7dU, + 0x8fdcc2b6U, + 0x26e80b4bU, + 0xb3146296U, + 0xf08f5b78U, + 0x1b07cab4U, + 0x4a85b773U, + 0x6c5d883U, + 0x8ba2e46bU, + 0x9362814U, + 0xc5fa2c3bU, + 0x6b9d3207U, + 0x578bc339U, + 0xc780f88eU, + 0x8f417444U, + 0x3e0a021U, + 0x8653500aU, + 0xae69a836U, + 0x7cd5ec22U, + 0xb0af9220U, + 0x1373933bU, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0xb0000000U, + 0x38000000U, + 0xdc000000U, + 0xa2000000U, + 0x7b000000U, + 0xc2800000U, + 0x22c00000U, + 0xf1a00000U, + 0x37b00000U, + 0x37e80000U, + 0xaae40000U, + 0x6520000U, + 0x33b0000U, + 0xd3198000U, + 0x48efc000U, + 0xe663e000U, + 0xa5919000U, + 0x271c9800U, + 0x9ee8b400U, + 0xb652600U, + 0xea16a500U, + 0xfa5fe180U, + 0x8a0d2540U, + 0xf434f820U, + 0x80ade410U, + 0x4103de18U, + 0xf580412cU, + 0xaa45bf8eU, + 0xfc62a477U, + 0x4292a788U, + 0x279ed04eU, + 0x772de188U, + 0x462574U, + 0x2365780aU, + 0x9e162406U, + 0x6c5a3e33U, + 0x70ed12fU, + 0xbb2a797U, + 0x65eed061U, + 0x89e5e1b0U, + 0xa8d22559U, + 0xbbff7800U, + 0x85b9243aU, + 0x1fd9be2fU, + 0x884e111bU, + 0x3c52c79cU, + 0x343f806bU, + 0x5b99198aU, + 0x452bc15fU, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0xf0000000U, + 0xc8000000U, + 0x44000000U, + 0xba000000U, + 0xa5000000U, + 0xfb800000U, + 0xb3400000U, + 0xc2200000U, + 0x5c300000U, + 0x32d80000U, + 0x67e40000U, + 0x52d60000U, + 0x458f0000U, + 0x9e2b8000U, + 0x685c4000U, + 0xb5272000U, + 0x96b35000U, + 0x181be800U, + 0xcf803c00U, + 0x1422a00U, + 0xc323c900U, + 0xedb24580U, + 0xec98b8c0U, + 0x1a414820U, + 0x7a02c30U, + 0x10756238U, + 0x5e7ce53cU, + 0xbb14a7b2U, + 0x556c1dd1U, + 0x67ccf8eU, + 0x71461d9U, + 0x836fc5a6U, + 0xad7bf8e0U, + 0x2b95e81aU, + 0x2aab3c0aU, + 0x9d9faa28U, + 0xa3c0891dU, + 0x7de6e5b6U, + 0x27d3a8c5U, + 0x660b8027U, + 0x516c4038U, + 0x9c7f2017U, + 0xb217503bU, + 0x40ede81cU, + 0x923f3c3dU, + 0x17b1aa11U, + 0x699b890bU, + 0xf1c3659bU, + 0x8ce4e8f9U, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0xd0000000U, + 0x68000000U, + 0xfc000000U, + 0x1a000000U, + 0xe1000000U, + 0xb2800000U, + 0x8ec00000U, + 0x4200000U, + 0xfe900000U, + 0x76980000U, + 0xa5640000U, + 0x9cf20000U, + 0xc3e90000U, + 0x4bca8000U, + 0x575d4000U, + 0x74c0e000U, + 0x55255000U, + 0xd413c800U, + 0xbc5fb400U, + 0x2f440600U, + 0x65621900U, + 0xfcf4b880U, + 0x33ebdec0U, + 0xf3cba820U, + 0xc35ea410U, + 0x92c5ae08U, + 0xae21bd34U, + 0x8791969aU, + 0x801a23ffU, + 0xa5a25ea6U, + 0x9fd597e8U, + 0x74fe5884U, + 0xe0138ec7U, + 0xca58e033U, + 0x9c415024U, + 0x1ae1c809U, + 0xb2b6b41aU, + 0xa40e8617U, + 0xa1ff5914U, + 0x249458b9U, + 0xf79e8ef1U, + 0xe7e0600dU, + 0xaa351030U, + 0x53cba806U, + 0x535ea43dU, + 0xdac5ae39U, + 0x8221bd2aU, + 0xf5919691U, + 0x9d1a23c4U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0xb0000000U, + 0x8000000U, + 0x7c000000U, + 0xd6000000U, + 0x91000000U, + 0xcb800000U, + 0xf0400000U, + 0x3ea00000U, + 0xbab00000U, + 0x3380000U, + 0xd0640000U, + 0x5dd20000U, + 0x2c6b0000U, + 0x6bc98000U, + 0x96fe4000U, + 0xdb86e000U, + 0x68423000U, + 0x9aa24800U, + 0xa8b07c00U, + 0x303a9200U, + 0x20e42d00U, + 0x2113b180U, + 0xb80e4fc0U, + 0xd41f2820U, + 0xe1970c10U, + 0x8ccfba18U, + 0x5c7c212cU, + 0x38478b82U, + 0x62a72edfU, + 0xbcb7c395U, + 0x2a3c52f4U, + 0x6fe4d18aU, + 0x7963fc0U, + 0x55c98035U, + 0x8bfe400dU, + 0xae06e02fU, + 0xc5023023U, + 0xb1824812U, + 0xf407c0cU, + 0x10229212U, + 0x2b702d13U, + 0x8ad9b18bU, + 0xef14ffcU, + 0xdf9ca81eU, + 0x31d64c2bU, + 0x626ada19U, + 0x5ecf513eU, + 0x4f78a3b1U, + 0x18c022c5U, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0x10000000U, + 0xb8000000U, + 0xfc000000U, + 0x62000000U, + 0xc1000000U, + 0x56800000U, + 0x46400000U, + 0x3200000U, + 0x9a100000U, + 0xb9380000U, + 0x90e40000U, + 0xf8f20000U, + 0x78cf0000U, + 0xa2ac8000U, + 0x6e1bc000U, + 0x6cf6e000U, + 0xfece9000U, + 0xda84800U, + 0x339e1400U, + 0xf9320200U, + 0x732f6100U, + 0x71dd3c80U, + 0x8417e7c0U, + 0x5a382820U, + 0xe7604410U, + 0xf8322a38U, + 0x85ab2504U, + 0xc79d16aeU, + 0x2f33c2ffU, + 0x8429beb8U, + 0xc05846e0U, + 0xcbd5748dU, + 0xead9f3c5U, + 0xaf922a36U, + 0xc8fb250dU, + 0x730516a0U, + 0x8f87c2efU, + 0x1cc3bebdU, + 0x8f6346d0U, + 0x1c33f4bdU, + 0xeba933c8U, + 0xcc9a4a16U, + 0xfcb17507U, + 0xaef3e9dU, + 0x263886dbU, + 0xc5651485U, + 0xd937a3f3U, + 0xc32a0204U, + 0x39db6108U, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0x10000000U, + 0x8000000U, + 0x4000000U, + 0xaa000000U, + 0x4d000000U, + 0x88800000U, + 0xad400000U, + 0x2ba00000U, + 0x4d700000U, + 0x8cb80000U, + 0x39640000U, + 0xa6120000U, + 0x3baf0000U, + 0xcc4c8000U, + 0x341e4000U, + 0x43912000U, + 0xae68d000U, + 0xb2a9a800U, + 0x4ecaa400U, + 0x24595a00U, + 0xf8b7c500U, + 0x425cd780U, + 0xbbb4c3c0U, + 0xddde0820U, + 0xcb773410U, + 0xdfbf5238U, + 0xaee4f104U, + 0xd2d18582U, + 0x93cf32c1U, + 0xe4db0d8aU, + 0xb1f246c3U, + 0xd3ff7fbaU, + 0xb3c567ffU, + 0xdde1d210U, + 0xf555b106U, + 0x1f0c25b3U, + 0x50b9a2d8U, + 0x3f638583U, + 0xb51032e7U, + 0x4c2f8da9U, + 0xa88806f2U, + 0x947c5f81U, + 0x6f02b7c8U, + 0x8184fa1cU, + 0x6fc15506U, + 0xdbe45f82U, + 0xe656b7ceU, + 0x688efa3aU, + 0x347a553cU, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0xb0000000U, + 0x38000000U, + 0xf4000000U, + 0x12000000U, + 0x79000000U, + 0xc800000U, + 0x59400000U, + 0xb4600000U, + 0x19500000U, + 0xf4980000U, + 0x62a40000U, + 0x1df20000U, + 0xc26d0000U, + 0x75498000U, + 0x8d7fc000U, + 0x9a34a000U, + 0xb64a1000U, + 0xc4fe8800U, + 0xb1f58400U, + 0x746b3a00U, + 0x364ddb00U, + 0x84f9b680U, + 0x11f3a2c0U, + 0xc469a820U, + 0xe495410U, + 0x70fa9228U, + 0x3f08f2cU, + 0xbd69248eU, + 0x2ca2dfdU, + 0x29bb0ca4U, + 0xb791b9ceU, + 0xa43cbe8bU, + 0xf654e6eaU, + 0x4b1fb22bU, + 0xaa615f07U, + 0x66510c9fU, + 0x8318b9d7U, + 0xc6673eaeU, + 0x305626d5U, + 0xd01a923fU, + 0x47e08f11U, + 0x77912493U, + 0x443e2df4U, + 0xe6510c8cU, + 0xc318b9f1U, + 0x66673eb5U, + 0x805626f2U, + 0xe81a9235U, + 0xb3e08f2bU, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0xd0000000U, + 0x58000000U, + 0xd4000000U, + 0x16000000U, + 0xcf000000U, + 0x48800000U, + 0x34c00000U, + 0xd4e00000U, + 0x43900000U, + 0x42280000U, + 0x55a40000U, + 0x1a320000U, + 0xda1f0000U, + 0xb6ba8000U, + 0xfb0cc000U, + 0x557a000U, + 0x87cb3000U, + 0xfdb13800U, + 0x365aa400U, + 0xee9e7600U, + 0x687e4f00U, + 0x4aed5080U, + 0x8b46ab40U, + 0xeca61820U, + 0xdb65410U, + 0x1e586e38U, + 0x52981b34U, + 0x227d3e96U, + 0x1feab075U, + 0xcec126a5U, + 0x49e7e463U, + 0x6a11c88aU, + 0xf56c3f69U, + 0xb301d63bU, + 0xa2817f01U, + 0x51c668bbU, + 0x19670f67U, + 0x6ad0ee27U, + 0xe78bdb2dU, + 0x67901eb7U, + 0x7c2d4064U, + 0x26a7be80U, + 0x18b6704cU, + 0xbbde8681U, + 0x27d8d469U, + 0x1ddaf09cU, + 0x20dd9b5bU, + 0x395f2006U, + 0x618f039U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0xb0000000U, + 0xd8000000U, + 0x5c000000U, + 0x26000000U, + 0x9000000U, + 0x94800000U, + 0x45c00000U, + 0xb9200000U, + 0x8e100000U, + 0xc7980000U, + 0x43640000U, + 0xd5720000U, + 0x6eeb0000U, + 0xdb898000U, + 0x6ff8c000U, + 0x1197e000U, + 0xf5ddb000U, + 0xc040800U, + 0xe070400U, + 0xed043e00U, + 0x5e83d100U, + 0xb2c76c80U, + 0x78a21ec0U, + 0x79506820U, + 0x327d7410U, + 0xe0d45618U, + 0xd93ea52cU, + 0x53333ab6U, + 0xc38cbbd7U, + 0x13fb52a9U, + 0xe795cfd2U, + 0x94dd049dU, + 0x1c806aedU, + 0x31c7be20U, + 0x7b241108U, + 0x4d130c96U, + 0xa4186ee9U, + 0xc720000fU, + 0x9b10000fU, + 0x1518002cU, + 0xbfa40007U, + 0x20d20008U, + 0xf93b0008U, + 0x83318020U, + 0xab8cc029U, + 0x97fde02cU, + 0x9d92b016U, + 0xbbdf8805U, + 0x8104c400U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0x50000000U, + 0x78000000U, + 0xb4000000U, + 0x6000000U, + 0x29000000U, + 0x98800000U, + 0x15c00000U, + 0xe2e00000U, + 0xd8500000U, + 0xa7280000U, + 0xf8540000U, + 0x572e0000U, + 0xb0570000U, + 0xcb2c8000U, + 0x7a54c000U, + 0x50292000U, + 0xcdd4f000U, + 0xf4686800U, + 0xa2703400U, + 0xdb18c600U, + 0x3fef2300U, + 0x5c320480U, + 0x37b81a40U, + 0x4318c620U, + 0x1bef2330U, + 0x42320498U, + 0xfab81a54U, + 0xa598c63eU, + 0x932f231dU, + 0x3e520499U, + 0x1e281a5eU, + 0x78d0c618U, + 0xa6eb2318U, + 0x2cb404a1U, + 0x8e7b1a68U, + 0x43fa4631U, + 0x94bce326U, + 0xe09fa4b4U, + 0x89ac2a44U, + 0x2c978e03U, + 0x814ce738U, + 0x9fc62aa0U, + 0xd9e7cd77U, + 0x5fd524beU, + 0x2b6bea50U, + 0x5bf42e36U, + 0xca5fd708U, + 0x2cde291U, + 0xfd84c979U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0xd0000000U, + 0x48000000U, + 0x94000000U, + 0x9e000000U, + 0x7d000000U, + 0x81800000U, + 0x8c400000U, + 0x87e00000U, + 0xffb00000U, + 0x18c80000U, + 0xe7b40000U, + 0x4ce0000U, + 0x8db70000U, + 0x37c88000U, + 0x39354000U, + 0xae0c2000U, + 0xac91b000U, + 0xab5fc800U, + 0xca6dbc00U, + 0xd867aa00U, + 0xaef38300U, + 0xaea95780U, + 0xc44c540U, + 0x47e7aa20U, + 0x9fb38330U, + 0xc8c95798U, + 0xafb4c574U, + 0x90cfaa32U, + 0x13b78315U, + 0x4acf57bfU, + 0xb8b7c56bU, + 0x22492a12U, + 0x2b75c336U, + 0x54ebf79eU, + 0xd2a33554U, + 0x3fd2c214U, + 0xaa3dcf0fU, + 0x231d959fU, + 0x3b8a0a77U, + 0x7ed4bf99U, + 0x31bfc941U, + 0x645f4814U, + 0x4ecfc2cU, + 0x5aa58a0bU, + 0xcbd53337U, + 0xe43e1f88U, + 0x161c3966U, + 0x2e0c202dU, + 0x6c91b00aU, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0x70000000U, + 0xf8000000U, + 0xdc000000U, + 0xe000000U, + 0x91000000U, + 0xad800000U, + 0xe8400000U, + 0x49a00000U, + 0xadf00000U, + 0xb8880000U, + 0xc5f40000U, + 0x8c8e0000U, + 0x3ff10000U, + 0x478d8000U, + 0x2976c000U, + 0x414b6000U, + 0xba16b000U, + 0x71dfe800U, + 0xa30bdc00U, + 0xb4aa00U, + 0xb6ab9100U, + 0x6342c580U, + 0x3f20d540U, + 0x7b34aa20U, + 0xa3eb9130U, + 0xd162c5a8U, + 0x4790d55cU, + 0xd19caa1eU, + 0x6eaf9107U, + 0xf44c5abU, + 0x6925d578U, + 0x46372a35U, + 0xf86c513dU, + 0x742425b9U, + 0xadb0a553U, + 0x528221bU, + 0x3202fd0cU, + 0x8f07879aU, + 0x1481985cU, + 0x11c7458aU, + 0x8be21546U, + 0xa751ca2aU, + 0x27fc2102U, + 0xa9b8ad9eU, + 0x4519c942U, + 0xbf6d603cU, + 0x24a3b004U, + 0xbe74683bU, + 0x99c81c1eU, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0xf0000000U, + 0x18000000U, + 0x64000000U, + 0x2000000U, + 0xb5000000U, + 0x6800000U, + 0x3cc00000U, + 0x51a00000U, + 0x8bb00000U, + 0xe8a80000U, + 0x2fb40000U, + 0x4aaa0000U, + 0x8ab30000U, + 0xa42d8000U, + 0xca73c000U, + 0x938ea000U, + 0xf6c3d000U, + 0xc8a30800U, + 0xe337e400U, + 0xef68ee00U, + 0xb3966900U, + 0x28593380U, + 0xbefeec40U, + 0xdec8ee20U, + 0x88266910U, + 0x38f133b8U, + 0x54aec7cU, + 0x8e62ee26U, + 0xd3956909U, + 0x985cb3b8U, + 0x46f92c51U, + 0x4acc4e27U, + 0x9226b906U, + 0xe9f7bbacU, + 0x1cac873U, + 0x7a6a01dU, + 0x84b7d00dU, + 0x2f29083eU, + 0xfff4e411U, + 0xeecd6e14U, + 0x3021a92fU, + 0x4cf593a2U, + 0xef4a3c50U, + 0x47646600U, + 0xb3154d1eU, + 0x1398fda1U, + 0xa4db956dU, + 0xfb39f58dU, + 0x17eb7167U, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0x50000000U, + 0x88000000U, + 0xd4000000U, + 0x82000000U, + 0x7000000U, + 0x10800000U, + 0x91c00000U, + 0xaa600000U, + 0x52100000U, + 0x48780000U, + 0x8e140000U, + 0xde7e0000U, + 0xab110000U, + 0x99fc8000U, + 0xa2554000U, + 0x765a2000U, + 0xd8215000U, + 0x6b321800U, + 0xecdd400U, + 0xaa9c9600U, + 0xd1c78700U, + 0xca638680U, + 0xa21404c0U, + 0x907c9620U, + 0xd2178730U, + 0x887b86a8U, + 0x2e1004d4U, + 0x8e7a9602U, + 0x23128705U, + 0x4df90688U, + 0x205444d5U, + 0x715c3606U, + 0xc8a69721U, + 0xfaf13ea2U, + 0xa4a8c0c1U, + 0xf88ab814U, + 0x99b8c402U, + 0x44702e15U, + 0x7c6a432bU, + 0x3b692892U, + 0x4bee07daU, + 0x2a2d1e80U, + 0x584c90f9U, + 0x565a2022U, + 0x48215008U, + 0x43321820U, + 0x8acdd41dU, + 0xa09c961eU, + 0x2c78714U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0x70000000U, + 0xd8000000U, + 0xbc000000U, + 0xc2000000U, + 0xc9000000U, + 0x5d800000U, + 0x50400000U, + 0x7e00000U, + 0x5eb00000U, + 0xf7680000U, + 0xab40000U, + 0xf16e0000U, + 0xadb70000U, + 0xfed8000U, + 0xd71c000U, + 0x7bc86000U, + 0xf67d000U, + 0x41762800U, + 0xa1c93c00U, + 0x1a66aa00U, + 0xaef40300U, + 0xe088df80U, + 0xfc04f840U, + 0x6206aa20U, + 0xd9040330U, + 0xf580df98U, + 0x3440f85cU, + 0x79e0aa16U, + 0x55b7031fU, + 0x63eb5fa8U, + 0x772386eU, + 0xa6cb4a01U, + 0xf4e6130bU, + 0xa63097a9U, + 0xf0a91479U, + 0x8015a83cU, + 0x53bffc09U, + 0xe32b4a15U, + 0xa3561312U, + 0x6cd8979fU, + 0xda5d147aU, + 0xae9ba833U, + 0x1cb8fc3dU, + 0xd9aeca21U, + 0x6d93d321U, + 0xbbfef793U, + 0x28cdc47bU, + 0xe7e00006U, + 0xeeb00014U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x50000000U, + 0xb8000000U, + 0x24000000U, + 0x6000000U, + 0xa5000000U, + 0x1e800000U, + 0x4c00000U, + 0xdfa00000U, + 0xec700000U, + 0x5ee80000U, + 0xc0740000U, + 0xd4ea0000U, + 0x9f770000U, + 0x1d688000U, + 0x9e32c000U, + 0x5989a000U, + 0xb1a2f000U, + 0x95748800U, + 0x26e0400U, + 0x37b2ae00U, + 0x8c9f900U, + 0x4d444d80U, + 0x9ee44e40U, + 0xc892ae20U, + 0x2179f910U, + 0xb48c4d98U, + 0x43204e54U, + 0x3bb0ae0eU, + 0xb2caf919U, + 0xfa46cd99U, + 0xcb618e7dU, + 0xebd38e09U, + 0xc699c918U, + 0x209965aeU, + 0x9598ba46U, + 0x531c881eU, + 0x23da0428U, + 0x4278ae1bU, + 0x2f0ef921U, + 0x6964cdb9U, + 0x8d28e5fU, + 0x1d190e35U, + 0x6ad80909U, + 0xf6fa45aaU, + 0x44cb8a42U, + 0x97432017U, + 0x79e3302bU, + 0x2517a83fU, + 0x263d340dU, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0xd0000000U, + 0x78000000U, + 0xac000000U, + 0xfa000000U, + 0xbf000000U, + 0x21800000U, + 0x44400000U, + 0xc1e00000U, + 0x8b300000U, + 0xa4280000U, + 0xd1340000U, + 0xb2e0000U, + 0xa8b50000U, + 0x33688000U, + 0xeb56c000U, + 0xab5de000U, + 0x94f91000U, + 0x812c1800U, + 0x7fb61c00U, + 0xe6eb3a00U, + 0x29109300U, + 0x57bda380U, + 0x2d4e5240U, + 0xbac33a20U, + 0x94249330U, + 0x8693a388U, + 0xeafb5274U, + 0xd02bba3eU, + 0x9732531bU, + 0x162e43b6U, + 0x4a32425bU, + 0xd4afa236U, + 0x7df04f0aU, + 0x3a0b7986U, + 0x40a7d179U, + 0x1452819fU, + 0x6adcdd7eU, + 0x20bba3a4U, + 0xe8cf5263U, + 0x2085ba1bU, + 0x14c75330U, + 0xbd26c3b0U, + 0xc214825dU, + 0xe03a420dU, + 0xc0d5f34U, + 0x35a1619fU, + 0x2d0cd6dU, + 0xb1f3b96U, + 0x8b1f8e72U, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0xd0000000U, + 0xc8000000U, + 0xd4000000U, + 0xd6000000U, + 0x21000000U, + 0x95800000U, + 0x3e400000U, + 0xb8600000U, + 0x8b900000U, + 0x1c580000U, + 0x69940000U, + 0x5b5a0000U, + 0xe5150000U, + 0x3c9c8000U, + 0xa9334000U, + 0x2c6a2000U, + 0x5c7df000U, + 0xd3672800U, + 0x7d175c00U, + 0x6099da00U, + 0x8b331f00U, + 0xb6e4680U, + 0x20fc9dc0U, + 0xaca1da20U, + 0x2d371f10U, + 0x726c4688U, + 0x897d9df4U, + 0x40e75a12U, + 0xaa515f25U, + 0x997ae6bdU, + 0xe8e32dfcU, + 0x8e525237U, + 0x577ff32aU, + 0xd5e61493U, + 0x19d66edeU, + 0x9e3b4eb0U, + 0xd90231f0U, + 0x39852825U, + 0x4465c37U, + 0x83675a17U, + 0xf5115f3eU, + 0x949ae6b4U, + 0x8d332df1U, + 0xe26a520cU, + 0x617bf338U, + 0x44e41486U, + 0xb4576ed5U, + 0x6c7dce82U, + 0xab6471e0U, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0x10000000U, + 0xb8000000U, + 0x94000000U, + 0xaa000000U, + 0x11000000U, + 0x67800000U, + 0xa0c00000U, + 0x53200000U, + 0xb7500000U, + 0xa2780000U, + 0x11540000U, + 0x5d7e0000U, + 0xd5d10000U, + 0xf3e8000U, + 0x53b4c000U, + 0xce8a2000U, + 0xd8399000U, + 0x7b36a800U, + 0x2c8ac00U, + 0xf558ae00U, + 0x7403b500U, + 0xda025480U, + 0x1900c6c0U, + 0x5b80ae20U, + 0x26c7b530U, + 0x7c2454a8U, + 0x6bd5c6c4U, + 0x74382e0eU, + 0x85367515U, + 0x19cef482U, + 0x93d996c0U, + 0xb422617U, + 0xbde7893dU, + 0x5774d296U, + 0x5faa1fedU, + 0xf268f4bfU, + 0x90cc96f9U, + 0xb05aa621U, + 0x19864928U, + 0x7bc672b4U, + 0x95a24fd9U, + 0xd814fc94U, + 0x7d986affU, + 0xcb20000eU, + 0xf3500008U, + 0x10780012U, + 0x8454003aU, + 0x28fe0013U, + 0xf011001aU, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0x70000000U, + 0xc8000000U, + 0xe4000000U, + 0x76000000U, + 0x29000000U, + 0x7800000U, + 0xbbc00000U, + 0x5de00000U, + 0x6d500000U, + 0xdc680000U, + 0x24540000U, + 0xebea0000U, + 0xb7930000U, + 0x22098000U, + 0x64c54000U, + 0x3366a000U, + 0x3112f000U, + 0x4a4de800U, + 0xdce1cc00U, + 0xbed1b600U, + 0x39ae6300U, + 0xc4b07c80U, + 0x3f387040U, + 0x1d3bb620U, + 0x2a3d6310U, + 0x70b9fcb8U, + 0x2fd305cU, + 0xe1dd1612U, + 0x44ef9329U, + 0x111414a5U, + 0x9a4cfc56U, + 0x84e4a013U, + 0xe2d5f007U, + 0x63ae6832U, + 0x7fb78c0dU, + 0x67be9604U, + 0x8879d31eU, + 0xcb9b34b0U, + 0xfbcb4c7cU, + 0xee27e81eU, + 0x74b2cc2eU, + 0x57383619U, + 0x693b2326U, + 0xe43edc9fU, + 0x75be805eU, + 0x977c5e24U, + 0x51faf35U, + 0x3789ca92U, + 0xc0021353U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0x10000000U, + 0x68000000U, + 0x64000000U, + 0xfe000000U, + 0x5d000000U, + 0x8c800000U, + 0x99400000U, + 0x6d600000U, + 0x8af00000U, + 0xc6480000U, + 0xe3f40000U, + 0x7cce0000U, + 0x33b70000U, + 0x1b2e8000U, + 0x71044000U, + 0xa685a000U, + 0x2247b000U, + 0xa0e14800U, + 0x6d30d400U, + 0xf56d0200U, + 0x2be4ff00U, + 0x78b47580U, + 0x6eaa3d40U, + 0xfac30220U, + 0x1fa3ff30U, + 0x2152f598U, + 0x111a7d44U, + 0xdbe8a23aU, + 0xbda34f29U, + 0x2e553da7U, + 0x2a9ae953U, + 0x152e0019U, + 0x9407000fU, + 0x4606803cU, + 0x31004031U, + 0x683a008U, + 0x5244b007U, + 0xd8e1c83bU, + 0x61339439U, + 0x6f6e2214U, + 0x88e30f02U, + 0xa9369dadU, + 0x7b6e5966U, + 0xee7c83fU, + 0xf830940fU, + 0x6deea213U, + 0x34a04f0aU, + 0x44d5bdaaU, + 0xf2d9a945U, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0x30000000U, + 0xe8000000U, + 0xdc000000U, + 0x9e000000U, + 0xf9000000U, + 0x15800000U, + 0x4f400000U, + 0x42a00000U, + 0x3e300000U, + 0x3e380000U, + 0xb340000U, + 0x2dba0000U, + 0x29710000U, + 0x89b8000U, + 0xd7064000U, + 0x44856000U, + 0x26c6b000U, + 0xa3e0a800U, + 0x6d931c00U, + 0xc98b5200U, + 0xe44a4900U, + 0x9d2a4380U, + 0x2f7848c0U, + 0x50915220U, + 0x960b4910U, + 0x8009c3a8U, + 0x750a08ccU, + 0x868e321aU, + 0x34ccf927U, + 0xc9eaeb8fU, + 0x39b54f2U, + 0xd82001fU, + 0x9b450034U, + 0x90a1801fU, + 0x8137403dU, + 0xe6bee030U, + 0x13f0f026U, + 0x475dc83cU, + 0xb961ac3bU, + 0x5251fa08U, + 0xefe85524U, + 0x1e9a918aU, + 0x220441ccU, + 0xb7067185U, + 0x9481b1fcU, + 0x5ec239a0U, + 0xa7e35de6U, + 0xc79723bfU, + 0x728af8ceU, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0xf0000000U, + 0x88000000U, + 0xc4000000U, + 0x9e000000U, + 0x1f000000U, + 0x60800000U, + 0x3a400000U, + 0xb3a00000U, + 0xa3700000U, + 0x19980000U, + 0x20740000U, + 0xfb1e0000U, + 0x47370000U, + 0x15398000U, + 0x73834000U, + 0xa0c7a000U, + 0x98e3b000U, + 0x17515800U, + 0xac2bb400U, + 0xea0b0a00U, + 0x4ab86900U, + 0x79453180U, + 0x3124d5c0U, + 0x34350a20U, + 0x7fbf6930U, + 0xd0c4b198U, + 0xd0e395fcU, + 0xb354aa02U, + 0xc22fd901U, + 0x7d0a69bfU, + 0xee3861fbU, + 0xdd07801aU, + 0x9d84400fU, + 0xf7c62013U, + 0x5c64f013U, + 0x4310f83cU, + 0x888b0437U, + 0xedfdd235U, + 0xf7679d3eU, + 0xf5901b9bU, + 0x9cc4cdaU, + 0x50dec39aU, + 0xf957b8efU, + 0xfb2de9beU, + 0x2e8c21f3U, + 0x1ef9a036U, + 0x5de4b018U, + 0x36d0d803U, + 0x89ecf431U, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0xf0000000U, + 0xc8000000U, + 0xc000000U, + 0xf6000000U, + 0x91000000U, + 0xbc800000U, + 0x2400000U, + 0x38e00000U, + 0x4a700000U, + 0x7b880000U, + 0xfd740000U, + 0x2e0a0000U, + 0x27b10000U, + 0x1ead8000U, + 0xfa274000U, + 0xed5e000U, + 0x341cf000U, + 0x760f6800U, + 0xf3b21400U, + 0x7cabfa00U, + 0xa9251300U, + 0x11550980U, + 0xe1dcdf40U, + 0x9729fa20U, + 0xaee01310U, + 0xcb7289a8U, + 0x5f0a9f7cU, + 0xcb319a12U, + 0x24eba313U, + 0x6c00195U, + 0xbea07b58U, + 0x2897083dU, + 0xa6f9a413U, + 0x6379721bU, + 0x61bff70aU, + 0xc51b9b83U, + 0xda8ad87cU, + 0x69f28998U, + 0x704a9f6fU, + 0xd1519a3eU, + 0x1dba32dU, + 0xc728019cU, + 0x96e47b69U, + 0xf75082bU, + 0xa50ca40aU, + 0xac36f22dU, + 0x96db736U, + 0xb801fb8dU, + 0x8404686bU, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0x30000000U, + 0x78000000U, + 0x4c000000U, + 0x52000000U, + 0xe7000000U, + 0x28800000U, + 0x62400000U, + 0x600000U, + 0x1300000U, + 0x4b480000U, + 0xec340000U, + 0x38ce0000U, + 0x2cf10000U, + 0xc1ef8000U, + 0x2f22c000U, + 0x42d5e000U, + 0xf2bc5000U, + 0x1258d800U, + 0x852a1400U, + 0x70014a00U, + 0x18015700U, + 0xdc036380U, + 0x1a033d40U, + 0xd3074a20U, + 0x36845730U, + 0xd742e3a8U, + 0xcfe0fd4cU, + 0x4bf52a3eU, + 0x296ec723U, + 0xed61dbbcU, + 0x72b7b975U, + 0x8b8b3834U, + 0x1513443bU, + 0x3b18123cU, + 0xafc88335U, + 0x1c704986U, + 0x7fa8fa70U, + 0x354711baU, + 0x90e02e42U, + 0x8f73bba0U, + 0x292d2954U, + 0x72000008U, + 0x17000018U, + 0xf0800004U, + 0x1e400037U, + 0x2a600002U, + 0xaa300003U, + 0x31c8001dU, + 0x6974000dU, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x10000000U, + 0xd8000000U, + 0xac000000U, + 0xe2000000U, + 0xb3000000U, + 0x3800000U, + 0xd5400000U, + 0x76600000U, + 0xaab00000U, + 0x9480000U, + 0x93b40000U, + 0xfdca0000U, + 0xa3770000U, + 0x6bea8000U, + 0x5921c000U, + 0xe3d7e000U, + 0x327ad000U, + 0x34bc7800U, + 0x6f9fcc00U, + 0x6f4b5200U, + 0xe6b13f00U, + 0xbb492780U, + 0x98b7c540U, + 0x42495220U, + 0x4c323f10U, + 0x289a798U, + 0x12110544U, + 0x8cdc3216U, + 0xd42d2f3bU, + 0xb6803fa0U, + 0xb3c71968U, + 0x3da39816U, + 0x4b111c0eU, + 0x685d2a3dU, + 0x3ce9f302U, + 0x8ca0f5b4U, + 0xab933a7aU, + 0x69d95baU, + 0x23c82a7eU, + 0x6a760da0U, + 0x176d3653U, + 0x7de12794U, + 0x2bf3c571U, + 0x412b5223U, + 0xa0013f3aU, + 0x3001278aU, + 0xa803c56bU, + 0x6403520aU, + 0x96053f23U, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0xb0000000U, + 0xe8000000U, + 0x9c000000U, + 0x6a000000U, + 0xbf000000U, + 0xdd800000U, + 0xac400000U, + 0x42200000U, + 0xd0100000U, + 0xe8380000U, + 0x59140000U, + 0x80ba0000U, + 0x7d50000U, + 0xeb5f8000U, + 0x4da24000U, + 0x67536000U, + 0xf99d1000U, + 0x34409800U, + 0x5620fc00U, + 0xb6157a00U, + 0x653a2d00U, + 0x4f955a80U, + 0x77d5cc0U, + 0x3cb77a20U, + 0x1beb2d10U, + 0x448da88U, + 0x381e1cecU, + 0xb2019a1aU, + 0x8b017d37U, + 0xb84a292U, + 0xc941b0c3U, + 0xc8a7182dU, + 0x3dd6bc1cU, + 0x6c5c1a02U, + 0x74223d37U, + 0x651242b7U, + 0x1abbe0daU, + 0x70d3600aU, + 0x1add100aU, + 0x63e0983fU, + 0x670fc02U, + 0x9e0d7a13U, + 0xcf3e2d2cU, + 0x90975a97U, + 0x4afc5cffU, + 0xc8f2fa03U, + 0x2dcc6d1dU, + 0x225c3abcU, + 0x5254cdfU, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0x50000000U, + 0x18000000U, + 0x74000000U, + 0x26000000U, + 0x43000000U, + 0xdc800000U, + 0x1c400000U, + 0x76a00000U, + 0xad100000U, + 0x82480000U, + 0x6c140000U, + 0xe3ce0000U, + 0x7bd30000U, + 0x23ac8000U, + 0xe723c000U, + 0xd2d72000U, + 0x9e2ef000U, + 0xeae73800U, + 0x1bb11400U, + 0xcf5e5a00U, + 0xbe5ae100U, + 0x97dd5280U, + 0xec1fe340U, + 0x7e785a20U, + 0x878de130U, + 0xe977d2b8U, + 0x50bb2354U, + 0x26dfa26U, + 0x5c43d12dU, + 0x56a34ab1U, + 0x1d130744U, + 0xca4db811U, + 0x15d42aU, + 0xb1cbfa2cU, + 0x1ed4d12fU, + 0xbc29ca91U, + 0x27e7c741U, + 0xb830180cU, + 0x459fe415U, + 0xc5b96227U, + 0xf5ebf531U, + 0x40830897U, + 0x2645024fU, + 0xcfa508bbU, + 0x28920244U, + 0x4b8f8890U, + 0xcb76c275U, + 0x9dba2894U, + 0xa1e8f256U, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0xb0000000U, + 0x58000000U, + 0xdc000000U, + 0xaa000000U, + 0xa9000000U, + 0x6b800000U, + 0xcbc00000U, + 0x64600000U, + 0x92900000U, + 0x7bf80000U, + 0xe5940000U, + 0xf77e0000U, + 0x8ad10000U, + 0xd85b8000U, + 0xf163c000U, + 0x83156000U, + 0x513a9000U, + 0xde722800U, + 0x802acc00U, + 0x4a4cf600U, + 0xc7daaf00U, + 0x74a24280U, + 0x2873c0c0U, + 0x432af620U, + 0x28cfaf30U, + 0xd79fc2a8U, + 0x830500ecU, + 0x2821636U, + 0x43ff07U, + 0x1fa50a82U, + 0xaef39cc6U, + 0x356c282cU, + 0x346bcc35U, + 0xbbef761bU, + 0x162d6f22U, + 0x99492292U, + 0x4d5850fcU, + 0xe0e35e2eU, + 0xa9d6a31cU, + 0x6ade549aU, + 0xa9213fdbU, + 0x40b47cb2U, + 0x55cff3d5U, + 0x421e8abdU, + 0xdfc05cd3U, + 0x3a61480bU, + 0xb5955c1eU, + 0x7f7b5e11U, + 0x1ed2a303U, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0x90000000U, + 0x28000000U, + 0xb4000000U, + 0xde000000U, + 0x5000000U, + 0xd1800000U, + 0x5dc00000U, + 0x25e00000U, + 0x6bd00000U, + 0x8c480000U, + 0xaa540000U, + 0xb98a0000U, + 0xdbb30000U, + 0x9c5e8000U, + 0x7afa4000U, + 0x538f2000U, + 0x40b6b000U, + 0xa8dc0800U, + 0x66bebc00U, + 0x3aca600U, + 0xba84b300U, + 0x91434880U, + 0x45a7d940U, + 0xc1f22620U, + 0x857ef310U, + 0xf34c68b8U, + 0xc8d16964U, + 0x64ce2e2aU, + 0x3c104f3dU, + 0xa2a8ce8fU, + 0xdd01da65U, + 0x9d87669eU, + 0xffc4966aU, + 0xdae468a6U, + 0x4955696fU, + 0xb10c2e05U, + 0xddf74f24U, + 0xaf7c4ea2U, + 0xc8489a64U, + 0x8c56c6adU, + 0xc088665fU, + 0xf03740a8U, + 0x329d655eU, + 0x3f9c8001U, + 0x6a1d4039U, + 0xb1dba015U, + 0x9d3ff030U, + 0x656da82dU, + 0xdbe24c31U, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0xf0000000U, + 0xe8000000U, + 0xac000000U, + 0x9e000000U, + 0x13000000U, + 0xb800000U, + 0x68400000U, + 0x2fa00000U, + 0x21d00000U, + 0x99d80000U, + 0x3a540000U, + 0x899e0000U, + 0x1f10000U, + 0x82498000U, + 0x512e4000U, + 0x9298e000U, + 0x3674b000U, + 0xcc097800U, + 0xd98d6c00U, + 0x62cc7a00U, + 0xe6e8f100U, + 0x5f7bc480U, + 0x10647c0U, + 0xb685fa20U, + 0x38c6b130U, + 0x106324a8U, + 0x1032f7fcU, + 0x28ac821aU, + 0x17dbdd1bU, + 0x51575e8fU, + 0x961e06f8U, + 0x43b14698U, + 0x64e89ac1U, + 0x5a7d24a4U, + 0xe583f7c0U, + 0x53450216U, + 0x28259d33U, + 0x2797be9cU, + 0x4d7eb6dbU, + 0xbc063eb9U, + 0xe604f6dfU, + 0x700dea0U, + 0x218146d7U, + 0xa140268eU, + 0x5226ad9U, + 0xcf14bca6U, + 0xc6be2bd1U, + 0x57e60017U, + 0x76750015U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0xf0000000U, + 0x18000000U, + 0x7c000000U, + 0xea000000U, + 0x27000000U, + 0x3a800000U, + 0x4c400000U, + 0x99600000U, + 0x4c700000U, + 0x4780000U, + 0xeef40000U, + 0x743a0000U, + 0xfd970000U, + 0xef4d8000U, + 0xdb6fc000U, + 0x31fa6000U, + 0xdc329000U, + 0xa71c5800U, + 0xd86c400U, + 0xdec5fa00U, + 0xd1226f00U, + 0xb3120980U, + 0x9d0b94c0U, + 0x8b087a20U, + 0x60daf10U, + 0x7b886998U, + 0xfd4904fcU, + 0x306c2226U, + 0x997f6b0fU, + 0x3b7793a2U, + 0xf6fc6bf5U, + 0x56b3aba8U, + 0x935b3fdcU, + 0x18e589a4U, + 0x60b354f6U, + 0x8e5f9a31U, + 0x8d60ff1bU, + 0x8276519fU, + 0xd57950c6U, + 0xe9778028U, + 0x3df8c018U, + 0x6e37e01bU, + 0x9c1d503dU, + 0x2d06383dU, + 0xad845411U, + 0xec1a23bU, + 0x5920ab1dU, + 0x2715f3acU, + 0x130afbc5U, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0x90000000U, + 0x28000000U, + 0xbc000000U, + 0xae000000U, + 0xef000000U, + 0x5a800000U, + 0x58400000U, + 0xc3200000U, + 0xcf100000U, + 0x3c080000U, + 0xed940000U, + 0x104a0000U, + 0xcb10000U, + 0x265e8000U, + 0x11384000U, + 0xdb0f6000U, + 0xdb173000U, + 0x6e091800U, + 0xc936400U, + 0x35cf9a00U, + 0x26741d00U, + 0x13dd280U, + 0xb30f6540U, + 0xc7111a20U, + 0x500c5d10U, + 0xcb92b2a8U, + 0xd3485564U, + 0xd030022aU, + 0x2d1b393fU, + 0x269f2883U, + 0xa359485fU, + 0x7eb950bcU, + 0x14cd1c69U, + 0xe3f7d293U, + 0x1bfe657cU, + 0x2c6f9a1bU, + 0xf1241d36U, + 0x5e15d2bdU, + 0x18b6540U, + 0xc3531a11U, + 0xd295d2dU, + 0x53863297U, + 0x21c1154fU, + 0x77e1e211U, + 0xbf744926U, + 0x50b95083U, + 0xbbcd1c6bU, + 0x1977d2a5U, + 0xd3be657aU, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0x10000000U, + 0x18000000U, + 0x3c000000U, + 0x6a000000U, + 0xdd000000U, + 0xdc800000U, + 0xf6c00000U, + 0xf9a00000U, + 0x9e100000U, + 0xfbd80000U, + 0x2e940000U, + 0xdf1e0000U, + 0x46370000U, + 0xff8e8000U, + 0xb22fc000U, + 0xa23b6000U, + 0xb2e29000U, + 0xe7f28800U, + 0xd7aef400U, + 0x7e7cfe00U, + 0x7a815900U, + 0x89c21e80U, + 0xbc20cfc0U, + 0xf2527e20U, + 0x5bbe9930U, + 0x74a17e98U, + 0xfa965fc4U, + 0x411ef626U, + 0xb5376d3fU, + 0xb80b0082U, + 0x376cc6f3U, + 0x90d98891U, + 0x951232c2U, + 0x505d769cU, + 0xb9d76be4U, + 0x1cf96837U, + 0xcf44a40dU, + 0x5fe3960dU, + 0x9376fd0aU, + 0x756908aaU, + 0xd9daf2e2U, + 0x779096acU, + 0x259e3be0U, + 0xff68009U, + 0x23abc03cU, + 0x507d601eU, + 0xe1819004U, + 0xfa420831U, + 0x77663414U, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0xb0000000U, + 0x78000000U, + 0xe4000000U, + 0xde000000U, + 0x8b000000U, + 0x44800000U, + 0xdcc00000U, + 0xeb200000U, + 0xb0700000U, + 0xb0e80000U, + 0x8f40000U, + 0xa62a0000U, + 0x2ed30000U, + 0x8ddf8000U, + 0xa078c000U, + 0xddcca000U, + 0xc7843000U, + 0xa443f800U, + 0x5de59400U, + 0xc653de00U, + 0x531f6d00U, + 0x1a5aed80U, + 0xcc3c5240U, + 0x1c2c5e20U, + 0x3bd7ad10U, + 0xa25e4db8U, + 0x883c626cU, + 0x922da63eU, + 0x78d53929U, + 0x7ad8138fU, + 0x6ef8cf4eU, + 0x2c0c6bafU, + 0x7219b5eU, + 0x52711595U, + 0x51edc672U, + 0xd175803bU, + 0x296bc030U, + 0x67b32002U, + 0x5f4cf010U, + 0x84475837U, + 0x4de5a406U, + 0xee522602U, + 0x7f1df903U, + 0x585cb38dU, + 0x7d38ff66U, + 0xdad9399U, + 0x28930f50U, + 0xd13f4b91U, + 0xfad6b79U, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0x50000000U, + 0xa8000000U, + 0x2c000000U, + 0xa000000U, + 0xd000000U, + 0xd800000U, + 0xf3400000U, + 0x49600000U, + 0x53300000U, + 0x2ae80000U, + 0x6ab40000U, + 0x67ae0000U, + 0x50d10000U, + 0xea1c8000U, + 0x7fc4000U, + 0x1c09e000U, + 0x83c21000U, + 0x8fa08800U, + 0xcd12fc00U, + 0x46b95200U, + 0xbc6a5700U, + 0xb765b80U, + 0xa9084840U, + 0x6a45d220U, + 0xaae61730U, + 0x7b77bba8U, + 0x910e5854U, + 0x4e435a0aU, + 0xdce1eb3bU, + 0xd47469aaU, + 0xbd8d4f57U, + 0xba866189U, + 0x6bc2f347U, + 0xc3a25398U, + 0x3712f473U, + 0xb3bb602bU, + 0x35ef5009U, + 0xde35e80bU, + 0xe76cac1cU, + 0x39f03a1bU, + 0x7ecabb2fU, + 0xabe7818dU, + 0xecf4e35fU, + 0x674cdba2U, + 0x76a10870U, + 0xde96b21fU, + 0x96fd4731U, + 0x838c538aU, + 0x983f449U, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0xb0000000U, + 0xe8000000U, + 0xcc000000U, + 0xba000000U, + 0x1d000000U, + 0x6c800000U, + 0x37400000U, + 0x6e00000U, + 0x9ad00000U, + 0x3dd80000U, + 0xcc540000U, + 0x579a0000U, + 0x46330000U, + 0x4a0f8000U, + 0x950c4000U, + 0xd08de000U, + 0x454b9000U, + 0x47ea0800U, + 0x345d7400U, + 0xa394f200U, + 0xa83f2300U, + 0xe907f480U, + 0x28125c0U, + 0x54437220U, + 0xb1676310U, + 0x8e1014b8U, + 0xb1f9b5ecU, + 0xb1a6fa1aU, + 0xdc365723U, + 0x47090696U, + 0x418d06ebU, + 0x73cb0681U, + 0xddaa06eeU, + 0xb63e86b7U, + 0xc20546ddU, + 0x2904e6b6U, + 0xa28696f1U, + 0x4410e98U, + 0xe96772ffU, + 0xaa12748aU, + 0xc7fe65d3U, + 0x16a11237U, + 0xadb0b323U, + 0x1ccffcbaU, + 0x702b51e8U, + 0xeffa0028U, + 0x7aa30016U, + 0x47b7802fU, + 0x59c8400aU, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0xd0000000U, + 0x18000000U, + 0x2c000000U, + 0x62000000U, + 0x4b000000U, + 0xbd800000U, + 0x5cc00000U, + 0xb4200000U, + 0x31900000U, + 0xee880000U, + 0x7e140000U, + 0x414e0000U, + 0xebb70000U, + 0x86188000U, + 0xce1fc000U, + 0x3a1de000U, + 0x141ad000U, + 0xed1cb800U, + 0x399bc00U, + 0xcede9e00U, + 0x443d7d00U, + 0x8a8c0280U, + 0xe8105140U, + 0x244e1e20U, + 0xaf36bd30U, + 0x345fe298U, + 0xb77d8174U, + 0x816a2626U, + 0x3420c13bU, + 0xf1949c80U, + 0x8e8e2c66U, + 0xae149c89U, + 0x594e2c6cU, + 0xc7b49c8dU, + 0xe41e2c5aU, + 0x851c9caaU, + 0x879a2c47U, + 0x48da9c9bU, + 0x59392c6bU, + 0x320c1c93U, + 0x2051ec66U, + 0x3a297cbaU, + 0xcbc4fc79U, + 0x3a02485U, + 0xa253906aU, + 0x612c02b2U, + 0xe405177U, + 0xa3661e37U, + 0x6c72bd2aU, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0xd0000000U, + 0x98000000U, + 0xb4000000U, + 0xb2000000U, + 0xf9000000U, + 0x2d800000U, + 0xa2400000U, + 0xd3e00000U, + 0x39300000U, + 0xaf980000U, + 0x9eb40000U, + 0xd0da0000U, + 0x6ad50000U, + 0xd6ac8000U, + 0x1129c000U, + 0x9e6d2000U, + 0x220e5000U, + 0x87be800U, + 0x7581bc00U, + 0x76463a00U, + 0x91e48300U, + 0x88316380U, + 0xae19b7c0U, + 0x3af2ba20U, + 0x48394310U, + 0x87664388U, + 0xf6f2e7f4U, + 0xfe3dd206U, + 0xa4653f3dU, + 0xde7759a4U, + 0xeffd34caU, + 0x2ac3d98dU, + 0x5220f4d5U, + 0xf94f9b0U, + 0x47cba4d4U, + 0x54db91aeU, + 0xf0d7d8c6U, + 0xf3aa8ba2U, + 0x72a80be3U, + 0x5b2c8037U, + 0x2369c03cU, + 0xf58d202eU, + 0x7f3e5013U, + 0x8de3e829U, + 0xa635bc0bU, + 0x391c3a36U, + 0xa0718309U, + 0xa0fde3b5U, + 0x244077e9U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0x70000000U, + 0x38000000U, + 0x74000000U, + 0x2000000U, + 0x4d000000U, + 0x9c800000U, + 0xdfc00000U, + 0x40e00000U, + 0x30300000U, + 0x9380000U, + 0x82b40000U, + 0x7dfe0000U, + 0x79d50000U, + 0x7f8d8000U, + 0x3d4cc000U, + 0x692a2000U, + 0xeadad000U, + 0xa5014800U, + 0x6081b400U, + 0xb1c47600U, + 0xbe71300U, + 0xdbb76780U, + 0x737f72c0U, + 0x8311f620U, + 0x9fefd330U, + 0x9cbb4788U, + 0x1bf4a2dcU, + 0x8bdb3e2eU, + 0xdf83a72dU, + 0x98469188U, + 0x1ca0a1cfU, + 0x3692b189U, + 0x76af71daU, + 0x529e79b8U, + 0xc9a205f3U, + 0x6e102f83U, + 0xb36fc6e6U, + 0x5b7e0029U, + 0x5f150030U, + 0x81ed803cU, + 0xefbcc00aU, + 0x8472203cU, + 0xf39ed011U, + 0x93274803U, + 0xe6d0b41fU, + 0x260ff61cU, + 0x120ad33dU, + 0xf00ec78dU, + 0xed0c62f9U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0xf0000000U, + 0x28000000U, + 0xc000000U, + 0x2000000U, + 0x39000000U, + 0xa5800000U, + 0x1b400000U, + 0x3ca00000U, + 0xb2500000U, + 0xd5780000U, + 0x61d40000U, + 0xe13e0000U, + 0xc7f50000U, + 0x2aa98000U, + 0x83ec4000U, + 0x4e4de000U, + 0x859a5000U, + 0x91a52800U, + 0xd1d4fc00U, + 0x293eb200U, + 0x1bf67900U, + 0xf0abb080U, + 0x9eeedac0U, + 0xe5cf3220U, + 0xa5de3930U, + 0x31805088U, + 0xdd458afcU, + 0xdba59a2aU, + 0xf4d78533U, + 0x76bc8288U, + 0xedb4e3f2U, + 0x4f896283U, + 0xfab3f5U, + 0x92924aa7U, + 0xf19b4feeU, + 0x87a578beU, + 0xeed176d1U, + 0x4bbb2815U, + 0xb631fc1cU, + 0x47cf3214U, + 0xacde390fU, + 0x9c005087U, + 0x3a058af7U, + 0xcd059a1dU, + 0x73878518U, + 0x44482baU, + 0xae20e3d8U, + 0x379762baU, + 0x6e1fb3c5U, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0xf0000000U, + 0x88000000U, + 0xc000000U, + 0x46000000U, + 0x63000000U, + 0x7a800000U, + 0xf2c00000U, + 0x68e00000U, + 0x9cd00000U, + 0x57980000U, + 0x5540000U, + 0x9fda0000U, + 0xbf750000U, + 0x9bed8000U, + 0xfc394000U, + 0xc521e000U, + 0x20b57000U, + 0x868df800U, + 0x7eae2400U, + 0x139eae00U, + 0x2f55c300U, + 0x6aded880U, + 0xdef7f7c0U, + 0x97a92e20U, + 0x2c198310U, + 0x1412b888U, + 0xf27bc7fcU, + 0x5c053602U, + 0x7e02d713U, + 0xc701ee99U, + 0xc08020e4U, + 0x5fc5409cU, + 0x7d60e3efU, + 0x52961823U, + 0xaebe5413U, + 0x8be6d621U, + 0xa656a702U, + 0x855b968eU, + 0x9db244d3U, + 0x8b0f8e9cU, + 0xe4ed10caU, + 0xd8bed8baU, + 0xe7f7d0U, + 0xd12e02U, + 0x499d8329U, + 0x1250b8bcU, + 0x275ac7caU, + 0x64b2b637U, + 0xac8e970fU, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0x30000000U, + 0x48000000U, + 0x94000000U, + 0x72000000U, + 0xfb000000U, + 0xa2800000U, + 0x4f400000U, + 0x42200000U, + 0x52100000U, + 0xc7580000U, + 0x3940000U, + 0x1e9e0000U, + 0x2cf70000U, + 0x8daf8000U, + 0xc73d4000U, + 0xe0272000U, + 0x1114d000U, + 0xd9d9f800U, + 0x9ad14400U, + 0x9dbd4200U, + 0xb3673500U, + 0xd5332280U, + 0x32cfa7c0U, + 0x4c0cc220U, + 0xe7ed7530U, + 0xd29b8298U, + 0x12f637ccU, + 0x88aa1a32U, + 0xbce115U, + 0x58e13884U, + 0xa3f746f2U, + 0xad2bfa9aU, + 0x5b7933c6U, + 0xa481f834U, + 0x36454416U, + 0x33a34213U, + 0x1bd0353aU, + 0xf03ca299U, + 0x7ca2e7c4U, + 0x5b53e206U, + 0x5c7da52cU, + 0x70047a9fU, + 0xe80473c4U, + 0xc406d806U, + 0xa019416U, + 0x2702ba2dU, + 0x44857111U, + 0xc647e09dU, + 0x1ba6d2e6U, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0xf0000000U, + 0xc8000000U, + 0xec000000U, + 0x2000000U, + 0x77000000U, + 0x2f800000U, + 0x3c00000U, + 0x63600000U, + 0x94700000U, + 0xc9f80000U, + 0x14f40000U, + 0x51ba0000U, + 0x82550000U, + 0x7ad8000U, + 0xa15b4000U, + 0x6fe6e000U, + 0xde355000U, + 0x105a5800U, + 0x4964ac00U, + 0x9f708600U, + 0xfc7c1700U, + 0xb4349580U, + 0x3b5bd0c0U, + 0x8ce70620U, + 0xf7b25710U, + 0x7a9ff588U, + 0xb885c0fcU, + 0xbc43be12U, + 0x78a7ab2bU, + 0x23172b88U, + 0x7b8c7be1U, + 0x44082d99U, + 0x1fca2cebU, + 0x88add830U, + 0xcadaec14U, + 0x5223e603U, + 0xf0560702U, + 0xf8aa2dbeU, + 0x42db2ce3U, + 0x9e225818U, + 0x250ac20U, + 0x47aa8614U, + 0x8159170eU, + 0x9fe1159dU, + 0x163490e1U, + 0xfc5be63aU, + 0x4b620720U, + 0xe8702dbfU, + 0xd3fe2ce8U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0x50000000U, + 0x8000000U, + 0xc4000000U, + 0xea000000U, + 0x15000000U, + 0x17800000U, + 0x2cc00000U, + 0x6be00000U, + 0x5500000U, + 0x34280000U, + 0xf3d40000U, + 0x5d6e0000U, + 0x1df50000U, + 0x525c8000U, + 0x334d4000U, + 0xd2c6a000U, + 0x5ce01000U, + 0xe3d50800U, + 0xb56d2c00U, + 0xa9f3ae00U, + 0xe05c9300U, + 0xea4bb480U, + 0xeb426a40U, + 0x8f212e20U, + 0x8ab4d330U, + 0x8b799488U, + 0xdafb3a54U, + 0x7d3c8622U, + 0x865cef01U, + 0x314bb2b2U, + 0x73c3c551U, + 0xf9643ca7U, + 0x1613064aU, + 0xe70ea008U, + 0x7f641020U, + 0xbd130802U, + 0x278c2c12U, + 0xc5212e35U, + 0xfb4d332U, + 0xb4f994a6U, + 0x623b3a7eU, + 0xf4dc861cU, + 0x520cef2aU, + 0xf8e3b2b3U, + 0xb9d7c548U, + 0xd86a3ca6U, + 0x22760655U, + 0xea9a2013U, + 0xbaad503dU, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0x30000000U, + 0x48000000U, + 0x94000000U, + 0x26000000U, + 0xdd000000U, + 0xe3800000U, + 0xf3400000U, + 0x47600000U, + 0x59300000U, + 0x19880000U, + 0x1bb40000U, + 0xab4e0000U, + 0xcc930000U, + 0x679f8000U, + 0x66e94000U, + 0xbe872000U, + 0xd0c27000U, + 0x5424c800U, + 0x2e55ec00U, + 0x8bf9200U, + 0x963cb700U, + 0x96f88b80U, + 0xbade0340U, + 0x488e1220U, + 0xf236f730U, + 0x9f082bb8U, + 0x3771334cU, + 0x9d6bfa32U, + 0x61c66b15U, + 0x8da2f1b1U, + 0x5212287bU, + 0x675c438aU, + 0x4acbef69U, + 0x4cd18000U, + 0x6a7a401dU, + 0x3918a014U, + 0x862b3013U, + 0xa2a3e820U, + 0x6a979c37U, + 0x7a9b5a2eU, + 0x65695b14U, + 0x7dc719acU, + 0xdfa2b46dU, + 0x991699bbU, + 0x11d8f472U, + 0xce0e3999U, + 0xdef3c458U, + 0xa92dd189U, + 0x9a245856U, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0xf0000000U, + 0x88000000U, + 0x24000000U, + 0x86000000U, + 0xd5000000U, + 0x3f800000U, + 0xddc00000U, + 0xa2600000U, + 0xb6100000U, + 0xe8d80000U, + 0xa0940000U, + 0x909a0000U, + 0x350000U, + 0x3c6d8000U, + 0x67b94000U, + 0xc500a000U, + 0x27837000U, + 0xa1c10800U, + 0x78660c00U, + 0x49152600U, + 0xa059ff00U, + 0x11d5c680U, + 0x5bf01c0U, + 0xf602a620U, + 0x1d05bf10U, + 0x3b80e688U, + 0xabc131fcU, + 0xff610e02U, + 0xad91c319U, + 0xb31b48a9U, + 0xd7f682c9U, + 0x190ece8dU, + 0x352c0deeU, + 0x3e9a0021U, + 0x41350034U, + 0x2ded801fU, + 0xbb79402aU, + 0x56e0a00fU, + 0xbd537011U, + 0x52f9081bU, + 0x66220c33U, + 0xacb72632U, + 0x6b28ff13U, + 0xf79a46b5U, + 0x74b741c2U, + 0x772d861dU, + 0xfd9e8f19U, + 0xf3b6ce8fU, + 0x93a80dfaU, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0xd0000000U, + 0xd8000000U, + 0x6c000000U, + 0x52000000U, + 0x2b000000U, + 0x55800000U, + 0x9bc00000U, + 0x56600000U, + 0x18700000U, + 0x98a80000U, + 0x74f40000U, + 0x9dee0000U, + 0x1cd50000U, + 0x40388000U, + 0x7e6bc000U, + 0x8a17e000U, + 0x76db5000U, + 0x159b800U, + 0x799a7c00U, + 0xee7b2600U, + 0x83cc6f00U, + 0xec049580U, + 0x9201a240U, + 0xb05a620U, + 0x8586af30U, + 0x43c5f588U, + 0x3a643274U, + 0x4a737e16U, + 0xb3ac432bU, + 0x21708b9cU, + 0x629717eU, + 0x4ab57583U, + 0x584bf24dU, + 0xe6c29e29U, + 0xfee61308U, + 0xeb37b38dU, + 0x1d89cd54U, + 0x39a733b0U, + 0x90160d60U, + 0x9ded39fU, + 0x9ad85d6aU, + 0x935feb9bU, + 0x7299e165U, + 0x6bfb2da9U, + 0xc00ade4fU, + 0xd6600007U, + 0xd8700014U, + 0xb8a80026U, + 0xa4f40027U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0xd0000000U, + 0x88000000U, + 0x44000000U, + 0xf6000000U, + 0xef000000U, + 0x47800000U, + 0x38c00000U, + 0x8fe00000U, + 0x20700000U, + 0xcc780000U, + 0x96f40000U, + 0x283e0000U, + 0xe8550000U, + 0x4c688000U, + 0xf6394000U, + 0x5356a000U, + 0x55ecf000U, + 0xb5fed800U, + 0xe5354c00U, + 0xe65fde00U, + 0x47e05300U, + 0x8474cd80U, + 0xca7838c0U, + 0x21f15e20U, + 0xa3b81330U, + 0x6294ed88U, + 0xda8888f4U, + 0x7ec9a602U, + 0xe06cef21U, + 0x743d4bb5U, + 0x325467cfU, + 0xe16ced93U, + 0xf0bc88efU, + 0xf17a636U, + 0x1749ef37U, + 0x3badcb88U, + 0x2e5927ceU, + 0xe3e44d96U, + 0x827578e8U, + 0x7d79fe24U, + 0xaa71e329U, + 0x297ab586U, + 0xf47084ccU, + 0x527ed811U, + 0xcdf54c33U, + 0xc1bfde30U, + 0xf390531aU, + 0x360ccd85U, + 0xf78c38dbU, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0x50000000U, + 0x38000000U, + 0xfc000000U, + 0xc2000000U, + 0x27000000U, + 0x32800000U, + 0x8ac00000U, + 0x84200000U, + 0x17d00000U, + 0xf6980000U, + 0x44540000U, + 0x77de0000U, + 0x2d330000U, + 0x136c8000U, + 0x341ac000U, + 0x86976000U, + 0x87fed000U, + 0x6ce75800U, + 0xc4f2c400U, + 0x5bcc4e00U, + 0xac0ac500U, + 0xb1a80080U, + 0x5439d9c0U, + 0x1f46ce20U, + 0xfc670530U, + 0xf935e0b8U, + 0x356ac9d4U, + 0x9d1c762eU, + 0x3916d10fU, + 0xdcbb1688U, + 0x6e85d8ddU, + 0x38c480a2U, + 0x2b2319edU, + 0xb151ae09U, + 0x7a59d528U, + 0xd972b887U, + 0xb7880dd8U, + 0x44e83822U, + 0x6b581408U, + 0x5af5163dU, + 0xcecb0123U, + 0x3188ce9fU, + 0x9de9dcf2U, + 0x5cd9ae93U, + 0x95b00cd1U, + 0xcaac7683U, + 0xd4bb08d6U, + 0x3a83d899U, + 0xdec1ddfcU, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0x10000000U, + 0x18000000U, + 0x6c000000U, + 0xaa000000U, + 0x81000000U, + 0x50800000U, + 0xdac00000U, + 0xf3200000U, + 0xdd500000U, + 0x15b80000U, + 0xf2d40000U, + 0x8fe0000U, + 0x18b10000U, + 0x51ce8000U, + 0x1b39c000U, + 0xaf11e000U, + 0x205e9000U, + 0xdea6e800U, + 0x25119400U, + 0x715c7e00U, + 0x3627ad00U, + 0x83d7a480U, + 0x307fd8c0U, + 0x674fe20U, + 0x6ceb6d30U, + 0x996ec4a8U, + 0xad2d88c4U, + 0x73cb7626U, + 0x2e38a92bU, + 0x99953282U, + 0xc19de1e4U, + 0xe40124b2U, + 0x1e0218ddU, + 0xe7031e1eU, + 0x6b80fd23U, + 0x1340acbfU, + 0x1560dcd5U, + 0x5eb66832U, + 0xbac9543aU, + 0x6abb1e07U, + 0x3554fd28U, + 0x11beac87U, + 0x9cd1dcd4U, + 0x47f8e810U, + 0x17309414U, + 0x9c8afe0cU, + 0x495a6d0dU, + 0x8a2044bbU, + 0x91d448e9U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0x50000000U, + 0xa8000000U, + 0xec000000U, + 0x32000000U, + 0xb7000000U, + 0x11800000U, + 0x6400000U, + 0x7b600000U, + 0x5b300000U, + 0x5a80000U, + 0x1d740000U, + 0xdece0000U, + 0x76470000U, + 0x23648000U, + 0x2f364000U, + 0x23ade000U, + 0xdc70d000U, + 0xa64cd800U, + 0xe4861c00U, + 0xf8c10a00U, + 0x18a51700U, + 0x170b80U, + 0xe4ff2640U, + 0x3b6cea20U, + 0x54d5c730U, + 0x6e5bd398U, + 0xbc793a54U, + 0x59ade00aU, + 0x1770d00bU, + 0x4dccd814U, + 0xe9c61c39U, + 0x8210a2eU, + 0x1ed5173aU, + 0x5d5f0b92U, + 0x13fb267bU, + 0x8aeaea25U, + 0x6296c736U, + 0xed3953b1U, + 0xa34c7a5fU, + 0x82028003U, + 0x8f054007U, + 0x3587602bU, + 0x88419013U, + 0x5665b80fU, + 0x11b08c08U, + 0x20683224U, + 0xd757db0aU, + 0xef1cd9acU, + 0x2e9f2d46U, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0xd0000000U, + 0x8000000U, + 0x3c000000U, + 0xfe000000U, + 0xed000000U, + 0xae800000U, + 0x54400000U, + 0xba600000U, + 0x94f00000U, + 0xf4180000U, + 0xf0b40000U, + 0xf67e0000U, + 0x20410000U, + 0x18608000U, + 0xf7f54000U, + 0x6f9f6000U, + 0x3e73b000U, + 0xda588800U, + 0x1dd38400U, + 0x3b0d4a00U, + 0x999e700U, + 0x87736580U, + 0xc6dec3c0U, + 0x82922a20U, + 0xf6ea5730U, + 0xa5abeda8U, + 0x8e4d47f4U, + 0x5b7f6022U, + 0xeec3b03fU, + 0x3c208817U, + 0x9597840fU, + 0xcf6b4a29U, + 0x86ce71aU, + 0x39ede591U, + 0xa82a83deU, + 0xe18dca36U, + 0xffdca719U, + 0x5e1405bbU, + 0xc9a973d9U, + 0xb84ca219U, + 0x2a7cd33eU, + 0x6e4027b1U, + 0x8d64e0c8U, + 0xbd75e5b9U, + 0xf1de83d0U, + 0xab13ca0cU, + 0xf32da717U, + 0xfe0c85abU, + 0x8b1833e4U, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0x50000000U, + 0xf8000000U, + 0x14000000U, + 0xda000000U, + 0x33000000U, + 0xcc800000U, + 0xb7400000U, + 0xae600000U, + 0xc8700000U, + 0xbd080000U, + 0xf7340000U, + 0x6f6e0000U, + 0xa9410000U, + 0x7f648000U, + 0x83f2c000U, + 0x4cca2000U, + 0x25151000U, + 0xd1ff3800U, + 0xb179b400U, + 0xa83ca200U, + 0x1f5bd700U, + 0x80aed980U, + 0xaa640b40U, + 0x8a768220U, + 0x6a0ec730U, + 0x49b1e1a8U, + 0x72dbf54U, + 0x5a2201eU, + 0xe9511035U, + 0x6f19381eU, + 0x84cb418U, + 0xee56220dU, + 0xe9981728U, + 0xd408799dU, + 0xc8b7db7eU, + 0xb4ad9a3cU, + 0xe0636320U, + 0xe176fb98U, + 0xe28d1c4cU, + 0xdcf27baeU, + 0x8e4fdc68U, + 0xdb505bb6U, + 0xd01ecc4bU, + 0xfac963aeU, + 0x18127840U, + 0x547f4192U, + 0xa9ba6f51U, + 0x859f3808U, + 0xda09b43bU, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0x70000000U, + 0x68000000U, + 0x8c000000U, + 0xe2000000U, + 0x19000000U, + 0x83800000U, + 0x61400000U, + 0x25600000U, + 0x9d900000U, + 0x37b80000U, + 0xf0d40000U, + 0xb0da0000U, + 0xd4410000U, + 0x74e18000U, + 0x2dd64000U, + 0x6d5fe000U, + 0x86005000U, + 0x3706a800U, + 0xd8860c00U, + 0x8bc04200U, + 0xafa67700U, + 0x55b38680U, + 0x6d4f86c0U, + 0x43ffa220U, + 0xf4362710U, + 0xf50d2ea8U, + 0x351d8adcU, + 0x10e5e03aU, + 0x3d15033U, + 0x365f2810U, + 0x6c844c1aU, + 0xbdc5a23aU, + 0x10a7273bU, + 0xd134aeb1U, + 0x1c8fcae1U, + 0x1158000dU, + 0x4c040034U, + 0x202000dU, + 0xc905000eU, + 0x9b83800aU, + 0x85434014U, + 0x4b64600fU, + 0x66971012U, + 0xad38c830U, + 0x12101c25U, + 0xf4f90a30U, + 0x6cb02b2dU, + 0xdecd6c95U, + 0xeabbfdd1U, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0xb0000000U, + 0x78000000U, + 0xbc000000U, + 0xc2000000U, + 0x49000000U, + 0x1b800000U, + 0x12c00000U, + 0xe200000U, + 0xa8700000U, + 0x1ff80000U, + 0x3eb40000U, + 0x4fde0000U, + 0x4dc30000U, + 0xcaa38000U, + 0xbe34c000U, + 0xe7986000U, + 0xdea1d000U, + 0xc831a800U, + 0x4899cc00U, + 0x42235e00U, + 0x32756d00U, + 0xbaff3580U, + 0x2f371ec0U, + 0xd01b3e20U, + 0x2664bd30U, + 0xfb169db8U, + 0xfd6ad2ecU, + 0x781e603eU, + 0x9266d01fU, + 0x1d142808U, + 0x7a6a0c3eU, + 0x909ebe18U, + 0x6e277d2bU, + 0xd8737db3U, + 0x87fcc2f8U, + 0x32b42821U, + 0xf5da0c3bU, + 0xb8c6be28U, + 0x13237d15U, + 0xe5f57dabU, + 0xf23bc2cfU, + 0x6411a83aU, + 0xd9e9cc06U, + 0xde5b5e3eU, + 0x12016d15U, + 0x410135b4U, + 0x3f841efeU, + 0xdcc0be0bU, + 0xfd247d34U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0x10000000U, + 0x18000000U, + 0x34000000U, + 0x8a000000U, + 0xd3000000U, + 0x90800000U, + 0x78c00000U, + 0xa6e00000U, + 0x31300000U, + 0x15280000U, + 0xc5f40000U, + 0xddce0000U, + 0x95c50000U, + 0xaf668000U, + 0x2a71c000U, + 0x4b892000U, + 0x32e09000U, + 0x6b313800U, + 0xfe29d400U, + 0x7171de00U, + 0x370f7300U, + 0xd426ef80U, + 0x84d74e40U, + 0x9498fe20U, + 0xb81fe330U, + 0xa6dfd788U, + 0x4d3a9a44U, + 0xa58f2026U, + 0x93e1903dU, + 0x2cb1b82aU, + 0x94691430U, + 0x50507e22U, + 0x8e5b2313U, + 0xd1f8778bU, + 0xb16fca78U, + 0x55d13801U, + 0x3b19d41fU, + 0xce59de16U, + 0x31fb732dU, + 0x8168efa8U, + 0x5dd24e76U, + 0x171e7e27U, + 0x705e232dU, + 0x68fef79dU, + 0xc2ee0a6fU, + 0xb5901801U, + 0xc93d4430U, + 0xe78ee600U, + 0x4ce3a71fU, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x30000000U, + 0x88000000U, + 0x1c000000U, + 0x4a000000U, + 0x4d000000U, + 0xfc800000U, + 0x22400000U, + 0x8b200000U, + 0x15900000U, + 0x5cf80000U, + 0xadd40000U, + 0x62da0000U, + 0xb0c70000U, + 0x7a638000U, + 0x19374000U, + 0xa0a96000U, + 0x61ca1000U, + 0x937c8800U, + 0x7810b400U, + 0xe83bfa00U, + 0x19b17d00U, + 0xb8ee9e80U, + 0x4fef4ec0U, + 0x566a9a20U, + 0xc4af6d10U, + 0x9fc81698U, + 0xd878faccU, + 0x3b92e002U, + 0xeff95017U, + 0x1a57e80aU, + 0x319a41fU, + 0x3c26f21dU, + 0x6c15890fU, + 0xfe3d84b0U, + 0x7eb063d6U, + 0x39686c88U, + 0x192ac7f3U, + 0xe30f1e82U, + 0x101b0ef5U, + 0x9ba27a13U, + 0xd5d13d36U, + 0xd6dc7e98U, + 0xb6c61eecU, + 0xc5657215U, + 0x3cb2c914U, + 0x286ce485U, + 0xcfae73ccU, + 0xbc4ee482U, + 0xefbd73fcU, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0xd0000000U, + 0x18000000U, + 0x2c000000U, + 0xbe000000U, + 0xc7000000U, + 0xe2800000U, + 0x1b400000U, + 0x3be00000U, + 0xe8d00000U, + 0x7780000U, + 0x31940000U, + 0x1d9a0000U, + 0xf0c50000U, + 0x8d248000U, + 0x3ef1c000U, + 0x8d0fe000U, + 0x84d93000U, + 0xca215800U, + 0x9c71e400U, + 0xb6496200U, + 0x6f3c8b00U, + 0x3af03c80U, + 0xb70e74c0U, + 0x39de8220U, + 0xb5a1bb10U, + 0x28b36488U, + 0x216e90f4U, + 0x3cc96026U, + 0xd079f01bU, + 0xab103827U, + 0xdadc1405U, + 0xbd235a3eU, + 0x96f59f0dU, + 0x490fe6a1U, + 0xdede2bcbU, + 0x87248499U, + 0x2bf3a0daU, + 0x368a3821U, + 0x6a191422U, + 0x1007da2cU, + 0x78045f3cU, + 0xdc00068dU, + 0x76071be7U, + 0xf305dca6U, + 0x708244cfU, + 0x62435a10U, + 0x1e659f22U, + 0x1117e6bdU, + 0x27da2bc3U, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0xf0000000U, + 0x98000000U, + 0xd4000000U, + 0x6000000U, + 0x91000000U, + 0xb3800000U, + 0xd7c00000U, + 0x2b600000U, + 0xef900000U, + 0x5f180000U, + 0x3a540000U, + 0x2b7a0000U, + 0xab430000U, + 0xaa258000U, + 0xb6b3c000U, + 0xb5292000U, + 0x5e38f000U, + 0xa4642800U, + 0x5910ac00U, + 0xdd5ab600U, + 0xa7f38700U, + 0xc409a280U, + 0x180e33c0U, + 0xe20b9620U, + 0xd90f7710U, + 0xd98f8ab8U, + 0xb2c99ffcU, + 0xb8eea006U, + 0x1e5c3025U, + 0xc3728839U, + 0xd1489c18U, + 0xa72a3e0aU, + 0x693c1b00U, + 0x96e41c8bU, + 0x5556e8dfU, + 0x6df92a9bU, + 0xb101afebU, + 0xe3862818U, + 0x5fc7ac3dU, + 0x97653623U, + 0xa593472aU, + 0x1c1d0280U, + 0x1ed103ecU, + 0xde3c9e0eU, + 0xe4642b3aU, + 0xb9149484U, + 0x2d5974ccU, + 0x3ff49483U, + 0x100974c0U, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0xf0000000U, + 0xc8000000U, + 0xfc000000U, + 0xfe000000U, + 0x81000000U, + 0x3e800000U, + 0x30c00000U, + 0x13600000U, + 0x8a300000U, + 0xfec80000U, + 0xf0f40000U, + 0x2eaa0000U, + 0xdb430000U, + 0xaf258000U, + 0xfe914000U, + 0xd4186000U, + 0xbc4db000U, + 0x7e35e800U, + 0x5ccb0400U, + 0x9ff10e00U, + 0xa92aaf00U, + 0xe1077780U, + 0x8e82fd40U, + 0x18c16e20U, + 0x1f631f10U, + 0xbc309fb8U, + 0x83cef97cU, + 0x3077e012U, + 0x9f6ff02fU, + 0xf6a00807U, + 0x15d3f41cU, + 0x133e863dU, + 0xaedb1b33U, + 0x6c2c11bbU, + 0x55811642U, + 0xdd42f790U, + 0xba23bd60U, + 0xd2110e17U, + 0xa3daaf38U, + 0x24af779eU, + 0xf846fd40U, + 0xfea36e13U, + 0x49d41f16U, + 0xfd3f1fbcU, + 0x17dcb978U, + 0x66aa000bU, + 0x67430004U, + 0xb125801bU, + 0x8f914036U, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0xd0000000U, + 0x48000000U, + 0xc4000000U, + 0xf2000000U, + 0x73000000U, + 0x24800000U, + 0x1dc00000U, + 0xe7600000U, + 0x2d700000U, + 0x1780000U, + 0x5eb40000U, + 0x4b1a0000U, + 0x22430000U, + 0x6a248000U, + 0x5dd54000U, + 0xe468a000U, + 0x2839d000U, + 0x4c13b800U, + 0x750bb400U, + 0x644ef600U, + 0xcaecdf00U, + 0x5afce580U, + 0x11f100c0U, + 0xd0be5620U, + 0x6fd10f10U, + 0x376d5db8U, + 0x3cbdb4f4U, + 0xc9d62032U, + 0x1e6f9021U, + 0x7f3f9804U, + 0x4a972428U, + 0x53cdee1bU, + 0x63aabb36U, + 0x85bab85U, + 0xcfe56bd7U, + 0x46b0c5a9U, + 0x871d90c0U, + 0xf4454e33U, + 0x3b236b27U, + 0x425013b0U, + 0x192adfc5U, + 0x209c33a5U, + 0xf5064fffU, + 0x7d872ba4U, + 0x26442bf5U, + 0x3822659aU, + 0x1ed740e1U, + 0x58ea760aU, + 0xb9f99f0cU, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0xd0000000U, + 0x68000000U, + 0x2c000000U, + 0x8e000000U, + 0x7000000U, + 0x16800000U, + 0x93c00000U, + 0x10a00000U, + 0x96700000U, + 0xadd80000U, + 0xffb40000U, + 0x607e0000U, + 0xd2470000U, + 0x3de08000U, + 0x59104000U, + 0x750fe000U, + 0xab1b3000U, + 0x8935800U, + 0x5049c400U, + 0x987d2600U, + 0x3647f100U, + 0x2fe70d80U, + 0x68157bc0U, + 0x208ac620U, + 0x8c58c130U, + 0x2f25598U, + 0xc71fbff4U, + 0x2691603aU, + 0xe74c703bU, + 0x36fc383bU, + 0xe182b435U, + 0x9d419e1fU, + 0x7765052fU, + 0x9cd173a7U, + 0xf6af4ee4U, + 0xe1eeed8eU, + 0x938d4bebU, + 0x20df1e24U, + 0xec324515U, + 0xdc3e13a6U, + 0xf8a43ed6U, + 0x7a72559cU, + 0x43dfbfe4U, + 0x28b16013U, + 0x1efc7023U, + 0x6d843838U, + 0xa346b419U, + 0xc8679e1fU, + 0xce56051eU, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0xd0000000U, + 0xb8000000U, + 0x74000000U, + 0xae000000U, + 0x59000000U, + 0xfa800000U, + 0x11c00000U, + 0xdbe00000U, + 0x45f00000U, + 0x15780000U, + 0xd9340000U, + 0xa1a0000U, + 0x4c050000U, + 0x9a048000U, + 0xd704c000U, + 0x73852000U, + 0x5340b000U, + 0xbe216800U, + 0x3012a400U, + 0x98a4600U, + 0x36cd0b00U, + 0xc2eca180U, + 0x9df974c0U, + 0x93f56620U, + 0x5878bb10U, + 0x7db14988U, + 0x2adb10f4U, + 0xa160000eU, + 0x1430000dU, + 0xee980023U, + 0x4cc40022U, + 0xa7620010U, + 0xe1310019U, + 0x3e1e801dU, + 0xc201c007U, + 0x1301a03bU, + 0x95847032U, + 0x16444834U, + 0x26a21402U, + 0xa2d32e23U, + 0xdfebaf03U, + 0xc17ce79eU, + 0xe7317fc7U, + 0xcb1d47a9U, + 0x12850fe9U, + 0x9dc10fb6U, + 0x21e31bfdU, + 0x62f02199U, + 0xef9b4d2U, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0x70000000U, + 0x68000000U, + 0x1c000000U, + 0x1a000000U, + 0xb7000000U, + 0x1a800000U, + 0xedc00000U, + 0xeaa00000U, + 0xf9700000U, + 0xd3980000U, + 0x4fb40000U, + 0x11ba0000U, + 0x10030000U, + 0x58018000U, + 0x94044000U, + 0x76036000U, + 0xc5039000U, + 0xb1855800U, + 0xed400400U, + 0xb062d600U, + 0x9578100U, + 0xc728a580U, + 0x768dc9c0U, + 0xa77bb620U, + 0xd2271110U, + 0x7b47db8U, + 0xddbd8ddcU, + 0xf200003aU, + 0xeb000017U, + 0xe080003eU, + 0x2ac00031U, + 0x9820001cU, + 0x8b0003cU, + 0x2338003cU, + 0x1c40013U, + 0xd8a20032U, + 0xb2770028U, + 0xa31b803eU, + 0x7d77403aU, + 0xfd9ae022U, + 0x1eb3d036U, + 0xd63c3819U, + 0x38409435U, + 0x59e60e3aU, + 0x7013c51eU, + 0x14913b1U, + 0xbad9d8f3U, + 0xd1d64bbdU, + 0x49eadcf6U, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0xb0000000U, + 0x38000000U, + 0x4000000U, + 0x36000000U, + 0x2f000000U, + 0x1e800000U, + 0x5400000U, + 0x72e00000U, + 0x3c100000U, + 0x22180000U, + 0xaa540000U, + 0xbc7e0000U, + 0x6a030000U, + 0x6d038000U, + 0xdf86c000U, + 0x80c5a000U, + 0x67207000U, + 0x60b15800U, + 0x44694400U, + 0x9e1d5200U, + 0x58516300U, + 0x4578ca80U, + 0xeb8407c0U, + 0x4ec6f220U, + 0xac221330U, + 0xf83212b8U, + 0x562f83ecU, + 0xf678002eU, + 0x57040031U, + 0x3a860035U, + 0x63470027U, + 0xd5e58009U, + 0x1e91c000U, + 0x15582011U, + 0xc1b5b004U, + 0xb1ef780fU, + 0x53dbf42bU, + 0xb0f7aa33U, + 0x2d0b5715U, + 0xf4cf4093U, + 0x826ee0ddU, + 0xa918caafU, + 0x12d407f3U, + 0xfe3ef21bU, + 0x8a66133aU, + 0x5e5412b1U, + 0x927883e2U, + 0x1105802aU, + 0xcd81c011U, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0x50000000U, + 0x8000000U, + 0x6c000000U, + 0x2000000U, + 0x5000000U, + 0x1f800000U, + 0x27400000U, + 0xa2200000U, + 0x41900000U, + 0xb8280000U, + 0x41d40000U, + 0x908e0000U, + 0x90810000U, + 0x91c48000U, + 0x38e54000U, + 0x91f1e000U, + 0x4c185000U, + 0xf32f4800U, + 0xc952ec00U, + 0x54a1200U, + 0x36666d00U, + 0x5f37f680U, + 0xa7ef040U, + 0x341df220U, + 0x72b3d30U, + 0xf523ea8U, + 0x3e485c54U, + 0x26e28022U, + 0xef0402bU, + 0x929b6028U, + 0xf5ec1015U, + 0x43322805U, + 0x907bfc12U, + 0xf51aba28U, + 0x26add111U, + 0x27162ca9U, + 0xeaef3159U, + 0x5db1f6acU, + 0x36bbf044U, + 0x2f7f7202U, + 0xbb9b7d3aU, + 0x88695eaaU, + 0x91744c78U, + 0x75d8a83aU, + 0xf7cfbc16U, + 0x52a7da0aU, + 0x2054c102U, + 0xd8ce8486U, + 0xb4208d72U, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0x90000000U, + 0x98000000U, + 0x84000000U, + 0x22000000U, + 0x85000000U, + 0xd4800000U, + 0xc7400000U, + 0xd7200000U, + 0x9900000U, + 0x3b80000U, + 0x51d40000U, + 0xb11e0000U, + 0x81830000U, + 0xabc28000U, + 0xe463c000U, + 0xf4b0a000U, + 0x932dd000U, + 0x20ec0800U, + 0x808db400U, + 0xb63f1200U, + 0x30119d00U, + 0x5c7f3680U, + 0x9fb1c4c0U, + 0xdca9b220U, + 0x602b4d30U, + 0xeb6fbeb8U, + 0xe24cb0e4U, + 0x58dc8006U, + 0xb0e0c011U, + 0xf3f22030U, + 0xa40e1005U, + 0xb97ca813U, + 0x1b306410U, + 0x63eb1a3dU, + 0xa3082923U, + 0x58fe24b5U, + 0xe0f359e5U, + 0xff8c04b9U, + 0x43bd49d2U, + 0x71d0acb2U, + 0xc11d2df9U, + 0x8983b6afU, + 0xb7c104f1U, + 0x42639214U, + 0x53b15d0dU, + 0xc2ad16b3U, + 0x332fd4fdU, + 0x90ed1a11U, + 0x688f2904U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0x70000000U, + 0x68000000U, + 0x94000000U, + 0x2000000U, + 0xd7000000U, + 0xfe800000U, + 0xfac00000U, + 0x7a00000U, + 0x93100000U, + 0xeab80000U, + 0xe4d40000U, + 0x989e0000U, + 0xf5870000U, + 0x42458000U, + 0x50604000U, + 0x31372000U, + 0x83eb5000U, + 0xb20e1800U, + 0xc37de400U, + 0xc7f06e00U, + 0xba494900U, + 0x1c8e80U, + 0x724108c0U, + 0x98614e20U, + 0xb5311930U, + 0x99e91698U, + 0x990bacdcU, + 0xabfb803aU, + 0xe8374015U, + 0x946aa018U, + 0x974f1029U, + 0x659f3825U, + 0xe805b41bU, + 0x5405f601U, + 0x6203ed11U, + 0xa7064085U, + 0x968751c7U, + 0x6ec2f887U, + 0x5a5a5e9U, + 0x4415ae92U, + 0x143d58c1U, + 0x1e12d608U, + 0x9f38bd14U, + 0x669058beU, + 0xa8feb5e8U, + 0xb4b496b8U, + 0xa9afecd0U, + 0x766aa02aU, + 0xf04f102fU, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0x10000000U, + 0xe8000000U, + 0x4c000000U, + 0x3e000000U, + 0x4f000000U, + 0x63800000U, + 0x8ac00000U, + 0x97200000U, + 0x64300000U, + 0xbe480000U, + 0x3f40000U, + 0x73ea0000U, + 0x7d830000U, + 0x75c28000U, + 0xeca04000U, + 0x5af2e000U, + 0xb36eb000U, + 0x5ac41800U, + 0xdf20ec00U, + 0xd8312e00U, + 0x784f2500U, + 0xe8f43780U, + 0x62692b40U, + 0x8641ce20U, + 0xce669510U, + 0x61d0afb8U, + 0xf95e8744U, + 0x438a801aU, + 0xf3544003U, + 0x1f18e037U, + 0xddedb017U, + 0x9a869822U, + 0xba40ac31U, + 0x4863ce2aU, + 0x6ad1950aU, + 0xf8d82fb7U, + 0x504dc762U, + 0x4f2e019U, + 0xac6eb016U, + 0x3144180aU, + 0x9e0ec3fU, + 0x99112e30U, + 0x1f7f2520U, + 0xb3c3784U, + 0xa45d2b5fU, + 0x10bce18U, + 0x5d159500U, + 0x3d7a2fb1U, + 0x723ac772U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0x10000000U, + 0x28000000U, + 0x7c000000U, + 0xde000000U, + 0x7f000000U, + 0xa6800000U, + 0x6b400000U, + 0xe8e00000U, + 0xf5500000U, + 0xa9180000U, + 0x2b140000U, + 0xda7e0000U, + 0x82850000U, + 0x11468000U, + 0x2de04000U, + 0xb6d36000U, + 0x91dfb000U, + 0xd3341800U, + 0xab0dc400U, + 0x84eda200U, + 0x4338f300U, + 0x366b080U, + 0x71966fc0U, + 0xaf38c220U, + 0x35664330U, + 0x52922888U, + 0xc7baebc4U, + 0x926802aU, + 0x60f0402fU, + 0x87ab603fU, + 0x37dbb01bU, + 0x18321823U, + 0x9f8cc405U, + 0x76ad220dU, + 0x2659b322U, + 0x99f55083U, + 0xfa289fd0U, + 0x401f3a2cU, + 0x7e95772dU, + 0xd1b872a6U, + 0x3a212cc5U, + 0x20726ab1U, + 0xc7e9e8ebU, + 0xdbb948afU, + 0x27215bcaU, + 0x7f49807U, + 0x652c8405U, + 0xd69e423bU, + 0x2dd6030fU, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0x50000000U, + 0x28000000U, + 0x14000000U, + 0xf6000000U, + 0xbf000000U, + 0x17800000U, + 0xf8400000U, + 0x21a00000U, + 0xfd300000U, + 0x41f80000U, + 0x92f40000U, + 0xd81a0000U, + 0xae630000U, + 0x34d08000U, + 0x556e4000U, + 0x6a3e2000U, + 0xd510f000U, + 0x4f885800U, + 0xa32e8c00U, + 0x889ffa00U, + 0x3da15100U, + 0xef30bb80U, + 0x90fd8ac0U, + 0x56715a20U, + 0xfddfe110U, + 0x2a86c3b8U, + 0xb6c3f6d4U, + 0xb966f82aU, + 0x77503c15U, + 0xbb298205U, + 0xa49f2d3bU, + 0x17a7198fU, + 0xe23257fbU, + 0xe67e1b95U, + 0x12b33ac0U, + 0xc5bf220dU, + 0xb1559d1eU, + 0x3c2b618cU, + 0x6f1f2bc5U, + 0x5de1398aU, + 0xa296a7cbU, + 0xa7cc438cU, + 0x4a8eb6cbU, + 0x31a85801U, + 0xa25e8c3dU, + 0xd6c7fa2fU, + 0xa965511fU, + 0xbf52bbbcU, + 0xff2a8ad7U, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0xf0000000U, + 0x8000000U, + 0x24000000U, + 0xae000000U, + 0x5000000U, + 0x17800000U, + 0x73c00000U, + 0x6c200000U, + 0x71500000U, + 0xe5e80000U, + 0x3d140000U, + 0x6e0a0000U, + 0x26610000U, + 0x2bb58000U, + 0x4f1d4000U, + 0x2a6aa000U, + 0xd2d33000U, + 0x202e0800U, + 0x28334c00U, + 0x7ade7600U, + 0x374bbd00U, + 0xe205c480U, + 0x9f065640U, + 0xe4815620U, + 0xbd45cd10U, + 0x8a616ca8U, + 0xe1b62a7cU, + 0x44192822U, + 0xc8e93c19U, + 0xbe90de03U, + 0x1bcac13dU, + 0x9b403a87U, + 0xeb63e755U, + 0xf8304490U, + 0xc2db164dU, + 0xbb4bf634U, + 0x9806fd3fU, + 0x3c0764aaU, + 0xd2016660U, + 0x77055e3aU, + 0x90878104U, + 0xeb429a97U, + 0xa364d75cU, + 0x7c344cbeU, + 0x9cd95a40U, + 0xb6480015U, + 0xab840007U, + 0xe1c2003dU, + 0xbb250002U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0x30000000U, + 0xb8000000U, + 0xfc000000U, + 0xf6000000U, + 0x53000000U, + 0xff800000U, + 0xc2400000U, + 0x7e00000U, + 0x50500000U, + 0x8dc80000U, + 0xd1940000U, + 0x5e6e0000U, + 0xc5250000U, + 0xf4778000U, + 0x1f3cc000U, + 0x766a6000U, + 0x71207000U, + 0x66727800U, + 0x7638cc00U, + 0x94ecca00U, + 0xe3e7e300U, + 0xaa53c080U, + 0xb0c9f940U, + 0xb1112a20U, + 0x2dab5330U, + 0xaf83d888U, + 0xaa45454cU, + 0x53e1980eU, + 0xd2517c0fU, + 0x6ccb5235U, + 0x77179f18U, + 0xc6a91291U, + 0xac03a64fU, + 0x9e03d89cU, + 0x7054570U, + 0x7d819834U, + 0x23417c38U, + 0xa1635230U, + 0xc8939f16U, + 0xe4ef128dU, + 0xbbe2a658U, + 0x465258a8U, + 0xcec88579U, + 0xa6127832U, + 0xd828cc02U, + 0xc8c4ca3cU, + 0x123e337U, + 0x3e75c094U, + 0x9a38f95fU, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0x70000000U, + 0xd8000000U, + 0x64000000U, + 0x3e000000U, + 0x41000000U, + 0xdc800000U, + 0x84400000U, + 0xe2e00000U, + 0x76500000U, + 0xa180000U, + 0xaa940000U, + 0xe2be0000U, + 0xc7270000U, + 0x56758000U, + 0x5edc000U, + 0xd9bca000U, + 0xb4a53000U, + 0x87b42800U, + 0x73cf9400U, + 0x4b4f6a00U, + 0x310e1300U, + 0xf2ec4080U, + 0x283e3fc0U, + 0x7e664a20U, + 0x5216e330U, + 0xf8fcc898U, + 0x74c09bdcU, + 0x54a30816U, + 0x37b06429U, + 0xcbca6217U, + 0x5f4d770cU, + 0xd70da281U, + 0xd7e988f8U, + 0xcabac897U, + 0xbb239bfdU, + 0x6c70880dU, + 0xaeea427U, + 0x9c3d422eU, + 0x88628729U, + 0xdf10aaaeU, + 0xa67eece2U, + 0xeb852a96U, + 0x15c32cddU, + 0x58218a83U, + 0x7bf21ccdU, + 0xe52ba290U, + 0xab1a88e3U, + 0xc61148a6U, + 0xdef95be8U, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0x50000000U, + 0x58000000U, + 0x4c000000U, + 0xe000000U, + 0x5000000U, + 0xc6800000U, + 0xcac00000U, + 0x5e600000U, + 0xb4300000U, + 0x83c80000U, + 0x4740000U, + 0x316e0000U, + 0x4f230000U, + 0x8a148000U, + 0x1d5dc000U, + 0x60ece000U, + 0xd060b000U, + 0x71334800U, + 0xa54bc400U, + 0x9eb23e00U, + 0x370a6700U, + 0xb712e780U, + 0x7da3540U, + 0x1c2a5e20U, + 0x97071730U, + 0x55854fb8U, + 0xa5454154U, + 0xc252836U, + 0x7d95b423U, + 0xe319163bU, + 0xf74cd315U, + 0xedb771a7U, + 0x88f2661U, + 0xbd57cfb4U, + 0x827f815cU, + 0x72fb4809U, + 0x613fc417U, + 0x4fdc3e35U, + 0x28296739U, + 0x65066797U, + 0x5687f554U, + 0x72c6be06U, + 0x4267a724U, + 0xe23607a0U, + 0xcace8565U, + 0xccf7163eU, + 0xfeafd336U, + 0xd7c3f1a6U, + 0xf4e2e66fU, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0xd0000000U, + 0x48000000U, + 0x54000000U, + 0x1a000000U, + 0x7000000U, + 0x87800000U, + 0x86c00000U, + 0xdd200000U, + 0xcab00000U, + 0xa6680000U, + 0xb7f40000U, + 0x838e0000U, + 0x5650000U, + 0xa3d08000U, + 0x13bb4000U, + 0x85482000U, + 0x18409000U, + 0x49659800U, + 0x65d36c00U, + 0x7ab8ce00U, + 0xcfce3500U, + 0x56021380U, + 0xc1043240U, + 0xee806e20U, + 0xcc45e530U, + 0x9367ab88U, + 0x42d3ce74U, + 0x2d3b3832U, + 0x109bc25U, + 0xdf23f60eU, + 0x11b78935U, + 0x4fe9e5b3U, + 0xfc37bb74U, + 0x962f8b91U, + 0x9a935e43U, + 0x445ea020U, + 0xb4dad008U, + 0xed9b380dU, + 0x8a79bc12U, + 0x3ebf615U, + 0x3a33893dU, + 0xff2fe5a6U, + 0xd016bb67U, + 0xa190b8cU, + 0x3cb91e7eU, + 0x66c80009U, + 0x3c84002eU, + 0x5f460014U, + 0x2ee10024U, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0x10000000U, + 0xf8000000U, + 0x34000000U, + 0x5e000000U, + 0x83000000U, + 0x5a800000U, + 0x72400000U, + 0xc2e00000U, + 0xa6700000U, + 0xcfe80000U, + 0x10b40000U, + 0x5c4a0000U, + 0xdea30000U, + 0xaf928000U, + 0xf18c000U, + 0x2f1d2000U, + 0x9f1b3000U, + 0x971cb800U, + 0x4b19a400U, + 0xd919ca00U, + 0x301b2300U, + 0xb79bb180U, + 0x1c596040U, + 0xf67e6a20U, + 0xe0acd310U, + 0x4bd029b8U, + 0x32f8f444U, + 0xb1e9981eU, + 0x23b6941dU, + 0xecf722fU, + 0x70e18724U, + 0xff70fba8U, + 0x406a8351U, + 0x6770fb87U, + 0x246a8359U, + 0x2170fbbdU, + 0x836a834cU, + 0xddf0fb81U, + 0x462a8347U, + 0x1b90fba9U, + 0x111a837eU, + 0x4c18fbbbU, + 0xd59e8375U, + 0x1d5afb99U, + 0xbdf9835dU, + 0x216a7b99U, + 0x7cf64363U, + 0xfdafdbbbU, + 0x3256b36aU, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0x70000000U, + 0xe8000000U, + 0xdc000000U, + 0x32000000U, + 0xcb000000U, + 0xd1800000U, + 0x16c00000U, + 0x36a00000U, + 0x48700000U, + 0xb1d80000U, + 0x4d340000U, + 0x72be0000U, + 0x5e670000U, + 0xdfd58000U, + 0xb72c4000U, + 0xa5a96000U, + 0xeecd000U, + 0x9489b800U, + 0x8d5d9c00U, + 0x7f732e00U, + 0x82581900U, + 0x68f64580U, + 0xd19fd3c0U, + 0x6d7ce20U, + 0x7dac8930U, + 0x9ae89d98U, + 0x6a899fdcU, + 0xec58d81aU, + 0x51f54c07U, + 0xab1c9614U, + 0xb196852eU, + 0xb5ceeb8eU, + 0x383c8af2U, + 0xa1256ba1U, + 0xdbb7cad0U, + 0xbff98ba0U, + 0x91075afaU, + 0x6815393U, + 0x954216deU, + 0x9b65c595U, + 0x475093d7U, + 0x336d2e0fU, + 0xf84f1938U, + 0xbcfbc585U, + 0x4c8793c0U, + 0xda40ae35U, + 0x2ce75912U, + 0x494a5a2U, + 0xc54843eaU, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0xd0000000U, + 0xe8000000U, + 0x4c000000U, + 0x8e000000U, + 0xd9000000U, + 0xa8800000U, + 0x52400000U, + 0x3ea00000U, + 0x3ab00000U, + 0x44e80000U, + 0x32740000U, + 0x70a0000U, + 0x83e70000U, + 0x91948000U, + 0x269c4000U, + 0x9d78e000U, + 0xa8ed3000U, + 0x4c71a800U, + 0x860eb400U, + 0x5f629a00U, + 0xe9d51100U, + 0x3391780U, + 0x58498a40U, + 0xcfc6fa20U, + 0xba606110U, + 0xd7525f98U, + 0x9c790e74U, + 0x346b481aU, + 0x54308403U, + 0x73adb23bU, + 0x7250e502U, + 0xc2ffed90U, + 0x7b29eb47U, + 0xd014a58cU, + 0xa4596f68U, + 0x35991783U, + 0xbef98a7cU, + 0x8d2efa0cU, + 0xcd146119U, + 0x1ed85fb4U, + 0xd8de0e54U, + 0xbddfc835U, + 0xc35cc42bU, + 0x3c1d5229U, + 0x8039d530U, + 0xf3cc45beU, + 0x76045f55U, + 0x5d00bf8fU, + 0xda833e73U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x10000000U, + 0x8000000U, + 0x6c000000U, + 0x22000000U, + 0xc9000000U, + 0x30800000U, + 0x47400000U, + 0x9ea00000U, + 0xfcb00000U, + 0x44f80000U, + 0x7d740000U, + 0x221a0000U, + 0xd0e70000U, + 0x72928000U, + 0x8f0b4000U, + 0xbf2fe000U, + 0xc7df5000U, + 0xf8002800U, + 0x34011400U, + 0x2607b200U, + 0x9706d100U, + 0xd387ef80U, + 0xd2c2eac0U, + 0xcb62d220U, + 0xec56c110U, + 0x166a2798U, + 0x827faec4U, + 0x8535c822U, + 0x7339440bU, + 0xc4951a10U, + 0x500c8536U, + 0x60afbd8eU, + 0x271b6bcaU, + 0xf265158fU, + 0x84d53fddU, + 0x552f47a5U, + 0x42dfbedaU, + 0x9a800015U, + 0xa2400004U, + 0xec20001fU, + 0x62f00011U, + 0xe2d80021U, + 0xaa84003dU, + 0xda420001U, + 0x98230032U, + 0x24f0801cU, + 0x65d84025U, + 0x71076034U, + 0x6483102dU, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0x10000000U, + 0x18000000U, + 0xa4000000U, + 0x1a000000U, + 0xc7000000U, + 0x46800000U, + 0x20400000U, + 0xbd600000U, + 0xc3900000U, + 0xba880000U, + 0xc2540000U, + 0x312a0000U, + 0xa4e50000U, + 0x41528000U, + 0x1da9c000U, + 0x6ba1a000U, + 0x16b21000U, + 0x587a1800U, + 0x154e6400U, + 0x8cf1fa00U, + 0x7219ff00U, + 0xa85a4e80U, + 0xa2384740U, + 0xf28da20U, + 0x39e72f10U, + 0xe0d37688U, + 0x6b6df344U, + 0xee829826U, + 0xcc42a439U, + 0x3b62da0eU, + 0xaa922f35U, + 0x3909f697U, + 0xc7903361U, + 0xf0893809U, + 0x3d55b411U, + 0xc3aa4237U, + 0x86a58b3cU, + 0x9f31aca5U, + 0x82bfdc70U, + 0x366b6e98U, + 0x2f029756U, + 0x8a83e22fU, + 0xb6439b30U, + 0xcc61b4a7U, + 0xe414b85fU, + 0xa54814b7U, + 0xc4f2a861U, + 0xee180c8fU, + 0x659cc69U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0x90000000U, + 0x18000000U, + 0x44000000U, + 0xee000000U, + 0x29000000U, + 0x87800000U, + 0xe9400000U, + 0x6da00000U, + 0x2bd00000U, + 0x44a80000U, + 0x54140000U, + 0x33ce0000U, + 0xfd270000U, + 0xd4128000U, + 0xf3cbc000U, + 0x9d22a000U, + 0x4411b000U, + 0xebc86800U, + 0xd923cc00U, + 0xaa10c200U, + 0xc2ce7100U, + 0x5ea1e480U, + 0x4356c040U, + 0xaf6ee220U, + 0x75730130U, + 0x7f9ac98U, + 0xfb7f7c64U, + 0x46bce826U, + 0xfadb0c21U, + 0x2f6ee223U, + 0xb573012eU, + 0x67f9aca7U, + 0x6b7f7c6bU, + 0x5ebce800U, + 0xbedb0c30U, + 0xc16ee228U, + 0x9c73010bU, + 0xe079ac91U, + 0x823f7c64U, + 0x331ce83fU, + 0x950b0c13U, + 0x85c6e212U, + 0xc8670130U, + 0xd3b7ac92U, + 0x7f187c51U, + 0xe70e6807U, + 0x66c0cc0eU, + 0x18e44218U, + 0x8c76b107U, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0x70000000U, + 0x78000000U, + 0xbc000000U, + 0x6000000U, + 0xc3000000U, + 0x39800000U, + 0xcd400000U, + 0x5aa00000U, + 0x34b00000U, + 0xbdb80000U, + 0xcb740000U, + 0xb7da0000U, + 0x82250000U, + 0xa9718000U, + 0xfedac000U, + 0x26a26000U, + 0x52b1f000U, + 0x2ebaf800U, + 0xfaf67c00U, + 0xbe99b200U, + 0x6283f900U, + 0x58c67f80U, + 0xb9e3e0c0U, + 0x19105220U, + 0x728dc910U, + 0xc28f6788U, + 0xda8eacdcU, + 0x3689783eU, + 0x388dbc3fU, + 0x3f885209U, + 0xbc09c92cU, + 0xb44d6790U, + 0x146facdcU, + 0xd41af837U, + 0xfe467c2dU, + 0x5b21b229U, + 0x65f7f91dU, + 0x911c7fa5U, + 0x44c6e0c2U, + 0x8fe1d224U, + 0x8217092dU, + 0x870d07a2U, + 0x71cf5cdbU, + 0xff2b8009U, + 0x3dbfc033U, + 0x8b73e000U, + 0x97db3012U, + 0xf2209820U, + 0xd1738c2cU, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0xf0000000U, + 0x88000000U, + 0x84000000U, + 0xaa000000U, + 0x41000000U, + 0x94800000U, + 0x8ec00000U, + 0x8c600000U, + 0xab700000U, + 0xb2f80000U, + 0xa4340000U, + 0x36de0000U, + 0xe0e10000U, + 0xe9b18000U, + 0xb0994000U, + 0x1447a000U, + 0xd9a71000U, + 0xda932800U, + 0x77ce7400U, + 0x366e3e00U, + 0x70fee700U, + 0xf1337d80U, + 0xd05f7cc0U, + 0xd3261e20U, + 0x5751b730U, + 0xfa2e75a8U, + 0x555b58fcU, + 0x8da2a802U, + 0xc8973411U, + 0x9ac99e02U, + 0x7ce9f72cU, + 0x9d385587U, + 0x2cd508c2U, + 0xcb6e2029U, + 0x227a500aU, + 0x40f28821U, + 0x5bbc6436U, + 0x2f12960cU, + 0x5d88d333U, + 0x1ccb63bcU, + 0x23efcbd5U, + 0xcab9eb8dU, + 0x393afddU, + 0x7f4b7da7U, + 0x4eab7cd7U, + 0xeb981e0eU, + 0x29c0b72eU, + 0x17e7f5a7U, + 0xa3618dcU, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0xb0000000U, + 0xd8000000U, + 0x3c000000U, + 0x4a000000U, + 0xeb000000U, + 0xcf800000U, + 0x49400000U, + 0xb3e00000U, + 0xab300000U, + 0x82580000U, + 0xe2f40000U, + 0x217a0000U, + 0x2610000U, + 0xf7778000U, + 0xab3bc000U, + 0x3a006000U, + 0xd3069000U, + 0xe383b800U, + 0x6b41ac00U, + 0xbce3d200U, + 0x12b20300U, + 0x6a1d4380U, + 0x7592d5c0U, + 0xc8e3220U, + 0x7a9e5310U, + 0xd511ba8U, + 0xa32a29ecU, + 0x58cc3816U, + 0xe7fe6c1fU, + 0x6ba1b23aU, + 0xa4519316U, + 0x33ab7b85U, + 0x600db9ddU, + 0xe858001eU, + 0xf9f40000U, + 0x96fa003bU, + 0xc7210006U, + 0xd6978012U, + 0xd70bc025U, + 0x3dd8600fU, + 0x93b29028U, + 0xbe99b835U, + 0x8b50ac26U, + 0x7a2c5229U, + 0xf04dc31aU, + 0xf33f2381U, + 0x460145c8U, + 0x39000a0aU, + 0xb8853f17U, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0x70000000U, + 0x8000000U, + 0xdc000000U, + 0x8e000000U, + 0x23000000U, + 0x99800000U, + 0x2c00000U, + 0x32200000U, + 0x75900000U, + 0x1d280000U, + 0xbbd40000U, + 0x834e0000U, + 0xd5230000U, + 0x6158000U, + 0x86ef4000U, + 0x11716000U, + 0xc89a3000U, + 0x9e6cf800U, + 0xef313c00U, + 0x7ef84e00U, + 0xbc9b3d00U, + 0x9c6e0a80U, + 0xda33c040U, + 0x607aae20U, + 0x7dd94d30U, + 0xdd8812b8U, + 0xa9048c5cU, + 0xb082f822U, + 0x72423c07U, + 0xa065ce1bU, + 0xa5f07d14U, + 0xb0d96aa4U, + 0xd70ef077U, + 0xda45d60fU, + 0x2c603125U, + 0xb3f2bc99U, + 0x37ddc172U, + 0x148aea8eU, + 0xa986b06fU, + 0x2ac7363dU, + 0x7e22412bU, + 0x8394a4b8U, + 0xea2a8d6cU, + 0x7052bcabU, + 0x2c8dc148U, + 0x5d82ea81U, + 0xe8c2b057U, + 0xab213610U, + 0xed15413eU, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0xb0000000U, + 0xa8000000U, + 0x94000000U, + 0x6000000U, + 0xb1000000U, + 0x3b800000U, + 0x54c00000U, + 0x45e00000U, + 0xf9700000U, + 0x6b680000U, + 0x15340000U, + 0x86ce0000U, + 0xffe50000U, + 0x1a738000U, + 0xc7ec4000U, + 0x7b752000U, + 0x46b7000U, + 0x83b42800U, + 0xcb8a6c00U, + 0xf1c76e00U, + 0xb864d300U, + 0x3cb11d80U, + 0xa50ddc40U, + 0x1087ce20U, + 0x3c42e330U, + 0x15a59588U, + 0x46d1806cU, + 0x16bc280aU, + 0xb30e6c15U, + 0x79816e09U, + 0x1bc5d300U, + 0x63649da4U, + 0x1c309c70U, + 0xf14f6e30U, + 0xb120d322U, + 0xcc971d9cU, + 0x1a1cdc7cU, + 0x5a5a4e3aU, + 0x3dfba314U, + 0x5c2b3595U, + 0xd812b074U, + 0x385b203bU, + 0xc2fe703eU, + 0xd2afa83eU, + 0xa9522c3dU, + 0xa47c4e1cU, + 0xd7eaa31aU, + 0xa376b59eU, + 0x186bf076U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0x90000000U, + 0x88000000U, + 0x44000000U, + 0xc2000000U, + 0x77000000U, + 0x96800000U, + 0x2a400000U, + 0x13a00000U, + 0xcc300000U, + 0x46a80000U, + 0x79f40000U, + 0xc0ce0000U, + 0x3a70000U, + 0x84328000U, + 0x62af4000U, + 0x2bf2a000U, + 0x3fcc5000U, + 0xd1269800U, + 0x6c702400U, + 0x60daa00U, + 0x71468900U, + 0x53236380U, + 0xbb703040U, + 0x608b8a20U, + 0x43069930U, + 0x8c83db98U, + 0xf1400464U, + 0x93269802U, + 0xdb702421U, + 0xf08daa28U, + 0xcb068939U, + 0xc8836387U, + 0x3340305bU, + 0xe4238a14U, + 0x4df2991eU, + 0xdacddbacU, + 0xd8a70470U, + 0x4b41836U, + 0x75ef6412U, + 0x9dd70a18U, + 0x8d3ed93fU, + 0xd96bfbbdU, + 0x5c971454U, + 0x661ca001U, + 0x5e1b501dU, + 0xa21c1827U, + 0x5c1b6423U, + 0xb5190a36U, + 0x5a99d917U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0x90000000U, + 0xe8000000U, + 0xc000000U, + 0xde000000U, + 0x65000000U, + 0xb1800000U, + 0xd9400000U, + 0x2ee00000U, + 0xa3100000U, + 0xe6880000U, + 0x3df40000U, + 0x9d9e0000U, + 0xcf7f0000U, + 0xa6e8000U, + 0xde64000U, + 0xc391e000U, + 0xd44e3000U, + 0xed548800U, + 0xf2ea5c00U, + 0x8b247200U, + 0x4933a300U, + 0x9c393680U, + 0x4b8de540U, + 0xb070fa20U, + 0x82d9ff30U, + 0xf09d4498U, + 0x22fe4664U, + 0x8529cc9aU, + 0xda041a73U, + 0xe705be8fU, + 0x8283b94dU, + 0x91c2882eU, + 0x70215c21U, + 0x3db4f21eU, + 0x4fae316U, + 0xc42e5698U, + 0xd9819563U, + 0x15439217U, + 0x90e69304U, + 0x56153e84U, + 0xbf0af976U, + 0xe8b5e83fU, + 0x6d7d2c12U, + 0x96f9a08U, + 0x5d618f3eU, + 0xe9502ca1U, + 0x70ee2a62U, + 0xb82736b2U, + 0x1b2e559U, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0x90000000U, + 0x38000000U, + 0x54000000U, + 0xf6000000U, + 0x63000000U, + 0xab800000U, + 0xad400000U, + 0xf0e00000U, + 0x64500000U, + 0x99d80000U, + 0x40b40000U, + 0xcb8e0000U, + 0x1a690000U, + 0xb0be8000U, + 0x44a6c000U, + 0xe352000U, + 0x664ff000U, + 0xb048f800U, + 0x834b8c00U, + 0xb0cc6200U, + 0xd98df300U, + 0xe76a4c80U, + 0xb43b9fc0U, + 0x70649a20U, + 0xfe967f30U, + 0x6e7e2ea8U, + 0xbd026ce4U, + 0x6480d6aeU, + 0x4c4e0e5U, + 0x58a434b5U, + 0x6432d3ccU, + 0xaf4bd82cU, + 0x72c97c2aU, + 0x7c8c1a27U, + 0x87edbf30U, + 0xdefb8ebfU, + 0x8fc25cf6U, + 0xff238eb9U, + 0x5b765cdcU, + 0x62ad8e94U, + 0xb21f5ce7U, + 0x41930eadU, + 0xff99cd7U, + 0x49462eafU, + 0x6ee66cfeU, + 0xcb56d6a0U, + 0x59e0caU, + 0x40f4b497U, + 0xa7ed13eeU, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x50000000U, + 0x68000000U, + 0x7c000000U, + 0xc6000000U, + 0x11000000U, + 0x25800000U, + 0x60400000U, + 0xc0600000U, + 0x61100000U, + 0xdd280000U, + 0x4d740000U, + 0x323a0000U, + 0xcd5f0000U, + 0xa4cc8000U, + 0x9a264000U, + 0x36706000U, + 0xe8bcf000U, + 0x859ea800U, + 0xb769bc00U, + 0x22135a00U, + 0x13aa1700U, + 0xbfb76e80U, + 0xf69ae440U, + 0x41edf220U, + 0xc4d3ab10U, + 0x6d0c3498U, + 0xe404f354U, + 0xa2009cbaU, + 0xf3064f4fU, + 0xb6854689U, + 0x86c51840U, + 0x2ea6c82bU, + 0x33b14c03U, + 0x289ff203U, + 0x74e8ab17U, + 0x6352b495U, + 0xce49b350U, + 0xaae67ca4U, + 0x51d3ff67U, + 0xba8f0e9fU, + 0x1f421471U, + 0xa8e15a24U, + 0xd2d11719U, + 0x5409ee80U, + 0xdd87a464U, + 0x54431222U, + 0x4a621b38U, + 0x8e147cbaU, + 0xfda8ff5cU, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0x50000000U, + 0xf8000000U, + 0x8c000000U, + 0xd6000000U, + 0xb000000U, + 0xcb800000U, + 0xfec00000U, + 0xa4a00000U, + 0xe0900000U, + 0xe1180000U, + 0x78340000U, + 0xbf8e0000U, + 0x862f0000U, + 0x6388000U, + 0xe266c000U, + 0x6833e000U, + 0xe788f000U, + 0x3a2d7800U, + 0x78394c00U, + 0x9d647e00U, + 0xf9b21100U, + 0xc448b680U, + 0x5e0ea7c0U, + 0xade90620U, + 0x261b5d30U, + 0xc5b4c898U, + 0x7a48b6d4U, + 0x410fb09eU, + 0x6c6afad3U, + 0xfddd4e8dU, + 0x2d912be6U, + 0x799e9834U, + 0xf171bc38U, + 0x9be9063aU, + 0xbd1b5d0dU, + 0x9634c881U, + 0x5888b6c0U, + 0xcbafb0a1U, + 0xbfafad4U, + 0x1454e9aU, + 0xa0652bc5U, + 0xa9309822U, + 0x690ebc39U, + 0xd869860bU, + 0xc7d99d2cU, + 0xa09128aaU, + 0x411b46c0U, + 0x483448aaU, + 0x178a76fdU, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0xd0000000U, + 0x88000000U, + 0x84000000U, + 0xc6000000U, + 0xf5000000U, + 0xc8800000U, + 0xef400000U, + 0x13a00000U, + 0x79d00000U, + 0x31180000U, + 0x96740000U, + 0xf2ce0000U, + 0x286f0000U, + 0x433c8000U, + 0xc2654000U, + 0xe837a000U, + 0xffeff000U, + 0xa3fd4800U, + 0xfd021400U, + 0x8c87c200U, + 0x4942c100U, + 0x36a79880U, + 0x39504bc0U, + 0x5a5a8a20U, + 0x43d0d530U, + 0x7e185a98U, + 0xd1f68af4U, + 0x3a0b1282U, + 0x230b9ed1U, + 0xb9885089U, + 0x8dc81ff9U, + 0xf7ee6828U, + 0xe7fca41eU, + 0x5b032a0fU, + 0xa9802536U, + 0x9c192adU, + 0x5de5dec2U, + 0xecf5709bU, + 0xd689afe2U, + 0xba4e0012U, + 0x72f0034U, + 0x309c8034U, + 0x6bb5401bU, + 0x512fa01bU, + 0xed9bf03cU, + 0x97334836U, + 0x206d1411U, + 0x73b4239U, + 0x6467811bU, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0xb0000000U, + 0xd8000000U, + 0x3c000000U, + 0x16000000U, + 0x6d000000U, + 0xd6800000U, + 0x4cc00000U, + 0xeee00000U, + 0xa8d00000U, + 0x1ae80000U, + 0xd0340000U, + 0x1f3e0000U, + 0x3c5d0000U, + 0x33cf8000U, + 0x1585c000U, + 0x9b436000U, + 0x2aa2f000U, + 0x33f1c800U, + 0x78592400U, + 0x69cc5e00U, + 0x96801b00U, + 0xacc5fc80U, + 0x7ee7f240U, + 0xc0d59620U, + 0xfeed3f30U, + 0xfa37a288U, + 0x643ae96cU, + 0x87dfea96U, + 0xa98f0d7fU, + 0xb7a154adU, + 0xdd752647U, + 0x9899802bU, + 0xf92cc000U, + 0xb752e000U, + 0x4aaa3012U, + 0x99152800U, + 0x8a8a1433U, + 0xf020f60cU, + 0x7136cf2dU, + 0xe7bfea84U, + 0xb19f0d48U, + 0x75a954bcU, + 0x7891266bU, + 0x93cf8029U, + 0x6585c03cU, + 0x63436009U, + 0xa6a2f006U, + 0xfdf1c83eU, + 0x2959241aU, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0xd0000000U, + 0x68000000U, + 0x8c000000U, + 0x6e000000U, + 0xff000000U, + 0x9b800000U, + 0xef400000U, + 0xe1600000U, + 0xa7100000U, + 0xa2580000U, + 0xd8740000U, + 0x24a0000U, + 0xa5a90000U, + 0x7788000U, + 0xbf804000U, + 0xed45e000U, + 0x63b000U, + 0x7b965800U, + 0x32988c00U, + 0x34539200U, + 0xd53d5f00U, + 0xc4606680U, + 0x9953fc0U, + 0x6b9dca20U, + 0xcd1d310U, + 0xa7f9f4a8U, + 0xb94160f4U, + 0xba652cbaU, + 0x7e94acf3U, + 0xc19de93U, + 0x359703dbU, + 0x5d988034U, + 0x67d0403cU, + 0x667de011U, + 0x2307b001U, + 0xdd84580fU, + 0x3c458c11U, + 0xc4e11205U, + 0xdf541f04U, + 0x54bd06b7U, + 0xfe26cfcbU, + 0xbe76720bU, + 0x414eef26U, + 0x482e3e9fU, + 0x2339b3c8U, + 0x4f64580dU, + 0xb8158c00U, + 0x49d91226U, + 0x8f301f2aU, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0xb0000000U, + 0x98000000U, + 0xc000000U, + 0xb2000000U, + 0x25000000U, + 0x69800000U, + 0xc3c00000U, + 0xa9600000U, + 0xdef00000U, + 0xdef80000U, + 0xd1940000U, + 0xdb0a0000U, + 0xd1ed0000U, + 0x35db8000U, + 0x91c3c000U, + 0x5c66e000U, + 0xbf75d000U, + 0x39380800U, + 0x5ef67c00U, + 0x9ef8c600U, + 0xf197bf00U, + 0x6b0d0d80U, + 0x49ef2ec0U, + 0x39d8ce20U, + 0x23c5c310U, + 0x7967cb88U, + 0xd6f191ecU, + 0xfafc4386U, + 0xf7902dd3U, + 0x40086584U, + 0x2f6f42f5U, + 0xba9ee014U, + 0x92e1d00fU, + 0xe8320828U, + 0x161b7c11U, + 0xe8a34627U, + 0x8a947f0eU, + 0x458bedaaU, + 0xceaafefaU, + 0x1ef8c62aU, + 0xb197bf07U, + 0x4b0d0db4U, + 0xf9ef2ef4U, + 0xa1d8ce04U, + 0x2fc5c320U, + 0xcb67cbafU, + 0xf3f191e6U, + 0x937c4392U, + 0x34502dedU, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0x50000000U, + 0xa8000000U, + 0xc4000000U, + 0x9e000000U, + 0x11000000U, + 0xfe800000U, + 0x52c00000U, + 0x16e00000U, + 0xef700000U, + 0x1ab80000U, + 0x78940000U, + 0x434a0000U, + 0x4e90000U, + 0x4b3c8000U, + 0xd5d64000U, + 0xf1eba000U, + 0x3bba3000U, + 0x9e176800U, + 0x8d8f6400U, + 0xb00b4e00U, + 0x474afb00U, + 0x7aeaf180U, + 0xaa3e50c0U, + 0xd3562620U, + 0xcf2c9f10U, + 0x775d3fa8U, + 0xfe62ebd4U, + 0x78b7778aU, + 0x64d8ffe1U, + 0x402471afU, + 0x879510c0U, + 0x14cb061dU, + 0x64a9ef21U, + 0x51d77a0U, + 0xb41ffdaU, + 0x2fa0f194U, + 0x6bd750efU, + 0xf0eaa605U, + 0xcd3adf2eU, + 0x58d69facU, + 0xad68dbe1U, + 0x8a781f82U, + 0x3d739bcfU, + 0x41bd3fb3U, + 0x112ebddU, + 0x6a0f778aU, + 0x884cfff1U, + 0x356e7191U, + 0x567c10e6U, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0x50000000U, + 0xe8000000U, + 0x4c000000U, + 0xaa000000U, + 0x6d000000U, + 0x34800000U, + 0x82c00000U, + 0x69a00000U, + 0xd3900000U, + 0xe9a80000U, + 0xe7340000U, + 0x76be0000U, + 0xc85b0000U, + 0x4e288000U, + 0x42724000U, + 0x7a59e000U, + 0xf72b9000U, + 0xc8f6c800U, + 0xcb98d400U, + 0xc909ce00U, + 0x26231100U, + 0x3ad46680U, + 0x4f4b0240U, + 0xb5410620U, + 0xc4e0c530U, + 0xc37528b8U, + 0x94da5354U, + 0x40ec809aU, + 0x61d05763U, + 0x94cae6b2U, + 0xc206427fU, + 0xe106662fU, + 0x7e861517U, + 0xbfc480b2U, + 0xb5245768U, + 0x1d54e687U, + 0x2a0d4261U, + 0x59a6e638U, + 0xab905519U, + 0xadab60bcU, + 0x5130c77aU, + 0x59bcae93U, + 0xddd8d67aU, + 0x52684839U, + 0xc4159436U, + 0xf4eeae37U, + 0x4fd5c105U, + 0xafcdce81U, + 0x89810649U, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0x70000000U, + 0xc8000000U, + 0x44000000U, + 0xfa000000U, + 0x83000000U, + 0x1a800000U, + 0xbd400000U, + 0x1fa00000U, + 0xbad00000U, + 0x5bd80000U, + 0x4e740000U, + 0x8f8a0000U, + 0xbaed0000U, + 0x695d8000U, + 0xa7314000U, + 0xf22aa000U, + 0x7f3f1000U, + 0x5e05f800U, + 0x69006400U, + 0x1868200U, + 0x5bc62100U, + 0xd4e09080U, + 0x9872edc0U, + 0x82897a20U, + 0x316b4510U, + 0x799b9288U, + 0x2d558cdcU, + 0x2d1b4a92U, + 0x6112b8c1U, + 0xcf3d1096U, + 0xf603adecU, + 0x7d03da1cU, + 0x43845532U, + 0x54c66a83U, + 0x7061e8c3U, + 0x5c37c8bcU, + 0x4a999ddU, + 0x2c780034U, + 0x80a40003U, + 0xc6520037U, + 0x43990036U, + 0xce578002U, + 0x679c403dU, + 0x64572000U, + 0x5c9e5001U, + 0xf2d75804U, + 0x5fdb740fU, + 0x94717a15U, + 0x7c8f4537U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0x90000000U, + 0x98000000U, + 0x5c000000U, + 0xd2000000U, + 0x27000000U, + 0xaf800000U, + 0xa9400000U, + 0x1a600000U, + 0x19100000U, + 0xfd380000U, + 0x38740000U, + 0x39ae0000U, + 0xbb0f0000U, + 0xbc3e8000U, + 0xf6f5c000U, + 0x6e6b6000U, + 0x9ea9d000U, + 0xd4899800U, + 0x757ccc00U, + 0x7c958200U, + 0xef7f4700U, + 0x3f946680U, + 0x3efd3cc0U, + 0x6bd21a20U, + 0x681c8b30U, + 0xfa076498U, + 0xd303bbe4U, + 0x49831c86U, + 0x84767e7U, + 0x84e2668cU, + 0xb6d63cddU, + 0x149a9a35U, + 0x1ac24b29U, + 0xc124848cU, + 0xd474abfcU, + 0x43a964a6U, + 0xa80cbbcaU, + 0x95bd9cafU, + 0x6eb2a7dfU, + 0x728906a3U, + 0x747fecdcU, + 0x12130206U, + 0x48be870bU, + 0x1231068aU, + 0x924becd0U, + 0x665d023aU, + 0x8fe1870dU, + 0x35786b0U, + 0x3eda2cc7U, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0x10000000U, + 0x28000000U, + 0x2c000000U, + 0x22000000U, + 0x3000000U, + 0xca800000U, + 0x75400000U, + 0xc4200000U, + 0xb3100000U, + 0x61e80000U, + 0xa8340000U, + 0x627e0000U, + 0xb990000U, + 0xf2ea8000U, + 0x8ab64000U, + 0x9b3ae000U, + 0xfdb9d000U, + 0x6afab800U, + 0xdd86400U, + 0x644c4200U, + 0x58e7bd00U, + 0x18f3de80U, + 0xeb9c6040U, + 0x82e8fa20U, + 0x12b6d930U, + 0x8f3d1ca8U, + 0xdbb99d44U, + 0x67ffc4aaU, + 0xe65a697bU, + 0xd88dde80U, + 0x23056074U, + 0x1a827a30U, + 0xfd409922U, + 0xf827fc9bU, + 0xb9104d63U, + 0x4eed7c88U, + 0x40b60d4cU, + 0x143f9c9bU, + 0x53bdd47U, + 0x34bb24a5U, + 0x2f7ab946U, + 0x801de69dU, + 0xfe2b4444U, + 0xc954d81eU, + 0x9d4ef42bU, + 0xe5669a32U, + 0x31304937U, + 0x6fffc49fU, + 0x1a5a6974U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0xd0000000U, + 0x78000000U, + 0x14000000U, + 0xea000000U, + 0xb3000000U, + 0x45800000U, + 0x24400000U, + 0x3ba00000U, + 0x47100000U, + 0x4f480000U, + 0x93b40000U, + 0x5bda0000U, + 0xadbf0000U, + 0x2b488000U, + 0xf1b6c000U, + 0x34df2000U, + 0xbe3d1000U, + 0x3a0e7800U, + 0xc2931c00U, + 0x4b0cca00U, + 0x18137900U, + 0xb4cb4e80U, + 0x8ef39940U, + 0x46f8b220U, + 0xf36f6510U, + 0x6fe70498U, + 0xf4b22074U, + 0xd45edcbeU, + 0x8afaec55U, + 0xfd6b4e82U, + 0xfee39948U, + 0xbe30b237U, + 0x339b6528U, + 0xd81d04b2U, + 0x9d5d204cU, + 0x247e5c86U, + 0x38a82c54U, + 0xa3066e8bU, + 0x1d85897bU, + 0x80444a20U, + 0x79a5b921U, + 0x98146ebaU, + 0xf4ce896cU, + 0xeef6ca14U, + 0x96fc7933U, + 0x8b6bcebeU, + 0x7be1597eU, + 0x1eb59216U, + 0x67597529U, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0x90000000U, + 0x28000000U, + 0x54000000U, + 0x12000000U, + 0x5d000000U, + 0x69800000U, + 0xf0c00000U, + 0x96e00000U, + 0xd0f00000U, + 0x99780000U, + 0x69140000U, + 0xad0a0000U, + 0xa12b0000U, + 0x663a8000U, + 0x70304000U, + 0x879b2000U, + 0x9de65000U, + 0x9e778800U, + 0xe93f3c00U, + 0xe4b7de00U, + 0x6edec300U, + 0x43c10580U, + 0xa462a6c0U, + 0xe6b25620U, + 0x5bdeff10U, + 0x9e465bb8U, + 0xd6a725e4U, + 0x552f3aaU, + 0xb6aa49c5U, + 0xe5f8a59cU, + 0x7450b6e3U, + 0x112cfe08U, + 0x7e38931dU, + 0x7c368d93U, + 0x799d9ad2U, + 0xaee58812U, + 0xecf03c34U, + 0x3f7f5e28U, + 0xb6118313U, + 0xb18aa58aU, + 0x6c6fb6dbU, + 0x121c7e2dU, + 0x6b23d326U, + 0xa7972d91U, + 0x9d4b8accU, + 0xcc892025U, + 0x35e95039U, + 0xbadf0815U, + 0x11c07c01U, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0x90000000U, + 0x68000000U, + 0xac000000U, + 0x22000000U, + 0x35000000U, + 0x28800000U, + 0xc6400000U, + 0xc4600000U, + 0x9db00000U, + 0x73180000U, + 0xa6d40000U, + 0x1f2a0000U, + 0x390d0000U, + 0x1eda8000U, + 0x3f744000U, + 0xa33ae000U, + 0x1203d000U, + 0x8d010800U, + 0xcc877400U, + 0xd8476a00U, + 0xbb649f00U, + 0x2c375380U, + 0xbfdbddc0U, + 0x91f46220U, + 0x6e7aeb10U, + 0x11e0b988U, + 0xf7602e4U, + 0x1b3b51baU, + 0xf602a6fbU, + 0x930533a0U, + 0xb3854df9U, + 0x69c70a38U, + 0x77a30f2eU, + 0x1b14bbabU, + 0xce8b79e5U, + 0xb9180024U, + 0x7fd4002eU, + 0x35aa003cU, + 0x5a4d0031U, + 0x9a3a803aU, + 0xc884401bU, + 0x3642e00aU, + 0x1c67d009U, + 0xc9b30835U, + 0x951e742aU, + 0x1dd7ea2fU, + 0x20addf0cU, + 0xe2cf339bU, + 0x34784dfeU, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0xd0000000U, + 0xc8000000U, + 0x54000000U, + 0xa000000U, + 0x3b000000U, + 0xf4800000U, + 0xf6c00000U, + 0xf2a00000U, + 0xab00000U, + 0xbbc80000U, + 0x21140000U, + 0x5afe0000U, + 0xea9f0000U, + 0x88c8000U, + 0x2af74000U, + 0xc0a92000U, + 0x8f879000U, + 0xa245b800U, + 0xb4601400U, + 0xe0121e00U, + 0x2d7ff900U, + 0xc4df3f80U, + 0x4ae80940U, + 0x7fe1a620U, + 0xe054ed30U, + 0x261fa198U, + 0x124fb074U, + 0xfe533992U, + 0xb7183465U, + 0x6dcc9fbaU, + 0xe413d94aU, + 0x2f7fbe37U, + 0xcbdb292cU, + 0x646da794U, + 0x7a208d6dU, + 0xb2728003U, + 0xd068401eU, + 0x6025a00dU, + 0x2170d03fU, + 0xa0ec981fU, + 0x54e78428U, + 0xbcd7a636U, + 0x54dfed1dU, + 0x22ed21afU, + 0x9be7f068U, + 0xf2569980U, + 0x8118e46aU, + 0xb8c807bdU, + 0x39905d5aU, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0x70000000U, + 0x8000000U, + 0x9c000000U, + 0xb2000000U, + 0xab000000U, + 0xc9800000U, + 0x74c00000U, + 0xdce00000U, + 0xd5f00000U, + 0x57380000U, + 0xc140000U, + 0x924e0000U, + 0x2d6f0000U, + 0x8ff98000U, + 0xcaf14000U, + 0x60ba6000U, + 0x79d15000U, + 0xc82c7800U, + 0x63d87c00U, + 0xf5e60e00U, + 0x1f752300U, + 0x667a7d80U, + 0x6e33e4c0U, + 0xa45c7620U, + 0x48265f30U, + 0xb913f398U, + 0xeacc87dcU, + 0xb72beba2U, + 0x245aabd7U, + 0x88201d94U, + 0xd912b4c6U, + 0x9ac80e08U, + 0xbf2a2316U, + 0xb85bfd81U, + 0x3a26a4e4U, + 0x72101629U, + 0x534c0f23U, + 0xcbe80b95U, + 0x64babbd5U, + 0xefd60591U, + 0x252b98ceU, + 0x5f5a780aU, + 0x59a37c25U, + 0x49d18e08U, + 0x602b6304U, + 0xefd99dbbU, + 0x3fe3f4d8U, + 0x20726e3bU, + 0x81fb732bU, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x90000000U, + 0x98000000U, + 0xc4000000U, + 0xb6000000U, + 0x7d000000U, + 0x51800000U, + 0xfd400000U, + 0xb200000U, + 0xb2100000U, + 0xd4080000U, + 0x16340000U, + 0x4c9a0000U, + 0x7bff0000U, + 0x314a8000U, + 0x9911c000U, + 0x288ba000U, + 0x42f2f000U, + 0xeeff8800U, + 0xeccadc00U, + 0xee551200U, + 0xbca94d00U, + 0xf266be80U, + 0x2f346f40U, + 0xeb189a20U, + 0x9bb89110U, + 0xfbeb2c98U, + 0x4e47e264U, + 0x33a50486U, + 0x50d0ce61U, + 0xb6d1e95U, + 0xd0869f6bU, + 0x6ec7120aU, + 0x55624d3aU, + 0x59b63e91U, + 0x20daaf66U, + 0x3b59ba0aU, + 0x791ba104U, + 0x80bf04b0U, + 0x2f6fce76U, + 0xb6879ea9U, + 0xebc75f51U, + 0x50e4b23bU, + 0x8af4bd0cU, + 0x92fbb6bbU, + 0x6ecb736cU, + 0x2d542807U, + 0xcc282c15U, + 0x2ca29a15U, + 0x12579107U, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0x90000000U, + 0x48000000U, + 0x2c000000U, + 0x1e000000U, + 0xf1000000U, + 0x15800000U, + 0x4a400000U, + 0xd6e00000U, + 0x60500000U, + 0x38e80000U, + 0x25b40000U, + 0xa3a0000U, + 0xaf990000U, + 0x60aa8000U, + 0xcc514000U, + 0x66eae000U, + 0x74b73000U, + 0x8fba2800U, + 0xadda7c00U, + 0x9a4eca00U, + 0xb2002300U, + 0xaf049480U, + 0x4486be40U, + 0xcfc6e220U, + 0xd4a75f10U, + 0x9ab2dea8U, + 0x46badd64U, + 0xec5816b2U, + 0x3a0e915bU, + 0xefe6748fU, + 0x19d58e48U, + 0xccaeca1fU, + 0x9250232dU, + 0x37ec9488U, + 0xf132be4bU, + 0x8dfce23eU, + 0x573e5f3cU, + 0xe4185e9dU, + 0x7beb9d79U, + 0x9f32f694U, + 0x4f9a16bU, + 0xb6bc5cafU, + 0xd45ff26fU, + 0x6e080028U, + 0x5e40017U, + 0x92d2002dU, + 0x1a2d0022U, + 0x22908017U, + 0x4fc84038U, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0xf0000000U, + 0xe8000000U, + 0x5c000000U, + 0xce000000U, + 0xef000000U, + 0x5f800000U, + 0x8400000U, + 0x82600000U, + 0xe4100000U, + 0xcd980000U, + 0xa9f40000U, + 0xf9ce0000U, + 0xb20b0000U, + 0xd62d8000U, + 0x4f5a4000U, + 0x21506000U, + 0xf97fb000U, + 0xb9265800U, + 0x37f0ac00U, + 0x2ecbea00U, + 0x498e8700U, + 0x5469d680U, + 0x583859c0U, + 0xe7c03220U, + 0x42246b30U, + 0x2a725cb8U, + 0xff896efcU, + 0x3f6fbc9aU, + 0x9dbc9ee7U, + 0x628184abU, + 0x56c782f7U, + 0x2aa236b5U, + 0x29b2a9d9U, + 0x17ad8a31U, + 0x901e3719U, + 0x58b40e95U, + 0x9f2db5f8U, + 0x63d83820U, + 0x58941c0bU, + 0x6c58323aU, + 0x68d06b05U, + 0x4a3c5c88U, + 0x6c26ed4U, + 0x12a23ca5U, + 0x8db6deeaU, + 0x9da9e4b4U, + 0x51c32f7U, + 0x7a326ebaU, + 0xe9ed05f8U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0x90000000U, + 0xa8000000U, + 0xcc000000U, + 0xf6000000U, + 0x37000000U, + 0x6f800000U, + 0xa1400000U, + 0xb6e00000U, + 0xfb500000U, + 0xb8180000U, + 0x9a340000U, + 0x460e0000U, + 0xcecf0000U, + 0x766e8000U, + 0xc05c4000U, + 0x2053e000U, + 0x119b7000U, + 0x54711800U, + 0x6b6d6c00U, + 0x6df2200U, + 0x75902300U, + 0xfbfe480U, + 0x278259c0U, + 0x3d40ba20U, + 0x88e10f30U, + 0x90532698U, + 0x89990ae4U, + 0xc076468aU, + 0x696a3ac3U, + 0xa3dabe85U, + 0x171326d9U, + 0x7a0489U, + 0x68a229cfU, + 0xbe312202U, + 0xdc0f2314U, + 0xffc964baU, + 0x16ea19d4U, + 0x6a9d5a10U, + 0xdf57f2bU, + 0x9d2cbea0U, + 0x4fb826e9U, + 0x8782848bU, + 0xcd4569c4U, + 0xb0e2421fU, + 0xf4571318U, + 0xb39d1c82U, + 0x17445c3U, + 0x31ee8008U, + 0x6d1c4024U, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0x70000000U, + 0x18000000U, + 0xa4000000U, + 0x36000000U, + 0xeb000000U, + 0xc3800000U, + 0x4bc00000U, + 0xfca00000U, + 0xc7300000U, + 0xedb80000U, + 0xac140000U, + 0xf4a0000U, + 0x52090000U, + 0xe1ed8000U, + 0x83bc000U, + 0x84d5a000U, + 0x5c6df000U, + 0x24f83800U, + 0x91f7cc00U, + 0xd99e5600U, + 0x3360b100U, + 0x3d95d380U, + 0x798b72c0U, + 0x562bee20U, + 0xc69cbd10U, + 0xeee625a8U, + 0x815233dcU, + 0xa4ac05a6U, + 0x1fd903f9U, + 0x5b061d85U, + 0x3b81fff6U, + 0x3fc053beU, + 0xa2a4b2f7U, + 0x90344e3cU, + 0xbc384d2eU, + 0x3ad39da8U, + 0xdb6e3ff6U, + 0x1d7ff3a7U, + 0xbb3042f4U, + 0x9fb9f609U, + 0xa110413cU, + 0x4fca6bb8U, + 0x664e7efeU, + 0xc48d981dU, + 0xeeaa3c2bU, + 0x86de6e02U, + 0x95837d12U, + 0x30c18595U, + 0xf722c3f1U, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0x90000000U, + 0x28000000U, + 0xc4000000U, + 0x62000000U, + 0x1d000000U, + 0xbc800000U, + 0x3ec00000U, + 0xebe00000U, + 0x3f900000U, + 0x28a80000U, + 0xdcf40000U, + 0x93fa0000U, + 0x5ebd0000U, + 0xd21a8000U, + 0x482e4000U, + 0xbc35a000U, + 0xcb1dd000U, + 0xf6ae0800U, + 0x2ff31400U, + 0x247e6e00U, + 0x1bfee300U, + 0x4abdd680U, + 0xb81a8040U, + 0x12ae620U, + 0x4ab3b710U, + 0x2cde1888U, + 0xc3cdb364U, + 0x33a338aaU, + 0x5bb72361U, + 0xc65810b0U, + 0x1a0aa773U, + 0x5c7568dU, + 0x6864c04aU, + 0x80d74600U, + 0xd10a670dU, + 0x1e4210bfU, + 0xab27a76aU, + 0xf775d683U, + 0xa8be8071U, + 0xe518e61bU, + 0x9daab716U, + 0xe4769896U, + 0xef3af347U, + 0x385e18afU, + 0x790db350U, + 0x9a4338a3U, + 0xe927237aU, + 0x7a7010a7U, + 0x3c3ea757U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x30000000U, + 0x68000000U, + 0xa4000000U, + 0x36000000U, + 0x2f000000U, + 0x6f800000U, + 0x5c00000U, + 0x40a00000U, + 0xc9b00000U, + 0xd2580000U, + 0x8a940000U, + 0x9c2a0000U, + 0x396f0000U, + 0x638f8000U, + 0xe75e4000U, + 0x2811a000U, + 0xe76a7000U, + 0xa8899800U, + 0xdedb2c00U, + 0x32d38600U, + 0xa04c1100U, + 0xc0f81780U, + 0x7a275dc0U, + 0x5ef59e20U, + 0x81b97d10U, + 0x76c23198U, + 0xc5253cccU, + 0x497611baU, + 0x187e0cf9U, + 0xfc61a9b5U, + 0xd99110d7U, + 0x49aa17b9U, + 0xe1ac5df4U, + 0x65a81e3fU, + 0x3ac3d0cU, + 0x74ae11a0U, + 0xd72a0ccdU, + 0x40eba99bU, + 0x194e10cfU, + 0x907d9792U, + 0x28661dffU, + 0xe793be30U, + 0xf2a94d13U, + 0xd02809beU, + 0xeb6f60feU, + 0x1a898fa1U, + 0x97d871f7U, + 0x2a541811U, + 0x60e6c03U, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0x10000000U, + 0xf8000000U, + 0x64000000U, + 0x5e000000U, + 0x9000000U, + 0xff800000U, + 0x9bc00000U, + 0xffe00000U, + 0x4ef00000U, + 0x2f380000U, + 0x2940000U, + 0x980a0000U, + 0x114b0000U, + 0x94ee8000U, + 0x573ec000U, + 0x2692a000U, + 0x2608b000U, + 0x84f2800U, + 0x936f6c00U, + 0xa8fb8600U, + 0x87701b00U, + 0x61f9ad80U, + 0xd8f28cc0U, + 0xa3a2e20U, + 0xcf11b710U, + 0xd8c88bb8U, + 0xda2e27c4U, + 0x8d5eab9eU, + 0xb4a357c9U, + 0xf855a38fU, + 0x446e4bd6U, + 0x1e79ad99U, + 0x3328cebU, + 0x15da2e0eU, + 0x91e1b71cU, + 0xff08ba5U, + 0xbcba27f9U, + 0x4b54abafU, + 0xace857faU, + 0x933b23a1U, + 0x88908bf6U, + 0xc70b0d82U, + 0x6bca3cf5U, + 0x32ad0604U, + 0x1adb29U, + 0x3f010d85U, + 0x2a813cc0U, + 0xbe438619U, + 0x23241b34U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0xf0000000U, + 0x78000000U, + 0x5c000000U, + 0x6a000000U, + 0x1000000U, + 0x82800000U, + 0x94c00000U, + 0xaa00000U, + 0xf100000U, + 0xdc380000U, + 0xd340000U, + 0xf6ea0000U, + 0x412f0000U, + 0xcc098000U, + 0x735ec000U, + 0xd2006000U, + 0x7d061000U, + 0x7885a800U, + 0x1dc1e400U, + 0xac26de00U, + 0xadd5f900U, + 0xbd9b9280U, + 0x81a20ec0U, + 0x3c92f620U, + 0xd27edd10U, + 0x3f572c98U, + 0xe15ee7fcU, + 0xcf054cbeU, + 0xf583f7c7U, + 0x1d4364a2U, + 0xede3d3ecU, + 0x6bf45a86U, + 0x114afadeU, + 0xbeb8003eU, + 0x29f40038U, + 0xe44a000bU, + 0xe23f000dU, + 0x231801bU, + 0x236ac021U, + 0xcc6a603cU, + 0xa9e91039U, + 0x3cac281cU, + 0xf54f242aU, + 0xa8bebe25U, + 0xd2f7e90bU, + 0xefcc3aa6U, + 0xd078eafbU, + 0xaa57a82bU, + 0x4ddae424U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0xb0000000U, + 0x88000000U, + 0x14000000U, + 0xa2000000U, + 0x49000000U, + 0x4a800000U, + 0xc3400000U, + 0xfe600000U, + 0xc5b00000U, + 0x84b80000U, + 0xab540000U, + 0xf74e0000U, + 0xfd0f0000U, + 0x89ef8000U, + 0xef1d4000U, + 0x25c42000U, + 0xc321d000U, + 0xa4d02800U, + 0x508e2400U, + 0x6729a200U, + 0x3fb85f00U, + 0x50d43b80U, + 0x828d50c0U, + 0xc62e0a20U, + 0xd13f3b30U, + 0xb997b998U, + 0x21ebdfecU, + 0xeb1d9982U, + 0xdfc50ff5U, + 0xa6223190U, + 0xd0566bceU, + 0x6ccfb388U, + 0x38cfe4e9U, + 0x3acba00dU, + 0xa3cc903aU, + 0xd14c0821U, + 0x8e0bf421U, + 0xc66f8a1aU, + 0xe8dd7b29U, + 0x6fe41986U, + 0x4d734fc2U, + 0x871f9198U, + 0x41c1fbd4U, + 0x89223b90U, + 0x49d650d7U, + 0x300f8a34U, + 0xf96d7b08U, + 0x295c19b9U, + 0x1f274ffbU, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0x70000000U, + 0xe8000000U, + 0xec000000U, + 0x62000000U, + 0x4f000000U, + 0xc6800000U, + 0xe1400000U, + 0x8a200000U, + 0x88f00000U, + 0xc4280000U, + 0xea540000U, + 0xd09e0000U, + 0x55db0000U, + 0xe1f98000U, + 0x4c0a4000U, + 0x9da1e000U, + 0xda36d000U, + 0xc2ced800U, + 0x31428400U, + 0x32204200U, + 0x1cf36d00U, + 0xd22f9180U, + 0xc3527640U, + 0xd71f1a20U, + 0x5f1fa930U, + 0x31833b8U, + 0x6918cb5cU, + 0xba19d39aU, + 0xf69e1b4bU, + 0xb4df0b80U, + 0x9a789f7fU, + 0xbcc94993U, + 0x3444f26fU, + 0xb7a15818U, + 0x2937c426U, + 0x1e4e221aU, + 0xeb00fd36U, + 0x18872985U, + 0xb4476267U, + 0x77a1e022U, + 0xc936d010U, + 0x6e4ed809U, + 0x302841fU, + 0xf4804215U, + 0xd6436d29U, + 0x38a7918eU, + 0xfb6765eU, + 0x8f091a3eU, + 0x8920a904U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0xb0000000U, + 0x68000000U, + 0x6c000000U, + 0x32000000U, + 0xad000000U, + 0x35800000U, + 0x12400000U, + 0x9e200000U, + 0x24900000U, + 0xa4180000U, + 0x59340000U, + 0x11ce0000U, + 0xc18f0000U, + 0x3aaf8000U, + 0x97ba4000U, + 0xcbe7e000U, + 0xa5f25000U, + 0xfb2bc800U, + 0x13f99c00U, + 0x76c64a00U, + 0xf3e7c500U, + 0xd1f26280U, + 0xad2b47c0U, + 0x50fa0220U, + 0xb4401930U, + 0x1525c898U, + 0x5a15d2ecU, + 0xa8da28baU, + 0x7bd382ebU, + 0x7fbfe0b4U, + 0x67e51ef7U, + 0xf7f62aafU, + 0xe6289bc3U, + 0x4e7ba809U, + 0x8858c25U, + 0x5fc4622aU, + 0x5863090eU, + 0x3cb060b8U, + 0x1b8f5ecdU, + 0x3ba9caa1U, + 0xf03ecbe5U, + 0xc4a6600dU, + 0x6657101eU, + 0xa1fba838U, + 0x1bc58c39U, + 0xa664621aU, + 0x73b30926U, + 0x5b0860b3U, + 0x186b5efcU, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0xf0000000U, + 0xe8000000U, + 0x5c000000U, + 0x92000000U, + 0xe5000000U, + 0x75800000U, + 0xddc00000U, + 0xb7a00000U, + 0xfe900000U, + 0x50f80000U, + 0xa9b40000U, + 0xae2a0000U, + 0x2f2b0000U, + 0x2ca98000U, + 0x226e4000U, + 0xd34c6000U, + 0x469d5000U, + 0x22840800U, + 0x1d401c00U, + 0xe7e07600U, + 0xd0f78900U, + 0x3fccae80U, + 0x2cdf20c0U, + 0x55e7fe20U, + 0x65f2d510U, + 0xb24938b8U, + 0xb51bb9fcU, + 0xc443389aU, + 0xb060b9c7U, + 0xe032b8bcU, + 0x51eaf9d5U, + 0x758cd8bfU, + 0xbb8a9ccU, + 0xd55350abU, + 0x7459f5fdU, + 0xf1a4c68fU, + 0x65926cdfU, + 0x5a7b801dU, + 0x48f14001U, + 0xcbcfe009U, + 0x2d81038U, + 0xd2e1e825U, + 0x1d730c16U, + 0x46081e28U, + 0x4d7ac51fU, + 0x6870d089U, + 0x6b8cb5c4U, + 0xc4b9268aU, + 0xe1d57cdbU, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x90000000U, + 0x88000000U, + 0x3c000000U, + 0xa6000000U, + 0xad000000U, + 0x67800000U, + 0xdbc00000U, + 0xd4a00000U, + 0x5e500000U, + 0x580000U, + 0x70740000U, + 0xda4a0000U, + 0x3b4f0000U, + 0xa2ca8000U, + 0x94000U, + 0xb9286000U, + 0xbfb8f000U, + 0x9dc14800U, + 0xa9a62c00U, + 0xd1d4a600U, + 0x779ce100U, + 0x8ad6e880U, + 0x1518fdc0U, + 0xfa956e20U, + 0xa47c8d10U, + 0x6960ae98U, + 0x7f5ace4U, + 0xc98aae82U, + 0xb3eaacdfU, + 0xca982e91U, + 0x2557ecdfU, + 0x92da4e83U, + 0x18301ccdU, + 0xdf298686U, + 0x32bb70c7U, + 0xa4740aaU, + 0x6a6461faU, + 0xb1706029U, + 0xb3ccf03fU, + 0x818b4817U, + 0xafe92c3dU, + 0x9c9e263fU, + 0x9055a138U, + 0x415e88bcU, + 0x59f00df2U, + 0x8c2608U, + 0xa66ea111U, + 0xb65e0898U, + 0x15764de1U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x50000000U, + 0x28000000U, + 0x94000000U, + 0x82000000U, + 0xa1000000U, + 0x13800000U, + 0x69400000U, + 0x90200000U, + 0x7d700000U, + 0xa7580000U, + 0x6bd40000U, + 0x52ea0000U, + 0x8cef0000U, + 0x2bec8000U, + 0x536c4000U, + 0x4cab2000U, + 0xc4ad000U, + 0xbd5f6800U, + 0x66d6ec00U, + 0x1f6c3200U, + 0x2ad6500U, + 0xa3484580U, + 0x61db95c0U, + 0x8315da20U, + 0x4288c910U, + 0xb63bd798U, + 0x328460d4U, + 0x3ac3d7aaU, + 0x996060f5U, + 0xbd51d798U, + 0xf22b60ecU, + 0x588f57b6U, + 0xbb3c20fbU, + 0x7f02f7b6U, + 0xb485b0d6U, + 0x11c23fbfU, + 0x8fe1ccc9U, + 0x3d9045a6U, + 0x164f95efU, + 0xb05fda11U, + 0x2b57c902U, + 0x912f57bcU, + 0x8a0c20e6U, + 0x91faf7b2U, + 0xae61b0ecU, + 0xcdd03f9bU, + 0x49eaccc7U, + 0xe26ec5b1U, + 0x1728d5cbU, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0xb0000000U, + 0xb8000000U, + 0x94000000U, + 0xa000000U, + 0xb000000U, + 0x4800000U, + 0x7cc00000U, + 0x2200000U, + 0x9d00000U, + 0xb3980000U, + 0xe0740000U, + 0xd00a0000U, + 0xe20b0000U, + 0x3d0b8000U, + 0xd38cc000U, + 0x14482000U, + 0xaae91000U, + 0x4bfdb800U, + 0xf0459400U, + 0x12e20e00U, + 0x75f3dd00U, + 0xb4f6480U, + 0xe46b27c0U, + 0xdc3e3620U, + 0x46e18910U, + 0xdff6cab8U, + 0x50492aecU, + 0xe8eeca8eU, + 0x8cfd2af5U, + 0xdac4ca9aU, + 0xd7262afeU, + 0xec574ab7U, + 0x70deeac6U, + 0x22156ab4U, + 0x333cfad9U, + 0x50635299U, + 0x6c35aefcU, + 0x54e97c81U, + 0xbaff63feU, + 0xa7c3a016U, + 0x4ea5d00aU, + 0xb9159808U, + 0x9fbc843cU, + 0x50a7b628U, + 0xf8124932U, + 0x703f6a95U, + 0x98e7fadcU, + 0x3ef0d2a3U, + 0xefcd6ed6U, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0xd0000000U, + 0xc8000000U, + 0x24000000U, + 0x62000000U, + 0x7000000U, + 0x13800000U, + 0xec400000U, + 0xa8a00000U, + 0x6df00000U, + 0x2d080000U, + 0x5dd40000U, + 0xe93e0000U, + 0x793b0000U, + 0x913c8000U, + 0x853b4000U, + 0xff3aa000U, + 0x143ed000U, + 0x41bcd800U, + 0xc8ff6c00U, + 0x74d8aa00U, + 0xe6ea1100U, + 0x8f035980U, + 0x17801b40U, + 0xbe46f220U, + 0xb7a53d30U, + 0x9275d3b8U, + 0x874b9a74U, + 0x9075d392U, + 0x904b9a79U, + 0xabf5d380U, + 0x880b9a45U, + 0xa955d3aeU, + 0xc6fb9a76U, + 0xf5ddd398U, + 0x706f9a57U, + 0xa7c3d3bdU, + 0x88e49a60U, + 0xb35753a6U, + 0x3dfbda72U, + 0x885bf3b3U, + 0xd2a0a5aU, + 0xb1e5ab92U, + 0x39d52660U, + 0xab3b2199U, + 0x4e3aa776U, + 0x9abe002bU, + 0x857b0038U, + 0x119c8025U, + 0x1ccb4006U, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0x30000000U, + 0xa8000000U, + 0x3c000000U, + 0xe2000000U, + 0x51000000U, + 0x84800000U, + 0xd1400000U, + 0x29a00000U, + 0xe2900000U, + 0xbfa80000U, + 0xb40000U, + 0x5bfa0000U, + 0x2790000U, + 0x5dbf8000U, + 0x685e4000U, + 0xf5eb6000U, + 0x8090d000U, + 0xaea8a800U, + 0x24371400U, + 0xbabc3200U, + 0x83dd5100U, + 0x832e4280U, + 0x35f5c640U, + 0xa4591a20U, + 0x5fe90510U, + 0x7d9490a8U, + 0x502b074cU, + 0x3071108aU, + 0xc99c475fU, + 0x30df0b0U, + 0xc0a6d748U, + 0x82143883U, + 0xb8e81367U, + 0x96172290U, + 0x26e8167fU, + 0x85143214U, + 0xc3695133U, + 0x78d44287U, + 0x78cc65bU, + 0x51e69a21U, + 0xbb7451dU, + 0x6a7ff0bfU, + 0x81bbd774U, + 0x1a59b8a4U, + 0x3ceb5340U, + 0x9011c287U, + 0xa1eb866aU, + 0xbe927a1bU, + 0x8da9d519U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0xb0000000U, + 0x68000000U, + 0x6c000000U, + 0x92000000U, + 0x6d000000U, + 0x94800000U, + 0x51c00000U, + 0x25600000U, + 0xcb500000U, + 0xd9680000U, + 0x1b40000U, + 0x847e0000U, + 0xe7fd0000U, + 0x73bf8000U, + 0xf9984000U, + 0x9f6de000U, + 0xaab15000U, + 0x7bf9c800U, + 0x69b89400U, + 0x689ad600U, + 0x41e95700U, + 0x92726880U, + 0x341ff240U, + 0xc2a9e20U, + 0x6d108330U, + 0x4e4cde88U, + 0xbbc6b56cU, + 0x3c655ebaU, + 0xe9d7f56bU, + 0xaba93e8cU, + 0x2753e547U, + 0x8b6a9697U, + 0x4cb66153U, + 0xa0fa689fU, + 0xde3bf26eU, + 0x3adc9e05U, + 0xa0c98308U, + 0x2b055ebbU, + 0x3f87f573U, + 0xae413e98U, + 0xab27e568U, + 0xd0749690U, + 0x611b6172U, + 0xcade88bU, + 0x1ad7b27cU, + 0x902f7e29U, + 0x7715d313U, + 0xdf4b1685U, + 0x65432142U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0xd0000000U, + 0x98000000U, + 0x9c000000U, + 0xf6000000U, + 0x49000000U, + 0x20800000U, + 0x1400000U, + 0x84a00000U, + 0x88b00000U, + 0x9df80000U, + 0xa7940000U, + 0x1f8a0000U, + 0x440f0000U, + 0x66c88000U, + 0xcca9c000U, + 0xe07f6000U, + 0x5450f000U, + 0x96de800U, + 0x9f9f1400U, + 0x1f455200U, + 0x39a1f900U, + 0xea31d380U, + 0xf7be7cc0U, + 0xb8b23a20U, + 0x95fc2d10U, + 0xc3916198U, + 0xa58db5f4U, + 0x630be186U, + 0x934f75f7U, + 0x1b6e0185U, + 0x2c9d45f6U, + 0x78c60996U, + 0x1d6061c3U, + 0x21535382U, + 0x2fe8bcf3U, + 0xffddda0cU, + 0x6f611d38U, + 0x4251e9adU, + 0xd06951f2U, + 0x4719dbacU, + 0x520358ddU, + 0xd3076034U, + 0xb784f039U, + 0xbcc7e82cU, + 0x5760141dU, + 0x2e55d23cU, + 0xe6c3907U, + 0xda1cb38cU, + 0x80858cd6U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x10000000U, + 0x58000000U, + 0x7c000000U, + 0x2a000000U, + 0x73000000U, + 0xe2800000U, + 0xd6400000U, + 0x58e00000U, + 0x1ef00000U, + 0x11280000U, + 0x30540000U, + 0x673a0000U, + 0x178f0000U, + 0x72468000U, + 0x4ee3c000U, + 0x27f06000U, + 0x90ab1000U, + 0x5c96b800U, + 0x959fa400U, + 0x7b9b7a00U, + 0xe98cb00U, + 0x8d1e9180U, + 0xa6da9c40U, + 0xb8fda220U, + 0x27ac7f10U, + 0xb8135398U, + 0x22ddf344U, + 0xdef849b6U, + 0x56ae284fU, + 0x1d906032U, + 0x181b1008U, + 0x755eb836U, + 0xab3ba42eU, + 0x55897a0aU, + 0x5543cb04U, + 0xb26211b6U, + 0x8cb65c65U, + 0xfcb4217U, + 0x2fa4af27U, + 0x9b958b96U, + 0x3919475cU, + 0xe8dd8ba2U, + 0xfdfd4762U, + 0x8c2f8ba0U, + 0xa7d6477bU, + 0x32fb0b9dU, + 0x64ae874aU, + 0x7297eb8fU, + 0xc0995778U, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0x70000000U, + 0x78000000U, + 0x74000000U, + 0x9e000000U, + 0x67000000U, + 0x17800000U, + 0xb2400000U, + 0xd8e00000U, + 0xc3100000U, + 0xc5880000U, + 0x91b40000U, + 0x8a7e0000U, + 0x992b0000U, + 0xb1418000U, + 0x9962c000U, + 0xfa572000U, + 0x90ecb000U, + 0x61e75800U, + 0x9391ec00U, + 0xf04d5a00U, + 0xf312c300U, + 0x9d8ef680U, + 0x75b5d940U, + 0x1c7d2220U, + 0xf22f9f30U, + 0x4cc4f4b8U, + 0xd226f65cU, + 0x52368ebeU, + 0xf63c856dU, + 0xcec9203fU, + 0x19d7b035U, + 0x7caed823U, + 0x3e072c2dU, + 0x37047a0fU, + 0xff857334U, + 0xce402e93U, + 0x4ae2f551U, + 0x4e115831U, + 0x2b0eec0aU, + 0x5372da13U, + 0xf75b032eU, + 0x309856b3U, + 0x6f3ba97bU, + 0xe4d5a11U, + 0x2412c30dU, + 0x120ef693U, + 0xc3f5d94eU, + 0x229d2209U, + 0x223f9f00U, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0x50000000U, + 0xe8000000U, + 0x24000000U, + 0xc2000000U, + 0x21000000U, + 0xeb800000U, + 0xb0400000U, + 0x29200000U, + 0x5dd00000U, + 0x2a280000U, + 0xcb40000U, + 0x6ada0000U, + 0xf1490000U, + 0x19448000U, + 0x56a04000U, + 0x3796a000U, + 0xbe0bd000U, + 0xb4e36800U, + 0x37b26c00U, + 0xdc5f9a00U, + 0x54899d00U, + 0xff217080U, + 0xe6d3ba40U, + 0xdcaa5220U, + 0x9702110U, + 0xdcbd82a8U, + 0xa9384b54U, + 0xd67cb89aU, + 0x23de0659U, + 0x7ecca038U, + 0xcb02d00cU, + 0xe87e828U, + 0x69c22c31U, + 0x613a00U, + 0x53764d16U, + 0x21b81880U, + 0xecb8d667U, + 0xf139480aU, + 0xea7dfc17U, + 0x7dd8522eU, + 0x51cd2115U, + 0xe78302a7U, + 0xb6410b59U, + 0x3a2698a1U, + 0x2f51967cU, + 0xbdeb680eU, + 0x73d66c07U, + 0xfd2d9a07U, + 0x4c349d11U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0x10000000U, + 0xa8000000U, + 0x24000000U, + 0xde000000U, + 0xd1000000U, + 0x23800000U, + 0xbc00000U, + 0x3d600000U, + 0x85f00000U, + 0x38280000U, + 0x7540000U, + 0x36be0000U, + 0x2f8f0000U, + 0xe4428000U, + 0x6ca04000U, + 0xc792a000U, + 0xf75b3000U, + 0x9b3ee800U, + 0xfd4ccc00U, + 0xaea12600U, + 0x8493ff00U, + 0x9fdbad80U, + 0xac789440U, + 0x916d6e20U, + 0x1a740330U, + 0xd1ec6398U, + 0xc933a744U, + 0x3c9e58aU, + 0xbce06879U, + 0xdd30200fU, + 0xc5cb7000U, + 0x91e4483aU, + 0xbcb3fc0fU, + 0x4d09ce12U, + 0xa404331cU, + 0x1e060bb1U, + 0xb1042b77U, + 0x3386e3aaU, + 0xa3c7e758U, + 0x19654580U, + 0x5bf4584fU, + 0xe92c4820U, + 0x24d7fc0aU, + 0x3d7fce17U, + 0x12ef3316U, + 0x61b28bb6U, + 0x548f6b78U, + 0xc0c0c3a0U, + 0xc1e7974eU, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0x30000000U, + 0x58000000U, + 0x9c000000U, + 0x2a000000U, + 0x87000000U, + 0xde800000U, + 0x40c00000U, + 0x4be00000U, + 0xee300000U, + 0xaa480000U, + 0x7f140000U, + 0x109e0000U, + 0x19ef0000U, + 0x9f038000U, + 0xe287c000U, + 0x3ac66000U, + 0xa4e21000U, + 0xf4b21800U, + 0x5c8b4400U, + 0x99f36e00U, + 0xa72e9300U, + 0x2de48380U, + 0xeb328b40U, + 0x57cf1620U, + 0x6753c730U, + 0xeebbf598U, + 0x79b85c4cU, + 0x6f3b7bb6U, + 0xbbf81f57U, + 0x2e1e0032U, + 0xa92f001dU, + 0xece38039U, + 0xa0b7c03bU, + 0xe28e600eU, + 0xc0f6103dU, + 0x10ac1817U, + 0x82a4442eU, + 0x9390ee21U, + 0xeb59532dU, + 0xf68ae39fU, + 0xdef49b5cU, + 0x19ab0e00U, + 0x5d238300U, + 0xf8d51b86U, + 0x25fe0f65U, + 0xe71a1839U, + 0x16af442fU, + 0xb7a56e2aU, + 0x36159329U, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0x90000000U, + 0x58000000U, + 0x64000000U, + 0xe2000000U, + 0xfb000000U, + 0xc5800000U, + 0x4f400000U, + 0x27a00000U, + 0x5b00000U, + 0x3dd80000U, + 0x3f540000U, + 0x8cca0000U, + 0x8ebb0000U, + 0x8f028000U, + 0x3f87c000U, + 0x3040a000U, + 0x90215000U, + 0xe9f63800U, + 0xbbfa1c00U, + 0x97a6b200U, + 0x6db2c900U, + 0x71db7b80U, + 0x715229c0U, + 0xa9c82a20U, + 0x363d8510U, + 0x1cc1f1b8U, + 0x69e1fce4U, + 0x989763b6U, + 0xc0aaa5c9U, + 0xc96a0020U, + 0x300b000aU, + 0x975a801fU, + 0xdf93c02eU, + 0xc32aa027U, + 0x7f2a5026U, + 0xb92cb806U, + 0x4029dc22U, + 0xeeac121bU, + 0x3c689931U, + 0x308fc3a5U, + 0xf09ff5c1U, + 0x33f63800U, + 0xf4fa1c18U, + 0x826b202U, + 0x2df2c926U, + 0x29fb7b9cU, + 0xa4a229e9U, + 0x94302a32U, + 0xb8998538U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0x90000000U, + 0x18000000U, + 0x54000000U, + 0xce000000U, + 0x85000000U, + 0xc2800000U, + 0xebc00000U, + 0x9a600000U, + 0x6d500000U, + 0xdcb80000U, + 0x1af40000U, + 0x28e0000U, + 0x439d0000U, + 0xec068000U, + 0xca07c000U, + 0x73072000U, + 0x83823000U, + 0xff464800U, + 0xa0a2c400U, + 0xfbb50600U, + 0xdf2eef00U, + 0x9eae2080U, + 0x9eef68c0U, + 0x7cc6e20U, + 0xd83a1b30U, + 0xf8336e88U, + 0xe06e43e4U, + 0x1e09c8a6U, + 0xf5585ce5U, + 0xc0e0001bU, + 0x12900035U, + 0xa8d8003eU, + 0x62a4000bU, + 0x4b60013U, + 0xe6a9002fU, + 0xbae88034U, + 0x61cac01dU, + 0x8139a016U, + 0xb8b1f031U, + 0x14af682aU, + 0xdedf42fU, + 0x344dce2bU, + 0xaf7feb36U, + 0x14920684U, + 0x81deb7caU, + 0x8a2286b9U, + 0x2c7077d5U, + 0x774d26acU, + 0x64f887fbU, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x70000000U, + 0x8000000U, + 0x2c000000U, + 0xa000000U, + 0xf000000U, + 0xf8800000U, + 0x77400000U, + 0x3be00000U, + 0xc0700000U, + 0xd9c80000U, + 0x1ed40000U, + 0x395a0000U, + 0xb1ef0000U, + 0xd0058000U, + 0x58014000U, + 0x3401e000U, + 0x5e039000U, + 0x21015800U, + 0xd186f400U, + 0x8ac39200U, + 0xbb266300U, + 0x74527d80U, + 0x551cab40U, + 0x3c8b2a20U, + 0x3e370710U, + 0x4faab798U, + 0x46633c5cU, + 0xb745a2U, + 0xde88f5bU, + 0xe200003aU, + 0x1300000fU, + 0x9a800024U, + 0x2440000aU, + 0xc160000eU, + 0x94300038U, + 0x10a8000aU, + 0xa6e40019U, + 0x23f2003eU, + 0x180b0001U, + 0xb77800cU, + 0x374a4021U, + 0x4966035U, + 0xa939d03cU, + 0xfc5f3832U, + 0x666b240eU, + 0x4fc6aa1bU, + 0x6ca2472fU, + 0xeb915798U, + 0x61bfac76U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x30000000U, + 0x78000000U, + 0x9c000000U, + 0xd2000000U, + 0x83000000U, + 0xed800000U, + 0x74400000U, + 0x16a00000U, + 0x36100000U, + 0x77280000U, + 0x9af40000U, + 0x469a0000U, + 0xd54f0000U, + 0x2878000U, + 0x13c2c000U, + 0x2de66000U, + 0x5734d000U, + 0x527b3800U, + 0x58f91c00U, + 0xcf3f2a00U, + 0x9cdec100U, + 0xe2e9fe80U, + 0x4217ee40U, + 0x512a7220U, + 0x7ff70d10U, + 0x2e1fec98U, + 0xf98b334cU, + 0x40e126beU, + 0xfbb3e277U, + 0x60bd800cU, + 0x39dc03cU, + 0xadc9e03dU, + 0x6421036U, + 0x85a7582fU, + 0xf392cc0aU, + 0xd76b9212U, + 0xba511d1bU, + 0xbd8ab4afU, + 0x1ee2ff65U, + 0x82b734b8U, + 0xda3f3f7fU, + 0xac5ed4bfU, + 0x22d2f5aU, + 0x9a718ca3U, + 0xde5be35cU, + 0x91281eaaU, + 0x5ff1fe6dU, + 0x7e1f2a0eU, + 0xb18ec115U, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0x90000000U, + 0x98000000U, + 0xfc000000U, + 0xf6000000U, + 0x83000000U, + 0xcf800000U, + 0x83400000U, + 0x39200000U, + 0x9a700000U, + 0x61f80000U, + 0x7a140000U, + 0x8faa0000U, + 0x411b0000U, + 0x26828000U, + 0xe9c1c000U, + 0x8ee46000U, + 0x8397f000U, + 0x2fef3800U, + 0xc7ba2c00U, + 0x37b1b200U, + 0xd51ead00U, + 0x64813580U, + 0x18c49cc0U, + 0x5862ea20U, + 0x22577110U, + 0x250dbfb8U, + 0xde2f1de4U, + 0xf55aed86U, + 0xa22780efU, + 0xe9f08025U, + 0xf4bec014U, + 0x5034e02dU, + 0x4259303bU, + 0x5fa3d815U, + 0x93b71c39U, + 0x7f186a16U, + 0x6182b11eU, + 0x5c43df9eU, + 0x70a3edd6U, + 0x923755bfU, + 0xf35c6cd2U, + 0x69255200U, + 0xa2779d1aU, + 0xedfaedbfU, + 0x841780c0U, + 0x68a8801cU, + 0x849ac020U, + 0xd0c6e007U, + 0x9c663033U, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0xf0000000U, + 0xc8000000U, + 0x8c000000U, + 0xf6000000U, + 0x2d000000U, + 0xaa800000U, + 0xc9400000U, + 0x3ca00000U, + 0xfd100000U, + 0xdcc80000U, + 0x75f40000U, + 0xaffe0000U, + 0xc96b0000U, + 0x78658000U, + 0x71774000U, + 0x3fbce000U, + 0xd4a7000U, + 0xeb314800U, + 0x289f8400U, + 0x759c1200U, + 0xd71e1900U, + 0x725bd680U, + 0x48f81940U, + 0x50efba20U, + 0xaaa0ed30U, + 0xe0130cb8U, + 0x5e4ec47cU, + 0xc0b49e92U, + 0xad5c9d53U, + 0x957e2825U, + 0xf82db407U, + 0xe0c23a20U, + 0x663ad2dU, + 0xf071ec80U, + 0x733fb457U, + 0xd1085680U, + 0x39105954U, + 0x66c8da16U, + 0x4ef6dd33U, + 0xd87b24acU, + 0x62ac7061U, + 0x18524bcU, + 0x46c77074U, + 0x3360a480U, + 0xef03051U, + 0xf87c4483U, + 0x72aa4048U, + 0x39850c86U, + 0x2c1c45dU, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0x50000000U, + 0xe8000000U, + 0x24000000U, + 0x5e000000U, + 0xe3000000U, + 0x19800000U, + 0xd8c00000U, + 0xea200000U, + 0x63900000U, + 0x46f80000U, + 0xda740000U, + 0xb2ca0000U, + 0x59dd0000U, + 0x77648000U, + 0xa3744000U, + 0x264aa000U, + 0xe39b3000U, + 0xc0077800U, + 0x60001c00U, + 0x7000ae00U, + 0xb8054500U, + 0xcc037680U, + 0x7a0070c0U, + 0xbd077620U, + 0xfa836910U, + 0xc1402088U, + 0x32e169d4U, + 0x89b60e9aU, + 0x25696cd9U, + 0x9c89583fU, + 0x68bf6c3cU, + 0xeb157634U, + 0x2eba692bU, + 0xd416a097U, + 0x853c29e9U, + 0xc5d22ea0U, + 0x239b1ce8U, + 0xa0000038U, + 0x1000003cU, + 0xc8000004U, + 0x7400001bU, + 0xb6000019U, + 0xc7000029U, + 0x47800010U, + 0x3bc00028U, + 0xf3a00034U, + 0xbb500010U, + 0xacd80021U, + 0xb9e40010U, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0xf0000000U, + 0xf8000000U, + 0x24000000U, + 0x8e000000U, + 0x75000000U, + 0x8e800000U, + 0xb1c00000U, + 0x68a00000U, + 0x59b00000U, + 0xc4180000U, + 0x2dd40000U, + 0xf8a0000U, + 0x67bb0000U, + 0xd7e18000U, + 0xc0d2c000U, + 0x1509a000U, + 0x40783000U, + 0x1e434800U, + 0x61e42400U, + 0x31d2d600U, + 0x58cd900U, + 0x8cb9d780U, + 0x2463bbc0U, + 0x23923e20U, + 0x666bcd10U, + 0x8a69c9b8U, + 0x786986fcU, + 0xb7689f9eU, + 0xcae89fd9U, + 0x5cab683bU, + 0xa14ed431U, + 0xda983e25U, + 0xd410cd19U, + 0x5b284987U, + 0x640b46c2U, + 0x10f93f91U, + 0x3284afeaU, + 0xabc22022U, + 0x8ba1f00fU, + 0x76336818U, + 0x8d5ad418U, + 0xa5b23e2aU, + 0x3e1bcd16U, + 0x3ed1c9b1U, + 0xd80d86c0U, + 0xafa9fa5U, + 0xd1879fcbU, + 0x8440e812U, + 0xc2e71430U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0x10000000U, + 0x28000000U, + 0x4c000000U, + 0x9e000000U, + 0x19000000U, + 0x96800000U, + 0x67c00000U, + 0xe9e00000U, + 0x28500000U, + 0x65980000U, + 0x27740000U, + 0x86ae0000U, + 0xd77d0000U, + 0xf6a28000U, + 0x67764000U, + 0x66abe000U, + 0xe7793000U, + 0xcea1e800U, + 0x3752400U, + 0xb4ae8600U, + 0x607ef300U, + 0x4127e880U, + 0xf236cdc0U, + 0x3a8a8e20U, + 0xa1cfe730U, + 0xcea0688U, + 0xb0db5ac4U, + 0x9b5000aaU, + 0xf01ae9e3U, + 0x2d30880fU, + 0x210e5432U, + 0x9a8a8e27U, + 0x71cfe70eU, + 0x4ea0697U, + 0xecdb5adfU, + 0x2d5000bbU, + 0xa51ae9e6U, + 0x25b08816U, + 0x5fce5412U, + 0xe5ea8e1cU, + 0x3e5fe70dU, + 0x8892068cU, + 0xe3ff5ad0U, + 0xce66008dU, + 0x5513e9c3U, + 0x55bc083eU, + 0xefc5141fU, + 0x75e3ee1bU, + 0xbe509711U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0x30000000U, + 0x88000000U, + 0xcc000000U, + 0xc6000000U, + 0xb9000000U, + 0xdf800000U, + 0xac00000U, + 0x41600000U, + 0xdb00000U, + 0xd680000U, + 0x43140000U, + 0x303e0000U, + 0x2c0d0000U, + 0x9ea38000U, + 0xa5534000U, + 0x1b1ee000U, + 0x2c9ff000U, + 0x3a5de800U, + 0x253dac00U, + 0xe5892e00U, + 0xb567ff00U, + 0x4fb26780U, + 0x9e6ea640U, + 0xd3942620U, + 0xd478a330U, + 0x742d2188U, + 0x1eb3b54cU, + 0x5def8f82U, + 0x87530a43U, + 0x581d0819U, + 0x241f5c12U, + 0xaa1f461dU, + 0xff1d133dU, + 0xd69ba983U, + 0xed5ba95eU, + 0xbfb829a5U, + 0x7ec8e94cU, + 0x8bc6c983U, + 0x1ae71976U, + 0x2d7321beU, + 0x30eb575U, + 0xa0240fb2U, + 0x24144a71U, + 0xe2bde829U, + 0x5b4dac08U, + 0x56012e24U, + 0xc103ff1fU, + 0xbb8467acU, + 0x30c7a669U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0xd0000000U, + 0xe8000000U, + 0x34000000U, + 0x66000000U, + 0x5d000000U, + 0x3800000U, + 0xf8c00000U, + 0x5ea00000U, + 0xbc900000U, + 0xd6880000U, + 0xdbf40000U, + 0x853e0000U, + 0x822d0000U, + 0xb0648000U, + 0x47304000U, + 0x959e2000U, + 0x77bef000U, + 0xd36e0800U, + 0xd1018c00U, + 0x79879e00U, + 0xd7c0c100U, + 0xb6225e80U, + 0xf2d65740U, + 0x4769b620U, + 0xa702bd30U, + 0xec874888U, + 0x30435a74U, + 0xc0e4569aU, + 0xc573db7dU, + 0x9e782831U, + 0xd44b7c13U, + 0x6a579632U, + 0xf12c4d07U, + 0xcae140b4U, + 0x1276d675U, + 0x8afdc88cU, + 0x180e1a6fU, + 0x28b6f69eU, + 0xe7596b75U, + 0x3e1e001cU, + 0x5b7d0001U, + 0x1bcc801aU, + 0x8944025U, + 0x7088201aU, + 0xa6f7f021U, + 0x56bc8819U, + 0x92e8cc3fU, + 0xdac33e1eU, + 0x9da37132U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0xf0000000U, + 0x38000000U, + 0x64000000U, + 0x96000000U, + 0x11000000U, + 0x4d800000U, + 0xf5400000U, + 0x99e00000U, + 0x4cd00000U, + 0x3e580000U, + 0x1d740000U, + 0x2cea0000U, + 0x19bf0000U, + 0xaca18000U, + 0xf530c000U, + 0xe28fa000U, + 0xeb2ef000U, + 0x6d9c6800U, + 0xc750fc00U, + 0x321d1200U, + 0x5176b00U, + 0xaf78c080U, + 0x6503c7c0U, + 0x5384da20U, + 0xd8466710U, + 0xd6603a98U, + 0x69090fcU, + 0x9f3ca8aeU, + 0x7f673bc9U, + 0x6f13c81dU, + 0x9c7e0c28U, + 0x7817a05U, + 0x56479718U, + 0x3365d28dU, + 0x1514acceU, + 0x277c1a99U, + 0x5905a0eeU, + 0x5184e086U, + 0x6746f7c4U, + 0xeee49234U, + 0x2853ab1cU, + 0xe29d608fU, + 0xe7d237daU, + 0xe8d93223U, + 0x26b65b3aU, + 0x7aca8897U, + 0x5d4d0bd0U, + 0x9b0a001cU, + 0x606f0032U, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0x30000000U, + 0xd8000000U, + 0xb4000000U, + 0x8e000000U, + 0x49000000U, + 0x70800000U, + 0xbec00000U, + 0x2f200000U, + 0x47300000U, + 0x59780000U, + 0x19d40000U, + 0x34ee0000U, + 0xbbd90000U, + 0x7ea38000U, + 0x2575c000U, + 0x52992000U, + 0x86c73000U, + 0xcb272800U, + 0x81375400U, + 0x4c7a4e00U, + 0x8b527500U, + 0xf92feb80U, + 0x237b34c0U, + 0xbed24620U, + 0x9d6f1130U, + 0x9d9f0da8U, + 0x8342d5ccU, + 0x77654396U, + 0x8bd0a0ddU, + 0xffeaa82bU, + 0x285b942eU, + 0x9fe0ee02U, + 0xe110850eU, + 0xcec9e39eU, + 0xce6f50eeU, + 0xda192009U, + 0x7c07300bU, + 0x12072832U, + 0xb07541cU, + 0x33824e34U, + 0xd1467533U, + 0x1c61ebacU, + 0x285234dbU, + 0xc6a9c61cU, + 0x583ed118U, + 0x8db02dbbU, + 0xe0b8e5d7U, + 0xaf77eb98U, + 0x8d9f34d2U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x10000000U, + 0x8000000U, + 0x9c000000U, + 0x8a000000U, + 0x71000000U, + 0xe800000U, + 0x5cc00000U, + 0x83600000U, + 0x31900000U, + 0x75280000U, + 0x51340000U, + 0x865a0000U, + 0x50cf0000U, + 0x90668000U, + 0x82114000U, + 0xc56f6000U, + 0x73909000U, + 0xb82d2800U, + 0xa5b7c400U, + 0xb39fbe00U, + 0x4928a700U, + 0xeb317e80U, + 0x8f584440U, + 0xda4ff620U, + 0xd2a4f310U, + 0x66776898U, + 0x17d6744U, + 0x25fad6a2U, + 0x383ec077U, + 0xcddf281aU, + 0x248cc408U, + 0xccc33e19U, + 0xcb66e734U, + 0xcd909e80U, + 0xef2d9477U, + 0x2837be1cU, + 0x14dca70fU, + 0x860b7e9aU, + 0x6207444bU, + 0xbd01763bU, + 0xec81b30fU, + 0xa1c208b7U, + 0xfe2f744U, + 0x80517e8aU, + 0x72c8447dU, + 0x4d67f603U, + 0x7e90f32aU, + 0x6cad68a1U, + 0xe0726776U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0xd0000000U, + 0xb8000000U, + 0xf4000000U, + 0x36000000U, + 0xb7000000U, + 0x99800000U, + 0x6bc00000U, + 0xa8200000U, + 0xac500000U, + 0x7df80000U, + 0x92b40000U, + 0xbd0a0000U, + 0x1c5f0000U, + 0xad208000U, + 0xfcd4c000U, + 0xc4ba2000U, + 0x62d6f000U, + 0x1fbdd800U, + 0x8955dc00U, + 0x9d7bd600U, + 0x43f6f500U, + 0x169d080U, + 0x7cee80c0U, + 0xb92e2e20U, + 0xe20ed910U, + 0x89dd5e98U, + 0x64e269f4U, + 0x5f4888eU, + 0xfe6f9cedU, + 0x196fd835U, + 0x78eedc09U, + 0x87295610U, + 0xc9093513U, + 0x6a597089U, + 0x7a23b0fbU, + 0xb5515614U, + 0x177d3503U, + 0x3ef370bbU, + 0x85ecb0c2U, + 0x43a9d610U, + 0x964df51dU, + 0x953b5094U, + 0xb51140e2U, + 0x7d9e8e2bU, + 0x3803e92dU, + 0xb4022682U, + 0x560185c5U, + 0x6702a681U, + 0x218545f6U, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0x50000000U, + 0x28000000U, + 0xec000000U, + 0xea000000U, + 0xc5000000U, + 0x97800000U, + 0xb4400000U, + 0x6da00000U, + 0x2d300000U, + 0x32080000U, + 0x3540000U, + 0x56de0000U, + 0xb9cb0000U, + 0xf6b08000U, + 0x1c484000U, + 0x33f6e000U, + 0x786a9000U, + 0x11830800U, + 0x5b400c00U, + 0xdf229a00U, + 0x5ef41900U, + 0xc3ee6780U, + 0xafc21740U, + 0xa3e7f220U, + 0x4d96c530U, + 0x34b915b8U, + 0x471c9254U, + 0x112807aaU, + 0xbfa0c74bU, + 0xc321a22U, + 0x138c5915U, + 0xe0108797U, + 0xadfc8742U, + 0xb13afa0bU, + 0x325dc931U, + 0xd0b0fabU, + 0x59d0cb48U, + 0x29188001U, + 0xf22c4003U, + 0xb720e028U, + 0x92f59029U, + 0x99ed883aU, + 0x12c34c26U, + 0xf064fa0dU, + 0xffd6c905U, + 0x761b8fafU, + 0x38a88b63U, + 0xe66016U, + 0x6512d036U, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0x10000000U, + 0xd8000000U, + 0x84000000U, + 0xc6000000U, + 0xed000000U, + 0xf2800000U, + 0xb1c00000U, + 0x53200000U, + 0xc0500000U, + 0x9f880000U, + 0x40340000U, + 0xa53e0000U, + 0x68c90000U, + 0x6cd28000U, + 0x274dc000U, + 0x9795a000U, + 0xf1ae7000U, + 0xae48800U, + 0x1f730400U, + 0x65df1600U, + 0x60bac500U, + 0xe48ee880U, + 0xe7b7a340U, + 0xd27cbe20U, + 0x842a7130U, + 0x4ea0d6a8U, + 0xc8101244U, + 0xd2e9c896U, + 0x58041351U, + 0x44059639U, + 0x6603050fU, + 0xfd0548a2U, + 0x2a80d349U, + 0x35c2b633U, + 0x9520b51aU, + 0x2d546082U, + 0x6d0da743U, + 0xf1f12817U, + 0xf61d7417U, + 0xa89b9e31U, + 0xf359c116U, + 0x6779fea1U, + 0x32a9667bU, + 0x996456b5U, + 0x6630d26fU, + 0x3838e8b4U, + 0xf24aa365U, + 0x91103e1dU, + 0xee6eb13dU, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x10000000U, + 0x68000000U, + 0x24000000U, + 0xce000000U, + 0xc9000000U, + 0xb800000U, + 0xedc00000U, + 0xfda00000U, + 0xa500000U, + 0x41680000U, + 0xf9b40000U, + 0x3f5a0000U, + 0xe12f0000U, + 0x54d68000U, + 0x52a4000U, + 0xbad6a000U, + 0xbc2fb000U, + 0xc9532800U, + 0x1ded8c00U, + 0xdef31600U, + 0x10ba5900U, + 0x5d1d5080U, + 0xf4b6040U, + 0x72201e20U, + 0x19922510U, + 0x6dcbce98U, + 0xa4630544U, + 0x11f570baU, + 0xc63a9059U, + 0x6d5f960bU, + 0x8a2f1926U, + 0xc557080U, + 0x9c6a9076U, + 0x24379636U, + 0x479b1929U, + 0x950f70b9U, + 0x90459073U, + 0xb5611608U, + 0x66715918U, + 0xd9f9d091U, + 0xcbfa204bU, + 0xc0fa3e09U, + 0x8878d50bU, + 0x7938c6bcU, + 0xc3db794aU, + 0xf66beea4U, + 0x6336f576U, + 0xe518f8b0U, + 0x634cac77U, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0xd0000000U, + 0x28000000U, + 0x74000000U, + 0x6e000000U, + 0x55000000U, + 0x6e800000U, + 0xa9400000U, + 0x4c600000U, + 0xe1d00000U, + 0x8eb80000U, + 0xa2740000U, + 0x4e4e0000U, + 0xb7790000U, + 0x5a548000U, + 0x897a4000U, + 0xe7542000U, + 0x33fab000U, + 0xf0114800U, + 0x29b2400U, + 0xb44d200U, + 0x4b609f00U, + 0xb0560080U, + 0x8a7cd4c0U, + 0x20d53a20U, + 0x3e3b4b30U, + 0x637baa8U, + 0xe0addff4U, + 0xcdeea0aaU, + 0xd78824edU, + 0x9f5e5213U, + 0xb563df11U, + 0xad56a0b9U, + 0xe0fc24c3U, + 0x1f905222U, + 0x7b5adf00U, + 0x9362208bU, + 0xfc5664e3U, + 0x187c7231U, + 0xbfd46f12U, + 0x43bd6895U, + 0xe0f440d3U, + 0x50c2038U, + 0x9c1eb00eU, + 0x9a074819U, + 0xfb062416U, + 0x9b86521fU, + 0x17c7df23U, + 0xcd20a0b2U, + 0xd9b124eeU, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0x10000000U, + 0x38000000U, + 0xf4000000U, + 0x12000000U, + 0xe9000000U, + 0x82800000U, + 0x8c400000U, + 0x77200000U, + 0xfb700000U, + 0x4c580000U, + 0xbe940000U, + 0xe24a0000U, + 0x799d0000U, + 0x4e768000U, + 0x50dac000U, + 0x1dd22000U, + 0xfcebd000U, + 0x5d2c2800U, + 0x8fcda400U, + 0xfc5d7a00U, + 0xd690c500U, + 0xe4d7d80U, + 0x8f9911c0U, + 0x8d75f220U, + 0xcf5c7110U, + 0x1160f88U, + 0xee8ba0c4U, + 0x53fbddaeU, + 0xb4a101edU, + 0x79b77a2cU, + 0x713dc52eU, + 0xd9c3fda6U, + 0x6e7d1daU, + 0x7195d237U, + 0xfbcea129U, + 0xae5ea7bfU, + 0x1f95c4f2U, + 0x9cc807abU, + 0x3bddd4eeU, + 0xe528fb1U, + 0x262860ebU, + 0xa44d7daaU, + 0xd29911c4U, + 0x3df5f203U, + 0xba1c7104U, + 0xccb60f9aU, + 0x6dbba0d1U, + 0x7a83ddbcU, + 0x184501ebU, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0xd0000000U, + 0x8000000U, + 0x44000000U, + 0xce000000U, + 0x47000000U, + 0x6f800000U, + 0x35400000U, + 0x68200000U, + 0x6d300000U, + 0xdab80000U, + 0x11d40000U, + 0x6dee0000U, + 0xc1ff0000U, + 0x2ef48000U, + 0x75d4000U, + 0xba03a000U, + 0x9106b000U, + 0x4835800U, + 0xc1ac00U, + 0xdc65a200U, + 0x69902500U, + 0x234fcf80U, + 0xd10a06c0U, + 0x16a9da20U, + 0x2ede7930U, + 0x4c449598U, + 0x38a23ff4U, + 0xcbf46fa2U, + 0xd5d8b6e1U, + 0xd1c4820bU, + 0x78e0d515U, + 0xd955b781U, + 0x272f5ae8U, + 0xf498000bU, + 0xbfe4002bU, + 0x76d60006U, + 0x726b002cU, + 0x4cba8018U, + 0xdad24037U, + 0xe86f2014U, + 0xadbff00fU, + 0x6656f818U, + 0x74ac1c1dU, + 0xf3dc7a0bU, + 0xc2c3c92aU, + 0xb1654da4U, + 0x3f15d3fbU, + 0xe688ed9cU, + 0xafec63d0U, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0xf0000000U, + 0xc8000000U, + 0xd4000000U, + 0x72000000U, + 0xbb000000U, + 0xc800000U, + 0xadc00000U, + 0x96e00000U, + 0xff900000U, + 0x59e80000U, + 0xa340000U, + 0x8e5e0000U, + 0xb2290000U, + 0xc5d58000U, + 0x5e4d4000U, + 0xa6802000U, + 0x9ac45000U, + 0xa4603800U, + 0x7752d400U, + 0x168d6600U, + 0x49e3ab00U, + 0x29176680U, + 0xcb2bce40U, + 0xda50fe20U, + 0x7b0c6f30U, + 0xd7a418a8U, + 0x54b7e17cU, + 0xa89f4692U, + 0x404b9e45U, + 0xb386c614U, + 0x2b43bb22U, + 0x3c22fe99U, + 0x33f00a62U, + 0xabd802bU, + 0xa6b94014U, + 0xa8be2021U, + 0xe5bd503bU, + 0x183db837U, + 0x1e7b940dU, + 0x8fdb461eU, + 0x826afb04U, + 0x574de9fU, + 0x8795a63U, + 0xeede383eU, + 0xb1ebd429U, + 0xee30e623U, + 0x945aeb1dU, + 0x2d29469bU, + 0x73569e50U, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0x10000000U, + 0x38000000U, + 0x7c000000U, + 0xae000000U, + 0x81000000U, + 0xf6800000U, + 0x81c00000U, + 0xc2600000U, + 0x48300000U, + 0x90e80000U, + 0x23140000U, + 0x727a0000U, + 0x6b2b0000U, + 0xca768000U, + 0x7fccc000U, + 0xb3806000U, + 0xe5463000U, + 0x8ca12800U, + 0xedd1a400U, + 0x979cb600U, + 0x8c5a4f00U, + 0x753a8b80U, + 0x408b9240U, + 0xe4237e20U, + 0x65151b10U, + 0x177d75b8U, + 0xbfad4944U, + 0x4cb2ebaeU, + 0x8e29a24fU, + 0x5ef05633U, + 0x190bbf34U, + 0x5265438bU, + 0x3034c67bU, + 0xcec8035U, + 0x9d17c03dU, + 0xcb7ee00aU, + 0xe1aef00cU, + 0xe5b3481fU, + 0x3ca89437U, + 0xd311e0dU, + 0xf46c2b25U, + 0x6dd0dda9U, + 0xd79b2d4bU, + 0x6c58bd9dU, + 0x65391d7cU, + 0x788b9587U, + 0x9827b959U, + 0xcb13a398U, + 0x967e3643U, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0xf0000000U, + 0xa8000000U, + 0x44000000U, + 0x2e000000U, + 0x1d000000U, + 0x9800000U, + 0x3fc00000U, + 0x73e00000U, + 0x6ff00000U, + 0x60a80000U, + 0xdc540000U, + 0xf27a0000U, + 0xe36d0000U, + 0xddb18000U, + 0x628e4000U, + 0xd40a000U, + 0xaca1b000U, + 0x8c568800U, + 0xea7c9c00U, + 0x2f692600U, + 0x47b71b00U, + 0xf988bd80U, + 0x5dc30c40U, + 0xb4e68e20U, + 0xdd707710U, + 0xffedb388U, + 0x1ff43b7cU, + 0x88a81d8aU, + 0xb852bc41U, + 0x2c780623U, + 0x5668eb2bU, + 0x903695a0U, + 0x734a2062U, + 0x63a3201dU, + 0xcad6f01dU, + 0xd33da819U, + 0x45ce6c03U, + 0xb2e68e08U, + 0xc470773dU, + 0xf86db3b8U, + 0xcd343b73U, + 0x5ac81d85U, + 0xac62bc7bU, + 0x1130061cU, + 0xf8cceb2dU, + 0xb649585U, + 0x73b32078U, + 0x3f88a023U, + 0x24c5b038U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x90000000U, + 0x88000000U, + 0x84000000U, + 0xbe000000U, + 0x81000000U, + 0x57800000U, + 0x73400000U, + 0x23e00000U, + 0xa4900000U, + 0x48a80000U, + 0xa5b40000U, + 0x819a0000U, + 0x7fef0000U, + 0x18528000U, + 0x540d4000U, + 0x78c7a000U, + 0xc2a73000U, + 0xcc776800U, + 0x9cbfec00U, + 0x44da2200U, + 0x190d8b00U, + 0x3544f280U, + 0x7ee14840U, + 0x21106a20U, + 0x10ec1710U, + 0x66d41898U, + 0x4cb1f64U, + 0x8e635282U, + 0xc8d67871U, + 0x4dcf0217U, + 0x3de7fb14U, + 0x95943aafU, + 0x67299459U, + 0x4af52025U, + 0x107a7038U, + 0x6078c830U, + 0x387cdc31U, + 0x547f4a1fU, + 0xfe79670bU, + 0x497e50b3U, + 0x1bfa8375U, + 0x813bb899U, + 0x50982f4aU, + 0x806e3aa5U, + 0x1f169470U, + 0xd1efa001U, + 0x5153301fU, + 0xe78d6815U, + 0x2580ec32U, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0x70000000U, + 0xb8000000U, + 0x4c000000U, + 0x7e000000U, + 0xd1000000U, + 0x7c800000U, + 0x91c00000U, + 0xaba00000U, + 0x7f700000U, + 0x45880000U, + 0x2b940000U, + 0x1f9e0000U, + 0xf490000U, + 0xdfb18000U, + 0x82aec000U, + 0xad20e000U, + 0x75b3b000U, + 0xd1ac2800U, + 0x66a5f400U, + 0x75f23600U, + 0x514f5100U, + 0xbeb0e180U, + 0xe62eb740U, + 0xe77e20U, + 0x1813d530U, + 0x33d81fa8U, + 0x21aaa25cU, + 0x1ea6018eU, + 0x99f00763U, + 0x5f4cd617U, + 0xd7b5e118U, + 0xd6ad4999U, + 0xef25836bU, + 0x62b5a83bU, + 0x302f3408U, + 0xf5e4d639U, + 0x9e91e106U, + 0xf91b499cU, + 0x1588836bU, + 0x23922833U, + 0x4b9cf431U, + 0x4d4bb60aU, + 0xc8b5912cU, + 0x632e0180U, + 0x3e640776U, + 0x9ed2d62fU, + 0x79fce127U, + 0xcd9cc980U, + 0xb04b4346U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0x50000000U, + 0x28000000U, + 0x4c000000U, + 0x9e000000U, + 0xf1000000U, + 0xe5800000U, + 0x58c00000U, + 0xb5e00000U, + 0xcf100000U, + 0x71b80000U, + 0xc5b40000U, + 0xd48e0000U, + 0xf67f0000U, + 0xdcd08000U, + 0xa2dc4000U, + 0xe8e7e000U, + 0x24913000U, + 0x907fa800U, + 0x89d73c00U, + 0xf55efe00U, + 0x8f206b00U, + 0xadf3e280U, + 0xae292cc0U, + 0x8b4e3620U, + 0xbb1e2730U, + 0x835498U, + 0xb7444bd4U, + 0xd62202aaU, + 0xc4731ce3U, + 0x8ef1e1fU, + 0x9faa5b18U, + 0xb98acaabU, + 0x65f950d1U, + 0x5911a820U, + 0x3cb83c2cU, + 0xa6367e1aU, + 0x49482b0fU, + 0x5c1a02abU, + 0x68071ccbU, + 0xec011e01U, + 0xae055b26U, + 0x89024ab2U, + 0x818110c7U, + 0x8ac04821U, + 0xdae20c27U, + 0xdb975613U, + 0xccfc571bU, + 0x28939cb3U, + 0xae7a07f8U, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0x90000000U, + 0xa8000000U, + 0xa4000000U, + 0xc2000000U, + 0x77000000U, + 0x40800000U, + 0xc0400000U, + 0xc0a00000U, + 0xda700000U, + 0xf1e80000U, + 0x25140000U, + 0x1ffa0000U, + 0x846b0000U, + 0x92d28000U, + 0xbf984000U, + 0xcefaa000U, + 0xd1e9d000U, + 0x1512d800U, + 0xc7f8b400U, + 0x18696a00U, + 0x5cd55900U, + 0xae99a580U, + 0x3b788040U, + 0x26299220U, + 0x55777d10U, + 0x1d6a37b8U, + 0xf354fd64U, + 0x5259258aU, + 0x659fc079U, + 0x85fbb228U, + 0x2f6ded29U, + 0xfc50cf82U, + 0xfeddd97dU, + 0x53d8378aU, + 0x585bfd52U, + 0x6699a584U, + 0x4f788050U, + 0xac299215U, + 0x16777d3aU, + 0x37ea378aU, + 0xe014fd40U, + 0x107925a2U, + 0x8afc048U, + 0xf433b22eU, + 0x1049ed10U, + 0xd2e2cf9fU, + 0x85d2d94eU, + 0x2f18b7acU, + 0x46bcbd71U, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0xb0000000U, + 0x48000000U, + 0x74000000U, + 0x46000000U, + 0xff000000U, + 0x46800000U, + 0xea400000U, + 0xdc600000U, + 0x2900000U, + 0x2b880000U, + 0x99340000U, + 0xefba0000U, + 0xd10b0000U, + 0x1738000U, + 0x6adf4000U, + 0xda1d2000U, + 0xce3bf000U, + 0xb1cf1800U, + 0xad572400U, + 0xc9285a00U, + 0x44844f00U, + 0x5b412280U, + 0xf1e3c540U, + 0x5853e220U, + 0xaaacdb10U, + 0x7540c0b8U, + 0x6ae01e6cU, + 0x40d2a2b2U, + 0x33ec854dU, + 0x95a6c209U, + 0x4f332b03U, + 0x48bdd8bbU, + 0xfb883a4bU, + 0x21337894U, + 0x33bc8a72U, + 0x53094092U, + 0xf0745e5fU, + 0xa75c0297U, + 0x30d8356fU, + 0x71cfa26U, + 0x29bbff22U, + 0x6e089aadU, + 0xa7f45155U, + 0x309b8012U, + 0x4e7b400dU, + 0xb8af2001U, + 0xdc44f037U, + 0xcb669809U, + 0x60136411U, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0x10000000U, + 0x68000000U, + 0xcc000000U, + 0x7a000000U, + 0x9d000000U, + 0x58800000U, + 0xd3c00000U, + 0xe4a00000U, + 0xdd300000U, + 0x8e80000U, + 0x53d40000U, + 0x983e0000U, + 0x786b0000U, + 0x6c128000U, + 0xf69a4000U, + 0x405de000U, + 0x987a1000U, + 0xc08cc800U, + 0xdbc2f400U, + 0xf8a36600U, + 0x2f33a900U, + 0x49ecc380U, + 0x1957e440U, + 0x1afece20U, + 0xbe4a0d30U, + 0xffe40db8U, + 0x4252e944U, + 0x1d7e43baU, + 0xec0da443U, + 0x36032e06U, + 0x27001d13U, + 0x2580c5b4U, + 0x9b441d43U, + 0x5f63259dU, + 0xf5950d53U, + 0xafdd6d92U, + 0xc63db973U, + 0x936beb8bU, + 0x3390005aU, + 0xf0dde03cU, + 0x47ba103eU, + 0xbe2cc81eU, + 0x8bf2f408U, + 0xc0cb6626U, + 0x6327a902U, + 0x4f72c386U, + 0x210ce460U, + 0x26844e19U, + 0xc8c44d2fU, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0xf0000000U, + 0xa8000000U, + 0x34000000U, + 0x12000000U, + 0x37000000U, + 0xc6800000U, + 0x4c00000U, + 0xbae00000U, + 0x4e700000U, + 0xe2180000U, + 0x1dd40000U, + 0xb2ca0000U, + 0xa9d0000U, + 0xb8118000U, + 0x63ae4000U, + 0x75ab2000U, + 0x98ac5000U, + 0x8d2a5800U, + 0x56f8400U, + 0x104cce00U, + 0x45e3b00U, + 0x89f09180U, + 0x3d5ba9c0U, + 0x1e763620U, + 0xfa1eaf10U, + 0xa1d4a788U, + 0x64cc06fcU, + 0x8799118aU, + 0x7d91e9ddU, + 0xb3ef162cU, + 0xfc8bff21U, + 0xaabd7f93U, + 0x2584c2f0U, + 0x40457fa0U, + 0xf120c2c3U, + 0x5e177fa5U, + 0x26a9c2e7U, + 0x542cffb1U, + 0x2ea82f1U, + 0xaf0e5fbeU, + 0xd7fc92e0U, + 0x992527beU, + 0xa1246ceU, + 0xe4aa31b8U, + 0x3b29b9e5U, + 0x586f4e16U, + 0x8dc97b06U, + 0x481831b1U, + 0x26d0b9c3U, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0x70000000U, + 0xc8000000U, + 0x94000000U, + 0x6a000000U, + 0xed000000U, + 0x9f800000U, + 0x31400000U, + 0x21a00000U, + 0x4b500000U, + 0x2e680000U, + 0x13340000U, + 0x1f5a0000U, + 0x356b0000U, + 0x3fb58000U, + 0xa69b4000U, + 0xef0c2000U, + 0xa7809000U, + 0x2d408800U, + 0x3fa78c00U, + 0xbc507200U, + 0x94e87900U, + 0x29f4dc80U, + 0x65bfcc40U, + 0xb29b5a20U, + 0xc50b2510U, + 0xaa8786b8U, + 0xc2c0e95cU, + 0xc6e6dc92U, + 0x9f0cc75U, + 0xb5bcda02U, + 0xea9f6537U, + 0xe90c26adU, + 0x9c843975U, + 0xd1c5f480U, + 0xde67905cU, + 0x4a35802eU, + 0x3adb403fU, + 0xb12c2022U, + 0xad90902aU, + 0xea888824U, + 0xf3c38c21U, + 0xe762720aU, + 0x5fb77917U, + 0x969b5cacU, + 0xc70f8c75U, + 0x4382fa38U, + 0x8f40f523U, + 0x46a32e8eU, + 0x49d3f56aU, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0xf0000000U, + 0xb8000000U, + 0x44000000U, + 0x46000000U, + 0xf7000000U, + 0xa1800000U, + 0xc9c00000U, + 0x1d200000U, + 0xe6100000U, + 0x89b80000U, + 0x4a740000U, + 0xa1ca0000U, + 0x4ab90000U, + 0x55f18000U, + 0x7b0ac000U, + 0x401ca000U, + 0x35267000U, + 0xa175800U, + 0x63bf9c00U, + 0xf7758600U, + 0x4d4fbd00U, + 0xd7fd6280U, + 0x9196e2c0U, + 0x1f7dfe20U, + 0x5ad19110U, + 0xc4189ca8U, + 0x932373fcU, + 0xad17628eU, + 0x8a3fe2c1U, + 0xc2b47e19U, + 0x526f5111U, + 0x80ee3caeU, + 0x4eac03dfU, + 0x3d49ba98U, + 0x2ffebec5U, + 0x75975813U, + 0xa97f9c31U, + 0x15d58601U, + 0x219fbd34U, + 0x1ce5628fU, + 0x4732e2d9U, + 0xcdaffe03U, + 0x82cc9112U, + 0x53b1cb8U, + 0xc734b3e3U, + 0x8da84293U, + 0x22ce52eaU, + 0xf53c0634U, + 0x7f317d20U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x70000000U, + 0x48000000U, + 0xec000000U, + 0xaa000000U, + 0x69000000U, + 0xf6800000U, + 0xbec00000U, + 0xcce00000U, + 0x18700000U, + 0x2d580000U, + 0x13d40000U, + 0x228a0000U, + 0x935f0000U, + 0x54d58000U, + 0xeb0b4000U, + 0x201be000U, + 0x1d729000U, + 0x31df6800U, + 0xa4110400U, + 0x68e82e00U, + 0x7de8bb00U, + 0x596d3180U, + 0x4aaba3c0U, + 0x46cb2620U, + 0x6b7b6f10U, + 0xf9461798U, + 0x10a0ccdcU, + 0x45531b2U, + 0xa6cfa3ebU, + 0x5b792612U, + 0xd1406f16U, + 0x8ca197b7U, + 0xe6508cc8U, + 0x23c951abU, + 0x7fd73f7U, + 0x6822e24U, + 0xb6c7bb3dU, + 0x40e0b18cU, + 0xc274e3eaU, + 0xc5ac635U, + 0x956ff09U, + 0x364cff84U, + 0x36ba88ceU, + 0xba26ffadU, + 0x789588f5U, + 0xff2b7fadU, + 0x278ac8f6U, + 0x8fda9f86U, + 0xe31758c4U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0x90000000U, + 0x78000000U, + 0x84000000U, + 0xa000000U, + 0xfd000000U, + 0x40800000U, + 0x9c400000U, + 0xbee00000U, + 0xae900000U, + 0xbd480000U, + 0xcfb40000U, + 0xaefe0000U, + 0xdf4f0000U, + 0xeb68000U, + 0x7ec000U, + 0x240fa000U, + 0x75d51000U, + 0xf62d0800U, + 0xb1e5f400U, + 0x57121a00U, + 0xb8cfb00U, + 0x80176280U, + 0x860e8740U, + 0xd4d03220U, + 0xc8a9df30U, + 0x32a75098U, + 0xa8775864U, + 0xf7df62beU, + 0xe8fa8751U, + 0xe44e323aU, + 0xb536df2bU, + 0x47b9d096U, + 0x4d2d9862U, + 0xca66c293U, + 0x70d49745U, + 0xf2abba05U, + 0x47a2eb3fU, + 0x84f2ea92U, + 0x9d9ab37eU, + 0x251b083fU, + 0xfd5ef436U, + 0x29ba9a07U, + 0xea2d3b25U, + 0x6fe642b4U, + 0xb8115776U, + 0xa20c9a3dU, + 0x2ed63b08U, + 0xddaec298U, + 0x8e209757U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0x10000000U, + 0x38000000U, + 0xbc000000U, + 0x2a000000U, + 0xa1000000U, + 0x75800000U, + 0x14c00000U, + 0x31a00000U, + 0xdeb00000U, + 0xba080000U, + 0x21540000U, + 0xd35e0000U, + 0x860d0000U, + 0xcb528000U, + 0x525ec000U, + 0xe3886000U, + 0xe7921000U, + 0xdffe2800U, + 0x173a9c00U, + 0xfc9fbe00U, + 0x8b280900U, + 0xd0a2cf80U, + 0x4b36e340U, + 0x9ecd7620U, + 0x38f74530U, + 0x89efb988U, + 0xaa01a644U, + 0x6102cfaeU, + 0x5586e35fU, + 0x4c57622U, + 0x9a3451cU, + 0x62b1b99bU, + 0x900ca66eU, + 0x80504fa8U, + 0xa6d82340U, + 0x92cd1611U, + 0xfaf15511U, + 0x8cef91a3U, + 0x59863a78U, + 0xc6c7f1b4U, + 0xca42a5cU, + 0x9131d99dU, + 0x37cab649U, + 0xd9706786U, + 0x332fbf59U, + 0xaca0283bU, + 0x41379c03U, + 0x2fcd3e30U, + 0x7576c901U, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0xb0000000U, + 0x18000000U, + 0xa4000000U, + 0x32000000U, + 0x75000000U, + 0xbb800000U, + 0xc2c00000U, + 0xa2200000U, + 0xe8300000U, + 0xfda80000U, + 0xd8540000U, + 0xa5fe0000U, + 0xbdab0000U, + 0xf8578000U, + 0xf5f9c000U, + 0x15aba000U, + 0x4456d000U, + 0x63ff4800U, + 0x52afec00U, + 0x8ad36e00U, + 0x1abf8500U, + 0x324ebb80U, + 0xc0c19240U, + 0xf260620U, + 0x17b07930U, + 0xbd68bdb8U, + 0x1771eb6cU, + 0x524ebba6U, + 0xb0c19259U, + 0xf7260614U, + 0x3b07901U, + 0x9768bd90U, + 0xc671eb75U, + 0xdbcebb82U, + 0x701927eU, + 0xee860605U, + 0x29407907U, + 0xc8e0bd91U, + 0xf615eb60U, + 0x8398bb83U, + 0x62fe9275U, + 0xb32f8629U, + 0x6112b939U, + 0x251c9db7U, + 0x47bafb49U, + 0xf5cc53a4U, + 0x7407ae62U, + 0x5a03a03dU, + 0x2902d01dU, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x70000000U, + 0xf8000000U, + 0x4c000000U, + 0xce000000U, + 0xad000000U, + 0xed800000U, + 0x2f400000U, + 0xfe600000U, + 0xb6900000U, + 0x22980000U, + 0x829c0000U, + 0xd29e0000U, + 0x3a9d0000U, + 0xfe9e8000U, + 0x84994000U, + 0xab9b2000U, + 0x251d5000U, + 0x4ad83800U, + 0x767f5400U, + 0x11ce2e00U, + 0x7ba1dd00U, + 0x6d306980U, + 0x1fab7d40U, + 0x753069a0U, + 0x63ab7d50U, + 0x233069b8U, + 0xf2ab7d4cU, + 0xf8b06986U, + 0x3ceb7d5fU, + 0x255069b5U, + 0x83b7d74U, + 0x1428698eU, + 0x13777d7fU, + 0x1a4e69b1U, + 0x1de67d52U, + 0x14d6e9b9U, + 0x217e3d72U, + 0x934d498dU, + 0xba672d7cU, + 0x8c90d1b2U, + 0x6d9c695dU, + 0x7c1de798U, + 0x455fb054U, + 0x4a3b980aU, + 0x572a4409U, + 0x43f5b62eU, + 0x508b9907U, + 0x78c5dfadU, + 0xde20e45cU, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0x30000000U, + 0xc8000000U, + 0x1c000000U, + 0xba000000U, + 0xff000000U, + 0x99800000U, + 0x1c400000U, + 0xeca00000U, + 0x8b900000U, + 0xd8380000U, + 0x703c0000U, + 0x1c3e0000U, + 0x8e390000U, + 0x5d388000U, + 0xb6bec000U, + 0x49fe2000U, + 0x86dbf000U, + 0xee0c0800U, + 0x4310c400U, + 0xa4fc2600U, + 0x8c5d4300U, + 0xf9cc1f80U, + 0x60f45e40U, + 0x284c1fa0U, + 0x20b45e50U, + 0x9eec1f98U, + 0x64245e5cU, + 0x17541faaU, + 0x14585e5bU, + 0x5dca1f84U, + 0xeef15e64U, + 0x414a9fa2U, + 0x34339e63U, + 0xf82abf99U, + 0xb7416e41U, + 0x932637afU, + 0x32d36a5dU, + 0x621a31a8U, + 0xb66cd97eU, + 0x28e2a63fU, + 0x23368313U, + 0xedacbf8dU, + 0x9046e62U, + 0x6480b7aeU, + 0x4ec4aa6eU, + 0xff64918dU, + 0xf675e946U, + 0xc58e8e2fU, + 0x1c54b726U, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0xf0000000U, + 0x48000000U, + 0xe4000000U, + 0x9e000000U, + 0x8f000000U, + 0x52800000U, + 0x1400000U, + 0xada00000U, + 0xc100000U, + 0x15a80000U, + 0x2dac0000U, + 0x41aa0000U, + 0x9baf0000U, + 0x7aa88000U, + 0xef2ac000U, + 0x58ede000U, + 0x6a091000U, + 0x44bd6800U, + 0xf87fc00U, + 0x36c3f600U, + 0xf7609b00U, + 0x2175fb80U, + 0xd5dad6c0U, + 0x6df5fba0U, + 0x9b9ad6f0U, + 0x32d5fb88U, + 0x66cad6ccU, + 0xc2ddfb9aU, + 0xa376d6f5U, + 0x8dffbbdU, + 0x9a75d6d6U, + 0x615d7ba9U, + 0xefb016d6U, + 0xeeb81b82U, + 0x6683c6d5U, + 0xe7409387U, + 0x2ea12adeU, + 0xd4940d97U, + 0x4de94df8U, + 0xb98a8009U, + 0x8079c003U, + 0xade7603fU, + 0xa430d029U, + 0xb67a0806U, + 0x56e72c16U, + 0x70b1fe19U, + 0x643bb712U, + 0x9bc605b6U, + 0x88e261c4U, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0x10000000U, + 0xe8000000U, + 0xb4000000U, + 0xb6000000U, + 0x31000000U, + 0x5e800000U, + 0x73400000U, + 0x36e00000U, + 0x50300000U, + 0xf4d80000U, + 0xb0dc0000U, + 0x9eda0000U, + 0x43df0000U, + 0xe75f8000U, + 0x4f18c000U, + 0x147d6000U, + 0xee88d000U, + 0x30715800U, + 0xcbbfac00U, + 0xb42e3600U, + 0xd5248100U, + 0xb8978080U, + 0x6e89e640U, + 0xf07780a0U, + 0x6bb9e670U, + 0xa42f8088U, + 0x3d25e674U, + 0xc9580b2U, + 0xd88ae659U, + 0xc172009fU, + 0x353e2655U, + 0xd76d6088U, + 0xbc5f649U, + 0x5ca1b885U, + 0x2c519a5dU, + 0x71af6eb8U, + 0xabe60b71U, + 0x94b1561fU, + 0xec9f5121U, + 0x13bb5886U, + 0x382d8a42U, + 0x9f21568bU, + 0x9b92774dU, + 0x5f0bb815U, + 0x58b3bc16U, + 0xc6980e0fU, + 0x80bcfd32U, + 0xf1af6eb3U, + 0x6be60b7dU, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0xd0000000U, + 0x58000000U, + 0xf4000000U, + 0x52000000U, + 0xe7000000U, + 0xba800000U, + 0xadc00000U, + 0x31600000U, + 0x39300000U, + 0xa8880000U, + 0xaa8c0000U, + 0x558e0000U, + 0x7b0d0000U, + 0x54cb8000U, + 0xdaa94000U, + 0xad1ee000U, + 0xfa547000U, + 0x86bf4800U, + 0x50849c00U, + 0x2ec4f200U, + 0xe1e2f900U, + 0x57f47080U, + 0x296ad4c0U, + 0x2d7c70a0U, + 0x24e6d4d0U, + 0xa27270b8U, + 0x222bd4e4U, + 0x9fd9f0aeU, + 0x35b294d9U, + 0xc84f10baU, + 0x826ae4e0U, + 0xa1fe5894U, + 0x42378cbU, + 0xea912a98U, + 0x658c1c5U, + 0xb8f3ba32U, + 0x7fea652fU, + 0x46be8287U, + 0x70852de1U, + 0x9ec3802aU, + 0x69e54033U, + 0xfbf0e02fU, + 0x8f697014U, + 0x987cc814U, + 0x7961dc30U, + 0xb5341233U, + 0xbe8b8927U, + 0x9788b890U, + 0xa40b08f1U, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0xb0000000U, + 0x28000000U, + 0xcc000000U, + 0x86000000U, + 0x35000000U, + 0xf1800000U, + 0x17c00000U, + 0xf2e00000U, + 0xf700000U, + 0xb0a80000U, + 0x26ac0000U, + 0xabaa0000U, + 0xee2d0000U, + 0x2be88000U, + 0x8e09c000U, + 0xfffa000U, + 0xea139000U, + 0xed1e3800U, + 0x5d63b400U, + 0xe9b60a00U, + 0xa9cd1d00U, + 0x151aa680U, + 0xc96383c0U, + 0x6bb2a6a0U, + 0x66cf83f0U, + 0x7f98a698U, + 0xd62283dcU, + 0xf9102692U, + 0xb99b43efU, + 0xc32786b3U, + 0x5894d3e2U, + 0x365bbe8fU, + 0xd5c667e7U, + 0x1de734b3U, + 0x35f3bae4U, + 0x37e8b21fU, + 0x500b692dU, + 0x3ef90c95U, + 0xe1900ee6U, + 0x61deb807U, + 0xa7067419U, + 0x8683aa16U, + 0xc9438d0cU, + 0x3fa41ebeU, + 0xcad5f7c9U, + 0xe1790cb3U, + 0xcf500ee8U, + 0x4beb82fU, + 0x3ab6743dU, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0x50000000U, + 0x28000000U, + 0xe4000000U, + 0x5a000000U, + 0xeb000000U, + 0x44800000U, + 0xc6400000U, + 0x85a00000U, + 0x67d00000U, + 0x30a80000U, + 0x2eac0000U, + 0xefaa0000U, + 0xd82d0000U, + 0xc6ef8000U, + 0x130ec000U, + 0xa479e000U, + 0x6833000U, + 0x71406800U, + 0xb7244c00U, + 0xa4957e00U, + 0x688bd300U, + 0xc4bdad80U, + 0x826508c0U, + 0x39b5ada0U, + 0xbf1908f0U, + 0x74b7ad98U, + 0x169808e4U, + 0x6b722d92U, + 0x14fbc8ddU, + 0x92c44d84U, + 0x4be638e7U, + 0xb675c595U, + 0x757d44d6U, + 0x3902d3b4U, + 0x3b83dbcfU, + 0x40c78038U, + 0x34e2c004U, + 0x30f3e023U, + 0xc43e3002U, + 0x6e27e82aU, + 0xcf168c12U, + 0x4e9e09U, + 0x1459e32aU, + 0xe8904583U, + 0x168e84fdU, + 0x95bcb39bU, + 0x7de22be6U, + 0x93740833U, + 0x18f8bc0bU, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0x30000000U, + 0xc8000000U, + 0xdc000000U, + 0xce000000U, + 0xb1000000U, + 0x28800000U, + 0xd7400000U, + 0x8fe00000U, + 0x8f00000U, + 0xef380000U, + 0x853c0000U, + 0x2e3a0000U, + 0x5bf0000U, + 0xb57e8000U, + 0xbc58c000U, + 0x188e2000U, + 0x69e05000U, + 0x35f1d800U, + 0x51be9c00U, + 0xc7792600U, + 0x535ad900U, + 0x7909de80U, + 0x8221c740U, + 0x7f51dea0U, + 0xa9adc770U, + 0xb933de88U, + 0xc69ec77cU, + 0x8aaf5ebaU, + 0x2eb5074bU, + 0x285dfe89U, + 0xca8e9767U, + 0xb6e68683U, + 0x9c779b52U, + 0x667ed8a0U, + 0x43db4e50U, + 0x1a49d81bU, + 0x2fc29c31U, + 0xc0a32630U, + 0x315d900U, + 0xdcf5eb5U, + 0x1050763U, + 0x2085fea1U, + 0xab42977eU, + 0x71e486b7U, + 0x71f49b4aU, + 0x1bba58beU, + 0x9c7c8e5cU, + 0x10d97830U, + 0x25ca0c12U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x10000000U, + 0xa8000000U, + 0xa4000000U, + 0x86000000U, + 0x83000000U, + 0x7e800000U, + 0x6bc00000U, + 0x9ea00000U, + 0xc6d00000U, + 0x6b280000U, + 0x512c0000U, + 0x682e0000U, + 0x6fad0000U, + 0x63ed8000U, + 0xe108c000U, + 0xd3de000U, + 0x2e21d000U, + 0xda11c800U, + 0xc5083c00U, + 0xcb3c6200U, + 0xcd221700U, + 0xb4966180U, + 0x6ca98c0U, + 0xf19e61a0U, + 0x8df698d0U, + 0x5cb861b8U, + 0x296798d4U, + 0xf273e192U, + 0x7cfe58fdU, + 0xf98581b3U, + 0xa34648ddU, + 0xae6229acU, + 0x3af664c7U, + 0x4c39e38bU, + 0x5a45ff6U, + 0x84544811U, + 0xfaecfc22U, + 0xd68f822bU, + 0xd97ec729U, + 0xb0c229abU, + 0xbc2664d5U, + 0x4711e3a2U, + 0x44885fe7U, + 0x447a482dU, + 0x3141fc32U, + 0x3362020aU, + 0xbb760722U, + 0xc37fc9b9U, + 0xf9c7b4f6U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0x10000000U, + 0xa8000000U, + 0x1c000000U, + 0x9a000000U, + 0xdd000000U, + 0x80800000U, + 0xa5c00000U, + 0x8e00000U, + 0xb8500000U, + 0x4d880000U, + 0xb88c0000U, + 0xe40a0000U, + 0xfbcb0000U, + 0x3e2b8000U, + 0xaefec000U, + 0x5ab62000U, + 0x70def000U, + 0xf1821800U, + 0xc7451c00U, + 0xe427b200U, + 0xa6333500U, + 0xbf1bd780U, + 0xbc64cbc0U, + 0x5b91d7a0U, + 0x226fcbf0U, + 0x4d5a57a8U, + 0x24c10bf4U, + 0xf2647782U, + 0xf093fbf3U, + 0x7dec6fa4U, + 0x111de7c4U, + 0x27605d84U, + 0xbc1012edU, + 0xca2daa06U, + 0xc8fa2903U, + 0x2db665b5U, + 0x955cfeddU, + 0x60c18024U, + 0xec65c017U, + 0x1395a029U, + 0xe6c300fU, + 0x6f5e383bU, + 0x4dc0ec27U, + 0xf4e62a2bU, + 0x1254e90fU, + 0x28884596U, + 0x8c0e0ed6U, + 0xc7c99828U, + 0xb42bdc20U, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0x30000000U, + 0x18000000U, + 0x5c000000U, + 0x5a000000U, + 0x6b000000U, + 0x95800000U, + 0xb8c00000U, + 0x7ea00000U, + 0x300000U, + 0x62e80000U, + 0xd5ec0000U, + 0xda6a0000U, + 0xa9af0000U, + 0x728e8000U, + 0xd27e4000U, + 0x9234a000U, + 0x1dea7000U, + 0xce6b2800U, + 0x27ac8400U, + 0x378dc200U, + 0x32ff7700U, + 0xd2755680U, + 0x7f0a71c0U, + 0xf6bf56a0U, + 0x169571f0U, + 0x46d9d688U, + 0x210731fcU, + 0x1687768eU, + 0xc94241ebU, + 0xf062de98U, + 0x579085f1U, + 0xc05bbcbdU, + 0xc04582dfU, + 0xa2e5c222U, + 0x98d3771fU, + 0x13f569aU, + 0x695571daU, + 0x4ff9d6a4U, + 0x9ef731ccU, + 0xdd4f7696U, + 0x935e41e3U, + 0xf9c0dea2U, + 0xf82385e9U, + 0xe1773ca2U, + 0xd688c2d4U, + 0x847de215U, + 0x2b344736U, + 0x976c5e86U, + 0xfd2ec5ecU, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0x10000000U, + 0x18000000U, + 0x94000000U, + 0xda000000U, + 0x25000000U, + 0x79800000U, + 0xf5c00000U, + 0x98a00000U, + 0x69b00000U, + 0x78e80000U, + 0xf1ec0000U, + 0x966e0000U, + 0x24ab0000U, + 0x648b8000U, + 0x437b4000U, + 0xe7f7e000U, + 0x448d3000U, + 0x137a1800U, + 0x5ff6d400U, + 0xc088fa00U, + 0xd17a7f00U, + 0xeef25280U, + 0x630a65c0U, + 0x1bc52a0U, + 0xfd165d0U, + 0xff7fd288U, + 0xe1f625d4U, + 0x978e328eU, + 0x11fc15f1U, + 0x34b1aab8U, + 0x656a81f8U, + 0x762d30a6U, + 0xb7ca8ec5U, + 0x629c9a00U, + 0x82a00f1fU, + 0xacb1aabeU, + 0xb16a81f3U, + 0xc2d3093U, + 0x82ca8eeeU, + 0x31c9a24U, + 0xe3600f1fU, + 0xee11aa8dU, + 0xfdda81f2U, + 0xd4530a9U, + 0x86e68ec5U, + 0xdd29a0fU, + 0xae7b0f37U, + 0xf2722a9cU, + 0x4f4dc1f5U, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0x50000000U, + 0xf8000000U, + 0x1c000000U, + 0xa000000U, + 0xc1000000U, + 0xc6800000U, + 0xd8c00000U, + 0xbae00000U, + 0xd6b00000U, + 0xe8880000U, + 0xfd8c0000U, + 0x650e0000U, + 0x62cb0000U, + 0x61a98000U, + 0x865e4000U, + 0x1d76a000U, + 0x59eaf000U, + 0x677af800U, + 0x62a3cc00U, + 0xc7968a00U, + 0x3f5c1d00U, + 0x87f48880U, + 0x2b2ffcc0U, + 0x4c9a88a0U, + 0x8a94fcd0U, + 0xebdb0888U, + 0x7236bcc4U, + 0xf54ba8b6U, + 0x67eb4cc3U, + 0x87ed0b4U, + 0xd321c0f3U, + 0x42d17a85U, + 0xa2fe6dc5U, + 0xe9e62a2bU, + 0x7d31ed30U, + 0xf4c9f0b1U, + 0xeaa970dfU, + 0x21db22a0U, + 0x533051c3U, + 0xc3cdd82eU, + 0x172b7c31U, + 0x569cd235U, + 0x13922100U, + 0x615f7ab7U, + 0x58f56dcaU, + 0x92afaa07U, + 0x7ddfad11U, + 0xf93750b8U, + 0x52cf80e5U, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0x10000000U, + 0x88000000U, + 0xec000000U, + 0xc2000000U, + 0xe9000000U, + 0xc2800000U, + 0x95400000U, + 0x7ea00000U, + 0x65f00000U, + 0xf180000U, + 0xa41c0000U, + 0xcf9e0000U, + 0xb85f0000U, + 0x43bf8000U, + 0xd0ebc000U, + 0x5604a000U, + 0x3f06b000U, + 0xbd83f800U, + 0x8c4ec00U, + 0x6660c600U, + 0x8b977300U, + 0x688b3c80U, + 0xe915440U, + 0x280d3ca0U, + 0x52d25450U, + 0x842cbca8U, + 0x2a669454U, + 0x19979c8aU, + 0x298be46fU, + 0x3010c4baU, + 0xf749b855U, + 0x2973fa8aU, + 0xe15a2770U, + 0x59380015U, + 0x1ac0029U, + 0x16a60036U, + 0xf9f30010U, + 0x7519800dU, + 0x3918c03aU, + 0xab1d203fU, + 0xea1e7035U, + 0xd49ed81aU, + 0xbda9c00U, + 0x707e1e05U, + 0x150def27U, + 0x66552283U, + 0x7e6cbb5cU, + 0x41401e3aU, + 0x88a2ef26U, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0xb0000000U, + 0x38000000U, + 0xa4000000U, + 0xd6000000U, + 0x35000000U, + 0x37800000U, + 0x1f400000U, + 0xbd200000U, + 0x78100000U, + 0xeef80000U, + 0xf5fc0000U, + 0x337e0000U, + 0x5dbf0000U, + 0x42da8000U, + 0x2c6b4000U, + 0xd7c66000U, + 0x92e4d000U, + 0x2ef77800U, + 0x860fc400U, + 0xcef6be00U, + 0x560c9700U, + 0x66f57780U, + 0x7a0e3040U, + 0x2cf377a0U, + 0x3d0d3050U, + 0xf877f7a8U, + 0x20c9707cU, + 0x6d9317a6U, + 0xfabae055U, + 0x465c0f93U, + 0x99aef458U, + 0x6e27499eU, + 0x296e75fU, + 0x423ae031U, + 0x319c9001U, + 0xfb4d982aU, + 0x58d3542cU, + 0x909b262eU, + 0x62cfc317U, + 0xf69651b0U, + 0x7c3df375U, + 0x89b2610U, + 0x36cfc30cU, + 0x389651beU, + 0x5d3df356U, + 0xd11b2604U, + 0xb88fc308U, + 0x643651b5U, + 0xf6df373U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0x30000000U, + 0xf8000000U, + 0x74000000U, + 0xea000000U, + 0x3000000U, + 0xb6800000U, + 0xf2c00000U, + 0x8e600000U, + 0x84b00000U, + 0xb8c80000U, + 0x19cc0000U, + 0xe04a0000U, + 0x5a090000U, + 0xffa88000U, + 0xb8ff4000U, + 0xb4c4e000U, + 0x8367b000U, + 0x7331a800U, + 0x438f1c00U, + 0xb5ed0a00U, + 0x8558b900U, + 0xb7943c80U, + 0x9d5b2ac0U, + 0x33963ca0U, + 0xef5e2af0U, + 0x7494bcb8U, + 0x4bd86afcU, + 0xf150dc86U, + 0x993c9ae1U, + 0x842794bcU, + 0x191136e1U, + 0xeb99b691U, + 0xcff0d3ddU, + 0x2cece032U, + 0x68dbb03cU, + 0xd7d3a83cU, + 0xc3fa1c0aU, + 0xb6478a1cU, + 0xfba2f910U, + 0xce525c9dU, + 0x89badae3U, + 0x8be3f4aaU, + 0xf8f5c6f3U, + 0xd06efe83U, + 0xc91d7fd3U, + 0x2732c233U, + 0x398a550eU, + 0x1eeefeaaU, + 0x8fdd7fdfU, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0xd0000000U, + 0xb8000000U, + 0xc000000U, + 0x2000000U, + 0xa7000000U, + 0xed800000U, + 0x9fc00000U, + 0xe2600000U, + 0xf0100000U, + 0x60480000U, + 0x694c0000U, + 0xb1ce0000U, + 0xfc8f0000U, + 0xb0a98000U, + 0x871c4000U, + 0x5e242000U, + 0x48b03000U, + 0xc8bf0800U, + 0xe3556400U, + 0x71691a00U, + 0x387cc900U, + 0xc8b6a980U, + 0x88bbfbc0U, + 0xc350a9a0U, + 0xa168fbd0U, + 0x807f29a8U, + 0xc4b7bbe4U, + 0x8abc8986U, + 0x6454cbe7U, + 0x4cee2186U, + 0x1fbddfceU, + 0x26d413bdU, + 0x7aa842e9U, + 0x41aa805U, + 0x25a51415U, + 0xae74323dU, + 0xda5a9d1fU, + 0xca073b99U, + 0x830116d4U, + 0x7b82ba3bU, + 0xe6c3b926U, + 0x12e20184U, + 0x2951eff9U, + 0xf26d1b8bU, + 0x43fe26c1U, + 0x2e743209U, + 0x9a5a9d2dU, + 0xea073b96U, + 0x530116c8U, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0x30000000U, + 0x28000000U, + 0xbc000000U, + 0x82000000U, + 0x7b000000U, + 0x89800000U, + 0xc3c00000U, + 0xbe00000U, + 0x7700000U, + 0xed380000U, + 0xf83c0000U, + 0x70be0000U, + 0x45fb0000U, + 0x225a8000U, + 0x800bc000U, + 0xad262000U, + 0xc163000U, + 0x530fe800U, + 0xd8a2a400U, + 0xedd33a00U, + 0x13ed2500U, + 0x7e507e80U, + 0x7f2dc740U, + 0x62367ea0U, + 0x729ac750U, + 0x5e6afe88U, + 0x7b96075cU, + 0x89c85e82U, + 0xb1c0f773U, + 0xb8e316a2U, + 0xa2f3a36dU, + 0xb4ffe480U, + 0x1cdd125dU, + 0xc04fc802U, + 0x9203941cU, + 0x23005219U, + 0xbd834132U, + 0xcdc1e4adU, + 0xdae6126fU, + 0x49f5480fU, + 0x25785430U, + 0x4b1e720cU, + 0xf5a97131U, + 0x6c700c98U, + 0x3cbfb654U, + 0xffcf22bU, + 0x755eb130U, + 0x93882c85U, + 0x81e28663U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0xf0000000U, + 0x68000000U, + 0x84000000U, + 0xba000000U, + 0xed000000U, + 0xe9800000U, + 0x6bc00000U, + 0x58200000U, + 0xfad00000U, + 0x7e180000U, + 0x379c0000U, + 0x6c5a0000U, + 0x7c7b0000U, + 0xf2ac8000U, + 0x5eb7c000U, + 0x2fe000U, + 0x3ff03000U, + 0xc54c5800U, + 0x86479400U, + 0x49e30a00U, + 0x6ff62b00U, + 0x9d4dcd80U, + 0x4a406540U, + 0x87e14da0U, + 0x50f7a570U, + 0x1dceada8U, + 0x7207954cU, + 0x5902f5b2U, + 0x1b80016dU, + 0xf2c1ff9cU, + 0x63a62a56U, + 0xf8143226U, + 0x75ba4f0cU, + 0x4b8f7f90U, + 0xa3e6ea42U, + 0xdaf55227U, + 0xb8cabf03U, + 0xef82478eU, + 0xe0c18e71U, + 0x2aa3602eU, + 0x5b97f030U, + 0x9b7bb808U, + 0x7e2ba433U, + 0x88f55229U, + 0x11cabf10U, + 0x9c0247bcU, + 0x96018e78U, + 0xf303603dU, + 0x4e87f017U, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0x10000000U, + 0x98000000U, + 0x1c000000U, + 0xca000000U, + 0xe7000000U, + 0x4d800000U, + 0xb8400000U, + 0xaca00000U, + 0xd0f00000U, + 0x40180000U, + 0xfd9c0000U, + 0xadda0000U, + 0x357f0000U, + 0xbb8f8000U, + 0x52934000U, + 0xd38fa000U, + 0xa693f000U, + 0x2d8bc800U, + 0x1f962400U, + 0xc908a600U, + 0xdb566300U, + 0xbd6d1480U, + 0xb5c5dc40U, + 0x74e294a0U, + 0xcc569c70U, + 0x18ed3488U, + 0x39856c74U, + 0x8646fcaeU, + 0xb5a34873U, + 0x24765a9cU, + 0x1cd92b4aU, + 0x95f94e0fU, + 0x94ff724U, + 0x1bf65a84U, + 0x8f992b60U, + 0x86d94e1cU, + 0x8afff72bU, + 0xe8ce5a99U, + 0xe1b52b55U, + 0x403b4e2bU, + 0xcdacf70bU, + 0x5fa3da90U, + 0x13756b46U, + 0x69596e3fU, + 0x21bf4711U, + 0xf7ea32b9U, + 0x3000ff48U, + 0x48002009U, + 0x2400b007U, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0x90000000U, + 0x78000000U, + 0xc4000000U, + 0x5a000000U, + 0xa3000000U, + 0xd8800000U, + 0xbf400000U, + 0xfde00000U, + 0xc900000U, + 0x50e80000U, + 0x146c0000U, + 0xe52e0000U, + 0x39cb0000U, + 0x1adf8000U, + 0xff44000U, + 0x3e3e6000U, + 0xa8e2b000U, + 0xd114a800U, + 0xaa29ec00U, + 0xe74a5600U, + 0xa89ed900U, + 0x3b948d80U, + 0x4a6f62c0U, + 0xfc2b0da0U, + 0x724b22d0U, + 0x951d6d88U, + 0xf15592f4U, + 0x514fc596U, + 0xd9b7ec5U, + 0xee141380U, + 0x3caae7edU, + 0x79097e36U, + 0x7aff7502U, + 0x72c6bba9U, + 0x3f240bd1U, + 0x9bb2a835U, + 0xd75eec20U, + 0xcd33d61aU, + 0xa91d992bU, + 0x2f536dbcU, + 0x84e92d5U, + 0xe61845adU, + 0xf1d33ed9U, + 0xba0c73aeU, + 0xd27f57d3U, + 0x85845614U, + 0xeec5d921U, + 0x71230dbeU, + 0xbab722c3U, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0x90000000U, + 0x98000000U, + 0xa4000000U, + 0x3e000000U, + 0x59000000U, + 0x2e800000U, + 0x9bc00000U, + 0xd200000U, + 0x2e900000U, + 0x89c80000U, + 0x394c0000U, + 0x4b8a0000U, + 0x802d0000U, + 0x99798000U, + 0x1f954000U, + 0xcb4c6000U, + 0x408f9000U, + 0x15ac5800U, + 0x7f3eac00U, + 0x58f23200U, + 0xa0bfbb00U, + 0x61b01f80U, + 0x445a69c0U, + 0x89019fa0U, + 0x968329f0U, + 0x4fc7ff98U, + 0x3b21b9d4U, + 0x4b9227beU, + 0x3d4a55fdU, + 0xc58c75b1U, + 0x312a7eebU, + 0x1bf8323aU, + 0x8652bb0dU, + 0x5699f99U, + 0x279f29f6U, + 0x7025ffa3U, + 0xfe10b9ecU, + 0xab09a7afU, + 0x8aee15c1U, + 0x66db95a0U, + 0xa0c1aef9U, + 0xb0a38a16U, + 0x84d7c719U, + 0x5ca815bbU, + 0x9b9eedbU, + 0x87366a14U, + 0x39d1722U, + 0x8e202d82U, + 0x4714d2e0U, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0x10000000U, + 0x58000000U, + 0xb4000000U, + 0xfe000000U, + 0x55000000U, + 0xc2800000U, + 0x6dc00000U, + 0x67a00000U, + 0x1dd00000U, + 0xf8e80000U, + 0xf46c0000U, + 0xc4ae0000U, + 0x2d8b0000U, + 0x79b8000U, + 0x6bd14000U, + 0xa1e8e000U, + 0xcce91000U, + 0x4a6cb800U, + 0x31af2c00U, + 0xff0e0200U, + 0x325a5f00U, + 0xb870e180U, + 0x423e7ec0U, + 0x610361a0U, + 0x7c833ed0U, + 0x98c58188U, + 0xb5212ed4U, + 0x2812b99eU, + 0x2b4f42f9U, + 0x17bc5ba1U, + 0x69400decU, + 0x1b660211U, + 0xaef65f37U, + 0x21fee1a8U, + 0xbba57ee0U, + 0x5fd0e19eU, + 0x1fee7ec9U, + 0x39eb6191U, + 0x98ef3eebU, + 0x46b81b9U, + 0x2caa2ec9U, + 0xd189399eU, + 0x159e02f4U, + 0x74d4bba5U, + 0xc8691de4U, + 0x36aaba3dU, + 0x82897312U, + 0x2618e3bcU, + 0x7d9321e4U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0xf0000000U, + 0x68000000U, + 0xa4000000U, + 0x2000000U, + 0xcf000000U, + 0xd9800000U, + 0x92400000U, + 0x26e00000U, + 0x6bd00000U, + 0x55880000U, + 0x360c0000U, + 0xf74a0000U, + 0x56290000U, + 0x5ebe8000U, + 0xf555c000U, + 0x8a4ce000U, + 0x88aef000U, + 0x217d8800U, + 0xdbf7c400U, + 0xc47b9600U, + 0xc976c100U, + 0x1db9af80U, + 0x2ad3ebc0U, + 0x450f2fa0U, + 0x20ca2bf0U, + 0xcd69cfb8U, + 0x9cdddbccU, + 0x7242c7a2U, + 0x16e3dfe5U, + 0x63d7b1a2U, + 0x18eeed6U, + 0x5c0f1614U, + 0x9c4a0132U, + 0x8dabcfbdU, + 0x3f8dbd8U, + 0xa364790U, + 0x73df1fd9U, + 0xfbc5d1afU, + 0x7ca5ded9U, + 0x79367e22U, + 0xa45f353eU, + 0x6087d196U, + 0xbec0defbU, + 0xfe22fe19U, + 0x38f3f53fU, + 0x8bfdb196U, + 0x9e37eeffU, + 0x79d9961bU, + 0x60c3c13bU, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0x30000000U, + 0x68000000U, + 0xc4000000U, + 0x2a000000U, + 0x1f000000U, + 0x62800000U, + 0xc7c00000U, + 0xb0600000U, + 0xb8f00000U, + 0xdee80000U, + 0x126c0000U, + 0x40aa0000U, + 0xdd490000U, + 0x98f88000U, + 0x9db3c000U, + 0x6949e000U, + 0x7afab000U, + 0x16b74800U, + 0x79cadc00U, + 0xe3c2200U, + 0x2a51c100U, + 0x33fdf680U, + 0x1d3269c0U, + 0x258d76a0U, + 0xda1da9f0U, + 0xda8696b8U, + 0x9bc219fcU, + 0x56635ea2U, + 0x79f205cdU, + 0xe16e1ca8U, + 0x6c2ab4caU, + 0x7f8d4230U, + 0xd18b13bU, + 0x2c035ebcU, + 0x2e0205e5U, + 0x55061cb3U, + 0x4d86b4ddU, + 0xcd474221U, + 0xb3a1b117U, + 0x2293deb7U, + 0x791dc5f6U, + 0xae05fc87U, + 0x950504e2U, + 0x2d808a34U, + 0xfd44ad1eU, + 0xdba41c9cU, + 0xe693b4f8U, + 0x531dc21dU, + 0xb1077106U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0x30000000U, + 0x38000000U, + 0xac000000U, + 0x12000000U, + 0x8d000000U, + 0x42800000U, + 0x90c00000U, + 0x84600000U, + 0x5d00000U, + 0x1de80000U, + 0x596c0000U, + 0x3aaa0000U, + 0x434b0000U, + 0x29da8000U, + 0x5a134000U, + 0xbe0a2000U, + 0xaf8b000U, + 0x85e3d800U, + 0x90954c00U, + 0x7acf8a00U, + 0x109a0900U, + 0x2f305780U, + 0x7af880c0U, + 0x5de2d7a0U, + 0x2c97c0f0U, + 0x60caf7a8U, + 0x99870fcU, + 0xd3b1afa6U, + 0x75397cd7U, + 0x160485a2U, + 0xfb0385f4U, + 0x6987aa32U, + 0xd145b910U, + 0xf1230fb3U, + 0x72f58ce1U, + 0x5c1dfd9cU, + 0xd8f639cbU, + 0xbd1b5814U, + 0xa8710c3cU, + 0x90dd2a34U, + 0x5696f912U, + 0xa9c92f87U, + 0xdd1d3cdbU, + 0x787625b9U, + 0xb8df75c1U, + 0xf296d20dU, + 0x2fcc053dU, + 0xee1dfdb1U, + 0xa5f639daU, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0x10000000U, + 0x78000000U, + 0xcc000000U, + 0x2e000000U, + 0xd5000000U, + 0xbe800000U, + 0xd4c00000U, + 0x57600000U, + 0x8d500000U, + 0x6ad80000U, + 0x1e5c0000U, + 0xa59a0000U, + 0x8b7d0000U, + 0xff6d8000U, + 0xc9964000U, + 0x85bc2000U, + 0xbf0f5000U, + 0xf140f800U, + 0x38268c00U, + 0x28756a00U, + 0xb82d7100U, + 0xf8b28b80U, + 0x454fc540U, + 0xcae70ba0U, + 0xce158570U, + 0xf1f92b98U, + 0x61abd574U, + 0x31f65386U, + 0x916a1947U, + 0x3c90998dU, + 0xcb3f7872U, + 0x3c94a22U, + 0x12222107U, + 0x57727397U, + 0xb9a94954U, + 0xcdf26195U, + 0x3768f467U, + 0x4d93a01aU, + 0xefb81032U, + 0xe00b5810U, + 0xc29c36U, + 0x6564322dU, + 0xee52ed1dU, + 0xdd5b39b5U, + 0x221b6876U, + 0x3f38121bU, + 0xc1cdbd39U, + 0x1923c1a1U, + 0x54f1e44cU, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0x90000000U, + 0xc8000000U, + 0x8c000000U, + 0x86000000U, + 0x8d000000U, + 0x11800000U, + 0x66400000U, + 0xb1e00000U, + 0x16d00000U, + 0x33680000U, + 0x63ec0000U, + 0xf22a0000U, + 0x988f0000U, + 0x763b8000U, + 0x71c5c000U, + 0x9aa5a000U, + 0x16b79000U, + 0xd3fef800U, + 0x2966f400U, + 0xb118600U, + 0xdfcb6900U, + 0x5a6f80U, + 0xe4535cc0U, + 0x15abefa0U, + 0x4bc99cf0U, + 0xa25dcf88U, + 0x5357ccd4U, + 0x572c97baU, + 0xf509a8f7U, + 0x6e78699bU, + 0x9921f5d4U, + 0x5ff6201fU, + 0xc49e500dU, + 0x1b715813U, + 0x375e6438U, + 0x66d4fe37U, + 0xb685d04U, + 0x17ee49b9U, + 0xa02fa5c1U, + 0xd78f7825U, + 0xe0bc340eU, + 0xd07a60fU, + 0xd1853906U, + 0xc643378dU, + 0x21e138ceU, + 0xded511b0U, + 0xbf6ec1d1U, + 0xe5e80601U, + 0x7f2da910U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0xb0000000U, + 0x78000000U, + 0x84000000U, + 0x36000000U, + 0xb5000000U, + 0x2e800000U, + 0x15c00000U, + 0xdc200000U, + 0xdb700000U, + 0x2a480000U, + 0x5cc0000U, + 0xb08a0000U, + 0x28690000U, + 0x87bc8000U, + 0xae474000U, + 0xf7676000U, + 0xba90d000U, + 0x611e7800U, + 0x3ef68c00U, + 0x980fe200U, + 0x30ac2300U, + 0x911bc880U, + 0xe6f272c0U, + 0xcc0d48a0U, + 0xceac32f0U, + 0xd81ea8b8U, + 0x7a77a2dcU, + 0x5acdb0a6U, + 0x8908fefdU, + 0x3828aaabU, + 0x99d911d0U, + 0x5851e020U, + 0xc8be9015U, + 0x3fc59837U, + 0xab211c13U, + 0x6ef6fa25U, + 0x900a7f3eU, + 0xacaa5297U, + 0x9318ddd5U, + 0x1df1621bU, + 0xd38e6323U, + 0xc3ea2895U, + 0xa4fce2d4U, + 0x53a0d09cU, + 0xbe312ed0U, + 0x7aaa52bbU, + 0x5618ddfdU, + 0x2b71622bU, + 0xf24e6307U, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0x30000000U, + 0xc8000000U, + 0xfc000000U, + 0xde000000U, + 0x89000000U, + 0xa0800000U, + 0xccc00000U, + 0x58200000U, + 0x60b00000U, + 0xe3380000U, + 0x1ebc0000U, + 0xfa0000U, + 0x9b1f0000U, + 0x8e0e8000U, + 0x8bc0c000U, + 0x49a32000U, + 0x98f3d000U, + 0x65da9800U, + 0xb92a1c00U, + 0x56f43a00U, + 0xd4d81b00U, + 0x8dae6e80U, + 0x88307f40U, + 0x13faeea0U, + 0x389fbf70U, + 0xd94f4e88U, + 0x10a0af7cU, + 0xa074f6baU, + 0xd1a6343U, + 0x3b0ed48dU, + 0x5547a461U, + 0x3c612025U, + 0xa850d012U, + 0x35ae1813U, + 0xdc35dc3aU, + 0xa1f99a03U, + 0x979b0b31U, + 0xc4cfd6b1U, + 0x5ee5b368U, + 0x63964c85U, + 0x1c0eb858U, + 0xd4c19a17U, + 0x3c270b01U, + 0x1ab5d68aU, + 0xb03ab378U, + 0xdd38cc98U, + 0xc7be7854U, + 0xf87aba09U, + 0x53d8db10U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0x10000000U, + 0x28000000U, + 0xe4000000U, + 0xc6000000U, + 0x3b000000U, + 0xcd800000U, + 0xbd400000U, + 0xab600000U, + 0xf7100000U, + 0x73780000U, + 0xe3fc0000U, + 0x783a0000U, + 0xab9b0000U, + 0xbeab8000U, + 0x7fa2c000U, + 0xc731e000U, + 0x2409d000U, + 0x92150800U, + 0x99f9e400U, + 0xb93e4e00U, + 0x671bb500U, + 0xef6afd80U, + 0x95065e40U, + 0xf2837da0U, + 0x86c39e70U, + 0x15231da8U, + 0x5df38e74U, + 0x1b2c75a2U, + 0xc6e17a4dU, + 0x9a56d393U, + 0xd01afb43U, + 0xe0ef6820U, + 0xe542f42cU, + 0x9762a62aU, + 0xcd178121U, + 0x527bbbbeU, + 0x1f7f0f5dU, + 0x11fc4e0aU, + 0x8d3cb53eU, + 0xa91b7dbcU, + 0x206f9e5bU, + 0xb6811d9cU, + 0x90c48e70U, + 0x2625f5a1U, + 0x6474ba58U, + 0x486eb39bU, + 0xb286eb61U, + 0x66c20016U, + 0x25270032U, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0xb0000000U, + 0x58000000U, + 0x54000000U, + 0x32000000U, + 0x93000000U, + 0x77800000U, + 0x71c00000U, + 0x58a00000U, + 0x3b900000U, + 0xe0380000U, + 0x6bc0000U, + 0xbfa0000U, + 0xa11f0000U, + 0x31ea8000U, + 0x79e04000U, + 0x8776e000U, + 0x29c97000U, + 0x4e34e800U, + 0x9928d400U, + 0xe1c69a00U, + 0x70a47f00U, + 0x97907380U, + 0x363b0a40U, + 0xffb8f3a0U, + 0xbb784a70U, + 0x955e9388U, + 0x8b8e7a5cU, + 0x6d561b9eU, + 0x2d1f9e49U, + 0x97ea8992U, + 0x78e6456dU, + 0xd3f2880fU, + 0x778ee431U, + 0x33561239U, + 0xc8199b0fU, + 0xa96ee1a9U, + 0xe1a1d162U, + 0xeb10721dU, + 0xc47fab2fU, + 0x54de6995U, + 0x134c3549U, + 0x6d76e037U, + 0x2ec97016U, + 0xabb4e820U, + 0xcbe8d413U, + 0x96e69a0fU, + 0x6ef47f0fU, + 0x1d0873b9U, + 0x98170a49U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0xf0000000U, + 0x28000000U, + 0xd4000000U, + 0xb6000000U, + 0xcd000000U, + 0xaa800000U, + 0xfc00000U, + 0x5a600000U, + 0x61d00000U, + 0xdef80000U, + 0x977c0000U, + 0xa33a0000U, + 0xae190000U, + 0x396e8000U, + 0x47a7c000U, + 0xa8b56000U, + 0x6caed000U, + 0xaac7b800U, + 0x84e76c00U, + 0x48135200U, + 0x919ba100U, + 0xa02fdf80U, + 0x1006a040U, + 0x18035fa0U, + 0x9c046070U, + 0x9202bfb8U, + 0x5304704cU, + 0xb386e7b2U, + 0x13460c79U, + 0x98a56d9fU, + 0x9131114aU, + 0xb0ead835U, + 0x13e5bc09U, + 0x5596ea03U, + 0xd3d9cd21U, + 0x80dacU, + 0xddf3c178U, + 0x410f602eU, + 0xfd77d016U, + 0x81c93835U, + 0x8690ac38U, + 0xa05e3227U, + 0x73497129U, + 0xb55267bcU, + 0xf838cc56U, + 0x999e8dbeU, + 0x24280157U, + 0x1e00001aU, + 0xd900001fU, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0xf0000000U, + 0x58000000U, + 0x54000000U, + 0xc6000000U, + 0x4f000000U, + 0x1f800000U, + 0x94400000U, + 0xfae00000U, + 0xe2d00000U, + 0xa4b80000U, + 0xe63c0000U, + 0xa4fe0000U, + 0x7ad90000U, + 0x192e8000U, + 0x69e44000U, + 0x6752e000U, + 0xa5fed000U, + 0x765fa800U, + 0x48ead400U, + 0x7243b600U, + 0xe5e54100U, + 0xb554a780U, + 0xccfe5a40U, + 0xd6dc27a0U, + 0x9b2f1a50U, + 0x48e64798U, + 0x3bd08a6cU, + 0xbc3b8f8eU, + 0x91f9ce79U, + 0x5bf1bfU, + 0xbfeccb6aU, + 0xc9c1a838U, + 0xefa3d40fU, + 0x54b53626U, + 0xf7ad0127U, + 0xa92047b7U, + 0x98758a62U, + 0x9a8b0fa8U, + 0x1f548e79U, + 0xa1ff91a7U, + 0xf85a5b4cU, + 0xfbeae02fU, + 0xa7c2d015U, + 0xaca1a81dU, + 0xd933d43cU, + 0xeaed3617U, + 0x3410125U, + 0xf16647bbU, + 0x50908a65U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0x10000000U, + 0x48000000U, + 0x54000000U, + 0x5a000000U, + 0xaf000000U, + 0xe2800000U, + 0x6cc00000U, + 0xe7e00000U, + 0xa5900000U, + 0xd9780000U, + 0xcafc0000U, + 0x59ba0000U, + 0xbb190000U, + 0x75298000U, + 0x31e3c000U, + 0x8c956000U, + 0xfaf9b000U, + 0xa1bbc800U, + 0xd71a5c00U, + 0x23287a00U, + 0xd8e56500U, + 0xcf14d980U, + 0x81bbca40U, + 0x671f59a0U, + 0x1b2d0a70U, + 0xd4e1b9b8U, + 0x89127a74U, + 0x20bc91aaU, + 0x709b5661U, + 0x3a6bc3bcU, + 0xbd421f4aU, + 0xa7a3c804U, + 0xbbb65c11U, + 0xc68a7a1dU, + 0x70506508U, + 0x951f59b3U, + 0x302d0a7eU, + 0x4461b997U, + 0xed27a75U, + 0x37dc9184U, + 0x42cb5656U, + 0xbc73c38dU, + 0x11ee1f66U, + 0x2201c80aU, + 0x3035c11U, + 0xd481fa2cU, + 0x95c6a53eU, + 0xec61b9a8U, + 0x8ad27a5dU, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0xf0000000U, + 0x78000000U, + 0x84000000U, + 0xf2000000U, + 0x79000000U, + 0x7d800000U, + 0x6bc00000U, + 0x8ce00000U, + 0xce900000U, + 0x83380000U, + 0xe1bc0000U, + 0xb4fe0000U, + 0xcb5d0000U, + 0x196a8000U, + 0x40e14000U, + 0xe0916000U, + 0x1c3cf000U, + 0x9f383800U, + 0x27be5400U, + 0x27fdca00U, + 0xbbda0d00U, + 0x85282980U, + 0x5ac3d840U, + 0x2d64a9a0U, + 0x43539850U, + 0xcd949b8U, + 0xd7af286cU, + 0x578491a6U, + 0x46c1cc4dU, + 0xeb62839aU, + 0xd0542553U, + 0x7c583805U, + 0x4bee5409U, + 0x4da5ca06U, + 0x8b360d2aU, + 0xb40e29beU, + 0x43b2d86eU, + 0x8c4829adU, + 0x3b93d86dU, + 0xb0bca98fU, + 0xe57f985fU, + 0x3e9f49b6U, + 0x128e2863U, + 0x84f0118eU, + 0x7aed8c47U, + 0xec2163b8U, + 0x6f5954bU, + 0x3bef6017U, + 0x75a1f01cU, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0x90000000U, + 0xf8000000U, + 0x3c000000U, + 0x8e000000U, + 0x1d000000U, + 0xac800000U, + 0x61c00000U, + 0x90e00000U, + 0xaf900000U, + 0xac80000U, + 0x314c0000U, + 0x330e0000U, + 0x4daf0000U, + 0xca9b8000U, + 0xf6644000U, + 0x2151a000U, + 0x85afd000U, + 0xde9a3800U, + 0x9c61dc00U, + 0x1e501200U, + 0x422bf500U, + 0x32d83980U, + 0x4fc7e7c0U, + 0x5de5b9a0U, + 0xdb10a7d0U, + 0xc70999a8U, + 0xd7a837f4U, + 0xbd9f8196U, + 0x65e17bfbU, + 0x87118bb5U, + 0xf90fc2fcU, + 0xa2a9b81eU, + 0xd5199c24U, + 0xb627b21aU, + 0x84f7251fU, + 0xe71f8190U, + 0x65217bf7U, + 0x15718b82U, + 0xba5fc2fbU, + 0x6c01b81bU, + 0x16059c25U, + 0x9101b226U, + 0x4a842503U, + 0xb8c2019eU, + 0x8e663becU, + 0x5d55abaeU, + 0x2bab52f7U, + 0x5399a021U, + 0xc8e3d03fU, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0x10000000U, + 0xb8000000U, + 0x74000000U, + 0xbe000000U, + 0x97000000U, + 0xa3800000U, + 0xb5c00000U, + 0x50e00000U, + 0x65700000U, + 0x5cd80000U, + 0xaa5c0000U, + 0x691a0000U, + 0x3abd0000U, + 0xec6d8000U, + 0x76604000U, + 0xfe37e000U, + 0x6b7c1000U, + 0x7a8ba800U, + 0x10103400U, + 0xaf6b5a00U, + 0x5be0fd00U, + 0x94f6e680U, + 0x441a9840U, + 0xd83966a0U, + 0x412bd870U, + 0xeac10698U, + 0xef668874U, + 0x42b2ceb6U, + 0x413bec69U, + 0xfdaa5c99U, + 0xc086754cU, + 0x68442831U, + 0x92217421U, + 0x86133a05U, + 0x346dad08U, + 0xd2652eaaU, + 0x1837fc66U, + 0x9879f4beU, + 0xdf0a4145U, + 0x46d57212U, + 0xe20c8939U, + 0x1c505c8bU, + 0x3b4b7563U, + 0x3ef1a836U, + 0xbd1d342fU, + 0xb4beda14U, + 0x336cbd17U, + 0x9e30686U, + 0x39f7886dU, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0x70000000U, + 0x48000000U, + 0x74000000U, + 0x9e000000U, + 0x5b000000U, + 0x3f800000U, + 0xe3400000U, + 0xa1a00000U, + 0x52300000U, + 0xa6180000U, + 0xb55c0000U, + 0x1cfe0000U, + 0xdac90000U, + 0x92d28000U, + 0x348cc000U, + 0x63f16000U, + 0xc47c9000U, + 0xac0cc800U, + 0xf531f400U, + 0xd39f8e00U, + 0x31a1300U, + 0xe1da4a80U, + 0x683f8e40U, + 0x9c2b2aa0U, + 0xb7431e50U, + 0xefa7e298U, + 0xd132ea4cU, + 0xd5986c8aU, + 0xf418f951U, + 0xc5a262dU, + 0x727b7707U, + 0xb30f0c82U, + 0xfcb1696fU, + 0x6fda6e32U, + 0x4b3f4337U, + 0x7fab6291U, + 0xce072a4bU, + 0xc3038cbbU, + 0x9384a97aU, + 0x31418e1dU, + 0x58a31318U, + 0xdcb0cab7U, + 0xbfdf4e5eU, + 0x933c4aadU, + 0x33aa8e78U, + 0x6c07aabaU, + 0x7206de4eU, + 0x69040295U, + 0xb682ba5dU, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0xb0000000U, + 0x68000000U, + 0x94000000U, + 0xb2000000U, + 0x49000000U, + 0x4a800000U, + 0x77400000U, + 0xeea00000U, + 0xd0f00000U, + 0x10680000U, + 0xb72c0000U, + 0x618e0000U, + 0x5d7b0000U, + 0xb3168000U, + 0x339c000U, + 0x47336000U, + 0xdc8df000U, + 0xf5f93800U, + 0xf552ac00U, + 0xeb1a7600U, + 0xae84f300U, + 0x4d414c80U, + 0x23a263c0U, + 0xf0722ca0U, + 0xd22f93d0U, + 0x350b1488U, + 0x3d3d3ffcU, + 0xa0316292U, + 0xe909ccd9U, + 0xeb382e3eU, + 0x9337af0bU, + 0xce8c028cU, + 0xcff3cc6U, + 0xd7d7963fU, + 0x85cc30eU, + 0xf22514a9U, + 0xd4b63ffaU, + 0x794fe28fU, + 0x301c0ce6U, + 0x5d054e2fU, + 0xb8815f20U, + 0x9e43ba81U, + 0x142450d9U, + 0xcfb68035U, + 0x6ac9c00eU, + 0xd5db6028U, + 0x38e1f02fU, + 0xa0d7382eU, + 0xa5d9ac32U, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0x70000000U, + 0x28000000U, + 0xec000000U, + 0x6e000000U, + 0xff000000U, + 0x6f800000U, + 0x72c00000U, + 0xfd600000U, + 0xed00000U, + 0x83680000U, + 0x89ac0000U, + 0xca0000U, + 0x41f0000U, + 0x8a748000U, + 0xd559c000U, + 0xdbd4a000U, + 0x51e8d000U, + 0xa5eba800U, + 0x6fe91400U, + 0xc2ea2200U, + 0x646b1900U, + 0x4229c780U, + 0x200d48c0U, + 0x307d67a0U, + 0xd02598f0U, + 0xc976cf88U, + 0x4cdc8cecU, + 0x3214ed82U, + 0x310b95d7U, + 0x60ff2a19U, + 0x6d65dd28U, + 0x36d4cda2U, + 0x976a85c4U, + 0x53a82215U, + 0x55c8192bU, + 0x169f47b7U, + 0x63788deU, + 0xca7f47aeU, + 0x352788f7U, + 0x53f747aeU, + 0x5c9b88c6U, + 0x6b3547adU, + 0xccf888c9U, + 0x6363c79bU, + 0x19d248d0U, + 0xa0e9e7afU, + 0xe56c58f5U, + 0x2aaa6f82U, + 0x89485ce8U, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0x70000000U, + 0xd8000000U, + 0x2c000000U, + 0xbe000000U, + 0x41000000U, + 0xa2800000U, + 0xd0c00000U, + 0x71600000U, + 0xed900000U, + 0x76580000U, + 0x6a9c0000U, + 0xb5fe0000U, + 0x916f0000U, + 0xc1b48000U, + 0x31ee4000U, + 0x26712000U, + 0x70bd000U, + 0x83a55800U, + 0xdbf20c00U, + 0x44baa00U, + 0x7884f100U, + 0xcbc64580U, + 0x88e3bb40U, + 0xe4d765a0U, + 0x7e786b50U, + 0x572a3da8U, + 0xd216674cU, + 0x221f979eU, + 0x863d9647U, + 0x458d5231U, + 0x43606d17U, + 0x229317b9U, + 0x6ddfd673U, + 0x44da720dU, + 0x7258bd04U, + 0x609ccf8eU, + 0x46fc9a59U, + 0xbcec7812U, + 0x2af5dc2aU, + 0x1ec8f23bU, + 0xd445fd05U, + 0xaca76f97U, + 0xd0760a4cU, + 0xa20c8027U, + 0x3b224024U, + 0x70372025U, + 0xdca8d017U, + 0x3457d81dU, + 0x41bf4c1fU, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0xb0000000U, + 0xd8000000U, + 0x84000000U, + 0xc6000000U, + 0xaf000000U, + 0x19800000U, + 0xe4400000U, + 0x29600000U, + 0x73b00000U, + 0x81280000U, + 0x96c0000U, + 0xfa0e0000U, + 0x44bf0000U, + 0x5128000U, + 0x86b84000U, + 0x2c126000U, + 0x103b5000U, + 0x61d4a800U, + 0x5182400U, + 0xbf076600U, + 0x31807d00U, + 0x9844c880U, + 0xdb6525c0U, + 0xc2b6a8a0U, + 0xb3ae75d0U, + 0x32aa00a8U, + 0x982a51fcU, + 0x7eb669eU, + 0x13c92cddU, + 0x279b2e2fU, + 0xacc74936U, + 0x2fa36689U, + 0x29152cdfU, + 0x7cbd2e2bU, + 0x5114493fU, + 0x8bfe695U, + 0x6f126ce0U, + 0x93bdce04U, + 0x68975907U, + 0x5cf92eacU, + 0x9e7118e9U, + 0x640e0004U, + 0x2fbf003eU, + 0xfa92801fU, + 0x7df8402eU, + 0xc4f2602dU, + 0x3cb5032U, + 0xf9ca81fU, + 0xd0c42419U, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0x50000000U, + 0x68000000U, + 0x94000000U, + 0x3e000000U, + 0x63000000U, + 0x88800000U, + 0x66400000U, + 0xe4600000U, + 0xf0500000U, + 0xab980000U, + 0xe3dc0000U, + 0x6cba0000U, + 0x706f0000U, + 0xbbb58000U, + 0x230ac000U, + 0x9d646000U, + 0x7dd29000U, + 0x2a580800U, + 0x7b7c8c00U, + 0xbfccde00U, + 0x8e40ed00U, + 0xb067a780U, + 0x6e511740U, + 0x989bc7a0U, + 0x35f8770U, + 0x9ef9cf88U, + 0xaa0c0b64U, + 0x28e09192U, + 0x162641U, + 0x18fb561dU, + 0xf509a119U, + 0xaa62999fU, + 0x6b55aa70U, + 0x7f1a082eU, + 0x7f9f8c28U, + 0xbddb5e16U, + 0xffb92d11U, + 0xc0ec47b0U, + 0x21f64764U, + 0x6d6a2f89U, + 0x30375b78U, + 0x3dcb7992U, + 0x2741fa4eU, + 0x95e46033U, + 0xdb929028U, + 0x6e38083bU, + 0xdb2c8c3bU, + 0x7c54de02U, + 0xf99ced01U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x70000000U, + 0xb8000000U, + 0x4c000000U, + 0xd6000000U, + 0x55000000U, + 0x8d800000U, + 0x82c00000U, + 0x3fa00000U, + 0x1c300000U, + 0xd280000U, + 0x21ec0000U, + 0x274e0000U, + 0x70fd0000U, + 0x62168000U, + 0x5df4000U, + 0x26632000U, + 0xe7109000U, + 0x6058b800U, + 0x40a59400U, + 0x8ab3a200U, + 0xb6a4f00U, + 0xf085680U, + 0x271c0bc0U, + 0x49c376a0U, + 0x53209bd0U, + 0xe975ceb8U, + 0x43480fccU, + 0x62f8ec96U, + 0x751100dfU, + 0x375d9a23U, + 0x12209b0aU, + 0xcef0d4a0U, + 0x9a8ad4faU, + 0xb9dd9817U, + 0x8640431U, + 0x9e139a02U, + 0x4bdd9b26U, + 0x2f665488U, + 0x749594e0U, + 0x439eb808U, + 0x68849417U, + 0x97432220U, + 0xe1640f10U, + 0x3d93f6a1U, + 0xb01edbe0U, + 0x3b466ebdU, + 0x766dfe7U, + 0xb093f4a2U, + 0x19a44d2U, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0x70000000U, + 0x68000000U, + 0x24000000U, + 0x66000000U, + 0x51000000U, + 0x2b800000U, + 0x9ac00000U, + 0x7a00000U, + 0xaf300000U, + 0xa4b80000U, + 0xc07c0000U, + 0x1ada0000U, + 0x7c6f0000U, + 0x5148000U, + 0xd04bc000U, + 0xf0e0e000U, + 0xd354d000U, + 0xefaed800U, + 0x5364400U, + 0x77b97200U, + 0x7cff1f00U, + 0x8a9a7e80U, + 0xa28a7f40U, + 0x13429ea0U, + 0xba62af70U, + 0x6a164688U, + 0x86cbeb6cU, + 0xd3a3b492U, + 0x61333465U, + 0x71bb2a0bU, + 0xfdfe9b31U, + 0xb919eca1U, + 0x744eb067U, + 0x56e2b828U, + 0x22555420U, + 0xb42d4a13U, + 0xf7f28b35U, + 0x541954beU, + 0xb5c8e46bU, + 0x7f217216U, + 0x49731f14U, + 0x93587eb0U, + 0xc1a97f55U, + 0xc0341ebbU, + 0xf23a6f4cU, + 0xe33826a3U, + 0xa8bbfb56U, + 0xe2790ca6U, + 0xfdda605eU, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0xf0000000U, + 0x48000000U, + 0xb4000000U, + 0x46000000U, + 0xdb000000U, + 0xc8800000U, + 0x43c00000U, + 0x77200000U, + 0x28900000U, + 0xd5f80000U, + 0xc43c0000U, + 0x9e1e0000U, + 0xcd0f0000U, + 0xd7b08000U, + 0x296ec000U, + 0x87c56000U, + 0x39205000U, + 0x67920800U, + 0xab788c00U, + 0x14fef200U, + 0x95ba9b00U, + 0xe05b9780U, + 0xae681440U, + 0xd46f7a0U, + 0x8fe44450U, + 0x4732ffa8U, + 0x6afc86cU, + 0x9ae28dbaU, + 0x80b49341U, + 0x1becfa2bU, + 0xcd021737U, + 0xeb8565b9U, + 0x57428f77U, + 0x36e5600cU, + 0x8ab05011U, + 0x5aea0803U, + 0xdc848c21U, + 0xb5c0f22fU, + 0xc4259b35U, + 0xa41317abU, + 0x983ad474U, + 0xdc1d9794U, + 0x380b1446U, + 0x8030779fU, + 0xac29847bU, + 0xdc211f87U, + 0xe812587bU, + 0x23b6589U, + 0x51d8f6eU, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0xb0000000U, + 0x48000000U, + 0xb4000000U, + 0x22000000U, + 0xdb000000U, + 0x54800000U, + 0xd1400000U, + 0xb9600000U, + 0x64500000U, + 0x5aa80000U, + 0xd0ec0000U, + 0x7d0e0000U, + 0x28190000U, + 0x7bd48000U, + 0x876ac000U, + 0x14c96000U, + 0xce3d7000U, + 0x13e12800U, + 0xe8104c00U, + 0x564b2600U, + 0xa6795d00U, + 0xc5023780U, + 0xb985dec0U, + 0x2cc557a0U, + 0x1fa1aed0U, + 0xa4f0ff98U, + 0xc0db22fcU, + 0xae72b98aU, + 0x1c9f0fd1U, + 0x5a91a602U, + 0x960a9d27U, + 0x749fd7b7U, + 0xfe926ec3U, + 0xac0d1f81U, + 0xe39c92e6U, + 0x7412f1bdU, + 0x304e33d3U, + 0xf77da838U, + 0x4e868c02U, + 0x5644461bU, + 0x2be12d31U, + 0xb4119f9dU, + 0x904a52c3U, + 0xa77d9193U, + 0xb68643e9U, + 0xaa46003fU, + 0xbde50024U, + 0x4d128028U, + 0x1fcfc028U, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0x70000000U, + 0xa8000000U, + 0xac000000U, + 0x4a000000U, + 0x21000000U, + 0x91800000U, + 0x59c00000U, + 0x8e00000U, + 0xb5300000U, + 0xdbe80000U, + 0xcb2c0000U, + 0x5e4e0000U, + 0x68b90000U, + 0x42b28000U, + 0xa92bc000U, + 0x9348a000U, + 0x533ff000U, + 0x4a727800U, + 0x984c3400U, + 0xd3b8da00U, + 0xca32ad00U, + 0x156cdc80U, + 0x8c6f47c0U, + 0x29ea7ca0U, + 0xde29b7d0U, + 0x61ca8498U, + 0x867e43ccU, + 0x18d2feb2U, + 0x595f1ee7U, + 0xc2025a20U, + 0x5d056d2fU, + 0xe3827ca4U, + 0xcc5b7e9U, + 0xd76484beU, + 0x2bf743c8U, + 0x29887e9aU, + 0x9758decdU, + 0x4504fa35U, + 0x47839d34U, + 0x7ac284b3U, + 0x646243d0U, + 0x9f74fea9U, + 0x7ca1ef3U, + 0xad7eda1dU, + 0x4857ad3dU, + 0xe1185c90U, + 0x3b2187d4U, + 0x4cd65cbcU, + 0xc75887d5U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0xd0000000U, + 0xf8000000U, + 0xd4000000U, + 0x4a000000U, + 0xf000000U, + 0x4a800000U, + 0xed400000U, + 0x44e00000U, + 0xd7500000U, + 0xaa780000U, + 0xe03c0000U, + 0x25a0000U, + 0xc6490000U, + 0xbdd78000U, + 0x373c4000U, + 0xecd8e000U, + 0x290fb000U, + 0xa324800U, + 0xcced5c00U, + 0x3ae15600U, + 0x82568100U, + 0x77f99380U, + 0x43f8ac40U, + 0x19fb73a0U, + 0x8efe1c70U, + 0xc07ebbb8U, + 0x9f3f0044U, + 0xdf0d86U, + 0xd70a3171U, + 0x9f36d614U, + 0x716ac132U, + 0x492173a6U, + 0x61f71c79U, + 0xeb493b8fU, + 0x74534048U, + 0xbeffed83U, + 0x28798171U, + 0xd33e9e2fU, + 0x4ede9d36U, + 0x6a0fa5a0U, + 0xeb1dd73U, + 0x9caa4820U, + 0xef815c33U, + 0xb8c3561fU, + 0x7b23813cU, + 0x7af4138fU, + 0x8bcdec57U, + 0x461413a3U, + 0x489dec46U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0x50000000U, + 0x98000000U, + 0xb4000000U, + 0xa2000000U, + 0xdf000000U, + 0x60800000U, + 0x6dc00000U, + 0xffe00000U, + 0xf2700000U, + 0x18a80000U, + 0x26c0000U, + 0x10a0000U, + 0x60bb0000U, + 0x86f18000U, + 0x47694000U, + 0x9a8ee000U, + 0x77fcf000U, + 0x2fd18800U, + 0x1078cc00U, + 0x7690c200U, + 0x505c8d00U, + 0x6c017680U, + 0xf6010fc0U, + 0xd0596a0U, + 0x7786fff0U, + 0x21459ea8U, + 0x842773e4U, + 0x7093bc8eU, + 0x555b0ec9U, + 0x17814226U, + 0x9145cd3eU, + 0x6c27969eU, + 0xc91ffd5U, + 0xdb5e1e89U, + 0xde8533cdU, + 0x8cc4dca1U, + 0xbe62bef4U, + 0xfe342a2fU, + 0xbb0af136U, + 0xcbbf5c9eU, + 0x6470fefbU, + 0xa5ab4a37U, + 0x9def4125U, + 0x5c48348bU, + 0x6a98c2d4U, + 0x3f600036U, + 0xfb00026U, + 0x5f480032U, + 0x141c0037U, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0x30000000U, + 0x58000000U, + 0xfc000000U, + 0x46000000U, + 0x3d000000U, + 0x7f800000U, + 0x8cc00000U, + 0x39600000U, + 0xbaf00000U, + 0x68f80000U, + 0x953c0000U, + 0x8dde0000U, + 0x9ae90000U, + 0xc2f08000U, + 0x4fe4000U, + 0x5b3fa000U, + 0x24d89000U, + 0x76ff800U, + 0xc9374400U, + 0x391a0200U, + 0x2f881900U, + 0x86031680U, + 0x9d00c540U, + 0xaf82b6a0U, + 0xe4c15550U, + 0x9d65ce98U, + 0xf4515cU, + 0x13fe6c8eU, + 0xd7bdd863U, + 0x7e9a021fU, + 0x2f48192cU, + 0x416316a0U, + 0xd6f0c55fU, + 0xa6fab6b6U, + 0x3c3d556dU, + 0x105bce82U, + 0x912d517bU, + 0xff16eca6U, + 0x704f986dU, + 0xf9e3a218U, + 0xbeb58900U, + 0x61da6ebfU, + 0x14ecc154U, + 0x8bf194b2U, + 0xa97a9c71U, + 0x8f8002bU, + 0xe53c000aU, + 0x35de003eU, + 0x56e9002aU, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0x90000000U, + 0x68000000U, + 0xc4000000U, + 0x5e000000U, + 0xb9000000U, + 0x77800000U, + 0x37400000U, + 0xbfa00000U, + 0xe3300000U, + 0x3fe80000U, + 0x7dac0000U, + 0x5f8e0000U, + 0x34fb0000U, + 0x46378000U, + 0x6a68c000U, + 0xa1e8e000U, + 0x24ad1000U, + 0x18095800U, + 0xfbbd2400U, + 0x5591fe00U, + 0x135cd300U, + 0x7902f280U, + 0x978679c0U, + 0x74412a0U, + 0x47a069d0U, + 0x4f32ca88U, + 0xa5e98df4U, + 0x9aadd492U, + 0x910f4ec5U, + 0x743ffe05U, + 0xced7d32bU, + 0x36fd72b8U, + 0x7d32b9f6U, + 0x66eaf29fU, + 0x3a2a79faU, + 0x90ca12a2U, + 0x275b69f0U, + 0x3f054ab8U, + 0xb2814de2U, + 0x12c534a3U, + 0x3be25edbU, + 0xa416a639U, + 0xe11af727U, + 0xe3248cbfU, + 0xf0f26aeeU, + 0x7f8e003aU, + 0xe4fb000cU, + 0x8e378030U, + 0x3e68c03bU, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0x30000000U, + 0xc8000000U, + 0x94000000U, + 0xfe000000U, + 0xdf000000U, + 0x19800000U, + 0x59400000U, + 0x3c600000U, + 0xefd00000U, + 0xd6c80000U, + 0x7c8c0000U, + 0xdb6a0000U, + 0x8fd0000U, + 0x22d48000U, + 0x724ec000U, + 0x69486000U, + 0xb6ce9000U, + 0x8c8ee800U, + 0xf369e400U, + 0xacf9ce00U, + 0x14d37d00U, + 0x39490b80U, + 0x8ecb89c0U, + 0x308b6ba0U, + 0xa96819f0U, + 0x45f90398U, + 0x46533dfcU, + 0x878aadaaU, + 0x34efd0d9U, + 0xfabbce15U, + 0xc9327d2eU, + 0xd3df8bb3U, + 0xe6449c8U, + 0x82d58ba4U, + 0x624949cfU, + 0x71490b9bU, + 0xdacb89f9U, + 0x2e8b6ba0U, + 0x466819e9U, + 0x94790391U, + 0x8b133dd4U, + 0x45eaad82U, + 0x43fd0d4U, + 0x35f3ce1bU, + 0xecfe7d0cU, + 0x34d58b93U, + 0xe94949e4U, + 0x76c90bbbU, + 0x6c8b89e5U, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0x90000000U, + 0xf8000000U, + 0x94000000U, + 0xe2000000U, + 0x1f000000U, + 0xc1800000U, + 0xd0400000U, + 0x9b600000U, + 0x60700000U, + 0xacf80000U, + 0x41bc0000U, + 0xa45e0000U, + 0xa5e90000U, + 0x2a358000U, + 0xfc9e4000U, + 0xe24ce000U, + 0x57e6f000U, + 0x46b18800U, + 0xaa5ec400U, + 0x8ce82600U, + 0xf6b1cd00U, + 0x6259e680U, + 0x90ec5540U, + 0xe8b306a0U, + 0xf35fa550U, + 0x38690e98U, + 0x4762174U, + 0x66f848a6U, + 0xd2bf5c51U, + 0x83dcc61eU, + 0x70ab3d16U, + 0xfbd66e8eU, + 0x6f2b9172U, + 0x1a96a0b0U, + 0x2ccc285eU, + 0xfe22081dU, + 0x7995840fU, + 0x234f4612U, + 0xa7607d14U, + 0x4e710ea8U, + 0xb5fa217cU, + 0x153e4898U, + 0xc69a5c70U, + 0x594f4604U, + 0xfc607d31U, + 0x75f10e8bU, + 0x7eba2174U, + 0x55de48b6U, + 0xfdaa5c6dU, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0x90000000U, + 0xb8000000U, + 0xec000000U, + 0xee000000U, + 0xdd000000U, + 0x24800000U, + 0x2e400000U, + 0xfae00000U, + 0xb4500000U, + 0x50180000U, + 0x955c0000U, + 0xa3a0000U, + 0x52ab0000U, + 0xcf178000U, + 0x8a7e4000U, + 0x954b2000U, + 0xefc35000U, + 0xdc243800U, + 0xaef25c00U, + 0x53a88e00U, + 0xed97c900U, + 0xd3c3380U, + 0xd92d1f40U, + 0xfed513a0U, + 0x63594f70U, + 0x6b3caba8U, + 0x2e5354U, + 0x40508586U, + 0x2188a6fU, + 0x3e59ae3dU, + 0x8fbf9918U, + 0xe6f8b94U, + 0x2ab10363U, + 0xe4ebd82U, + 0x8241d65aU, + 0xf4e6a030U, + 0xd9561020U, + 0x5c989807U, + 0xef1f4c08U, + 0xf2df960eU, + 0xd5fac532U, + 0x668a85b2U, + 0x15e38a54U, + 0x4bd62e34U, + 0xf3ddd930U, + 0xf77eab97U, + 0xe1c95365U, + 0x5985059dU, + 0x5ac1ca67U, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0xd0000000U, + 0x38000000U, + 0x84000000U, + 0x6a000000U, + 0xb3000000U, + 0x21800000U, + 0x2e400000U, + 0xc0a00000U, + 0x70f00000U, + 0x91980000U, + 0x4edc0000U, + 0xc0fe0000U, + 0xa1cf0000U, + 0xefb18000U, + 0x3fbc4000U, + 0xffee6000U, + 0xb6863000U, + 0xf5c02800U, + 0x45e46400U, + 0xc5d1f600U, + 0x9d2e0300U, + 0x28e68c80U, + 0xb554b440U, + 0x6deeeca0U, + 0xe1818450U, + 0x4e4144a8U, + 0x30a6a064U, + 0x98f752a6U, + 0x2d9ed345U, + 0xa0d9963cU, + 0x19fb3329U, + 0x33492494U, + 0xe0739072U, + 0xd158fa8cU, + 0x4fb9f74aU, + 0x57ef802eU, + 0x2a83400cU, + 0xcbc7e02aU, + 0xa4e67039U, + 0xd350480bU, + 0xf8ed5425U, + 0x75005e02U, + 0x2486273eU, + 0xa2c11ab1U, + 0xfe60874cU, + 0xb096483cU, + 0xc00e540bU, + 0x9857de25U, + 0x3d696739U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0xb0000000U, + 0xf8000000U, + 0x94000000U, + 0x2e000000U, + 0xd7000000U, + 0x86800000U, + 0x59400000U, + 0x19e00000U, + 0x28500000U, + 0x83d80000U, + 0xd79c0000U, + 0xe1fa0000U, + 0xa96b0000U, + 0x30968000U, + 0xcdfd4000U, + 0xf36be000U, + 0x59959000U, + 0xd47ba800U, + 0x40afdc00U, + 0xa3317600U, + 0x1ccce900U, + 0xbaa22380U, + 0x28b4d140U, + 0x6a0bc3a0U, + 0xc3864170U, + 0x1ac4eba8U, + 0xc323dd5cU, + 0xcb72fd96U, + 0xf8ace479U, + 0xd736161dU, + 0xa2cf390cU, + 0x25a4eb9cU, + 0xc233dd6aU, + 0x894afdb2U, + 0x2360e47cU, + 0x63141624U, + 0x9f383900U, + 0x5c486b89U, + 0x28e59d4aU, + 0xd5d79d87U, + 0xc6183446U, + 0xde3c5e2aU, + 0x79ce7505U, + 0x4920b5acU, + 0xa71a84aU, + 0x1d28481eU, + 0x96f64c2dU, + 0xcd68de35U, + 0x694351bU, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0xd0000000U, + 0x98000000U, + 0x6c000000U, + 0xd6000000U, + 0x37000000U, + 0x2d800000U, + 0x11c00000U, + 0xd3e00000U, + 0x71700000U, + 0x2c80000U, + 0x1e8c0000U, + 0xacaa0000U, + 0x26390000U, + 0x71878000U, + 0x4fc74000U, + 0x70e22000U, + 0x36f79000U, + 0x6a08a800U, + 0xbbe90400U, + 0x379cea00U, + 0xd1d7c500U, + 0xe01f7680U, + 0x8110ccc0U, + 0x997ad6a0U, + 0x84201cf0U, + 0xad905eb8U, + 0x823e88c4U, + 0x93841c9eU, + 0xa2c049dfU, + 0x6c67802bU, + 0xa5b74012U, + 0xe9aa2000U, + 0xdebb9026U, + 0xa0c2a82cU, + 0x9160040eU, + 0x41336a0aU, + 0xc6ec8512U, + 0x131f5694U, + 0x9e925cd6U, + 0xfdbffea3U, + 0x274758f1U, + 0x99a11493U, + 0x34559dd4U, + 0xc5dbe22fU, + 0x88f71126U, + 0xd90e949cU, + 0x46edde6U, + 0xe35bc20bU, + 0x3ab58115U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0xf0000000U, + 0x18000000U, + 0x4c000000U, + 0x46000000U, + 0xf7000000U, + 0x18800000U, + 0x84400000U, + 0xbe600000U, + 0xcf500000U, + 0xc0380000U, + 0xa4fc0000U, + 0x62de0000U, + 0x2ded0000U, + 0x69828000U, + 0x4bc64000U, + 0xb2a62000U, + 0x1d771000U, + 0xe50f2800U, + 0xa1932c00U, + 0xb71b6e00U, + 0x449ad00U, + 0xba76ef80U, + 0x35886a40U, + 0xe1d24fa0U, + 0xeb793a50U, + 0x2e1b47b8U, + 0x9fcd066cU, + 0xbcb701beU, + 0x56ab877fU, + 0x2b64802fU, + 0x72d74002U, + 0xc1faa009U, + 0xc75c5033U, + 0x602b883eU, + 0x4c227c3cU, + 0xbe326608U, + 0xcbed9106U, + 0x4e82a981U, + 0xdb42eb70U, + 0x92e7ce3dU, + 0xb114fd13U, + 0xd759e786U, + 0xc82d564bU, + 0x782289b1U, + 0x4434fb75U, + 0x62ec660bU, + 0xed00912dU, + 0x180298eU, + 0x5fc4ab6dU, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0x70000000U, + 0xb8000000U, + 0x64000000U, + 0xd6000000U, + 0x8b000000U, + 0xf1800000U, + 0x7dc00000U, + 0x9fa00000U, + 0xf300000U, + 0xf6380000U, + 0x4e7c0000U, + 0x121e0000U, + 0x45890000U, + 0x37028000U, + 0x73834000U, + 0x78c26000U, + 0xf123d000U, + 0xed740800U, + 0xfb5e4400U, + 0xf96a8a00U, + 0x1dd2c700U, + 0x93ede680U, + 0x19905b40U, + 0x4d8d06a0U, + 0x4b00cb50U, + 0x51836e98U, + 0xedc15f4cU, + 0x57a3ecb6U, + 0xd334dc55U, + 0x443e0003U, + 0x13790037U, + 0x689a801fU, + 0xc9cf4038U, + 0xd5646000U, + 0xe316d027U, + 0x81c88813U, + 0x4964042dU, + 0xb1126a22U, + 0xacce571eU, + 0x8be58e93U, + 0x5954cf5dU, + 0x98a9048aU, + 0x90730872U, + 0x51d86234U, + 0x5d291303U, + 0x53b58480U, + 0x979485cU, + 0xd9988204U, + 0x59498328U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0xd0000000U, + 0x18000000U, + 0x3c000000U, + 0x16000000U, + 0xc5000000U, + 0x43800000U, + 0xd1c00000U, + 0x7b200000U, + 0x11300000U, + 0xacb80000U, + 0xb0fc0000U, + 0x231a0000U, + 0x7c890000U, + 0x5c78000U, + 0x39234000U, + 0x5634a000U, + 0xc83f1000U, + 0xd5bbb800U, + 0x257f6400U, + 0x57db0a00U, + 0x942ee300U, + 0xdd308280U, + 0xd2ba1b40U, + 0xe1fba2a0U, + 0x829a4b70U, + 0x5a4ebab8U, + 0xd2633f44U, + 0x695188beU, + 0xd6edf84bU, + 0x8094a03bU, + 0xe1cf103aU, + 0x2fa3b80bU, + 0x7c73643eU, + 0xeed90a0dU, + 0x61abe30eU, + 0x79f502a0U, + 0x221c5b6dU, + 0x50a828dU, + 0x7f031b73U, + 0x28842284U, + 0xdb450b7dU, + 0x37601a89U, + 0x5ad52f44U, + 0xaf2db092U, + 0xfb1dc50U, + 0xc2fb0a1fU, + 0x6c1ee31eU, + 0x5c088297U, + 0x9a861b50U, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0x30000000U, + 0xc8000000U, + 0xbc000000U, + 0xbe000000U, + 0x15000000U, + 0x38800000U, + 0x4cc00000U, + 0x7d200000U, + 0xbf900000U, + 0x9380000U, + 0x1b7c0000U, + 0xbb9a0000U, + 0x2baf0000U, + 0xf6c68000U, + 0xc224c000U, + 0x172000U, + 0x2e7fd000U, + 0x731af800U, + 0xf6b7c00U, + 0x7e1fa00U, + 0xbb26300U, + 0xa02f7780U, + 0xb3821a40U, + 0x9146d7a0U, + 0x61650a70U, + 0x2710f88U, + 0xbd8ea67cU, + 0x4d48dbaU, + 0x2f5f7953U, + 0xd28f2015U, + 0x2353d016U, + 0xec18f83bU, + 0x40e87c35U, + 0x48a57a0cU, + 0xefd5a316U, + 0x62dcd7bcU, + 0x36ca0a7fU, + 0xeab78f9dU, + 0x5aaa6640U, + 0xf443ad86U, + 0xf1e0a96fU, + 0x62b5d82bU, + 0x86a8ac24U, + 0xda41023aU, + 0x1ce61f14U, + 0x2e300db3U, + 0xc868b943U, + 0xc64802bU, + 0x8ef7c02fU, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x90000000U, + 0x98000000U, + 0x4c000000U, + 0xc6000000U, + 0xd5000000U, + 0xb5800000U, + 0x70400000U, + 0x5be00000U, + 0xb2300000U, + 0x4ec80000U, + 0x790c0000U, + 0xddae0000U, + 0x6afd0000U, + 0x5ac18000U, + 0xad214000U, + 0x9112000U, + 0x6adc1000U, + 0x7a523800U, + 0x89bd5400U, + 0x21a1b600U, + 0xbad4d900U, + 0xfc7ea080U, + 0x62045ac0U, + 0x170600a0U, + 0x12850ad0U, + 0xac318b8U, + 0x15254ef4U, + 0xb517169eU, + 0xa4dc83e7U, + 0x7b56a02fU, + 0xb63c5012U, + 0x42e49822U, + 0x81b1041eU, + 0x8b8d2e2cU, + 0x769dd16U, + 0x87dd8e99U, + 0x33d087dbU, + 0x57fa0e3fU, + 0xeb44cd24U, + 0xaf6036bcU, + 0x9df193e7U, + 0xe66b1836U, + 0x685d4436U, + 0xa8958e14U, + 0xb0988d18U, + 0xc2b09689U, + 0x530cc3f2U, + 0x7ea8002cU, + 0x627c0007U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x90000000U, + 0x28000000U, + 0xc4000000U, + 0x7e000000U, + 0x3d000000U, + 0x4e800000U, + 0xd6400000U, + 0x3e200000U, + 0xaf100000U, + 0xda580000U, + 0xf79c0000U, + 0x257e0000U, + 0xc40d0000U, + 0xce618000U, + 0x9034c000U, + 0xc9c8e000U, + 0xec841000U, + 0xc9477800U, + 0x2fa54c00U, + 0x8d25e00U, + 0xd3bd9f00U, + 0x796a6f80U, + 0xb5d11940U, + 0xdd3d0fa0U, + 0xcf2cc950U, + 0x1bf317b8U, + 0x5a295574U, + 0xd176d1b2U, + 0x92699645U, + 0x4257982dU, + 0x5bfd5c0aU, + 0x8a4b261eU, + 0xec45d32fU, + 0x3d21b189U, + 0xbc944660U, + 0xd2998015U, + 0x37f8c03cU, + 0x704ee03bU, + 0xcf451036U, + 0xdea0f809U, + 0xc508c32U, + 0xfefd3e21U, + 0xd8cc4f1cU, + 0x380277a9U, + 0xac058550U, + 0xda07499eU, + 0xd305ca5bU, + 0x5b833e12U, + 0x5cc14f20U, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0x90000000U, + 0x8000000U, + 0xa4000000U, + 0xda000000U, + 0x77000000U, + 0xf9800000U, + 0xeac00000U, + 0x6c600000U, + 0xe5b00000U, + 0xfab80000U, + 0xc6fc0000U, + 0x75de0000U, + 0xd8cf0000U, + 0x9ea38000U, + 0x65d7c000U, + 0x4108e000U, + 0x1433000U, + 0x35a20800U, + 0x1a568400U, + 0x1ac97200U, + 0x5a40100U, + 0xc253f480U, + 0x96cb1d40U, + 0xeba694a0U, + 0x6750ed50U, + 0xbc4ffca8U, + 0x22e29974U, + 0x96f466aaU, + 0xcc1f2c5dU, + 0xd72ae81cU, + 0xc6d5b400U, + 0x9a8b7a02U, + 0x8082852aU, + 0x46428691U, + 0x14231c77U, + 0x7c93600dU, + 0x98a8f03fU, + 0x4514e80eU, + 0x126ab420U, + 0x9970fa1dU, + 0x6fd9450eU, + 0xcfcc66a2U, + 0xd7232c43U, + 0x1714e839U, + 0x816ab403U, + 0x9af0fa2fU, + 0x62194503U, + 0x522c6697U, + 0x7c532c7aU, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0x10000000U, + 0x68000000U, + 0x84000000U, + 0xda000000U, + 0x7b000000U, + 0x90800000U, + 0xc00000U, + 0x9ee00000U, + 0xad500000U, + 0x85480000U, + 0xba0c0000U, + 0xe6aa0000U, + 0x1adb0000U, + 0x9ea38000U, + 0x9b74c000U, + 0x12fee000U, + 0x58153000U, + 0xcaec6800U, + 0x52f8ac00U, + 0xb8130a00U, + 0xfaefed00U, + 0x2afcbf80U, + 0x5412a1c0U, + 0xa4ebdfa0U, + 0x8bf851f0U, + 0xbf92d7a8U, + 0x34ad0df4U, + 0x15d955b2U, + 0x8c247cd5U, + 0x1cb10804U, + 0x2a995c0bU, + 0xd0818200U, + 0xe0c2713bU, + 0xaee3ddafU, + 0xd555e0d4U, + 0x694c6a34U, + 0xe4091d2bU, + 0x47afb793U, + 0xf15cfdc7U, + 0xee3dda2U, + 0x555e0f4U, + 0x214c6a25U, + 0x70091d32U, + 0xf5afb79eU, + 0xe5cfdc7U, + 0x4463dd94U, + 0x7e95e0feU, + 0x2f2c6a09U, + 0xdd991d2dU, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0xb0000000U, + 0x48000000U, + 0xe4000000U, + 0xa6000000U, + 0xdd000000U, + 0x2f800000U, + 0xac00000U, + 0x94a00000U, + 0x1c900000U, + 0xdee80000U, + 0xbaac0000U, + 0xc14a0000U, + 0xfcbb0000U, + 0x4ee68000U, + 0x8670c000U, + 0x7699e000U, + 0xd531d000U, + 0x2df8b800U, + 0x4e808400U, + 0x5f417200U, + 0x69602700U, + 0x88b7cb80U, + 0xd43d90c0U, + 0xeca2aba0U, + 0x709780f0U, + 0xbced73a8U, + 0x71aa14dcU, + 0x7bcf59baU, + 0x3dfc67e5U, + 0x7685d813U, + 0xd3469412U, + 0x9b64aa38U, + 0xbbb6b320U, + 0xc2bb6195U, + 0x6fe723cbU, + 0x33f3ca10U, + 0x1b5ba32cU, + 0xb91039a1U, + 0x8b2d77f8U, + 0x5a8c8003U, + 0x959bc03eU, + 0xdbb76028U, + 0x92bd101eU, + 0xb7e3582cU, + 0x2ff65403U, + 0x115d4a1eU, + 0x2617632dU, + 0xdfabd99fU, + 0xa2cba7e5U, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0x30000000U, + 0x58000000U, + 0xc4000000U, + 0x42000000U, + 0xdb000000U, + 0x72800000U, + 0x48400000U, + 0x55a00000U, + 0xd1f00000U, + 0x8c780000U, + 0xafbc0000U, + 0x5bde0000U, + 0x5490000U, + 0x75208000U, + 0x8ab64000U, + 0xe75a6000U, + 0xd80b7000U, + 0x87062800U, + 0x54847c00U, + 0x1439e00U, + 0x9426e300U, + 0x77311480U, + 0x179e3340U, + 0xb2edf4a0U, + 0xafd60350U, + 0x1c4f3c98U, + 0x9ca64f5cU, + 0x50706a8eU, + 0xcab9e06dU, + 0x45ea81eU, + 0x1e8e3c1bU, + 0x3547fe22U, + 0x2e249319U, + 0xb837bc8fU, + 0x4f1c0f61U, + 0xbdac0a9aU, + 0xef7906bU, + 0x1cfe0024U, + 0xecf90010U, + 0x14f88013U, + 0xfa4001U, + 0x2afc6017U, + 0x6dfe7039U, + 0x9978a81fU, + 0x483b3c24U, + 0xb4197e0cU, + 0x5f2bd302U, + 0xceb55cb3U, + 0xe55d3f5cU, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0x30000000U, + 0x98000000U, + 0xac000000U, + 0x86000000U, + 0xc1000000U, + 0x14800000U, + 0xc0c00000U, + 0x32e00000U, + 0x5100000U, + 0x79980000U, + 0x8adc0000U, + 0x7d7a0000U, + 0x16cb0000U, + 0x9c628000U, + 0xead24000U, + 0x8af92000U, + 0x41881000U, + 0x29c19800U, + 0xd260fc00U, + 0xcfd41a00U, + 0x3c7c7d00U, + 0xc24abd80U, + 0x7ca72540U, + 0xe8331da0U, + 0x17ea7570U, + 0x941325a8U, + 0x251bd97cU, + 0x6e1d078eU, + 0xcd9d0857U, + 0x60db182fU, + 0x1a7ebc27U, + 0xf34f3a0aU, + 0xd0236d27U, + 0xb4f3a58eU, + 0x3b0e996aU, + 0xfc04a796U, + 0xce005853U, + 0xe5032020U, + 0x9683102aU, + 0xb3c31804U, + 0xcd62bc3bU, + 0x96553a03U, + 0x5e386d16U, + 0x696925b4U, + 0xf3d0d95bU, + 0xd27f8795U, + 0x174f4850U, + 0x72223811U, + 0xf7f6ac2bU, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0xb0000000U, + 0x28000000U, + 0x74000000U, + 0x66000000U, + 0xaf000000U, + 0x94800000U, + 0x86c00000U, + 0x200000U, + 0x8c500000U, + 0xc9380000U, + 0x5a7c0000U, + 0x631e0000U, + 0x53290000U, + 0xfba48000U, + 0x3e11c000U, + 0x1fd86000U, + 0x4e085000U, + 0x7a72a800U, + 0xd26c4c00U, + 0xbc05a00U, + 0x35a32b00U, + 0xa5111180U, + 0xd5b0c40U, + 0xd7cbf1a0U, + 0xc6d79c50U, + 0xacfbb998U, + 0xa4db407cU, + 0x4c8dab92U, + 0x9bb1b761U, + 0x82c8280bU, + 0x4f548c0aU, + 0x27bcba0eU, + 0x81babb3bU, + 0x8ebbd9b6U, + 0x4a3f1074U, + 0x54f903aeU, + 0x8d8fb6fU, + 0x968af217U, + 0x96b3673cU, + 0xf74f4ba6U, + 0x8611275fU, + 0x53de6020U, + 0x240d5038U, + 0x5f70283bU, + 0xd3e88c1aU, + 0xa482ba0aU, + 0xeec3bb3aU, + 0x94275999U, + 0x5a52d077U, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0xf0000000U, + 0xa8000000U, + 0x84000000U, + 0xea000000U, + 0xb7000000U, + 0xff800000U, + 0x7a400000U, + 0xa0600000U, + 0xcd100000U, + 0xbad80000U, + 0xa61c0000U, + 0xfeba0000U, + 0xb10d0000U, + 0xbb628000U, + 0x9c93c000U, + 0x7d99e000U, + 0xbefdb000U, + 0x1e698800U, + 0x55f43400U, + 0x9a084600U, + 0xa2e55500U, + 0x2fd7a580U, + 0x277c5f40U, + 0x6d2ec5a0U, + 0xef132f70U, + 0xb9de2d98U, + 0xfb986b4cU, + 0x47fe83b2U, + 0xacea7a6dU, + 0x3f338808U, + 0x93a93400U, + 0xdbd2c617U, + 0xa57a952eU, + 0xbe2c4587U, + 0xa90ef61U, + 0xdc9fcda3U, + 0x2079db59U, + 0x1aad0b9eU, + 0x1534e64U, + 0xabb94e25U, + 0xad8fa13cU, + 0x6ca48388U, + 0x2db77a7dU, + 0x29690806U, + 0x6a76f413U, + 0x492605U, + 0xf2862509U, + 0x4ac54da6U, + 0x19a61b7eU, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0x50000000U, + 0x48000000U, + 0xc000000U, + 0xfa000000U, + 0x93000000U, + 0xb3800000U, + 0x89400000U, + 0x2e200000U, + 0xbe900000U, + 0x4b280000U, + 0x74ec0000U, + 0x990a0000U, + 0x87d0000U, + 0xb5278000U, + 0x2111c000U, + 0x886fa000U, + 0xd1cb7000U, + 0xd01b6800U, + 0x3c13b400U, + 0x86e91e00U, + 0x260fff00U, + 0xf1fff380U, + 0xb76266c0U, + 0xf8b5d3a0U, + 0x49b9d6f0U, + 0xddc49b98U, + 0x3ae1d2e4U, + 0xd4f4cd8aU, + 0x5d1a29e7U, + 0x9a916834U, + 0x2d2eb403U, + 0xb5ee9e38U, + 0xe58e3f11U, + 0x80b8538bU, + 0x8d4516eaU, + 0xf824bbabU, + 0x679762c4U, + 0x73aa058bU, + 0xa2fedf6U, + 0xc86c9e18U, + 0xf1cf3f1fU, + 0x601dd3afU, + 0x2415d6d0U, + 0xc2ee9bbdU, + 0xd00cd2c4U, + 0x98fb4d9bU, + 0x97e7e9f7U, + 0xc274c834U, + 0xeed8c428U, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0x70000000U, + 0x98000000U, + 0x14000000U, + 0x82000000U, + 0x61000000U, + 0xf1800000U, + 0x5e400000U, + 0xbe600000U, + 0x5b100000U, + 0x5d980000U, + 0x7d5c0000U, + 0x8bfa0000U, + 0x6a4f0000U, + 0xe0648000U, + 0x84144000U, + 0x631ae000U, + 0x559ff000U, + 0xe1597800U, + 0x55ff3400U, + 0x754ee600U, + 0x7ee3c500U, + 0xdcd6b580U, + 0x91b9c540U, + 0x7e2ad5a0U, + 0xf6717570U, + 0xce0fcd88U, + 0x3b06f16cU, + 0xe48433aeU, + 0xfdc2b069U, + 0x6921780eU, + 0x98f33431U, + 0xcecce612U, + 0x7da0c516U, + 0x3d303595U, + 0x13ee855cU, + 0x1756b584U, + 0xaf9c576U, + 0x8bcad5aeU, + 0xf6217568U, + 0xc677cd8cU, + 0x360af15bU, + 0xff06339bU, + 0x8e81b040U, + 0x10c7f808U, + 0xea4741dU, + 0x25b08638U, + 0xe028753eU, + 0x89752d88U, + 0x80890178U, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0x10000000U, + 0x58000000U, + 0x54000000U, + 0x52000000U, + 0x71000000U, + 0x8a800000U, + 0x20c00000U, + 0xb8600000U, + 0x41300000U, + 0x49f80000U, + 0x1cbc0000U, + 0xc19e0000U, + 0x558b0000U, + 0x24638000U, + 0x5f354000U, + 0x9efde000U, + 0xa53e7000U, + 0x42df7800U, + 0x13acec00U, + 0xaff7ca00U, + 0x9e9e5900U, + 0xb7880U, + 0x1120f340U, + 0x721318a0U, + 0xe2ecc350U, + 0xc8d40088U, + 0x678c1f54U, + 0xa564d29eU, + 0x3db29a41U, + 0xa23f780aU, + 0x435cec1dU, + 0x74efca08U, + 0xf3d25905U, + 0x680d788eU, + 0x4d27f351U, + 0x8c1698aaU, + 0x85ee8353U, + 0x395460a6U, + 0xe8cc2f5eU, + 0xe545ca9bU, + 0x95254654U, + 0x98122a06U, + 0x77ec2931U, + 0x58520086U, + 0x3a4b1f6aU, + 0x918152bbU, + 0x7f40da5cU, + 0xa827181eU, + 0xb490dc19U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0x10000000U, + 0x78000000U, + 0x44000000U, + 0xca000000U, + 0x45000000U, + 0xdd800000U, + 0xd8400000U, + 0x66200000U, + 0x58d00000U, + 0xa3780000U, + 0x555c0000U, + 0xb58a0000U, + 0x32f10000U, + 0xbdad8000U, + 0x35244000U, + 0x9e576000U, + 0x31bcb000U, + 0x27bad800U, + 0x3cbb5400U, + 0x76392600U, + 0x62fccf00U, + 0xb31f5d80U, + 0x54aa6040U, + 0xdea585a0U, + 0xed113470U, + 0x151ca3b8U, + 0x47adfb74U, + 0xb823fe26U, + 0xfd79b25U, + 0xffe7bb4U, + 0xf29aaf44U, + 0x72e8d83bU, + 0x5f865406U, + 0x1146a604U, + 0x3da58f35U, + 0x2397bd98U, + 0xabdf9064U, + 0xc34fbd8eU, + 0xfa13906eU, + 0x199dbda5U, + 0x906e9056U, + 0x17423d9aU, + 0x5ea7d07eU, + 0x2d12ddbdU, + 0x751e206fU, + 0x57aae5bdU, + 0xc0218455U, + 0x4bd47badU, + 0xc5fbaf5bU, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x30000000U, + 0x18000000U, + 0xdc000000U, + 0xbe000000U, + 0x63000000U, + 0x25800000U, + 0x30c00000U, + 0xf1200000U, + 0xf5b00000U, + 0xb6f80000U, + 0xafdc0000U, + 0xbe6e0000U, + 0x3a950000U, + 0x60488000U, + 0x5ca64000U, + 0x1175a000U, + 0x6dd8d000U, + 0x736d8800U, + 0x34110400U, + 0x810c5200U, + 0xe7445300U, + 0x14e1fa80U, + 0xd6119f40U, + 0x1c0c72a0U, + 0xc1c09b50U, + 0x31a020b8U, + 0xff4c85cU, + 0xc499da3eU, + 0x3c89572bU, + 0x4b83a8b1U, + 0x3bc0cc63U, + 0x70a50800U, + 0x97774433U, + 0x82d9f202U, + 0xc0ec8325U, + 0xa3d4729eU, + 0x37ac9b6dU, + 0xff3620b1U, + 0x15bdc850U, + 0x993f5a2bU, + 0xd57a1722U, + 0x501e8891U, + 0xacce5c44U, + 0x70e52024U, + 0xa4129015U, + 0x890e2829U, + 0x7340d439U, + 0x5ee75a12U, + 0xcf161710U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0x30000000U, + 0x98000000U, + 0x5c000000U, + 0xba000000U, + 0xd5000000U, + 0x78800000U, + 0x89c00000U, + 0xa3600000U, + 0x24900000U, + 0xf1880000U, + 0x6eec0000U, + 0x207a0000U, + 0x8cf30000U, + 0x6e9e8000U, + 0xb9204000U, + 0xa5b1a000U, + 0xf83af000U, + 0x94d41800U, + 0xdaa7c00U, + 0xdbdec200U, + 0xb584c100U, + 0x6d451980U, + 0xb0a217c0U, + 0x62f101a0U, + 0x35986bf0U, + 0x4aa7c3a8U, + 0x57f0aafcU, + 0x5d18da0eU, + 0x6b61bd2bU, + 0x30975b80U, + 0x9f8996eeU, + 0xf5e93836U, + 0xf3ffcc30U, + 0x4eb7fa10U, + 0x53bb0d12U, + 0x1a92e3acU, + 0x22891ae7U, + 0x696be212U, + 0xac3d7134U, + 0x1ad621b9U, + 0x86aedbf8U, + 0xa0587b94U, + 0xb3c326ddU, + 0xb664802dU, + 0x7c134001U, + 0x484f2002U, + 0x558ab00aU, + 0x58edb833U, + 0xc77c8c07U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0xb0000000U, + 0xb8000000U, + 0x3c000000U, + 0x6a000000U, + 0xf9000000U, + 0xe9800000U, + 0x81c00000U, + 0xbe00000U, + 0x2e500000U, + 0xcc80000U, + 0xed2c0000U, + 0xfa7a0000U, + 0x3f330000U, + 0xe3da8000U, + 0xaa454000U, + 0x8727a000U, + 0x2367000U, + 0xbc58f800U, + 0x28821400U, + 0x94436a00U, + 0xc0214d00U, + 0x6cb76b80U, + 0x731bc7c0U, + 0x5c2793a0U, + 0x76b5d3f0U, + 0x121ef9a8U, + 0x39a79edcU, + 0x25731206U, + 0xdcf91913U, + 0x947321bcU, + 0x517abaddU, + 0xd3b5202eU, + 0xc19f3021U, + 0x6965582aU, + 0xf3176439U, + 0x9d691215U, + 0x3c5a191fU, + 0xe881a1a5U, + 0xb443fac1U, + 0x7020801fU, + 0xd4b6400eU, + 0x4f1d202dU, + 0x36233002U, + 0x8fb7581bU, + 0xfb986414U, + 0xb861920fU, + 0x2e90590bU, + 0xf2ae8193U, + 0x98bfcaecU, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0xf0000000U, + 0xe8000000U, + 0x94000000U, + 0x56000000U, + 0xcb000000U, + 0x74800000U, + 0xdb400000U, + 0x9a00000U, + 0x78d00000U, + 0x55480000U, + 0x5aec0000U, + 0xb13e0000U, + 0xccf70000U, + 0x7f5c8000U, + 0xb2c5c000U, + 0x2d666000U, + 0xfeb05000U, + 0xf7fc800U, + 0x96d40c00U, + 0x524d8600U, + 0x246a8300U, + 0x937a8980U, + 0xc4d2c5c0U, + 0xf74d41a0U, + 0x17eac9d0U, + 0x16bec7a8U, + 0x1f374aecU, + 0x6fb8ce12U, + 0x5eb04f09U, + 0xbf7befa7U, + 0x5ed6d6ebU, + 0x364ce012U, + 0x9a6e9031U, + 0xcc7b2802U, + 0xe6569c26U, + 0xe708ae30U, + 0x6acb1f1bU, + 0xb52ea7aeU, + 0x43dc1ac9U, + 0x4d85861bU, + 0xbac6832fU, + 0x296489b2U, + 0x90b5c5c2U, + 0x4879c198U, + 0xc85309d5U, + 0x800ea78dU, + 0xc44c1afeU, + 0x8f6d8623U, + 0x37fa830eU, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0xb0000000U, + 0xd8000000U, + 0x9c000000U, + 0x56000000U, + 0xa1000000U, + 0x7f800000U, + 0x3c00000U, + 0xb6e00000U, + 0x34100000U, + 0xf780000U, + 0x279c0000U, + 0x668a0000U, + 0x54750000U, + 0x732c8000U, + 0x6fc04000U, + 0x18e1a000U, + 0x59179000U, + 0x4efed800U, + 0xc15e8400U, + 0x65e80a00U, + 0x94a1e500U, + 0x14358180U, + 0xbd040U, + 0xc43359a0U, + 0xa8095470U, + 0x60315398U, + 0xd20db15cU, + 0x4f30522eU, + 0x908a213bU, + 0x6570ab9bU, + 0x84ade563U, + 0x9801a01cU, + 0xbc07903fU, + 0x606d81fU, + 0xc9028409U, + 0x3b820a07U, + 0xc9c4e523U, + 0x41e101a2U, + 0xea979079U, + 0x7338f9b9U, + 0x92bbc477U, + 0xe47b0bb6U, + 0x6f1f7549U, + 0x5bcbf824U, + 0x2ed5540fU, + 0x2a1d720eU, + 0x7e4df135U, + 0x5217d3afU, + 0xb678f141U, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0xb0000000U, + 0x18000000U, + 0xd4000000U, + 0xa2000000U, + 0x43000000U, + 0xbb800000U, + 0xcdc00000U, + 0xede00000U, + 0xbf500000U, + 0xc580000U, + 0xa7bc0000U, + 0xa1ee0000U, + 0x61310000U, + 0xa2c88000U, + 0x78064000U, + 0x2401e000U, + 0x5a047000U, + 0x27042800U, + 0x1821400U, + 0x5ac70a00U, + 0xf461cd00U, + 0x3196e380U, + 0x5a3f2b40U, + 0xd52acba0U, + 0x40513f50U, + 0x79dbc198U, + 0xf7df27cU, + 0xbe8ba21eU, + 0x27259909U, + 0x43300996U, + 0xa1ca9649U, + 0x23800020U, + 0x59c00006U, + 0xafe00005U, + 0x4c500020U, + 0xafd80010U, + 0xbe7c0000U, + 0xee0e0038U, + 0x9d61000eU, + 0x1510802dU, + 0x127a401cU, + 0x680fe032U, + 0x8465703fU, + 0x8994a82bU, + 0xde385421U, + 0xdf28ea3eU, + 0xcf54bd33U, + 0xb45a4bbbU, + 0x23bb7f75U, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0x10000000U, + 0x78000000U, + 0x94000000U, + 0xba000000U, + 0xe9000000U, + 0x7b800000U, + 0x7d400000U, + 0xa5200000U, + 0xccb00000U, + 0xa9080000U, + 0xba2c0000U, + 0xc19e0000U, + 0x8170000U, + 0xa1fb8000U, + 0x95864000U, + 0x4e45e000U, + 0x7a3b000U, + 0xa276b800U, + 0x9d6a8400U, + 0xfdbfde00U, + 0xf726cf00U, + 0x89b4ee80U, + 0xdc8c58c0U, + 0x846a56a0U, + 0x8e3adcd0U, + 0x566388a8U, + 0x6a9713d4U, + 0xaf3ae636U, + 0x91e60b31U, + 0x61d0d0b8U, + 0xdd1e27dbU, + 0xdd3800eU, + 0xb31a4010U, + 0x7ed3e011U, + 0x3198b012U, + 0x133803U, + 0x7dfbc427U, + 0xd381be1dU, + 0xf1433f25U, + 0xbb27b6acU, + 0xf7b56cd6U, + 0xd78b3082U, + 0x92ea97c5U, + 0x4afeb811U, + 0xf3068439U, + 0xc281de22U, + 0x5ec1cf38U, + 0x5c676eadU, + 0xab9618d7U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0x70000000U, + 0x38000000U, + 0x2c000000U, + 0xa000000U, + 0x69000000U, + 0x45800000U, + 0xf5c00000U, + 0x9ae00000U, + 0x21300000U, + 0x79480000U, + 0xcdac0000U, + 0x3b9a0000U, + 0x58510000U, + 0xebe8000U, + 0x62854000U, + 0x17452000U, + 0x4da3f000U, + 0xc91f800U, + 0x5d8f400U, + 0xf073aa00U, + 0xe7ef0500U, + 0xb5be3880U, + 0xd205b8c0U, + 0xf507c0a0U, + 0x17814cf0U, + 0xc0c66ab8U, + 0xed6349ecU, + 0x91f4d236U, + 0xac2eb127U, + 0x705ab294U, + 0x9db44dcdU, + 0x410c803dU, + 0xd688401cU, + 0xd649a02dU, + 0x5b2bb033U, + 0xbad85827U, + 0x2ef3440dU, + 0x72abf234U, + 0xe51c4137U, + 0xcd15ca82U, + 0x5e19f9c0U, + 0x7d920a0eU, + 0xbc58b525U, + 0x27b46083U, + 0x700bfce5U, + 0xcf08b29aU, + 0x11894dc6U, + 0x84c8002bU, + 0xd46c0022U, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0x30000000U, + 0x98000000U, + 0xc4000000U, + 0xd6000000U, + 0xe3000000U, + 0xb4800000U, + 0x19400000U, + 0x2c600000U, + 0xa5900000U, + 0xe6b80000U, + 0x49dc0000U, + 0x88ce0000U, + 0x7f330000U, + 0x768e8000U, + 0xd1d44000U, + 0xb9596000U, + 0x78d5000U, + 0x10500800U, + 0x579fcc00U, + 0xb62cd600U, + 0x18e1fd00U, + 0xfcd67d80U, + 0x6adace40U, + 0xdc4875a0U, + 0xf6760250U, + 0xf2ea2388U, + 0x2843bf5cU, + 0x4de53e2eU, + 0x7b54212dU, + 0xcf1d43bbU, + 0x856def45U, + 0xf583b61eU, + 0x40c3ad1fU, + 0x6a6f5bbU, + 0xc232425bU, + 0xd0b4399U, + 0x5612ef5cU, + 0x4d7b362dU, + 0x97f8ed00U, + 0xd9bf15a5U, + 0xaf585242U, + 0x48caba9U, + 0x34d4335aU, + 0xe6de881eU, + 0xc64b8c10U, + 0xaf75b60dU, + 0x2f6cad1fU, + 0x748675aaU, + 0xf945024fU, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0x50000000U, + 0xc8000000U, + 0xa4000000U, + 0xca000000U, + 0x79000000U, + 0x68800000U, + 0x49400000U, + 0xf2200000U, + 0x8d300000U, + 0xada80000U, + 0x2e8c0000U, + 0xcf3e0000U, + 0x51d10000U, + 0x6c7f8000U, + 0x2af7c000U, + 0xf1cbe000U, + 0xf21e3000U, + 0x8b643800U, + 0xa7159c00U, + 0xac9a6600U, + 0xbd200f00U, + 0x9ab31a80U, + 0x2b69a1c0U, + 0xd66922a0U, + 0x84ed3dd0U, + 0xccacc498U, + 0x6a0af2c4U, + 0x87c3e2aU, + 0x40f1632dU, + 0x38cf24b8U, + 0x298c2e3U, + 0xae26063aU, + 0x3b35ff35U, + 0x92aac2acU, + 0x10f0dfbU, + 0x95fefc9fU, + 0x5f326ec3U, + 0xf8afd80eU, + 0xc80bac26U, + 0x657e5e13U, + 0x7a75933aU, + 0x64897ca8U, + 0xf639aef6U, + 0xd9523826U, + 0x75389c08U, + 0x10d3e618U, + 0xd8facf0bU, + 0x95b17a91U, + 0xdced51c7U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x70000000U, + 0x38000000U, + 0x4000000U, + 0x12000000U, + 0xd000000U, + 0xe7800000U, + 0xfec00000U, + 0x7c600000U, + 0xc5700000U, + 0x3580000U, + 0xba3c0000U, + 0xe4ce0000U, + 0x6f550000U, + 0xc60a8000U, + 0x35354000U, + 0x44786000U, + 0xa8ee7000U, + 0xcd055800U, + 0xc7870400U, + 0xeec00200U, + 0x3461f900U, + 0xf973b680U, + 0x155a5e40U, + 0xa538eea0U, + 0xe485a50U, + 0x76126cb8U, + 0x44ace34cU, + 0x8c21ba36U, + 0x8254cd0dU, + 0x118a0c92U, + 0x93f2935eU, + 0x4c1ce213U, + 0x479fc92dU, + 0xc75c0ebaU, + 0x883a6a51U, + 0xf9cbd488U, + 0xc0d5d771U, + 0x4ce001aU, + 0x5f55000bU, + 0x9e0a8027U, + 0x4135401aU, + 0x6e78600cU, + 0xa1ee700fU, + 0x3885582eU, + 0x34470404U, + 0x75200206U, + 0xfd1f903U, + 0x864bb698U, + 0x6a165e6bU, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0xb0000000U, + 0x28000000U, + 0x8c000000U, + 0xfe000000U, + 0x61000000U, + 0x82800000U, + 0xc5400000U, + 0x64e00000U, + 0x32700000U, + 0xc3880000U, + 0x6a6c0000U, + 0x549a0000U, + 0xbb570000U, + 0xb5e8000U, + 0x7ef5c000U, + 0x8fcea000U, + 0xa00bd000U, + 0xedaf1800U, + 0x553eac00U, + 0x5dc7d600U, + 0xd2a12900U, + 0x5b123680U, + 0x4f3fecc0U, + 0x2ec72ea0U, + 0xdf2640f0U, + 0xe5d67888U, + 0xc81ea9dcU, + 0xcf10ee02U, + 0xd53d953fU, + 0x9dc6589dU, + 0x72a0b9d7U, + 0xeb115635U, + 0x6738e93aU, + 0xa2c696aeU, + 0x21233cc9U, + 0x84d6b6a3U, + 0x4a9d2cf4U, + 0xa570e8bU, + 0xb1d850fcU, + 0xafb7c085U, + 0xb12bd5e5U, + 0x81782010U, + 0x33a21032U, + 0x1993b817U, + 0x2a7e7c1eU, + 0xfa244e16U, + 0xc5514521U, + 0xaa5fc08eU, + 0x5c77d5d2U, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0x50000000U, + 0x58000000U, + 0x34000000U, + 0x5a000000U, + 0x5b000000U, + 0xd0800000U, + 0x19400000U, + 0xf6a00000U, + 0xe3d00000U, + 0x41d80000U, + 0xb07c0000U, + 0xa52e0000U, + 0x70b10000U, + 0x83ef8000U, + 0x55d34000U, + 0x34dbe000U, + 0x81fab000U, + 0x67ed2800U, + 0x17d54c00U, + 0xbbdab600U, + 0x5b786b00U, + 0x7dad5980U, + 0x5f49140U, + 0x1b4e71a0U, + 0xb700dd50U, + 0xfe834798U, + 0xf847f644U, + 0x2d23fe0eU, + 0x7214d709U, + 0x9a3927b8U, + 0xff0f064fU, + 0x5c22b614U, + 0x51946b0dU, + 0x8ffb59a7U, + 0x76e9917cU, + 0x2457f1afU, + 0x161e9d4fU, + 0xb699278aU, + 0x7df065aU, + 0x2d7ab623U, + 0xa8a86b2aU, + 0x84755981U, + 0xd188915eU, + 0xbc6071b0U, + 0xa8b1dd51U, + 0xf7ecc794U, + 0xefd4b643U, + 0x3fd81e1fU, + 0x97e671cU, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x70000000U, + 0x28000000U, + 0xfc000000U, + 0x72000000U, + 0x31000000U, + 0x65800000U, + 0x27400000U, + 0xe600000U, + 0x57100000U, + 0xfda80000U, + 0x40cc0000U, + 0x2b5e0000U, + 0x8350000U, + 0x63da8000U, + 0x8f5c000U, + 0x33ff2000U, + 0xb8023000U, + 0xe4047800U, + 0xc6037400U, + 0xcf07fe00U, + 0xe80b500U, + 0x8fc59980U, + 0x3ea59ac0U, + 0x4f37e1a0U, + 0xc15feed0U, + 0xcd349fb8U, + 0x985f9bccU, + 0x34b4a632U, + 0xbd1df133U, + 0x23d01f8eU, + 0x738f5befU, + 0x8b39062fU, + 0xc26012aU, + 0x92f5479eU, + 0xdefb1fccU, + 0xbf80000fU, + 0xaa400023U, + 0x79e00032U, + 0x31500017U, + 0xbe48003eU, + 0xcc9c0026U, + 0xaa960001U, + 0x2ee90037U, + 0xd0ac800bU, + 0x674cc004U, + 0x751ba00fU, + 0xefd2f00bU, + 0x4989d80eU, + 0x3638842fU, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0x50000000U, + 0x18000000U, + 0xac000000U, + 0x1e000000U, + 0x9b000000U, + 0x3f800000U, + 0x7a400000U, + 0x91a00000U, + 0xe7500000U, + 0x98180000U, + 0x84bc0000U, + 0x136a0000U, + 0x8cb70000U, + 0x2ee98000U, + 0x5bf34000U, + 0x5fc92000U, + 0x3645000U, + 0x1d35c800U, + 0xe7a81400U, + 0xb1d51600U, + 0x38d89300U, + 0x3bd8dd80U, + 0x685efb40U, + 0xac1f15a0U, + 0xf6bdef70U, + 0x36698388U, + 0x78313c64U, + 0x7329fe0eU, + 0x1c14d70fU, + 0x373803a9U, + 0xe72e7c59U, + 0x3e12de2eU, + 0xa3b8723U, + 0xbfae4b84U, + 0x7dd22855U, + 0xd6df682bU, + 0xe8d8041dU, + 0xe3d87e29U, + 0x645b9709U, + 0xe21b23a0U, + 0x75bd2c61U, + 0xa5ee961bU, + 0x1c70d31aU, + 0x798a7d9aU, + 0xc4c2eb44U, + 0xd5607dbaU, + 0xf235eb76U, + 0xca29fd87U, + 0x1e96ab58U, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0x70000000U, + 0xe8000000U, + 0x74000000U, + 0x8a000000U, + 0xd7000000U, + 0xcf800000U, + 0x5bc00000U, + 0x2e600000U, + 0x76d00000U, + 0xbdd80000U, + 0x9abc0000U, + 0xaeee0000U, + 0x28710000U, + 0xe4ee8000U, + 0x5f77c000U, + 0xbb6d6000U, + 0x9cb3b000U, + 0x908c800U, + 0x1460d400U, + 0xe9d03a00U, + 0x9659c100U, + 0xd37a8380U, + 0xcb8c4740U, + 0x6f244ba0U, + 0x5ff19350U, + 0xf32cf198U, + 0xf712924cU, + 0x7cbb9222U, + 0x2feba511U, + 0x2ef4f1a0U, + 0x5dae9274U, + 0xda55920bU, + 0x39aa52eU, + 0xa81a71a2U, + 0xa1d95262U, + 0x24b8f20dU, + 0x13e91520U, + 0x40f2b995U, + 0x98a98658U, + 0x5ed0c814U, + 0x69dcd420U, + 0x80be3a2dU, + 0xe1e8c10eU, + 0x7bf403b3U, + 0x412b8758U, + 0x2c112bb4U, + 0xd53e2375U, + 0xb52a39b1U, + 0xe6134679U, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0x30000000U, + 0x58000000U, + 0x84000000U, + 0xb2000000U, + 0x95000000U, + 0xd8800000U, + 0xb0400000U, + 0xb3a00000U, + 0x63d00000U, + 0xfc80000U, + 0xf76c0000U, + 0xf73e0000U, + 0x13370000U, + 0x283a8000U, + 0xaab64000U, + 0x8afd6000U, + 0x88567000U, + 0x680e9800U, + 0x45083c00U, + 0x498c4e00U, + 0x3ce8b00U, + 0xc96d0980U, + 0x1c39e9c0U, + 0xb591a0U, + 0xbbfad5d0U, + 0xd2d55fa8U, + 0x15491edcU, + 0xaa29b63eU, + 0x281bc73dU, + 0x2aa35fb2U, + 0x85521ec8U, + 0x548d362cU, + 0x574a8738U, + 0x72cbfbeU, + 0x649e2eddU, + 0x40e0ce2fU, + 0x7ff3cb38U, + 0xd9dce9b6U, + 0xcfc2d9c8U, + 0xe62e9b4U, + 0x98b5d9ceU, + 0x5ff869bdU, + 0x70d399edU, + 0xe84d09b9U, + 0xaea9e9f5U, + 0xae5d91a9U, + 0xbe06d5f7U, + 0xab035f97U, + 0x33821ef5U, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0x10000000U, + 0x68000000U, + 0x94000000U, + 0x26000000U, + 0x77000000U, + 0x2800000U, + 0x91400000U, + 0xfea00000U, + 0x66100000U, + 0x41980000U, + 0x8dbc0000U, + 0xc2ea0000U, + 0x21d70000U, + 0x687b8000U, + 0xd20ac000U, + 0x9fe56000U, + 0x80b5d000U, + 0x6b8ba800U, + 0x6255c00U, + 0xe256c600U, + 0x24bbfb00U, + 0x8b6e4780U, + 0xa0142540U, + 0x469e6fa0U, + 0x573bb970U, + 0xbfadc988U, + 0x5759274U, + 0xcb682612U, + 0xc014eb11U, + 0xf6988fbbU, + 0x2f38a97cU, + 0x43a901b3U, + 0xb7721e6cU, + 0x9a6ec83eU, + 0xb5908c14U, + 0x655d6e1dU, + 0x40dea73fU, + 0xdb18818cU, + 0x90ffde4aU, + 0x56482813U, + 0xfac39c16U, + 0x8661a61aU, + 0x9752b25U, + 0x616c6f92U, + 0xdd10b94aU, + 0x491c498cU, + 0x11f8526eU, + 0xebcec622U, + 0xed07fb0cU, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0xd0000000U, + 0x28000000U, + 0xc4000000U, + 0xce000000U, + 0xf5000000U, + 0x6b800000U, + 0x80c00000U, + 0x10a00000U, + 0x7d700000U, + 0x3c680000U, + 0x1f4c0000U, + 0xfefa0000U, + 0xc0350000U, + 0xa50f8000U, + 0xdb1cc000U, + 0x1023e000U, + 0x8b301000U, + 0xe38e7800U, + 0xec594400U, + 0x72459200U, + 0x31e68f00U, + 0x36173080U, + 0x1f39b9c0U, + 0x9d16c8a0U, + 0x89bc3df0U, + 0x8250ba98U, + 0x2fdaa2c4U, + 0xf681f212U, + 0xf465f35U, + 0x6e60a881U, + 0x60d5edf8U, + 0xc69aa283U, + 0xa9e336dcU, + 0xca13f835U, + 0xdd3c8406U, + 0xb213f223U, + 0xf13f5f3dU, + 0x5815288dU, + 0x1a3c2de4U, + 0xee96c290U, + 0x357fe6ecU, + 0xb0f66014U, + 0xada9d01fU, + 0x9a6a182cU, + 0xe499432U, + 0x6b7a0a29U, + 0x4df6db2eU, + 0x32295a96U, + 0x2cafb2ebU, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0x90000000U, + 0x8000000U, + 0xc000000U, + 0x32000000U, + 0xc5000000U, + 0x7e800000U, + 0x60c00000U, + 0xd2600000U, + 0x8db00000U, + 0x6e80000U, + 0x60c0000U, + 0x897a0000U, + 0xb0f30000U, + 0xd9cb8000U, + 0xc99c000U, + 0xa106a000U, + 0x3086b000U, + 0x2fc25800U, + 0xfde08c00U, + 0xa5f6fa00U, + 0x4f4f9100U, + 0xd05a4080U, + 0xd96515c0U, + 0x7c3398a0U, + 0x69ac59f0U, + 0x6c2bc2a8U, + 0x456978d4U, + 0x6c49da2aU, + 0xbddfe117U, + 0x8c273886U, + 0xdf15e9d6U, + 0xe9381ab1U, + 0x155334daU, + 0x8d9a000fU, + 0x183001eU, + 0x17438020U, + 0xde25c01dU, + 0x6a14a019U, + 0x2fb9b03cU, + 0xe193d806U, + 0x69fa4c07U, + 0x7733da17U, + 0x982ce118U, + 0x36cb8a0U, + 0x2f4c29d2U, + 0xa05eba89U, + 0x616584fdU, + 0xe830582aU, + 0x5faf8c21U, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0xf0000000U, + 0xa8000000U, + 0x24000000U, + 0x92000000U, + 0xc9000000U, + 0xca800000U, + 0xf9c00000U, + 0x36a00000U, + 0xf2500000U, + 0xbce80000U, + 0x4ccc0000U, + 0x315a0000U, + 0x40170000U, + 0xd0c8000U, + 0x1bfbc000U, + 0xfc41e000U, + 0x96e3f000U, + 0x4ab17800U, + 0x815e4c00U, + 0x8817b200U, + 0x790b9f00U, + 0xd1fa3180U, + 0xb9465cc0U, + 0xea67c9a0U, + 0xe873d0f0U, + 0xb4799b88U, + 0x4907bfccU, + 0xa80d222U, + 0x59c4af05U, + 0xc6a629a6U, + 0x5a5020c7U, + 0x98e8e39cU, + 0xdec9f3f5U, + 0xf85f6013U, + 0x8a93303cU, + 0xf4ce1812U, + 0x2d5d7c24U, + 0xe11aa20U, + 0x2a0ae304U, + 0x6799bb6U, + 0xb007bfc9U, + 0xc800d22fU, + 0x7404af01U, + 0xca0629a4U, + 0x450020d0U, + 0x7c80e3a6U, + 0xa2c5f3e1U, + 0x35256027U, + 0xc1143038U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x10000000U, + 0xf8000000U, + 0xdc000000U, + 0x32000000U, + 0x53000000U, + 0xd2800000U, + 0x62c00000U, + 0xe1e00000U, + 0x85100000U, + 0xf3a80000U, + 0x44cc0000U, + 0x7d1e0000U, + 0x86550000U, + 0xf2098000U, + 0xdaf84000U, + 0x2647a000U, + 0x7e21b000U, + 0xb7766800U, + 0x85fadc00U, + 0x1ec23a00U, + 0xe3e7fd00U, + 0x5e103980U, + 0x152836c0U, + 0x300fd1a0U, + 0x21faaad0U, + 0xb0c24bb8U, + 0xe2e0e7d4U, + 0xcf921a06U, + 0x5d6b0d23U, + 0x6f2871aaU, + 0x770b1ae7U, + 0x957c23a6U, + 0x87063bebU, + 0x94862038U, + 0x47c5f039U, + 0x9e67c816U, + 0xac526c1bU, + 0x2d0bd229U, + 0xa27c6132U, + 0xdb8223a7U, + 0x87433bcaU, + 0xdfa7a006U, + 0x7731b021U, + 0xeede6804U, + 0x5e36dc3cU, + 0x7b5c3a3eU, + 0x8872fd01U, + 0xad79b992U, + 0x7b0076dfU, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x10000000U, + 0xb8000000U, + 0x54000000U, + 0xf2000000U, + 0xb7000000U, + 0x3e800000U, + 0x56c00000U, + 0x11e00000U, + 0xe6500000U, + 0x86e80000U, + 0xbb8c0000U, + 0xec1e0000U, + 0x9d950000U, + 0xd2898000U, + 0xe39a4000U, + 0xc0d1e000U, + 0xb429f000U, + 0x906f0800U, + 0x41489c00U, + 0x3bfc9a00U, + 0x2ec37d00U, + 0x65e36380U, + 0x645326c0U, + 0x99edeba0U, + 0x690dfad0U, + 0x1cde91b8U, + 0xc97277d4U, + 0xbd5b7a16U, + 0xd338d01U, + 0x3c7beb8aU, + 0xaf84fafcU, + 0x6d4111bdU, + 0xaea137fdU, + 0x8ff51a0fU, + 0x9f993d15U, + 0x9ed2839cU, + 0xc52ad6d3U, + 0xfbeae3acU, + 0x260966d8U, + 0x165c0ba5U, + 0x7db40addU, + 0xa3b999a2U, + 0x81e6ebdfU, + 0x1e51e02fU, + 0xb2e9f03eU, + 0x598f0805U, + 0xe3189c16U, + 0xf7149a25U, + 0x764f7d09U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0x30000000U, + 0x88000000U, + 0xb4000000U, + 0x22000000U, + 0xdf000000U, + 0x85800000U, + 0xc6c00000U, + 0xe2e00000U, + 0x51d00000U, + 0x4d80000U, + 0x51bc0000U, + 0x1aa0000U, + 0xe110000U, + 0xe6bc8000U, + 0xc02ac000U, + 0x2d26000U, + 0x5f5df000U, + 0xbe7cc800U, + 0xabcc0400U, + 0x4b840200U, + 0xf7c53d00U, + 0xc6628780U, + 0x6b970b40U, + 0xd07acfa0U, + 0xcacdcf70U, + 0xd706adb8U, + 0xf184027cU, + 0x84c4621aU, + 0xde5cd11U, + 0x5c50cfb2U, + 0x761ccf56U, + 0x915a2dabU, + 0x8f7ec25bU, + 0x8f4e0229U, + 0x71c43d2eU, + 0x236607a2U, + 0x5d11cb50U, + 0xbd3aafb3U, + 0x2fed3f69U, + 0xa8b4e5a9U, + 0x1acfc65dU, + 0xaf04803aU, + 0xad86c010U, + 0x22c0601dU, + 0x78e0f01bU, + 0xb2d24837U, + 0x175bc43cU, + 0x6a78e224U, + 0xb9cf0d2cU, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0xf0000000U, + 0x88000000U, + 0xec000000U, + 0xa000000U, + 0x85000000U, + 0x7800000U, + 0xb2c00000U, + 0xbbe00000U, + 0x9900000U, + 0x5a380000U, + 0x345c0000U, + 0xde0e0000U, + 0x76570000U, + 0x6a5c8000U, + 0x550ec000U, + 0xc2d2a000U, + 0x28187000U, + 0xbaa99800U, + 0x23e18400U, + 0xfd91a200U, + 0xe439c500U, + 0x2f5bbd80U, + 0x328e7640U, + 0xa016a5a0U, + 0xebfd3250U, + 0xd73ba7a8U, + 0x9fdb876cU, + 0x46cd020aU, + 0xb8b6b517U, + 0xec4ea5a8U, + 0x51f13266U, + 0x476da781U, + 0x7a808766U, + 0x91478205U, + 0xcf237523U, + 0xcd768593U, + 0x592c8264U, + 0x37241f8fU, + 0xe970b358U, + 0x9f299810U, + 0x48218424U, + 0xe3f1a218U, + 0xc669c52bU, + 0x4b03bd9cU, + 0xd4827642U, + 0x9240a5a3U, + 0x97a63276U, + 0x853127b0U, + 0x338e4777U, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0x10000000U, + 0xd8000000U, + 0x34000000U, + 0xee000000U, + 0x4d000000U, + 0x79800000U, + 0xf8c00000U, + 0xe7600000U, + 0xe8700000U, + 0x92b80000U, + 0x665c0000U, + 0x5dee0000U, + 0xd0b70000U, + 0x15db8000U, + 0xbe2b4000U, + 0x751e000U, + 0x5aeb1000U, + 0x92313800U, + 0xcd9a9400U, + 0x260c0200U, + 0x65836100U, + 0x8ac76680U, + 0x98656940U, + 0xcef5dea0U, + 0x5cf8bd50U, + 0x977e3ca8U, + 0x70bbcc54U, + 0x815de21eU, + 0x6f687119U, + 0xe0f65e85U, + 0x71fffd5aU, + 0xdef9dcb3U, + 0x407bdc70U, + 0x8a395a34U, + 0x5d1ea503U, + 0xd1483cbdU, + 0x2320cc54U, + 0x2506227U, + 0x8f683119U, + 0x90f23e9bU, + 0x99f8ad6bU, + 0x22fa84a2U, + 0x427d1854U, + 0x1d3b802eU, + 0x879b402eU, + 0x1d09e03fU, + 0x45071026U, + 0xf5873829U, + 0x12c19433U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0x50000000U, + 0xf8000000U, + 0xc4000000U, + 0x56000000U, + 0xa5000000U, + 0x18800000U, + 0x98400000U, + 0x9e200000U, + 0x47500000U, + 0xfc80000U, + 0xa36c0000U, + 0xab7a0000U, + 0xa1130000U, + 0xc8ed8000U, + 0x4eb84000U, + 0x9ff16000U, + 0xd9dc5000U, + 0x60063800U, + 0xb0041c00U, + 0x8801ce00U, + 0x6c06e700U, + 0x6a025180U, + 0x370579c0U, + 0xeb81e9a0U, + 0x25c525f0U, + 0x1ee347a8U, + 0x413092e4U, + 0xd6b8ae16U, + 0xebf6b715U, + 0x7de69a3U, + 0xa90265ccU, + 0xc285a78dU, + 0x274782ceU, + 0x19a2761cU, + 0x896bb3aU, + 0x2628ff94U, + 0x9dccefaU, + 0x58000005U, + 0x54000039U, + 0x8e000000U, + 0x31000008U, + 0xb6800020U, + 0xf940000bU, + 0xd0a0003cU, + 0x7a100019U, + 0x89680032U, + 0x7c7c0027U, + 0x3a92001fU, + 0x452f0010U, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0xd0000000U, + 0x58000000U, + 0xfc000000U, + 0x2a000000U, + 0xfd000000U, + 0x72800000U, + 0x92400000U, + 0xc0e00000U, + 0xe8700000U, + 0x81680000U, + 0x4d0c0000U, + 0x343e0000U, + 0x44310000U, + 0xa28b8000U, + 0x44ff4000U, + 0xae95a000U, + 0xa6197000U, + 0x5fe4d800U, + 0x63f36c00U, + 0x87aace00U, + 0x40ad3100U, + 0x372fae80U, + 0x1befd3c0U, + 0xeb48f6a0U, + 0x9adfffd0U, + 0x57419898U, + 0xde66bee4U, + 0xe8376e0eU, + 0x9088411bU, + 0xa5fd76a4U, + 0x2611bff4U, + 0x915fb8a0U, + 0x11808ef4U, + 0x33c6163eU, + 0x3b225d05U, + 0x975360a2U, + 0x103fe2c6U, + 0xd232d821U, + 0x958e6c28U, + 0x1b7f4e2bU, + 0x1653713cU, + 0x8b98eb4U, + 0x5d75e3c8U, + 0xf7ef8eaeU, + 0x3948e3e6U, + 0xabda0eb4U, + 0x87c6a3e3U, + 0x15242ea0U, + 0x8c5093efU, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0xb0000000U, + 0xb8000000U, + 0x6c000000U, + 0x22000000U, + 0x83000000U, + 0x93800000U, + 0xdfc00000U, + 0xbaa00000U, + 0x58300000U, + 0x65780000U, + 0xa75c0000U, + 0x172a0000U, + 0x1350000U, + 0x39fc8000U, + 0x991b4000U, + 0xf9492000U, + 0xa422b000U, + 0x9572e800U, + 0x409ed400U, + 0x1895a00U, + 0x9b020700U, + 0x6f868280U, + 0x15c72b40U, + 0x5da2eaa0U, + 0x3db7bf70U, + 0x77be1098U, + 0x2f7c485cU, + 0x805b5a36U, + 0x92ab0707U, + 0xa3f0029eU, + 0x9d96b57U, + 0x626f4aa2U, + 0x48d24f7cU, + 0xbd2fd89aU, + 0x96352c5dU, + 0x47c6825U, + 0x57dc940fU, + 0xeb6efa2cU, + 0xdc52f728U, + 0xb76bca90U, + 0x86550f43U, + 0xb86cf897U, + 0x87d29c7eU, + 0x5caa001eU, + 0xc2f5000bU, + 0xf95c803fU, + 0x9e2b4017U, + 0x95b1200aU, + 0x33beb007U, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0x90000000U, + 0xe8000000U, + 0x1c000000U, + 0xc2000000U, + 0xf000000U, + 0x38800000U, + 0x6f400000U, + 0x6b600000U, + 0x5cb00000U, + 0x23080000U, + 0xe3ec0000U, + 0x6a9e0000U, + 0xe2b30000U, + 0x9e0b8000U, + 0xc6ac000U, + 0x595d2000U, + 0xd092b000U, + 0x78dd0800U, + 0x86556c00U, + 0xc17be600U, + 0x65415500U, + 0xa862cc80U, + 0xee354ac0U, + 0xcf4a44a0U, + 0x9a09e6d0U, + 0x4a6f0288U, + 0x505cc3f4U, + 0x4113e632U, + 0x161d5533U, + 0x6bf4cca2U, + 0x6c6a4ae0U, + 0x295fc4a4U, + 0x89026cfU, + 0x1cd9a2acU, + 0xb054b3fbU, + 0x107bce2eU, + 0x90c68907U, + 0xf0a422aaU, + 0xd29173f7U, + 0x97db6e11U, + 0x8ed1f90cU, + 0xd6398aa7U, + 0xfa236fe4U, + 0x2ad52029U, + 0x3eb035U, + 0x1b230828U, + 0xa7566c3cU, + 0xacf86605U, + 0xf987951cU, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0x90000000U, + 0x68000000U, + 0xc4000000U, + 0xc6000000U, + 0x6b000000U, + 0xa1800000U, + 0x32400000U, + 0x55200000U, + 0xbff00000U, + 0xa5080000U, + 0x86ac0000U, + 0x9a0000U, + 0x8bf30000U, + 0x7b0b8000U, + 0xf1aac000U, + 0x5b1be000U, + 0xb8b05000U, + 0xe6a8c800U, + 0x709aa400U, + 0x53f42600U, + 0x470a6700U, + 0x9bac0c80U, + 0x321fdac0U, + 0xb43544a0U, + 0x1e6cbef0U, + 0xb67902a8U, + 0x8b6049d4U, + 0x8d42632U, + 0x7fa6725U, + 0x11240ca3U, + 0xb9f3dacfU, + 0xee0f44a3U, + 0xb72fbed7U, + 0x5ada82a4U, + 0x1ad689edU, + 0x2fdc626U, + 0x3fa53727U, + 0x7c35449fU, + 0x8a6cbee3U, + 0x38790294U, + 0xb46049e8U, + 0x754262cU, + 0x9aba671dU, + 0x23840cb7U, + 0x5f43dad9U, + 0xbfa7448cU, + 0xbc33bed4U, + 0xaa68828dU, + 0xa87989fcU, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0xf0000000U, + 0x48000000U, + 0x4c000000U, + 0x7a000000U, + 0xa1000000U, + 0x3800000U, + 0x15c00000U, + 0x49600000U, + 0x89700000U, + 0x57d80000U, + 0x963c0000U, + 0x500e0000U, + 0x7cf70000U, + 0xf91c8000U, + 0xadd8c000U, + 0x7739a000U, + 0x738cf000U, + 0x99343800U, + 0xf8780400U, + 0x68af1a00U, + 0x5ae08900U, + 0x44b35680U, + 0xcabe9a40U, + 0x914deea0U, + 0xd8d55e50U, + 0x7e49d4a8U, + 0x6456e76cU, + 0x2f0b9a3aU, + 0x5874493fU, + 0x5c5cf684U, + 0xeff96a47U, + 0x936b56acU, + 0x1c829a6eU, + 0xe143eea4U, + 0x54225e63U, + 0xcf5554bdU, + 0x858e277dU, + 0x22323a37U, + 0x8af8b90fU, + 0xc6e8cebbU, + 0x2416e53U, + 0xb2a44c89U, + 0xcf121364U, + 0xf228b834U, + 0x8a0c40fU, + 0xe16ba28U, + 0x21ac7906U, + 0xa5676e8cU, + 0x43769e52U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0xf0000000U, + 0x78000000U, + 0x4c000000U, + 0xbe000000U, + 0x2d000000U, + 0x95800000U, + 0xcf400000U, + 0x7aa00000U, + 0xd9700000U, + 0xf380000U, + 0xeb1c0000U, + 0x39aa0000U, + 0xb0f10000U, + 0xa67a8000U, + 0x60bb4000U, + 0x435c2000U, + 0x698d5000U, + 0x50407800U, + 0xdc217400U, + 0x3eb69e00U, + 0xa75ad300U, + 0xb38a5c80U, + 0x67453340U, + 0x1ea2a4a0U, + 0xc3720770U, + 0x58389ab8U, + 0xd99fc44cU, + 0xbc6c1e26U, + 0x391931fU, + 0x726e7ca9U, + 0x96946364U, + 0xcbe8dcb4U, + 0x17d2735bU, + 0xe44c84acU, + 0x17225742U, + 0x9a30629eU, + 0xab98f060U, + 0xef6e201aU, + 0xdb105034U, + 0xd8a8f828U, + 0x5b773419U, + 0x243a3e3dU, + 0x7f9dc333U, + 0x2d6c84baU, + 0x50125741U, + 0xdc28629dU, + 0xc7b4f067U, + 0xf0dc2035U, + 0xf7cd5033U, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0x90000000U, + 0x18000000U, + 0x94000000U, + 0xe000000U, + 0x13000000U, + 0x71800000U, + 0x3400000U, + 0x31a00000U, + 0x20100000U, + 0x27480000U, + 0x726c0000U, + 0xffbe0000U, + 0x21970000U, + 0xcc0f8000U, + 0x7fc94000U, + 0xcdaee000U, + 0x97db1000U, + 0x46e7c800U, + 0xefb42400U, + 0xbc5aee00U, + 0x38a68b00U, + 0xc961f80U, + 0x668f73c0U, + 0xa10857a0U, + 0xf54917d0U, + 0x836dd9a8U, + 0xb73accf4U, + 0xc6556e2eU, + 0x106fcb11U, + 0x86b8ff8dU, + 0xe51463c5U, + 0xb1cf9fb9U, + 0xbead33f1U, + 0x565f37bbU, + 0xcda047f8U, + 0x521571b7U, + 0x64bb8c5U, + 0x2e92817U, + 0x1c7f3409U, + 0xebf52614U, + 0xb27eaf0eU, + 0x28f2f1aaU, + 0xfbfef8dbU, + 0x2fb1c82bU, + 0xdc5f2401U, + 0x88a36e23U, + 0x8494cb28U, + 0xea897fb2U, + 0x3b0a23caU, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0xf0000000U, + 0x78000000U, + 0x34000000U, + 0x22000000U, + 0x6f000000U, + 0x43800000U, + 0xe8400000U, + 0x8f200000U, + 0x32b00000U, + 0x38480000U, + 0x4dec0000U, + 0x799e0000U, + 0x5a330000U, + 0x89888000U, + 0xd18d4000U, + 0x558be000U, + 0xaf887000U, + 0x48f4800U, + 0x1d0f3400U, + 0xae48c600U, + 0x40eed700U, + 0xf51e2680U, + 0x1f2bac0U, + 0x96efeea0U, + 0x581fced0U, + 0x7d724888U, + 0xb52b29ecU, + 0x737e4616U, + 0xd6e09721U, + 0xf2d546beU, + 0x2a5b8aeaU, + 0x495546a6U, + 0xb61b8afcU, + 0x447546b3U, + 0x1bab8ac1U, + 0x47bd46abU, + 0x8a078ac4U, + 0x930346adU, + 0x8d848af3U, + 0x6143c6bcU, + 0xf9a5caf1U, + 0xc2762684U, + 0x3eaebac5U, + 0x7739ee95U, + 0xbfc0cec7U, + 0xf564c882U, + 0xa9569f5U, + 0x8d7d2608U, + 0xc7e5a72aU, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0x30000000U, + 0xd8000000U, + 0xe4000000U, + 0x3e000000U, + 0x13000000U, + 0x8b800000U, + 0x19c00000U, + 0x56a00000U, + 0x27700000U, + 0x6a880000U, + 0xceac0000U, + 0x4e9a0000U, + 0x37f30000U, + 0x14ce8000U, + 0x93ca4000U, + 0x1e4a6000U, + 0xe08b1000U, + 0xebacc800U, + 0xfa197400U, + 0x97b76a00U, + 0x4aa8b700U, + 0xa09f4880U, + 0xecf78ec0U, + 0x934f00a0U, + 0x880bbaf0U, + 0x81ee8aa8U, + 0x617d5dfcU, + 0x63ea1eU, + 0xf051f705U, + 0xb13ba8b1U, + 0x6606def1U, + 0x3701a8bbU, + 0x9585decbU, + 0x3ac72890U, + 0x5239ef7U, + 0xdab748b3U, + 0x22b8ef9U, + 0xfadd008dU, + 0xaf94baf6U, + 0xe09a0abfU, + 0xcf41dddU, + 0x834f0a37U, + 0x600ca71fU, + 0xbdef00a4U, + 0xbb7bbaefU, + 0x2d668abfU, + 0x68d15de8U, + 0x2379ea2bU, + 0x2962f73aU, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0x10000000U, + 0x78000000U, + 0x34000000U, + 0x86000000U, + 0x53000000U, + 0xb800000U, + 0xc7c00000U, + 0xd8e00000U, + 0x80f00000U, + 0x69180000U, + 0xab7c0000U, + 0x3ace0000U, + 0x68770000U, + 0x8d5b8000U, + 0xd85e4000U, + 0xc0dce000U, + 0x2c995000U, + 0x23b88800U, + 0x3aab400U, + 0xde411a00U, + 0x9a257500U, + 0x5891b680U, + 0x1ad9c40U, + 0x2344bea0U, + 0xaea26850U, + 0x36d4c4a8U, + 0xb38b0d54U, + 0x17d49a36U, + 0xd0c3519U, + 0xb896d6b7U, + 0x71aa8c5dU, + 0x6b40d69dU, + 0xf2a18c78U, + 0xfcd556bdU, + 0x5288cc51U, + 0xc9523698U, + 0x924fdc62U, + 0xac365eb5U, + 0xee7c385dU, + 0x5a4fcca2U, + 0xb033f97aU, + 0x47f603eU, + 0xab4b103bU, + 0x16b26802U, + 0xaf38e41bU, + 0x39ec1210U, + 0xda668115U, + 0x95b7cc8bU, + 0xbcbff965U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0x70000000U, + 0x18000000U, + 0x4000000U, + 0x7a000000U, + 0x1f000000U, + 0x14800000U, + 0x85400000U, + 0xfd200000U, + 0xfe300000U, + 0xd9980000U, + 0x21fc0000U, + 0xe2ea0000U, + 0xa5410000U, + 0x2d268000U, + 0xf6304000U, + 0xb59b6000U, + 0x47ff3000U, + 0x83e90800U, + 0xd4c28c00U, + 0xa3e2f600U, + 0x9ad32700U, + 0x33cf5280U, + 0x9d71e440U, + 0x85bd3aa0U, + 0xce4c5870U, + 0xc5b6c4b8U, + 0xf05df36cU, + 0x4d9b603eU, + 0xf3ff302dU, + 0x81e90800U, + 0xbfc28c1aU, + 0xd562f61dU, + 0x4932727U, + 0xa06f52a4U, + 0xf901e459U, + 0xb5853aacU, + 0x94c05866U, + 0x3e4c489U, + 0x8ad0f372U, + 0x5bcfe03bU, + 0x81727031U, + 0xfbbee81eU, + 0xab4cfc1fU, + 0xce361e1bU, + 0x619edb3eU, + 0x35ffcc81U, + 0xf0ef7f5bU, + 0xa6419628U, + 0x47a01712U, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0x70000000U, + 0x88000000U, + 0x6c000000U, + 0xa2000000U, + 0x4f000000U, + 0x35800000U, + 0x33400000U, + 0x3a00000U, + 0x6100000U, + 0x98980000U, + 0x187c0000U, + 0x75ce0000U, + 0x57430000U, + 0x8da48000U, + 0x4b12c000U, + 0x921ca000U, + 0x96be3000U, + 0x292a0800U, + 0xf0f5c400U, + 0x5c2ece00U, + 0xfe76eb00U, + 0xccef1780U, + 0xb797d940U, + 0xf5d9bfa0U, + 0xaedc2d50U, + 0x9d5d7988U, + 0x8f1f024cU, + 0x243ca02aU, + 0xe3ee3017U, + 0x12120822U, + 0x9e99c414U, + 0x3978ce07U, + 0xdd49eb04U, + 0x968597a5U, + 0xe4c6195eU, + 0xdfe19f8bU, + 0x4030dd5bU, + 0x25cbd1b3U, + 0xef44f65eU, + 0xc9a06632U, + 0xf5111f16U, + 0xf71dd1b8U, + 0x803bf676U, + 0x8deae62aU, + 0x8f10df1fU, + 0x6c1df1b4U, + 0x53bb0664U, + 0x4faa4e07U, + 0xdc342b2eU, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0x50000000U, + 0x98000000U, + 0xc4000000U, + 0xb6000000U, + 0xc9000000U, + 0x8d800000U, + 0xed400000U, + 0x51600000U, + 0xeeb00000U, + 0x9e880000U, + 0xaac0000U, + 0xd97e0000U, + 0x33470000U, + 0xd4618000U, + 0xa9374000U, + 0x98c86000U, + 0x314b5000U, + 0x5a0bd800U, + 0x2a689400U, + 0x4558ce00U, + 0xdc90cd00U, + 0x3c59f480U, + 0xf911dac0U, + 0xfd1a4ca0U, + 0x12721ed0U, + 0x30a95aa8U, + 0xba7a47c4U, + 0x25c0600eU, + 0x9ba75035U, + 0xc995d803U, + 0x83df9417U, + 0x4b514e28U, + 0xb8fb8d38U, + 0x407949aU, + 0xd6018af2U, + 0xb90614b0U, + 0x4586cad2U, + 0xb14674adU, + 0x23619af1U, + 0x91b3acaaU, + 0xda0e0ed1U, + 0x6a6ae286U, + 0x655983edU, + 0x8c937605U, + 0xa45f0910U, + 0x3d14e295U, + 0x4b1e83e6U, + 0xdb72f633U, + 0xbd284912U, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0x90000000U, + 0x58000000U, + 0x34000000U, + 0x92000000U, + 0xc5000000U, + 0x12800000U, + 0x36c00000U, + 0xf1600000U, + 0xd2900000U, + 0xbc080000U, + 0x2fac0000U, + 0x4e5e0000U, + 0x5dc10000U, + 0x78e18000U, + 0xe5d14000U, + 0xf62fe000U, + 0x811bf000U, + 0x53e51800U, + 0x8c572c00U, + 0x516c8a00U, + 0x933ce900U, + 0xc955c980U, + 0x3eccfc0U, + 0x45ff31a0U, + 0xa83013d0U, + 0x897ea398U, + 0xcdf7d6f4U, + 0x1599e00eU, + 0x226f039U, + 0x82b2980aU, + 0x5bbb6c18U, + 0x1694ea36U, + 0xa60b5931U, + 0x66a8b19cU, + 0x6adc53c8U, + 0x6406c3b7U, + 0x6a0066e2U, + 0x81049818U, + 0x48866c1cU, + 0x9fc36a0cU, + 0x45e7190cU, + 0xb350d182U, + 0x9aebe3f2U, + 0xd97bbbb7U, + 0x35f0fad6U, + 0x519d6a1dU, + 0x5826192aU, + 0x2bb1518fU, + 0xef3aa3d1U, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0xf0000000U, + 0x58000000U, + 0x1c000000U, + 0x96000000U, + 0xcd000000U, + 0x3800000U, + 0xccc00000U, + 0x31e00000U, + 0x29500000U, + 0xcab80000U, + 0xfb9c0000U, + 0x7d2e0000U, + 0x7c10000U, + 0x17628000U, + 0x42124000U, + 0x4d9da000U, + 0xe02a9000U, + 0x4c443800U, + 0x6fa7c400U, + 0xa1f09200U, + 0x23cab500U, + 0x72108380U, + 0xb598c040U, + 0xec291ba0U, + 0x72459450U, + 0xe6a5b198U, + 0x2874e56cU, + 0xb40ba00eU, + 0x8d77902bU, + 0x5388b80bU, + 0xdbb48408U, + 0x916fb233U, + 0x78626507U, + 0x1e911ba9U, + 0x25d9944aU, + 0xb58bb19eU, + 0xeb5e557U, + 0x6ee92039U, + 0xd2a5d019U, + 0xba751806U, + 0x130e1414U, + 0x25f38a3aU, + 0x9c9a11dU, + 0x391789a0U, + 0xd31e2173U, + 0x676fb204U, + 0x5626502U, + 0xa5111ba1U, + 0x5199476U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0x30000000U, + 0xd8000000U, + 0x94000000U, + 0xbe000000U, + 0x29000000U, + 0x99800000U, + 0x29400000U, + 0x86a00000U, + 0xd9d00000U, + 0x11980000U, + 0x827c0000U, + 0x8f0a0000U, + 0x14410000U, + 0x61248000U, + 0xb9944000U, + 0x3ebbe000U, + 0xaaeb9000U, + 0x8c321800U, + 0xf1ed7400U, + 0xd6b24e00U, + 0xb628f300U, + 0xf9d6d180U, + 0x819ca740U, + 0xa7f29a0U, + 0xf30a4370U, + 0xe6477fb8U, + 0x6223c47cU, + 0xb711e00eU, + 0xa77a9019U, + 0x9c8e9801U, + 0xfa053423U, + 0xbf03ae3fU, + 0x9c826325U, + 0xaac049a8U, + 0xe0e59376U, + 0x7bf687a3U, + 0xc689206cU, + 0x1503b63eU, + 0xcb82172fU, + 0x7a448791U, + 0x60242062U, + 0xc15360dU, + 0xdfb571eU, + 0x6349e7a5U, + 0x7166f074U, + 0xeeb24e08U, + 0xd228f312U, + 0xffd6d1baU, + 0xc9ca761U, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0x30000000U, + 0xa8000000U, + 0xc4000000U, + 0x72000000U, + 0xb3000000U, + 0x36800000U, + 0x9cc00000U, + 0xdfa00000U, + 0x1af00000U, + 0x5be80000U, + 0xda8c0000U, + 0xc4da0000U, + 0xd7470000U, + 0x88e28000U, + 0x5211c000U, + 0xa9fae000U, + 0x4374f000U, + 0x2fae2800U, + 0x3ceebc00U, + 0xc60b4a00U, + 0x2719ef00U, + 0xb8626c80U, + 0x67d0a5c0U, + 0x97dea4a0U, + 0xb1c6e9f0U, + 0x2c21c688U, + 0xd1b6bafcU, + 0xad0a6022U, + 0x1d9e300dU, + 0x2a4481eU, + 0xe1708c11U, + 0x64af023bU, + 0xf669633aU, + 0x74cd6ea6U, + 0x55b9c6cdU, + 0x9113ca0cU, + 0x577f2f27U, + 0x8bb20cb8U, + 0x1a0995c9U, + 0xf9186c8fU, + 0x1d67a5d6U, + 0xa05424adU, + 0x269b29e1U, + 0x2126acU, + 0x7b54ae1U, + 0xfc0ec819U, + 0x1d4c31U, + 0xc4e7e211U, + 0x1416931fU, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0x50000000U, + 0x58000000U, + 0x4c000000U, + 0x56000000U, + 0x89000000U, + 0x4a800000U, + 0xa9c00000U, + 0xc0e00000U, + 0xf500000U, + 0x2b280000U, + 0xcc0c0000U, + 0x86be0000U, + 0x5e410000U, + 0xc9a78000U, + 0x51774000U, + 0x631a2000U, + 0x49361000U, + 0x9bbe9800U, + 0x4ec7ac00U, + 0x5f63d200U, + 0x214dd00U, + 0xd70bd380U, + 0x473b54c0U, + 0xce076ba0U, + 0x6506e8d0U, + 0xac842198U, + 0x28c499c4U, + 0x9e63a00eU, + 0xbc905017U, + 0x34cb383bU, + 0xdafc25U, + 0x4ed16a11U, + 0xfb68611bU, + 0x80af19b7U, + 0x2b4e65cbU, + 0x4d9aca08U, + 0x52f4310aU, + 0x205a21a3U, + 0x901599f3U, + 0x5c0c202fU, + 0x7ebb1033U, + 0xa2471826U, + 0x97a1ec27U, + 0xcc767208U, + 0x33998d2cU, + 0x3ff16b8cU, + 0x98dbe8e0U, + 0xa2d5a1bcU, + 0x1d6ed9cbU, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0x50000000U, + 0x78000000U, + 0xc000000U, + 0x8a000000U, + 0x51000000U, + 0x43800000U, + 0x27c00000U, + 0xaa600000U, + 0xd4900000U, + 0xc6980000U, + 0xa93c0000U, + 0x92ca0000U, + 0xb5470000U, + 0xe218000U, + 0xf9344000U, + 0xe8692000U, + 0xc333f000U, + 0xf168b800U, + 0x4b5c400U, + 0x78ad2a00U, + 0x1d4b100U, + 0x38be2980U, + 0x780b5340U, + 0xea7b1a0U, + 0xf0716770U, + 0x24482388U, + 0xef071264U, + 0xf482a016U, + 0x4f40b027U, + 0xb7201814U, + 0x6eb27403U, + 0x19acb22cU, + 0xca52851eU, + 0x3b7bbb98U, + 0x2c6a2668U, + 0xd34b22bU, + 0xae6e8526U, + 0xb831bb97U, + 0xb3ed2666U, + 0x18f53228U, + 0xf90ac50aU, + 0xf5209b97U, + 0x7bb2d663U, + 0x542f8a2bU, + 0x12940135U, + 0x7d9e31b8U, + 0x4bb92744U, + 0xde8b03b3U, + 0x4ce3e24fU, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0x10000000U, + 0x48000000U, + 0xf4000000U, + 0x62000000U, + 0x35000000U, + 0x9f800000U, + 0x6400000U, + 0xcde00000U, + 0x51100000U, + 0x13380000U, + 0x469c0000U, + 0x196a0000U, + 0x23c70000U, + 0x82a38000U, + 0x3577c000U, + 0x36d6000U, + 0x7ac2f000U, + 0x63231800U, + 0x80334400U, + 0x4e0de600U, + 0x7314e100U, + 0x463d7580U, + 0x691e6e40U, + 0x472b0da0U, + 0x5223da70U, + 0x45b7f388U, + 0x714f7f74U, + 0xef76e01aU, + 0xfa693009U, + 0x8b447822U, + 0x9e66b434U, + 0x39557e2dU, + 0x25dc6531U, + 0x630ff38cU, + 0x30937f58U, + 0x667ce030U, + 0xabfe3034U, + 0xbff819U, + 0x4edd7409U, + 0x9f8a1e30U, + 0x5e559529U, + 0x175d6bbeU, + 0xe6ccfb56U, + 0x7d35e63fU, + 0xe588e102U, + 0xb7577590U, + 0xaed96e72U, + 0xef888dacU, + 0xa6541a7aU, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0xb0000000U, + 0xf8000000U, + 0xac000000U, + 0x12000000U, + 0x65000000U, + 0x23800000U, + 0xe5c00000U, + 0x29e00000U, + 0xc4b00000U, + 0xb5f80000U, + 0x1fdc0000U, + 0x598a0000U, + 0x24470000U, + 0x31268000U, + 0x72d74000U, + 0xce8f2000U, + 0xb2c63000U, + 0x1f60d800U, + 0x5af7a400U, + 0x65d89a00U, + 0x188cbd00U, + 0xe1c72480U, + 0xbfe15540U, + 0xf7b0dca0U, + 0x57cc170U, + 0xfa9a9e88U, + 0x6d2cd85cU, + 0x7851a036U, + 0xcacd7037U, + 0xf3e5f812U, + 0x35b6941eU, + 0x887ec232U, + 0x3d1c590bU, + 0xcee89e86U, + 0x8ab7d851U, + 0x5afd200fU, + 0xe55d303fU, + 0xc5cc5819U, + 0xd967e413U, + 0x41f13a09U, + 0x915dcd39U, + 0xbc8dcadU, + 0xf660c160U, + 0x1b709e90U, + 0xbd1bd86fU, + 0xeef202fU, + 0x2ab63011U, + 0xeaf8d81dU, + 0x1d5ba43fU, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0x10000000U, + 0x78000000U, + 0x14000000U, + 0x3a000000U, + 0x6d000000U, + 0xff800000U, + 0xec400000U, + 0x6c600000U, + 0xe5d00000U, + 0xd8180000U, + 0xcd3c0000U, + 0x6f0a0000U, + 0xa4830000U, + 0xa0c78000U, + 0x60a24000U, + 0x8b73e000U, + 0x146ab000U, + 0x33d61800U, + 0x5b1b4400U, + 0x45bef600U, + 0x1c97d00U, + 0xa323ef80U, + 0xd135ad40U, + 0xb0c17a0U, + 0x16875970U, + 0x91c379a8U, + 0xd9272074U, + 0x5c358036U, + 0xc48d4031U, + 0x92c66018U, + 0x91a7f01aU, + 0x12f0782fU, + 0xd32cb425U, + 0x9b368e2aU, + 0xee09c919U, + 0xb5076192U, + 0x3b836471U, + 0x8e46f616U, + 0x5657d13U, + 0x5851ef8dU, + 0x4d5aad46U, + 0x64d997afU, + 0xb9a1941U, + 0xef7d19a0U, + 0x646cd064U, + 0xbbd7f836U, + 0x71ef419U, + 0x3bd6e36U, + 0x3acf7901U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0xf0000000U, + 0x88000000U, + 0xc4000000U, + 0xb6000000U, + 0x6f000000U, + 0x6b800000U, + 0x7400000U, + 0xeae00000U, + 0x6100000U, + 0x4e480000U, + 0xf4ec0000U, + 0x9f9a0000U, + 0x32810000U, + 0xc3c28000U, + 0xe620c000U, + 0x1bb5e000U, + 0x2abfd000U, + 0x78b4e800U, + 0x933b9400U, + 0x36f71e00U, + 0x55db100U, + 0x10241d80U, + 0xd4b2b5c0U, + 0xd13f15a0U, + 0x7f7f1f0U, + 0x35de63b8U, + 0x42e114ccU, + 0x9210801aU, + 0xe04dc03dU, + 0x27ed6017U, + 0xe1e1016U, + 0x28c38815U, + 0x9ba4842bU, + 0xe3f6160dU, + 0xd3d9f51bU, + 0x35e7ebb3U, + 0x459490fdU, + 0x1d0c162eU, + 0xd008f500U, + 0xba8d6b9cU, + 0x654850f4U, + 0xe96bf613U, + 0x97da253eU, + 0x43e1039dU, + 0x4a9204f0U, + 0x868b880dU, + 0x5f48842fU, + 0x946c1618U, + 0xd558f536U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0xd0000000U, + 0x98000000U, + 0xf4000000U, + 0x16000000U, + 0x6f000000U, + 0x51800000U, + 0xc2400000U, + 0x42a00000U, + 0x45900000U, + 0xa6d80000U, + 0xa13c0000U, + 0x8b8a0000U, + 0xf0830000U, + 0xe8c18000U, + 0x37634000U, + 0xe275e000U, + 0x9c6bd000U, + 0x62306800U, + 0xb7cf4400U, + 0xa122e600U, + 0xa6d60b00U, + 0xefbeb80U, + 0xb1682f40U, + 0x5ab463a0U, + 0xf30fbb70U, + 0x54476da8U, + 0xeda5b444U, + 0x3413800eU, + 0xb49c4039U, + 0x7b9e602bU, + 0x3a1b9012U, + 0x405c0837U, + 0x26fbd416U, + 0xed6d6e01U, + 0xd0b19f3aU, + 0x3608e5adU, + 0x10c22049U, + 0xf3608e3bU, + 0x9c764f35U, + 0x4f6a8db9U, + 0x49b2646dU, + 0xf889e826U, + 0xcb00041bU, + 0x1f850617U, + 0x7942db28U, + 0xd52003baU, + 0x70d72b6eU, + 0x41fae586U, + 0x30ed2052U, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0x90000000U, + 0x88000000U, + 0xdc000000U, + 0xea000000U, + 0x5b000000U, + 0xe3800000U, + 0x48400000U, + 0x45a00000U, + 0x39100000U, + 0x8b380000U, + 0xf1dc0000U, + 0xdcee0000U, + 0xc9810000U, + 0xb3418000U, + 0xd627c000U, + 0x69562000U, + 0x9a9df000U, + 0xfecf6800U, + 0xe6d49400U, + 0x80da8600U, + 0xc468f300U, + 0x12476780U, + 0xa6a01c40U, + 0xfe902fa0U, + 0xed787850U, + 0x517c4198U, + 0x6b7fdf74U, + 0x5879803aU, + 0xf7fbc003U, + 0xddb82020U, + 0x1f1cf005U, + 0x2f8ee820U, + 0xb7f35433U, + 0xe00ca613U, + 0x4db5030aU, + 0x4aa80f8bU, + 0x31248860U, + 0xb0d2a9a4U, + 0xe1dc8b50U, + 0x14ed2621U, + 0xf582c30fU, + 0xc9462f9bU, + 0x5257872U, + 0x56d3c1b1U, + 0x38d91f5bU, + 0xe06e201fU, + 0x3c41f01eU, + 0x43a16828U, + 0x7015942eU, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0x70000000U, + 0xc8000000U, + 0x4c000000U, + 0xf6000000U, + 0x25000000U, + 0x800000U, + 0x45400000U, + 0x59a00000U, + 0xb9500000U, + 0x8ba80000U, + 0x744c0000U, + 0x993a0000U, + 0xf2030000U, + 0x5f048000U, + 0xf384c000U, + 0x10c7a000U, + 0xd4639000U, + 0xe9b4f800U, + 0x9d5e9c00U, + 0x63b70600U, + 0x665ee300U, + 0x5a302d80U, + 0x6d9edac0U, + 0xe7d175a0U, + 0x37ecd6f0U, + 0x436c0ba8U, + 0xb42b69ecU, + 0x5288001aU, + 0x485c003fU, + 0x6b320007U, + 0x4f1f0006U, + 0x8596800fU, + 0x39cbc00bU, + 0x20f9202bU, + 0xf0e45036U, + 0xa6f7d834U, + 0xfff9cc22U, + 0xc3645e12U, + 0x9633ef0fU, + 0x5b9bd393U, + 0xe2d2a5ddU, + 0x476c5e15U, + 0xce2fef05U, + 0xa189d3a1U, + 0x1ddda5f2U, + 0xe6f2de34U, + 0x1ff82f28U, + 0x9362f381U, + 0x2e36f5f0U, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0x30000000U, + 0x98000000U, + 0x5c000000U, + 0xae000000U, + 0xeb000000U, + 0x68800000U, + 0x72400000U, + 0xff200000U, + 0xb4d00000U, + 0x38680000U, + 0x280c0000U, + 0x9c7a0000U, + 0x74050000U, + 0xaa008000U, + 0xf9024000U, + 0x1d87a000U, + 0x69c35000U, + 0xb9e0c800U, + 0x97b16c00U, + 0x989f8e00U, + 0xcc332f00U, + 0xfe5fcd80U, + 0x3f509cc0U, + 0xf6aaa5a0U, + 0x1f6ba0f0U, + 0x668f6398U, + 0x113ea3fcU, + 0xb9a0003eU, + 0xed90002bU, + 0x4fc80035U, + 0xde9c0021U, + 0xc3320017U, + 0xb4d90031U, + 0xa012800eU, + 0x4e0b400bU, + 0x437d202bU, + 0x9684103bU, + 0xf147e816U, + 0xb3a07c3aU, + 0x490e603U, + 0x1a4d1329U, + 0x435a8b8aU, + 0x10d7dff9U, + 0x3a6a6623U, + 0x150a5331U, + 0x73fdabb7U, + 0x58c6cfc0U, + 0x90650e31U, + 0x74746f3eU, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0x50000000U, + 0x28000000U, + 0xac000000U, + 0x2e000000U, + 0x3d000000U, + 0xaf800000U, + 0xc5c00000U, + 0x7600000U, + 0x7d900000U, + 0x5ae80000U, + 0x434c0000U, + 0x973a0000U, + 0xbc010000U, + 0xa6078000U, + 0xa100c000U, + 0xf986a000U, + 0x7cc55000U, + 0x2ae5f800U, + 0xab55e400U, + 0xcf0aba00U, + 0x549f6900U, + 0xf77f980U, + 0x85bc00c0U, + 0x1646a1a0U, + 0x4a1b4f0U, + 0x8bf463b8U, + 0xf6faf9e4U, + 0xc9600032U, + 0xd090000fU, + 0xbd680019U, + 0x7a8c0030U, + 0x965a002aU, + 0x50910015U, + 0x7d6f8021U, + 0x1a8cc021U, + 0xc65ca03cU, + 0x7894503eU, + 0xd16a7832U, + 0x34892420U, + 0xfb5e1a1aU, + 0xd7173917U, + 0x14af81b2U, + 0x33e824d8U, + 0x86cd3bbdU, + 0x8dfb4dedU, + 0x57e0c23fU, + 0xa4d64d04U, + 0x3ac9e3a8U, + 0x2bfb39e1U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x70000000U, + 0x28000000U, + 0x4000000U, + 0x36000000U, + 0xe7000000U, + 0xc0800000U, + 0x40400000U, + 0x9da00000U, + 0xa8d00000U, + 0x38780000U, + 0xf09c0000U, + 0xf46e0000U, + 0x13050000U, + 0x9e828000U, + 0xc341c000U, + 0x1b22e000U, + 0x2790d000U, + 0x615ea800U, + 0x2e0c8c00U, + 0xb6b53e00U, + 0x8bc9eb00U, + 0x12d72980U, + 0xbd78a840U, + 0xd91d61a0U, + 0xcfadf450U, + 0x146277b8U, + 0x3eb0534cU, + 0xdfce0032U, + 0x1cd5000dU, + 0x67a801fU, + 0x39dc024U, + 0x5aece037U, + 0x9845d028U, + 0xf1a4281aU, + 0xfad14c03U, + 0x9979de19U, + 0xff1c3b06U, + 0x70ab0194U, + 0xf8e5e452U, + 0x4cf2bfb4U, + 0x9368cf58U, + 0x9385f624U, + 0xbec17731U, + 0x2ee4dfabU, + 0x9bf0df6fU, + 0x1bed3e14U, + 0xa7c5eb08U, + 0x3d612994U, + 0x6531a873U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0x10000000U, + 0xd8000000U, + 0x4c000000U, + 0xae000000U, + 0xfd000000U, + 0x41800000U, + 0xab400000U, + 0xd9e00000U, + 0xf8f00000U, + 0x52d80000U, + 0x4f7c0000U, + 0x54ea0000U, + 0x4d030000U, + 0x49878000U, + 0x1f474000U, + 0x2be42000U, + 0x73f1d000U, + 0xa258f800U, + 0xbbc9400U, + 0xdb4abe00U, + 0x2d929900U, + 0x48ebd280U, + 0xdb00de40U, + 0xc8850aa0U, + 0x38c29a70U, + 0xe9a2cca8U, + 0x994d774U, + 0xa2ea001eU, + 0x3c030027U, + 0x86078015U, + 0x59074028U, + 0x6b84200dU, + 0x6c41d006U, + 0x8760f80dU, + 0x4130942bU, + 0x9cf8be32U, + 0x84ad9907U, + 0x8c6652b7U, + 0x71b49e7eU, + 0xf83eaab3U, + 0x1b080a77U, + 0x34f414a5U, + 0x3cda937cU, + 0x927fc62eU, + 0x56a4d3eU, + 0x3e42cc81U, + 0xdc64d77dU, + 0x49b20021U, + 0x843f0009U, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0xb0000000U, + 0xa8000000U, + 0x44000000U, + 0x16000000U, + 0x51000000U, + 0x5f800000U, + 0xa0400000U, + 0xe3a00000U, + 0xbbd00000U, + 0xe2980000U, + 0x9efc0000U, + 0x16ca0000U, + 0xe4250000U, + 0xd7948000U, + 0x33fc000U, + 0x7a2ee000U, + 0x16d5d000U, + 0xd7191800U, + 0xc5be4400U, + 0xb1efb600U, + 0xb328300U, + 0x2a69d180U, + 0x7d742f40U, + 0x78caa9a0U, + 0x29207b70U, + 0x9212e798U, + 0x10796c5cU, + 0x290d9832U, + 0x47c1840dU, + 0x3fe15617U, + 0xf2775329U, + 0x4248c9b8U, + 0x88e66b6dU, + 0x74f71f8aU, + 0xa98bf862U, + 0xc505b60fU, + 0x9187833dU, + 0xfd455197U, + 0x5e27ef4dU, + 0xf4964987U, + 0x4bbcab6bU, + 0xcced7fa4U, + 0xe6b1e85cU, + 0x7d2a4e03U, + 0x3850173fU, + 0x78d9ff90U, + 0x9e5e2856U, + 0x59cae36U, + 0x79c72fU, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0x50000000U, + 0x78000000U, + 0x7c000000U, + 0x52000000U, + 0xd5000000U, + 0x1b800000U, + 0xe8c00000U, + 0xf4200000U, + 0x3100000U, + 0xbca80000U, + 0xcbcc0000U, + 0x5c3a0000U, + 0x23a10000U, + 0x51d78000U, + 0xf98a4000U, + 0xad5ea000U, + 0xf750b000U, + 0xaecad800U, + 0xafb96400U, + 0xaf627200U, + 0xdbf51b00U, + 0x5980f80U, + 0xa37324c0U, + 0x9ddbf7a0U, + 0x3b10b0f0U, + 0x60adfdb8U, + 0xa9cc7fe4U, + 0xa13d5826U, + 0x3c23243bU, + 0x9714d212U, + 0x8aa9ab3eU, + 0x60c8d78cU, + 0xb8bb40d0U, + 0x79e6058fU, + 0x4b3ebffU, + 0x3379522cU, + 0xfd42eb2cU, + 0x6be1f783U, + 0x71b1b0f1U, + 0x18fa7d86U, + 0x3d863fdeU, + 0x9bc3f802U, + 0x5ca39420U, + 0x23560a29U, + 0x38cccf19U, + 0x34b8a5b3U, + 0x63e35bf8U, + 0x85b38a0bU, + 0x7efb8f30U, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0xf0000000U, + 0x38000000U, + 0x6c000000U, + 0x82000000U, + 0xdf000000U, + 0x38800000U, + 0x13c00000U, + 0xea600000U, + 0x38f00000U, + 0xaa280000U, + 0x630c0000U, + 0x565e0000U, + 0xd0e10000U, + 0xb4328000U, + 0x98c94000U, + 0xb8392000U, + 0x2e10b000U, + 0xe71c8800U, + 0xca47ac00U, + 0xf423e200U, + 0x62d3a900U, + 0x75fefa80U, + 0x174edc0U, + 0x4469d2a0U, + 0x12ab1d0U, + 0xe58f9898U, + 0x309e04ecU, + 0x79060816U, + 0x7182ec37U, + 0xfa44c216U, + 0x6c221910U, + 0x1ed0f2a0U, + 0x3ffa01e8U, + 0x8a7310b4U, + 0x92e9a8edU, + 0x4fedea06U, + 0xe86d453eU, + 0x232c38b3U, + 0x2a8bf4c5U, + 0xc01da01cU, + 0x3ec4f036U, + 0x75e12800U, + 0x9fb35c16U, + 0x218aca00U, + 0x569cf50eU, + 0x9002309aU, + 0x880518c0U, + 0xb4076208U, + 0x1e07e912U, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0x70000000U, + 0xb8000000U, + 0xdc000000U, + 0x66000000U, + 0xa7000000U, + 0xf7800000U, + 0x6400000U, + 0xc6200000U, + 0xd7700000U, + 0x18f80000U, + 0x731c0000U, + 0xc20a0000U, + 0x8ca50000U, + 0xb7b28000U, + 0xa0194000U, + 0x878ca000U, + 0xcfe21000U, + 0xeb11e800U, + 0xffad3400U, + 0xd390f600U, + 0x3a6c9f00U, + 0x81f66880U, + 0xfe3bc540U, + 0x1cf9a0a0U, + 0x791da170U, + 0x5b0c1e98U, + 0x70221a6cU, + 0x98716836U, + 0x1b7d741bU, + 0x75cd60fU, + 0xa12ecf02U, + 0xb153a08aU, + 0x9f88a15fU, + 0x43e69eb5U, + 0xa5175a6dU, + 0x4cafc812U, + 0x26166404U, + 0x212dbe11U, + 0x7153bb21U, + 0x7f8f76acU, + 0x33e66e49U, + 0x1d153e38U, + 0x90affb20U, + 0x40115682U, + 0x862d3e4cU, + 0x86d07616U, + 0x79ccdf2cU, + 0xf5c248b9U, + 0xca659544U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x70000000U, + 0xd8000000U, + 0x3c000000U, + 0xbe000000U, + 0xc1000000U, + 0xa8800000U, + 0x67c00000U, + 0x79e00000U, + 0xc0d00000U, + 0x1e380000U, + 0x49c0000U, + 0x8c6e0000U, + 0x6e650000U, + 0xee928000U, + 0xb89e4000U, + 0x7268a000U, + 0xcf64d000U, + 0x36131800U, + 0x75e3c00U, + 0x37893200U, + 0xb1b49500U, + 0xe92be780U, + 0xab424040U, + 0xdc22dfa0U, + 0xa636ec50U, + 0xc76855b8U, + 0xde4954cU, + 0xaad7980eU, + 0xe5397c03U, + 0x9f1d1201U, + 0xe42b0523U, + 0x25c2dfb3U, + 0x26e6ec66U, + 0xb95055bbU, + 0x79789549U, + 0xfeb9980bU, + 0xb75c7c24U, + 0xcf8f9214U, + 0x9db54539U, + 0xff2a7f86U, + 0x8e423c4bU, + 0xf6a34da1U, + 0xbef6a97fU, + 0xd708aa26U, + 0x274e939U, + 0xaaca75abU, + 0x5892057cU, + 0xcd9a2027U, + 0x90ea9032U, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0xf0000000U, + 0x98000000U, + 0x1c000000U, + 0xba000000U, + 0x29000000U, + 0xd8800000U, + 0x89c00000U, + 0x32200000U, + 0xc6100000U, + 0x7c180000U, + 0xeb7c0000U, + 0xe88e0000U, + 0xfa10000U, + 0xe5528000U, + 0x7afc4000U, + 0x9cfa000U, + 0xcc47f000U, + 0xfd617800U, + 0xe2f2dc00U, + 0xaba88200U, + 0xad333b00U, + 0xba8cdf80U, + 0xe2a3d940U, + 0x7bd087a0U, + 0x903ab550U, + 0x526edd98U, + 0x4710a26cU, + 0x809df83eU, + 0xd4bf9c2bU, + 0x21ada230U, + 0xbc348b31U, + 0x6e0c07beU, + 0xb967f56fU, + 0xe4f3fdb4U, + 0x28ab1249U, + 0x34b3203dU, + 0x6fcab005U, + 0xff445837U, + 0x1ce56c33U, + 0xdbb05a14U, + 0x944b172aU, + 0xff01a599U, + 0x93837e46U, + 0x8447fa1eU, + 0x2960e716U, + 0xccf6ddbcU, + 0x4caca257U, + 0x62b3f818U, + 0x64ce9c05U, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0xb0000000U, + 0x68000000U, + 0x3c000000U, + 0x6a000000U, + 0x45000000U, + 0xd8800000U, + 0xec00000U, + 0x8ba00000U, + 0xd1f00000U, + 0xc2b80000U, + 0x755c0000U, + 0x24ce0000U, + 0x84a10000U, + 0x5c708000U, + 0x2cf9c000U, + 0x143b2000U, + 0x409ff000U, + 0x84e99800U, + 0x1c133c00U, + 0xee2f5a00U, + 0xe9b6cf00U, + 0xccdcd480U, + 0x6c8c1f40U, + 0x42c6eca0U, + 0x29a51350U, + 0xf8f50e98U, + 0xa83e107cU, + 0x6a9f9802U, + 0x21ee3c33U, + 0x7491da38U, + 0x88ee0f32U, + 0x5e1774b6U, + 0x772a2f5dU, + 0xeb3454aeU, + 0xef19df76U, + 0x3abccbcU, + 0xf7f7e356U, + 0x25ba1699U, + 0x84d9ec7bU, + 0x408d6236U, + 0x10c3c315U, + 0x88a13695U, + 0x1e761c4bU, + 0xb5fcfa07U, + 0x16bcff25U, + 0x63586c99U, + 0xebcdd37aU, + 0xa926aebeU, + 0xe2342072U, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0x30000000U, + 0xb8000000U, + 0x14000000U, + 0xe6000000U, + 0xc9000000U, + 0x70800000U, + 0x1b400000U, + 0xede00000U, + 0xf3900000U, + 0xc3c80000U, + 0x83ec0000U, + 0xdfde0000U, + 0x1ae10000U, + 0x2e148000U, + 0x160b4000U, + 0x9848e000U, + 0xef2c5000U, + 0xecf8d800U, + 0x15527c00U, + 0x6bec5600U, + 0x3dbd100U, + 0xb0e5f980U, + 0x2517f5c0U, + 0xf18941a0U, + 0x2e8e99d0U, + 0x8f0b2f98U, + 0x20ca64dcU, + 0xb86ed836U, + 0xc31f7c19U, + 0x71c6d62fU, + 0x5a1913bU, + 0xdf1998bU, + 0x509ce5f1U, + 0x510779beU, + 0xf481b5d8U, + 0x9543218fU, + 0xb8e489c6U, + 0xc911978aU, + 0xe38e08c3U, + 0x318e3603U, + 0x8e8dc108U, + 0x5f0941a9U, + 0xa8ce99c5U, + 0x146b2f86U, + 0x311a64e6U, + 0x5ec6d831U, + 0xbc237c0aU, + 0x6630d63bU, + 0xa63c9119U, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0xb0000000U, + 0x88000000U, + 0x4000000U, + 0x4e000000U, + 0x8f000000U, + 0xb4800000U, + 0xa4c00000U, + 0x8a200000U, + 0x1700000U, + 0x99d80000U, + 0x5bc0000U, + 0xc12e0000U, + 0xb9270000U, + 0x37f68000U, + 0xd818c000U, + 0x4a1de000U, + 0xd7181000U, + 0xbe992800U, + 0x53d92c00U, + 0x84ba3a00U, + 0xdaaa3300U, + 0x1965ec80U, + 0x91147c40U, + 0x574fa4a0U, + 0x9cb18050U, + 0xc47f56a8U, + 0xce8d8f7cU, + 0x8f17280aU, + 0x804e2c3dU, + 0x3434ba39U, + 0x12bef30eU, + 0x9ae0c9cU, + 0xffe76c4bU, + 0xc8d60cbcU, + 0x24eb6c5aU, + 0x48800c81U, + 0x6c06c54U, + 0xdf208cbeU, + 0x4cf3ac52U, + 0x8a9dec82U, + 0xd5d87c47U, + 0x2fb9a49bU, + 0x902a805aU, + 0xbaa7d6a6U, + 0xabb24f60U, + 0xbcfc482cU, + 0x4efc21U, + 0x74307228U, + 0x32bfcf0eU, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0x90000000U, + 0xd8000000U, + 0xe4000000U, + 0xaa000000U, + 0xe3000000U, + 0x82800000U, + 0x1dc00000U, + 0xeb200000U, + 0xf7d00000U, + 0xdab80000U, + 0xb8dc0000U, + 0x54ee0000U, + 0x79270000U, + 0xd78000U, + 0x9a3b4000U, + 0xea196000U, + 0xab4ab000U, + 0x3e326800U, + 0xfac9dc00U, + 0xa974a200U, + 0x102cc300U, + 0x6b81b980U, + 0xac45da40U, + 0x8c6531a0U, + 0x7531f650U, + 0xb44c9ba8U, + 0x92b55974U, + 0x1e0a681eU, + 0x6bd5dc0dU, + 0x44baa214U, + 0x9dbc325U, + 0x416e39bcU, + 0x94629a46U, + 0xf1325190U, + 0xae4c4652U, + 0x39b17384U, + 0xa08bc560U, + 0x3811aa07U, + 0xe698af00U, + 0x9f88f3b7U, + 0x4978573U, + 0xda5f4a33U, + 0xb9295f04U, + 0xfa03fb8dU, + 0x5b04e954U, + 0xd6818025U, + 0xffc0402dU, + 0x3420e004U, + 0x3b56f000U, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0x70000000U, + 0x78000000U, + 0x1c000000U, + 0xd6000000U, + 0x11000000U, + 0x9d800000U, + 0xc400000U, + 0xc6e00000U, + 0x38900000U, + 0xf3680000U, + 0xb64c0000U, + 0xcf7a0000U, + 0x70e50000U, + 0x99928000U, + 0xf6ef4000U, + 0xd60ca000U, + 0xa79f9000U, + 0x4573d800U, + 0x21785400U, + 0x5de74600U, + 0x42141900U, + 0xe3ad0180U, + 0xe96930c0U, + 0x5948f9a0U, + 0xb7fdb4f0U, + 0x2322c798U, + 0xf03769ecU, + 0x4e1bd806U, + 0x4b34542bU, + 0xa49d4613U, + 0x53f1191fU, + 0x9fbf818cU, + 0xfc670c0U, + 0x9fa45983U, + 0x39f224f9U, + 0x8b91fb2U, + 0x6b433dccU, + 0x1a669e38U, + 0x41554d14U, + 0x2dcac7baU, + 0xfa3b69d3U, + 0xdf81d80cU, + 0x6f415438U, + 0x6067c619U, + 0x1e525909U, + 0xcd492187U, + 0xc5fce0d6U, + 0x18250195U, + 0xdab530e9U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0x70000000U, + 0xe8000000U, + 0xc000000U, + 0x5e000000U, + 0xed000000U, + 0x4e800000U, + 0xc0400000U, + 0x68e00000U, + 0xc7f00000U, + 0x63d80000U, + 0x58fc0000U, + 0x712a0000U, + 0x21a30000U, + 0x73948000U, + 0xf76dc000U, + 0x8040a000U, + 0x88e3d000U, + 0x97f4f800U, + 0xfbdc6c00U, + 0xbcf85e00U, + 0x232d5100U, + 0x92a28a80U, + 0xd0158e40U, + 0x79a852a0U, + 0x28e4f270U, + 0x27f0d4a8U, + 0x33dbdf6cU, + 0xc0fe5812U, + 0x952cbc2fU, + 0x73a02625U, + 0xc090fd24U, + 0x54e874beU, + 0xe840f48U, + 0x2040a03eU, + 0x38e3d00aU, + 0x5ff4f819U, + 0x87dc6c0bU, + 0xaf85e24U, + 0xc22d512cU, + 0x82228a8fU, + 0xfd558e58U, + 0x5fc85293U, + 0x2f54f257U, + 0x2cc8d4abU, + 0xacd7df7cU, + 0xd20c5820U, + 0xec73bc2dU, + 0x711ea617U, + 0x165e3d2eU, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0xf0000000U, + 0xc8000000U, + 0x9c000000U, + 0x7e000000U, + 0xf000000U, + 0x37800000U, + 0xd6400000U, + 0x6e200000U, + 0x5e100000U, + 0xefb80000U, + 0x475c0000U, + 0xbaae0000U, + 0x65650000U, + 0x9eb68000U, + 0x536ac000U, + 0x61012000U, + 0x40835000U, + 0xd5c46800U, + 0xaa65b400U, + 0x89313600U, + 0x15289f00U, + 0x3720c380U, + 0x4a948440U, + 0xd87d0ba0U, + 0x9c3da050U, + 0xb1ff5b8U, + 0x91891b6cU, + 0x11f3480aU, + 0x29cfe40bU, + 0x8d5de35U, + 0x745eeb18U, + 0x232855a0U, + 0xe4208b51U, + 0x63160029U, + 0xf1390031U, + 0xd988035U, + 0x1f4fc00fU, + 0x6e17a03cU, + 0x7b99038U, + 0x4b5d482dU, + 0xfcaae41fU, + 0x3e635e1cU, + 0x4b342b28U, + 0xf4297591U, + 0x37a3db79U, + 0xff526814U, + 0x821cb43eU, + 0xdd09b62cU, + 0x82375f18U, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0x10000000U, + 0x18000000U, + 0x8c000000U, + 0x52000000U, + 0xd7000000U, + 0x31800000U, + 0xdfc00000U, + 0x80200000U, + 0x5cb00000U, + 0x93180000U, + 0xa27c0000U, + 0x44ae0000U, + 0xeae10000U, + 0x92158000U, + 0x45ef4000U, + 0xb8802000U, + 0x2b443000U, + 0x59674800U, + 0x22d52400U, + 0x88490a00U, + 0x61f31300U, + 0x7b788a80U, + 0x482fc440U, + 0xafa462a0U, + 0xa6709050U, + 0x5bf8098U, + 0x188dd754U, + 0x1c51681eU, + 0x4a0c1437U, + 0x9c15c22aU, + 0x78e87712U, + 0x2204209eU, + 0x9f07a761U, + 0x45838018U, + 0x11c24005U, + 0x1d23a030U, + 0x3636700cU, + 0x2f5ce813U, + 0x2a9f5426U, + 0xa9bbe205U, + 0xfa8d4736U, + 0x2356e897U, + 0xff8dc356U, + 0x85d2aa1cU, + 0xf1c96314U, + 0xca326286U, + 0x355d9076U, + 0x899c009dU, + 0x563f974bU, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0x10000000U, + 0x8000000U, + 0x7c000000U, + 0x32000000U, + 0xf7000000U, + 0x38800000U, + 0xd2400000U, + 0x31a00000U, + 0x72100000U, + 0xd9c80000U, + 0xc9ac0000U, + 0x32da0000U, + 0x3de70000U, + 0x4eb38000U, + 0xb85dc000U, + 0xd8a72000U, + 0xe7943000U, + 0x808c800U, + 0x38cb6c00U, + 0x202aae00U, + 0xd11a3b00U, + 0x3b829f80U, + 0x64c0abc0U, + 0x86e4f7a0U, + 0x9c3537f0U, + 0x491a3188U, + 0x8f8190f4U, + 0x8ac7e80aU, + 0x53e35c2bU, + 0x5bb06626U, + 0xdfda5726U, + 0x5e61b180U, + 0x3e7050d6U, + 0xc0bac82eU, + 0x99906c25U, + 0x150b2e1cU, + 0x234cfb1eU, + 0x94ec3fb4U, + 0xfffe5bfeU, + 0xcbb09f85U, + 0x17dbabdeU, + 0x826577afU, + 0x1c73f7d8U, + 0x3fbc91a1U, + 0xdd1360eeU, + 0xf549800cU, + 0xe5eac027U, + 0xde7ca020U, + 0xf475f03eU, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x50000000U, + 0x98000000U, + 0xa4000000U, + 0x62000000U, + 0xf3000000U, + 0x70800000U, + 0xf3400000U, + 0x1e200000U, + 0xaf00000U, + 0x20880000U, + 0xcc6c0000U, + 0xb87e0000U, + 0xf7e50000U, + 0x8938000U, + 0xb2dd4000U, + 0x4c576000U, + 0xf538f000U, + 0xccc6a800U, + 0x1be78c00U, + 0x16944600U, + 0xe7db4f00U, + 0xfdd4ec80U, + 0x1df91ac0U, + 0xf520a4a0U, + 0x9e7226d0U, + 0xd1c8aab8U, + 0x714e55c4U, + 0x5a0a481eU, + 0x802e3c2dU, + 0xb8db8e26U, + 0xf3513301U, + 0xebbd82a2U, + 0xc28499e9U, + 0xd8416e23U, + 0xaaa18312U, + 0xcbb7ca8bU, + 0x55aaa5d9U, + 0x121ae027U, + 0x9b0b035U, + 0xd6aa4824U, + 0xca9e3c0aU, + 0x96f38e05U, + 0x968d3339U, + 0xf56b82bdU, + 0x57fd99e9U, + 0x2a24ee11U, + 0xd0f5c31dU, + 0x478d2ab8U, + 0x16ea15d3U, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0x70000000U, + 0x78000000U, + 0x3c000000U, + 0xd2000000U, + 0x8d000000U, + 0x29800000U, + 0x12c00000U, + 0xd1600000U, + 0xdc300000U, + 0xa3180000U, + 0x863c0000U, + 0x552e0000U, + 0xd4270000U, + 0x8908000U, + 0x6ec94000U, + 0x5c55a000U, + 0x94aeb000U, + 0x92e61800U, + 0x1ff23400U, + 0xd9ff7200U, + 0xcdc93100U, + 0x4ad3ac80U, + 0x72ebfa40U, + 0x70c694a0U, + 0x44653e50U, + 0x99b4dea8U, + 0x6bdecb4cU, + 0x9e5b3836U, + 0x4e99c403U, + 0x3afaca22U, + 0xfb4eb530U, + 0xdc9446a0U, + 0xe8cebf68U, + 0x17576a2aU, + 0xd62c0500U, + 0xb2a45e9eU, + 0x96d78b4eU, + 0xb0ee9837U, + 0xd5c7743cU, + 0x59e4d203U, + 0x1d708130U, + 0xd9bd3494U, + 0x34ec8e40U, + 0x5bc24691U, + 0x56e5bf7dU, + 0xb1f1ea0fU, + 0xa6fe4538U, + 0x194f7eb7U, + 0x9977b79U, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0x50000000U, + 0x68000000U, + 0x6c000000U, + 0x5e000000U, + 0xc7000000U, + 0xde800000U, + 0xd2400000U, + 0x77e00000U, + 0x48500000U, + 0x45080000U, + 0x4f2c0000U, + 0x975e0000U, + 0x5f210000U, + 0x2ff78000U, + 0x3bbec000U, + 0xff6a000U, + 0xcbb8d000U, + 0xd7f4a800U, + 0x9fbabc00U, + 0x8df61e00U, + 0x6ab83900U, + 0xca75df80U, + 0xa17e0dc0U, + 0xb15657a0U, + 0x4c8fa1d0U, + 0xcbebc198U, + 0xefa34c4U, + 0x56958802U, + 0x89acac1fU, + 0xb11c1635U, + 0xc2c6553eU, + 0xaaa169baU, + 0x3d3188deU, + 0xb91c161dU, + 0xbec65507U, + 0x7ca16983U, + 0xc63188e1U, + 0x519c1613U, + 0xc786551dU, + 0x8bc16990U, + 0x9b2188efU, + 0xbdf41620U, + 0x12ba5514U, + 0x2e77698fU, + 0xc37c88ecU, + 0x40559609U, + 0x39099523U, + 0x992849b3U, + 0x6c5b98f5U, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0xf0000000U, + 0xb8000000U, + 0x7c000000U, + 0x3e000000U, + 0x51000000U, + 0x2a800000U, + 0x8400000U, + 0x62200000U, + 0xa4f00000U, + 0xf3b80000U, + 0x845c0000U, + 0xdd4a0000U, + 0x1ce70000U, + 0xc0948000U, + 0x7c6f4000U, + 0x7595a000U, + 0x24e9d000U, + 0xad19800U, + 0xb14bac00U, + 0xae75e00U, + 0x5906700U, + 0x5cef4480U, + 0xd6d34340U, + 0x7f4dfca0U, + 0xe3e57f70U, + 0x53101a88U, + 0x6aaf244cU, + 0xe5f0b826U, + 0xf13d3c13U, + 0x181b6609U, + 0xb56e1b37U, + 0x131382abU, + 0xaaf8849U, + 0xb5f1663dU, + 0xb9391b0fU, + 0xdc1f0286U, + 0xf76cc876U, + 0x7c16c61dU, + 0x712bcb20U, + 0x97301a9cU, + 0xd35f2451U, + 0x1ac8b81eU, + 0xa0213c3cU, + 0xbf16610U, + 0x28391b3bU, + 0x569f0285U, + 0xf2cc858U, + 0xa636c617U, + 0xa9dbcb12U, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0xd0000000U, + 0xa8000000U, + 0xc000000U, + 0x5e000000U, + 0x63000000U, + 0x75800000U, + 0xebc00000U, + 0xd8600000U, + 0x9a300000U, + 0xf6980000U, + 0xd5bc0000U, + 0x5eae0000U, + 0x2e230000U, + 0x45918000U, + 0x9acec000U, + 0xa217a000U, + 0xac0dd000U, + 0x1cf08800U, + 0xd07ec400U, + 0x7dcbaa00U, + 0x1592d100U, + 0x72cdfc80U, + 0xe115e40U, + 0x220d54a0U, + 0xd7f38a50U, + 0xa9fe5688U, + 0xc80f8f64U, + 0xaef6a822U, + 0x9d7dd427U, + 0x134c8215U, + 0x2fd1c52fU, + 0x136edea0U, + 0x71414b61U, + 0x5825021cU, + 0x6a930514U, + 0x114f7ebeU, + 0xfad39b5dU, + 0xa9ea0a16U, + 0x6100010bU, + 0xa082f484U, + 0x51425a74U, + 0xc820deb9U, + 0x62924b6fU, + 0xcd4c8217U, + 0xcd1c523U, + 0xc6eede92U, + 0x4a814b62U, + 0x28450238U, + 0xfca30514U, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0x30000000U, + 0x88000000U, + 0xd4000000U, + 0xaa000000U, + 0xdb000000U, + 0x24800000U, + 0x20c00000U, + 0xa7600000U, + 0x36b00000U, + 0x25380000U, + 0xa31c0000U, + 0x78e0000U, + 0x4c270000U, + 0x6f928000U, + 0xd72cc000U, + 0x5f776000U, + 0x61ddb000U, + 0xcfe82800U, + 0xe4152c00U, + 0x969ba00U, + 0xabd73900U, + 0x308f1880U, + 0xdea49f40U, + 0xca54d0a0U, + 0x15cbc350U, + 0x3e86a2a8U, + 0x33c3a65cU, + 0x77e3c80aU, + 0x8c735c29U, + 0xd15c7200U, + 0x652f650fU, + 0xa877ea81U, + 0x935c3a4bU, + 0x7a28da2aU, + 0x9ef18923U, + 0x349bb0a1U, + 0x87ca7361U, + 0xf9808aa3U, + 0x49418a53U, + 0x1620f211U, + 0x5c94a524U, + 0x37aa0aaeU, + 0x6db14a4fU, + 0x41b9923eU, + 0xa3de150aU, + 0x90e8a284U, + 0xf294a651U, + 0x9ea9481eU, + 0xde339c17U, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0x70000000U, + 0x88000000U, + 0xfc000000U, + 0xe2000000U, + 0x7000000U, + 0x5c800000U, + 0x8b400000U, + 0x5da00000U, + 0xdeb00000U, + 0x9b680000U, + 0x400c0000U, + 0xedde0000U, + 0x17630000U, + 0x67d48000U, + 0x71bac000U, + 0x46342000U, + 0x662eb000U, + 0xd4a9c800U, + 0x72e84c00U, + 0x28c9c600U, + 0xb3bb3300U, + 0x71339280U, + 0x12afdbc0U, + 0xd3ecfaa0U, + 0x454ce7d0U, + 0xd7a5488U, + 0x9654e8ccU, + 0xbd7f682aU, + 0xfe533c33U, + 0x917eae32U, + 0xe4540f22U, + 0xe27b3c8dU, + 0xa6d4d4dcU, + 0x8c3d4618U, + 0xa0f1f304U, + 0x854fb28eU, + 0xed7d6bd9U, + 0x46533288U, + 0x457babcdU, + 0x8a5112b4U, + 0x8f7a1bc4U, + 0x1525a8eU, + 0xb9fb97d1U, + 0x71133cb8U, + 0x5ad8d4dcU, + 0x23e3460dU, + 0xc092f329U, + 0x361b32aaU, + 0xeb87abc6U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0xf0000000U, + 0x78000000U, + 0x54000000U, + 0x56000000U, + 0x6f000000U, + 0x4d800000U, + 0xac400000U, + 0x2b200000U, + 0x1a700000U, + 0x70680000U, + 0x2a1c0000U, + 0xfa720000U, + 0x406d0000U, + 0x32188000U, + 0x5e764000U, + 0x6e6c6000U, + 0x9189000U, + 0x45f78800U, + 0xad2d7400U, + 0x6fbf9e00U, + 0xf3c3b300U, + 0xf664fe80U, + 0x5fd0cec0U, + 0x79db60a0U, + 0x9c137df0U, + 0x97bf9e38U, + 0x67c3b30cU, + 0xc064fe86U, + 0xc0d0cee9U, + 0x4c5b60abU, + 0x64537dfeU, + 0xea9f9e3eU, + 0x12b3b33cU, + 0xfd8cfe9fU, + 0x468ccec4U, + 0x9d0960bdU, + 0x3e4e7df2U, + 0xa8ef1e1cU, + 0x66d9f326U, + 0x69929eadU, + 0xff95ec3U, + 0xeae668aaU, + 0xcd1549e7U, + 0xa93ce016U, + 0x9c02d00fU, + 0xda01e827U, + 0xfd04e414U, + 0xfc82962cU, + 0xa2c5873cU, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0x10000000U, + 0x78000000U, + 0x74000000U, + 0xba000000U, + 0x5000000U, + 0xb4800000U, + 0xb2400000U, + 0x56e00000U, + 0xf6100000U, + 0xd480000U, + 0xdb5c0000U, + 0x86160000U, + 0x854f0000U, + 0x67598000U, + 0x20154000U, + 0x364f6000U, + 0x18dff000U, + 0x99d0b800U, + 0x636aec00U, + 0xbeefc600U, + 0x862f9d00U, + 0x158beb80U, + 0x18fa1cc0U, + 0x53642da0U, + 0xaad581d0U, + 0x5cefc608U, + 0xa72f9d14U, + 0xc30bebb6U, + 0xcbba1cd9U, + 0x73042d90U, + 0x9f8581ccU, + 0x9c7c60bU, + 0x3d239d39U, + 0xaa35eb8eU, + 0xd1f91cc8U, + 0xc9e3ad86U, + 0x1793c1c7U, + 0xd38f2629U, + 0x5bfa2d2eU, + 0xe4e5b3b6U, + 0xf1640e1U, + 0xbfca3392U, + 0xca1c00c9U, + 0xd774d382U, + 0xbe9ab0f0U, + 0x85350b9fU, + 0x587cacc8U, + 0x1b25f590U, + 0x59339deaU, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0x70000000U, + 0x68000000U, + 0xa4000000U, + 0xe6000000U, + 0xaf000000U, + 0x9d800000U, + 0xea400000U, + 0xf600000U, + 0xb1900000U, + 0x8b480000U, + 0xf2dc0000U, + 0x8d920000U, + 0x61490000U, + 0xffd88000U, + 0x2912c000U, + 0xd18f6000U, + 0x237a9000U, + 0x9ba08800U, + 0x4b36f400U, + 0x76fd2e00U, + 0x85e1a100U, + 0x5a540380U, + 0xd46f78c0U, + 0xb9292da0U, + 0xafced9f0U, + 0x821d2e18U, + 0xb131a12cU, + 0xa3fc03a2U, + 0xd6378f5U, + 0xd8932d83U, + 0x29cbd9f2U, + 0x9d1fae06U, + 0xa4b6613dU, + 0x9db9e386U, + 0x8c0228e3U, + 0x620445a2U, + 0xd9057de2U, + 0x2a856807U, + 0xbbc7a419U, + 0xa722461aU, + 0xf7f30531U, + 0x85cc589U, + 0xe57bdd0U, + 0x9a6a082dU, + 0x522d341fU, + 0xa44ace3bU, + 0xaf59f12bU, + 0x87d3ebbbU, + 0x1e2f1cefU, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0xb0000000U, + 0xc8000000U, + 0x14000000U, + 0xce000000U, + 0x35000000U, + 0xd3800000U, + 0xcac00000U, + 0x52200000U, + 0x18f00000U, + 0xe2c80000U, + 0x623c0000U, + 0xacf60000U, + 0xbcc90000U, + 0x4f3a8000U, + 0x1375c000U, + 0x640fe000U, + 0xf21c5000U, + 0x23021800U, + 0xaa80d400U, + 0xdb409a00U, + 0xfe0df00U, + 0xbe538280U, + 0xc79cbc0U, + 0x309318a0U, + 0xa85914d0U, + 0xa1609a38U, + 0xf310df3cU, + 0x3a9b82aaU, + 0xff45cbe9U, + 0x49e518a1U, + 0xff5014d8U, + 0xa1fa1a3fU, + 0x7551f03U, + 0x3dfc628aU, + 0xbd559bddU, + 0x76f9008dU, + 0x93d5c0c6U, + 0x7bbe002cU, + 0xc5350034U, + 0x46c8032U, + 0xec8cc036U, + 0x4e5d6027U, + 0x7065902eU, + 0x4693f805U, + 0x6159841eU, + 0x78e60226U, + 0xbad0cb36U, + 0x523878bfU, + 0x24f584e6U, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0x10000000U, + 0x8000000U, + 0x34000000U, + 0xca000000U, + 0xd3000000U, + 0xbf800000U, + 0x51400000U, + 0xc200000U, + 0x6a700000U, + 0x8a680000U, + 0x341c0000U, + 0x4760000U, + 0xdb6b0000U, + 0x4c9d8000U, + 0x30b6c000U, + 0x5d0ae000U, + 0xa14a7000U, + 0x4bee0800U, + 0x3c5d8400U, + 0x44d70600U, + 0x4fd9e300U, + 0x93943680U, + 0x56fd46c0U, + 0x736330a0U, + 0x1754a5d0U, + 0x889f0628U, + 0x82b5e314U, + 0x820a368aU, + 0xf8ca46c9U, + 0x3fa8b090U, + 0xa2f965e9U, + 0xd9606635U, + 0xf4555334U, + 0x2f18dea6U, + 0xeff6b2c7U, + 0x702c3eb1U, + 0x8bbbc2feU, + 0xd941b696U, + 0x782786cfU, + 0x8077d094U, + 0x4969d5edU, + 0x839a8e3dU, + 0x6135a71eU, + 0x1d4a50b1U, + 0xf5ef15f5U, + 0x5586e2dU, + 0x3853d701U, + 0xa91a5885U, + 0xfaf591d1U, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0x90000000U, + 0xf8000000U, + 0xb4000000U, + 0xa6000000U, + 0x9d000000U, + 0xfe800000U, + 0xaf400000U, + 0x69200000U, + 0x45100000U, + 0x71d80000U, + 0x38cc0000U, + 0x7b120000U, + 0x8d90000U, + 0x784f8000U, + 0x6d514000U, + 0xc17b6000U, + 0xbb1f1000U, + 0x2d289800U, + 0x8ee47c00U, + 0x26779e00U, + 0xf76bab00U, + 0x95409d80U, + 0x3e227840U, + 0x449703a0U, + 0x7319d370U, + 0xd12f9e18U, + 0x14e7ab14U, + 0xc1729d86U, + 0x7eeb7849U, + 0x4b8083b7U, + 0x3dc4937aU, + 0xa466fe0eU, + 0x7f31bb18U, + 0x1b4d85a3U, + 0xad24473U, + 0xbebe7db1U, + 0x3c792865U, + 0x15997b8cU, + 0x9a6aff54U, + 0xc3c47803U, + 0x3d662c1aU, + 0xafb66607U, + 0xf509c704U, + 0x77701b91U, + 0xdbecef60U, + 0xe103602eU, + 0xa483102aU, + 0xa8429803U, + 0x70a17c17U, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0x70000000U, + 0x8000000U, + 0x24000000U, + 0x8a000000U, + 0x11000000U, + 0x40800000U, + 0x46400000U, + 0x91200000U, + 0xb8100000U, + 0xf0680000U, + 0x727c0000U, + 0xfb160000U, + 0xbdeb0000U, + 0xf2be8000U, + 0xe375c000U, + 0x475a6000U, + 0x8903f000U, + 0x7c851800U, + 0xb042ec00U, + 0x5626c600U, + 0x4f922300U, + 0x49aae580U, + 0x7e9a25c0U, + 0xc5e423a0U, + 0x627406d0U, + 0x1fd8c628U, + 0xb345230cU, + 0x3ba2658aU, + 0xbf54e5d5U, + 0x59c8c380U, + 0xa02e36ddU, + 0x3459be1aU, + 0xec833f19U, + 0xa8413bbeU, + 0x2a26eaeaU, + 0x99960018U, + 0xfeab002fU, + 0x811e8038U, + 0x5825c03aU, + 0xe4926034U, + 0x302ff021U, + 0x2c5b1817U, + 0x9085ec2cU, + 0x7e46461cU, + 0x9d20e32cU, + 0x661005acU, + 0x636b15c6U, + 0x7fbdbb6U, + 0x77d7dadaU, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0x10000000U, + 0x58000000U, + 0x74000000U, + 0x66000000U, + 0x8f000000U, + 0x26800000U, + 0x6c400000U, + 0xd7600000U, + 0x90d00000U, + 0xb0480000U, + 0x8e9c0000U, + 0x5dd20000U, + 0x7c90000U, + 0xcf5b8000U, + 0xee704000U, + 0x8f386000U, + 0xc231000U, + 0xc5330800U, + 0x92db2c00U, + 0x2b64600U, + 0x5b1e5100U, + 0x7d17d180U, + 0xd1eee2c0U, + 0xf6997a0U, + 0x272cb3f0U, + 0x3e4c4618U, + 0x1d9b5134U, + 0xc15651aeU, + 0xbe8ba2d9U, + 0xfbb877afU, + 0xa966e3ceU, + 0x4bd4ae08U, + 0xcf2d0cU, + 0x25d97f92U, + 0x8034cfe6U, + 0xe9596836U, + 0x41713c09U, + 0x59bece13U, + 0x28653d1eU, + 0x3e51f78eU, + 0x100fa3d8U, + 0x5bff4e30U, + 0x7c007d2cU, + 0x6a001798U, + 0x6d05f3daU, + 0x8787a616U, + 0xe9c40101U, + 0x8fa73982U, + 0xc2f69edeU, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0x10000000U, + 0xa8000000U, + 0xac000000U, + 0x1a000000U, + 0x43000000U, + 0x58800000U, + 0x7e400000U, + 0xcba00000U, + 0x4f300000U, + 0x98a80000U, + 0xf19c0000U, + 0xd8360000U, + 0xbe2b0000U, + 0x4add8000U, + 0xaa13c000U, + 0x90db2000U, + 0x89103000U, + 0xf85d0800U, + 0x4f55fc00U, + 0x37fe0600U, + 0xb6672700U, + 0xf6531880U, + 0x5c7b1ac0U, + 0x8a51ea0U, + 0x57b03dd0U, + 0xc6e80628U, + 0x2a3c2714U, + 0x3f0698a2U, + 0x8a84daefU, + 0xa1403e8cU, + 0x31270debU, + 0x76768e38U, + 0xbd8d1b1bU, + 0x99e83e86U, + 0x90bb0de3U, + 0x26408e18U, + 0xbfa61b04U, + 0x6135be88U, + 0xd5a8cdd8U, + 0xf41bae0aU, + 0xbf62b32U, + 0xa48b6acU, + 0xab8d31f3U, + 0x90eda816U, + 0x33d0c06U, + 0xbc85ae2bU, + 0xb8412b3cU, + 0xaa3369cU, + 0x40b5f1faU, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0xb0000000U, + 0xd8000000U, + 0xfc000000U, + 0xde000000U, + 0x2f000000U, + 0x74800000U, + 0xc3400000U, + 0x38a00000U, + 0x68f00000U, + 0x64480000U, + 0x76bc0000U, + 0x5ff60000U, + 0xccc90000U, + 0xbbfa8000U, + 0x20554000U, + 0xf4b82000U, + 0x3ef39000U, + 0x9f4ec800U, + 0x983cfc00U, + 0x21b72e00U, + 0xa9ef9700U, + 0xb7cd3e80U, + 0x157e6bc0U, + 0x3e1210a0U, + 0x219dfcd0U, + 0xeac12e38U, + 0x5666973cU, + 0x8c97beaeU, + 0x11db2bd3U, + 0xa8e230a1U, + 0xbad26ce4U, + 0x80f9e612U, + 0xeed36b07U, + 0x5afa10bdU, + 0x33d1fcf9U, + 0xb77f2e36U, + 0x8f139723U, + 0x1a1b3ebcU, + 0xed076bf9U, + 0x758090bcU, + 0x20c4bcfeU, + 0xc3670e0bU, + 0x95100737U, + 0xe71df6a7U, + 0xd08797e4U, + 0xa141beb9U, + 0xa9a22bc9U, + 0x8370b0bdU, + 0xb8b2cf2U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0xd0000000U, + 0xe8000000U, + 0x6c000000U, + 0xee000000U, + 0x8d000000U, + 0xf6800000U, + 0xf2c00000U, + 0x39a00000U, + 0x48700000U, + 0x13c80000U, + 0x7abc0000U, + 0x51f60000U, + 0xe4890000U, + 0x42598000U, + 0x9867c000U, + 0x72552000U, + 0xbbf99000U, + 0xf016d800U, + 0xd19dfc00U, + 0xf9433200U, + 0x25e1c300U, + 0xb7141280U, + 0xd81f1fc0U, + 0xc60120a0U, + 0xc107dcd0U, + 0xa884b238U, + 0x47c30324U, + 0x4b26b2a2U, + 0x38b44fefU, + 0x496d58a1U, + 0x494d70e8U, + 0x467df83eU, + 0x55516c3bU, + 0x627a6a11U, + 0x2752ff01U, + 0x597b808bU, + 0x8d08cf4U, + 0x373eca36U, + 0xccb0af28U, + 0xd36e78afU, + 0x1e4de0c5U, + 0x87faa01cU, + 0xb617500fU, + 0x509a7813U, + 0x31c3ac2aU, + 0xb220ca01U, + 0x1435af05U, + 0x8ca9f8aaU, + 0x616f20c6U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0xf0000000U, + 0xb8000000U, + 0x14000000U, + 0x9e000000U, + 0xd7000000U, + 0x51800000U, + 0x25400000U, + 0xe1a00000U, + 0x95f00000U, + 0x1e80000U, + 0x6f1c0000U, + 0xf5760000U, + 0x96290000U, + 0xf4788000U, + 0x3b644000U, + 0x1e146000U, + 0xa038d000U, + 0x8440800U, + 0x1235400U, + 0x4234f600U, + 0xfa8bef00U, + 0x510e5680U, + 0xc549a6c0U, + 0xd66ca0a0U, + 0x595b49d0U, + 0xf3527638U, + 0xad9aaf2cU, + 0x77b4b6b6U, + 0xb9cc36f9U, + 0x13ac48a9U, + 0x6f388de0U, + 0x9dc0e80bU, + 0x9263c410U, + 0x28929e1aU, + 0xcf96b15U, + 0x28a628b1U, + 0x53755dceU, + 0x152a602eU, + 0x5bfdd012U, + 0x39228834U, + 0x1632143bU, + 0x48e162cU, + 0x760e7f1dU, + 0x2ccebe9fU, + 0xe72a62e3U, + 0x26fe3ea6U, + 0xb1a222ccU, + 0xfdf45ebeU, + 0x3deff2e0U, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0xd0000000U, + 0x98000000U, + 0x14000000U, + 0x2000000U, + 0x27000000U, + 0xcc800000U, + 0x8c400000U, + 0x58a00000U, + 0x33d00000U, + 0x2a680000U, + 0x22bc0000U, + 0x2a520000U, + 0xc5ab0000U, + 0x16df8000U, + 0xb604000U, + 0x39b76000U, + 0xd25b3000U, + 0x6b276800U, + 0x7153c00U, + 0x8c8fb600U, + 0x26cd0f00U, + 0x736ac780U, + 0x573d6bc0U, + 0x639771a0U, + 0x3ccb64f0U, + 0x806a3608U, + 0x39ba4f04U, + 0x18d0278eU, + 0x30ed1bf1U, + 0x2bf8f986U, + 0x497528fcU, + 0x2ebd883bU, + 0xfc554c2eU, + 0x40a83e2bU, + 0x2d5f431eU, + 0xd3a779baU, + 0xf95568c8U, + 0xbb2ae813U, + 0x559e7c23U, + 0xc3475602U, + 0x8267f28U, + 0x9192cfb1U, + 0x93cf67f7U, + 0x60edafb4U, + 0x73f857f5U, + 0xfd70c78dU, + 0xfcba6bdcU, + 0x4352f18cU, + 0x982c24e7U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0xd0000000U, + 0x98000000U, + 0xac000000U, + 0x12000000U, + 0xb1000000U, + 0xe0800000U, + 0x6fc00000U, + 0x9200000U, + 0x83b00000U, + 0xb1280000U, + 0xc19c0000U, + 0x79320000U, + 0xfbed0000U, + 0x26398000U, + 0x7e404000U, + 0x2664a000U, + 0x55507000U, + 0x73bf5800U, + 0xc7072c00U, + 0xb7878a00U, + 0xe0452f00U, + 0xf5605880U, + 0x2cd12ec0U, + 0x18fdd2a0U, + 0x87e501f0U, + 0x32160a38U, + 0x91596f04U, + 0xbb96f8beU, + 0x121c5edfU, + 0x7f730a82U, + 0x618e6df7U, + 0x996f2004U, + 0xc0fd3033U, + 0x8be27804U, + 0x90171c24U, + 0x685c720cU, + 0x6f127317U, + 0xc3d88a8eU, + 0xd5532df9U, + 0xb3ba000dU, + 0xa701002aU, + 0x67838036U, + 0x7841402eU, + 0x59672001U, + 0x3ed13001U, + 0xa9f87822U, + 0x67661c04U, + 0x5dd7f228U, + 0x987f3322U, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0x10000000U, + 0xb8000000U, + 0x34000000U, + 0x7e000000U, + 0x6d000000U, + 0x65800000U, + 0x94400000U, + 0x67a00000U, + 0xfb100000U, + 0xd7080000U, + 0xcf1c0000U, + 0xd8920000U, + 0xda4b0000U, + 0x13398000U, + 0xcac74000U, + 0xb7676000U, + 0x8777d000U, + 0xdcfdd800U, + 0x34202400U, + 0xfe53de00U, + 0x972a0700U, + 0x2f482180U, + 0x92b92ec0U, + 0x3881ffa0U, + 0x99c429f0U, + 0xdfe25e08U, + 0xc6b14734U, + 0x871d4186U, + 0x2495fec9U, + 0x984da791U, + 0x9c3f4de6U, + 0x3044e00eU, + 0x61a7900aU, + 0x2113806U, + 0xdc8bb412U, + 0x8e58e61dU, + 0xeeb6b31bU, + 0xcb1b4785U, + 0xce93ddfbU, + 0x9b4c5812U, + 0x2cbb642fU, + 0xf586be2dU, + 0xec46d71aU, + 0xf3a479b7U, + 0x95124ae4U, + 0x20f4185U, + 0x9e9efec7U, + 0x32d4278cU, + 0xd0e80dc3U, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0x70000000U, + 0x18000000U, + 0x24000000U, + 0x6a000000U, + 0xaf000000U, + 0xc3800000U, + 0x2a400000U, + 0xa0600000U, + 0xed100000U, + 0x8b180000U, + 0x70c0000U, + 0xca960000U, + 0x2b5f0000U, + 0xd86a8000U, + 0x8c054000U, + 0xb606e000U, + 0x3104f000U, + 0x6e856800U, + 0x7ac28400U, + 0x7a53e00U, + 0xa2327900U, + 0xaae90f80U, + 0x88c07e40U, + 0xcca231a0U, + 0xabb10750U, + 0x5fafbe08U, + 0xf327390cU, + 0x2ff7efaeU, + 0xeac88e55U, + 0x1ab159bcU, + 0x712c8372U, + 0x29e00022U, + 0x5850002dU, + 0x50f80036U, + 0x945c0024U, + 0x93ee0016U, + 0x4a430018U, + 0x3064803aU, + 0x2516402aU, + 0xc71a601cU, + 0x510eb018U, + 0x2b910811U, + 0x2ddf3415U, + 0x9ea8b626U, + 0xc5a70d19U, + 0xd135d99eU, + 0xf76ac35fU, + 0xf826010U, + 0x3c42b035U, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0x70000000U, + 0xe8000000U, + 0xac000000U, + 0x12000000U, + 0x5000000U, + 0x68800000U, + 0x13400000U, + 0x73e00000U, + 0xb7d00000U, + 0xfe880000U, + 0xda5c0000U, + 0x17560000U, + 0x71cf0000U, + 0xf3ba8000U, + 0x7982c000U, + 0x1dc52000U, + 0x93a37000U, + 0x67b47800U, + 0xcd994c00U, + 0x85f22e00U, + 0x60f9bd00U, + 0x4a644d80U, + 0xa1014c0U, + 0x1d2863a0U, + 0x55eaa9d0U, + 0x76c8ae08U, + 0xe63b7d0cU, + 0x96416d92U, + 0x5b6364f7U, + 0x4941b9eU, + 0xfd6fe5faU, + 0x858c8016U, + 0x45ddc009U, + 0xb997a014U, + 0xe1edb01eU, + 0x60cf581dU, + 0xfd393c31U, + 0x99c2d624U, + 0xcda1312fU, + 0xa0b7c3bfU, + 0x381b19ebU, + 0xba31f638U, + 0xbe5d4131U, + 0x99513b8cU, + 0x2ecc95e1U, + 0x4238f81bU, + 0xf8448c12U, + 0xd4658e24U, + 0x2d140d3dU, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0xf0000000U, + 0x88000000U, + 0xc4000000U, + 0xa000000U, + 0x8f000000U, + 0x41800000U, + 0xc0c00000U, + 0xd2a00000U, + 0x39d00000U, + 0x43f80000U, + 0xc32c0000U, + 0xc8520000U, + 0x6b3b0000U, + 0x858e8000U, + 0x8381c000U, + 0xebc16000U, + 0xc924f000U, + 0xe17e800U, + 0x9cdc1400U, + 0xf43e7a00U, + 0xdc0ebb00U, + 0x5f462f80U, + 0x8f635b40U, + 0x39f255a0U, + 0x4d6ae070U, + 0x5bb0fa08U, + 0xe08f7b0cU, + 0xdd074f8aU, + 0xb287ab4dU, + 0x6745bd80U, + 0xa366f462U, + 0xa7f6801aU, + 0xb06dc01fU, + 0xd933602eU, + 0xafcff033U, + 0x4a616804U, + 0x9771d42cU, + 0x9c2d1a30U, + 0x31d14b39U, + 0x47ff47b7U, + 0x692e8f44U, + 0xb7554f9fU, + 0xa2bcab5cU, + 0x814b3d93U, + 0x5b273473U, + 0x5d17e007U, + 0xcb593017U, + 0xdfc8839U, + 0x862fe428U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0xb0000000U, + 0xd8000000U, + 0x6c000000U, + 0x36000000U, + 0x9f000000U, + 0x50800000U, + 0xfdc00000U, + 0xc6600000U, + 0xfd100000U, + 0x3df80000U, + 0x106c0000U, + 0x90560000U, + 0x26590000U, + 0xfb1a8000U, + 0x38bd4000U, + 0xbfc8a000U, + 0x21225000U, + 0x27b70800U, + 0xad0d5c00U, + 0x4fc0fa00U, + 0x9b633500U, + 0x8967780U, + 0x89bba540U, + 0x3c4c0da0U, + 0x6a65d050U, + 0xeb12da38U, + 0x72fc253cU, + 0x28e9dfaeU, + 0xd994a977U, + 0xba3bff9bU, + 0xaf0bb96cU, + 0xcac457a1U, + 0x2e4b564U, + 0x8ad3a5abU, + 0x3a9adc67U, + 0x96fd283dU, + 0x5aee4c3bU, + 0xa491521cU, + 0x9fb93922U, + 0x734d0584U, + 0x52e18c7bU, + 0xa2d0a016U, + 0xee9e5035U, + 0x7cf90830U, + 0x2be85c02U, + 0x7147a08U, + 0x4fb752aU, + 0xd7ea57a6U, + 0x3911b568U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0x30000000U, + 0xb8000000U, + 0xe4000000U, + 0xee000000U, + 0x43000000U, + 0xf0800000U, + 0x90400000U, + 0x30a00000U, + 0xcf700000U, + 0xa6680000U, + 0xf99c0000U, + 0x1fb20000U, + 0x7e8f0000U, + 0xc24c8000U, + 0xa8ae4000U, + 0xda79e000U, + 0x30e2d000U, + 0xb7d62800U, + 0x151ffc00U, + 0x65f31600U, + 0xf32c8f00U, + 0x36bf3280U, + 0x3206a6c0U, + 0x8900a4a0U, + 0x7d8469f0U, + 0x13c67628U, + 0xe8601f3cU, + 0x8b90faa6U, + 0xb7bb8af5U, + 0xd3859ab5U, + 0xb0c71ad9U, + 0x8e252afU, + 0x93d636c8U, + 0xdb1d6cb6U, + 0x16f645d2U, + 0xbbafc818U, + 0x42fd2c18U, + 0xeca53e0fU, + 0x5737320U, + 0x2b6c2492U, + 0x7a1a29cbU, + 0xc7779604U, + 0x3a6ecf2fU, + 0xd39cd28dU, + 0x82b776f3U, + 0x75080ca8U, + 0x468ad5c8U, + 0xe648002fU, + 0x66ac001bU, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0x10000000U, + 0x98000000U, + 0x9c000000U, + 0xae000000U, + 0x3d000000U, + 0xa4800000U, + 0xa4400000U, + 0xdda00000U, + 0x1f00000U, + 0x35580000U, + 0xc02c0000U, + 0xa9320000U, + 0x98bb0000U, + 0x16798000U, + 0x829e4000U, + 0xc24f2000U, + 0xdea61000U, + 0xc073d800U, + 0x9996c00U, + 0x7c9d600U, + 0xd0657700U, + 0x9490be80U, + 0xe948bb40U, + 0xb20e8a0U, + 0x56b38c70U, + 0xc17f7608U, + 0x491d2734U, + 0xe18c468eU, + 0xb6c7c763U, + 0x18e2e6adU, + 0x76d39758U, + 0xbdec1e8aU, + 0x1457eb52U, + 0x50af90b0U, + 0x7775b07aU, + 0x7219d83fU, + 0xac0e6c2cU, + 0xbc02562bU, + 0x7e003713U, + 0x5061ebcU, + 0x2880eb47U, + 0x924410adU, + 0x7ca0f071U, + 0xb777831U, + 0xac1a3c3eU, + 0xb90cae2aU, + 0xc844b23U, + 0x704590bbU, + 0xd7a2b067U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x10000000U, + 0x28000000U, + 0x64000000U, + 0x1e000000U, + 0xf1000000U, + 0x41800000U, + 0xcbc00000U, + 0xdae00000U, + 0xbd500000U, + 0xfb380000U, + 0xefec0000U, + 0x9b160000U, + 0xc0190000U, + 0x2f5f8000U, + 0x19ffc000U, + 0x688f6000U, + 0xdf865000U, + 0x7ac7b800U, + 0xfb646400U, + 0x66964200U, + 0x9dd9100U, + 0x36b96980U, + 0x7e2f1940U, + 0xdef0aba0U, + 0xf5cd4850U, + 0x1226a238U, + 0x9d340114U, + 0x7b29b192U, + 0xe9712d5dU, + 0xcb0f51adU, + 0x8741bd75U, + 0x32a009afU, + 0x7f70495aU, + 0x6e089394U, + 0x80c6ec50U, + 0x5467803dU, + 0xb613c025U, + 0x9399601dU, + 0xf9f5018U, + 0x7d983806U, + 0x869ba40eU, + 0x1019220eU, + 0x275bc12bU, + 0xdfed1baU, + 0x4e8b7d5fU, + 0x6286e982U, + 0x4140d94eU, + 0xdfa7cba5U, + 0xcf71873U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0xd0000000U, + 0xd8000000U, + 0x34000000U, + 0x9a000000U, + 0x57000000U, + 0xda800000U, + 0xe400000U, + 0x4da00000U, + 0x40700000U, + 0xf6980000U, + 0x6c0000U, + 0x96b20000U, + 0x767d0000U, + 0xfd398000U, + 0x711a4000U, + 0xfbae6000U, + 0x8bd2f000U, + 0xe7eb2800U, + 0xbd728c00U, + 0xb31d9600U, + 0x58ac1700U, + 0xab55f280U, + 0x6eaeb940U, + 0xf251e4a0U, + 0xc928ee70U, + 0x79927638U, + 0xbc48a704U, + 0xd402baaeU, + 0x8a03c579U, + 0xef06dab0U, + 0x3e803568U, + 0x4c4672a8U, + 0x2ea5f952U, + 0xf404abU, + 0xafdd5e5aU, + 0x974ebe06U, + 0xd8829b0cU, + 0xcd4264a6U, + 0xbd23ae72U, + 0x1137960fU, + 0x8dbd173aU, + 0xe05e72a7U, + 0xe089f94cU, + 0xbbe604acU, + 0x49d05e7eU, + 0x44ef3e3fU, + 0x9df4db39U, + 0x3a5e0487U, + 0x178c5e54U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0xd0000000U, + 0xb8000000U, + 0xcc000000U, + 0xea000000U, + 0x25000000U, + 0xa5800000U, + 0xba400000U, + 0x4ba00000U, + 0xc6b00000U, + 0x93480000U, + 0xaa7c0000U, + 0x2e720000U, + 0xee2f0000U, + 0xf2ab8000U, + 0x7f694000U, + 0x4788a000U, + 0x551cb000U, + 0x27a63800U, + 0x3cb62400U, + 0x2e4b8e00U, + 0x13f8d700U, + 0xc6369c80U, + 0x4c8d49c0U, + 0x7b9e92a0U, + 0x7360def0U, + 0x3d2ae28U, + 0x79e2704U, + 0x116184a6U, + 0xa2d19dc7U, + 0xec1804b4U, + 0x1027ddcaU, + 0x4ff324bbU, + 0xfa6e2de3U, + 0xf20fbcbdU, + 0x775bb9e8U, + 0x70018a8aU, + 0xa8000ae5U, + 0x5406383aU, + 0xf6062401U, + 0x77038e10U, + 0x4c84d735U, + 0xf5c49ca6U, + 0xd4e249c5U, + 0x28951296U, + 0xefb99eedU, + 0x72920e02U, + 0x42be971eU, + 0x5315bc8cU, + 0xb6f8b9faU, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0x50000000U, + 0x98000000U, + 0x44000000U, + 0xc6000000U, + 0xa7000000U, + 0x2b800000U, + 0xb4400000U, + 0x5c200000U, + 0x31500000U, + 0x43a80000U, + 0xbb7c0000U, + 0x9d960000U, + 0x9e4f0000U, + 0x214b8000U, + 0xec84000U, + 0xdc8de000U, + 0x77ad9000U, + 0xf57e4800U, + 0x46930400U, + 0x67c9ae00U, + 0x6c092b00U, + 0x9a6b5f80U, + 0xb41981c0U, + 0x7b6171a0U, + 0x8f4ead0U, + 0x1db9ce08U, + 0x5d73fb04U, + 0x5afb778eU, + 0xd4d355c5U, + 0x6ced77b7U, + 0xbedc55e8U, + 0xb186f7b3U, + 0xd14415c0U, + 0xb6a317b3U, + 0x599585f4U, + 0x184b5f98U, + 0x264981deU, + 0x754971a2U, + 0xf0c8ead8U, + 0x6f8fce2dU, + 0x22cfb39U, + 0xa238f78dU, + 0xf73715fdU, + 0x45de9797U, + 0x5802c5ccU, + 0xa4053fbfU, + 0x360051ccU, + 0x6f04d984U, + 0xf7857ed5U, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0xd0000000U, + 0x8000000U, + 0xcc000000U, + 0xee000000U, + 0xd3000000U, + 0x52800000U, + 0x4ac00000U, + 0xa5e00000U, + 0xbed00000U, + 0x68780000U, + 0x562c0000U, + 0x51920000U, + 0x47db0000U, + 0x42df8000U, + 0xb75cc000U, + 0xf5192000U, + 0x33389000U, + 0x83882800U, + 0xbc63ac00U, + 0x2941200U, + 0xd55b3100U, + 0xa81f0580U, + 0xc2bbbf40U, + 0x43cc97a0U, + 0x97404e70U, + 0x3ba0b208U, + 0x3ef46104U, + 0x17c98daaU, + 0xdd404347U, + 0xbaa38d99U, + 0x89774377U, + 0x188e0da7U, + 0x42e08362U, + 0xd650adb7U, + 0x7bb8d34aU, + 0x804ba582U, + 0xc204ef79U, + 0x8d021fabU, + 0xf987b255U, + 0xc45a808U, + 0xc5246c02U, + 0xea32b21bU, + 0xb92f613aU, + 0xf5160d97U, + 0xba1c835dU, + 0x47baad98U, + 0x764fd34aU, + 0x750625bcU, + 0x2d832f59U, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0xf0000000U, + 0xe8000000U, + 0xb4000000U, + 0x22000000U, + 0x81000000U, + 0x21800000U, + 0x56400000U, + 0xc2200000U, + 0xa9100000U, + 0xe6480000U, + 0x2fdc0000U, + 0x5e560000U, + 0xb5ef0000U, + 0x988e8000U, + 0x3e3ec000U, + 0xf921e000U, + 0x15943000U, + 0xa788d800U, + 0xe8bc6400U, + 0x7de64e00U, + 0x39731b00U, + 0xe77dcd80U, + 0xa5810cc0U, + 0x7c4303a0U, + 0xa723d7d0U, + 0xb291ae08U, + 0x6d082b2cU, + 0x5a7b9592U, + 0x203a8d1U, + 0x3104ad92U, + 0x6984fcddU, + 0x1244bb88U, + 0x82543d9U, + 0x9c16d80aU, + 0xe5cf643eU, + 0xf89ece13U, + 0xbdf2db10U, + 0x4abaad94U, + 0xbce7fcfeU, + 0xb8f43ba1U, + 0x413883edU, + 0x8fa7b811U, + 0x61569412U, + 0x636f761bU, + 0x1c4b4f22U, + 0x12db5b8cU, + 0xb9d273d0U, + 0x58ae8009U, + 0xa62ec025U, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0x90000000U, + 0xb8000000U, + 0x1c000000U, + 0x1a000000U, + 0xd1000000U, + 0x3800000U, + 0x65c00000U, + 0x27a00000U, + 0xc0500000U, + 0xe3b80000U, + 0x516c0000U, + 0x4960000U, + 0x8f9b0000U, + 0xe0f98000U, + 0xee8f4000U, + 0x71a22000U, + 0xd357b000U, + 0x9d3e1800U, + 0x52b3400U, + 0x33f0c200U, + 0x6defab00U, + 0x6dd0fb80U, + 0xa97fe540U, + 0x824fb9a0U, + 0xf9840e50U, + 0x44c4e228U, + 0x2c231b34U, + 0x919763a6U, + 0x7a1b9163U, + 0x463d5b88U, + 0x2fac1563U, + 0x69b201aeU, + 0xa58bca59U, + 0xe326180fU, + 0x9517341aU, + 0x4f5ec211U, + 0x5ad8ab33U, + 0xc1f7b91U, + 0xc53ba55dU, + 0xe92c1996U, + 0x21f0fe55U, + 0x88eeda3dU, + 0xd0549f06U, + 0x1bb839adU, + 0x6d6c4e51U, + 0x8e914222U, + 0xe69ceb35U, + 0xff7cdbbcU, + 0x914f5554U, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0x50000000U, + 0x48000000U, + 0xec000000U, + 0xb2000000U, + 0x3000000U, + 0xf3800000U, + 0x70c00000U, + 0x3f200000U, + 0x9c300000U, + 0xec580000U, + 0x28ec0000U, + 0x9bf60000U, + 0x76fb0000U, + 0xb91f8000U, + 0x5a0ec000U, + 0xa622000U, + 0x9ed37000U, + 0x65cc4800U, + 0x64c42400U, + 0x1926aa00U, + 0xf9319700U, + 0x5add8c80U, + 0xbea9c140U, + 0x7a92a6a0U, + 0xe7ad9650U, + 0x76128a28U, + 0xbee9e704U, + 0x86f6449aU, + 0x147f256fU, + 0x69582c9eU, + 0xae68716bU, + 0x35b2ceb8U, + 0x639dc258U, + 0x3e49e809U, + 0xc8059404U, + 0xac06c202U, + 0x9201c302U, + 0x5306ee9fU, + 0xbb85b270U, + 0x9cc22037U, + 0x8d237020U, + 0x9f34482cU, + 0x1fd82414U, + 0x5828aa1bU, + 0xa4d69735U, + 0xeacc0c80U, + 0x55400166U, + 0x72e10686U, + 0x91972671U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0x70000000U, + 0xa8000000U, + 0x4000000U, + 0x2a000000U, + 0xcb000000U, + 0x32800000U, + 0x68400000U, + 0xada00000U, + 0xabf00000U, + 0x2ba80000U, + 0xfddc0000U, + 0x66b20000U, + 0xb58f0000U, + 0x97ee8000U, + 0x627cc000U, + 0x8a466000U, + 0xf2a5f000U, + 0x4b70c800U, + 0x54e92c00U, + 0xe4fae600U, + 0x40030700U, + 0xe001ae80U, + 0x50020cc0U, + 0xd807c8a0U, + 0xac02cbf0U, + 0x2e068628U, + 0xe105f72cU, + 0xf985e6a2U, + 0x5ac4e0ddU, + 0xc5e7ce80U, + 0x657fcc3U, + 0x805f00aeU, + 0xd677e7c4U, + 0x9b6e6025U, + 0xd339f01dU, + 0x2262c809U, + 0xf5962c3aU, + 0xe83c663fU, + 0x78e3c73bU, + 0xb9d5ce91U, + 0x1f98fcf7U, + 0xb011808aU, + 0xa4fb27dbU, + 0xa0000020U, + 0xb000003dU, + 0x8800003fU, + 0x74000012U, + 0x8200003fU, + 0xcf00003eU, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0xd0000000U, + 0x38000000U, + 0x7c000000U, + 0x6000000U, + 0xf7000000U, + 0xae800000U, + 0x79400000U, + 0x9d600000U, + 0x22500000U, + 0xc5880000U, + 0x625c0000U, + 0x86120000U, + 0xff690000U, + 0xfccd8000U, + 0xdf3d4000U, + 0x94472000U, + 0xd2e45000U, + 0xda97c800U, + 0x232e6c00U, + 0x9a28ae00U, + 0x77a94900U, + 0xd26a0580U, + 0x534db8c0U, + 0xf7fd2ba0U, + 0x4ae0b1f0U, + 0x56958e18U, + 0x2d281904U, + 0xf92a4db6U, + 0x9b2b94ebU, + 0x262d25afU, + 0x91a9e8d2U, + 0xf56ae3b2U, + 0xc5cedde7U, + 0xf2bd201aU, + 0xd181500dU, + 0x83c04821U, + 0x46262c06U, + 0xe2300e34U, + 0x8059591bU, + 0xfb176d93U, + 0xa8eac4e3U, + 0x480d6d87U, + 0xd79fc4fdU, + 0xdf32edbcU, + 0xf7db84d7U, + 0x7fd04da9U, + 0x484e94deU, + 0x477aa5beU, + 0x88a1a8d3U, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0x70000000U, + 0xd8000000U, + 0x84000000U, + 0xd6000000U, + 0xc5000000U, + 0x92800000U, + 0xb6400000U, + 0xdb200000U, + 0xa0b00000U, + 0x3380000U, + 0x600c0000U, + 0x79f60000U, + 0xd9d0000U, + 0xbf788000U, + 0x6c2b4000U, + 0xb8c3e000U, + 0x9f641000U, + 0xf892d800U, + 0x5c0bdc00U, + 0x1bf17600U, + 0x269dd300U, + 0x1cfcd080U, + 0x46ef9240U, + 0x94a326a0U, + 0xa0740150U, + 0x285c9618U, + 0x7698c30cU, + 0x14f8888eU, + 0x8aee0e7dU, + 0x6ea730a3U, + 0xef778240U, + 0x2ddffe89U, + 0x415edd50U, + 0x2e1b603cU, + 0xd5bf5028U, + 0xa049380dU, + 0xf7d3cc3cU, + 0x97adae39U, + 0x56070f26U, + 0x85032696U, + 0x7284016cU, + 0xc6449633U, + 0x324c331U, + 0x24b68880U, + 0xd53f0e5fU, + 0xa509b09fU, + 0xeb71c26fU, + 0xbbdc9eb3U, + 0x645d8d5aU, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0x90000000U, + 0xc8000000U, + 0x8c000000U, + 0xa000000U, + 0xfd000000U, + 0x44800000U, + 0x35400000U, + 0xff200000U, + 0xd3b00000U, + 0x38880000U, + 0x88bc0000U, + 0x94f20000U, + 0x2eab0000U, + 0xf18d8000U, + 0x7238c000U, + 0x22b52000U, + 0xb60bb000U, + 0xe0fc7800U, + 0xbf516c00U, + 0x5afe00U, + 0xba200b00U, + 0x23303880U, + 0x73cc1fc0U, + 0x549d46a0U, + 0xb0c3d4f0U, + 0x1ce7de08U, + 0xd7bb14U, + 0x469e409aU, + 0x69c673c7U, + 0xee623890U, + 0x9a971fecU, + 0x4438c69bU, + 0x4db714e6U, + 0xeb88fe14U, + 0x873b0b0eU, + 0x4a35b8a9U, + 0x1948dfeeU, + 0x2ada66aaU, + 0xa46364c8U, + 0x796263dU, + 0x30be1705U, + 0x20f19e8eU, + 0x50adc8edU, + 0xd28e7834U, + 0x85ba6c33U, + 0x28777e14U, + 0xcfe8cb22U, + 0x40ad1885U, + 0xda8bafd2U, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0xd0000000U, + 0x78000000U, + 0x8c000000U, + 0x86000000U, + 0x53000000U, + 0x93800000U, + 0x2bc00000U, + 0x68e00000U, + 0xb0f00000U, + 0x1a380000U, + 0x5c4c0000U, + 0x45360000U, + 0xdddd0000U, + 0xb13d8000U, + 0x3cb4000U, + 0x8f6a000U, + 0x363bd000U, + 0xea48e800U, + 0xbe312400U, + 0xba5b5200U, + 0x90fd5100U, + 0xbe2fb480U, + 0x7884ac40U, + 0x944766a0U, + 0xf523bd50U, + 0x2315f218U, + 0xcd4a8124U, + 0x67b15ca6U, + 0xa4988857U, + 0xe899b49fU, + 0xce99ac67U, + 0xad9ae69dU, + 0x9618fd7aU, + 0x49db5238U, + 0x2b3d5121U, + 0x4ecfb49bU, + 0x9474ac78U, + 0x707f66acU, + 0x766fbd4dU, + 0x73a3f23aU, + 0x68578121U, + 0x2decdcb0U, + 0x3c63c86bU, + 0x92b714aaU, + 0x141e7c49U, + 0x18dc0eb2U, + 0xa9b8d951U, + 0x78b8006U, + 0x65d64021U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0xb0000000U, + 0x18000000U, + 0x44000000U, + 0x6e000000U, + 0x8d000000U, + 0x7b800000U, + 0xf7c00000U, + 0xea00000U, + 0xed700000U, + 0x26280000U, + 0xbdc0000U, + 0xc8b20000U, + 0xff8d0000U, + 0x62a8000U, + 0x1bdf4000U, + 0xb3e000U, + 0x1389d000U, + 0x342d5800U, + 0xbcdad400U, + 0x9834f200U, + 0x12ca7300U, + 0xb6c99a80U, + 0xa8cb30c0U, + 0x5dcde8a0U, + 0xd24f03f0U, + 0x538f1238U, + 0x942fa31cU, + 0x6cdec29eU, + 0x3030e4fdU, + 0x4ec99abdU, + 0x9ccb30c2U, + 0x4bcde8bdU, + 0xab4f03c2U, + 0x5e0f1223U, + 0xaaefa30bU, + 0x77fec28fU, + 0xa780e4e7U, + 0x1dc19a98U, + 0x8da730c2U, + 0xabf7e88dU, + 0xb26e03c0U, + 0xb6bf922bU, + 0x4561e30bU, + 0xb9d5a2b0U, + 0x505b74f3U, + 0x2f75a2b2U, + 0x392b74efU, + 0x75da286U, + 0xff774eaU, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0x10000000U, + 0x58000000U, + 0x94000000U, + 0xae000000U, + 0xe9000000U, + 0xe4800000U, + 0xa3400000U, + 0x70600000U, + 0xb7500000U, + 0x61080000U, + 0x91dc0000U, + 0x58160000U, + 0x6b6f0000U, + 0xc1898000U, + 0x249c4000U, + 0xe5756000U, + 0xdebe5000U, + 0x26c17800U, + 0x1ba48c00U, + 0xee742e00U, + 0xa9388100U, + 0x8605e580U, + 0xd50564c0U, + 0x36864ba0U, + 0x3842a5d0U, + 0x1fe14e08U, + 0x2396d114U, + 0x11ac9dbeU, + 0xf82de8e1U, + 0xb9ec659dU, + 0xffc924cfU, + 0xae7b2b9aU, + 0x5060f5c6U, + 0xe756363bU, + 0x990d5d34U, + 0x15d93391U, + 0xae1529d2U, + 0x166ae02aU, + 0x8b0d1019U, + 0x6edd9800U, + 0x71969c28U, + 0xcaa83622U, + 0x37ae5d3aU, + 0x3d2eb389U, + 0xd76a69d8U, + 0x53880015U, + 0x1f9c0023U, + 0x9af60031U, + 0x127f0012U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0xf0000000U, + 0x18000000U, + 0x7c000000U, + 0x86000000U, + 0xa7000000U, + 0xda800000U, + 0x2400000U, + 0x51600000U, + 0x45500000U, + 0x23980000U, + 0x594c0000U, + 0x2f160000U, + 0x56f90000U, + 0x86188000U, + 0xdd894000U, + 0x6a362000U, + 0xdc95000U, + 0x5e514800U, + 0x5f1d4c00U, + 0x6c0ed600U, + 0x4cf1f100U, + 0x75eebd80U, + 0xee3a840U, + 0xe096eba0U, + 0x1b3e1950U, + 0xdab8f638U, + 0xa478a12cU, + 0xc05ff59eU, + 0xe6eee463U, + 0xe6603d87U, + 0x37d3e866U, + 0x25d84bafU, + 0x22e0945U, + 0x53479e1cU, + 0x74e0bd22U, + 0x81966ba3U, + 0x6bb594dU, + 0xf278d632U, + 0xef58f125U, + 0xa86e3db1U, + 0x626e866U, + 0x3bb6cbb7U, + 0x9b0e497cU, + 0x5e713e03U, + 0x83acad03U, + 0x4d870386U, + 0xe0c64553U, + 0xbf27c825U, + 0x7a310c06U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x10000000U, + 0x38000000U, + 0xfc000000U, + 0x86000000U, + 0x11000000U, + 0x5800000U, + 0xdcc00000U, + 0xe7e00000U, + 0x79500000U, + 0x94780000U, + 0x4bac0000U, + 0x5960000U, + 0x43990000U, + 0x7aff8000U, + 0x45ef4000U, + 0x4a332000U, + 0x146a5000U, + 0x94f2f800U, + 0xf88c0400U, + 0x6f23da00U, + 0x9cb00100U, + 0xe62aa180U, + 0x5d524b40U, + 0xbe78fba0U, + 0x84a80a50U, + 0xfd10fa38U, + 0x24da5114U, + 0xacd85996U, + 0x58de4f7bU, + 0x6adb218fU, + 0x29d80b6bU, + 0x7f5a5b98U, + 0xcd181a67U, + 0x64b8a20eU, + 0x324a4502U, + 0xe1c5dbabU, + 0x7c675a73U, + 0x3893822aU, + 0xd81c151eU, + 0x3b39239eU, + 0x98e5e68U, + 0x3aa1d83fU, + 0x18765400U, + 0xedc92213U, + 0x9a000527U, + 0xc7077b8bU, + 0x4c874a42U, + 0x3543da17U, + 0x8520013eU, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0x90000000U, + 0x98000000U, + 0x84000000U, + 0xe2000000U, + 0x75000000U, + 0xf7800000U, + 0x9c00000U, + 0xe0600000U, + 0xa0100000U, + 0xac780000U, + 0xa5ac0000U, + 0x59b20000U, + 0xb4090000U, + 0xcdc78000U, + 0x22664000U, + 0xa517e000U, + 0x53ffb000U, + 0xb06c7800U, + 0xdfd23400U, + 0x8319e200U, + 0xe33b6500U, + 0x798fff80U, + 0x1505cd40U, + 0xa781fda0U, + 0x71c11870U, + 0xf4627a18U, + 0xda16e114U, + 0x5d7a659eU, + 0xb02c9c45U, + 0x2577e03eU, + 0xa3efb00cU, + 0x6414783dU, + 0x6e7e343bU, + 0xa0abe223U, + 0xa632650bU, + 0xa1c87fabU, + 0x4ba38d5cU, + 0x15761da0U, + 0x8beea876U, + 0x8160205U, + 0x78d519U, + 0x2ba987afU, + 0x42b2f970U, + 0xc88d9fadU, + 0x20853d42U, + 0xab45e5a2U, + 0x6e26dc4cU, + 0x41b2002cU, + 0xf0090036U, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0x50000000U, + 0x8000000U, + 0xc000000U, + 0xce000000U, + 0x25000000U, + 0x64800000U, + 0x37c00000U, + 0x89a00000U, + 0x36d00000U, + 0xca980000U, + 0x178c0000U, + 0xd2b60000U, + 0x3aed0000U, + 0xd8418000U, + 0xefe0c000U, + 0x4372000U, + 0x1e2c9000U, + 0xa4631800U, + 0x10706c00U, + 0x9fcbea00U, + 0x35525b00U, + 0x32dc9f80U, + 0x86d3c40U, + 0x6e8055a0U, + 0x70c3f750U, + 0xb627d218U, + 0x1892a704U, + 0x147a6dbaU, + 0x5d3e0b57U, + 0x4c58a011U, + 0x90ad501aU, + 0x84a3b812U, + 0xae513c10U, + 0x8b5e5239U, + 0xef2e6703U, + 0x4ae34da3U, + 0x20b39b41U, + 0xc9ec383fU, + 0x7dc0fc16U, + 0x2ea6f218U, + 0x5953372cU, + 0xecd8f587U, + 0xc56ea77aU, + 0x56046a0fU, + 0x81039b14U, + 0x16843f99U, + 0x84c06c6bU, + 0xcc23edaaU, + 0xa792cb56U, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0x90000000U, + 0xe8000000U, + 0xc4000000U, + 0x66000000U, + 0x21000000U, + 0xdb800000U, + 0xe5400000U, + 0x6ba00000U, + 0x52900000U, + 0x42b80000U, + 0xc16c0000U, + 0x16760000U, + 0xb88f0000U, + 0xedc58000U, + 0x1a61c000U, + 0xd2f46000U, + 0x5b499000U, + 0x52a17800U, + 0xd513f400U, + 0xddffc600U, + 0x51cdff00U, + 0xf4665580U, + 0x47f68b40U, + 0x3ecdf3a0U, + 0x2ae2e450U, + 0x2f32de08U, + 0xe92b9b34U, + 0xe456eb92U, + 0x785b8055U, + 0x465fe003U, + 0x9b5b5029U, + 0xaade9807U, + 0x5c98a415U, + 0x43b95e16U, + 0xcae95b1cU, + 0xbb310b93U, + 0x872cd06cU, + 0x31577803U, + 0xbddcf437U, + 0xae1a460cU, + 0x897c3f18U, + 0x5a0a35a5U, + 0x8f031b51U, + 0xee828b9cU, + 0x10c21055U, + 0xfbe69826U, + 0x6cb4a42aU, + 0x106f5e36U, + 0x55f65b12U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x30000000U, + 0x8000000U, + 0x14000000U, + 0x22000000U, + 0x5d000000U, + 0x6c800000U, + 0x9ac00000U, + 0x4ca00000U, + 0x54d00000U, + 0xbe780000U, + 0xbc6c0000U, + 0xb60000U, + 0xeb090000U, + 0x62468000U, + 0xb463c000U, + 0x2573e000U, + 0xb6283000U, + 0x90d7b800U, + 0xe47b2c00U, + 0x9d69a200U, + 0x6a33db00U, + 0x6cae780U, + 0xb65a340U, + 0x34f0a5a0U, + 0x106e4850U, + 0x7eb5fa38U, + 0xe00cc71cU, + 0x41c2fd9aU, + 0x17245449U, + 0x8b95602aU, + 0x169bf002U, + 0x6bdc580bU, + 0xde3f1c3dU, + 0x5081a0aU, + 0x7141f736U, + 0xdbe5c5b4U, + 0x8835b86dU, + 0x7bc9a214U, + 0x37e3db23U, + 0x9632e793U, + 0x40c9a34eU, + 0x1c66a59cU, + 0x2177487aU, + 0xcc2b7a1dU, + 0xe1d30725U, + 0xb6ff1d9aU, + 0x6ca96461U, + 0x35125816U, + 0xf95a1c22U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0xb0000000U, + 0x18000000U, + 0x54000000U, + 0xa000000U, + 0x29000000U, + 0x7800000U, + 0x2bc00000U, + 0x69600000U, + 0xb7900000U, + 0xd6080000U, + 0xd85c0000U, + 0xda320000U, + 0x987f0000U, + 0x26808000U, + 0x10434000U, + 0x24a36000U, + 0x19f77000U, + 0x5d19d800U, + 0x5f17d400U, + 0x4d4f3200U, + 0x9e7e5d00U, + 0xb1814b80U, + 0xa4c592c0U, + 0x89e519a0U, + 0x10d0bff0U, + 0xf62f8a28U, + 0x74edf91cU, + 0xda0d218eU, + 0x665c5bf9U, + 0x69328024U, + 0x1efc402fU, + 0x46c3e00bU, + 0xce4302cU, + 0xd952b81dU, + 0x56eca432U, + 0x7f0cea2dU, + 0x1fda8911U, + 0xd1f4f982U, + 0x411b8fdaU, + 0x8915b205U, + 0x924e1d3fU, + 0xf6f8abbdU, + 0xeac2a2d8U, + 0xc2e5218eU, + 0x52505bd2U, + 0x34688027U, + 0xd4f4022U, + 0x7e796039U, + 0x2184703bU, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0x70000000U, + 0x48000000U, + 0xe4000000U, + 0x6e000000U, + 0x7f000000U, + 0x27800000U, + 0x47c00000U, + 0x37a00000U, + 0x89d00000U, + 0xf9a80000U, + 0x81bc0000U, + 0x2cb20000U, + 0xa15d0000U, + 0xb6848000U, + 0xdf47c000U, + 0x37e66000U, + 0x89b7d000U, + 0xfdac800U, + 0x15c1e400U, + 0x3aa67200U, + 0x73537b00U, + 0x1cef4f80U, + 0x8f5ffdc0U, + 0x69875da0U, + 0xe8c756f0U, + 0x4820da38U, + 0x12144f2cU, + 0xc0d758aU, + 0xfd6ba2e5U, + 0xe39e8029U, + 0x3fa6c016U, + 0xcdd0e00aU, + 0x87ad1012U, + 0xc6b82816U, + 0xa731f40aU, + 0x6c9ada28U, + 0x90254f1dU, + 0xe13f5bcU, + 0xae0d62d9U, + 0x786e600bU, + 0x9d1bd00dU, + 0xc4e0c806U, + 0xf430e429U, + 0x118f217U, + 0xa6e5bb36U, + 0x1137afbbU, + 0xf9eedf1U, + 0x15a575adU, + 0xccd7a2fcU, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0xd0000000U, + 0xb8000000U, + 0x44000000U, + 0xba000000U, + 0x81000000U, + 0x4e800000U, + 0x21c00000U, + 0xda600000U, + 0x71500000U, + 0x82b80000U, + 0xac2c0000U, + 0x8ff60000U, + 0x7d0d0000U, + 0xcf058000U, + 0x5d814000U, + 0xf240e000U, + 0x9b217000U, + 0x9f41800U, + 0xa20c5c00U, + 0x8a82aa00U, + 0xdbc1d500U, + 0xbb602d80U, + 0xefd01140U, + 0x1b7a67a0U, + 0x324cb450U, + 0x44a05218U, + 0x7eb1f924U, + 0x2dab1f96U, + 0xf3b0d865U, + 0x552e0020U, + 0x25710021U, + 0xd6cb8005U, + 0xfc60401cU, + 0x9e53600bU, + 0xaf3d3005U, + 0xd6697838U, + 0x38d06c17U, + 0x32f85210U, + 0x120df93cU, + 0xa2851fa6U, + 0xc7c1d854U, + 0x9565800fU, + 0x6cd1400aU, + 0x90f8e025U, + 0xe70d7025U, + 0x3e02183dU, + 0x9b015c18U, + 0xff872a1eU, + 0x740950bU, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0x50000000U, + 0xf8000000U, + 0xec000000U, + 0xc6000000U, + 0x21000000U, + 0xd4800000U, + 0x52400000U, + 0x6ee00000U, + 0x16f00000U, + 0x37080000U, + 0xb9bc0000U, + 0x37560000U, + 0xe59b0000U, + 0x27078000U, + 0x95874000U, + 0xf6c1a000U, + 0x94a3d000U, + 0x6c10f800U, + 0xbf8cc00U, + 0x69b60600U, + 0x7b6aed00U, + 0x54086480U, + 0xfe3f1dc0U, + 0xca97c2a0U, + 0x42ba20d0U, + 0xecd15e28U, + 0x765af104U, + 0xb5211ab6U, + 0xa0d67cefU, + 0xa05e002fU, + 0x4c270023U, + 0xc851800cU, + 0xcc1c4008U, + 0xefc62010U, + 0xcc24902aU, + 0x88515827U, + 0xec1b1c23U, + 0xbfc6fe35U, + 0x34222103U, + 0x6456629fU, + 0x2a19f0d9U, + 0x9ec1a619U, + 0xe0a23d3eU, + 0x36171ca3U, + 0x44fc91caU, + 0x88366496U, + 0xd7a81dd2U, + 0x8fae42abU, + 0x73aa60c8U, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0x90000000U, + 0x88000000U, + 0xd4000000U, + 0x9a000000U, + 0x8b000000U, + 0xd9800000U, + 0x60c00000U, + 0x6200000U, + 0xe4100000U, + 0x37680000U, + 0xb5bc0000U, + 0xe1f60000U, + 0x8dd0000U, + 0xf4078000U, + 0xaa02c000U, + 0x7305e000U, + 0x1586f000U, + 0xa6c4c800U, + 0xc3243400U, + 0x2c911a00U, + 0x52f6f00U, + 0xadddd80U, + 0x63039dc0U, + 0xdd8127a0U, + 0x92c602d0U, + 0xc9263218U, + 0x2f90ab34U, + 0x8af8f9aU, + 0xf01a06d1U, + 0xee200024U, + 0xe0100007U, + 0xc5680028U, + 0x7abc001eU, + 0x2a760015U, + 0x371d0014U, + 0xb1a7802aU, + 0xa5d2c036U, + 0x9bcde003U, + 0x24eaf037U, + 0x767ac804U, + 0x9a553411U, + 0xe089a2cU, + 0x124caf02U, + 0x6c29bd8dU, + 0xd45aadf7U, + 0xfc478fbfU, + 0xee6606cbU, + 0x3076000dU, + 0xfc1d0028U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0xf0000000U, + 0xa8000000U, + 0xe4000000U, + 0x5a000000U, + 0xa1000000U, + 0xa5800000U, + 0xb3c00000U, + 0x22200000U, + 0xd9700000U, + 0x82680000U, + 0x1edc0000U, + 0x91920000U, + 0xc0bd0000U, + 0x70008000U, + 0x6804c000U, + 0x84016000U, + 0xaa027000U, + 0x9029800U, + 0x41870400U, + 0xe9c26200U, + 0x83218700U, + 0x7cf2f680U, + 0x31af46c0U, + 0x3cf9f4a0U, + 0x48e0b1f0U, + 0x42d39a38U, + 0x6ed9f30cU, + 0xf9928cb2U, + 0x44bd05c5U, + 0xda00001cU, + 0x61000021U, + 0xc5800027U, + 0x43c00038U, + 0x8a20000bU, + 0x3d700023U, + 0xd868003eU, + 0xbfdc0019U, + 0x3412002dU, + 0x737d001bU, + 0x52208030U, + 0xb174c01cU, + 0x669601dU, + 0xb4de7037U, + 0x98909807U, + 0x813a040aU, + 0x99c2e224U, + 0xeb25472aU, + 0xf8f39684U, + 0x9bad36c6U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x90000000U, + 0x18000000U, + 0xc000000U, + 0xd2000000U, + 0xc9000000U, + 0xba800000U, + 0xdb400000U, + 0x72e00000U, + 0x4ef00000U, + 0xcfc80000U, + 0x837c0000U, + 0xdcd60000U, + 0xa6190000U, + 0x85e38000U, + 0x3f764000U, + 0x1f0ba000U, + 0xc5e7000U, + 0xf1861800U, + 0x90c2fc00U, + 0xef221e00U, + 0xbd574500U, + 0x2edc9480U, + 0x66c023c0U, + 0x50232aa0U, + 0xf8d016d0U, + 0xd01a2638U, + 0x7ae48934U, + 0x1af0b29eU, + 0x71cdaae7U, + 0x8781812U, + 0xb757fc21U, + 0xcbdf9e02U, + 0xfe440520U, + 0xca62b4b4U, + 0x24b113e6U, + 0x9bad12bbU, + 0xdccadad1U, + 0xa4fd8012U, + 0x313400bU, + 0x84be2014U, + 0xd2713012U, + 0xd38e3827U, + 0x281acc1dU, + 0xa6e7a616U, + 0xb0f7c90aU, + 0x24ce9294U, + 0x78fc9ae1U, + 0xa9162038U, + 0xd1bd3016U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0xf0000000U, + 0x68000000U, + 0xac000000U, + 0x1a000000U, + 0x63000000U, + 0x24800000U, + 0x28c00000U, + 0x2c200000U, + 0xdf100000U, + 0xaf080000U, + 0x8fdc0000U, + 0x36720000U, + 0xbb7f0000U, + 0xa3a28000U, + 0x4f52c000U, + 0xf9ef2000U, + 0x43ee3000U, + 0x10ea8800U, + 0x7c6c5c00U, + 0x8ac3200U, + 0x568cff00U, + 0x469c1d80U, + 0xd710b6c0U, + 0x130d0fa0U, + 0x2ddd79f0U, + 0x61711a28U, + 0x41ff530cU, + 0x5e650792U, + 0x3ef3e5d7U, + 0x49ba083cU, + 0xcc819c03U, + 0x44c19207U, + 0x16200f2eU, + 0x4c11b598U, + 0xe38edad6U, + 0xb19b586U, + 0x52dafcU, + 0x76bb587U, + 0x282ddacbU, + 0xe849359cU, + 0xe3bf1aedU, + 0x27861589U, + 0x1c412adfU, + 0xbce49d8aU, + 0xc73176d4U, + 0xae1aaf98U, + 0xf5d289dbU, + 0xe42c3230U, + 0xe24cff11U, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0x30000000U, + 0x28000000U, + 0x24000000U, + 0x8a000000U, + 0xb1000000U, + 0xe0800000U, + 0xbc00000U, + 0x61a00000U, + 0x46500000U, + 0x84a80000U, + 0xe43c0000U, + 0x77b20000U, + 0x39190000U, + 0x4c228000U, + 0xb16c000U, + 0x21cf6000U, + 0x48f000U, + 0xe30a9800U, + 0x7d6eac00U, + 0xc89f8a00U, + 0xb7631b00U, + 0x9976db80U, + 0x3a3cf9c0U, + 0x44b431a0U, + 0x9c9e12f0U, + 0x3562f218U, + 0xdc76873cU, + 0x48bc29b2U, + 0xf2767ec5U, + 0xb3ba1808U, + 0x43f16c15U, + 0x68fa6a22U, + 0x1912b22U, + 0x6b0923aaU, + 0x496fa5daU, + 0xba99a3bbU, + 0x3a6065f4U, + 0xfff4439cU, + 0x2efe55c9U, + 0xfe91bb84U, + 0x808809e8U, + 0x3b2ca98aU, + 0x1479bee2U, + 0x9c57f825U, + 0xedaf5c0aU, + 0xe8bf9229U, + 0xe277770aU, + 0x4bbc31b5U, + 0x7ff212ecU, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0x50000000U, + 0x18000000U, + 0xb4000000U, + 0x2000000U, + 0x7b000000U, + 0xcc800000U, + 0xe1c00000U, + 0x19a00000U, + 0x80900000U, + 0xeea80000U, + 0x6fc0000U, + 0x4e760000U, + 0x695b0000U, + 0xd7e78000U, + 0x40704000U, + 0xb45c6000U, + 0x5a633000U, + 0xf2310800U, + 0x9ab91c00U, + 0xed97fa00U, + 0x4b2edb00U, + 0x68ba0d80U, + 0x9e90efc0U, + 0xbaf97a0U, + 0x6f7a04d0U, + 0xe6351228U, + 0x88b8b704U, + 0xae969f8eU, + 0x63af18f9U, + 0x937ce826U, + 0x48316c23U, + 0x45bd123bU, + 0x1b14b732U, + 0x35e89fb3U, + 0xa79818f5U, + 0x30c5681dU, + 0x32262c2fU, + 0x73d0f213U, + 0x93ccc737U, + 0x864a77a6U, + 0xc00e74c7U, + 0xcce9fa03U, + 0x5019db09U, + 0x3d838db9U, + 0x9a47afc6U, + 0xf2e27792U, + 0x49f274f9U, + 0x6c1ffa1fU, + 0xf382db38U, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0x90000000U, + 0x98000000U, + 0xbc000000U, + 0xae000000U, + 0x87000000U, + 0xf0800000U, + 0xc7c00000U, + 0xca00000U, + 0xd5100000U, + 0x46080000U, + 0xa5dc0000U, + 0x44f20000U, + 0x9d7b0000U, + 0xdbe58000U, + 0xee764000U, + 0x37bc2000U, + 0x82c01000U, + 0x2d238800U, + 0xe9535c00U, + 0xdbe84a00U, + 0x18aaa300U, + 0x39cea980U, + 0x4578d6c0U, + 0x7e0c3a0U, + 0x707565f0U, + 0xb8ba6208U, + 0x5643af14U, + 0xf8e34b8eU, + 0xccf639cbU, + 0x797a282dU, + 0x69e50c3eU, + 0x5777e23fU, + 0xd839ef34U, + 0x9856b99U, + 0x484129ebU, + 0xb7e62019U, + 0xb877100dU, + 0x3cbc0814U, + 0xd4421c1bU, + 0x49e3ea02U, + 0x777f306U, + 0xe03c8181U, + 0x2581dad3U, + 0x7e45218bU, + 0x8ce78afcU, + 0xe6f28980U, + 0x7c78c6e6U, + 0x28634b8aU, + 0x5b3639e5U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0xd0000000U, + 0x18000000U, + 0x64000000U, + 0x1e000000U, + 0x1b000000U, + 0x5a800000U, + 0xf1c00000U, + 0x53a00000U, + 0xa1100000U, + 0xe2880000U, + 0xf5c0000U, + 0x8bf20000U, + 0xa8ff0000U, + 0xcce38000U, + 0xc5704000U, + 0x4f3ae000U, + 0xd8415000U, + 0x94e6e800U, + 0x41702c00U, + 0xa13b2a00U, + 0xb410b00U, + 0xb2606180U, + 0xcab462c0U, + 0xf79baba0U, + 0xebd739f0U, + 0xfbaca228U, + 0x678c3704U, + 0x8edd438eU, + 0xb715edU, + 0xda9f8821U, + 0x26513c2fU, + 0xe2ef2219U, + 0xbcec770eU, + 0x47efa384U, + 0xed6a45cdU, + 0xd4ab600bU, + 0xfb0e101dU, + 0x201f8804U, + 0xc7913c21U, + 0x894f2203U, + 0xa9fc772aU, + 0xa367a39fU, + 0x9d3645c2U, + 0x1bd96022U, + 0xb9311000U, + 0xe5dc0822U, + 0x52317c3fU, + 0x775dc229U, + 0xdff1271cU, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0x30000000U, + 0xf8000000U, + 0x14000000U, + 0xce000000U, + 0x35000000U, + 0x800000U, + 0xe3c00000U, + 0x97200000U, + 0xe7100000U, + 0xd0e80000U, + 0xc73c0000U, + 0xc9760000U, + 0xf81d0000U, + 0xb2628000U, + 0xeaf44000U, + 0xaa586000U, + 0x20035000U, + 0x90021800U, + 0x28060c00U, + 0xdc00ea00U, + 0x2205cf00U, + 0xef032580U, + 0xfb80d1c0U, + 0xd645afa0U, + 0x74674ed0U, + 0x93f01218U, + 0xa0d8d31cU, + 0xf0c7b786U, + 0xdea142c9U, + 0xf650f82dU, + 0x830d1c18U, + 0xa08c920bU, + 0xf2cd9339U, + 0x60ab579bU, + 0x1a5b52c4U, + 0x98000002U, + 0x64000015U, + 0xd600003eU, + 0x1100003bU, + 0x36800005U, + 0xc2c00038U, + 0x59a00001U, + 0x31d0000eU, + 0x4748003cU, + 0xc3ec0004U, + 0x8ebe001aU, + 0xd8310001U, + 0xabfc8012U, + 0xd5d5400fU, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x10000000U, + 0x28000000U, + 0x14000000U, + 0x62000000U, + 0x87000000U, + 0x8c800000U, + 0xbac00000U, + 0x5f200000U, + 0xb9d00000U, + 0xf8d80000U, + 0xeacc0000U, + 0x74b60000U, + 0xdee90000U, + 0x3fe78000U, + 0x1df3c000U, + 0xdb8ae000U, + 0x5dd73000U, + 0xe2dc6800U, + 0x31cffc00U, + 0x9e342200U, + 0xa92b5700U, + 0x7f447380U, + 0xf0670e40U, + 0x41b4b1a0U, + 0xdd6e6950U, + 0x6da52a38U, + 0xa2105b14U, + 0x867ed992U, + 0xe6589541U, + 0xaf0e8832U, + 0xfb14cc34U, + 0xbbfe4a23U, + 0x551dab0bU, + 0x516fd1beU, + 0x3a39945U, + 0xb142211U, + 0xc3fb5725U, + 0x91c7398U, + 0x376b0e67U, + 0xcea2b1afU, + 0x1497694bU, + 0x97baaa27U, + 0x6bff9b1fU, + 0x5d1a39a2U, + 0x356aa543U, + 0x59a36035U, + 0xb011f03bU, + 0x397f0813U, + 0x56de0c30U, + 0x80000000U, + 0xc0000000U, + 0x60000000U, + 0x50000000U, + 0x98000000U, + 0xf4000000U, + 0xfa000000U, + 0xc7000000U, + 0x95800000U, + 0x80c00000U, + 0xaaa00000U, + 0x17100000U, + 0xdb980000U, + 0x554c0000U, + 0xd4f20000U, + 0xd0ed0000U, + 0xca658000U, + 0x2db04000U, + 0x34886000U, + 0x2ad6f000U, + 0xe3bb2800U, + 0x371a3400U, + 0x750ffa00U, + 0xa012ab00U, + 0x26196180U, + 0x898cf240U, + 0xb854fba0U, + 0x96f9a970U, + 0x4d793238U, + 0x50be2f24U, + 0x989dd3beU, + 0x52ce9d69U, + 0xcf334838U, + 0x29ccc43cU, + 0xcb4d203U, + 0x89f05U, + 0x5e969ba9U, + 0x5d5e5958U, + 0xceed9a02U, + 0xcf655b11U, + 0xbb35c9beU, + 0x13cb8655U, + 0xabb6e1abU, + 0xc58db277U, + 0x46531b8fU, + 0x3fe1941U, + 0x23fdfa3bU, + 0xd3ffab0aU, + 0x7bfce1bdU, + 0x47fcb273U, + 0xd1fc9bb2U, + 0x18ff5949U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0x70000000U, + 0x28000000U, + 0xa4000000U, + 0x7e000000U, + 0xe5000000U, + 0x8d800000U, + 0x8ec00000U, + 0x12600000U, + 0x1bf00000U, + 0x14880000U, + 0xa6bc0000U, + 0xdad20000U, + 0xbdf0000U, + 0x17a68000U, + 0xd914c000U, + 0xd03d6000U, + 0xac915000U, + 0x62fb9800U, + 0x6cf36400U, + 0x360e6a00U, + 0x46ff8d00U, + 0xd2f08080U, + 0xf309bdc0U, + 0xbb798aa0U, + 0x743460f0U, + 0x456e1228U, + 0xde89792cU, + 0x85b81282U, + 0x6e5404f5U, + 0x8a9cf835U, + 0x9c013420U, + 0x62017234U, + 0x47072906U, + 0xea850aadU, + 0x1443a0ccU, + 0x2e27f23eU, + 0x91d3e926U, + 0xfb586a98U, + 0xb8e2f0d4U, + 0xefb46a1dU, + 0x6aac8d2bU, + 0x6f6c00a3U, + 0xad8e7dd1U, + 0x69386a93U, + 0x6312f0c8U, + 0xdb3c6a23U, + 0xbc108d2fU, + 0x9dbe00a9U, + 0x2517df9U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0xb0000000U, + 0x28000000U, + 0x3c000000U, + 0x6e000000U, + 0x7000000U, + 0x81800000U, + 0xf400000U, + 0x3600000U, + 0x59500000U, + 0xaff80000U, + 0xd06c0000U, + 0x8fb20000U, + 0x4bef0000U, + 0x85f08000U, + 0x180ac000U, + 0xf165a000U, + 0x40511000U, + 0x217b0800U, + 0xd2ac5400U, + 0xc5944600U, + 0x2adeb900U, + 0x9cdd2d80U, + 0x6fd93740U, + 0x2c5c4ba0U, + 0xd21c5e70U, + 0x43ffce28U, + 0xc6682d1cU, + 0xcb4cb82U, + 0x6a9e63U, + 0xf7b06e31U, + 0xcfea3d3eU, + 0x4ff543b3U, + 0x650f0a6eU, + 0x25e3080aU, + 0xa790542aU, + 0xabde4638U, + 0x65db90fU, + 0x3f1fada2U, + 0xf7cf76aU, + 0x35a96bb9U, + 0xd4178e73U, + 0xbd99663eU, + 0x8bb9693dU, + 0x64898595U, + 0xeaa77343U, + 0x84f18582U, + 0x428b7372U, + 0x81a3859aU, + 0xd374734dU, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0x10000000U, + 0x18000000U, + 0xd4000000U, + 0x66000000U, + 0xfd000000U, + 0x4d800000U, + 0x8a400000U, + 0xa1a00000U, + 0xe9700000U, + 0xcd380000U, + 0xe78c0000U, + 0x9f560000U, + 0xa90f0000U, + 0x31918000U, + 0x96a4000U, + 0x1e076000U, + 0xd9071000U, + 0x83811800U, + 0xab43a400U, + 0x4625ce00U, + 0x2c301700U, + 0xba1b1a80U, + 0x343e9840U, + 0x340834a0U, + 0x8c13df50U, + 0x2b2d5608U, + 0x63a5f314U, + 0x9a77b4aeU, + 0x1ba9f71U, + 0x9a4db63fU, + 0xe3b7a31aU, + 0xe3584ca2U, + 0x49186b59U, + 0xb8b8001dU, + 0xe9cc003dU, + 0xe0f6002aU, + 0x797f0038U, + 0xcf298001U, + 0x4da64004U, + 0xb71601aU, + 0xee38102dU, + 0x9308982bU, + 0x2695e42fU, + 0xabecae28U, + 0x52c4070cU, + 0x5a65828eU, + 0xd8947c5aU, + 0xc2ed1abfU, + 0xd941984aU, + 0x80000000U, + 0xc0000000U, + 0xa0000000U, + 0x90000000U, + 0x28000000U, + 0xa4000000U, + 0x2a000000U, + 0x9f000000U, + 0x32800000U, + 0xc4400000U, + 0xf7a00000U, + 0xed700000U, + 0xf0680000U, + 0xffdc0000U, + 0x6e520000U, + 0x385b0000U, + 0x67958000U, + 0x93bc000U, + 0x1056000U, + 0x6f86f000U, + 0x6dc1e800U, + 0xbb64cc00U, + 0x6997a600U, + 0x7c384700U, + 0xc841280U, + 0x94432c0U, + 0x762354a0U, + 0x5b145f0U, + 0x5e8bce08U, + 0xec8b4b14U, + 0xaf8cd4a2U, + 0x9b0d85cdU, + 0xde492e20U, + 0x866d7b3eU, + 0xa6dddcaeU, + 0x7dd479f2U, + 0xc39a001bU, + 0x75f70013U, + 0x6b2f8023U, + 0x9afcc007U, + 0xd762e021U, + 0x17963029U, + 0xd1390835U, + 0xbd05fc10U, + 0x59812e29U, + 0x54c17b17U, + 0x98e7dcbdU, + 0x2a5379c0U, + 0xe25d8004U, + 0xe097c03cU, + 0x27bf602aU, + 0x6341f02cU, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0x70000000U, + 0x48000000U, + 0xc000000U, + 0xbe000000U, + 0x69000000U, + 0x40800000U, + 0x35400000U, + 0x97e00000U, + 0x40300000U, + 0xb2180000U, + 0xa3ec0000U, + 0xb1520000U, + 0xba690000U, + 0xac908000U, + 0x84cfc000U, + 0xfd412000U, + 0x5be01000U, + 0x1e33f800U, + 0xab1aac00U, + 0xab681e00U, + 0x88143d00U, + 0x93884a80U, + 0x85a5f340U, + 0x7651f4a0U, + 0x6bee1e70U, + 0x7d536618U, + 0xe46d512cU, + 0xb59374aaU, + 0x8c48de5fU, + 0xc402c61dU, + 0x72028129U, + 0x3701ac87U, + 0x5982624bU, + 0x3dc12007U, + 0xaea0102eU, + 0x69d3f81eU, + 0x9b2aac3eU, + 0x51701e02U, + 0x27f83d08U, + 0x9cda4a8dU, + 0x56ccf345U, + 0x9a417488U, + 0xda61de62U, + 0x17f24629U, + 0xffbd412eU, + 0x19b88c80U, + 0x84be725eU, + 0xde38d800U, + 0x407fbc12U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0x30000000U, + 0xe8000000U, + 0x34000000U, + 0x12000000U, + 0xfd000000U, + 0xe0800000U, + 0x50400000U, + 0x2aa00000U, + 0xb3f00000U, + 0x5580000U, + 0x4a6c0000U, + 0xebd60000U, + 0x5be90000U, + 0xe5168000U, + 0x720cc000U, + 0x77c1e000U, + 0x7362b000U, + 0x6b933800U, + 0xe948cc00U, + 0xeae65600U, + 0x61579f00U, + 0x3aa85e80U, + 0xb1355f40U, + 0x92b968a0U, + 0x8bbcb050U, + 0xe13bee38U, + 0xf07f931cU, + 0x2c59e8a2U, + 0xc8e97041U, + 0xce948e1eU, + 0x95cde322U, + 0xfca530a4U, + 0x94f60c67U, + 0x7cd96028U, + 0x30ab7025U, + 0xb0325817U, + 0x43fbc0dU, + 0xecfa0e39U, + 0xa1d231dU, + 0xd54ad08dU, + 0xbce1bc59U, + 0x652d83dU, + 0x232a7c16U, + 0xfbf56e2fU, + 0x215f5310U, + 0xe06e08a2U, + 0xfad2c061U, + 0x75693637U, + 0x6e55ef11U, + 0x80000000U, + 0xc0000000U, + 0xe0000000U, + 0xb0000000U, + 0xa8000000U, + 0x2c000000U, + 0x96000000U, + 0x23000000U, + 0x15800000U, + 0xf1400000U, + 0x54600000U, + 0x8a900000U, + 0xe0380000U, + 0xf06c0000U, + 0x9a720000U, + 0x67690000U, + 0x5df68000U, + 0xef2ec000U, + 0x19172000U, + 0xa7e5000U, + 0x658be800U, + 0x43a75400U, + 0xe237d600U, + 0xab8fd100U, + 0xc4a62b80U, + 0x1db7e740U, + 0xf7c85da0U, + 0x2244a670U, + 0xc9e0be18U, + 0x7d3451cU, + 0x3a5a5d92U, + 0xddfda667U, + 0xd5ce3e2fU, + 0xd3418533U, + 0xa5677d98U, + 0xe616f658U, + 0x1f9561aU, + 0xcbcd1125U, + 0x8c430bb0U, + 0x3ee0b77aU, + 0xb0553591U, + 0xfa1d3262U, + 0x5184819U, + 0xe9ec414U, + 0xa0dd9e3eU, + 0x6f38151eU, + 0xb3ed35a3U, + 0xa831326aU, + 0x968a480eU, + 0x8e27c439U, + 0x77731e01U, + 0xf5ead504U, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0xf0000000U, + 0xf8000000U, + 0x14000000U, + 0x3a000000U, + 0x89000000U, + 0x9b800000U, + 0xbbc00000U, + 0x5e00000U, + 0x55700000U, + 0xb9080000U, + 0x7e3c0000U, + 0x5c160000U, + 0x673f0000U, + 0x2f968000U, + 0x60fa4000U, + 0xc766000U, + 0x6a8cf000U, + 0x89fb5800U, + 0x87f1b400U, + 0x79481200U, + 0x901f9900U, + 0x481c880U, + 0x674695c0U, + 0xc6a13aa0U, + 0xf1d3bcd0U, + 0x25dbca08U, + 0x2676d2cU, + 0x78b73a96U, + 0xbbecbcf9U, + 0xf3cd4a10U, + 0xb45d2d37U, + 0x28a15a80U, + 0xa2d04cf0U, + 0x675e1239U, + 0x2a20992eU, + 0x2a974889U, + 0xc57cd5d4U, + 0xacb75a81U, + 0x61ef4cfdU, + 0x2ac8921bU, + 0x27dad91aU, + 0x7f612896U, + 0x893025caU, + 0x812c02a7U, + 0x81aef8c0U, + 0x74e88039U, + 0x27494022U, + 0x9b1ee03aU, + 0xa205b03cU, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0xf0000000U, + 0x88000000U, + 0x4000000U, + 0x5a000000U, + 0x45000000U, + 0x1b800000U, + 0xa2400000U, + 0x68600000U, + 0x23900000U, + 0xedf80000U, + 0xe9ac0000U, + 0xf1760000U, + 0x9da90000U, + 0x63708000U, + 0xbca9c000U, + 0xd2f36000U, + 0xd3ef7000U, + 0xa513b800U, + 0x83f5400U, + 0x658c5e00U, + 0xd985d900U, + 0xdb451380U, + 0xc5e5e940U, + 0x6ad2ada0U, + 0x91a8050U, + 0x32f96638U, + 0x972a4d2cU, + 0xd8b2adbaU, + 0x2f8a807dU, + 0xa4816614U, + 0x2cc64d00U, + 0xc9a4ad88U, + 0x95b38045U, + 0x7009e61eU, + 0x3cc38d31U, + 0xf1a1cdafU, + 0x79b5f05fU, + 0xde0ade03U, + 0xabc51924U, + 0xab26f3b0U, + 0x9a73596dU, + 0x512a7593U, + 0xfbb6a458U, + 0xc7088015U, + 0xf645c024U, + 0x6a65602fU, + 0x7a967034U, + 0xd07b3809U, + 0xd8ea940cU, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0xd0000000U, + 0xf8000000U, + 0x1c000000U, + 0x2e000000U, + 0xf000000U, + 0xc3800000U, + 0x24400000U, + 0xe6a00000U, + 0x72100000U, + 0x2bd80000U, + 0x2c0c0000U, + 0xf4320000U, + 0x580f0000U, + 0xde338000U, + 0x950f4000U, + 0x14b22000U, + 0x99c91000U, + 0x27d3c800U, + 0x83e0400U, + 0x543c8e00U, + 0x9a3a0f00U, + 0x653f0980U, + 0x8ebef440U, + 0x4efa27a0U, + 0x9a5eab70U, + 0xc94ec628U, + 0x2e144b04U, + 0xe5da27b6U, + 0xd30eab73U, + 0x1fb6c615U, + 0x98484b34U, + 0xa9027b3U, + 0xc61dab7eU, + 0xf3ef4617U, + 0x52040b22U, + 0x110387b0U, + 0xc484fb60U, + 0xd3c52e19U, + 0x8e05f23U, + 0xa9b4e1b0U, + 0xbb4ae058U, + 0xef14e196U, + 0xd95ae076U, + 0x1ccce1abU, + 0x3956e069U, + 0x3efee187U, + 0x7259e040U, + 0xd4d6190U, + 0xcc16a069U, + 0x80000000U, + 0x40000000U, + 0x60000000U, + 0xf0000000U, + 0x28000000U, + 0x24000000U, + 0x9e000000U, + 0x4d000000U, + 0x34800000U, + 0x63c00000U, + 0xf1a00000U, + 0x9c700000U, + 0x95680000U, + 0xb45c0000U, + 0x98560000U, + 0xa4590000U, + 0x508000U, + 0xc85cc000U, + 0x4a576000U, + 0x33585000U, + 0x17d0d800U, + 0xfa1f6c00U, + 0xc8b00a00U, + 0xa34a5b00U, + 0xa2687a80U, + 0x73d99ec0U, + 0x121790a0U, + 0xdabb55d0U, + 0x2465238U, + 0x8ae0f72cU, + 0x24179092U, + 0xf3bb55f5U, + 0xc8c6520dU, + 0x5420f70aU, + 0xc93790b2U, + 0x280b55f7U, + 0x320e521bU, + 0x310cf726U, + 0xf08990a6U, + 0x5bce55e5U, + 0x5ba8d224U, + 0xc1793705U, + 0x2fe670a5U, + 0x1496c5d3U, + 0x9e796a10U, + 0xac670b12U, + 0xf0d622b2U, + 0x859f32d3U, + 0xbef67ab5U, + 0x4fac9ec8U, + 0x5779108dU, + 0xd6e295c9U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0x30000000U, + 0x88000000U, + 0xbc000000U, + 0x26000000U, + 0xd000000U, + 0x35800000U, + 0x76c00000U, + 0x5ee00000U, + 0xb7500000U, + 0x75880000U, + 0x139c0000U, + 0x19320000U, + 0xdd9f0000U, + 0x78348000U, + 0x561bc000U, + 0x7f4a000U, + 0x2f7b5000U, + 0x51601800U, + 0x1a93a400U, + 0xbbee6a00U, + 0x6b894900U, + 0xea999180U, + 0x96b328c0U, + 0xb05fdba0U, + 0x9656f1f0U, + 0x1e08f228U, + 0x7c5e2d3cU, + 0xd857dbaaU, + 0xbf0af1e3U, + 0xd7daf20bU, + 0x97912d1cU, + 0x4e6b5b8cU, + 0x3d4d31d2U, + 0x847c5218U, + 0xa9e57d2fU, + 0x79d7c38bU, + 0xa3c955e6U, + 0xa3c9814U, + 0x94446431U, + 0xd6a0ca0eU, + 0xb7f11900U, + 0x677f09adU, + 0xcd644ce8U, + 0xc9191adU, + 0x3eef28e4U, + 0xe20ddb9cU, + 0xba59f1ecU, + 0xc554720eU, + 0x3289ed3dU, + 0x80000000U, + 0x40000000U, + 0xe0000000U, + 0xb0000000U, + 0x18000000U, + 0x1c000000U, + 0xf2000000U, + 0xd1000000U, + 0xc6800000U, + 0xdb400000U, + 0x24a00000U, + 0x34f00000U, + 0xdbf80000U, + 0x24cc0000U, + 0x2fd60000U, + 0xb6cd0000U, + 0xed68000U, + 0x884f4000U, + 0x79932000U, + 0x46e8f000U, + 0x8062d800U, + 0xa997dc00U, + 0xaee8be00U, + 0x64601700U, + 0xf793e680U, + 0x95e8ca40U, + 0x6fe6f8a0U, + 0x18536d50U, + 0xbb0ae618U, + 0xb9358b3cU, + 0x2c1ef8beU, + 0x609f6d6bU, + 0x86dce61aU, + 0x6ef88b23U, + 0xfc4878b5U, + 0x2f902d6eU, + 0x29efc61eU, + 0xcde07b2cU, + 0x6152a0bbU, + 0x798bf15cU, + 0x8c71782aU, + 0x2bbd6c05U, + 0x43efc605U, + 0x40e07b1aU, + 0xb5d2a09cU, + 0xc3cbf14bU, + 0x76517820U, + 0xd80d6c3fU, + 0x4eb7c637U, + 0x81dc7b02U, + 0x877ca08cU, + 0x8a8af14aU, + 0x80000000U, + 0x40000000U, + 0x20000000U, + 0xf0000000U, + 0xe8000000U, + 0xb4000000U, + 0xa000000U, + 0x6d000000U, + 0xa7800000U, + 0x73400000U, + 0x11e00000U, + 0x3a300000U, + 0x7e680000U, + 0xcd9c0000U, + 0xfed60000U, + 0xfdb0000U, + 0xb6b28000U, + 0x1aac000U, + 0xe3bfe000U, + 0xcac47000U, + 0xb5a77800U, + 0x29557400U, + 0xd49e3600U, + 0x33569d00U, + 0xc19b9280U, + 0x18d780c0U, + 0x14dec4a0U, + 0x3234add0U, + 0x5a6f4e28U, + 0xff98e92cU, + 0x3fd724b2U, + 0xfe5bddd1U, + 0x16f2b618U, + 0xd0cb5d26U, + 0x6048f2a3U, + 0x718e30fbU, + 0x20aadcb7U, + 0x823869efU, + 0x52856031U, + 0xc8c2b00aU, + 0xfca6983bU, + 0xbcd6043dU, + 0x66ddce2eU, + 0xd332293bU, + 0x5be8c4a1U, + 0xb7dfadc6U, + 0x5ab5ce27U, + 0x77ae2939U, + 0xc0bec4a6U, + 0xe244adc7U, + 0xb8674e07U, + 0xe674e935U, + 0x80000000U, + 0xc0000000U, + 0x20000000U, + 0x70000000U, + 0x58000000U, + 0xe4000000U, + 0x92000000U, + 0x59000000U, + 0x64800000U, + 0x2b400000U, + 0x64600000U, + 0xf7100000U, + 0xa2a80000U, + 0xeb7c0000U, + 0x1e720000U, + 0x1b3f0000U, + 0x8f968000U, + 0x4fef4000U, + 0x3c18e000U, + 0x40e23000U, + 0x3c539800U, + 0x96cc4c00U, + 0x346bae00U, + 0xdf5100U, + 0x86470f80U, + 0x5ae12fc0U, + 0x6950c1a0U, + 0xfc4c0ef0U, + 0x402a3628U, + 0x933c1d2cU, + 0x8392219eU, + 0x41ed3ee5U, + 0x631d2e12U, + 0xb760111fU, + 0xce97efb5U, + 0x2f6f1fc0U, + 0xd55959b6U, + 0x558342feU, + 0x13c5183dU, + 0x69230c3dU, + 0x70734e28U, + 0xd43d6113U, + 0x7014978fU, + 0x712d63c7U, + 0xabbb6f99U, + 0x8ed35fd5U, + 0xc68d39afU, + 0x158d32e8U, + 0x2c0ae02eU, + 0xa1cd3024U, + 0x9fed1836U, + 0xd41f0c09U, + 0x80000000U, + 0x40000000U, + 0xa0000000U, + 0xb0000000U, + 0x58000000U, + 0x84000000U, + 0x4a000000U, + 0x1d000000U, + 0x83800000U, + 0xfec00000U, + 0x52200000U, + 0x5ad00000U, + 0xf3f80000U, + 0x6d6c0000U, + 0xbf60000U, + 0x75af0000U, + 0x32d48000U, + 0x6ffd4000U, + 0x36fe000U, + 0xecf5f000U, + 0xb32f7800U, + 0xcb945400U, + 0x891cfa00U, + 0x169a6f00U, + 0xc659ab80U, + 0xd379c740U, + 0xff2831a0U, + 0xad941850U, + 0xa21d8208U, + 0xf61d3b3cU, + 0xb41fd1beU, + 0x651de84dU, + 0xc09cfa24U, + 0xb55a6f36U, + 0xb7f9ab9aU, + 0xc769c754U, + 0x6f03182U, + 0x1e281858U, + 0x10138232U, + 0xf3de3b36U, + 0xebd51a0U, + 0x818fa874U, + 0xa3079a3eU, + 0x6c82df26U, + 0xf44133aaU, + 0x8d64636fU, + 0x3735b3acU, + 0xb689234cU, + 0x6d8253b0U, + 0x59c0d35aU, + 0x34a32b93U, + 0x1397876eU, + }; + } +} // namespace sobol diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Sampling/SobolData.cs.meta b/Packages/com.unity.render-pipelines.core/Runtime/Sampling/SobolData.cs.meta new file mode 100644 index 00000000000..73c86370efd --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/Sampling/SobolData.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 3855c9e5913bd1e4f84f3bb238dc6c41 \ No newline at end of file diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Sampling/SobolSampling.hlsl b/Packages/com.unity.render-pipelines.core/Runtime/Sampling/SobolSampling.hlsl new file mode 100644 index 00000000000..12fd621df1e --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/Sampling/SobolSampling.hlsl @@ -0,0 +1,169 @@ +#ifndef _SAMPLING_SOBOLSAMPLING_HLSL_ +#define _SAMPLING_SOBOLSAMPLING_HLSL_ + +#define SOBOL_MATRIX_SIZE 52 +#define SOBOL_MATRICES_COUNT 1024 + +#include "SamplingResources.hlsl" +#include "Hashes.hlsl" +#include "Common.hlsl" + +// HLSLcc cannot correctly translate `reversebits(x)` for large unsigned integers. +// Therefore, when using HLSLcc, we use our own implementation. https://jira.unity3d.com/browse/GFXFEAT-629 +#ifdef UNITY_COMPILER_HLSLCC +uint ReverseBitsSafe(uint x) +{ + x = ((x >> 1) & 0x55555555u) | ((x & 0x55555555u) << 1); + x = ((x >> 2) & 0x33333333u) | ((x & 0x33333333u) << 2); + x = ((x >> 4) & 0x0f0f0f0fu) | ((x & 0x0f0f0f0fu) << 4); + x = ((x >> 8) & 0x00ff00ffu) | ((x & 0x00ff00ffu) << 8); + x = ((x >> 16) & 0xffffu) | ((x & 0xffffu) << 16); + return x; +} +#else +#define ReverseBitsSafe reversebits +#endif + +// See https://psychopath.io/post/2021_01_30_building_a_better_lk_hash +uint LaineKarrasPermutation(uint x, uint seed) +{ + x ^= x * 0x3d20adea; + x += seed; + x *= (seed >> 16) | 1; + x ^= x * 0x05526c56; + x ^= x * 0x53a22864; + return x; +} + +uint NestedUniformOwenScramble(uint x, uint seed) +{ + x = ReverseBitsSafe(x); + x = LaineKarrasPermutation(x, seed); + x = ReverseBitsSafe(x); + return x; +} + +//See https://psychopath.io/post/2022_08_14_a_fast_hash_for_base_4_owen_scrambling +uint LaineKarrasStylePermutationBase4(uint x, uint seed) +{ + x ^= x * 0x3d20adeau; + x ^= (x >> 1) & (x << 1) & 0x55555555u; + x += seed; + x *= (seed >> 16) | 1; + x ^= (x >> 1) & (x << 1) & 0x55555555u; + x ^= x * 0x05526c56u; + x ^= x * 0x53a22864u; + return x; +} + +uint NestedUniformScrambleBase4(uint x, uint seed) +{ + x = ReverseBitsSafe(x); + x = LaineKarrasStylePermutationBase4(x, seed); + x = ReverseBitsSafe(x); + return x; +} + +// "Insert" a 0 bit after each of the 16 low bits of x. +// Ref: https://fgiesen.wordpress.com/2009/12/13/decoding-morton-codes/ +uint Part1By1(uint x) +{ + x &= 0x0000ffff; // x = ---- ---- ---- ---- fedc ba98 7654 3210 + x = (x ^ (x << 8)) & 0x00ff00ff; // x = ---- ---- fedc ba98 ---- ---- 7654 3210 + x = (x ^ (x << 4)) & 0x0f0f0f0f; // x = ---- fedc ---- ba98 ---- 7654 ---- 3210 + x = (x ^ (x << 2)) & 0x33333333; // x = --fe --dc --ba --98 --76 --54 --32 --10 + x = (x ^ (x << 1)) & 0x55555555; // x = -f-e -d-c -b-a -9-8 -7-6 -5-4 -3-2 -1-0 + return x; +} + +uint EncodeMorton2D(uint2 coord) +{ + return (Part1By1(coord.y) << 1) + Part1By1(coord.x); +} + +uint SobolSampleUint(uint index, int dimension, uint indexMaxBitCount) +{ + uint result = 0; + +#ifdef UNIFIED_RT_BACKEND_HARDWARE + // Raytracing tracing shaders compile only with unrolled loop, but unrolling fails in the compute path. + // TODO: test again when Unity updates the shader compiler + [unroll] +#endif + for (uint i = dimension * SOBOL_MATRIX_SIZE; i < dimension * SOBOL_MATRIX_SIZE + indexMaxBitCount; index >>= 1, ++i) + { + result ^= _SobolMatricesBuffer[i] * (index & 1); + } + + return result; +} + +uint SobolSampleUint(uint2 index64, uint dimension) +{ + uint result = 0; + uint i = dimension * SOBOL_MATRIX_SIZE; + + for (; i < dimension * SOBOL_MATRIX_SIZE + 32; index64.x >>= 1, ++i) + { + result ^= _SobolMatricesBuffer[i] * (index64.x & 1); + } + + for (; i < dimension * SOBOL_MATRIX_SIZE + 32+20; index64.y >>= 1, ++i) + { + result ^= _SobolMatricesBuffer[i] * (index64.y & 1); + } + + return result; +} + +uint GetMortonShuffledSampleIndex(uint index, uint pixelMortonIndex, uint mortonShuffleSeed, uint log2SamplesPerPixel) +{ + uint mortonIndexShuffled = NestedUniformScrambleBase4(pixelMortonIndex, mortonShuffleSeed); + + uint sampleIndexForPixel = (mortonIndexShuffled << log2SamplesPerPixel) | index; + return sampleIndexForPixel; +} + +uint2 GetMortonShuffledSampleIndex64(uint index, uint pixelMortonIndex, uint mortonShuffleSeed, uint log2SamplesPerPixel) +{ + uint mortonIndexShuffled = NestedUniformScrambleBase4(pixelMortonIndex, mortonShuffleSeed); + + uint2 sampleIndex64; + sampleIndex64.x = (mortonIndexShuffled << log2SamplesPerPixel) | index; + sampleIndex64.y = mortonIndexShuffled >> (32 - log2SamplesPerPixel); + return sampleIndex64; +} + +float GetSobolSample(uint index, int dimension) +{ + uint result = SobolSampleUint(index, dimension, 20); + return UintToFloat01(result); +} + +float GetOwenScrambledSobolSample(uint sampleIndex, uint dim, uint valueScrambleSeed) +{ + uint sobolUInt = SobolSampleUint(sampleIndex, dim, 20); + uint result = NestedUniformOwenScramble(sobolUInt, valueScrambleSeed); + return UintToFloat01(result); +} + +float GetOwenScrambledZShuffledSobolSample(uint sampleIndex, uint dim, uint maxDim, uint pixelMortonCode, uint log2SamplesPerPixel) +{ + const uint kSeedValueScramble = 0xab773au; + uint mortonShuffleSeed = LowBiasHash32(dim, 0); + uint valueScrambleSeed = LowBiasHash32(dim, kSeedValueScramble); + +#ifdef QRNG_GLOBAL_SOBOL_ENHANCED_TILING + uint2 shuffledSampleIndex = GetMortonShuffledSampleIndex64(sampleIndex, pixelMortonCode, mortonShuffleSeed, log2SamplesPerPixel); + uint sobolUInt = SobolSampleUint(shuffledSampleIndex, dim % maxDim); +#else + uint shuffledSampleIndex = GetMortonShuffledSampleIndex(sampleIndex, pixelMortonCode, mortonShuffleSeed, log2SamplesPerPixel); + uint sobolUInt = SobolSampleUint(shuffledSampleIndex, dim % maxDim, 32); +#endif + + uint result = NestedUniformOwenScramble(sobolUInt, valueScrambleSeed); + return UintToFloat01(result); +} + + +#endif // UNITY_SOBOL_SAMPLING_INCLUDED diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Sampling/SobolSampling.hlsl.meta b/Packages/com.unity.render-pipelines.core/Runtime/Sampling/SobolSampling.hlsl.meta new file mode 100644 index 00000000000..ee7a6bb3c18 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/Sampling/SobolSampling.hlsl.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 8a9360b3acf7c304cbcb5a54b9b89409 +ShaderIncludeImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Sampling/Textures.meta b/Packages/com.unity.render-pipelines.core/Runtime/Sampling/Textures.meta new file mode 100644 index 00000000000..4271d9b67a7 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/Sampling/Textures.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 837c8a5059e05e74f8f9b8cbb40c6fa1 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Sampling/Textures/SobolBlueNoise.meta b/Packages/com.unity.render-pipelines.core/Runtime/Sampling/Textures/SobolBlueNoise.meta new file mode 100644 index 00000000000..bd2cc5e2e7c --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/Sampling/Textures/SobolBlueNoise.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5cd9d26d95a75804d8f849a19ab998e7 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Sampling/Textures/SobolBlueNoise/RankingTile256SPP.png b/Packages/com.unity.render-pipelines.core/Runtime/Sampling/Textures/SobolBlueNoise/RankingTile256SPP.png new file mode 100644 index 00000000000..d11717991bc Binary files /dev/null and b/Packages/com.unity.render-pipelines.core/Runtime/Sampling/Textures/SobolBlueNoise/RankingTile256SPP.png differ diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Sampling/Textures/SobolBlueNoise/RankingTile256SPP.png.meta b/Packages/com.unity.render-pipelines.core/Runtime/Sampling/Textures/SobolBlueNoise/RankingTile256SPP.png.meta new file mode 100644 index 00000000000..228f42a5c46 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/Sampling/Textures/SobolBlueNoise/RankingTile256SPP.png.meta @@ -0,0 +1,127 @@ +fileFormatVersion: 2 +guid: adf003e8db5aef64fa57c155f2e599be +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 10 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 0 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Windows Store Apps + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: PS4 + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Sampling/Textures/SobolBlueNoise/ScramblingTile256SPP.png b/Packages/com.unity.render-pipelines.core/Runtime/Sampling/Textures/SobolBlueNoise/ScramblingTile256SPP.png new file mode 100644 index 00000000000..cb69c8a47a7 Binary files /dev/null and b/Packages/com.unity.render-pipelines.core/Runtime/Sampling/Textures/SobolBlueNoise/ScramblingTile256SPP.png differ diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Sampling/Textures/SobolBlueNoise/ScramblingTile256SPP.png.meta b/Packages/com.unity.render-pipelines.core/Runtime/Sampling/Textures/SobolBlueNoise/ScramblingTile256SPP.png.meta new file mode 100644 index 00000000000..88909a0dc40 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/Sampling/Textures/SobolBlueNoise/ScramblingTile256SPP.png.meta @@ -0,0 +1,127 @@ +fileFormatVersion: 2 +guid: 11fcf3c83299e814cbb25c4d74cd045d +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 10 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 0 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Windows Store Apps + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: PS4 + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Sampling/Textures/SobolBlueNoise/SobolOwenScrambled256.png b/Packages/com.unity.render-pipelines.core/Runtime/Sampling/Textures/SobolBlueNoise/SobolOwenScrambled256.png new file mode 100644 index 00000000000..ee6c446fee8 Binary files /dev/null and b/Packages/com.unity.render-pipelines.core/Runtime/Sampling/Textures/SobolBlueNoise/SobolOwenScrambled256.png differ diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Sampling/Textures/SobolBlueNoise/SobolOwenScrambled256.png.meta b/Packages/com.unity.render-pipelines.core/Runtime/Sampling/Textures/SobolBlueNoise/SobolOwenScrambled256.png.meta new file mode 100644 index 00000000000..d04224526ca --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/Sampling/Textures/SobolBlueNoise/SobolOwenScrambled256.png.meta @@ -0,0 +1,242 @@ +fileFormatVersion: 2 +guid: 8d786511913a2cb4aacb1f9a188652b4 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: PS4 + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: PS5 + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: GameCoreXboxOne + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: GameCoreScarlett + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Windows Store Apps + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Stadia + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Lumin + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: EmbeddedLinux + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Settings/LightmapSamplingSettings.cs b/Packages/com.unity.render-pipelines.core/Runtime/Settings/LightmapSamplingSettings.cs index 87b1975e634..717ea1fe37f 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/Settings/LightmapSamplingSettings.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/Settings/LightmapSamplingSettings.cs @@ -7,7 +7,7 @@ namespace UnityEngine.Rendering /// [Serializable] [SupportedOnRenderPipeline()] - [Categorization.CategoryInfo(Name = "Lightmap Sampling Settings", Order = 20)] + [Categorization.CategoryInfo(Name = "Lighting", Order = 20)] public class LightmapSamplingSettings : IRenderPipelineGraphicsSettings { [SerializeField, HideInInspector] diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Settings/RenderingDebuggerRuntimeResources.cs b/Packages/com.unity.render-pipelines.core/Runtime/Settings/RenderingDebuggerRuntimeResources.cs deleted file mode 100644 index 9760bdbc468..00000000000 --- a/Packages/com.unity.render-pipelines.core/Runtime/Settings/RenderingDebuggerRuntimeResources.cs +++ /dev/null @@ -1,42 +0,0 @@ -using System; - -namespace UnityEngine.Rendering -{ - [Serializable, HideInInspector] - [SupportedOnRenderPipeline] - [Categorization.CategoryInfo(Name = "R : Rendering Debugger Resources", Order = 100)] - [Categorization.ElementInfo(Order = 0)] - class RenderingDebuggerRuntimeResources : IRenderPipelineResources - { - enum Version - { - Initial, - - Count, - Last = Count - 1 - } - [SerializeField, HideInInspector] - private Version m_version = Version.Last; - int IRenderPipelineGraphicsSettings.version => (int)m_version; - - [SerializeField, ResourcePath("Runtime/Debugging/Runtime UI Resources/DebugUICanvas.prefab")] - private GameObject m_DebugUIHandlerCanvasPrefab; - - /// Panel Settings - public GameObject debugUIHandlerCanvasPrefab - { - get => m_DebugUIHandlerCanvasPrefab; - set => this.SetValueAndNotify(ref m_DebugUIHandlerCanvasPrefab, value, nameof(m_DebugUIHandlerCanvasPrefab)); - } - - [SerializeField, ResourcePath("Runtime/Debugging/Runtime UI Resources/DebugUIPersistentCanvas.prefab")] - private GameObject m_DebugUIPersistentCanvasPrefab; - - /// Panel Settings - public GameObject debugUIPersistentCanvasPrefab - { - get => m_DebugUIPersistentCanvasPrefab; - set => this.SetValueAndNotify(ref m_DebugUIPersistentCanvasPrefab, value, nameof(m_DebugUIPersistentCanvasPrefab)); - } - } -} diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Settings/RenderingDebuggerRuntimeResources.cs.meta b/Packages/com.unity.render-pipelines.core/Runtime/Settings/RenderingDebuggerRuntimeResources.cs.meta deleted file mode 100644 index 499cf662046..00000000000 --- a/Packages/com.unity.render-pipelines.core/Runtime/Settings/RenderingDebuggerRuntimeResources.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 5dcd7bd9464c47caa62a9c418a69a1a5 -timeCreated: 1736856030 \ No newline at end of file diff --git a/Packages/com.unity.render-pipelines.core/Runtime/ShaderLibrary/Sampling/Hammersley.cs b/Packages/com.unity.render-pipelines.core/Runtime/ShaderLibrary/Sampling/Hammersley.cs index e4650f3f543..5c04c2d5722 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/ShaderLibrary/Sampling/Hammersley.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/ShaderLibrary/Sampling/Hammersley.cs @@ -1,3 +1,5 @@ +using System; + namespace UnityEngine.Rendering { /// @@ -458,5 +460,20 @@ public static void BindConstants(CommandBuffer cmd, ComputeShader cs) ConstantBuffer.Set(cmd, cs, s_hammersley2DSeq64Id); ConstantBuffer.Set(cmd, cs, s_hammersley2DSeq256Id); } + + /// + /// Bind the constant buffer to a compute shader via a command buffer using Hammersley constants. + /// + /// Command Buffer used to execute the graphic commands. + /// Compute shader to which the constant buffer should be bound. + public static void BindConstants(IComputeCommandBuffer cmd, ComputeShader cs) + { + if (cmd is BaseCommandBuffer baseCmd) + BindConstants(baseCmd.m_WrappedCommandBuffer, cs); +#if UNITY_EDITOR + else + throw new ArgumentException("Command buffer must inherit from BaseCommandBuffer."); +#endif + } } } diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Textures/RTHandleSystem.cs b/Packages/com.unity.render-pipelines.core/Runtime/Textures/RTHandleSystem.cs index edd73ed4eff..e6eccc67439 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/Textures/RTHandleSystem.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/Textures/RTHandleSystem.cs @@ -226,7 +226,7 @@ public void Initialize(int width, int height) /// Initial reference rendering width. /// Initial reference rendering height. /// Use legacy hardware DynamicResolution control in RTHandle system. - [Obsolete("useLegacyDynamicResControl is deprecated. Please use SetHardwareDynamicResolutionState() instead.")] + [Obsolete("useLegacyDynamicResControl is deprecated. Please use SetHardwareDynamicResolutionState() instead. #from(2023.3)")] public void Initialize(int width, int height, bool useLegacyDynamicResControl = false) { Initialize(width, height); diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Textures/RTHandles.cs b/Packages/com.unity.render-pipelines.core/Runtime/Textures/RTHandles.cs index 1cd7b308ea4..d4c2679220c 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/Textures/RTHandles.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/Textures/RTHandles.cs @@ -767,7 +767,7 @@ public static void Initialize(int width, int height) /// Initial reference rendering width. /// Initial reference rendering height. /// Use legacy hardware DynamicResolution control in the default RTHandle system. - [Obsolete("useLegacyDynamicResControl is deprecated. Please use SetHardwareDynamicResolutionState() instead.")] + [Obsolete("useLegacyDynamicResControl is deprecated. Please use SetHardwareDynamicResolutionState() instead. #from(2023.3)")] public static void Initialize(int width, int height, bool useLegacyDynamicResControl = false) { s_DefaultInstance.Initialize(width, height, useLegacyDynamicResControl); diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing.meta b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing.meta new file mode 100644 index 00000000000..cef1dd96ccc --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5a08d29969661ca449888ba98a48f214 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/AssemblyInfo.cs b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/AssemblyInfo.cs new file mode 100644 index 00000000000..023e41d779e --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/AssemblyInfo.cs @@ -0,0 +1,17 @@ +using System.Runtime.CompilerServices; + +// Make visible to tests +[assembly: InternalsVisibleTo("Unity.PathTracing.Editor.Tests")] +[assembly: InternalsVisibleTo("Unity.PathTracing.Runtime.Tests")] +[assembly: InternalsVisibleTo("Unity.Testing.UnifiedRayTracing.Runtime")] +[assembly: InternalsVisibleTo("Unity.Testing.UnifiedRayTracing.Performance")] +[assembly: InternalsVisibleTo("Unity.UnifiedRayTracing.Editor.Tests")] +[assembly: InternalsVisibleTo("Assembly-CSharp-editor-testable")] + +// Make visible internally to packages using the AccelStructAdapter, TODO: either make AccelStructAdapter public use intermediate Assembly to filter out exposed internals +[assembly: InternalsVisibleTo("Unity.PathTracing.Runtime")] +[assembly: InternalsVisibleTo("Unity.PathTracing.Editor")] +[assembly: InternalsVisibleTo("Unity.RenderPipelines.Core.Runtime")] +[assembly: InternalsVisibleTo("Unity.RenderPipelines.Core.Editor")] +[assembly: InternalsVisibleTo("Unity.RenderPipelines.HighDefinition.Runtime")] +[assembly: InternalsVisibleTo("Unity.RenderPipelines.Universal.Runtime")] diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/AssemblyInfo.cs.meta b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/AssemblyInfo.cs.meta new file mode 100644 index 00000000000..8052e08b2df --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/AssemblyInfo.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 54376717d159ce7499650ad0749a238f \ No newline at end of file diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Bindings.hlsl b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Bindings.hlsl new file mode 100644 index 00000000000..f9027e27172 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Bindings.hlsl @@ -0,0 +1,78 @@ +#ifndef _UNIFIEDRAYTRACING_BINDINGS_HLSL_ +#define _UNIFIEDRAYTRACING_BINDINGS_HLSL_ + +#include "Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/CommonStructs.hlsl" + +#if defined(UNIFIED_RT_BACKEND_COMPUTE) +#include "Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/transform.hlsl" +#include "Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/intersector_common.hlsl" + +#ifndef UNIFIED_RT_GROUP_SIZE_X +#define UNIFIED_RT_GROUP_SIZE_X 16 +#endif + +#ifndef UNIFIED_RT_GROUP_SIZE_Y +#define UNIFIED_RT_GROUP_SIZE_Y 8 +#endif + +#ifndef UNIFIED_RT_GROUP_SIZE_Z +#define UNIFIED_RT_GROUP_SIZE_Z 1 +#endif + +#endif +namespace UnifiedRT { + +struct RayTracingAccelStruct +{ +#if defined(UNIFIED_RT_BACKEND_HARDWARE) + RaytracingAccelerationStructure accelStruct; +#elif defined(UNIFIED_RT_BACKEND_COMPUTE) + StructuredBuffer bvh; + StructuredBuffer bottom_bvhs; + StructuredBuffer bottom_bvh_leaves; + StructuredBuffer instance_infos; + StructuredBuffer vertexBuffer; + +#else + #pragma message("Error, you must define either UNIFIED_RT_BACKEND_HARDWARE or UNIFIED_RT_BACKEND_COMPUTE") +#endif + +}; + +#if defined(UNIFIED_RT_BACKEND_HARDWARE) +RayTracingAccelStruct GetAccelStruct(RaytracingAccelerationStructure accelStruct) +{ + RayTracingAccelStruct res; + res.accelStruct = accelStruct; + return res; +} + +#define UNIFIED_RT_DECLARE_ACCEL_STRUCT(name) RaytracingAccelerationStructure name##accelStruct +#define UNIFIED_RT_GET_ACCEL_STRUCT(name) UnifiedRT::GetAccelStruct(name##accelStruct) + +#elif defined(UNIFIED_RT_BACKEND_COMPUTE) +RayTracingAccelStruct GetAccelStruct( + StructuredBuffer bvh, + StructuredBuffer bottomBvhs, + StructuredBuffer bottomBvhLeaves, + StructuredBuffer instanceInfos, + StructuredBuffer vertexBuffer) +{ + RayTracingAccelStruct res; + res.bvh = bvh; + res.bottom_bvhs = bottomBvhs; + res.bottom_bvh_leaves = bottomBvhLeaves; + res.instance_infos = instanceInfos; + res.vertexBuffer = vertexBuffer; + return res; +} + +#define UNIFIED_RT_DECLARE_ACCEL_STRUCT(name) StructuredBuffer name##bvh; StructuredBuffer name##bottomBvhs; StructuredBuffer name##bottomBvhLeaves; StructuredBuffer name##instanceInfos; StructuredBuffer name##vertexBuffer +#define UNIFIED_RT_GET_ACCEL_STRUCT(name) UnifiedRT::GetAccelStruct(name##bvh, name##bottomBvhs, name##bottomBvhLeaves, name##instanceInfos, name##vertexBuffer) + +#endif + +} // namespace UnifiedRT + + +#endif // UNIFIEDRAYTRACING_BINDINGS_HLSL diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Bindings.hlsl.meta b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Bindings.hlsl.meta new file mode 100644 index 00000000000..79c866c1d3a --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Bindings.hlsl.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 047623a35563f0e45bbfce747454416c +ShaderIncludeImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common.hlsl b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common.hlsl new file mode 100644 index 00000000000..3379ec60833 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common.hlsl @@ -0,0 +1,32 @@ +#ifndef _UNIFIEDRAYTRACING_COMMON_HLSL_ +#define _UNIFIEDRAYTRACING_COMMON_HLSL_ + +#define K_T_MAX 400000 +#ifndef FLT_EPSILON +#define FLT_EPSILON 1.192092896e-07F +#endif + +#ifndef FLT_MAX +#define FLT_MAX 3.402823e+38 +#endif + +#define K_T_MAX 400000 + +float Max3(float3 val) +{ + return max(max(val.x, val.y), val.z); +} + +// Adapted from RayTracing Gems, A Fast and Robust Method for Avoiding Self-Intersection +// - Dropped the exact +N ulp computation, instead use, N * epsilon +// - Use max of distance components instead of per component offset +// - Use less conservative factors for error estimation +float3 OffsetRayOrigin(float3 p, float3 n, float customOffset = 0.0f) +{ + float distanceToOrigin = Max3(abs(p)); + float offset = (distanceToOrigin < 1 / 32.0f) ? FLT_EPSILON * 64.0f : FLT_EPSILON * 64.0f * distanceToOrigin; + + return p + (offset + customOffset) * n; +} + +#endif diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common.hlsl.meta b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common.hlsl.meta new file mode 100644 index 00000000000..28a4db58cac --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common.hlsl.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f1fa02d2f89398244bd06abebd7e1840 +ShaderIncludeImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common.meta b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common.meta new file mode 100644 index 00000000000..5bb73a3a647 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b9f7ba6849814a54bb551f9491377013 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/AccelStructAdapter.cs b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/AccelStructAdapter.cs new file mode 100644 index 00000000000..a14bccf7ed8 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/AccelStructAdapter.cs @@ -0,0 +1,296 @@ +using System; +using System.Collections.Generic; +using UnityEngine.Assertions; +using UnityEngine.Rendering; +using Unity.Mathematics; + +#if UNITY_EDITOR +using UnityEditor; +#endif + +namespace UnityEngine.Rendering.UnifiedRayTracing +{ + internal sealed class AccelStructAdapter : IDisposable + { + private IRayTracingAccelStruct _accelStruct; + AccelStructInstances _instances; + + internal AccelStructInstances Instances { get => _instances; } + + struct InstanceIDs + { + public int InstanceID; + public int AccelStructID; + } + + private readonly Dictionary _objectHandleToInstances = new(); + + public AccelStructAdapter(IRayTracingAccelStruct accelStruct, GeometryPool geometryPool) + { + _accelStruct = accelStruct; + _instances = new AccelStructInstances(geometryPool); + } + + public AccelStructAdapter(IRayTracingAccelStruct accelStruct, RayTracingResources resources) + : this(accelStruct, new GeometryPool(GeometryPoolDesc.NewDefault(), resources.geometryPoolKernels, resources.copyBuffer)) + { } + + public IRayTracingAccelStruct GetAccelerationStructure() + { + return _accelStruct; + } + + public GeometryPool GeometryPool => _instances.geometryPool; + + public void Bind(CommandBuffer cmd, string propertyName, IRayTracingShader shader) + { + shader.SetAccelerationStructure(cmd, propertyName, _accelStruct); + _instances.Bind(cmd, shader); + } + + public void Dispose() + { + _instances?.Dispose(); + _instances = null; + _accelStruct?.Dispose(); + _accelStruct = null; + _objectHandleToInstances.Clear(); + } + + public void AddInstance(int objectHandle, Component meshRendererOrTerrain, Span perSubMeshMask, Span perSubMeshMaterialIDs, Span perSubMeshIsOpaque, uint renderingLayerMask) + { + if (meshRendererOrTerrain is Terrain terrain) + { + Debug.Assert(terrain.enabled, "Terrains are expected to be enabled."); + TerrainDesc terrainDesc; + terrainDesc.terrain = terrain; + terrainDesc.localToWorldMatrix = terrain.transform.localToWorldMatrix; + terrainDesc.mask = perSubMeshMask[0]; + terrainDesc.renderingLayerMask = renderingLayerMask; + terrainDesc.materialID = perSubMeshMaterialIDs[0]; + terrainDesc.enableTriangleCulling = true; + terrainDesc.frontTriangleCounterClockwise = false; + AddInstance(objectHandle, terrainDesc); + } + else + { + var meshRenderer = (MeshRenderer)meshRendererOrTerrain; + Debug.Assert(meshRenderer.enabled, "Mesh renderers are expected to be enabled."); + Debug.Assert(!meshRenderer.isPartOfStaticBatch, "Mesh renderers are expected to not be part of static batch."); + var mesh = meshRenderer.GetComponent().sharedMesh; + AddInstance(objectHandle, mesh, meshRenderer.transform.localToWorldMatrix, perSubMeshMask, perSubMeshMaterialIDs, perSubMeshIsOpaque, renderingLayerMask); + } + } + + public void AddInstance(int objectHandle, Mesh mesh, Matrix4x4 localToWorldMatrix, Span perSubMeshMask, Span perSubMeshMaterialIDs, Span perSubMeshIsOpaque, uint renderingLayerMask) + { + int subMeshCount = mesh.subMeshCount; + + var instances = new InstanceIDs[subMeshCount]; + for (int i = 0; i < subMeshCount; ++i) + { + var instanceDesc = new MeshInstanceDesc(mesh, i) + { + localToWorldMatrix = localToWorldMatrix, + mask = perSubMeshMask[i], + opaqueGeometry = perSubMeshIsOpaque[i] + }; + + instances[i].InstanceID = _instances.AddInstance(instanceDesc, perSubMeshMaterialIDs[i], renderingLayerMask); + instanceDesc.instanceID = (uint)instances[i].InstanceID; + instances[i].AccelStructID = _accelStruct.AddInstance(instanceDesc); + } + + _objectHandleToInstances.Add(objectHandle, instances); + } + + private void AddInstance(int objectHandle, TerrainDesc terrainDesc) + { + List instanceHandles = new List(); + + AddHeightmap(terrainDesc, ref instanceHandles); + AddTrees(terrainDesc, ref instanceHandles); + + _objectHandleToInstances.Add(objectHandle, instanceHandles.ToArray()); + + } + + void AddHeightmap(TerrainDesc terrainDesc, ref List instanceHandles) + { + var terrainMesh = TerrainToMesh.Convert(terrainDesc.terrain); + var instanceDesc = new MeshInstanceDesc(terrainMesh); + instanceDesc.localToWorldMatrix = terrainDesc.localToWorldMatrix; + instanceDesc.mask = terrainDesc.mask; + instanceDesc.enableTriangleCulling = terrainDesc.enableTriangleCulling; + instanceDesc.frontTriangleCounterClockwise = terrainDesc.frontTriangleCounterClockwise; + + instanceHandles.Add(AddInstance(instanceDesc, terrainDesc.materialID, terrainDesc.renderingLayerMask)); + + } + + void AddTrees(TerrainDesc terrainDesc, ref List instanceHandles) + { + TerrainData terrainData = terrainDesc.terrain.terrainData; + float4x4 terrainLocalToWorld = terrainDesc.localToWorldMatrix; + float3 positionScale = new float3((float)terrainData.heightmapResolution, 1.0f, (float)terrainData.heightmapResolution) * terrainData.heightmapScale; + float3 positionOffset = new float3(terrainLocalToWorld[3].x, terrainLocalToWorld[3].y, terrainLocalToWorld[3].z); + + foreach (var treeInstance in terrainData.treeInstances) + { + var localToWorld = Matrix4x4.TRS( + positionOffset + new float3(treeInstance.position) * positionScale, + Quaternion.AngleAxis(treeInstance.rotation, Vector3.up), + new Vector3(treeInstance.widthScale, treeInstance.heightScale, treeInstance.widthScale)); + + var prefab = terrainData.treePrototypes[treeInstance.prototypeIndex].prefab; + + GameObject go = prefab.gameObject; + if (prefab.TryGetComponent(out var lodGroup)) + { + var groups = lodGroup.GetLODs(); + if (groups.Length != 0 && groups[0].renderers.Length != 0) + go = (groups[0].renderers[0] as MeshRenderer).gameObject; + } + if (!go.TryGetComponent(out var filter)) + continue; + + var mesh = filter.sharedMesh; + for (int i = 0; i < mesh.subMeshCount; ++i) + { + var instanceDesc = new MeshInstanceDesc(mesh, i); + instanceDesc.localToWorldMatrix = localToWorld; + instanceDesc.mask = terrainDesc.mask; + instanceDesc.enableTriangleCulling = terrainDesc.enableTriangleCulling; + instanceDesc.frontTriangleCounterClockwise = terrainDesc.frontTriangleCounterClockwise; + instanceHandles.Add(AddInstance(instanceDesc, terrainDesc.materialID, 1u << prefab.gameObject.layer)); + } + } + } + + InstanceIDs AddInstance(MeshInstanceDesc instanceDesc, uint materialID, uint renderingLayerMask) + { + InstanceIDs res = new InstanceIDs(); + res.InstanceID = _instances.AddInstance(instanceDesc, materialID, renderingLayerMask); + instanceDesc.instanceID = (uint)res.InstanceID; + res.AccelStructID = _accelStruct.AddInstance(instanceDesc); + + return res; + } + + + public void RemoveInstance(int objectHandle) + { + bool success = _objectHandleToInstances.TryGetValue(objectHandle, out var instances); + Assert.IsTrue(success); + + foreach (var instance in instances) + { + _instances.RemoveInstance(instance.InstanceID); + _accelStruct.RemoveInstance(instance.AccelStructID); + } + + _objectHandleToInstances.Remove(objectHandle); + } + + public void UpdateInstanceTransform(int objectHandle, Matrix4x4 localToWorldMatrix) + { + bool success = _objectHandleToInstances.TryGetValue(objectHandle, out var instances); + Assert.IsTrue(success); + + foreach(var instance in instances) + { + _instances.UpdateInstanceTransform(instance.InstanceID, localToWorldMatrix); + _accelStruct.UpdateInstanceTransform(instance.AccelStructID, localToWorldMatrix); + } + } + + public void UpdateInstanceMaterialIDs(int objectHandle, Span perSubMeshMaterialIDs) + { + bool success = _objectHandleToInstances.TryGetValue(objectHandle, out var instances); + Assert.IsTrue(success); + Assert.IsTrue(perSubMeshMaterialIDs.Length >= instances.Length); + int i = 0; + foreach (var instance in instances) + { + _instances.UpdateInstanceMaterialID(instance.InstanceID, perSubMeshMaterialIDs[i++]); + } + } + + public void UpdateInstanceMask(int objectHandle, Span perSubMeshMask) + { + bool success = _objectHandleToInstances.TryGetValue(objectHandle, out var instances); + Assert.IsTrue(success); + Assert.IsTrue(perSubMeshMask.Length >= instances.Length); + int i = 0; + foreach (var instance in instances) + { + _instances.UpdateInstanceMask(instance.InstanceID, perSubMeshMask[i]); + _accelStruct.UpdateInstanceMask(instance.AccelStructID, perSubMeshMask[i]); + i++; + } + } + + public void UpdateInstanceMask(int objectHandle, uint mask) + { + bool success = _objectHandleToInstances.TryGetValue(objectHandle, out var instances); + Assert.IsTrue(success); + + var perSubMeshMask = new uint[instances.Length]; + Array.Fill(perSubMeshMask, mask); + + int i = 0; + foreach (var instance in instances) + { + _instances.UpdateInstanceMask(instance.InstanceID, perSubMeshMask[i]); + _accelStruct.UpdateInstanceMask(instance.AccelStructID, perSubMeshMask[i]); + i++; + } + } + + public void Build(CommandBuffer cmd, ref GraphicsBuffer scratchBuffer) + { + RayTracingHelper.ResizeScratchBufferForBuild(_accelStruct, ref scratchBuffer); + _accelStruct.Build(cmd, scratchBuffer); + } + + public void NextFrame() + { + _instances.NextFrame(); + } + + public bool GetInstanceIDs(int rendererID, out int[] instanceIDs) + { + if (!_objectHandleToInstances.TryGetValue(rendererID, out InstanceIDs[] instIDs)) + { + // This should never happen as long as the renderer was already added to the acceleration structure + instanceIDs = null; + return false; + } + instanceIDs = Array.ConvertAll(instIDs, item => item.InstanceID); + return true; + } + + } + + internal struct TerrainDesc + { + public Terrain terrain; + public Matrix4x4 localToWorldMatrix; + public uint mask; + public uint renderingLayerMask; + public uint materialID; + public bool enableTriangleCulling; + public bool frontTriangleCounterClockwise; + + public TerrainDesc(Terrain terrain) + { + this.terrain = terrain; + localToWorldMatrix = Matrix4x4.identity; + mask = 0xFFFFFFFF; + renderingLayerMask = 0xFFFFFFFF; + materialID = 0; + enableTriangleCulling = true; + frontTriangleCounterClockwise = false; + } + } +} diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/AccelStructAdapter.cs.meta b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/AccelStructAdapter.cs.meta new file mode 100644 index 00000000000..39df6acc721 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/AccelStructAdapter.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: be387ad7b61cdc84c81dbdd3d936722c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/AccelStructInstances.cs b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/AccelStructInstances.cs new file mode 100644 index 00000000000..8f495c4140e --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/AccelStructInstances.cs @@ -0,0 +1,232 @@ +using System; +using System.Collections.Generic; +using Unity.Mathematics; +using UnityEngine.Assertions; + +namespace UnityEngine.Rendering.UnifiedRayTracing +{ + internal sealed class AccelStructInstances : IDisposable + { + internal AccelStructInstances(GeometryPool geometryPool) + { + m_GeometryPool = geometryPool; + } + + public void Dispose() + { + foreach (InstanceEntry instanceEntry in m_Instances.Values) + { + GeometryPoolHandle geomHandle = instanceEntry.geometryPoolHandle; + m_GeometryPool.Unregister(geomHandle); + } + m_GeometryPool.SendGpuCommands(); + + m_InstanceBuffer?.Dispose(); + m_GeometryPool.Dispose(); + } + + public PersistentGpuArray instanceBuffer { get => m_InstanceBuffer; } + public IReadOnlyCollection instances { get => m_Instances.Values; } + public GeometryPool geometryPool { get => m_GeometryPool; } + + public int AddInstance(MeshInstanceDesc meshInstance, uint materialID, uint renderingLayerMask) + { + var slot = m_InstanceBuffer.Add(1)[0]; + AddInstance(slot, meshInstance, materialID, renderingLayerMask); + return slot.block.offset; + } + + public int AddInstances(Span meshInstances, Span materialIDs, Span renderingLayerMask) + { + Assert.IsTrue(meshInstances.Length == materialIDs.Length); + + var slots = m_InstanceBuffer.Add(meshInstances.Length); + + for (int i = 0; i < meshInstances.Length; ++i) + AddInstance(slots[i], meshInstances[i], materialIDs[i], renderingLayerMask[i]); + + return slots[0].block.offset; + } + + void AddInstance(BlockAllocator.Allocation slotAllocation, in MeshInstanceDesc meshInstance, uint materialID, uint renderingLayerMask) + { + Debug.Assert(meshInstance.mesh != null, "targetRenderer.mesh is null"); + + GeometryPoolHandle geometryHandle; + if (!m_GeometryPool.Register(meshInstance.mesh, out geometryHandle)) + throw new System.InvalidOperationException("Failed to allocate geometry data for instance"); + m_GeometryPool.SendGpuCommands(); + + m_InstanceBuffer.Set(slotAllocation, + new RTInstance + { + localToWorld = meshInstance.localToWorldMatrix, + localToWorldNormals = NormalMatrix(meshInstance.localToWorldMatrix), + previousLocalToWorld = meshInstance.localToWorldMatrix, + userMaterialID = materialID, + instanceMask = meshInstance.mask, + renderingLayerMask = renderingLayerMask, + geometryIndex = (uint)(m_GeometryPool.GetEntryGeomAllocation(geometryHandle).meshChunkTableAlloc.block.offset + meshInstance.subMeshIndex) + }); + + + var allocInfo = m_GeometryPool.GetEntryGeomAllocation(geometryHandle).meshChunks[meshInstance.subMeshIndex]; + + var instanceEntry = new InstanceEntry + { + geometryPoolHandle = geometryHandle, + indexInInstanceBuffer = slotAllocation, + instanceMask = meshInstance.mask, + vertexOffset = (uint)(allocInfo.vertexAlloc.block.offset) * ((uint)GeometryPool.GetVertexByteSize() / 4), + indexOffset = (uint)allocInfo.indexAlloc.block.offset, + }; + m_Instances.Add(slotAllocation.block.offset, instanceEntry); + } + + public GeometryPool.MeshChunk GetEntryGeomAllocation(GeometryPoolHandle handle, int submeshIndex) + { + return m_GeometryPool.GetEntryGeomAllocation(handle).meshChunks[submeshIndex]; + } + + public GraphicsBuffer indexBuffer { get { return m_GeometryPool.globalIndexBuffer; } } + public GraphicsBuffer vertexBuffer { get { return m_GeometryPool.globalVertexBuffer; } } + + public void RemoveInstance(int instanceHandle) + { + bool success = m_Instances.TryGetValue(instanceHandle, out InstanceEntry removedEntry); + Assert.IsTrue(success); + + m_Instances.Remove(instanceHandle); + m_InstanceBuffer.Remove(removedEntry.indexInInstanceBuffer); + + var geomHandle = removedEntry.geometryPoolHandle; + m_GeometryPool.Unregister(geomHandle); + m_GeometryPool.SendGpuCommands(); + } + + public void ClearInstances() + { + foreach (InstanceEntry instanceEntry in m_Instances.Values) + { + GeometryPoolHandle geomHandle = instanceEntry.geometryPoolHandle; + m_GeometryPool.Unregister(geomHandle); + } + m_GeometryPool.SendGpuCommands(); + + m_Instances.Clear(); + m_InstanceBuffer.Clear(); + } + + public void UpdateInstanceTransform(int instanceHandle, Matrix4x4 localToWorldMatrix) + { + bool success = m_Instances.TryGetValue(instanceHandle, out InstanceEntry instanceEntry); + Assert.IsTrue(success); + + var instanceInfo = m_InstanceBuffer.Get(instanceEntry.indexInInstanceBuffer); + instanceInfo.localToWorld = localToWorldMatrix; + instanceInfo.localToWorldNormals = NormalMatrix(localToWorldMatrix); + m_InstanceBuffer.Set(instanceEntry.indexInInstanceBuffer, instanceInfo); + + m_TransformTouchedLastTimestamp = m_FrameTimestamp; + } + + public void UpdateInstanceMaterialID(int instanceHandle, uint materialID) + { + InstanceEntry instanceEntry; + bool success = m_Instances.TryGetValue(instanceHandle, out instanceEntry); + Assert.IsTrue(success); + + var instanceInfo = m_InstanceBuffer.Get(instanceEntry.indexInInstanceBuffer); + instanceInfo.userMaterialID = materialID; + m_InstanceBuffer.Set(instanceEntry.indexInInstanceBuffer, instanceInfo); + } + + public void UpdateRenderingLayerMask(int instanceHandle, uint renderingLayerMask) + { + InstanceEntry instanceEntry; + bool success = m_Instances.TryGetValue(instanceHandle, out instanceEntry); + Assert.IsTrue(success); + + var instanceInfo = m_InstanceBuffer.Get(instanceEntry.indexInInstanceBuffer); + instanceInfo.renderingLayerMask = renderingLayerMask; + m_InstanceBuffer.Set(instanceEntry.indexInInstanceBuffer, instanceInfo); + } + + public void UpdateInstanceMask(int instanceHandle, uint mask) + { + bool success = m_Instances.TryGetValue(instanceHandle, out InstanceEntry instanceEntry); + Assert.IsTrue(success); + + instanceEntry.instanceMask = mask; + + var instanceInfo = m_InstanceBuffer.Get(instanceEntry.indexInInstanceBuffer); + instanceInfo.instanceMask = mask; + m_InstanceBuffer.Set(instanceEntry.indexInInstanceBuffer, instanceInfo); + } + + public void NextFrame() + { + if ((m_FrameTimestamp - m_TransformTouchedLastTimestamp) <= 1) + { + m_InstanceBuffer.ModifyForEach( + instance => + { + instance.previousLocalToWorld = instance.localToWorld; + return instance; + }); + } + + m_FrameTimestamp++; + } + + public bool instanceListValid => m_InstanceBuffer != null; + + public void Bind(CommandBuffer cmd, IRayTracingShader shader) + { + var gpuBuffer = m_InstanceBuffer.GetGpuBuffer(cmd); + shader.SetBufferParam(cmd, Shader.PropertyToID("g_AccelStructInstanceList"), gpuBuffer); + shader.SetBufferParam(cmd, Shader.PropertyToID("g_globalIndexBuffer"), m_GeometryPool.globalIndexBuffer); + shader.SetBufferParam(cmd, Shader.PropertyToID("g_globalVertexBuffer"), m_GeometryPool.globalVertexBuffer); + shader.SetIntParam(cmd, Shader.PropertyToID("g_globalVertexBufferStride"), m_GeometryPool.globalVertexBufferStrideBytes/4); + shader.SetBufferParam(cmd, Shader.PropertyToID("g_MeshList"), m_GeometryPool.globalMeshChunkTableEntryBuffer); + } + + public int GetInstanceCount() + { + return m_Instances.Count; + } + + static private float4x4 NormalMatrix(float4x4 m) + { + float3x3 t = new float3x3(m); + return new float4x4(math.inverse(math.transpose(t)), new float3(0.0)); + } + + readonly GeometryPool m_GeometryPool; + readonly PersistentGpuArray m_InstanceBuffer = new PersistentGpuArray(100); + + public struct RTInstance + { + public float4x4 localToWorld; + public float4x4 previousLocalToWorld; + public float4x4 localToWorldNormals; + public uint renderingLayerMask; + public uint instanceMask; + public uint userMaterialID; + public uint geometryIndex; + }; + + public class InstanceEntry + { + public GeometryPoolHandle geometryPoolHandle; + public BlockAllocator.Allocation indexInInstanceBuffer; + public uint instanceMask; + public uint vertexOffset; + public uint indexOffset; + } + + readonly Dictionary m_Instances = new Dictionary(); + uint m_FrameTimestamp = 0; + uint m_TransformTouchedLastTimestamp = 0; + } +} diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/AccelStructInstances.cs.meta b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/AccelStructInstances.cs.meta new file mode 100644 index 00000000000..f6fab52be35 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/AccelStructInstances.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f9b589fa00bef23408b114d1af9b44be +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/GeometryPool.meta b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/GeometryPool.meta new file mode 100644 index 00000000000..77a32758844 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/GeometryPool.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c92be10cd223d054b8314f7445705554 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/GeometryPool/GeometryPool.cs b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/GeometryPool/GeometryPool.cs new file mode 100644 index 00000000000..e16f99007c9 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/GeometryPool/GeometryPool.cs @@ -0,0 +1,869 @@ +using System; +using System.Collections.Generic; +using Unity.Collections; +using UnityEngine.Assertions; + +// This file is a fork of the GeometryPool used by the GPU Driven Pipeline +// TODO: remove that file and use GeometryPool v2 (written in C++) + +namespace UnityEngine.Rendering.UnifiedRayTracing +{ + // Initial description of geometry pool, contains memory limits to hold cluster / index & vertex data. + + internal struct GeometryPoolDesc + { + public int vertexPoolByteSize; + public int indexPoolByteSize; + public int meshChunkTablesByteSize; + + public static GeometryPoolDesc NewDefault() + { + return new GeometryPoolDesc() + { + vertexPoolByteSize = 256 * 1024 * 1024, //256 mb + indexPoolByteSize = 32 * 1024 * 1024, //32 mb + meshChunkTablesByteSize = 4 * 1024 * 1024 + }; + } + } + + // Handle to a piece of geo. Geometry meshes registered are ref counted. + // Each handle allocation must be deallocated manually. + internal struct GeometryPoolHandle : IEquatable + { + public int index; + public static readonly GeometryPoolHandle Invalid = new GeometryPoolHandle() { index = -1 }; + public readonly bool valid => index != -1; + public bool Equals(GeometryPoolHandle other) => index == other.index; + } + + // Entry information of a geometry handle. + // Use this helper to check validity, material hashes and active refcounts. + internal struct GeometryPoolEntryInfo + { + public bool valid; + public uint refCount; + + public static GeometryPoolEntryInfo NewDefault() + { + return new GeometryPoolEntryInfo() + { + valid = false, + refCount = 0 + }; + } + } + + // Descriptor of piece of geometry (the submesh information). + internal struct GeometryPoolSubmeshData + { + public int submeshIndex; + public Material material; + } + + // Description of the geometry pool entry. + // Contains master list and the submesh data information. + internal struct GeometryPoolEntryDesc + { + public Mesh mesh; + public GeometryPoolSubmeshData[] submeshData; + } + + // Geometry pool container. Contains a global set of geometry accessible from the GPU. + internal sealed class GeometryPool : IDisposable + { + private const int kMaxThreadGroupsPerDispatch = 65535; // Counted in groups, not threads. + private const int kThreadGroupSize = 256; // Counted in threads + private static class GeoPoolShaderIDs + { + // MainUpdateIndexBuffer32 and MainUpdateIndexBuffer16 Kernel Strings + public static readonly int _InputIBBaseOffset = Shader.PropertyToID("_InputIBBaseOffset"); + public static readonly int _DispatchIndexOffset = Shader.PropertyToID("_DispatchIndexOffset"); + public static readonly int _InputIBCount = Shader.PropertyToID("_InputIBCount"); + public static readonly int _OutputIBOffset = Shader.PropertyToID("_OutputIBOffset"); + public static readonly int _InputFirstVertex = Shader.PropertyToID("_InputFirstVertex"); + public static readonly int _InputIndexBuffer = Shader.PropertyToID("_InputIndexBuffer"); + public static readonly int _OutputIndexBuffer = Shader.PropertyToID("_OutputIndexBuffer"); + + // MainUpdateVertexBuffer Kernel Strings + public static readonly int _InputVBCount = Shader.PropertyToID("_InputVBCount"); + public static readonly int _InputBaseVertexOffset = Shader.PropertyToID("_InputBaseVertexOffset"); + public static readonly int _DispatchVertexOffset = Shader.PropertyToID("_DispatchVertexOffset"); + public static readonly int _OutputVBSize = Shader.PropertyToID("_OutputVBSize"); + public static readonly int _OutputVBOffset = Shader.PropertyToID("_OutputVBOffset"); + public static readonly int _InputPosBufferStride = Shader.PropertyToID("_InputPosBufferStride"); + public static readonly int _InputPosBufferOffset = Shader.PropertyToID("_InputPosBufferOffset"); + public static readonly int _InputUv0BufferStride = Shader.PropertyToID("_InputUv0BufferStride"); + public static readonly int _InputUv0BufferOffset = Shader.PropertyToID("_InputUv0BufferOffset"); + public static readonly int _InputUv1BufferStride = Shader.PropertyToID("_InputUv1BufferStride"); + public static readonly int _InputUv1BufferOffset = Shader.PropertyToID("_InputUv1BufferOffset"); + public static readonly int _InputNormalBufferStride = Shader.PropertyToID("_InputNormalBufferStride"); + public static readonly int _InputNormalBufferOffset = Shader.PropertyToID("_InputNormalBufferOffset"); + public static readonly int _PosBuffer = Shader.PropertyToID("_PosBuffer"); + public static readonly int _Uv0Buffer = Shader.PropertyToID("_Uv0Buffer"); + public static readonly int _Uv1Buffer = Shader.PropertyToID("_Uv1Buffer"); + public static readonly int _NormalBuffer = Shader.PropertyToID("_NormalBuffer"); + public static readonly int _OutputVB = Shader.PropertyToID("_OutputVB"); + public static readonly int _AttributesMask = Shader.PropertyToID("_AttributesMask"); + } + + // Geometry slot represents a set of pointers to the blobs of vertex, index and cluster information + private const int InvalidHandle = -1; + + public struct MeshChunk + { + public BlockAllocator.Allocation vertexAlloc; + public BlockAllocator.Allocation indexAlloc; + + public GeoPoolMeshChunk EncodeGPUEntry() + { + return new GeoPoolMeshChunk() { + indexOffset = indexAlloc.block.offset, + indexCount = indexAlloc.block.count, + vertexOffset = vertexAlloc.block.offset, + vertexCount = vertexAlloc.block.count, + }; + } + + public static MeshChunk Invalid => new MeshChunk() + { + vertexAlloc = BlockAllocator.Allocation.Invalid, + indexAlloc = BlockAllocator.Allocation.Invalid + }; + } + + public struct GeometrySlot + { + public uint refCount; + public uint hash; + public BlockAllocator.Allocation meshChunkTableAlloc; + public NativeArray meshChunks; + public bool hasGPUData; + + public static readonly GeometrySlot Invalid = new GeometrySlot() + { + meshChunkTableAlloc = BlockAllocator.Allocation.Invalid, + hasGPUData = false, + }; + + public bool valid => meshChunkTableAlloc.valid; + } + + private struct GeoPoolEntrySlot + { + public uint refCount; + public uint hash; + public int geoSlotHandle; + public static readonly GeoPoolEntrySlot Invalid = new GeoPoolEntrySlot() + { + refCount = 0u, + hash = 0u, + geoSlotHandle = InvalidHandle, + }; + + public bool valid => geoSlotHandle != InvalidHandle; + } + private struct VertexBufferAttribInfo + { + public GraphicsBuffer buffer; + public int stride; + public int offset; + public int byteCount; + + public bool valid => buffer != null; + } + + public static int GetVertexByteSize() => GeometryPoolConstants.GeoPoolVertexByteSize; + public static int GetIndexByteSize() => GeometryPoolConstants.GeoPoolIndexByteSize; + public static int GetMeshChunkTableEntryByteSize() => System.Runtime.InteropServices.Marshal.SizeOf(); + + private int GetFormatByteCount(VertexAttributeFormat format) + { + switch (format) + { + case VertexAttributeFormat.Float32: return 4; + case VertexAttributeFormat.Float16: return 2; + case VertexAttributeFormat.UNorm8: return 1; + case VertexAttributeFormat.SNorm8: return 1; + case VertexAttributeFormat.UNorm16: return 2; + case VertexAttributeFormat.SNorm16: return 2; + case VertexAttributeFormat.UInt8: return 1; + case VertexAttributeFormat.SInt8: return 1; + case VertexAttributeFormat.UInt16: return 2; + case VertexAttributeFormat.SInt16: return 2; + case VertexAttributeFormat.UInt32: return 4; + case VertexAttributeFormat.SInt32: return 4; + } + return 4; + } + + private static int DivUp(int x, int y) => (x + y - 1) / y; + + private const GraphicsBuffer.Target VertexBufferTarget = GraphicsBuffer.Target.Structured; + private const GraphicsBuffer.Target IndexBufferTarget = GraphicsBuffer.Target.Structured; + public GraphicsBuffer globalIndexBuffer { get { return m_GlobalIndexBuffer; } } + public GraphicsBuffer globalVertexBuffer { get { return m_GlobalVertexBuffer; } } + public int globalVertexBufferStrideBytes { get { return GetVertexByteSize(); } } + public GraphicsBuffer globalMeshChunkTableEntryBuffer { get { return m_GlobalMeshChunkTableEntryBuffer; } } + + public int indicesCount => m_MaxIndexCounts; + public int verticesCount => m_MaxVertCounts; + public int meshChunkTablesEntryCount => m_MaxMeshChunkTableEntriesCount; + + GraphicsBuffer m_GlobalIndexBuffer = null; + GraphicsBuffer m_GlobalVertexBuffer = null; + GraphicsBuffer m_GlobalMeshChunkTableEntryBuffer = null; + readonly GraphicsBuffer m_DummyBuffer = null; + + int m_MaxVertCounts; + int m_MaxIndexCounts; + int m_MaxMeshChunkTableEntriesCount; + + BlockAllocator m_VertexAllocator; + BlockAllocator m_IndexAllocator; + BlockAllocator m_MeshChunkTableAllocator; + + NativeParallelHashMap m_MeshHashToGeoSlot; + List m_GeoSlots; + NativeList m_FreeGeoSlots; + + NativeParallelHashMap m_GeoPoolEntryHashToSlot; + NativeList m_GeoPoolEntrySlots; + NativeList m_FreeGeoPoolEntrySlots; + + readonly List m_InputBufferReferences; + + readonly ComputeShader m_CopyShader; + + ComputeShader m_GeometryPoolKernelsCS; + int m_KernelMainUpdateIndexBuffer16; + int m_KernelMainUpdateIndexBuffer32; + int m_KernelMainUpdateVertexBuffer; + + readonly CommandBuffer m_CmdBuffer; + bool m_MustClearCmdBuffer; + int m_PendingCmds; + + public GeometryPool(in GeometryPoolDesc desc, ComputeShader geometryPoolShader, ComputeShader copyShader) + { + m_CopyShader = copyShader; + LoadKernels(geometryPoolShader); + + m_CmdBuffer = new CommandBuffer(); + m_InputBufferReferences = new List(); + m_MustClearCmdBuffer = false; + m_PendingCmds = 0; + + m_MaxVertCounts = CalcVertexCount(desc.vertexPoolByteSize); + m_MaxIndexCounts = CalcIndexCount(desc.indexPoolByteSize); + m_MaxMeshChunkTableEntriesCount = CalcMeshChunkTablesCount(desc.meshChunkTablesByteSize); + + m_GlobalVertexBuffer = new GraphicsBuffer(VertexBufferTarget, DivUp(m_MaxVertCounts * GetVertexByteSize(), 4), 4); + m_GlobalIndexBuffer = new GraphicsBuffer(IndexBufferTarget, m_MaxIndexCounts, 4); + m_GlobalMeshChunkTableEntryBuffer = new GraphicsBuffer(GraphicsBuffer.Target.Structured, m_MaxMeshChunkTableEntriesCount, GetMeshChunkTableEntryByteSize()); + m_DummyBuffer = new GraphicsBuffer(GraphicsBuffer.Target.Structured, 16, 4); + + var initialCapacity = 4096; + m_MeshHashToGeoSlot = new NativeParallelHashMap(initialCapacity, Allocator.Persistent); + m_GeoSlots = new List(); + m_FreeGeoSlots = new NativeList(Allocator.Persistent); + + m_GeoPoolEntryHashToSlot = new NativeParallelHashMap(initialCapacity, Allocator.Persistent); + m_GeoPoolEntrySlots = new NativeList(Allocator.Persistent); + m_FreeGeoPoolEntrySlots = new NativeList(Allocator.Persistent); + + m_VertexAllocator = new BlockAllocator(); + m_VertexAllocator.Initialize(m_MaxVertCounts); + + m_IndexAllocator = new BlockAllocator(); + m_IndexAllocator.Initialize(m_MaxIndexCounts); + + m_MeshChunkTableAllocator = new BlockAllocator(); + m_MeshChunkTableAllocator.Initialize(m_MaxMeshChunkTableEntriesCount); + } + + void DisposeInputBuffers() + { + if (m_InputBufferReferences.Count == 0) + return; + + foreach (var b in m_InputBufferReferences) + b.Dispose(); + m_InputBufferReferences.Clear(); + } + + public void Dispose() + { + m_IndexAllocator.Dispose(); + m_VertexAllocator.Dispose(); + m_MeshChunkTableAllocator.Dispose(); + m_DummyBuffer.Dispose(); + + m_MeshHashToGeoSlot.Dispose(); + foreach (var geoSlot in m_GeoSlots) + { + if (geoSlot.valid) + geoSlot.meshChunks.Dispose(); + } + m_GeoSlots = null; + + m_FreeGeoSlots.Dispose(); + + m_GeoPoolEntryHashToSlot.Dispose(); + m_GeoPoolEntrySlots.Dispose(); + m_FreeGeoPoolEntrySlots.Dispose(); + + m_GlobalIndexBuffer.Dispose(); + m_GlobalVertexBuffer.Release(); + + m_GlobalMeshChunkTableEntryBuffer.Dispose(); + + m_CmdBuffer.Release(); + DisposeInputBuffers(); + } + + private void LoadKernels(ComputeShader geometryPoolShader) + { + m_GeometryPoolKernelsCS = geometryPoolShader; + + m_KernelMainUpdateIndexBuffer16 = m_GeometryPoolKernelsCS.FindKernel("MainUpdateIndexBuffer16"); + m_KernelMainUpdateIndexBuffer32 = m_GeometryPoolKernelsCS.FindKernel("MainUpdateIndexBuffer32"); + m_KernelMainUpdateVertexBuffer = m_GeometryPoolKernelsCS.FindKernel("MainUpdateVertexBuffer"); + } + + private int CalcVertexCount(int bufferByteSize) => DivUp(bufferByteSize, GetVertexByteSize()); + private int CalcIndexCount(int bufferByteSize) => DivUp(bufferByteSize, GetIndexByteSize()); + private int CalcMeshChunkTablesCount(int bufferByteSize) => DivUp(bufferByteSize, GetMeshChunkTableEntryByteSize()); + + private void DeallocateGeometrySlot(ref GeometrySlot slot) + { + if (slot.meshChunkTableAlloc.valid) + { + m_MeshChunkTableAllocator.FreeAllocation(slot.meshChunkTableAlloc); + if (slot.meshChunks.IsCreated) + { + for (int i = 0; i < slot.meshChunks.Length; ++i) + { + var meshChunk = slot.meshChunks[i]; + if (meshChunk.vertexAlloc.valid) + m_VertexAllocator.FreeAllocation(meshChunk.vertexAlloc); + + if (meshChunk.indexAlloc.valid) + m_IndexAllocator.FreeAllocation(meshChunk.indexAlloc); + } + slot.meshChunks.Dispose(); + } + } + + slot = GeometrySlot.Invalid; + } + + private void DeallocateGeometrySlot(int geoSlotHandle) + { + var geoSlot = m_GeoSlots[geoSlotHandle]; + Assertions.Assert.IsTrue(geoSlot.valid); + --geoSlot.refCount; + if (geoSlot.refCount == 0) + { + m_MeshHashToGeoSlot.Remove(geoSlot.hash); + DeallocateGeometrySlot(ref geoSlot); + m_FreeGeoSlots.Add(geoSlotHandle); + } + m_GeoSlots[geoSlotHandle] = geoSlot; + } + + private bool AllocateGeo(Mesh mesh, out int allocationHandle) + { + uint meshHash = (uint)mesh.GetHashCode(); + + int indexCount = 0; + for (int submeshIndex = 0; submeshIndex < mesh.subMeshCount; ++submeshIndex) + { + indexCount += (int)mesh.GetIndexCount(submeshIndex); + } + + if (m_MeshHashToGeoSlot.TryGetValue(meshHash, out allocationHandle)) + { + var geoSlot = m_GeoSlots[allocationHandle]; + Assertions.Assert.IsTrue(geoSlot.hash == meshHash); + Assertions.Assert.IsTrue(geoSlot.meshChunkTableAlloc.block.count == mesh.subMeshCount); + + ++geoSlot.refCount; + m_GeoSlots[allocationHandle] = geoSlot; + return true; + } + + allocationHandle = InvalidHandle; + var newSlot = GeometrySlot.Invalid; + newSlot.refCount = 1; + newSlot.hash = meshHash; + + bool allocationSuccess = true; + + if (mesh.subMeshCount > 0) + { + newSlot.meshChunkTableAlloc = m_MeshChunkTableAllocator.Allocate(mesh.subMeshCount); + if (!newSlot.meshChunkTableAlloc.valid) + { + newSlot.meshChunkTableAlloc = m_MeshChunkTableAllocator.GrowAndAllocate(mesh.subMeshCount, (int)(GraphicsHelpers.MaxGraphicsBufferSizeInBytes / GetMeshChunkTableEntryByteSize()), out int oldCapacity, out int newCapacity); + if (!newSlot.meshChunkTableAlloc.valid) + throw new UnifiedRayTracingException($"Can't allocate a GraphicsBuffer bigger than {GraphicsHelpers.MaxGraphicsBufferSizeInGigaBytes:F1}GB", UnifiedRayTracingError.GraphicsBufferAllocationFailed); + + GraphicsHelpers.ReallocateBuffer(m_CopyShader, oldCapacity, newCapacity, GetMeshChunkTableEntryByteSize(), ref m_GlobalMeshChunkTableEntryBuffer); + m_MaxMeshChunkTableEntriesCount = newCapacity; + } + + newSlot.meshChunks = new NativeArray(mesh.subMeshCount, Allocator.Persistent); + for (int submeshIndex = 0; submeshIndex < mesh.subMeshCount; ++submeshIndex) + { + SubMeshDescriptor submeshDescriptor = mesh.GetSubMesh(submeshIndex); + var newMeshChunk = MeshChunk.Invalid; + + newMeshChunk.vertexAlloc = m_VertexAllocator.Allocate(submeshDescriptor.vertexCount); + if (!newMeshChunk.vertexAlloc.valid) + { + newMeshChunk.vertexAlloc = m_VertexAllocator.GrowAndAllocate(submeshDescriptor.vertexCount, (int)(GraphicsHelpers.MaxGraphicsBufferSizeInBytes / GetVertexByteSize()), out int oldCapacity, out int newCapacity); + if (!newMeshChunk.vertexAlloc.valid) + throw new UnifiedRayTracingException($"Can't allocate a GraphicsBuffer bigger than {GraphicsHelpers.MaxGraphicsBufferSizeInGigaBytes:F1}GB", UnifiedRayTracingError.GraphicsBufferAllocationFailed); + + GraphicsHelpers.ReallocateBuffer(m_CopyShader, oldCapacity, newCapacity, GetVertexByteSize(), ref m_GlobalVertexBuffer); + m_MaxVertCounts = newCapacity; + } + + newMeshChunk.indexAlloc = m_IndexAllocator.Allocate(submeshDescriptor.indexCount); + if (!newMeshChunk.indexAlloc.valid) + { + newMeshChunk.indexAlloc = m_IndexAllocator.GrowAndAllocate(submeshDescriptor.indexCount, (int)(GraphicsHelpers.MaxGraphicsBufferSizeInBytes / sizeof(int)), out int oldCapacity, out int newCapacity); + if (!newMeshChunk.indexAlloc.valid) + throw new UnifiedRayTracingException($"Can't allocate a GraphicsBuffer bigger than {GraphicsHelpers.MaxGraphicsBufferSizeInGigaBytes:F1}GB", UnifiedRayTracingError.GraphicsBufferAllocationFailed); + + GraphicsHelpers.ReallocateBuffer(m_CopyShader, oldCapacity, newCapacity, sizeof(int), ref m_GlobalIndexBuffer); + m_MaxIndexCounts = newCapacity; + } + + newSlot.meshChunks[submeshIndex] = newMeshChunk; + } + } + + if (!allocationSuccess) + { + DeallocateGeometrySlot(ref newSlot); + return false; + } + + if (m_FreeGeoSlots.IsEmpty) + { + allocationHandle = m_GeoSlots.Count; + m_GeoSlots.Add(newSlot); + } + else + { + allocationHandle = m_FreeGeoSlots[m_FreeGeoSlots.Length - 1]; + m_FreeGeoSlots.RemoveAtSwapBack(m_FreeGeoSlots.Length - 1); + Assertions.Assert.IsTrue(!m_GeoSlots[allocationHandle].valid); + m_GeoSlots[allocationHandle] = newSlot; + } + + m_MeshHashToGeoSlot.Add(newSlot.hash, allocationHandle); + + return true; + } + + private void DeallocateGeoPoolEntrySlot(GeometryPoolHandle handle) + { + var slot = m_GeoPoolEntrySlots[handle.index]; + --slot.refCount; + if (slot.refCount == 0) + { + m_GeoPoolEntryHashToSlot.Remove(slot.hash); + DeallocateGeoPoolEntrySlot(ref slot); + m_FreeGeoPoolEntrySlots.Add(handle); + } + m_GeoPoolEntrySlots[handle.index] = slot; + } + + private void DeallocateGeoPoolEntrySlot(ref GeoPoolEntrySlot geoPoolEntrySlot) + { + if (geoPoolEntrySlot.geoSlotHandle != InvalidHandle) + DeallocateGeometrySlot(geoPoolEntrySlot.geoSlotHandle); + + geoPoolEntrySlot = GeoPoolEntrySlot.Invalid; + } + + public GeometryPoolEntryInfo GetEntryInfo(GeometryPoolHandle handle) + { + if (!handle.valid) + return GeometryPoolEntryInfo.NewDefault(); + + GeoPoolEntrySlot slot = m_GeoPoolEntrySlots[handle.index]; + if (!slot.valid) + return GeometryPoolEntryInfo.NewDefault(); + + if (slot.geoSlotHandle == -1) + Debug.LogErrorFormat("Found invalid geometry slot handle with handle id {0}.", handle.index); + return new GeometryPoolEntryInfo() + { + valid = slot.valid, + refCount = slot.refCount + }; + } + public GeometrySlot GetEntryGeomAllocation(GeometryPoolHandle handle) + { + var slot = m_GeoPoolEntrySlots[handle.index]; + Assertions.Assert.IsTrue(slot.valid); + + var geoSlot = m_GeoSlots[slot.geoSlotHandle]; + Assertions.Assert.IsTrue(geoSlot.valid); + + return geoSlot; + } + + public int GetInstanceGeometryIndex(Mesh mesh) + { + return GetEntryGeomAllocation(GetHandle(mesh)).meshChunkTableAlloc.block.offset; + } + + private void UpdateGeoGpuState(Mesh mesh, GeometryPoolHandle handle) + { + var entrySlot = m_GeoPoolEntrySlots[handle.index]; + var geoSlot = m_GeoSlots[entrySlot.geoSlotHandle]; + + CommandBuffer cmdBuffer = AllocateCommandBuffer(); //clear any previous cmd buffers. + + //Upload mesh information. + if (!geoSlot.hasGPUData) + { + //Load index buffer + GraphicsBuffer buffer = LoadIndexBuffer(mesh); + Assertions.Assert.IsTrue((buffer.target & GraphicsBuffer.Target.Raw) != 0); + + // Load attribute buffers + VertexBufferAttribInfo posAttrib; + LoadVertexAttribInfo(mesh, VertexAttribute.Position, out posAttrib); + + VertexBufferAttribInfo uv0Attrib; + LoadVertexAttribInfo(mesh, VertexAttribute.TexCoord0, out uv0Attrib); + + VertexBufferAttribInfo uv1Attrib; + LoadVertexAttribInfo(mesh, VertexAttribute.TexCoord1, out uv1Attrib); + + VertexBufferAttribInfo normalAttrib; + LoadVertexAttribInfo(mesh, VertexAttribute.Normal, out normalAttrib); + + var meshChunkAllocationTable = new NativeArray(geoSlot.meshChunks.Length, Allocator.Temp); + for (int submeshIndex = 0; submeshIndex < mesh.subMeshCount; ++submeshIndex) + { + SubMeshDescriptor submeshDescriptor = mesh.GetSubMesh(submeshIndex); + MeshChunk targetMeshChunk = geoSlot.meshChunks[submeshIndex]; + //Update mesh chunk vertex offset + AddVertexUpdateCommand( + cmdBuffer, submeshDescriptor.baseVertex + submeshDescriptor.firstVertex, + posAttrib, uv0Attrib, uv1Attrib, normalAttrib, + targetMeshChunk.vertexAlloc, m_GlobalVertexBuffer); + + //Update mesh chunk index offset + AddIndexUpdateCommand( + cmdBuffer, + mesh.indexFormat, buffer, targetMeshChunk.indexAlloc, submeshDescriptor.firstVertex, + submeshDescriptor.indexStart, submeshDescriptor.indexCount, 0, + m_GlobalIndexBuffer); + + meshChunkAllocationTable[submeshIndex] = targetMeshChunk.EncodeGPUEntry(); + } + + cmdBuffer.SetBufferData(m_GlobalMeshChunkTableEntryBuffer, meshChunkAllocationTable, 0, geoSlot.meshChunkTableAlloc.block.offset, meshChunkAllocationTable.Length); + meshChunkAllocationTable.Dispose(); + + geoSlot.hasGPUData = true; + m_GeoSlots[entrySlot.geoSlotHandle] = geoSlot; + } + } + + private uint FNVHash(uint prevHash, uint dword) + { + //https://en.wikipedia.org/wiki/Fowler%E2%80%93Noll%E2%80%93Vo_hash_function + const uint fnvPrime = 0x811C9DC5; + for (int i = 0; i < 4; ++i) + { + prevHash ^= ((dword >> (i * 8)) & 0xFF); + prevHash *= fnvPrime; + } + return prevHash; + } + + private uint CalculateClusterHash(Mesh mesh, GeometryPoolSubmeshData[] submeshData) + { + uint meshHash = (uint)mesh.GetHashCode(); + uint clusterHash = meshHash; + if (submeshData != null) + { + foreach (var data in submeshData) + { + clusterHash = FNVHash(clusterHash, (uint)data.submeshIndex); + clusterHash = FNVHash(clusterHash, (uint)(data.material == null ? 0 : data.material.GetHashCode())); + } + } + return clusterHash; + } + + public GeometryPoolHandle GetHandle(Mesh mesh) + { + uint geoPoolEntryHash = CalculateClusterHash(mesh, null); + + if (m_GeoPoolEntryHashToSlot.TryGetValue(geoPoolEntryHash, out GeometryPoolHandle outHandle)) + return outHandle; + else + return GeometryPoolHandle.Invalid; + } + + private static int FindSubmeshEntryInDesc(int submeshIndex, in GeometryPoolSubmeshData[] submeshData) + { + if (submeshData == null) + return -1; + + for (int i = 0; i < submeshData.Length; ++i) + { + if (submeshData[i].submeshIndex == submeshIndex) + return i; + } + + return -1; + } + + public bool Register(Mesh mesh, out GeometryPoolHandle outHandle) + { + return Register(new GeometryPoolEntryDesc() + { + mesh = mesh, + submeshData = null + }, out outHandle); + } + + public bool Register(in GeometryPoolEntryDesc entryDesc, out GeometryPoolHandle outHandle) + { + outHandle = GeometryPoolHandle.Invalid; + if (entryDesc.mesh == null) + { + return false; + } + + Mesh mesh = entryDesc.mesh; + uint geoPoolEntryHash = CalculateClusterHash(entryDesc.mesh, entryDesc.submeshData); + + if (m_GeoPoolEntryHashToSlot.TryGetValue(geoPoolEntryHash, out outHandle)) + { + GeoPoolEntrySlot geoPoolEntrySlot = m_GeoPoolEntrySlots[outHandle.index]; + Assertions.Assert.IsTrue(geoPoolEntrySlot.hash == geoPoolEntryHash); + + GeometrySlot geoSlot = m_GeoSlots[geoPoolEntrySlot.geoSlotHandle]; + Assertions.Assert.IsTrue(geoSlot.hash == (uint)mesh.GetHashCode()); + + ++geoPoolEntrySlot.refCount; + m_GeoPoolEntrySlots[outHandle.index] = geoPoolEntrySlot; + return true; + } + + var newSlot = GeoPoolEntrySlot.Invalid; + newSlot.refCount = 1; + newSlot.hash = geoPoolEntryHash; + + // Validate submesh information + var validSubmeshData = new List(mesh.subMeshCount); + if (mesh.subMeshCount > 0 && entryDesc.submeshData != null) + { + for (int submeshIndex = 0; submeshIndex < mesh.subMeshCount; ++submeshIndex) + { + int entryIndex = FindSubmeshEntryInDesc(submeshIndex, entryDesc.submeshData); + if (entryIndex == -1) + { + Debug.LogErrorFormat("Could not find submesh index {0} for mesh entry descriptor of mesh {1}.", submeshIndex, mesh.name); + continue; + } + validSubmeshData.Add(entryDesc.submeshData[entryIndex]); + } + } + + if (!AllocateGeo(mesh, out newSlot.geoSlotHandle)) + { + DeallocateGeoPoolEntrySlot(ref newSlot); + return false; + } + + + if (m_FreeGeoPoolEntrySlots.IsEmpty) + { + outHandle = new GeometryPoolHandle() { index = m_GeoPoolEntrySlots.Length }; + m_GeoPoolEntrySlots.Add(newSlot); + } + else + { + outHandle = m_FreeGeoPoolEntrySlots[m_FreeGeoPoolEntrySlots.Length - 1]; + m_FreeGeoPoolEntrySlots.RemoveAtSwapBack(m_FreeGeoPoolEntrySlots.Length - 1); + Assertions.Assert.IsTrue(!m_GeoPoolEntrySlots[outHandle.index].valid); + m_GeoPoolEntrySlots[outHandle.index] = newSlot; + } + + m_GeoPoolEntryHashToSlot.Add(newSlot.hash, outHandle); + UpdateGeoGpuState(mesh, outHandle); + + return true; + } + + public void Unregister(GeometryPoolHandle handle) + { + var slot = m_GeoPoolEntrySlots[handle.index]; + Assertions.Assert.IsTrue(slot.valid); + DeallocateGeoPoolEntrySlot(handle); + } + + public void SendGpuCommands() + { + if (m_PendingCmds != 0) + { + Graphics.ExecuteCommandBuffer(m_CmdBuffer); + m_MustClearCmdBuffer = true; + m_PendingCmds = 0; + } + + DisposeInputBuffers(); + } + + private GraphicsBuffer LoadIndexBuffer(Mesh mesh) + { + Debug.Assert((mesh.indexBufferTarget & GraphicsBuffer.Target.Raw) != 0 || (mesh.GetIndices(0) != null && mesh.GetIndices(0).Length != 0), + "Cant use a mesh buffer that is not raw and has no CPU index information."); + + mesh.indexBufferTarget |= GraphicsBuffer.Target.Raw; + mesh.vertexBufferTarget |= GraphicsBuffer.Target.Raw; + var idxBuffer = mesh.GetIndexBuffer(); + m_InputBufferReferences.Add(idxBuffer); + return idxBuffer; + } + + void LoadVertexAttribInfo(Mesh mesh, VertexAttribute attribute, out VertexBufferAttribInfo output) + { + if (!mesh.HasVertexAttribute(attribute)) + { + output.buffer = null; + output.stride = output.offset = output.byteCount = 0; + return; + } + + int stream = mesh.GetVertexAttributeStream(attribute); + + output.stride = mesh.GetVertexBufferStride(stream); + output.offset = mesh.GetVertexAttributeOffset(attribute); + output.byteCount = GetFormatByteCount(mesh.GetVertexAttributeFormat(attribute)) * mesh.GetVertexAttributeDimension(attribute); + + output.buffer = mesh.GetVertexBuffer(stream); + m_InputBufferReferences.Add(output.buffer); + + Assertions.Assert.IsTrue((output.buffer.target & GraphicsBuffer.Target.Raw) != 0); + } + + private CommandBuffer AllocateCommandBuffer() + { + if (m_MustClearCmdBuffer) + { + m_CmdBuffer.Clear(); + m_MustClearCmdBuffer = false; + } + + ++m_PendingCmds; + return m_CmdBuffer; + } + + private void AddIndexUpdateCommand( + CommandBuffer cmdBuffer, + IndexFormat inputFormat, + in GraphicsBuffer inputBuffer, + in BlockAllocator.Allocation location, + int firstVertex, + int inputOffset, int indexCount, int outputOffset, + GraphicsBuffer outputIdxBuffer) + { + if (location.block.count == 0) + return; + + Assertions.Assert.IsTrue(indexCount <= location.block.count); + Assertions.Assert.IsTrue(outputOffset < location.block.count); + cmdBuffer.SetComputeIntParam(m_GeometryPoolKernelsCS, GeoPoolShaderIDs._InputIBBaseOffset, inputOffset); + cmdBuffer.SetComputeIntParam(m_GeometryPoolKernelsCS, GeoPoolShaderIDs._InputIBCount, indexCount); + cmdBuffer.SetComputeIntParam(m_GeometryPoolKernelsCS, GeoPoolShaderIDs._InputFirstVertex, firstVertex); + cmdBuffer.SetComputeIntParam(m_GeometryPoolKernelsCS, GeoPoolShaderIDs._OutputIBOffset, location.block.offset + outputOffset); + int kernel = inputFormat == IndexFormat.UInt16 ? m_KernelMainUpdateIndexBuffer16 : m_KernelMainUpdateIndexBuffer32; + cmdBuffer.SetComputeBufferParam(m_GeometryPoolKernelsCS, kernel, GeoPoolShaderIDs._InputIndexBuffer, inputBuffer); + cmdBuffer.SetComputeBufferParam(m_GeometryPoolKernelsCS, kernel, GeoPoolShaderIDs._OutputIndexBuffer, outputIdxBuffer); + + int totalGroupCount = DivUp(location.block.count, kThreadGroupSize); + int dispatchCount = DivUp(totalGroupCount, kMaxThreadGroupsPerDispatch); + + for (int dispatchIndex = 0; dispatchIndex < dispatchCount; ++dispatchIndex) + { + int indexOffset = dispatchIndex * kMaxThreadGroupsPerDispatch * kThreadGroupSize; + int dispatchGroupCount = Math.Min(kMaxThreadGroupsPerDispatch, totalGroupCount - dispatchIndex * kMaxThreadGroupsPerDispatch); + + cmdBuffer.SetComputeIntParam(m_GeometryPoolKernelsCS, GeoPoolShaderIDs._DispatchIndexOffset, indexOffset); + cmdBuffer.DispatchCompute(m_GeometryPoolKernelsCS, kernel, dispatchGroupCount, 1, 1); + } + } + + private void AddVertexUpdateCommand( + CommandBuffer cmdBuffer, int baseVertexOffset, + in VertexBufferAttribInfo pos, in VertexBufferAttribInfo uv0, in VertexBufferAttribInfo uv1, in VertexBufferAttribInfo n, + in BlockAllocator.Allocation location, + GraphicsBuffer outputVertexBuffer) + { + if (location.block.count == 0) + return; + + GeoPoolVertexAttribs attributes = 0; + if (pos.valid) + attributes |= GeoPoolVertexAttribs.Position; + + if (uv0.valid) + attributes |= GeoPoolVertexAttribs.Uv0; + + if (uv1.valid) + attributes |= GeoPoolVertexAttribs.Uv1; + + if (n.valid) + attributes |= GeoPoolVertexAttribs.Normal; + + int vertexCount = location.block.count; + + cmdBuffer.SetComputeIntParam(m_GeometryPoolKernelsCS, GeoPoolShaderIDs._InputVBCount, vertexCount); + cmdBuffer.SetComputeIntParam(m_GeometryPoolKernelsCS, GeoPoolShaderIDs._InputBaseVertexOffset, baseVertexOffset); + cmdBuffer.SetComputeIntParam(m_GeometryPoolKernelsCS, GeoPoolShaderIDs._OutputVBSize, m_MaxVertCounts); + cmdBuffer.SetComputeIntParam(m_GeometryPoolKernelsCS, GeoPoolShaderIDs._OutputVBOffset, location.block.offset); + cmdBuffer.SetComputeIntParam(m_GeometryPoolKernelsCS, GeoPoolShaderIDs._InputPosBufferStride, pos.stride); + cmdBuffer.SetComputeIntParam(m_GeometryPoolKernelsCS, GeoPoolShaderIDs._InputPosBufferOffset, pos.offset); + cmdBuffer.SetComputeIntParam(m_GeometryPoolKernelsCS, GeoPoolShaderIDs._InputUv0BufferStride, uv0.stride); + cmdBuffer.SetComputeIntParam(m_GeometryPoolKernelsCS, GeoPoolShaderIDs._InputUv0BufferOffset, uv0.offset); + cmdBuffer.SetComputeIntParam(m_GeometryPoolKernelsCS, GeoPoolShaderIDs._InputUv1BufferStride, uv1.stride); + cmdBuffer.SetComputeIntParam(m_GeometryPoolKernelsCS, GeoPoolShaderIDs._InputUv1BufferOffset, uv1.offset); + cmdBuffer.SetComputeIntParam(m_GeometryPoolKernelsCS, GeoPoolShaderIDs._InputNormalBufferStride, n.stride); + cmdBuffer.SetComputeIntParam(m_GeometryPoolKernelsCS, GeoPoolShaderIDs._InputNormalBufferOffset, n.offset); + cmdBuffer.SetComputeIntParam(m_GeometryPoolKernelsCS, GeoPoolShaderIDs._AttributesMask, (int)attributes); + + int kernel = m_KernelMainUpdateVertexBuffer; + cmdBuffer.SetComputeBufferParam(m_GeometryPoolKernelsCS, kernel, GeoPoolShaderIDs._PosBuffer, pos.valid ? pos.buffer : m_DummyBuffer); + cmdBuffer.SetComputeBufferParam(m_GeometryPoolKernelsCS, kernel, GeoPoolShaderIDs._Uv0Buffer, uv0.valid ? uv0.buffer : m_DummyBuffer); + cmdBuffer.SetComputeBufferParam(m_GeometryPoolKernelsCS, kernel, GeoPoolShaderIDs._Uv1Buffer, uv1.valid ? uv1.buffer : m_DummyBuffer); + cmdBuffer.SetComputeBufferParam(m_GeometryPoolKernelsCS, kernel, GeoPoolShaderIDs._NormalBuffer, n.valid ? n.buffer : m_DummyBuffer); + cmdBuffer.SetComputeBufferParam(m_GeometryPoolKernelsCS, kernel, GeoPoolShaderIDs._OutputVB, outputVertexBuffer); + + int totalGroupCount = DivUp(vertexCount, kThreadGroupSize); + int dispatchCount = DivUp(totalGroupCount, kMaxThreadGroupsPerDispatch); + + for (int dispatchIndex = 0; dispatchIndex < dispatchCount; ++dispatchIndex) + { + int vertexOffset = dispatchIndex * kMaxThreadGroupsPerDispatch * kThreadGroupSize; + int dispatchGroupCount = Math.Min(kMaxThreadGroupsPerDispatch, totalGroupCount - dispatchIndex * kMaxThreadGroupsPerDispatch); + + cmdBuffer.SetComputeIntParam(m_GeometryPoolKernelsCS, GeoPoolShaderIDs._DispatchVertexOffset, vertexOffset); + cmdBuffer.DispatchCompute(m_GeometryPoolKernelsCS, kernel, dispatchGroupCount, 1, 1); + } + } + } +} diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/GeometryPool/GeometryPool.cs.meta b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/GeometryPool/GeometryPool.cs.meta new file mode 100644 index 00000000000..6df0de8290c --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/GeometryPool/GeometryPool.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 352c33fc019547446a50f48d3badcecb \ No newline at end of file diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/GeometryPool/GeometryPool.hlsl b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/GeometryPool/GeometryPool.hlsl new file mode 100644 index 00000000000..52f0410d06b --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/GeometryPool/GeometryPool.hlsl @@ -0,0 +1,113 @@ +#ifndef GEOMETRY_POOL_H +#define GEOMETRY_POOL_H + +namespace GeometryPool +{ + +float2 msign(float2 v) +{ + return float2( + (v.x >= 0.0) ? 1.0 : -1.0, + (v.y >= 0.0) ? 1.0 : -1.0); +} + +uint NormalToOctahedral32(float3 normal) +{ + normal.xy /= (abs(normal.x) + abs(normal.y) + abs(normal.z)); + normal.xy = (normal.z >= 0.0) ? normal.xy : (1.0 - abs(normal.yx)) * msign(normal.xy); + + uint2 d = uint2(round(32767.5 + normal.xy * 32767.5)); + return d.x | (d.y << 16u); +} + +float3 Octahedral32ToNormal(uint data) +{ + uint2 iv = uint2(data, data >> 16u) & 65535u; + float2 v = float2(iv) / 32767.5 - 1.0; + + float3 normal = float3(v, 1.0 - abs(v.x) - abs(v.y)); + float t = max(-normal.z, 0.0); + normal.x += (normal.x > 0.0) ? -t : t; + normal.y += (normal.y > 0.0) ? -t : t; + + return normalize(normal); +} + +uint UvsToUint32(float2 uv) +{ + return (uint(uv.x * 65535.0f) & 0xFFFF) | (uint(uv.y * 65535.0f) << 16); +} + +float2 Uint32ToUvs(uint data) +{ + return float2((data & 0xFFFF) * (1.0f/65535.0f), (data >> 16u) * (1.0f/65535.0f)); +} + +void StoreUvs(RWStructuredBuffer output, uint index, float2 uv) +{ +#ifdef GEOMETRY_POOL_USE_COMPRESSED_UVS + output[index] = UvsToUint32(uv); +#else + output[index] = asuint(uv.x); + output[index + 1] = asuint(uv.y); +#endif +} + +float2 LoadUvs(StructuredBuffer vertexBuffer, uint index) +{ +#ifdef GEOMETRY_POOL_USE_COMPRESSED_UVS + return Uint32ToUvs(vertexBuffer[index]); +#else + return asfloat(uint2(vertexBuffer[index], vertexBuffer[index + 1])); +#endif +} + + +void StoreVertex( + uint vertexIndex, + in GeoPoolVertex vertex, + int outputBufferSize, + RWStructuredBuffer output) +{ + uint posIndex = vertexIndex * GEO_POOL_VERTEX_BYTE_SIZE / 4; + output[posIndex] = asuint(vertex.pos.x); + output[posIndex+1] = asuint(vertex.pos.y); + output[posIndex+2] = asuint(vertex.pos.z); + + uint uv0Index = (vertexIndex * GEO_POOL_VERTEX_BYTE_SIZE + GEO_POOL_UV0BYTE_OFFSET) / 4; + StoreUvs(output, uv0Index, vertex.uv0); + + uint uv1Index = (vertexIndex * GEO_POOL_VERTEX_BYTE_SIZE + GEO_POOL_UV1BYTE_OFFSET) / 4; + StoreUvs(output, uv1Index, vertex.uv1); + + uint normalIndex = (vertexIndex * GEO_POOL_VERTEX_BYTE_SIZE + GEO_POOL_NORMAL_BYTE_OFFSET) / 4; + output[normalIndex] = NormalToOctahedral32(vertex.N); +} + +void LoadVertex( + uint vertexIndex, + int vertexFlags, + StructuredBuffer vertexBuffer, + out GeoPoolVertex outputVertex) +{ + uint posIndex = vertexIndex * GEO_POOL_VERTEX_BYTE_SIZE / 4; + float3 pos = asfloat(uint3(vertexBuffer[posIndex], vertexBuffer[posIndex + 1], vertexBuffer[posIndex + 2])); + + uint uv0Index = (vertexIndex * GEO_POOL_VERTEX_BYTE_SIZE + GEO_POOL_UV0BYTE_OFFSET) / 4; + float2 uv0 = LoadUvs(vertexBuffer, uv0Index); + + uint uv1Index = (vertexIndex * GEO_POOL_VERTEX_BYTE_SIZE + GEO_POOL_UV1BYTE_OFFSET) / 4; + float2 uv1 = LoadUvs(vertexBuffer, uv1Index); + + uint normalIndex = (vertexIndex * GEO_POOL_VERTEX_BYTE_SIZE + GEO_POOL_NORMAL_BYTE_OFFSET) / 4; + uint normal = uint(vertexBuffer[normalIndex]); + + outputVertex.pos = pos; + outputVertex.uv0 = uv0; + outputVertex.uv1 = uv1; + outputVertex.N = Octahedral32ToNormal(normal); +} + +} + +#endif diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/GeometryPool/GeometryPool.hlsl.meta b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/GeometryPool/GeometryPool.hlsl.meta new file mode 100644 index 00000000000..d3dadd360ad --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/GeometryPool/GeometryPool.hlsl.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 839bff092489da0498be737d665c0665 +ShaderIncludeImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/GeometryPool/GeometryPoolDefs.cs b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/GeometryPool/GeometryPoolDefs.cs new file mode 100644 index 00000000000..15fed6226e9 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/GeometryPool/GeometryPoolDefs.cs @@ -0,0 +1,40 @@ +using System; + +namespace UnityEngine.Rendering.UnifiedRayTracing +{ + internal static class GeometryPoolConstants + { + public const int GeoPoolPosByteSize = 3 * 4; + const int UvFieldSizeInDWords = 2; + public const int GeoPoolUV0ByteSize = UvFieldSizeInDWords * 4; + public const int GeoPoolUV1ByteSize = UvFieldSizeInDWords * 4; + public const int GeoPoolNormalByteSize = 1 * 4; + + public const int GeoPoolPosByteOffset = 0; + public const int GeoPoolUV0ByteOffset = GeoPoolPosByteOffset + GeoPoolPosByteSize; + public const int GeoPoolUV1ByteOffset = GeoPoolUV0ByteOffset + GeoPoolUV0ByteSize; + public const int GeoPoolNormalByteOffset = GeoPoolUV1ByteOffset + GeoPoolUV1ByteSize; + + public const int GeoPoolIndexByteSize = 4; + public const int GeoPoolVertexByteSize = GeoPoolPosByteSize + GeoPoolUV0ByteSize + GeoPoolUV1ByteSize + GeoPoolNormalByteSize; + } + + internal struct GeoPoolVertex + { + public Vector3 pos; + public Vector2 uv0; + public Vector2 uv1; + public Vector3 N; + } + + internal struct GeoPoolMeshChunk + { + public int indexOffset; + public int indexCount; + public int vertexOffset; + public int vertexCount; + } + + [Flags] + internal enum GeoPoolVertexAttribs { Position = 1, Normal = 2, Uv0 = 4, Uv1 = 8 } +} diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/GeometryPool/GeometryPoolDefs.cs.hlsl b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/GeometryPool/GeometryPoolDefs.cs.hlsl new file mode 100644 index 00000000000..ed10b782123 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/GeometryPool/GeometryPoolDefs.cs.hlsl @@ -0,0 +1,53 @@ +#ifndef GEOMETRYPOOLDEFS_CS_HLSL +#define GEOMETRYPOOLDEFS_CS_HLSL + +//#define GEOMETRY_POOL_USE_COMPRESSED_UVS + +// +// UnityEngine.Rendering.UnifiedRayTracing.GeoPoolVertexAttribs: static fields +// +#define GEOPOOLVERTEXATTRIBS_POSITION (1) +#define GEOPOOLVERTEXATTRIBS_NORMAL (2) +#define GEOPOOLVERTEXATTRIBS_UV0 (4) +#define GEOPOOLVERTEXATTRIBS_UV1 (8) + +// +// UnityEngine.Rendering.UnifiedRayTracing.GeometryPoolConstants: static fields +// +#define GEO_POOL_POS_BYTE_SIZE (12) +#ifdef GEOMETRY_POOL_USE_COMPRESSED_UVS +#define GEO_POOL_UV0BYTE_SIZE (4) +#define GEO_POOL_UV1BYTE_SIZE (4) +#else +#define GEO_POOL_UV0BYTE_SIZE (8) +#define GEO_POOL_UV1BYTE_SIZE (8) +#endif +#define GEO_POOL_NORMAL_BYTE_SIZE (4) + +#define GEO_POOL_POS_BYTE_OFFSET (0) +#define GEO_POOL_UV0BYTE_OFFSET (GEO_POOL_POS_BYTE_SIZE) +#define GEO_POOL_UV1BYTE_OFFSET (GEO_POOL_POS_BYTE_SIZE+GEO_POOL_UV0BYTE_SIZE) +#define GEO_POOL_NORMAL_BYTE_OFFSET (GEO_POOL_POS_BYTE_SIZE+GEO_POOL_UV0BYTE_SIZE+GEO_POOL_UV1BYTE_SIZE) +#define GEO_POOL_INDEX_BYTE_SIZE (4) +#define GEO_POOL_VERTEX_BYTE_SIZE (GEO_POOL_NORMAL_BYTE_OFFSET+GEO_POOL_NORMAL_BYTE_SIZE) + +// Generated from UnityEngine.Rendering.UnifiedRayTracing.GeoPoolMeshChunk +struct GeoPoolMeshChunk +{ + int indexOffset; + int indexCount; + int vertexOffset; + int vertexCount; +}; + +// Generated from UnityEngine.Rendering.UnifiedRayTracing.GeoPoolVertex +struct GeoPoolVertex +{ + float3 pos; + float2 uv0; + float2 uv1; + float3 N; +}; + + +#endif diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/GeometryPool/GeometryPoolDefs.cs.hlsl.meta b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/GeometryPool/GeometryPoolDefs.cs.hlsl.meta new file mode 100644 index 00000000000..09975d0ce80 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/GeometryPool/GeometryPoolDefs.cs.hlsl.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: eca78e9f751408043bef5b9d52db9d39 +ShaderIncludeImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/GeometryPool/GeometryPoolDefs.cs.meta b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/GeometryPool/GeometryPoolDefs.cs.meta new file mode 100644 index 00000000000..ae4fc3dcc11 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/GeometryPool/GeometryPoolDefs.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 1e9c09a61faef3046bcf416dbb9c9d88 \ No newline at end of file diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/GeometryPool/GeometryPoolKernels.compute b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/GeometryPool/GeometryPoolKernels.compute new file mode 100644 index 00000000000..5b940007dc1 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/GeometryPool/GeometryPoolKernels.compute @@ -0,0 +1,106 @@ +#pragma kernel MainUpdateIndexBuffer16 +#pragma kernel MainUpdateIndexBuffer32 +#pragma kernel MainUpdateVertexBuffer + +#include "GeometryPoolDefs.cs.hlsl" +#include "GeometryPool.hlsl" + +#define GROUP_SIZE_X 256 +#define GROUP_SIZE_X_HALF (GROUP_SIZE_X >> 1) + +int _DispatchIndexOffset; +int _InputIBBaseOffset; +int _InputIBCount; +int _InputFirstVertex; +int _OutputIBOffset; + +ByteAddressBuffer _InputIndexBuffer; +RWStructuredBuffer _OutputIndexBuffer; + +[numthreads(GROUP_SIZE_X,1,1)] +void MainUpdateIndexBuffer32(uint3 dispatchThreadID : SV_DispatchThreadID, int3 groupID : SV_GroupID) +{ + uint bufferOffset = _DispatchIndexOffset + dispatchThreadID.x; + if (bufferOffset >= (uint)_InputIBCount) + return; + + uint indexVal = _InputIndexBuffer.Load((_InputIBBaseOffset + bufferOffset) << 2u); + _OutputIndexBuffer[(uint)_OutputIBOffset + bufferOffset] = indexVal - _InputFirstVertex; +} + +groupshared uint _ldsIndexCache[GROUP_SIZE_X_HALF + 1]; + + +[numthreads(GROUP_SIZE_X,1,1)] +void MainUpdateIndexBuffer16(uint3 dispatchThreadID : SV_DispatchThreadID, uint groupIndex : SV_GroupIndex, uint3 groupID : SV_GroupID) +{ + if (groupIndex < (GROUP_SIZE_X_HALF + 1)) + _ldsIndexCache[groupIndex] = _InputIndexBuffer.Load((GROUP_SIZE_X_HALF * (groupID.x) + groupIndex + (uint)(_InputIBBaseOffset + _DispatchIndexOffset) / 2) << 2u); + + GroupMemoryBarrierWithGroupSync(); + + uint bufferOffset = _DispatchIndexOffset + dispatchThreadID.x; + if (bufferOffset >= (uint)_InputIBCount) + return; + + uint localOffset = groupIndex + ((_InputIBBaseOffset + _DispatchIndexOffset) & 0x1); + uint pair = _ldsIndexCache[localOffset >> 1u]; + uint value = (localOffset & 0x1) ? (pair >> 16) : (pair & 0xffff); + + _OutputIndexBuffer[(uint)_OutputIBOffset + bufferOffset] = value - _InputFirstVertex; +} + +int _InputVBCount; +int _InputBaseVertexOffset; +int _DispatchVertexOffset; +int _OutputVBSize; +int _OutputVBOffset; + +int _InputPosBufferStride; +int _InputPosBufferOffset; + +int _InputUv0BufferStride; +int _InputUv0BufferOffset; + +int _InputUv1BufferStride; +int _InputUv1BufferOffset; + +int _InputNormalBufferStride; +int _InputNormalBufferOffset; + +ByteAddressBuffer _PosBuffer; +ByteAddressBuffer _Uv0Buffer; +ByteAddressBuffer _Uv1Buffer; +ByteAddressBuffer _NormalBuffer; + +RWStructuredBuffer _OutputVB; + +int _AttributesMask; + +[numthreads(GROUP_SIZE_X, 1, 1)] +void MainUpdateVertexBuffer(uint3 dispatchThreadID : SV_DispatchThreadID) +{ + int inputVertexOffset = _DispatchVertexOffset + (int)dispatchThreadID.x; + + if ((int)inputVertexOffset >= _InputVBCount) + return; + + inputVertexOffset += _InputBaseVertexOffset; + + GeoPoolVertex vtx = (GeoPoolVertex)0; + + if (_AttributesMask & GEOPOOLVERTEXATTRIBS_POSITION) + vtx.pos = asfloat(_PosBuffer.Load3(_InputPosBufferOffset + (inputVertexOffset * _InputPosBufferStride))); + + if (_AttributesMask & GEOPOOLVERTEXATTRIBS_UV0) + vtx.uv0.xy = asfloat(_Uv0Buffer.Load2(_InputUv0BufferOffset + (inputVertexOffset * _InputUv0BufferStride))); + + if (_AttributesMask & GEOPOOLVERTEXATTRIBS_UV1) + vtx.uv1.xy = asfloat(_Uv1Buffer.Load2(_InputUv1BufferOffset + (inputVertexOffset * _InputUv1BufferStride))); + + if (_AttributesMask & GEOPOOLVERTEXATTRIBS_NORMAL) + vtx.N = asfloat(_NormalBuffer.Load3(_InputNormalBufferOffset + (inputVertexOffset * _InputNormalBufferStride))); + + uint outputVertexOffset = _DispatchVertexOffset + (int)dispatchThreadID.x; + GeometryPool::StoreVertex(_OutputVBOffset + outputVertexOffset, vtx, _OutputVBSize, _OutputVB); +} diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/GeometryPool/GeometryPoolKernels.compute.meta b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/GeometryPool/GeometryPoolKernels.compute.meta new file mode 100644 index 00000000000..cc557f06e82 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/GeometryPool/GeometryPoolKernels.compute.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 98e3d58cae7210c4786f67f504c9e899 +ComputeShaderImporter: + externalObjects: {} + userData: + assetBundleName: unifiedraytracing + assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/TerrainToMesh.cs b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/TerrainToMesh.cs new file mode 100644 index 00000000000..32e150e37c5 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/TerrainToMesh.cs @@ -0,0 +1,245 @@ +using System.Collections.Generic; +using Unity.Burst; +using Unity.Collections; +using Unity.Jobs; +using Unity.Mathematics; + +namespace UnityEngine.Rendering.UnifiedRayTracing +{ + internal static class TerrainToMesh + { + static private AsyncTerrainToMeshRequest MakeAsyncTerrainToMeshRequest(int width, int height, Vector3 heightmapScale, float[,] heightmap, bool[,] holes) + { + int vertexCount = width * height; + var job = new ComputeTerrainMeshJob(); + job.heightmap = new NativeArray(vertexCount, Allocator.Persistent); + for (int i = 0; i < vertexCount; ++i) + job.heightmap[i] = heightmap[i / (width), i % (width)]; + + job.holes = new NativeArray((width - 1) * (height - 1), Allocator.Persistent); + for (int i = 0; i < (width - 1) * (height - 1); ++i) + job.holes[i] = holes[i / (width - 1), i % (width - 1)]; + + job.width = width; + job.height = height; + job.heightmapScale = heightmapScale; + + job.positions = new NativeArray(vertexCount, Allocator.Persistent); + job.uvs = new NativeArray(vertexCount, Allocator.Persistent); + job.normals = new NativeArray(vertexCount, Allocator.Persistent); + job.indices = new NativeArray((width - 1) * (height - 1) * 6, Allocator.Persistent); + + JobHandle jobHandle = job.Schedule(vertexCount, math.max(width, 128)); + + return new AsyncTerrainToMeshRequest(job, jobHandle); + } + + static public AsyncTerrainToMeshRequest ConvertAsync(Terrain terrain) + { + TerrainData terrainData = terrain.terrainData; + int width = terrainData.heightmapTexture.width; + int height = terrainData.heightmapTexture.height; + float[,] heightmap = terrain.terrainData.GetHeights(0, 0, width, height); + bool[,] holes = terrain.terrainData.GetHoles(0, 0, width - 1, height - 1); + return MakeAsyncTerrainToMeshRequest(width, height, terrainData.heightmapScale, heightmap, holes); + } + + static public AsyncTerrainToMeshRequest ConvertAsync(int heightmapWidth, int heightmapHeight, short[] heightmapData, Vector3 heightmapScale, int holeWidth, int holeHeight, byte[] holedata) + { + float[,] heightmap = new float[heightmapWidth,heightmapHeight]; + for (int y = 0; y < heightmapHeight; ++y) + for (int x = 0; x < heightmapWidth; ++x) + heightmap[y, x] = (float)heightmapData[y * heightmapWidth + x] / (float)32766; + + bool[,] holes = new bool[heightmapWidth - 1, heightmapHeight - 1]; + if (holedata != null) + { + for (int y = 0; y < heightmapHeight - 1; ++y) + for (int x = 0; x < heightmapWidth - 1; ++x) + holes[y, x] = holedata[y * holeWidth + x] != 0; + } + else + { + for (int y = 0; y < heightmapHeight - 1; ++y) + for (int x = 0; x < heightmapWidth - 1; ++x) + holes[x, y] = true; + } + return MakeAsyncTerrainToMeshRequest(heightmapWidth, heightmapHeight, heightmapScale, heightmap, holes); + } + static public Mesh Convert(Terrain terrain) + { + var request = ConvertAsync(terrain); + request.WaitForCompletion(); + return request.GetMesh(); + } + + static public Mesh Convert(int heightmapWidth, int heightmapHeight, short[] heightmapData, Vector3 heightmapScale, int holeWidth, int holeHeight, byte[] holedata) + { + var request = ConvertAsync(heightmapWidth, heightmapHeight, heightmapData, heightmapScale, holeWidth, holeHeight, holedata); + request.WaitForCompletion(); + return request.GetMesh(); + } + } + + internal struct AsyncTerrainToMeshRequest + { + internal AsyncTerrainToMeshRequest(ComputeTerrainMeshJob job, JobHandle jobHandle) + { + m_Job = job; + m_JobHandle = jobHandle; + } + + public bool done { get { return m_JobHandle.IsCompleted; } } + public Mesh GetMesh() + { + if (!done) + return null; + + Mesh mesh = new Mesh(); + mesh.indexFormat = IndexFormat.UInt32; + mesh.SetVertices(m_Job.positions); + mesh.SetUVs(0, m_Job.uvs); + mesh.SetNormals(m_Job.normals); + mesh.SetIndices(TriangleIndicesWithoutHoles().ToArray(), MeshTopology.Triangles, 0); + + m_Job.DisposeArrays(); + + return mesh; + } + + public void WaitForCompletion() + { + m_JobHandle.Complete(); + } + + List TriangleIndicesWithoutHoles() + { + var trianglesWithoutHoles = new List((m_Job.width - 1) * (m_Job.height - 1) * 6); + for (int i = 0; i < m_Job.indices.Length; i += 3) + { + int i1 = m_Job.indices[i]; + int i2 = m_Job.indices[i + 1]; + int i3 = m_Job.indices[i + 2]; + + if (i1 != 0 && i2 != 0 && i3 != 0) + { + trianglesWithoutHoles.Add(i1); + trianglesWithoutHoles.Add(i2); + trianglesWithoutHoles.Add(i3); + } + } + + if (trianglesWithoutHoles.Count == 0) + { + trianglesWithoutHoles.Add(0); + trianglesWithoutHoles.Add(0); + trianglesWithoutHoles.Add(0); + } + + return trianglesWithoutHoles; + } + + JobHandle m_JobHandle; + ComputeTerrainMeshJob m_Job; + } + + [BurstCompile] + internal struct ComputeTerrainMeshJob : IJobParallelFor + { + [ReadOnly] + public NativeArray heightmap; + + [ReadOnly] + public NativeArray holes; + + public int width; + public int height; + public float3 heightmapScale; + + public NativeArray positions; + public NativeArray uvs; + public NativeArray normals; + + [NativeDisableParallelForRestriction] + public NativeArray indices; + + public void DisposeArrays() + { + heightmap.Dispose(); + holes.Dispose(); + positions.Dispose(); + uvs.Dispose(); + normals.Dispose(); + indices.Dispose(); + } + + public void Execute(int index) + { + int vertexIndex = index; + int x = vertexIndex % width; + int y = vertexIndex / height; + + float3 v = new float3(x, heightmap[y*width +x], y); + + positions[vertexIndex] = v * heightmapScale; + uvs[vertexIndex] = v.xz / new float2(width, height); + normals[vertexIndex] = CalculateTerrainNormal(heightmap, x, y, width, height, heightmapScale); + + if (x < width - 1 && y < height - 1) + { + int i1 = y * width + x; + int i2 = i1 + 1; + int i3 = i1 + width; + int i4 = i3 + 1; + + int faceIndex = x + y * (width - 1); + + if (!holes[faceIndex]) + { + i1 = i2 = i3 = i4 = 0; + } + + indices[6* faceIndex + 0] = i1; + indices[6* faceIndex + 1] = i4; + indices[6* faceIndex + 2] = i2; + + indices[6* faceIndex + 3] = i1; + indices[6* faceIndex + 4] = i3; + indices[6* faceIndex + 5] = i4; + } + } + + static float3 CalculateTerrainNormal(NativeArray heightmap, int x, int y, int width, int height, float3 scale) + { + float dY, dX; + + dX = SampleHeight(x - 1, y - 1, width, height, heightmap, scale.y) * -1.0F; + dX += SampleHeight(x - 1, y, width, height, heightmap, scale.y) * -2.0F; + dX += SampleHeight(x - 1, y + 1, width, height, heightmap, scale.y) * -1.0F; + dX += SampleHeight(x + 1, y - 1, width, height, heightmap, scale.y) * 1.0F; + dX += SampleHeight(x + 1, y, width, height, heightmap, scale.y) * 2.0F; + dX += SampleHeight(x + 1, y + 1, width, height, heightmap, scale.y) * 1.0F; + + dX /= scale.x; + + dY = SampleHeight(x - 1, y - 1, width, height, heightmap, scale.y) * -1.0F; + dY += SampleHeight(x, y - 1, width, height, heightmap, scale.y) * -2.0F; + dY += SampleHeight(x + 1, y - 1, width, height, heightmap, scale.y) * -1.0F; + dY += SampleHeight(x - 1, y + 1, width, height, heightmap, scale.y) * 1.0F; + dY += SampleHeight(x, y + 1, width, height, heightmap, scale.y) * 2.0F; + dY += SampleHeight(x + 1, y + 1, width, height, heightmap, scale.y) * 1.0F; + dY /= scale.z; + + // Cross Product of components of gradient reduces to + return math.normalize(new float3(-dX, 8, -dY)); + } + static float SampleHeight(int x, int y, int width, int height, NativeArray heightmap, float scale) + { + x = math.clamp(x, 0, width - 1); + y = math.clamp(y, 0, height - 1); + return heightmap[x + y* width] * scale; + } + + } + +} diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/TerrainToMesh.cs.meta b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/TerrainToMesh.cs.meta new file mode 100644 index 00000000000..f72f7c358b1 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/TerrainToMesh.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f0cd7c2492f60ae4a9e06a436208c7de +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/Utilities.meta b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/Utilities.meta new file mode 100644 index 00000000000..3a507c025ce --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/Utilities.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d87eae04416aa5b4faeeb9dc46c9c6b6 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/Utilities/BackendHelpers.cs b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/Utilities/BackendHelpers.cs new file mode 100644 index 00000000000..0257e0efb04 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/Utilities/BackendHelpers.cs @@ -0,0 +1,43 @@ +using System; + +namespace UnityEngine.Rendering.UnifiedRayTracing +{ + /// + /// Helper functions for querying the shader type and filename for a given backend. + /// + public static class BackendHelpers + { + /// + /// Builds a file path with the right extension for the given . + /// + /// Backend for which the shader will be loaded. + /// Path to the shader file, without any extension. + /// The file path. + public static string GetFileNameOfShader(RayTracingBackend backend, string fileName) + { + string postFix = backend switch + { + RayTracingBackend.Hardware => "raytrace", + RayTracingBackend.Compute => "compute", + _ => throw new ArgumentOutOfRangeException(nameof(backend), backend, null) + }; + return $"{fileName}.{postFix}"; + } + + /// + /// Returns the of shader used by the given . + /// + /// Backend for which the shader will be loaded. + /// The Type of the shader. + public static Type GetTypeOfShader(RayTracingBackend backend) + { + Type shaderType = backend switch + { + RayTracingBackend.Hardware => typeof(RayTracingShader), + RayTracingBackend.Compute => typeof(ComputeShader), + _ => throw new ArgumentOutOfRangeException(nameof(backend), backend, null) + }; + return shaderType; + } + } +} diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/Utilities/BackendHelpers.cs.meta b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/Utilities/BackendHelpers.cs.meta new file mode 100644 index 00000000000..4f9797faf57 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/Utilities/BackendHelpers.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: d3167d2685f567343836d6d5ee2e115e \ No newline at end of file diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/Utilities/BlockAllocator.cs b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/Utilities/BlockAllocator.cs new file mode 100644 index 00000000000..d18097f3b94 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/Utilities/BlockAllocator.cs @@ -0,0 +1,284 @@ +using System; +using Unity.Collections; +using Unity.Mathematics; +using UnityEngine.Assertions; + +namespace UnityEngine.Rendering.UnifiedRayTracing +{ + internal struct BlockAllocator : IDisposable + { + public struct Block + { + public int offset; + public int count; + + public static readonly Block Invalid = new Block() { offset = 0, count = 0 }; + } + + public struct Allocation + { + public int handle; + public Block block; + + public static readonly Allocation Invalid = new Allocation() { handle = -1 }; + public readonly bool valid => handle != -1; + } + + private int m_FreeElementCount; + private int m_MaxElementCount; + private NativeList m_freeBlocks; + private NativeList m_usedBlocks; + private NativeList m_freeSlots; + + public int freeElementsCount => m_FreeElementCount; + public int freeBlocks => m_freeBlocks.Length; + public int capacity => m_MaxElementCount; + public int allocatedSize => m_MaxElementCount - m_FreeElementCount; + + public void Initialize(int maxElementCounts) + { + m_MaxElementCount = maxElementCounts; + m_FreeElementCount = maxElementCounts; + + if (!m_freeBlocks.IsCreated) + m_freeBlocks = new NativeList(Allocator.Persistent); + else + m_freeBlocks.Clear(); + m_freeBlocks.Add(new Block() { offset = 0, count = m_FreeElementCount }); + + if (!m_usedBlocks.IsCreated) + m_usedBlocks = new NativeList(Allocator.Persistent); + else + m_usedBlocks.Clear(); + + if (!m_freeSlots.IsCreated) + m_freeSlots = new NativeList(Allocator.Persistent); + else + m_freeSlots.Clear(); + } + + private int CalculateGeometricGrowthCapacity(int desiredNewCapacity, int maxAllowedNewCapacity) + { + var oldCapacity = capacity; + + if (oldCapacity > maxAllowedNewCapacity - oldCapacity / 2) + { + return maxAllowedNewCapacity; // geometric growth would overflow + } + + var geometricNewCapacity = oldCapacity + oldCapacity / 2; + + if (geometricNewCapacity < desiredNewCapacity) + return desiredNewCapacity; // geometric growth would be insufficient + + else + return geometricNewCapacity; + } + + public int Grow(int newDesiredCapacity, int maxAllowedCapacity = Int32.MaxValue) + { + Debug.Assert(newDesiredCapacity > 0, "newDesiredCapacity must be positive"); + Debug.Assert(maxAllowedCapacity > 0, "maxAllowedCapacity must be positive"); + Debug.Assert(capacity < newDesiredCapacity, "newDesiredCapacity must be greater than curent capacity"); + Debug.Assert(maxAllowedCapacity >= newDesiredCapacity, "newDesiredCapacity must be smaller than maxAllowedCapacity"); + + var newCapacity = CalculateGeometricGrowthCapacity(newDesiredCapacity, maxAllowedCapacity); + var oldCapacity = m_MaxElementCount; + var addedElements = newCapacity - oldCapacity; + Debug.Assert(addedElements > 0); + + m_FreeElementCount += addedElements; + m_MaxElementCount = newCapacity; + + int blockToMerge = m_freeBlocks.Length; + m_freeBlocks.Add(new Block() { offset = oldCapacity, count = addedElements }); + + while (blockToMerge != -1) + blockToMerge = MergeBlockFrontBack(blockToMerge); + + return m_MaxElementCount; + } + + public bool GetExpectedGrowthToFitAllocation(int elementCounts, int maxAllowedCapacity, out int newCapacity) + { + newCapacity = 0; + + var additionalRequiredElements = m_freeBlocks.IsEmpty ? elementCounts : math.max(elementCounts - m_freeBlocks[m_freeBlocks.Length - 1].count, 0); + if (maxAllowedCapacity < capacity || (maxAllowedCapacity - capacity) < additionalRequiredElements) + return false; + + newCapacity = additionalRequiredElements > 0 ? CalculateGeometricGrowthCapacity(capacity + additionalRequiredElements, maxAllowedCapacity) : capacity; + return true; + } + + public Allocation GrowAndAllocate(int elementCounts, out int oldCapacity, out int newCapacity) + { + return GrowAndAllocate(elementCounts, Int32.MaxValue, out oldCapacity, out newCapacity); + } + + public Allocation GrowAndAllocate(int elementCounts, int maxAllowedCapacity, out int oldCapacity, out int newCapacity) + { + oldCapacity = capacity; + + var additionalRequiredElements = m_freeBlocks.IsEmpty ? elementCounts : math.max(elementCounts - m_freeBlocks[m_freeBlocks.Length - 1].count, 0); + if (maxAllowedCapacity < capacity || (maxAllowedCapacity - capacity) < additionalRequiredElements) + { + newCapacity = capacity; + return Allocation.Invalid; + } + + newCapacity = additionalRequiredElements > 0 ? Grow(capacity + additionalRequiredElements, maxAllowedCapacity) : capacity; + Debug.Assert(newCapacity >= oldCapacity + additionalRequiredElements); + + var alloc = Allocate(elementCounts); + Assert.IsTrue(alloc.valid); + return alloc; + } + + public void Dispose() + { + m_MaxElementCount = 0; + m_FreeElementCount = 0; + if (m_freeBlocks.IsCreated) + m_freeBlocks.Dispose(); + if (m_usedBlocks.IsCreated) + m_usedBlocks.Dispose(); + if (m_freeSlots.IsCreated) + m_freeSlots.Dispose(); + } + + public Allocation Allocate(int elementCounts) + { + if (elementCounts > m_FreeElementCount || m_freeBlocks.IsEmpty) + return Allocation.Invalid; + + int selectedBlock = -1; + int currentBlockCount = 0; + for (int b = 0; b < m_freeBlocks.Length; ++b) + { + Block block = m_freeBlocks[b]; + + //simple naive allocator, we find the smallest possible space to allocate in our blocks. + if (elementCounts <= block.count && (selectedBlock == -1 || block.count < currentBlockCount)) + { + currentBlockCount = block.count; + selectedBlock = b; + } + } + + if (selectedBlock == -1) + return Allocation.Invalid; + + Block allocationBlock = m_freeBlocks[selectedBlock]; + Block split = allocationBlock; + + split.offset += elementCounts; + split.count -= elementCounts; + allocationBlock.count = elementCounts; + + if (split.count > 0) + m_freeBlocks[selectedBlock] = split; + else + m_freeBlocks.RemoveAtSwapBack(selectedBlock); + + int allocationHandle; + if (m_freeSlots.IsEmpty) + { + allocationHandle = m_usedBlocks.Length; + m_usedBlocks.Add(allocationBlock); + } + else + { + allocationHandle = m_freeSlots[m_freeSlots.Length - 1]; + m_freeSlots.RemoveAtSwapBack(m_freeSlots.Length - 1); + m_usedBlocks[allocationHandle] = allocationBlock; + } + + m_FreeElementCount -= elementCounts; + return new Allocation() { handle = allocationHandle, block = allocationBlock }; + } + + private int MergeBlockFrontBack(int freeBlockId) + { + Block targetBlock = m_freeBlocks[freeBlockId]; + for (int i = 0; i < m_freeBlocks.Length; ++i) + { + if (i == freeBlockId) + continue; + + Block freeBlock = m_freeBlocks[i]; + bool mergeTargetBlock = false; + if (targetBlock.offset == (freeBlock.offset + freeBlock.count)) + { + freeBlock.count += targetBlock.count; + mergeTargetBlock = true; + } + else if (freeBlock.offset == (targetBlock.offset + targetBlock.count)) + { + freeBlock.offset = targetBlock.offset; + freeBlock.count += targetBlock.count; + mergeTargetBlock = true; + } + + if (mergeTargetBlock) + { + m_freeBlocks[i] = freeBlock; + m_freeBlocks.RemoveAtSwapBack(freeBlockId); + return i == m_freeBlocks.Length ? freeBlockId : i; + } + } + + return -1; + } + + public void FreeAllocation(in Allocation allocation) + { + Debug.Assert(allocation.valid, "Cannot free invalid allocation"); + + m_freeSlots.Add(allocation.handle); + m_usedBlocks[allocation.handle] = Block.Invalid; + + int blockToMerge = m_freeBlocks.Length; + m_freeBlocks.Add(allocation.block); + + while (blockToMerge != -1) + blockToMerge = MergeBlockFrontBack(blockToMerge); + + m_FreeElementCount += allocation.block.count; + } + + public Allocation[] SplitAllocation(in Allocation allocation, int count) + { + Debug.Assert(allocation.valid, "Invalid allocation"); + + var newAllocs = new Allocation[count]; + var newAllocsSize = allocation.block.count / count; + + var newBlock0 = new Block { offset = allocation.block.offset, count = newAllocsSize }; + m_usedBlocks[allocation.handle] = newBlock0; + newAllocs[0] = new Allocation() { handle = allocation.handle, block = newBlock0 }; + + for (int i = 1; i < count; ++i) + { + Block block = new Block { offset = allocation.block.offset + i * newAllocsSize, count = newAllocsSize }; + + int allocationHandle; + if (m_freeSlots.IsEmpty) + { + allocationHandle = m_usedBlocks.Length; + m_usedBlocks.Add(block); + } + else + { + allocationHandle = m_freeSlots[m_freeSlots.Length - 1]; + m_freeSlots.RemoveAtSwapBack(m_freeSlots.Length - 1); + m_usedBlocks[allocationHandle] = block; + } + + newAllocs[i] = new Allocation() { handle = allocationHandle, block = block }; + } + + return newAllocs; + } + } +} diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/Utilities/BlockAllocator.cs.meta b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/Utilities/BlockAllocator.cs.meta new file mode 100644 index 00000000000..81922fc6b81 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/Utilities/BlockAllocator.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 56a7556d9033d1f43b3825829da0505f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/Utilities/CopyBuffer.compute b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/Utilities/CopyBuffer.compute new file mode 100644 index 00000000000..3431d2f812d --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/Utilities/CopyBuffer.compute @@ -0,0 +1,24 @@ + +#define GROUP_SIZE 256 +#define ELEMENTS_PER_THREAD 8 + +StructuredBuffer _SrcBuffer; +int _SrcOffset; +RWStructuredBuffer _DstBuffer; +int _DstOffset; +int _Size; + +#pragma kernel CopyBuffer +[numthreads(GROUP_SIZE,1,1)] +void CopyBuffer(uint gidx : SV_DispatchThreadID) +{ + for (int i = 0; i < ELEMENTS_PER_THREAD; ++i) + { + int elemIndex = gidx * ELEMENTS_PER_THREAD + i; + if (elemIndex >= _Size) + return; + + uint value = _SrcBuffer[elemIndex + _SrcOffset]; + _DstBuffer[elemIndex + _DstOffset] = value; + } +} diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/Utilities/CopyBuffer.compute.meta b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/Utilities/CopyBuffer.compute.meta new file mode 100644 index 00000000000..11d24f17516 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/Utilities/CopyBuffer.compute.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 1b95b5dcf48d1914c9e1e7405c7660e3 +ComputeShaderImporter: + externalObjects: {} + userData: + assetBundleName: unifiedraytracing + assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/Utilities/GraphicsHelpers.cs b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/Utilities/GraphicsHelpers.cs new file mode 100644 index 00000000000..3842360cbbd --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/Utilities/GraphicsHelpers.cs @@ -0,0 +1,74 @@ +using Unity.Mathematics; + +namespace UnityEngine.Rendering.UnifiedRayTracing +{ + internal static class GraphicsHelpers + { + static public void CopyBuffer(ComputeShader copyShader, CommandBuffer cmd, GraphicsBuffer src, int srcOffsetInDWords, GraphicsBuffer dst, int dstOffsetInDwords, int sizeInDWords) + { + const int groupSize = 256; + const int elementsPerThread = 8; + const int maxThreadGroups = 65535; // gfx device limitation + const int maxBatchSizeInDWords = groupSize * elementsPerThread * maxThreadGroups; + + int remainingDWords = sizeInDWords; + + cmd.SetComputeBufferParam(copyShader, 0, "_SrcBuffer", src); + cmd.SetComputeBufferParam(copyShader, 0, "_DstBuffer", dst); + + while (remainingDWords > 0) + { + int batchSize = math.min(remainingDWords, maxBatchSizeInDWords); + + cmd.SetComputeIntParam(copyShader, "_SrcOffset", srcOffsetInDWords); + cmd.SetComputeIntParam(copyShader, "_DstOffset", dstOffsetInDwords); + cmd.SetComputeIntParam(copyShader, "_Size", batchSize); + + cmd.DispatchCompute(copyShader, 0, DivUp(batchSize, elementsPerThread * groupSize), 1, 1); + remainingDWords -= batchSize; + srcOffsetInDWords += batchSize; + dstOffsetInDwords += batchSize; + } + } + + static public void CopyBuffer(ComputeShader copyShader, GraphicsBuffer src, int srcOffsetInDWords, GraphicsBuffer dst, int dstOffsetInDwords, int sizeInDwords) + { + CommandBuffer cmd = new CommandBuffer(); + CopyBuffer(copyShader, cmd, src, srcOffsetInDWords, dst, dstOffsetInDwords, sizeInDwords); + Graphics.ExecuteCommandBuffer(cmd); + } + + static public bool ReallocateBuffer(ComputeShader copyShader, int oldCapacity, int newCapacity, int elementSizeInBytes, ref GraphicsBuffer buffer) + { + int bufferStrideInBytes = buffer.stride; + var newBuffer = new GraphicsBuffer(GraphicsBuffer.Target.Structured, (int)((long)newCapacity * elementSizeInBytes / bufferStrideInBytes), bufferStrideInBytes); + if (!newBuffer.IsValid()) + return false; + + CopyBuffer(copyShader, buffer, 0, newBuffer, 0, (int)((long)oldCapacity * elementSizeInBytes / 4)); + buffer.Dispose(); + buffer = newBuffer; + + return true; + } + + public static long MaxGraphicsBufferSizeInBytes => SystemInfo.maxGraphicsBufferSize; + public static float MaxGraphicsBufferSizeInGigaBytes => MaxGraphicsBufferSizeInBytes / 1024f / 1024f / 1024f; + static public int DivUp(int x, int y) => (x + y - 1) / y; + static public int DivUp(int x, uint y) => (x + (int)y - 1) / (int)y; + static public uint DivUp(uint x, uint y) => (x + y - 1) / y; + static public uint3 DivUp(uint3 x, uint3 y) => (x + y - 1) / y; + + /// + /// Immediately executes the pending work on the command buffer. + /// This is useful for preventing TDR, which can happen when scheduling too much work in one CommandBuffer. + /// + /// Command buffer to execute. + static public void Flush(CommandBuffer cmd) + { + Graphics.ExecuteCommandBuffer(cmd); + cmd.Clear(); + GL.Flush(); + } + } +} diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/Utilities/GraphicsHelpers.cs.meta b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/Utilities/GraphicsHelpers.cs.meta new file mode 100644 index 00000000000..52877874abb --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/Utilities/GraphicsHelpers.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: bfd0ff47a7084174ba1c6b5a11903a1b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/Utilities/PersistentGPUArray.cs b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/Utilities/PersistentGPUArray.cs new file mode 100644 index 00000000000..9c9e8544981 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/Utilities/PersistentGPUArray.cs @@ -0,0 +1,163 @@ +using System; +using System.Collections; +using System.Runtime.InteropServices; +using Unity.Collections; +using UnityEngine.Assertions; + +namespace UnityEngine.Rendering.UnifiedRayTracing +{ + internal sealed class PersistentGpuArray : IDisposable + where Tstruct : struct + { + BlockAllocator m_SlotAllocator; + ComputeBuffer m_GpuBuffer; + NativeArray m_CpuList; + BitArray m_Updates; + bool m_gpuBufferDirty = true; + int m_ElementCount = 0; + public int elementCount { get { return m_ElementCount; } } + + public PersistentGpuArray(int initialSize) + { + m_SlotAllocator.Initialize(initialSize); + m_GpuBuffer = new ComputeBuffer(initialSize, Marshal.SizeOf()); + m_CpuList = new NativeArray(initialSize, Allocator.Persistent); + m_Updates = new BitArray(initialSize); + m_ElementCount = 0; + } + + public void Dispose() + { + m_ElementCount = 0; + m_SlotAllocator.Dispose(); + m_GpuBuffer.Dispose(); + m_CpuList.Dispose(); + } + + public BlockAllocator.Allocation Add(Tstruct element) + { + m_ElementCount++; + var slotAllocation = m_SlotAllocator.Allocate(1); + if (!slotAllocation.valid) + { + Grow(); + slotAllocation = m_SlotAllocator.Allocate(1); + Assert.IsTrue(slotAllocation.valid); + } + m_CpuList[slotAllocation.block.offset] = element; + m_Updates[slotAllocation.block.offset] = true; + m_gpuBufferDirty = true; + + return slotAllocation; + } + + public BlockAllocator.Allocation[] Add(int elementCount) + { + m_ElementCount+= elementCount; + var slotAllocation = m_SlotAllocator.Allocate(elementCount); + if (!slotAllocation.valid) + { + Grow(); + slotAllocation = m_SlotAllocator.Allocate(elementCount); + Assert.IsTrue(slotAllocation.valid); + } + + return m_SlotAllocator.SplitAllocation(slotAllocation, elementCount); + } + + + public void Remove(BlockAllocator.Allocation allocation) + { + m_ElementCount--; + m_SlotAllocator.FreeAllocation(allocation); + } + + public void Clear() + { + m_ElementCount = 0; + var currentCapacity = m_SlotAllocator.capacity; + m_SlotAllocator.Dispose(); + m_SlotAllocator = new BlockAllocator(); + m_SlotAllocator.Initialize(currentCapacity); + m_Updates = new BitArray(currentCapacity); + m_gpuBufferDirty = false; + } + + public void Set(BlockAllocator.Allocation allocation, Tstruct element) + { + m_CpuList[allocation.block.offset] = element; + m_Updates[allocation.block.offset] = true; + m_gpuBufferDirty = true; + } + + public Tstruct Get(BlockAllocator.Allocation allocation) + { + return m_CpuList[allocation.block.offset]; + } + + public void ModifyForEach(Func lambda) + { + for (int i = 0; i < m_CpuList.Length; ++i) + { + m_CpuList[i] = lambda(m_CpuList[i]); + m_Updates[i] = true; + } + m_gpuBufferDirty = true; + } + + // Note: this should ideally be used with only one command buffer. If used with more than one cmd buffers, the order of their execution is important. + public ComputeBuffer GetGpuBuffer(CommandBuffer cmd) + { + if (m_gpuBufferDirty) + { + int copyStartIndex = -1; + for (int i = 0; i < m_Updates.Length; ++i) + { + if (m_Updates[i]) + { + if (copyStartIndex == -1) + copyStartIndex = i; + + m_Updates[i] = false; + } + else if (copyStartIndex != -1) + { + int copyEndIndex = i; + cmd.SetBufferData(m_GpuBuffer, m_CpuList, copyStartIndex, copyStartIndex, copyEndIndex - copyStartIndex); + copyStartIndex = -1; + } + } + + if (copyStartIndex != -1) + { + int copyEndIndex = m_Updates.Length; + cmd.SetBufferData(m_GpuBuffer, m_CpuList, copyStartIndex, copyStartIndex, copyEndIndex - copyStartIndex); + } + + m_gpuBufferDirty = false; + } + + return m_GpuBuffer; + } + + private void Grow() + { + var oldCapacity = m_SlotAllocator.capacity; + m_SlotAllocator.Grow(m_SlotAllocator.capacity + 1); + + m_GpuBuffer.Dispose(); + m_GpuBuffer = new ComputeBuffer(m_SlotAllocator.capacity, Marshal.SizeOf()); + + var oldList = m_CpuList; + m_CpuList = new NativeArray(m_SlotAllocator.capacity, Allocator.Persistent); + NativeArray.Copy(oldList, m_CpuList, oldCapacity); + oldList.Dispose(); + + var oldUpdates = m_Updates; + m_Updates = new BitArray(m_SlotAllocator.capacity); + for (int i = 0; i < oldCapacity; ++i) + m_Updates[i] = oldUpdates[i]; + } + } +} + diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/Utilities/PersistentGPUArray.cs.meta b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/Utilities/PersistentGPUArray.cs.meta new file mode 100644 index 00000000000..7061f2ca836 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/Utilities/PersistentGPUArray.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a6af8b249ef94724681ddfb4d682f0b7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/Utilities/Utils.cs b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/Utilities/Utils.cs new file mode 100644 index 00000000000..c608dd51814 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/Utilities/Utils.cs @@ -0,0 +1,50 @@ + +using System; +using System.Diagnostics; +using UnityEngine.UIElements; + +namespace UnityEngine.Rendering.UnifiedRayTracing +{ + internal static class Utils + { + public static void Destroy(UnityEngine.Object obj) + { + if (obj != null) + { +#if UNITY_EDITOR + if (Application.isPlaying && !UnityEditor.EditorApplication.isPaused) + UnityEngine.Object.Destroy(obj); + else + UnityEngine.Object.DestroyImmediate(obj); +#else + UnityEngine.Object.Destroy(obj); +#endif + } + } + + [Conditional("UNITY_ASSERTIONS")] + public static void CheckArgIsNotNull(System.Object obj, string argName) + { + if (obj == null) + throw new ArgumentNullException(argName); + } + + [Conditional("UNITY_ASSERTIONS")] + public static void CheckArg(bool condition, string message) + { + if (!condition) + throw new ArgumentException(message); + } + + [Conditional("UNITY_ASSERTIONS")] + public static void CheckArgRange(T value, T minIncluded, T maxExcluded, string argName) where T: IComparable + { + if (value.CompareTo(minIncluded) < 0 || value.CompareTo(maxExcluded) >= 0) + { + var message = $"{argName}={value}, it must be in the range [{minIncluded}, {maxExcluded}["; + throw new ArgumentOutOfRangeException(argName, message); + } + } + } +} + diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/Utilities/Utils.cs.meta b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/Utilities/Utils.cs.meta new file mode 100644 index 00000000000..b1c545e20f0 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/Utilities/Utils.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 8787039c0fe98374a9815ac59d9878ef \ No newline at end of file diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/CommonStructs.hlsl b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/CommonStructs.hlsl new file mode 100644 index 00000000000..289ff19cb8d --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/CommonStructs.hlsl @@ -0,0 +1,71 @@ +#ifndef _UNIFIEDRAYTRACING_COMMONSTRUCTS_HLSL_ +#define _UNIFIEDRAYTRACING_COMMONSTRUCTS_HLSL_ + +namespace UnifiedRT { + +static const uint kRayFlagNone = 0x0; +static const uint kRayFlagForceOpaque = 0x01; +static const uint kRayFlagForceNonOpaque = 0x02; +static const uint kRayFlagAcceptFirstHitAndEndSearch = 0x04; +static const uint kRayFlagSkipClosestHit = 0x08; +static const uint kRayFlagCullBackFacingTriangles = 0x10; +static const uint kRayFlagCullFrontFacingTriangles = 0x20; +static const uint kRayFlagCullOpaque = 0x40; +static const uint kRayFlagCullNonOpaque = 0x80; + +static const uint kIgnoreHit = 0; +static const uint kAcceptHit = 1; +static const uint kAcceptHitAndEndSearch = 2; + +struct Ray +{ + float3 origin; + float tMin; + float3 direction; + float tMax; +}; + +struct Hit +{ + uint instanceID; + uint primitiveIndex; + float2 uvBarycentrics; + float hitDistance; + bool isFrontFace; + + bool IsValid() + { + return instanceID != -1; + } + + static Hit Invalid() + { + Hit hit = (Hit)0; + hit.instanceID = -1; + return hit; + } +}; + + +struct InstanceData +{ + float4x4 localToWorld; + float4x4 previousLocalToWorld; + float4x4 localToWorldNormals; + uint renderingLayerMask; + uint instanceMask; + uint userMaterialID; + uint geometryIndex; +}; + +struct DispatchInfo +{ + uint3 dispatchThreadID; + uint localThreadIndex; + uint3 dispatchDimensionsInThreads; + uint globalThreadIndex; +}; + +} // namespace UnifiedRT + +#endif // _UNIFIEDRAYTRACING_COMMONSTRUCTS_HLSL_ diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/CommonStructs.hlsl.meta b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/CommonStructs.hlsl.meta new file mode 100644 index 00000000000..3cb8c001793 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/CommonStructs.hlsl.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 7d31f2834b1e0db45bc5e8596c3908cf diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute.meta b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute.meta new file mode 100644 index 00000000000..66daae419d7 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4ecd3fe6796a2ca4aa0c3b180133d9d9 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/BLASPositionsPool.cs b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/BLASPositionsPool.cs new file mode 100644 index 00000000000..17dc2ced5e1 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/BLASPositionsPool.cs @@ -0,0 +1,98 @@ +using System; +using Unity.Collections.LowLevel.Unsafe; +using Unity.Mathematics; +using UnityEngine.Assertions; +using UnityEngine.Rendering.RadeonRays; + +namespace UnityEngine.Rendering.UnifiedRayTracing +{ + internal struct VertexBufferChunk + { + public GraphicsBuffer vertices; + public int verticesStartOffset; // in DWORD + public uint vertexCount; + public uint vertexStride; // in DWORD + public int baseVertex; + } + + internal sealed class BLASPositionsPool : IDisposable + { + public BLASPositionsPool(ComputeShader copyPositionsShader, ComputeShader copyShader) + { + m_VerticesBuffer = new GraphicsBuffer(GraphicsBuffer.Target.Structured, intialVertexCount * VertexSizeInDwords, 4); + m_VerticesAllocator = new BlockAllocator(); + m_VerticesAllocator.Initialize(intialVertexCount); + + m_CopyPositionsShader = copyPositionsShader; + m_CopyVerticesKernel = m_CopyPositionsShader.FindKernel("CopyVertexBuffer"); + m_CopyShader = copyShader; + } + + public void Dispose() + { + m_VerticesBuffer.Dispose(); + m_VerticesAllocator.Dispose(); + } + + public const int VertexSizeInDwords = 3; + + public GraphicsBuffer VertexBuffer { get { return m_VerticesBuffer; } } + + public void Clear() + { + m_VerticesBuffer.Dispose(); + m_VerticesBuffer = new GraphicsBuffer(GraphicsBuffer.Target.Structured, intialVertexCount * VertexSizeInDwords, 4); + m_VerticesAllocator.Dispose(); + m_VerticesAllocator = new BlockAllocator(); + m_VerticesAllocator.Initialize(intialVertexCount); + } + + const int intialVertexCount = 1000; + + GraphicsBuffer m_VerticesBuffer; + BlockAllocator m_VerticesAllocator; + readonly ComputeShader m_CopyPositionsShader; + readonly int m_CopyVerticesKernel; + readonly ComputeShader m_CopyShader; + const uint kItemsPerWorkgroup = 48u * 128u; + + public void Add(VertexBufferChunk info, out BlockAllocator.Allocation verticesAllocation) + { + verticesAllocation = m_VerticesAllocator.Allocate((int)info.vertexCount); + if (!verticesAllocation.valid) + { + int oldCapacity = m_VerticesAllocator.capacity; + + if (!m_VerticesAllocator.GetExpectedGrowthToFitAllocation((int)info.vertexCount, (int)(GraphicsHelpers.MaxGraphicsBufferSizeInBytes / UnsafeUtility.SizeOf()), out int newCapacity)) + throw new UnifiedRayTracingException($"Can't allocate a GraphicsBuffer bigger than {GraphicsHelpers.MaxGraphicsBufferSizeInGigaBytes:F1}GB", UnifiedRayTracingError.GraphicsBufferAllocationFailed); + + if (!GraphicsHelpers.ReallocateBuffer(m_CopyShader, oldCapacity, newCapacity, UnsafeUtility.SizeOf(), ref m_VerticesBuffer)) + throw new UnifiedRayTracingException($"Failed to allocate buffer of size: {newCapacity * UnsafeUtility.SizeOf()} bytes", UnifiedRayTracingError.GraphicsBufferAllocationFailed); + + verticesAllocation = m_VerticesAllocator.GrowAndAllocate((int)info.vertexCount, (int)(GraphicsHelpers.MaxGraphicsBufferSizeInBytes / UnsafeUtility.SizeOf()), out oldCapacity, out newCapacity); + Debug.Assert(verticesAllocation.valid); + } + + var cmd = new CommandBuffer(); + cmd.SetComputeIntParam(m_CopyPositionsShader, "_InputPosBufferCount", (int)info.vertexCount); + cmd.SetComputeIntParam(m_CopyPositionsShader, "_InputPosBufferOffset", info.verticesStartOffset); + cmd.SetComputeIntParam(m_CopyPositionsShader, "_InputBaseVertex", info.baseVertex); + cmd.SetComputeIntParam(m_CopyPositionsShader, "_InputPosBufferStride", (int)info.vertexStride); + cmd.SetComputeIntParam(m_CopyPositionsShader, "_OutputPosBufferOffset", verticesAllocation.block.offset * VertexSizeInDwords); + cmd.SetComputeBufferParam(m_CopyPositionsShader, m_CopyVerticesKernel, "_InputPosBuffer", info.vertices); + cmd.SetComputeBufferParam(m_CopyPositionsShader, m_CopyVerticesKernel, "_OutputPosBuffer", m_VerticesBuffer); + cmd.DispatchCompute(m_CopyPositionsShader, m_CopyVerticesKernel, (int)Common.CeilDivide(info.vertexCount, kItemsPerWorkgroup), 1, 1); + + Graphics.ExecuteCommandBuffer(cmd); + } + + public void Remove(ref BlockAllocator.Allocation verticesAllocation) + { + m_VerticesAllocator.FreeAllocation(verticesAllocation); + + verticesAllocation = BlockAllocator.Allocation.Invalid; + } + } +} + + diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/BLASPositionsPool.cs.meta b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/BLASPositionsPool.cs.meta new file mode 100644 index 00000000000..e0a61b8d278 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/BLASPositionsPool.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: e633faaa7fc13ca42afbbd3359354b1a \ No newline at end of file diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/ComputeRayTracingAccelStruct.cs b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/ComputeRayTracingAccelStruct.cs new file mode 100644 index 00000000000..1680fd1588f --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/ComputeRayTracingAccelStruct.cs @@ -0,0 +1,748 @@ +using System; +using System.Collections.Generic; +using Unity.Mathematics; +using UnityEngine.Assertions; +using UnityEngine.Rendering.RadeonRays; +using UnityEditor; +using System.Data; + + + + +#if UNITY_EDITOR +using UnityEditor.Embree; +#endif + +namespace UnityEngine.Rendering.UnifiedRayTracing +{ + internal class ComputeRayTracingAccelStruct : IRayTracingAccelStruct + { + internal ComputeRayTracingAccelStruct( + AccelerationStructureOptions options, RayTracingResources resources, + ReferenceCounter counter, int blasBufferInitialSizeBytes = 64 * 1024 * 1024) + { + m_CopyShader = resources.copyBuffer; + + RadeonRaysShaders shaders = new RadeonRaysShaders(); + shaders.bitHistogram = resources.bitHistogram; + shaders.blockReducePart = resources.blockReducePart; + shaders.blockScan = resources.blockScan; + shaders.buildHlbvh = resources.buildHlbvh; + shaders.restructureBvh = resources.restructureBvh; + shaders.scatter = resources.scatter; + m_RadeonRaysAPI = new RadeonRaysAPI(shaders); + + m_BuildFlags = options.buildFlags; + + #if UNITY_EDITOR + m_UseCpuBuild = options.useCPUBuild; + #endif + + m_Blases = new Dictionary<(int mesh, int subMeshIndex), MeshBlas>(); + + var blasNodeCount = blasBufferInitialSizeBytes / RadeonRaysAPI.BvhInternalNodeSizeInBytes(); + m_BlasBuffer = new GraphicsBuffer(GraphicsBuffer.Target.Structured, blasNodeCount, RadeonRaysAPI.BvhInternalNodeSizeInBytes()); + m_BlasLeavesBuffer = new GraphicsBuffer(GraphicsBuffer.Target.Structured, blasNodeCount, RadeonRaysAPI.BvhLeafNodeSizeInBytes()); + m_BlasPositions = new BLASPositionsPool(resources.copyPositions, resources.copyBuffer); + + m_BlasAllocator = new BlockAllocator(); + m_BlasAllocator.Initialize(blasNodeCount); + + m_BlasLeavesAllocator = new BlockAllocator(); + m_BlasLeavesAllocator.Initialize(blasNodeCount); + + m_Counter = counter; + m_Counter.Inc(); + } + + internal GraphicsBuffer topLevelBvhBuffer { get { return m_TopLevelAccelStruct?.topLevelBvh; } } + internal GraphicsBuffer bottomLevelBvhBuffer { get { return m_TopLevelAccelStruct?.bottomLevelBvhs; } } + internal GraphicsBuffer instanceInfoBuffer { get { return m_TopLevelAccelStruct?.instanceInfos; } } + + public void Dispose() + { + foreach (var blas in m_Blases.Values) + { + if (blas.buildInfo.triangleIndices != null) + blas.buildInfo.triangleIndices.Dispose(); + } + + m_Counter.Dec(); + m_RadeonRaysAPI.Dispose(); + m_BlasBuffer.Dispose(); + m_BlasLeavesBuffer.Dispose(); + m_BlasPositions.Dispose(); + m_BlasAllocator.Dispose(); + m_BlasLeavesAllocator.Dispose(); + m_TopLevelAccelStruct?.Dispose(); + } + + public int AddInstance(MeshInstanceDesc meshInstance) + { + Utils.CheckArgIsNotNull(meshInstance.mesh, "meshInstance.mesh"); + Utils.CheckArg(meshInstance.mesh.HasVertexAttribute(VertexAttribute.Position), "Cant use a mesh buffer that has no positions."); + Utils.CheckArgRange(meshInstance.subMeshIndex, 0, meshInstance.mesh.subMeshCount, "meshInstance.subMeshIndex"); + + var blas = GetOrAllocateMeshBlas(meshInstance.mesh, meshInstance.subMeshIndex); + blas.IncRef(); + + FreeTopLevelAccelStruct(); + + int handle = NewHandle(); + m_RadeonInstances.Add(handle, new RadeonRaysInstance + { + geomKey = (meshInstance.mesh.GetHashCode(), meshInstance.subMeshIndex), + blas = blas, + instanceMask = meshInstance.mask, + triangleCullingEnabled = meshInstance.enableTriangleCulling, + invertTriangleCulling = meshInstance.frontTriangleCounterClockwise, + userInstanceID = meshInstance.instanceID == 0xFFFFFFFF ? (uint)handle : meshInstance.instanceID, + opaqueGeometry = meshInstance.opaqueGeometry, + localToWorldTransform = ConvertTranform(meshInstance.localToWorldMatrix) + }); + + return handle; + } + + public void RemoveInstance(int instanceHandle) + { + CheckInstanceHandleIsValid(instanceHandle); + + ReleaseHandle(instanceHandle); + + m_RadeonInstances.Remove(instanceHandle, out RadeonRaysInstance entry); + var meshBlas = entry.blas; + meshBlas.DecRef(); + if (meshBlas.IsUnreferenced()) + DeleteMeshBlas(entry.geomKey, meshBlas); + + FreeTopLevelAccelStruct(); + } + + public void ClearInstances() + { + m_FreeHandles.Clear(); + m_RadeonInstances.Clear(); + foreach (var blas in m_Blases.Values) + { + if (blas.buildInfo.triangleIndices != null) + blas.buildInfo.triangleIndices.Dispose(); + } + + m_Blases.Clear(); + m_BlasPositions.Clear(); + var currentCapacity = m_BlasAllocator.capacity; + m_BlasAllocator.Dispose(); + m_BlasAllocator = new BlockAllocator(); + m_BlasAllocator.Initialize(currentCapacity); + currentCapacity = m_BlasLeavesAllocator.capacity; + m_BlasLeavesAllocator.Dispose(); + m_BlasLeavesAllocator = new BlockAllocator(); + m_BlasLeavesAllocator.Initialize(currentCapacity); + + FreeTopLevelAccelStruct(); + } + + public void UpdateInstanceTransform(int instanceHandle, Matrix4x4 localToWorldMatrix) + { + CheckInstanceHandleIsValid(instanceHandle); + + m_RadeonInstances[instanceHandle].localToWorldTransform = ConvertTranform(localToWorldMatrix); + FreeTopLevelAccelStruct(); + } + + public void UpdateInstanceID(int instanceHandle, uint instanceID) + { + CheckInstanceHandleIsValid(instanceHandle); + + m_RadeonInstances[instanceHandle].userInstanceID = instanceID; + FreeTopLevelAccelStruct(); + } + + public void UpdateInstanceMask(int instanceHandle, uint mask) + { + CheckInstanceHandleIsValid(instanceHandle); + + m_RadeonInstances[instanceHandle].instanceMask = mask; + FreeTopLevelAccelStruct(); + } + + public void Build(CommandBuffer cmd, GraphicsBuffer scratchBuffer) + { + Utils.CheckArgIsNotNull(cmd, nameof(cmd)); + + var requiredScratchSize = GetBuildScratchBufferRequiredSizeInBytes(); + if (requiredScratchSize > 0) + { + Utils.CheckArgIsNotNull(scratchBuffer, nameof(scratchBuffer)); + Utils.CheckArg((ulong)(scratchBuffer.count * scratchBuffer.stride) >= requiredScratchSize, "scratchBuffer size is too small"); + Utils.CheckArg(scratchBuffer.stride == 4, "scratchBuffer stride must be 4"); + } + + if (m_TopLevelAccelStruct != null) + return; + + CreateBvh(cmd, scratchBuffer); + } + + public ulong GetBuildScratchBufferRequiredSizeInBytes() + { + return GetBvhBuildScratchBufferSizeInDwords() * 4; + } + + private void FreeTopLevelAccelStruct() + { + m_TopLevelAccelStruct?.Dispose(); + m_TopLevelAccelStruct = null; + } + + private MeshBlas GetOrAllocateMeshBlas(Mesh mesh, int subMeshIndex) + { + MeshBlas blas; + if (m_Blases.TryGetValue((mesh.GetHashCode(), subMeshIndex), out blas)) + return blas; + + blas = new MeshBlas(); + AllocateBlas(mesh, subMeshIndex, blas); + + m_Blases[(mesh.GetHashCode(), subMeshIndex)] = blas; + + return blas; + } + + // throws UnifiedRayTracingException + void AllocateBlas(Mesh mesh, int submeshIndex, MeshBlas blas) + { + blas.blasVertices = BlockAllocator.Allocation.Invalid; + blas.bvhAlloc = BlockAllocator.Allocation.Invalid; + blas.bvhLeavesAlloc = BlockAllocator.Allocation.Invalid; + + var bvhNodeSizeInDwords = RadeonRaysAPI.BvhInternalNodeSizeInDwords(); + + mesh.indexBufferTarget |= GraphicsBuffer.Target.Raw; + mesh.vertexBufferTarget |= GraphicsBuffer.Target.Raw; + SubMeshDescriptor submeshDescriptor = mesh.GetSubMesh(submeshIndex); + using var vertexBuffer = LoadPositionBuffer(mesh, out int stride, out int offset); + + GraphicsBuffer indexBuffer = null; + #if UNITY_EDITOR + if (!m_UseCpuBuild) + #endif + indexBuffer = LoadIndexBuffer(mesh); + + var vertexBufferDesc = new VertexBufferChunk(); + vertexBufferDesc.vertices = vertexBuffer; + vertexBufferDesc.verticesStartOffset = offset; + vertexBufferDesc.baseVertex = submeshDescriptor.baseVertex + submeshDescriptor.firstVertex; + vertexBufferDesc.vertexCount = (uint)submeshDescriptor.vertexCount; + vertexBufferDesc.vertexStride = (uint)stride; + m_BlasPositions.Add(vertexBufferDesc, out blas.blasVertices); + + var meshBuildInfo = new MeshBuildInfo(); + meshBuildInfo.vertices = m_BlasPositions.VertexBuffer; + meshBuildInfo.verticesStartOffset = blas.blasVertices.block.offset * BLASPositionsPool.VertexSizeInDwords; + meshBuildInfo.baseVertex = 0; + meshBuildInfo.triangleIndices = indexBuffer; + meshBuildInfo.vertexCount = (uint)blas.blasVertices.block.count; + meshBuildInfo.triangleCount = (uint)submeshDescriptor.indexCount / 3; + meshBuildInfo.indicesStartOffset = submeshDescriptor.indexStart; + meshBuildInfo.baseIndex = -submeshDescriptor.firstVertex; + meshBuildInfo.indexFormat = mesh.indexFormat == IndexFormat.UInt32 ? RadeonRays.IndexFormat.Int32 : RadeonRays.IndexFormat.Int16; + meshBuildInfo.vertexStride = 3; + blas.buildInfo = meshBuildInfo; + + #if UNITY_EDITOR + if (m_UseCpuBuild) + { + blas.indicesForCpuBuild = new List(); + mesh.GetTriangles(blas.indicesForCpuBuild, submeshIndex, false); + blas.baseIndexForCpuBuild = -submeshDescriptor.firstVertex; + blas.verticesForCpuBuild = new List(); + mesh.GetVertices(blas.verticesForCpuBuild); + blas.bvhAlloc = BlockAllocator.Allocation.Invalid; + } + else + #endif + { + try + { + var requirements = m_RadeonRaysAPI.GetMeshBuildMemoryRequirements(meshBuildInfo, ConvertFlagsToGpuBuild(m_BuildFlags)); + var allocationNodeCount = (ulong)(requirements.bvhSizeInDwords / (ulong)bvhNodeSizeInDwords); + if (allocationNodeCount > int.MaxValue) + throw new UnifiedRayTracingException($"Can't allocate a GraphicsBuffer bigger than {GraphicsHelpers.MaxGraphicsBufferSizeInGigaBytes:F1}GB", UnifiedRayTracingError.GraphicsBufferAllocationFailed); + + blas.bvhAlloc = AllocateBlasInternalNodes((int)allocationNodeCount); + blas.bvhLeavesAlloc = AllocateBlasLeafNodes((int)meshBuildInfo.triangleCount); + } + catch (UnifiedRayTracingException) + { + if (blas.blasVertices.valid) + m_BlasPositions.Remove(ref blas.blasVertices); + + if (blas.bvhAlloc.valid) + m_BlasAllocator.FreeAllocation(blas.bvhAlloc); + + if (blas.bvhLeavesAlloc.valid) + m_BlasAllocator.FreeAllocation(blas.bvhLeavesAlloc); + + throw; + } + } + } + + private GraphicsBuffer LoadIndexBuffer(Mesh mesh) + { + Debug.Assert((mesh.indexBufferTarget & GraphicsBuffer.Target.Raw) != 0 || (mesh.GetIndices(0) != null && mesh.GetIndices(0).Length != 0), + "Cant use a mesh buffer that is not raw and has no CPU index information."); + + return mesh.GetIndexBuffer(); + } + + GraphicsBuffer LoadPositionBuffer(Mesh mesh, out int stride, out int offset) + { + VertexAttribute attribute = VertexAttribute.Position; + Debug.Assert(mesh.HasVertexAttribute(attribute), "Cant use a mesh buffer that has no positions."); + + int stream = mesh.GetVertexAttributeStream(attribute); + stride = mesh.GetVertexBufferStride(stream) / 4; + offset = mesh.GetVertexAttributeOffset(attribute) / 4; + return mesh.GetVertexBuffer(stream); + } + + private void DeleteMeshBlas((int mesh, int subMeshIndex) geomKey, MeshBlas blas) + { + m_BlasAllocator.FreeAllocation(blas.bvhAlloc); + blas.bvhAlloc = BlockAllocator.Allocation.Invalid; + m_BlasLeavesAllocator.FreeAllocation(blas.bvhLeavesAlloc); + blas.bvhLeavesAlloc = BlockAllocator.Allocation.Invalid; + + m_BlasPositions.Remove(ref blas.blasVertices); + + if (blas.buildInfo.triangleIndices != null) + blas.buildInfo.triangleIndices.Dispose(); + + m_Blases.Remove(geomKey); + } + + private ulong GetBvhBuildScratchBufferSizeInDwords() + { + #if UNITY_EDITOR + if (m_UseCpuBuild) + return 0; + #endif + + var bvhNodeSizeInDwords = RadeonRaysAPI.BvhInternalNodeSizeInDwords(); + ulong scratchBufferSize = 0; + + foreach (var meshBlas in m_Blases) + { + if (meshBlas.Value.bvhBuilt) + continue; + + var requirements = m_RadeonRaysAPI.GetMeshBuildMemoryRequirements(meshBlas.Value.buildInfo, ConvertFlagsToGpuBuild(m_BuildFlags)); + Assert.AreEqual(requirements.bvhSizeInDwords / (ulong)bvhNodeSizeInDwords, (ulong)meshBlas.Value.bvhAlloc.block.count); + scratchBufferSize = math.max(scratchBufferSize, requirements.buildScratchSizeInDwords); + } + + var topLevelScratchSize = m_RadeonRaysAPI.GetSceneBuildMemoryRequirements((uint)m_RadeonInstances.Count).buildScratchSizeInDwords; + scratchBufferSize = math.max(scratchBufferSize, topLevelScratchSize); + scratchBufferSize = math.max(4, scratchBufferSize); + + return scratchBufferSize; + } + + private void CreateBvh(CommandBuffer cmd, GraphicsBuffer scratchBuffer) + { + BuildMissingBottomLevelAccelStructs(cmd, scratchBuffer); + BuildTopLevelAccelStruct(cmd, scratchBuffer); + } + + private void BuildMissingBottomLevelAccelStructs(CommandBuffer cmd, GraphicsBuffer scratchBuffer) + { + foreach (var meshBlas in m_Blases.Values) + { + if (meshBlas.bvhBuilt) + continue; + + meshBlas.buildInfo.vertices = m_BlasPositions.VertexBuffer; + + #if UNITY_EDITOR + if (m_UseCpuBuild) + { + CpuBuildForBottomLevelAccelStruct(cmd, meshBlas); + } + else + #endif + { + var blasDesc = new BottomLevelLevelAccelStruct(){ + bvh = m_BlasBuffer, + bvhOffset = (uint)meshBlas.bvhAlloc.block.offset, + bvhLeaves = m_BlasLeavesBuffer, + bvhLeavesOffset = (uint)meshBlas.bvhLeavesAlloc.block.offset, + }; + + m_RadeonRaysAPI.BuildMeshAccelStruct( + cmd, + meshBlas.buildInfo, ConvertFlagsToGpuBuild(m_BuildFlags), + scratchBuffer, in blasDesc); + + meshBlas.buildInfo.triangleIndices.Dispose(); + meshBlas.buildInfo.triangleIndices = null; + } + + meshBlas.bvhBuilt = true; + } + + } + + private void BuildTopLevelAccelStruct(CommandBuffer cmd, GraphicsBuffer scratchBuffer) + { + var radeonRaysInstances = new RadeonRays.Instance[m_RadeonInstances.Count]; + int i = 0; + foreach (var instance in m_RadeonInstances.Values) + { + radeonRaysInstances[i].meshAccelStructOffset = (uint)instance.blas.bvhAlloc.block.offset; + radeonRaysInstances[i].localToWorldTransform = instance.localToWorldTransform; + radeonRaysInstances[i].instanceMask = instance.instanceMask; + radeonRaysInstances[i].vertexOffset = (uint)instance.blas.blasVertices.block.offset * BLASPositionsPool.VertexSizeInDwords; + radeonRaysInstances[i].meshAccelStructLeavesOffset = (uint)instance.blas.bvhLeavesAlloc.block.offset; + radeonRaysInstances[i].triangleCullingEnabled = instance.triangleCullingEnabled; + radeonRaysInstances[i].invertTriangleCulling = instance.invertTriangleCulling; + radeonRaysInstances[i].userInstanceID = instance.userInstanceID; + radeonRaysInstances[i].isOpaque = instance.opaqueGeometry; + i++; + } + + m_TopLevelAccelStruct?.Dispose(); + + #if UNITY_EDITOR + if (m_UseCpuBuild) + m_TopLevelAccelStruct = CpuBuildForTopLevelAccelStruct(cmd, radeonRaysInstances); + else + #endif + m_TopLevelAccelStruct = m_RadeonRaysAPI.BuildSceneAccelStruct(cmd, m_BlasBuffer, radeonRaysInstances, scratchBuffer); + } + +#if UNITY_EDITOR + void CpuBuildForBottomLevelAccelStruct(CommandBuffer cmd, MeshBlas blas) + { + var vertices = blas.verticesForCpuBuild; + var indices = blas.indicesForCpuBuild; + + var prims = new GpuBvhPrimitiveDescriptor[blas.buildInfo.triangleCount]; + for (int i = 0; i < blas.buildInfo.triangleCount; ++i) + { + var triangleIndices = GetFaceIndices(indices, i); + var triangle = GetTriangle(vertices, triangleIndices); + + AABB aabb = new AABB(); + aabb.Encapsulate(triangle.v0); + aabb.Encapsulate(triangle.v1); + aabb.Encapsulate(triangle.v2); + + prims[i].primID = (uint)i; + prims[i].lowerBound = aabb.Min; + prims[i].upperBound = aabb.Max; + } + + blas.indicesForCpuBuild = null; + blas.verticesForCpuBuild = null; + + var options = ConvertFlagsToCpuBuild(m_BuildFlags, false); + var bvhBlob = GpuBvh.Build(options, prims); + var internalNodeCount = bvhBlob[0]; + var leafNodeCount = bvhBlob[1]; + var bvhSizeInDwords = RadeonRaysAPI.BvhInternalNodeSizeInDwords() * ((int)internalNodeCount + 1); + var bvhLeavesSizeInDwords = bvhBlob.Length - bvhSizeInDwords; + + blas.bvhAlloc = BlockAllocator.Allocation.Invalid; + try + { + blas.bvhAlloc = AllocateBlasInternalNodes((int)internalNodeCount + 1); + blas.bvhLeavesAlloc = AllocateBlasLeafNodes((int)leafNodeCount); + } + catch (UnifiedRayTracingException) + { + if (blas.bvhAlloc.valid) + m_BlasAllocator.FreeAllocation(blas.bvhAlloc); + + throw; + } + // Fill triangle indices in leaf nodes. + int leafOffset = bvhSizeInDwords; + for (int i = 0; i < leafNodeCount; ++i) + { + var triangleIndices = GetFaceIndices(indices,(int) bvhBlob[leafOffset+3]); + + bvhBlob[leafOffset] = (uint)(triangleIndices.x + blas.baseIndexForCpuBuild); + bvhBlob[leafOffset+1] = (uint)(triangleIndices.y + blas.baseIndexForCpuBuild); + bvhBlob[leafOffset+2] = (uint)(triangleIndices.z + blas.baseIndexForCpuBuild); + + leafOffset += 4; + } + + var bvhStartInDwords = blas.bvhAlloc.block.offset * RadeonRaysAPI.BvhInternalNodeSizeInDwords(); + cmd.SetBufferData(m_BlasBuffer, bvhBlob, 0, bvhStartInDwords, bvhSizeInDwords); + + var bvhLeavesStartInDwords = blas.bvhLeavesAlloc.block.offset * RadeonRaysAPI.BvhLeafNodeSizeInDwords(); + cmd.SetBufferData(m_BlasLeavesBuffer, bvhBlob, bvhSizeInDwords, bvhLeavesStartInDwords, bvhLeavesSizeInDwords); + + // read mesh aabb from bvh header. + blas.aabbForCpuBuild = new AABB(); + blas.aabbForCpuBuild.Min.x = math.asfloat(bvhBlob[4]); + blas.aabbForCpuBuild.Min.y = math.asfloat(bvhBlob[5]); + blas.aabbForCpuBuild.Min.z = math.asfloat(bvhBlob[6]); + blas.aabbForCpuBuild.Max.x = math.asfloat(bvhBlob[7]); + blas.aabbForCpuBuild.Max.y = math.asfloat(bvhBlob[8]); + blas.aabbForCpuBuild.Max.z = math.asfloat(bvhBlob[9]); + } + + TopLevelAccelStruct CpuBuildForTopLevelAccelStruct(CommandBuffer cmd, RadeonRays.Instance[] radeonRaysInstances) + { + var prims = new GpuBvhPrimitiveDescriptor[m_RadeonInstances.Count]; + int i = 0; + foreach (var instance in m_RadeonInstances.Values) + { + var blas = instance.blas; + AABB aabb = blas.aabbForCpuBuild; + + var m = ConvertTranform(instance.localToWorldTransform); + var bounds = GeometryUtility.CalculateBounds(new Vector3[] + { new Vector3(aabb.Min.x, aabb.Min.y, aabb.Max.z), + new Vector3(aabb.Min.x, aabb.Max.y, aabb.Min.z), + new Vector3(aabb.Min.x, aabb.Max.y, aabb.Max.z), + new Vector3(aabb.Max.x, aabb.Min.y, aabb.Max.z), + new Vector3(aabb.Max.x, aabb.Max.y, aabb.Min.z), + new Vector3(aabb.Max.x, aabb.Max.y, aabb.Max.z) + }, m); + + prims[i].primID = (uint)i; + prims[i].lowerBound = bounds.min; + prims[i].upperBound = bounds.max; + i++; + } + + if (m_RadeonInstances.Count != 0) + { + var options = ConvertFlagsToCpuBuild(m_BuildFlags, true); + + var bvhBlob = GpuBvh.Build(options, prims); + var bvhSizeInDwords = bvhBlob.Length; + var result = m_RadeonRaysAPI.CreateSceneAccelStructBuffers(m_BlasBuffer, (uint)bvhSizeInDwords, radeonRaysInstances); + cmd.SetBufferData(result.topLevelBvh, bvhBlob); + + return result; + } + else + { + return m_RadeonRaysAPI.CreateSceneAccelStructBuffers(m_BlasBuffer, 0, radeonRaysInstances); + } + } + + GpuBvhBuildOptions ConvertFlagsToCpuBuild(BuildFlags flags, bool isTopLevel) + { + GpuBvhBuildQuality quality = GpuBvhBuildQuality.Medium; + + if ((flags & BuildFlags.PreferFastBuild) != 0 && (flags & BuildFlags.PreferFastTrace) == 0) + quality = GpuBvhBuildQuality.Low; + else if ((flags & BuildFlags.PreferFastTrace) != 0 && (flags & BuildFlags.PreferFastBuild) == 0) + quality = GpuBvhBuildQuality.High; + + return new GpuBvhBuildOptions + { + quality = quality, + minLeafSize = (flags & BuildFlags.MinimizeMemory) != 0 && !isTopLevel ? 4u : 1u, + maxLeafSize = isTopLevel ? 1u : 4u, + allowPrimitiveSplits = !isTopLevel && (flags & BuildFlags.MinimizeMemory) == 0, + isTopLevel = isTopLevel + }; + } +#endif + + RadeonRays.BuildFlags ConvertFlagsToGpuBuild(BuildFlags flags) + { + if ((flags & BuildFlags.PreferFastBuild) != 0 && (flags & BuildFlags.PreferFastTrace) == 0) + return RadeonRays.BuildFlags.PreferFastBuild; + else + return RadeonRays.BuildFlags.None; + } + + public void Bind(CommandBuffer cmd, string name, IRayTracingShader shader) + { + shader.SetBufferParam(cmd, Shader.PropertyToID(name + "bvh"), topLevelBvhBuffer); + shader.SetBufferParam(cmd, Shader.PropertyToID(name + "bottomBvhs"), bottomLevelBvhBuffer); + shader.SetBufferParam(cmd, Shader.PropertyToID(name + "bottomBvhLeaves"), m_BlasLeavesBuffer); + shader.SetBufferParam(cmd, Shader.PropertyToID(name + "instanceInfos"), instanceInfoBuffer); + shader.SetBufferParam(cmd, Shader.PropertyToID(name + "vertexBuffer"), m_BlasPositions.VertexBuffer); + } + + public void Bind(CommandBuffer cmd, string name, ComputeShader shader, int kernelIndex) + { + cmd.SetComputeBufferParam(shader, kernelIndex, Shader.PropertyToID(name + "bvh"), topLevelBvhBuffer); + cmd.SetComputeBufferParam(shader, kernelIndex, Shader.PropertyToID(name + "bottomBvhs"), bottomLevelBvhBuffer); + cmd.SetComputeBufferParam(shader, kernelIndex, Shader.PropertyToID(name + "bottomBvhLeaves"), m_BlasLeavesBuffer); + cmd.SetComputeBufferParam(shader, kernelIndex, Shader.PropertyToID(name + "instanceInfos"), instanceInfoBuffer); + cmd.SetComputeBufferParam(shader, kernelIndex, Shader.PropertyToID(name + "vertexBuffer"), m_BlasPositions.VertexBuffer); + } + + static private RadeonRays.Transform ConvertTranform(Matrix4x4 input) + { + return new RadeonRays.Transform() + { + row0 = input.GetRow(0), + row1 = input.GetRow(1), + row2 = input.GetRow(2) + }; + } + + static private Matrix4x4 ConvertTranform(RadeonRays.Transform input) + { + var m = new Matrix4x4(); + m.SetRow(0, input.row0); + m.SetRow(1, input.row1); + m.SetRow(2, input.row2); + m.SetRow(3, new Vector4(0.0f, 0.0f, 0.0f, 1.0f)); + return m; + } + + static int3 GetFaceIndices(List indices, int triangleIdx) + { + return new int3( + indices[3 * triangleIdx], + indices[3 * triangleIdx + 1], + indices[3 * triangleIdx + 2]); + } + + struct Triangle + { + public float3 v0; + public float3 v1; + public float3 v2; + }; + + static Triangle GetTriangle(List vertices, int3 idx) + { + Triangle tri; + tri.v0 = vertices[idx.x]; + tri.v1 = vertices[idx.y]; + tri.v2 = vertices[idx.z]; + return tri; + } + + BlockAllocator.Allocation AllocateBlasInternalNodes(int allocationNodeCount) + { + var allocation = m_BlasAllocator.Allocate(allocationNodeCount); + if (!allocation.valid) + { + int oldCapacity = m_BlasAllocator.capacity; + + if (!m_BlasAllocator.GetExpectedGrowthToFitAllocation(allocationNodeCount, (int)(GraphicsHelpers.MaxGraphicsBufferSizeInBytes / RadeonRaysAPI.BvhInternalNodeSizeInBytes()), out int newCapacity)) + throw new UnifiedRayTracingException($"Can't allocate a GraphicsBuffer bigger than {GraphicsHelpers.MaxGraphicsBufferSizeInGigaBytes:F1}GB", UnifiedRayTracingError.GraphicsBufferAllocationFailed); + + if (!GraphicsHelpers.ReallocateBuffer(m_CopyShader, oldCapacity, newCapacity, RadeonRaysAPI.BvhInternalNodeSizeInBytes(), ref m_BlasBuffer)) + throw new UnifiedRayTracingException($"Failed to allocate buffer of size: {newCapacity * RadeonRaysAPI.BvhInternalNodeSizeInBytes()} bytes", UnifiedRayTracingError.GraphicsBufferAllocationFailed); + + allocation = m_BlasAllocator.GrowAndAllocate(allocationNodeCount, (int)(GraphicsHelpers.MaxGraphicsBufferSizeInBytes / RadeonRaysAPI.BvhInternalNodeSizeInBytes()), out oldCapacity, out newCapacity); + Debug.Assert(allocation.valid); + } + + return allocation; + } + + BlockAllocator.Allocation AllocateBlasLeafNodes(int allocationNodeCount) + { + var allocation = m_BlasLeavesAllocator.Allocate(allocationNodeCount); + if (!allocation.valid) + { + int oldCapacity = m_BlasLeavesAllocator.capacity; + + if (!m_BlasLeavesAllocator.GetExpectedGrowthToFitAllocation(allocationNodeCount, (int)(GraphicsHelpers.MaxGraphicsBufferSizeInBytes / RadeonRaysAPI.BvhLeafNodeSizeInBytes()), out int newCapacity)) + throw new UnifiedRayTracingException($"Can't allocate a GraphicsBuffer bigger than {GraphicsHelpers.MaxGraphicsBufferSizeInGigaBytes:F1}GB", UnifiedRayTracingError.GraphicsBufferAllocationFailed); + + if (!GraphicsHelpers.ReallocateBuffer(m_CopyShader, oldCapacity, newCapacity, RadeonRaysAPI.BvhLeafNodeSizeInBytes(), ref m_BlasLeavesBuffer)) + throw new UnifiedRayTracingException($"Failed to allocate buffer of size: {newCapacity* RadeonRaysAPI.BvhLeafNodeSizeInBytes()} bytes", UnifiedRayTracingError.GraphicsBufferAllocationFailed); + + allocation = m_BlasLeavesAllocator.GrowAndAllocate(allocationNodeCount, (int)(GraphicsHelpers.MaxGraphicsBufferSizeInBytes / RadeonRaysAPI.BvhLeafNodeSizeInBytes()), out oldCapacity, out newCapacity); + Debug.Assert(allocation.valid); + } + + return allocation; + } + + readonly uint m_HandleObfuscation = (uint)Random.Range(int.MinValue, int.MaxValue); + + int NewHandle() + { + if (m_FreeHandles.Count != 0) + return (int)(m_FreeHandles.Dequeue() ^ m_HandleObfuscation); + else + return (int)((uint)m_RadeonInstances.Count ^ m_HandleObfuscation); + } + + void ReleaseHandle(int handle) + { + m_FreeHandles.Enqueue((uint)handle ^ m_HandleObfuscation); + } + + [System.Diagnostics.Conditional("UNITY_ASSERTIONS")] + void CheckInstanceHandleIsValid(int instanceHandle) + { + if (!m_RadeonInstances.ContainsKey(instanceHandle)) + throw new System.ArgumentException($"accel struct does not contain instanceHandle {instanceHandle}", "instanceHandle"); + } + + + readonly RadeonRaysAPI m_RadeonRaysAPI; + readonly BuildFlags m_BuildFlags; + #if UNITY_EDITOR + readonly bool m_UseCpuBuild; + #endif + readonly ReferenceCounter m_Counter; + + readonly Dictionary<(int mesh, int subMeshIndex), MeshBlas> m_Blases; + internal BlockAllocator m_BlasAllocator; + GraphicsBuffer m_BlasBuffer; + internal BlockAllocator m_BlasLeavesAllocator; + GraphicsBuffer m_BlasLeavesBuffer; + readonly BLASPositionsPool m_BlasPositions; + + TopLevelAccelStruct? m_TopLevelAccelStruct = null; + readonly ComputeShader m_CopyShader; + + readonly Dictionary m_RadeonInstances = new (); + readonly Queue m_FreeHandles = new(); + + sealed class RadeonRaysInstance + { + public (int mesh, int subMeshIndex) geomKey; + public MeshBlas blas; + public uint instanceMask; + public bool triangleCullingEnabled; + public bool invertTriangleCulling; + public uint userInstanceID; + public bool opaqueGeometry; + public RadeonRays.Transform localToWorldTransform; + } + + sealed class MeshBlas + { + public MeshBuildInfo buildInfo; + public BlockAllocator.Allocation bvhAlloc; + public BlockAllocator.Allocation bvhLeavesAlloc; + public BlockAllocator.Allocation blasVertices; + #if UNITY_EDITOR + public AABB aabbForCpuBuild; + public List indicesForCpuBuild; + public int baseIndexForCpuBuild; + public List verticesForCpuBuild; + #endif + public bool bvhBuilt = false; + + private uint refCount = 0; + public void IncRef() { refCount++; } + public void DecRef() { refCount--; } + public bool IsUnreferenced() { return refCount == 0; } + } + } + +} diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/ComputeRayTracingAccelStruct.cs.meta b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/ComputeRayTracingAccelStruct.cs.meta new file mode 100644 index 00000000000..b79a0e82f51 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/ComputeRayTracingAccelStruct.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 13d73738c3312804e8e02a8740df1a8b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/ComputeRayTracingBackend.cs b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/ComputeRayTracingBackend.cs new file mode 100644 index 00000000000..bcc5a645eec --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/ComputeRayTracingBackend.cs @@ -0,0 +1,29 @@ +namespace UnityEngine.Rendering.UnifiedRayTracing +{ + internal class ComputeRayTracingBackend : IRayTracingBackend + { + public ComputeRayTracingBackend(RayTracingResources resources) + { + m_Resources = resources; + } + + public IRayTracingShader CreateRayTracingShader(Object shader, string kernelName, GraphicsBuffer dispatchBuffer) + { + Debug.Assert(shader is ComputeShader); + return new ComputeRayTracingShader((ComputeShader)shader, kernelName, dispatchBuffer); + } + + public IRayTracingAccelStruct CreateAccelerationStructure(AccelerationStructureOptions options, ReferenceCounter counter) + { + return new ComputeRayTracingAccelStruct(options, m_Resources, counter); + } + + public ulong GetRequiredTraceScratchBufferSizeInBytes(uint width, uint height, uint depth) + { + uint rayCount = width * height * depth; + return (RadeonRays.RadeonRaysAPI.GetTraceMemoryRequirements(rayCount) * RayTracingContext.GetScratchBufferStrideInBytes()); + } + + readonly RayTracingResources m_Resources; + } +} diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/ComputeRayTracingBackend.cs.meta b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/ComputeRayTracingBackend.cs.meta new file mode 100644 index 00000000000..ca52af558fb --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/ComputeRayTracingBackend.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 19a80943de97d344f9d78714557048b3 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/ComputeRayTracingShader.cs b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/ComputeRayTracingShader.cs new file mode 100644 index 00000000000..acf0ff8d9d5 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/ComputeRayTracingShader.cs @@ -0,0 +1,165 @@ +using Unity.Mathematics; +using UnityEngine.Assertions; + +namespace UnityEngine.Rendering.UnifiedRayTracing +{ + internal class ComputeRayTracingShader : IRayTracingShader + { + readonly ComputeShader m_Shader; + readonly int m_KernelIndex; + readonly int m_ComputeIndirectDispatchDimsKernelIndex; + uint3 m_ThreadGroupSizes; + + // Temp buffer containing the dispatch dimensions + // For standard dispatches, it contains the dims counted in work groups. + // For indirect dispatches, it contains the dims counted in threads. + + readonly GraphicsBuffer m_DispatchBuffer; + + internal ComputeRayTracingShader(ComputeShader shader, string dispatchFuncName, GraphicsBuffer dispatchBuffer) + { + m_Shader = shader; + m_KernelIndex = m_Shader.FindKernel(dispatchFuncName); + m_ComputeIndirectDispatchDimsKernelIndex = m_Shader.FindKernel("ComputeIndirectDispatchDims"); + Debug.Assert(m_Shader.IsSupported(m_KernelIndex), $"Invalid compute shader [{shader.name}], please check that your shader code is compiling."); + + m_Shader.GetKernelThreadGroupSizes(m_KernelIndex, + out m_ThreadGroupSizes.x, out m_ThreadGroupSizes.y, out m_ThreadGroupSizes.z); + m_DispatchBuffer = dispatchBuffer; + } + + public uint3 GetThreadGroupSizes() + { + return m_ThreadGroupSizes; + } + + public void SetAccelerationStructure(CommandBuffer cmd, string name, IRayTracingAccelStruct accelStruct) + { + Utils.CheckArgIsNotNull(cmd, nameof(cmd)); + + var computeAccelStruct = accelStruct as ComputeRayTracingAccelStruct; + Assert.IsNotNull(computeAccelStruct); + + computeAccelStruct.Bind(cmd, name, this); + } + + public void SetIntParam(CommandBuffer cmd, int nameID, int val) + { + Utils.CheckArgIsNotNull(cmd, nameof(cmd)); + + cmd.SetComputeIntParam(m_Shader, nameID, val); + } + + public void SetFloatParam(CommandBuffer cmd, int nameID, float val) + { + Utils.CheckArgIsNotNull(cmd, nameof(cmd)); + + cmd.SetComputeFloatParam(m_Shader, nameID, val); + } + + public void SetVectorParam(CommandBuffer cmd, int nameID, Vector4 val) + { + Utils.CheckArgIsNotNull(cmd, nameof(cmd)); + + cmd.SetComputeVectorParam(m_Shader, nameID, val); + } + + public void SetMatrixParam(CommandBuffer cmd, int nameID, Matrix4x4 val) + { + Utils.CheckArgIsNotNull(cmd, nameof(cmd)); + + cmd.SetComputeMatrixParam(m_Shader, nameID, val); + } + + public void SetTextureParam(CommandBuffer cmd, int nameID, RenderTargetIdentifier rt) + { + Utils.CheckArgIsNotNull(cmd, nameof(cmd)); + + cmd.SetComputeTextureParam(m_Shader, m_KernelIndex, nameID, rt); + } + + public void SetBufferParam(CommandBuffer cmd, int nameID, GraphicsBuffer buffer) + { + Utils.CheckArgIsNotNull(cmd, nameof(cmd)); + + cmd.SetComputeBufferParam(m_Shader, m_KernelIndex, nameID, buffer); + } + + public void SetBufferParam(CommandBuffer cmd, int nameID, ComputeBuffer buffer) + { + Utils.CheckArgIsNotNull(cmd, nameof(cmd)); + + cmd.SetComputeBufferParam(m_Shader, m_KernelIndex, nameID, buffer); + } + + public void SetConstantBufferParam(CommandBuffer cmd, int nameID, GraphicsBuffer buffer, int offset, int size) + { + Utils.CheckArgIsNotNull(cmd, nameof(cmd)); + Utils.CheckArgIsNotNull(buffer, nameof(buffer)); + + cmd.SetComputeConstantBufferParam(m_Shader, nameID, buffer, offset, size); + } + + public void SetConstantBufferParam(CommandBuffer cmd, int nameID, ComputeBuffer buffer, int offset, int size) + { + Utils.CheckArgIsNotNull(cmd, nameof(cmd)); + Utils.CheckArgIsNotNull(buffer, nameof(buffer)); + + cmd.SetComputeConstantBufferParam(m_Shader, nameID, buffer, offset, size); + } + + public void Dispatch(CommandBuffer cmd, GraphicsBuffer scratchBuffer, uint width, uint height, uint depth) + { + Utils.CheckArgIsNotNull(cmd, nameof(cmd)); + + var requiredScratchSize = GetTraceScratchBufferRequiredSizeInBytes(width, height, depth); + if (requiredScratchSize > 0) + { + Utils.CheckArg(scratchBuffer != null && ((ulong)(scratchBuffer.count * scratchBuffer.stride) >= requiredScratchSize), "scratchBuffer size is too small"); + Utils.CheckArg(scratchBuffer.stride == 4, "scratchBuffer stride must be 4"); + Utils.CheckArg(scratchBuffer.target == RayTracingHelper.ScratchBufferTarget, "scratchBuffer.target must have Target.Structured set"); + } + + cmd.SetComputeBufferParam(m_Shader, m_KernelIndex, SID._UnifiedRT_Stack, scratchBuffer); + cmd.SetBufferData(m_DispatchBuffer, new uint[] { width, height, depth }); + SetBufferParam(cmd, SID._UnifiedRT_DispatchDims, m_DispatchBuffer); + + uint workgroupsX = (uint)GraphicsHelpers.DivUp((int)width, m_ThreadGroupSizes.x); + uint workgroupsY = (uint)GraphicsHelpers.DivUp((int)height, m_ThreadGroupSizes.y); + uint workgroupsZ = (uint)GraphicsHelpers.DivUp((int)depth, m_ThreadGroupSizes.z); + cmd.DispatchCompute(m_Shader, m_KernelIndex, (int)workgroupsX, (int)workgroupsY, (int)workgroupsZ); + } + + public void Dispatch(CommandBuffer cmd, GraphicsBuffer scratchBuffer, GraphicsBuffer argsBuffer) + { + Utils.CheckArgIsNotNull(cmd, nameof(cmd)); + GraphicsBuffer.Target requiredFlags = GraphicsBuffer.Target.IndirectArguments | GraphicsBuffer.Target.Structured; + Utils.CheckArg((argsBuffer.target & requiredFlags) == requiredFlags, "argsBuffer.target must have both Target.IndirectArguments and Target.Structured set"); + + SetIndirectDispatchDimensions(cmd, argsBuffer); + DispatchIndirect(cmd, scratchBuffer, argsBuffer); + } + + internal void SetIndirectDispatchDimensions(CommandBuffer cmd, GraphicsBuffer argsBuffer) + { + cmd.SetComputeBufferParam(m_Shader, m_ComputeIndirectDispatchDimsKernelIndex, SID._UnifiedRT_DispatchDims, argsBuffer); + cmd.SetComputeBufferParam(m_Shader, m_ComputeIndirectDispatchDimsKernelIndex, SID._UnifiedRT_DispatchDimsInWorkgroups, m_DispatchBuffer); + cmd.DispatchCompute(m_Shader, m_ComputeIndirectDispatchDimsKernelIndex, 1, 1, 1); + } + + internal void DispatchIndirect(CommandBuffer cmd, GraphicsBuffer scratchBuffer, GraphicsBuffer argsBuffer) + { + cmd.SetComputeBufferParam(m_Shader, m_KernelIndex, SID._UnifiedRT_Stack, scratchBuffer); + cmd.SetComputeBufferParam(m_Shader, m_KernelIndex, SID._UnifiedRT_DispatchDims, argsBuffer); + cmd.DispatchCompute(m_Shader, m_KernelIndex, m_DispatchBuffer, 0); + } + + public ulong GetTraceScratchBufferRequiredSizeInBytes(uint width, uint height, uint depth) + { + uint rayCount = width * height * depth; + return (RadeonRays.RadeonRaysAPI.GetTraceMemoryRequirements(rayCount) * 4); + } + } +} + + diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/ComputeRayTracingShader.cs.meta b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/ComputeRayTracingShader.cs.meta new file mode 100644 index 00000000000..a2fabb108a3 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/ComputeRayTracingShader.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7ffb214f1a2621b498faee76b1864c9e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/ComputeRaygenShader.hlsl b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/ComputeRaygenShader.hlsl new file mode 100644 index 00000000000..6a0ec3a930b --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/ComputeRaygenShader.hlsl @@ -0,0 +1,30 @@ + +StructuredBuffer _UnifiedRT_DispatchDims; + +#pragma kernel MainRayGenShader +[numthreads(UNIFIED_RT_GROUP_SIZE_X, UNIFIED_RT_GROUP_SIZE_Y, UNIFIED_RT_GROUP_SIZE_Z)] +void MainRayGenShader( + in uint3 gidx: SV_DispatchThreadID, + in uint lidx : SV_GroupIndex) +{ + if (gidx.x >= _UnifiedRT_DispatchDims[0] || gidx.y >= _UnifiedRT_DispatchDims[1] || gidx.z >= _UnifiedRT_DispatchDims[2]) + return; + + UnifiedRT::DispatchInfo dispatchInfo; + dispatchInfo.dispatchThreadID = gidx; + dispatchInfo.dispatchDimensionsInThreads = int3(_UnifiedRT_DispatchDims[0], _UnifiedRT_DispatchDims[1], _UnifiedRT_DispatchDims[2]); + dispatchInfo.localThreadIndex = lidx; + dispatchInfo.globalThreadIndex = gidx.x + gidx.y * _UnifiedRT_DispatchDims[0] + gidx.z * (_UnifiedRT_DispatchDims[0] * _UnifiedRT_DispatchDims[1]); + + UNIFIED_RT_RAYGEN_FUNC(dispatchInfo); +} + +RWStructuredBuffer _UnifiedRT_DispatchDimsInWorkgroups; + +#pragma kernel ComputeIndirectDispatchDims +[numthreads(3, 1, 1)] +void ComputeIndirectDispatchDims(in uint gidx : SV_DispatchThreadID) +{ + uint3 workgroupSizes = uint3(UNIFIED_RT_GROUP_SIZE_X, UNIFIED_RT_GROUP_SIZE_Y, UNIFIED_RT_GROUP_SIZE_Z); + _UnifiedRT_DispatchDimsInWorkgroups[gidx] = (_UnifiedRT_DispatchDims[gidx] + workgroupSizes[gidx] - 1) / workgroupSizes[gidx]; +} diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/ComputeRaygenShader.hlsl.meta b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/ComputeRaygenShader.hlsl.meta new file mode 100644 index 00000000000..e6d978d2636 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/ComputeRaygenShader.hlsl.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 7176b7aa19c704f439cdab57ccf4bceb +ShaderIncludeImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays.meta b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays.meta new file mode 100644 index 00000000000..e29dd70411d --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: bc373571d8c974b4c8b11bbc194651eb +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/BvhCheck.cs b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/BvhCheck.cs new file mode 100644 index 00000000000..b0d567bac00 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/BvhCheck.cs @@ -0,0 +1,312 @@ +using System; +using System.Collections.Generic; +using System.Runtime.InteropServices; +using Unity.Mathematics; +using UnityEngine.Assertions; + +namespace UnityEngine.Rendering.RadeonRays +{ + + internal class AABB + { + public float3 Min; + public float3 Max; + + public AABB() + { + Min = new float3(float.PositiveInfinity, float.PositiveInfinity, float.PositiveInfinity); + Max = new float3(float.NegativeInfinity, float.NegativeInfinity, float.NegativeInfinity); + } + + public AABB(float3 min, float3 max) + { + Min = min; + Max = max; + } + + public void Encapsulate(AABB aabb) + { + Min = math.min(Min, aabb.Min); + Max = math.max(Max, aabb.Max); + } + + public void Encapsulate(float3 point) + { + Min = math.min(Min, point); + Max = math.max(Max, point); + } + + public bool Contains(AABB rhs) + { + return rhs.Min.x >= Min.x && rhs.Min.y >= Min.y && rhs.Min.z >= Min.z && + rhs.Max.x <= Max.x && rhs.Max.y <= Max.y && rhs.Max.z <= Max.z; + } + + public bool IsValid() + { + return Min.x <= Max.x && Min.y <= Max.y && Min.z <= Max.z; + } + } + + + internal class BvhCheck + { + const uint kInvalidID = ~0u; + + public class VertexBuffers + { + public GraphicsBuffer vertices; + public GraphicsBuffer indices; + public uint vertexBufferOffset = 0; + public uint vertexCount; + public uint vertexStride = 3; + public uint indexBufferOffset = 0; + public IndexFormat indexFormat = IndexFormat.Int32; + public uint indexCount; + + }; + + public static VertexBuffers Convert(MeshBuildInfo info) + { + var res = new VertexBuffers() + { + vertices = info.vertices, + indices = info.triangleIndices, + vertexBufferOffset = (uint)info.verticesStartOffset, + vertexCount = info.vertexCount, + vertexStride = info.vertexStride, + indexBufferOffset = (uint)info.indicesStartOffset, + indexCount = info.triangleCount * 3, + indexFormat = info.indexFormat + }; + + return res; + } + + public static double SurfaceArea(AABB aabb) + { + float3 edges = aabb.Max - aabb.Min; + return 2.0f * (edges.x * edges.y + edges.x * edges.z + edges.z * edges.y); + } + + public static double NodeSahCost(uint nodeAddr, AABB nodeAabb, AABB parentAabb) + { + double cost = IsLeafNode(nodeAddr) ? GetLeafNodePrimCount(nodeAddr) : 1.2f; + var a = SurfaceArea(nodeAabb); + var b = SurfaceArea(parentAabb); + return cost * a/ b; + } + + public static double CheckConsistency(VertexBuffers bvhVertexBuffers, BottomLevelLevelAccelStruct bvh, uint primitiveCount) + { + return CheckConsistency(bvhVertexBuffers, bvh.bvh, bvh.bvhOffset, bvh.bvhLeaves, bvh.bvhLeavesOffset, primitiveCount); + } + + public static double CheckConsistency(GraphicsBuffer bvhBuffer, uint bvhBufferOffset, uint primitiveCount) + { + return CheckConsistency(null, bvhBuffer, bvhBufferOffset, null, 0, primitiveCount); + } + + static double CheckConsistency( + VertexBuffers bvhVertexBuffers, + GraphicsBuffer bvhBuffer, uint bvhBufferOffset, GraphicsBuffer bvhLeavesBuffer, uint bvhLeavesBufferOffset, + uint primitiveCount) + { + var header = new BvhHeader[1]; + bvhBuffer.GetData(header, 0, (int)bvhBufferOffset, 1); + + return CheckConsistency(bvhVertexBuffers, bvhBuffer, bvhBufferOffset + 1, bvhLeavesBuffer, bvhLeavesBufferOffset, header[0], primitiveCount); + } + + public static int ExtractBits(uint value, int startBit, int count) + { + uint mask = (uint)(((1 << count) - 1) << startBit); + return ((int)(mask & value)) >> startBit; + } + + public static bool IsLeafNode(uint nodeAddr) + { + return (nodeAddr & (1 << 31)) != 0; + } + + public static uint GetLeafNodeFirstPrim(uint nodeAddr) + { + return (nodeAddr & ~0xE0000000); + } + + public static uint GetLeafNodePrimCount(uint nodeAddr) + { + return (uint)ExtractBits(nodeAddr, 29, 2) + 1; + } + + static double CheckConsistency( + VertexBuffers bvhVertexBuffers, + GraphicsBuffer bvhBuffer, uint bvhBufferOffset, GraphicsBuffer bvhLeavesBuffer, uint bvhLeavesBufferOffset, + BvhHeader header, uint primitiveCount) + { + uint leafCount = header.leafNodeCount; + uint rootAddr = header.root; + var nodeCount = HlbvhBuilder.GetBvhNodeCount(leafCount); + bool isTopLevel = bvhVertexBuffers == null; + + var bvhNodes = new BvhNode[nodeCount]; + bvhBuffer.GetData(bvhNodes, 0, (int)bvhBufferOffset, (int)nodeCount); + + VertexBuffersCPU vertexBuffers = null; + uint4[] bvhLeafNodes = null; + if (!isTopLevel) + { + vertexBuffers = DownloadVertexData(bvhVertexBuffers); + bvhLeafNodes = new uint4[primitiveCount]; + bvhLeavesBuffer.GetData(bvhLeafNodes, 0, (int)bvhLeavesBufferOffset, (int)primitiveCount); + } + + uint countedPrimitives = 0; + + var rootAabb = GetAabb(vertexBuffers, bvhNodes, bvhLeafNodes, rootAddr, isTopLevel); + double sahCost = 0.0f; + + var q = new Queue<(uint Addr, uint Parent)>(); + q.Enqueue((Addr: rootAddr, Parent: kInvalidID)); + while (q.Count != 0) + { + var current = q.Dequeue(); + uint addr = current.Addr; + uint parent = current.Parent; + + AABB aabb = GetAabb(vertexBuffers, bvhNodes, bvhLeafNodes, addr, isTopLevel); + sahCost += NodeSahCost(addr, aabb, rootAabb); + + if (!(isTopLevel && IsLeafNode(addr))) + Assert.IsTrue(aabb.IsValid()); + + if (IsLeafNode(addr)) + { + countedPrimitives += isTopLevel ? 1 : GetLeafNodePrimCount(addr); + } + else // internal node + { + var node = bvhNodes[addr]; + Assert.AreEqual(parent, node.parent); + var leftAabb = GetAabb(vertexBuffers, bvhNodes, bvhLeafNodes, node.child0, isTopLevel); + var rightAabb = GetAabb(vertexBuffers, bvhNodes, bvhLeafNodes, node.child1, isTopLevel); + + bool leftOk = (aabb.Contains(leftAabb)); + bool rightOk = (aabb.Contains(rightAabb)); + + Assert.IsTrue(leftOk); + Assert.IsTrue(rightOk); + + q.Enqueue((Addr: node.child0, Parent: addr)); + q.Enqueue((Addr: node.child1, Parent: addr)); + } + } + + Assert.AreEqual(countedPrimitives, primitiveCount); + + return sahCost; + } + + private sealed class VertexBuffersCPU + { + public float[] vertices; + public uint[] indices; + public uint vertexStride; + }; + + + static uint3 GetFaceIndices(uint[] indices, uint triangleIdx) + { + return new uint3( + indices[3 * triangleIdx], + indices[3 * triangleIdx + 1], + indices[3 * triangleIdx + 2]); + } + + static float3 GetVertex(float[] vertices, uint stride, uint idx) + { + uint indexInFloats = idx * stride; + return new float3( + vertices[indexInFloats], + vertices[indexInFloats + 1], + vertices[indexInFloats + 2]); + } + + struct Triangle + { + public float3 v0; + public float3 v1; + public float3 v2; + }; + + static Triangle GetTriangle(float[] vertices, uint stride, uint3 idx) + { + Triangle tri; + tri.v0 = GetVertex(vertices, stride, idx.x); + tri.v1 = GetVertex(vertices, stride, idx.y); + tri.v2 = GetVertex(vertices, stride, idx.z); + return tri; + } + + static VertexBuffersCPU DownloadVertexData(VertexBuffers vertexBuffers) + { + var result = new VertexBuffersCPU(); + result.vertices = new float[vertexBuffers.vertexCount * vertexBuffers.vertexStride]; + result.indices = new uint[vertexBuffers.indexCount]; + result.vertexStride = vertexBuffers.vertexStride; + + if (vertexBuffers.indexFormat == IndexFormat.Int32) + { + vertexBuffers.indices.GetData(result.indices, 0, (int)vertexBuffers.indexBufferOffset, (int)vertexBuffers.indexCount); + } + else + { + var tmp = new ushort[vertexBuffers.indexCount]; + vertexBuffers.indices.GetData(tmp, 0, (int)vertexBuffers.indexBufferOffset, (int)vertexBuffers.indexCount); + for (int i = 0; i < vertexBuffers.indexCount; ++i) + result.indices[i] = tmp[i]; + } + + vertexBuffers.vertices.GetData(result.vertices, 0, (int)vertexBuffers.vertexBufferOffset, (int)(vertexBuffers.vertexCount * vertexBuffers.vertexStride)); + + return result; + } + + static AABB GetAabb(VertexBuffersCPU bvhVertexBuffers, BvhNode[] bvhNodes, uint4[] bvhLeafNodes, uint nodeAddr, bool isTopLevel) + { + var aabb = new AABB(); + + if (!IsLeafNode(nodeAddr)) + { + var node = bvhNodes[nodeAddr]; + AABB left = new AABB(node.aabb0_min, node.aabb0_max); + aabb.Encapsulate(left); + + AABB right = new AABB(node.aabb1_min, node.aabb1_max); + aabb.Encapsulate(right); + } + else if (!isTopLevel) + { + int firstIndex = (int)GetLeafNodeFirstPrim(nodeAddr); + int triangleCount = (int)GetLeafNodePrimCount(nodeAddr); + for (int i = 0; i < triangleCount; ++i) + { + uint index = (uint)(i + firstIndex); + uint3 triangleIndices = bvhLeafNodes[index].xyz; + uint3 meshTriangleindices = GetFaceIndices(bvhVertexBuffers.indices, bvhLeafNodes[index].w); + + Assert.AreEqual(meshTriangleindices, triangleIndices); + + var triangle = GetTriangle(bvhVertexBuffers.vertices, bvhVertexBuffers.vertexStride, triangleIndices); + + aabb.Encapsulate(triangle.v0); + aabb.Encapsulate(triangle.v1); + aabb.Encapsulate(triangle.v2); + } + } + + return aabb; + } + } +} + diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/BvhCheck.cs.meta b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/BvhCheck.cs.meta new file mode 100644 index 00000000000..b1d0590faec --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/BvhCheck.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: fccb64cb1f418b9499235ed8f3ba4624 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/Common.cs b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/Common.cs new file mode 100644 index 00000000000..ffa5c699dcd --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/Common.cs @@ -0,0 +1,23 @@ + +namespace UnityEngine.Rendering.RadeonRays +{ + internal static class Common + { + public static uint CeilDivide(uint val, uint div) + { + return (val + div - 1) / div; + } + + public static void EnableKeyword(CommandBuffer cmd, ComputeShader shader, string keyword, bool enable) + { + if (enable) + { + cmd.EnableKeyword(shader, new LocalKeyword(shader, keyword)); + } + else + { + cmd.DisableKeyword(shader, new LocalKeyword(shader, keyword)); + } + } + } +} diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/Common.cs.meta b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/Common.cs.meta new file mode 100644 index 00000000000..69bf6f28fae --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/Common.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f0db4ed57f6edee4c885d25ff13937e7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/HlbvhBuilder.cs b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/HlbvhBuilder.cs new file mode 100644 index 00000000000..ecf4bc1839c --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/HlbvhBuilder.cs @@ -0,0 +1,162 @@ +using System; +using System.Runtime.InteropServices; +using Unity.Mathematics; + +namespace UnityEngine.Rendering.RadeonRays +{ + internal struct BottomLevelLevelAccelStruct + { + public GraphicsBuffer bvh; + public uint bvhOffset; + public GraphicsBuffer bvhLeaves; + public uint bvhLeavesOffset; + } + + internal class HlbvhBuilder + { + readonly ComputeShader shaderBuildHlbvh; + readonly int kernelInit; + readonly int kernelCalculateAabb; + readonly int kernelCalculateMortonCodes; + readonly int kernelBuildTreeBottomUp; + + readonly RadixSort radixSort; + + const uint kTrianglesPerThread = 8u; + const uint kGroupSize = 256u; + const uint kTrianglesPerGroup = kTrianglesPerThread * kGroupSize; + + public HlbvhBuilder(RadeonRaysShaders shaders) + { + shaderBuildHlbvh = shaders.buildHlbvh; + kernelInit = shaderBuildHlbvh.FindKernel("Init"); + kernelCalculateAabb = shaderBuildHlbvh.FindKernel("CalculateAabb"); + kernelCalculateMortonCodes = shaderBuildHlbvh.FindKernel("CalculateMortonCodes"); + kernelBuildTreeBottomUp = shaderBuildHlbvh.FindKernel("BuildTreeBottomUp"); + + radixSort = new RadixSort(shaders); + } + + public uint GetScratchDataSizeInDwords(uint triangleCount) + { + var scratchLayout = ScratchBufferLayout.Create(triangleCount); + return scratchLayout.TotalSize; + } + + public static uint GetBvhNodeCount(uint leafCount) + { + return leafCount - 1; + } + + public uint GetResultDataSizeInDwords(uint triangleCount) + { + var bvhNodeCount = GetBvhNodeCount(triangleCount) + 1; // plus one for header + uint sizeOfNode = 16; + return bvhNodeCount * sizeOfNode; + } + + public void Execute( + CommandBuffer cmd, + GraphicsBuffer vertices, int verticesOffset, uint vertexStride, + GraphicsBuffer indices, int indicesOffset, int baseIndex, IndexFormat indexFormat, uint triangleCount, + GraphicsBuffer scratch, + in BottomLevelLevelAccelStruct result) + { + Common.EnableKeyword(cmd, shaderBuildHlbvh, "TOP_LEVEL", false); + Common.EnableKeyword(cmd, shaderBuildHlbvh, "UINT16_INDICES", indexFormat == IndexFormat.Int16); + var scratchLayout = ScratchBufferLayout.Create(triangleCount); + + cmd.SetComputeIntParam(shaderBuildHlbvh, SID.g_indices_offset, indicesOffset); + cmd.SetComputeIntParam(shaderBuildHlbvh, SID.g_base_index, baseIndex); + cmd.SetComputeIntParam(shaderBuildHlbvh, SID.g_vertices_offset, verticesOffset); + cmd.SetComputeIntParam(shaderBuildHlbvh, SID.g_constants_vertex_stride, (int)vertexStride); + cmd.SetComputeIntParam(shaderBuildHlbvh, SID.g_constants_triangle_count, (int)triangleCount); + cmd.SetComputeIntParam(shaderBuildHlbvh, SID.g_bvh_offset, (int)result.bvhOffset); + cmd.SetComputeIntParam(shaderBuildHlbvh, SID.g_bvh_leaves_offset, (int)result.bvhLeavesOffset); + cmd.SetComputeIntParam(shaderBuildHlbvh, SID.g_internal_node_range_offset, (int)scratchLayout.InternalNodeRange); + cmd.SetComputeIntParam(shaderBuildHlbvh, SID.g_leaf_parents_offset, (int)scratchLayout.LeafParents); + cmd.SetComputeIntParam(shaderBuildHlbvh, SID.g_aabb_offset, (int)scratchLayout.Aabb); + + BindKernelArguments(cmd, kernelInit, vertices, indices, scratch, scratchLayout, result, false); + cmd.DispatchCompute(shaderBuildHlbvh, kernelInit, 1, 1, 1); + + BindKernelArguments(cmd, kernelCalculateAabb, vertices, indices, scratch, scratchLayout, result, false); + cmd.DispatchCompute(shaderBuildHlbvh, kernelCalculateAabb, (int)Common.CeilDivide(triangleCount, kTrianglesPerGroup), 1, 1); + + BindKernelArguments(cmd, kernelCalculateMortonCodes, vertices, indices, scratch, scratchLayout, result, false); + cmd.DispatchCompute(shaderBuildHlbvh, kernelCalculateMortonCodes, (int)Common.CeilDivide(triangleCount, kTrianglesPerGroup), 1, 1); + + radixSort.Execute(cmd, scratch, + scratchLayout.MortonCodes, scratchLayout.SortedMortonCodes, + scratchLayout.PrimitiveRefs, scratchLayout.SortedPrimitiveRefs, + scratchLayout.SortMemory, triangleCount); + + BindKernelArguments(cmd, kernelBuildTreeBottomUp, vertices, indices, scratch, scratchLayout, result, true); + cmd.DispatchCompute(shaderBuildHlbvh, kernelBuildTreeBottomUp, (int)Common.CeilDivide(triangleCount, kTrianglesPerGroup), 1, 1); + } + + private void BindKernelArguments( + CommandBuffer cmd, + int kernel, + GraphicsBuffer vertices, + GraphicsBuffer indices, + GraphicsBuffer scratch, + ScratchBufferLayout scratchLayout, + BottomLevelLevelAccelStruct result, + bool setSortedCodes) + { + cmd.SetComputeBufferParam(shaderBuildHlbvh, kernel, SID.g_vertices, vertices); + cmd.SetComputeBufferParam(shaderBuildHlbvh, kernel, SID.g_indices, indices); + cmd.SetComputeBufferParam(shaderBuildHlbvh, kernel, SID.g_scratch_buffer, scratch); + cmd.SetComputeBufferParam(shaderBuildHlbvh, kernel, SID.g_bvh, result.bvh); + cmd.SetComputeBufferParam(shaderBuildHlbvh, kernel, SID.g_bvh_leaves, result.bvhLeaves); + + if (setSortedCodes) + { + cmd.SetComputeIntParam(shaderBuildHlbvh, SID.g_morton_codes_offset, (int)scratchLayout.SortedMortonCodes); + cmd.SetComputeIntParam(shaderBuildHlbvh, SID.g_primitive_refs_offset, (int)scratchLayout.SortedPrimitiveRefs); + } + else + { + cmd.SetComputeIntParam(shaderBuildHlbvh, SID.g_morton_codes_offset, (int)scratchLayout.MortonCodes); + cmd.SetComputeIntParam(shaderBuildHlbvh, SID.g_primitive_refs_offset, (int)scratchLayout.PrimitiveRefs); + } + } + + struct ScratchBufferLayout + { + public uint PrimitiveRefs; + public uint MortonCodes; + public uint SortedPrimitiveRefs; + public uint SortedMortonCodes; + public uint SortMemory; + public uint Aabb; + public uint LeafParents; + public uint InternalNodeRange; + public uint TotalSize; + + public static ScratchBufferLayout Create(uint triangleCount) + { + var result = new ScratchBufferLayout(); + result.SortMemory = result.Reserve(math.max((uint)RadixSort.GetScratchDataSizeInDwords(triangleCount), triangleCount)); + result.PrimitiveRefs = result.Reserve(triangleCount); + result.MortonCodes = result.Reserve(triangleCount); + result.SortedPrimitiveRefs = result.Reserve(triangleCount); + result.SortedMortonCodes = result.Reserve(triangleCount); + result.Aabb = result.Reserve(6); + + result.InternalNodeRange = result.PrimitiveRefs; + result.LeafParents = result.SortMemory; + + return result; + } + + uint Reserve(uint size) + { + var temp = TotalSize; + TotalSize += size; + return temp; + } + } + } +} diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/HlbvhBuilder.cs.meta b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/HlbvhBuilder.cs.meta new file mode 100644 index 00000000000..9e12fde28ab --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/HlbvhBuilder.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9d053bd99ea2f2c41b6200d1561bc091 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/HlbvhTopLevelBuilder.cs b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/HlbvhTopLevelBuilder.cs new file mode 100644 index 00000000000..c615540e5a9 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/HlbvhTopLevelBuilder.cs @@ -0,0 +1,187 @@ +using System; +using System.Runtime.InteropServices; +using Unity.Mathematics; + +namespace UnityEngine.Rendering.RadeonRays +{ + internal struct TopLevelAccelStruct : IDisposable + { + public const GraphicsBuffer.Target topLevelBvhTarget = GraphicsBuffer.Target.Structured; + public const GraphicsBuffer.Target instanceInfoTarget = GraphicsBuffer.Target.Structured; + + public GraphicsBuffer topLevelBvh; + public GraphicsBuffer bottomLevelBvhs; + public GraphicsBuffer instanceInfos; + public uint instanceCount; + + public void Dispose() + { + topLevelBvh?.Dispose(); + instanceInfos?.Dispose(); + } + } + + internal class HlbvhTopLevelBuilder + { + readonly ComputeShader shaderBuildHlbvh; + readonly int kernelInit; + readonly int kernelCalculateAabb; + readonly int kernelCalculateMortonCodes; + readonly int kernelBuildTreeBottomUp; + + readonly RadixSort radixSort; + + const uint kTrianglesPerThread = 8u; + const uint kGroupSize = 256u; + const uint kTrianglesPerGroup = kTrianglesPerThread * kGroupSize; + + public HlbvhTopLevelBuilder(RadeonRaysShaders shaders) + { + shaderBuildHlbvh = shaders.buildHlbvh; + kernelInit = shaderBuildHlbvh.FindKernel("Init"); + kernelCalculateAabb = shaderBuildHlbvh.FindKernel("CalculateAabb"); + kernelCalculateMortonCodes = shaderBuildHlbvh.FindKernel("CalculateMortonCodes"); + kernelBuildTreeBottomUp = shaderBuildHlbvh.FindKernel("BuildTreeBottomUp"); + + radixSort = new RadixSort(shaders); + } + + public ulong GetScratchDataSizeInDwords(uint instanceCount) + { + var scratchLayout = ScratchBufferLayout.Create(instanceCount); + return scratchLayout.TotalSize; + } + + public static uint GetBvhNodeCount(uint leafCount) + { + return leafCount - 1; + } + + public void AllocateResultBuffers(uint instanceCount, ref TopLevelAccelStruct accelStruct) + { + var bvhNodeCount = GetBvhNodeCount(instanceCount); + + accelStruct.Dispose(); + accelStruct.instanceInfos = new GraphicsBuffer(TopLevelAccelStruct.instanceInfoTarget, (int)instanceCount, Marshal.SizeOf()); + accelStruct.topLevelBvh = new GraphicsBuffer(TopLevelAccelStruct.topLevelBvhTarget, (int)bvhNodeCount + 1, Marshal.SizeOf()); // plus one for header + } + + public void CreateEmpty(ref TopLevelAccelStruct accelStruct) + { + accelStruct.Dispose(); + accelStruct.topLevelBvh = new GraphicsBuffer(TopLevelAccelStruct.topLevelBvhTarget, 2, Marshal.SizeOf()); + accelStruct.instanceInfos = accelStruct.topLevelBvh; + accelStruct.bottomLevelBvhs = accelStruct.topLevelBvh; + accelStruct.instanceCount = 0; + + var top = new BvhNode[2]; + top[0].child0 = 0; + top[0].child1 = 0; + top[0].parent = 0; + + top[1].child0 = 0; + top[1].child1 = 0; + top[1].parent = 0xFFFFFFFF; + top[1].update = 0; + top[1].aabb0_min = new float3(float.NegativeInfinity, float.NegativeInfinity, float.NegativeInfinity); + top[1].aabb0_max = new float3(float.NegativeInfinity, float.NegativeInfinity, float.NegativeInfinity); + top[1].aabb1_min = new float3(float.NegativeInfinity, float.NegativeInfinity, float.NegativeInfinity); + top[1].aabb1_max = new float3(float.NegativeInfinity, float.NegativeInfinity, float.NegativeInfinity); + + accelStruct.topLevelBvh.SetData(top); + } + + public void Execute(CommandBuffer cmd, GraphicsBuffer scratch, ref TopLevelAccelStruct accelStruct) + { + Common.EnableKeyword(cmd, shaderBuildHlbvh, "TOP_LEVEL", true); + Common.EnableKeyword(cmd, shaderBuildHlbvh, "UINT16_INDICES", false); + uint instanceCount = accelStruct.instanceCount; + var scratchLayout = ScratchBufferLayout.Create(instanceCount); + + cmd.SetComputeIntParam(shaderBuildHlbvh, SID.g_constants_vertex_stride, 0); + cmd.SetComputeIntParam(shaderBuildHlbvh, SID.g_constants_triangle_count, (int)instanceCount); + cmd.SetComputeIntParam(shaderBuildHlbvh, SID.g_bvh_offset, 0); + cmd.SetComputeIntParam(shaderBuildHlbvh, SID.g_internal_node_range_offset, (int)scratchLayout.InternalNodeRange); + cmd.SetComputeIntParam(shaderBuildHlbvh, SID.g_aabb_offset, (int)scratchLayout.Aabb); + + BindKernelArguments(cmd, kernelInit, scratch, scratchLayout, accelStruct, false); + cmd.DispatchCompute(shaderBuildHlbvh, kernelInit, 1, 1, 1); + + BindKernelArguments(cmd, kernelCalculateAabb, scratch, scratchLayout, accelStruct, false); + cmd.DispatchCompute(shaderBuildHlbvh, kernelCalculateAabb, (int)Common.CeilDivide(instanceCount, kTrianglesPerGroup), 1, 1); + + BindKernelArguments(cmd, kernelCalculateMortonCodes, scratch, scratchLayout, accelStruct, false); + cmd.DispatchCompute(shaderBuildHlbvh, kernelCalculateMortonCodes, (int)Common.CeilDivide(instanceCount, kTrianglesPerGroup), 1, 1); + + radixSort.Execute(cmd, scratch, + scratchLayout.MortonCodes, scratchLayout.SortedMortonCodes, + scratchLayout.PrimitiveRefs, scratchLayout.SortedPrimitiveRefs, + scratchLayout.SortMemory, instanceCount); + + BindKernelArguments(cmd, kernelBuildTreeBottomUp, scratch, scratchLayout, accelStruct, true); + cmd.DispatchCompute(shaderBuildHlbvh, kernelBuildTreeBottomUp, (int)Common.CeilDivide(instanceCount, kTrianglesPerGroup), 1, 1); + } + + struct ScratchBufferLayout + { + public uint Aabb; + public uint MortonCodes; + public uint PrimitiveRefs; + public uint SortedMortonCodes; + public uint SortedPrimitiveRefs; + public uint SortMemory; + public uint InternalNodeRange; + public uint TotalSize; + + public static ScratchBufferLayout Create(uint instanceCount) + { + var result = new ScratchBufferLayout(); + result.Aabb = result.Reserve(6); + result.MortonCodes = result.Reserve(instanceCount); + result.PrimitiveRefs = result.Reserve(instanceCount); + result.SortedMortonCodes = result.Reserve(instanceCount); + result.SortedPrimitiveRefs = result.Reserve(instanceCount); + result.SortMemory = result.Reserve((uint)RadixSort.GetScratchDataSizeInDwords(instanceCount)); + + // overlaps with MortonCodes and PrimitiveRefs + result.InternalNodeRange = result.MortonCodes; + + return result; + } + + uint Reserve(uint size) + { + var temp = TotalSize; + TotalSize += size; + return temp; + } + } + + private void BindKernelArguments( + CommandBuffer cmd, + int kernel, + GraphicsBuffer scratch, + ScratchBufferLayout scratchLayout, + TopLevelAccelStruct accelStruct, + bool setSortedCodes) + { + cmd.SetComputeBufferParam(shaderBuildHlbvh, kernel, SID.g_scratch_buffer, scratch); + cmd.SetComputeBufferParam(shaderBuildHlbvh, kernel, SID.g_bvh, accelStruct.topLevelBvh); + cmd.SetComputeBufferParam(shaderBuildHlbvh, kernel, SID.g_bottom_bvhs, accelStruct.bottomLevelBvhs); + cmd.SetComputeBufferParam(shaderBuildHlbvh, kernel, SID.g_instance_infos, accelStruct.instanceInfos); + + cmd.SetComputeIntParam(shaderBuildHlbvh, SID.g_aabb_offset, (int)scratchLayout.Aabb); + + if (setSortedCodes) + { + cmd.SetComputeIntParam(shaderBuildHlbvh, SID.g_morton_codes_offset, (int)scratchLayout.SortedMortonCodes); + cmd.SetComputeIntParam(shaderBuildHlbvh, SID.g_primitive_refs_offset, (int)scratchLayout.SortedPrimitiveRefs); + } + else + { + cmd.SetComputeIntParam(shaderBuildHlbvh, SID.g_morton_codes_offset, (int)scratchLayout.MortonCodes); + cmd.SetComputeIntParam(shaderBuildHlbvh, SID.g_primitive_refs_offset, (int)scratchLayout.PrimitiveRefs); + } + } + } +} diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/HlbvhTopLevelBuilder.cs.meta b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/HlbvhTopLevelBuilder.cs.meta new file mode 100644 index 00000000000..a3aa9a1a826 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/HlbvhTopLevelBuilder.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 381139c5264bf8f4e81de5c8990ad646 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/README.txt b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/README.txt new file mode 100644 index 00000000000..9d78bd086e0 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/README.txt @@ -0,0 +1,5 @@ +This code has been ported from C++ to C# from the RadeonRays library. Version used: 4.1 release (https://github.com/GPUOpen-LibrariesAndSDKs/RadeonRays_SDK) + +The files follow the same structure and naming as their original counterpart in https://github.com/GPUOpen-LibrariesAndSDKs/RadeonRays_SDK/tree/master/src/core/src/dx. +- Modifications have been done to the HLSL shaders to work around bugs found in the old FXC compiler. +- See comments in HlbvhBuilder.cs for modifications done to code responsible for the BVH build. \ No newline at end of file diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/README.txt.meta b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/README.txt.meta new file mode 100644 index 00000000000..ce3eeddbf58 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/README.txt.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 6ab740f51f5df0244bb3510f143c74ef +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/RadeonRaysAPI.cs b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/RadeonRaysAPI.cs new file mode 100644 index 00000000000..96364bdb9b9 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/RadeonRaysAPI.cs @@ -0,0 +1,423 @@ +using System; +using System.IO; +using System.Runtime.InteropServices; +using Unity.Mathematics; + +namespace UnityEngine.Rendering.RadeonRays +{ + enum IndexFormat { Int32 = 0, Int16 }; + + internal struct MeshBuildInfo + { + public GraphicsBuffer vertices; + public int verticesStartOffset; // in DWORD + public uint vertexCount; + public uint vertexStride; // in DWORD + public int baseVertex; + + public GraphicsBuffer triangleIndices; + public int indicesStartOffset; // in DWORD + public int baseIndex; + public IndexFormat indexFormat; + public uint triangleCount; + } + + internal struct MeshBuildMemoryRequirements + { + public ulong buildScratchSizeInDwords; + public ulong bvhSizeInDwords; + public ulong bvhLeavesSizeInDwords; + } + + internal struct SceneBuildMemoryRequirements + { + public ulong buildScratchSizeInDwords; + } + + internal class SceneMemoryRequirements + { + public ulong buildScratchSizeInDwords; + public ulong[] bottomLevelBvhSizeInNodes; + public uint[] bottomLevelBvhOffsetInNodes; + public ulong[] bottomLevelBvhLeavesSizeInNodes; + public uint[] bottomLevelBvhLeavesOffsetInNodes; + + public ulong totalBottomLevelBvhSizeInNodes; + public ulong totalBottomLevelBvhLeavesSizeInNodes; + } + + [System.Flags] + internal enum BuildFlags + { + None = 0, + PreferFastBuild = 1 << 0 + } + + internal enum RayQueryType + { + ClosestHit, + AnyHit + } + + internal enum RayQueryOutputType + { + FullHitData, + InstanceID + } + + [StructLayout(LayoutKind.Sequential)] + internal struct Transform + { + public float4 row0; + public float4 row1; + public float4 row2; + + + public Transform(float4 row0, float4 row1, float4 row2) + { + this.row0 = row0; + this.row1 = row1; + this.row2 = row2; + } + + public static Transform Identity() + { + return new Transform( + new float4(1.0f, 0.0f, 0.0f, 0.0f), + new float4(0.0f, 1.0f, 0.0f, 0.0f), + new float4(0.0f, 0.0f, 1.0f, 0.0f)); + } + + public static Transform Translation(float3 translation) + { + return new Transform( + new float4(1.0f, 0.0f, 0.0f, translation.x), + new float4(0.0f, 1.0f, 0.0f, translation.y), + new float4(0.0f, 0.0f, 1.0f, translation.z)); + } + + public static Transform Scale(float3 scale) + { + return new Transform( + new float4(scale.x, 0.0f, 0.0f, 0.0f), + new float4(0.0f, scale.y, 0.0f, 0.0f), + new float4(0.0f, 0.0f, scale.z, 0.0f)); + } + + public static Transform TRS(float3 translation, float3 rotation, float3 scale) + { + var rot = float3x3.Euler(rotation); + rot.c0 *= scale.x; + rot.c1 *= scale.y; + rot.c2 *= scale.z; + + return new Transform( + new float4(rot.c0.x, rot.c1.x, rot.c2.x, translation.x), + new float4(rot.c0.y, rot.c1.y, rot.c2.y, translation.y), + new float4(rot.c0.z, rot.c1.z, rot.c2.z, translation.z)); + } + + public Transform Inverse() + { + float4x4 m = new float4x4(); + m[0] = new float4(row0.x, row1.x, row2.x, 0); + m[1] = new float4(row0.y, row1.y, row2.y, 0); + m[2] = new float4(row0.z, row1.z, row2.z, 0); + m[3] = new float4(row0.w, row1.w, row2.w, 1); + + m = math.fastinverse(m); + + Transform res; + res.row0 = new float4(m[0].x, m[1].x, m[2].x, m[3].x); + res.row1 = new float4(m[0].y, m[1].y, m[2].y, m[3].y); + res.row2 = new float4(m[0].z, m[1].z, m[2].z, m[3].z); + + return res; + } + } + + [StructLayout(LayoutKind.Sequential)] + internal struct BvhNode + { + public uint child0; // MSB set for leaf nodes + public uint child1; // MSB set for leaf nodes + public uint parent; + public uint update; + + public float3 aabb0_min; + public float3 aabb0_max; + public float3 aabb1_min; + public float3 aabb1_max; + } + + [StructLayout(LayoutKind.Sequential)] + internal struct BvhHeader + { + public uint internalNodeCount; + public uint leafNodeCount; + public uint root; + public uint unused; + + public float3 globalAabbMin; + public float3 globalAabbMax; + public uint3 unused3; + public uint3 unused4; + } + + internal struct Instance + { + public uint meshAccelStructOffset; + public uint instanceMask; + public uint vertexOffset; + public uint meshAccelStructLeavesOffset; + public bool triangleCullingEnabled; + public bool invertTriangleCulling; + public uint userInstanceID; + public bool isOpaque; + public Transform localToWorldTransform; + } + + [StructLayout(LayoutKind.Sequential)] + internal struct InstanceInfo + { + public int blasOffset; + public int instanceMask; + public int vertexOffset; + public int indexOffset; + public uint disableTriangleCulling; + public uint invertTriangleCulling; + public uint userInstanceID; + public int isOpaque; + public Transform worldToLocalTransform; + public Transform localToWorldTransform; + } + + internal sealed class RadeonRaysShaders + { + public ComputeShader bitHistogram; + public ComputeShader blockReducePart; + public ComputeShader blockScan; + public ComputeShader buildHlbvh; + public ComputeShader restructureBvh; + public ComputeShader scatter; + +#if UNITY_EDITOR + public static RadeonRaysShaders LoadFromPath(string kernelFolderPath) + { + var res = new RadeonRaysShaders(); + + res.bitHistogram = UnityEditor.AssetDatabase.LoadAssetAtPath(Path.Combine(kernelFolderPath, "bit_histogram.compute")); + res.blockReducePart = UnityEditor.AssetDatabase.LoadAssetAtPath(Path.Combine(kernelFolderPath, "block_reduce_part.compute")); + res.blockScan = UnityEditor.AssetDatabase.LoadAssetAtPath(Path.Combine(kernelFolderPath, "block_scan.compute")); + res.buildHlbvh = UnityEditor.AssetDatabase.LoadAssetAtPath(Path.Combine(kernelFolderPath, "build_hlbvh.compute")); + res.restructureBvh = UnityEditor.AssetDatabase.LoadAssetAtPath(Path.Combine(kernelFolderPath, "restructure_bvh.compute")); + res.scatter = UnityEditor.AssetDatabase.LoadAssetAtPath(Path.Combine(kernelFolderPath, "scatter.compute")); + + return res; + } +#endif + } + + internal class RadeonRaysAPI : IDisposable + { + readonly HlbvhBuilder buildBvh; + readonly HlbvhTopLevelBuilder buildTopLevelBvh; + readonly RestructureBvh restructureBvh; + + public const GraphicsBuffer.Target BufferTarget = GraphicsBuffer.Target.Structured; + + public RadeonRaysAPI(RadeonRaysShaders shaders) + { + buildBvh = new HlbvhBuilder(shaders); + buildTopLevelBvh = new HlbvhTopLevelBuilder(shaders); + restructureBvh = new RestructureBvh(shaders); + } + public void Dispose() + { + restructureBvh.Dispose(); + } + + static public int BvhInternalNodeSizeInDwords() { return Marshal.SizeOf() / 4; } + static public int BvhInternalNodeSizeInBytes() { return Marshal.SizeOf(); } + static public int BvhLeafNodeSizeInBytes() { return Marshal.SizeOf(); } + static public int BvhLeafNodeSizeInDwords() { return Marshal.SizeOf() / 4; } + + public void BuildMeshAccelStruct( + CommandBuffer cmd, + MeshBuildInfo buildInfo, BuildFlags buildFlags, + GraphicsBuffer scratchBuffer, + in BottomLevelLevelAccelStruct result) + { + if (SystemInfo.graphicsDeviceType == GraphicsDeviceType.Metal) + buildFlags |= BuildFlags.PreferFastBuild; + + buildBvh.Execute(cmd, + buildInfo.vertices, buildInfo.verticesStartOffset, buildInfo.vertexStride, + buildInfo.triangleIndices, buildInfo.indicesStartOffset, buildInfo.baseIndex, buildInfo.indexFormat, buildInfo.triangleCount, + scratchBuffer, in result); + + if ((buildFlags & BuildFlags.PreferFastBuild) == 0) + { + restructureBvh.Execute(cmd, + buildInfo.vertices, buildInfo.verticesStartOffset, buildInfo.vertexStride, buildInfo.triangleCount, + scratchBuffer, in result); + } + } + + public MeshBuildMemoryRequirements GetMeshBuildMemoryRequirements(MeshBuildInfo buildInfo, BuildFlags buildFlags) + { + if (SystemInfo.graphicsDeviceType == GraphicsDeviceType.Metal) + buildFlags |= BuildFlags.PreferFastBuild; + + var result = new MeshBuildMemoryRequirements(); + result.bvhSizeInDwords = buildBvh.GetResultDataSizeInDwords(buildInfo.triangleCount); + result.bvhLeavesSizeInDwords = buildInfo.triangleCount * (ulong)RadeonRaysAPI.BvhLeafNodeSizeInDwords(); + + result.buildScratchSizeInDwords = buildBvh.GetScratchDataSizeInDwords(buildInfo.triangleCount); + + ulong restructureScratchSize = ((buildFlags & BuildFlags.PreferFastBuild) == 0) ? restructureBvh.GetScratchDataSizeInDwords(buildInfo.triangleCount) : 0; + result.buildScratchSizeInDwords = math.max(result.buildScratchSizeInDwords, restructureScratchSize); + + return result; + } + + public TopLevelAccelStruct BuildSceneAccelStruct( + CommandBuffer cmd, + GraphicsBuffer meshAccelStructsBuffer, + Instance[] instances, + GraphicsBuffer scratchBuffer) + { + var accelStruct = new TopLevelAccelStruct(); + + if (instances.Length == 0) + { + buildTopLevelBvh.CreateEmpty(ref accelStruct); + return accelStruct; + } + + buildTopLevelBvh.AllocateResultBuffers((uint)instances.Length, ref accelStruct); + + var instancesInfos = new InstanceInfo[instances.Length]; + for (uint i = 0; i < instances.Length; ++i) + { + instancesInfos[i] = new InstanceInfo + { + blasOffset = (int)instances[i].meshAccelStructOffset, + instanceMask = (int)instances[i].instanceMask, + vertexOffset = (int)instances[i].vertexOffset, + indexOffset = (int)instances[i].meshAccelStructLeavesOffset, + localToWorldTransform = instances[i].localToWorldTransform, + disableTriangleCulling = instances[i].triangleCullingEnabled ? 0 : (1u << 30), + invertTriangleCulling = instances[i].invertTriangleCulling ? (1u << 31) : 0, + userInstanceID = instances[i].userInstanceID, + isOpaque = instances[i].isOpaque ? 1 : 0 + // worldToLocal computed in the shader + }; + } + accelStruct.instanceInfos.SetData(instancesInfos); + accelStruct.bottomLevelBvhs = meshAccelStructsBuffer; + accelStruct.instanceCount = (uint)instances.Length; + + buildTopLevelBvh.Execute(cmd, scratchBuffer, ref accelStruct); + + return accelStruct; + } + + public TopLevelAccelStruct CreateSceneAccelStructBuffers( + GraphicsBuffer meshAccelStructsBuffer, + uint tlasSizeInDwords, + Instance[] instances) + { + var accelStruct = new TopLevelAccelStruct(); + + if (instances.Length == 0) + { + buildTopLevelBvh.CreateEmpty(ref accelStruct); + return accelStruct; + } + + var instancesInfos = new InstanceInfo[instances.Length]; + for (uint i = 0; i < instances.Length; ++i) + { + instancesInfos[i] = new InstanceInfo + { + blasOffset = (int)instances[i].meshAccelStructOffset, + instanceMask = (int)instances[i].instanceMask, + vertexOffset = (int)instances[i].vertexOffset, + indexOffset = (int)instances[i].meshAccelStructLeavesOffset, + localToWorldTransform = instances[i].localToWorldTransform, + disableTriangleCulling = instances[i].triangleCullingEnabled ? 0 : (1u << 30), + invertTriangleCulling = instances[i].invertTriangleCulling ? (1u << 31) : 0, + userInstanceID = instances[i].userInstanceID, + worldToLocalTransform = instances[i].localToWorldTransform.Inverse() + }; + } + + accelStruct.instanceInfos = new GraphicsBuffer(TopLevelAccelStruct.instanceInfoTarget, instances.Length, Marshal.SizeOf()); + accelStruct.instanceInfos.SetData(instancesInfos); + accelStruct.bottomLevelBvhs = meshAccelStructsBuffer; + accelStruct.topLevelBvh = new GraphicsBuffer(TopLevelAccelStruct.topLevelBvhTarget, (int)tlasSizeInDwords / BvhInternalNodeSizeInDwords(), Marshal.SizeOf()); + accelStruct.instanceCount = (uint)instances.Length; + + return accelStruct; + } + + public SceneBuildMemoryRequirements GetSceneBuildMemoryRequirements(uint instanceCount) + { + var result = new SceneBuildMemoryRequirements(); + result.buildScratchSizeInDwords = buildTopLevelBvh.GetScratchDataSizeInDwords(instanceCount); + + return result; + } + + public SceneMemoryRequirements GetSceneMemoryRequirements(MeshBuildInfo[] buildInfos, BuildFlags buildFlags) + { + if (SystemInfo.graphicsDeviceType == GraphicsDeviceType.Metal) + buildFlags |= BuildFlags.PreferFastBuild; + + var requirements = new SceneMemoryRequirements(); + requirements.buildScratchSizeInDwords = 0; + + requirements.bottomLevelBvhSizeInNodes = new ulong[buildInfos.Length]; + requirements.bottomLevelBvhOffsetInNodes = new uint[buildInfos.Length]; + + requirements.bottomLevelBvhLeavesSizeInNodes = new ulong[buildInfos.Length]; + requirements.bottomLevelBvhLeavesOffsetInNodes = new uint[buildInfos.Length]; + + int i = 0; + uint bvhOffset = 0; + uint bvhLeavesOffset = 0; + foreach (var buildInfo in buildInfos) + { + var meshRequirements = GetMeshBuildMemoryRequirements(buildInfo, buildFlags); + + requirements.buildScratchSizeInDwords = math.max(requirements.buildScratchSizeInDwords, meshRequirements.buildScratchSizeInDwords); + + requirements.bottomLevelBvhSizeInNodes[i] = meshRequirements.bvhSizeInDwords / (ulong)RadeonRaysAPI.BvhInternalNodeSizeInDwords(); + requirements.bottomLevelBvhOffsetInNodes[i] = bvhOffset; + + requirements.bottomLevelBvhLeavesSizeInNodes[i] = meshRequirements.bvhLeavesSizeInDwords / (ulong)RadeonRaysAPI.BvhLeafNodeSizeInDwords(); + requirements.bottomLevelBvhLeavesOffsetInNodes[i] = bvhLeavesOffset; + + bvhOffset += (uint)(meshRequirements.bvhSizeInDwords / (ulong)RadeonRaysAPI.BvhInternalNodeSizeInDwords()); + bvhLeavesOffset += (uint)(meshRequirements.bvhLeavesSizeInDwords / (ulong)RadeonRaysAPI.BvhLeafNodeSizeInDwords()); + i++; + } + + requirements.totalBottomLevelBvhSizeInNodes = bvhOffset; + requirements.totalBottomLevelBvhLeavesSizeInNodes = bvhLeavesOffset; + + ulong topLevelScratchSize = buildTopLevelBvh.GetScratchDataSizeInDwords((uint)buildInfos.Length); + requirements.buildScratchSizeInDwords = math.max(requirements.buildScratchSizeInDwords, topLevelScratchSize); + + return requirements; + } + + static public ulong GetTraceMemoryRequirements(uint rayCount) + { + const uint kStackSize = 64u; + return kStackSize* rayCount; + } + + } +} diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/RadeonRaysAPI.cs.meta b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/RadeonRaysAPI.cs.meta new file mode 100644 index 00000000000..2902d6783d5 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/RadeonRaysAPI.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 72f2039b19e30244dafbaeed758cb3c6 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/RadixSort.cs b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/RadixSort.cs new file mode 100644 index 00000000000..dd1d5785fc3 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/RadixSort.cs @@ -0,0 +1,106 @@ + +namespace UnityEngine.Rendering.RadeonRays +{ + internal class RadixSort + { + readonly ComputeShader shaderBitHistogram; + readonly int kernelBitHistogram; + + readonly ComputeShader shaderScatter; + readonly int kernelScatter; + + readonly Scan scan; + + const uint kKeysPerThread = 4u; + const uint kGroupSize = 256u; + const uint kKeysPerGroup = kKeysPerThread * kGroupSize; + const int kNumBitsPerPass = 4; + + public RadixSort(RadeonRaysShaders shaders) + { + shaderBitHistogram = shaders.bitHistogram; + kernelBitHistogram = shaderBitHistogram.FindKernel("BitHistogram"); + + shaderScatter = shaders.scatter; + kernelScatter = shaderScatter.FindKernel("Scatter"); + + scan = new Scan(shaders); + } + public void Execute( + CommandBuffer cmd, + GraphicsBuffer buffer, + uint inputKeysOffset, uint outputKeysOffset, + uint inputValuesOffset, uint outputValuesOffset, + uint scratchDataOffset, uint size) + { + uint num_histogram_values = (1 << kNumBitsPerPass) * Common.CeilDivide(size, kKeysPerGroup); + uint num_groups = Common.CeilDivide(size, kKeysPerGroup); + + uint tempsKeys = scratchDataOffset; + uint tempValues = tempsKeys + size ; + uint groupHistograms = tempValues + size; + uint scan_scratch = groupHistograms + num_histogram_values; + + uint i = outputKeysOffset; + uint iv = outputValuesOffset; + + uint o = tempsKeys; + uint ov = tempValues; + + for (uint bitshift = 0u; bitshift < 32; bitshift += kNumBitsPerPass) + { + // Calculate histograms + { + cmd.SetComputeIntParam(shaderBitHistogram, SID.g_constants_num_keys, (int)size); + cmd.SetComputeIntParam(shaderBitHistogram, SID.g_constants_num_blocks, (int)Common.CeilDivide(size, kKeysPerGroup)); + cmd.SetComputeIntParam(shaderBitHistogram, SID.g_constants_bit_shift, (int)bitshift); + + cmd.SetComputeBufferParam(shaderBitHistogram, kernelBitHistogram, SID.g_buffer, buffer); + cmd.SetComputeIntParam(shaderBitHistogram, SID.g_input_keys_offset, (int)(bitshift == 0 ? inputKeysOffset : i)); + cmd.SetComputeIntParam(shaderBitHistogram, SID.g_group_histograms_offset, (int)groupHistograms); + + cmd.DispatchCompute(shaderBitHistogram, kernelBitHistogram, (int)num_groups, 1, 1); + } + + // Scan histograms + scan.Execute(cmd, buffer, groupHistograms, groupHistograms, scan_scratch, num_histogram_values); + + // Scatter key values + { + cmd.SetComputeIntParam(shaderScatter, SID.g_constants_num_keys, (int)size); + cmd.SetComputeIntParam(shaderScatter, SID.g_constants_num_blocks, (int)Common.CeilDivide(size, kKeysPerGroup)); + cmd.SetComputeIntParam(shaderScatter, SID.g_constants_bit_shift, (int)bitshift); + + cmd.SetComputeBufferParam(shaderScatter, kernelScatter, SID.g_buffer, buffer); + cmd.SetComputeIntParam(shaderScatter, SID.g_input_keys_offset, (int)(bitshift == 0 ? inputKeysOffset : i)); + cmd.SetComputeIntParam(shaderScatter, SID.g_group_histograms_offset, (int)groupHistograms); + cmd.SetComputeIntParam(shaderScatter, SID.g_output_keys_offset, (int)o); + cmd.SetComputeIntParam(shaderScatter, SID.g_input_values_offset, (int)(bitshift == 0 ? inputValuesOffset : iv)); + cmd.SetComputeIntParam(shaderScatter, SID.g_output_values_offset, (int)ov); + + cmd.DispatchCompute(shaderScatter, kernelScatter, (int)num_groups, 1, 1); + } + + // swap buffers + (o, i) = (i, o); + (ov, iv) = (iv, ov); + } + } + static public ulong GetScratchDataSizeInDwords(uint size) + { + uint num_histogram_values = (1 << kNumBitsPerPass) * Common.CeilDivide(size, kKeysPerGroup); + + ulong scratch_size = 0; + // Histogram buffer: num bins * num groups + scratch_size += num_histogram_values; + // Temporary buffers for ping-pong + // additional 1024 ints are a workaround for when DX can generate out of bounds error + // even if no actual out of bounds access happening + scratch_size += 2 * size + 1024; + // Scan scratch size + scratch_size += Scan.GetScratchDataSizeInDwords(num_histogram_values); + + return scratch_size; + } + } +} diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/RadixSort.cs.meta b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/RadixSort.cs.meta new file mode 100644 index 00000000000..78e073ebb38 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/RadixSort.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e8f82bb52f3ef1645959cbcafd7ce168 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/RestructureBvh.cs b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/RestructureBvh.cs new file mode 100644 index 00000000000..f03a9296c67 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/RestructureBvh.cs @@ -0,0 +1,135 @@ +using System; +using System.IO; +using System.Runtime.InteropServices; +using Unity.Mathematics; + +namespace UnityEngine.Rendering.RadeonRays +{ + internal sealed class RestructureBvh : IDisposable + { + readonly ComputeShader shader; + readonly int kernelInitPrimitiveCounts; + readonly int kernelFindTreeletRoots; + readonly int kernelRestructure; + readonly int kernelPrepareTreeletsDispatchSize; + const int numIterations = 3; + readonly GraphicsBuffer treeletDispatchIndirectBuffer; + + const uint kGroupSize = 256u; + const uint kTrianglesPerThread = 8u; + const uint kTrianglesPerGroup = kTrianglesPerThread * kGroupSize; + const uint kMinPrimitivesPerTreelet = 64u; + const int kMaxThreadGroupsPerDispatch = 65535; + + public RestructureBvh(RadeonRaysShaders shaders) + { + shader = shaders.restructureBvh; + kernelInitPrimitiveCounts = shader.FindKernel("InitPrimitiveCounts"); + kernelFindTreeletRoots = shader.FindKernel("FindTreeletRoots"); + kernelRestructure = shader.FindKernel("Restructure"); + kernelPrepareTreeletsDispatchSize = shader.FindKernel("PrepareTreeletsDispatchSize"); + + treeletDispatchIndirectBuffer = new GraphicsBuffer(GraphicsBuffer.Target.IndirectArguments, 6, sizeof(uint)); + } + public void Dispose() + { + treeletDispatchIndirectBuffer.Dispose(); + } + + public ulong GetScratchDataSizeInDwords(uint triangleCount) + { + var scratchLayout = ScratchBufferLayout.Create(triangleCount); + return scratchLayout.TotalSize; + } + + public static uint GetBvhNodeCount(uint leafCount) + { + return leafCount - 1; + } + + public void Execute( + CommandBuffer cmd, + GraphicsBuffer vertices, int verticesOffset, uint vertexStride, uint triangleCount, + GraphicsBuffer scratch, in BottomLevelLevelAccelStruct result) + { + var scratchLayout = ScratchBufferLayout.Create(triangleCount); + + cmd.SetComputeIntParam(shader, SID.g_vertices_offset, verticesOffset); + cmd.SetComputeIntParam(shader, SID.g_constants_vertex_stride, (int)vertexStride); + cmd.SetComputeIntParam(shader, SID.g_constants_triangle_count, (int)triangleCount); + cmd.SetComputeIntParam(shader, SID.g_treelet_count_offset, (int)scratchLayout.TreeletCount); + cmd.SetComputeIntParam(shader, SID.g_treelet_roots_offset, (int)scratchLayout.TreeletRoots); + cmd.SetComputeIntParam(shader, SID.g_primitive_counts_offset, (int)scratchLayout.PrimitiveCounts); + cmd.SetComputeIntParam(shader, SID.g_leaf_parents_offset, (int)scratchLayout.LeafParents); + cmd.SetComputeIntParam(shader, SID.g_bvh_offset, (int)result.bvhOffset); + cmd.SetComputeIntParam(shader, SID.g_bvh_leaves_offset, (int)result.bvhLeavesOffset); + + uint minPrimitivePerTreelet = kMinPrimitivesPerTreelet; + for (int i = 0; i < numIterations; ++i) + { + cmd.SetComputeIntParam(shader, SID.g_constants_min_prims_per_treelet, (int)minPrimitivePerTreelet); + + BindKernelArguments(cmd, kernelInitPrimitiveCounts, vertices, scratch, result); + cmd.DispatchCompute(shader, kernelInitPrimitiveCounts, (int)Common.CeilDivide(kTrianglesPerGroup, kGroupSize), 1, 1); + + BindKernelArguments(cmd, kernelFindTreeletRoots, vertices, scratch, result); + cmd.DispatchCompute(shader, kernelFindTreeletRoots, (int)Common.CeilDivide(kTrianglesPerGroup, kGroupSize), 1, 1); + + BindKernelArguments(cmd, kernelPrepareTreeletsDispatchSize, vertices, scratch, result); + cmd.DispatchCompute(shader, kernelPrepareTreeletsDispatchSize, 1, 1, 1); + + BindKernelArguments(cmd, kernelRestructure, vertices, scratch, result); + cmd.SetComputeIntParam(shader, SID.g_remainder_treelets, 0); + cmd.DispatchCompute(shader, kernelRestructure, treeletDispatchIndirectBuffer, 0); + + if (Common.CeilDivide(triangleCount, minPrimitivePerTreelet) > kMaxThreadGroupsPerDispatch) + { + cmd.SetComputeIntParam(shader, SID.g_remainder_treelets, 1); + cmd.DispatchCompute(shader, kernelRestructure, treeletDispatchIndirectBuffer, 3 * sizeof(uint)); + } + + minPrimitivePerTreelet *= 2; + } + } + + private void BindKernelArguments( + CommandBuffer cmd, int kernel, + GraphicsBuffer vertices, + GraphicsBuffer scratch, BottomLevelLevelAccelStruct result) + { + cmd.SetComputeBufferParam(shader, kernel, SID.g_vertices, vertices); + cmd.SetComputeBufferParam(shader, kernel, SID.g_scratch_buffer, scratch); + cmd.SetComputeBufferParam(shader, kernel, SID.g_bvh, result.bvh); + cmd.SetComputeBufferParam(shader, kernel, SID.g_bvh_leaves, result.bvhLeaves); + cmd.SetComputeBufferParam(shader, kernel, SID.g_treelet_dispatch_buffer, treeletDispatchIndirectBuffer); + } + + struct ScratchBufferLayout + { + public uint LeafParents; + public uint TreeletCount; + public uint TreeletRoots; + public uint PrimitiveCounts; + public uint TotalSize; + + public static ScratchBufferLayout Create(uint triangleCount) + { + var result = new ScratchBufferLayout(); + result.LeafParents = result.Reserve(triangleCount); + result.TreeletCount = result.Reserve(1); + result.TreeletRoots = result.Reserve(triangleCount); + result.PrimitiveCounts = result.Reserve(GetBvhNodeCount(triangleCount)); + + return result; + } + + uint Reserve(uint size) + { + var temp = TotalSize; + TotalSize += size; + return temp; + } + } + } +} + diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/RestructureBvh.cs.meta b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/RestructureBvh.cs.meta new file mode 100644 index 00000000000..7bab6fa59c4 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/RestructureBvh.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9dc191720bcb9a94188d52e5651d86cc +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/Scan.cs b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/Scan.cs new file mode 100644 index 00000000000..b39f23ce3c0 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/Scan.cs @@ -0,0 +1,116 @@ + +namespace UnityEngine.Rendering.RadeonRays +{ + internal class Scan + { + readonly ComputeShader shaderScan; + readonly int kernelScan; + + readonly ComputeShader shaderReduce; + readonly int kernelReduce; + + const uint kKeysPerThread = 4u; + const uint kGroupSize = 256u; + const uint kKeysPerGroup = kKeysPerThread * kGroupSize; + + public Scan(RadeonRaysShaders shaders) + { + shaderScan = shaders.blockScan; + kernelScan = shaderScan.FindKernel("BlockScanAdd"); + + shaderReduce = shaders.blockReducePart; + kernelReduce = shaderReduce.FindKernel("BlockReducePart"); + } + public void Execute(CommandBuffer cmd, GraphicsBuffer buffer, uint inputKeysOffset, uint outputKeysOffset, uint scratchDataOffset, uint size) + { + if (size > kKeysPerGroup) + { + var num_groups_level_1 = Common.CeilDivide(size, kKeysPerGroup); + + // Do first round of part sum reduction. + SetState(cmd, shaderReduce, kernelReduce, size, buffer, + inputKeysOffset, + scratchDataOffset, + outputKeysOffset); + cmd.DispatchCompute(shaderReduce, kernelReduce, (int)num_groups_level_1, 1, 1); + + if (num_groups_level_1 > kKeysPerGroup) + { + var num_groups_level_2 = Common.CeilDivide(num_groups_level_1, kKeysPerGroup); + + // Do second round of part sum reduction. + SetState(cmd, shaderReduce, kernelReduce, num_groups_level_1, buffer, + scratchDataOffset, + scratchDataOffset + num_groups_level_1, + scratchDataOffset); + cmd.DispatchCompute(shaderReduce, kernelReduce, (int)num_groups_level_2, 1, 1); + + // Scan level 2 inplace. + Common.EnableKeyword(cmd, shaderScan, "ADD_PART_SUM", false); + SetState(cmd, shaderScan, kernelScan, num_groups_level_2, buffer, + scratchDataOffset + num_groups_level_1, + scratchDataOffset, + scratchDataOffset + num_groups_level_1); + cmd.DispatchCompute(shaderScan, kernelScan, 1, 1, 1); + } + + // Scan and add level 2 back to level 1. + { + Common.EnableKeyword(cmd, shaderScan, "ADD_PART_SUM", num_groups_level_1 > kKeysPerGroup); + SetState(cmd, shaderScan, kernelScan, num_groups_level_1, buffer, + scratchDataOffset, + scratchDataOffset + num_groups_level_1, + scratchDataOffset); + var num_groups_scan_level_1 = Common.CeilDivide(num_groups_level_1, kKeysPerGroup); + cmd.DispatchCompute(shaderScan, kernelScan, (int)num_groups_scan_level_1, 1, 1); + } + } + + // Scan and add level 1 back. + { + Common.EnableKeyword(cmd, shaderScan, "ADD_PART_SUM", size > kKeysPerGroup); + SetState(cmd, shaderScan, kernelScan, size, buffer, + inputKeysOffset, + scratchDataOffset, + outputKeysOffset); + var num_groups_scan_level_0 = Common.CeilDivide(size, kKeysPerGroup); + cmd.DispatchCompute(shaderScan, kernelScan, (int)num_groups_scan_level_0, 1, 1); + } + } + + void SetState( + CommandBuffer cmd, + ComputeShader shader, int kernelIndex, uint size, GraphicsBuffer buffer, + uint inputKeysOffset, uint scratchDataOffset, uint outputKeysOffset) + { + cmd.SetComputeIntParam(shader, SID.g_constants_num_keys, (int)size); + + cmd.SetComputeIntParam(shader, SID.g_constants_input_keys_offset, (int)inputKeysOffset); + cmd.SetComputeIntParam(shader, SID.g_constants_part_sums_offset, (int)scratchDataOffset); + cmd.SetComputeIntParam(shader, SID.g_constants_output_keys_offset, (int)outputKeysOffset); + + cmd.SetComputeBufferParam(shader, kernelIndex, SID.g_buffer, buffer); + } + + static public ulong GetScratchDataSizeInDwords(uint size) + { + if (size <= kKeysPerGroup) + { + return 0; + } + else + { + var sizeLevel1 = Common.CeilDivide(size, kKeysPerGroup); + if (sizeLevel1 <= kKeysPerGroup) + { + return sizeLevel1; + } + else + { + var sizeLevel2 = Common.CeilDivide(sizeLevel1, kKeysPerGroup); + return (sizeLevel1 + sizeLevel2); + } + } + } + } +} diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/Scan.cs.meta b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/Scan.cs.meta new file mode 100644 index 00000000000..0b35bc3f977 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/Scan.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c083b11656047954d8aab3b2b0713f33 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/StringIDs.cs b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/StringIDs.cs new file mode 100644 index 00000000000..c342ee3f403 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/StringIDs.cs @@ -0,0 +1,60 @@ + +namespace UnityEngine.Rendering.RadeonRays +{ + internal static class SID + { + public static readonly int g_vertices = Shader.PropertyToID("g_vertices"); + public static readonly int g_indices = Shader.PropertyToID("g_indices"); + public static readonly int g_scratch_buffer = Shader.PropertyToID("g_scratch_buffer"); + public static readonly int g_bvh = Shader.PropertyToID("g_bvh"); + public static readonly int g_bvh_leaves = Shader.PropertyToID("g_bvh_leaves"); + public static readonly int g_buffer = Shader.PropertyToID("g_buffer"); + public static readonly int g_primitive_refs_offset = Shader.PropertyToID("g_primitive_refs_offset"); + public static readonly int g_morton_codes_offset = Shader.PropertyToID("g_morton_codes_offset"); + public static readonly int g_constants_num_keys = Shader.PropertyToID("g_constants_num_keys"); + public static readonly int g_constants_input_keys_offset = Shader.PropertyToID("g_constants_input_keys_offset"); + public static readonly int g_constants_part_sums_offset = Shader.PropertyToID("g_constants_part_sums_offset"); + public static readonly int g_constants_output_keys_offset = Shader.PropertyToID("g_constants_output_keys_offset"); + public static readonly int g_constants_num_blocks = Shader.PropertyToID("g_constants_num_blocks"); + public static readonly int g_constants_bit_shift = Shader.PropertyToID("g_constants_bit_shift"); + public static readonly int g_input_keys_offset = Shader.PropertyToID("g_input_keys_offset"); + public static readonly int g_group_histograms_offset = Shader.PropertyToID("g_group_histograms_offset"); + public static readonly int g_output_keys_offset = Shader.PropertyToID("g_output_keys_offset"); + public static readonly int g_input_values_offset = Shader.PropertyToID("g_input_values_offset"); + public static readonly int g_output_values_offset = Shader.PropertyToID("g_output_values_offset"); + public static readonly int g_aabb_offset = Shader.PropertyToID("g_aabb_offset"); + public static readonly int g_constants_vertex_stride = Shader.PropertyToID("g_constants_vertex_stride"); + public static readonly int g_constants_triangle_count = Shader.PropertyToID("g_constants_triangle_count"); + public static readonly int g_constants_ray_count = Shader.PropertyToID("g_constants_ray_count"); + public static readonly int g_ray_count = Shader.PropertyToID("g_ray_count"); + public static readonly int g_rays = Shader.PropertyToID("g_rays"); + public static readonly int g_hits = Shader.PropertyToID("g_hits"); + public static readonly int g_constants_min_prims_per_treelet = Shader.PropertyToID("g_constants_min_prims_per_treelet"); + public static readonly int g_treelet_count_offset = Shader.PropertyToID("g_treelet_count_offset"); + public static readonly int g_treelet_roots_offset = Shader.PropertyToID("g_treelet_roots_offset"); + public static readonly int g_primitive_counts_offset = Shader.PropertyToID("g_primitive_counts_offset"); + public static readonly int g_treelet_dispatch_buffer = Shader.PropertyToID("g_treelet_dispatch_buffer"); + public static readonly int g_treelet_offset = Shader.PropertyToID("g_treelet_offset"); + public static readonly int g_remainder_treelets = Shader.PropertyToID("g_remainder_treelets"); + public static readonly int g_bvh_offset = Shader.PropertyToID("g_bvh_offset"); + public static readonly int g_bvh_leaves_offset = Shader.PropertyToID("g_bvh_leaves_offset"); + public static readonly int g_instance_infos = Shader.PropertyToID("g_instance_infos"); + public static readonly int g_bottom_bvhs = Shader.PropertyToID("g_bottom_bvhs"); + public static readonly int g_indices_offset = Shader.PropertyToID("g_indices_offset"); + public static readonly int g_base_index = Shader.PropertyToID("g_base_index"); + public static readonly int g_vertices_offset = Shader.PropertyToID("g_vertices_offset"); + public static readonly int g_bvh_node_count = Shader.PropertyToID("g_bvh_node_count"); + public static readonly int g_trace_index_buffer = Shader.PropertyToID("g_trace_index_buffer"); + public static readonly int g_trace_vertex_buffer = Shader.PropertyToID("g_trace_vertex_buffer"); + public static readonly int g_trace_vertex_stride = Shader.PropertyToID("g_trace_vertex_stride"); + public static readonly int g_sorted_prim_refs_offset = Shader.PropertyToID("g_sorted_prim_refs_offset"); + public static readonly int g_temp_indices_offset = Shader.PropertyToID("g_temp_indices_offset"); + public static readonly int g_internal_node_range_offset = Shader.PropertyToID("g_internal_node_range_offset"); + public static readonly int g_cluster_validity_offset = Shader.PropertyToID("g_cluster_validity_offset"); + public static readonly int g_cluster_range_offset = Shader.PropertyToID("g_cluster_range_offset"); + public static readonly int g_neighbor_offset = Shader.PropertyToID("g_neighbor_offset"); + public static readonly int g_cluster_to_node_offset = Shader.PropertyToID("g_cluster_to_node_offset"); + public static readonly int g_deltas_offset = Shader.PropertyToID("g_deltas_offset"); + public static readonly int g_leaf_parents_offset = Shader.PropertyToID("g_leaf_parents_offset"); + } +} diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/StringIDs.cs.meta b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/StringIDs.cs.meta new file mode 100644 index 00000000000..a4a49ea65c4 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/StringIDs.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5e7ff31e76460b5468d3c45cf9095a6b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels.meta b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels.meta new file mode 100644 index 00000000000..cd2df8a5436 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9a4184587b7c760418ee26ca0a32df62 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/CopyPositions.compute b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/CopyPositions.compute new file mode 100644 index 00000000000..c51e6b8d803 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/CopyPositions.compute @@ -0,0 +1,33 @@ + + +#define GROUP_SIZE 128 +#define ITEMS_PER_THREAD 48 + +int _InputPosBufferCount; +int _InputBaseVertex; +int _InputPosBufferStride; +int _InputPosBufferOffset; +int _OutputPosBufferOffset; + +ByteAddressBuffer _InputPosBuffer; +RWStructuredBuffer _OutputPosBuffer; + +#pragma kernel CopyVertexBuffer +[numthreads(GROUP_SIZE, 1, 1)] +void CopyVertexBuffer(uint gidx : SV_DispatchThreadID) +{ + for (int i = 0; i < ITEMS_PER_THREAD; ++i) + { + int offset = gidx * ITEMS_PER_THREAD + i; + if (offset >= _InputPosBufferCount) + return; + + uint inputAddr = _InputPosBufferOffset + (_InputBaseVertex + offset) * _InputPosBufferStride; + uint3 val = _InputPosBuffer.Load3(inputAddr << 2); + + uint outputAddr = _OutputPosBufferOffset + 3 * offset; + _OutputPosBuffer[outputAddr] = val.x; + _OutputPosBuffer[outputAddr + 1] = val.y; + _OutputPosBuffer[outputAddr + 2] = val.z; + } +} diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/CopyPositions.compute.meta b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/CopyPositions.compute.meta new file mode 100644 index 00000000000..c38dc07b130 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/CopyPositions.compute.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 1ad53a96b58d3c3488dde4f14db1aaeb +ComputeShaderImporter: + externalObjects: {} + userData: + assetBundleName: unifiedraytracing + assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/aabb.hlsl b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/aabb.hlsl new file mode 100644 index 00000000000..4cedbb02d89 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/aabb.hlsl @@ -0,0 +1,64 @@ +/********************************************************************** +Copyright (c) 2019 Advanced Micro Devices, Inc. All rights reserved. +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +********************************************************************/ +#ifndef AABB_HLSL +#define AABB_HLSL + +//< Bounding box defined by two corners. +struct Aabb +{ + float3 pmin; + float3 pmax; +}; + +#ifndef HOST +#ifndef FLT_MAX +#define FLT_MAX 3.402823e+38 +#endif +//< Create an empty bounding box. +Aabb CreateEmptyAabb() +{ + Aabb aabb; + aabb.pmin = float3(FLT_MAX, FLT_MAX, FLT_MAX); + aabb.pmax = float3(-FLT_MAX, -FLT_MAX, -FLT_MAX); + return aabb; +} + +//< Extend AABB to encompass a point. +void GrowAabb(in float3 p, inout Aabb aabb) +{ + aabb.pmin = min(aabb.pmin, p); + aabb.pmax = max(aabb.pmax, p); +} + +//< Extend AABB to encompass an AABB point. +void GrowAabb(in Aabb a, inout Aabb aabb) +{ + GrowAabb(a.pmin, aabb); + GrowAabb(a.pmax, aabb); +} + +//< Calculate surface area of an AABB. +float GetAabbSurfaceArea(in Aabb aabb) +{ + float3 e = aabb.pmax - aabb.pmin; + return 2.f * dot(e, e.zxy); +} +#endif + +#endif // AABB_HLSL \ No newline at end of file diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/aabb.hlsl.meta b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/aabb.hlsl.meta new file mode 100644 index 00000000000..0600a849a87 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/aabb.hlsl.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 6065e50fcb17cf247938a4f5ed300176 +ShaderIncludeImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/bit_histogram.compute b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/bit_histogram.compute new file mode 100644 index 00000000000..fd72142b807 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/bit_histogram.compute @@ -0,0 +1,78 @@ +/********************************************************************** +Copyright (c) 2019 Advanced Micro Devices, Inc. All rights reserved. +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +********************************************************************/ + +// WebGPU has extremely strict uniformity requirements that are incompatible with the current implementation of this shader. +#pragma exclude_renderers webgpu + +uint g_constants_num_keys; +uint g_constants_num_blocks; +uint g_constants_bit_shift; + +uint g_input_keys_offset; +uint g_group_histograms_offset; + +RWStructuredBuffer g_buffer : register(u0); + +#define NUM_BINS 16u +#define GROUP_SIZE 256u +#define KEYS_PER_THREAD 4u +groupshared int lds_histograms[NUM_BINS]; + +//[RootSignature(ROOT_SIGNATURE)] +#pragma kernel BitHistogram +[numthreads(GROUP_SIZE, 1, 1)] +void BitHistogram( + in uint gidx: SV_DispatchThreadID, + in uint lidx: SV_GroupThreadID, + in uint bidx: SV_GroupID) +{ + if (lidx < NUM_BINS) + { + lds_histograms[lidx] = 0; + } + + GroupMemoryBarrierWithGroupSync(); + + for (uint i = 0; i < KEYS_PER_THREAD; ++i) + { + // Calculate next input element index + uint key_index = gidx * KEYS_PER_THREAD + i; + + // Handle out of bounds + if (key_index >= g_constants_num_keys) + { + break; + } + + // Determine bin index for next element + int bin_index = (g_buffer[g_input_keys_offset + key_index] >> g_constants_bit_shift) & 0xf; + + // Increment LDS histogram counter (no atomic required, histogram is + // private) + InterlockedAdd(lds_histograms[bin_index], 1); + } + + GroupMemoryBarrierWithGroupSync(); + + // Write reduced bins into global memory + if (lidx < NUM_BINS) + { + g_buffer[g_group_histograms_offset + g_constants_num_blocks * lidx + bidx] = lds_histograms[lidx]; + } +} diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/bit_histogram.compute.meta b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/bit_histogram.compute.meta new file mode 100644 index 00000000000..70fdcec3673 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/bit_histogram.compute.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 8670f7ce4b60cef43bed36148aa1b0a2 +ComputeShaderImporter: + externalObjects: {} + userData: + assetBundleName: unifiedraytracing + assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/block_reduce_part.compute b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/block_reduce_part.compute new file mode 100644 index 00000000000..d170b1fb232 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/block_reduce_part.compute @@ -0,0 +1,110 @@ +/********************************************************************** +Copyright (c) 2019 Advanced Micro Devices, Inc. All rights reserved. +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +********************************************************************/ + +// WebGPU has extremely strict uniformity requirements that are incompatible with the current implementation of this shader. +#pragma exclude_renderers webgpu + +uint g_constants_num_keys; + +uint g_constants_input_keys_offset; +uint g_constants_part_sums_offset; +uint g_constants_output_keys_offset; + +RWStructuredBuffer g_buffer: register(u0); + +#define GROUP_SIZE 256u +#define KEYS_PER_THREAD 4u +groupshared int lds_keys[GROUP_SIZE]; + +int BlockReduce(int key, uint lidx) +{ +#ifndef USE_WAVE_INTRINSICS + lds_keys[lidx] = key; + + GroupMemoryBarrierWithGroupSync(); + + // Peform reduction within a block + for (int stride = (GROUP_SIZE >> 1); stride > 0; stride >>= 1) + { + if (int(lidx) < stride) + { + lds_keys[lidx] += lds_keys[lidx + stride]; + } + + GroupMemoryBarrierWithGroupSync(); + } + return lds_keys[0]; +#else + lds_keys[lidx] = 0; + + GroupMemoryBarrierWithGroupSync(); + + // Perform reduction within a subgroup + int wave_reduced = WaveActiveSum(key); + + uint widx = lidx / WaveGetLaneCount(); + uint wlidx = WaveGetLaneIndex(); + + // First element of each wave puts subgroup-reduced value into LDS + if (wlidx == 0) + { + lds_keys[widx] = wave_reduced; + } + + GroupMemoryBarrierWithGroupSync(); + + // First subroup reduces partial sums + if (widx == 0) + { + lds_keys[lidx] = WaveActiveSum(lds_keys[lidx]); + } + + GroupMemoryBarrierWithGroupSync(); + + return lds_keys[0]; +#endif +} + +//[RootSignature(ROOT_SIGNATURE)] +#pragma kernel BlockReducePart +[numthreads(GROUP_SIZE, 1, 1)] +void BlockReducePart( + in uint gidx: SV_DispatchThreadID, + in uint lidx: SV_GroupThreadID, + in uint bidx: SV_GroupID) +{ + int thread_sum = 0; + + // Do coalesced loads and calculate their partial sums right away + uint range_begin = bidx * GROUP_SIZE * KEYS_PER_THREAD; + for (uint i = 0; i < KEYS_PER_THREAD; ++i) + { + uint load_index = range_begin + i * GROUP_SIZE + lidx; + thread_sum += (load_index < g_constants_num_keys) ? g_buffer[g_constants_input_keys_offset + load_index] : 0; + } + + // Reduce sums + thread_sum = BlockReduce(thread_sum, lidx); + + // First thread writes the sum to partial sums array + if (lidx == 0) + { + g_buffer[g_constants_part_sums_offset + bidx] = thread_sum; + } +} diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/block_reduce_part.compute.meta b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/block_reduce_part.compute.meta new file mode 100644 index 00000000000..b100a6c36fe --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/block_reduce_part.compute.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 4e034cc8ea2635c4e9f063e5ddc7ea7a +ComputeShaderImporter: + externalObjects: {} + userData: + assetBundleName: unifiedraytracing + assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/block_scan.compute b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/block_scan.compute new file mode 100644 index 00000000000..c35d7e13cda --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/block_scan.compute @@ -0,0 +1,178 @@ +/********************************************************************** +Copyright (c) 2019 Advanced Micro Devices, Inc. All rights reserved. +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +********************************************************************/ + +// WebGPU has extremely strict uniformity requirements that are incompatible with the current implementation of this shader. +#pragma exclude_renderers webgpu + +#pragma multi_compile __ ADD_PART_SUM + +uint g_constants_num_keys; + +uint g_constants_input_keys_offset; +uint g_constants_part_sums_offset; +uint g_constants_output_keys_offset; + +RWStructuredBuffer g_buffer: register(u0); + +#define GROUP_SIZE 256u +#define KEYS_PER_THREAD 4u +groupshared int lds_keys[GROUP_SIZE]; +// This is to transform uncoalesced loads into coalesced loads and +// then scattered load from LDS +groupshared int lds_loads[KEYS_PER_THREAD][GROUP_SIZE]; + +int BlockScan(int key, uint lidx) +{ +#ifndef USE_WAVE_INTRINSICS + // Load the key into LDS + lds_keys[lidx] = key; + + GroupMemoryBarrierWithGroupSync(); + + // Calculate reduction + uint stride = 0; + for (stride = 1; stride < GROUP_SIZE; stride <<= 1) + { + if (lidx < GROUP_SIZE / (2 * stride)) + { + lds_keys[2 * (lidx + 1) * stride - 1] = + lds_keys[2 * (lidx + 1) * stride - 1] + lds_keys[(2 * lidx + 1) * stride - 1]; + } + + GroupMemoryBarrierWithGroupSync(); + } + + // Then put 0 into the root for downsweep + if (lidx == 0) + lds_keys[GROUP_SIZE - 1] = 0; + + GroupMemoryBarrierWithGroupSync(); + + // Perform downsweep + for (stride = GROUP_SIZE >> 1; stride > 0; stride >>= 1) + { + if (lidx < GROUP_SIZE / (2 * stride)) + { + int temp = lds_keys[(2 * lidx + 1) * stride - 1]; + lds_keys[(2 * lidx + 1) * stride - 1] = lds_keys[2 * (lidx + 1) * stride - 1]; + lds_keys[2 * (lidx + 1) * stride - 1] = lds_keys[2 * (lidx + 1) * stride - 1] + temp; + } + + GroupMemoryBarrierWithGroupSync(); + } + + return lds_keys[lidx]; +#else + lds_keys[lidx] = 0; + + GroupMemoryBarrierWithGroupSync(); + + // Perform scan within a subgroup + int wave_scanned = WavePrefixSum(key); + + uint widx = lidx / WaveGetLaneCount(); + uint wlidx = WaveGetLaneIndex(); + + // Last element in each subgroup writes partial sum into LDS + if (wlidx == WaveGetLaneCount() - 1) + { + lds_keys[widx] = wave_scanned + key; + } + + GroupMemoryBarrierWithGroupSync(); + + // Then first subgroup scannes partial sums + if (widx == 0) + { + lds_keys[lidx] = WavePrefixSum(lds_keys[lidx]); + } + + GroupMemoryBarrierWithGroupSync(); + + // And we add partial sums back to each subgroup-scanned element + wave_scanned += lds_keys[widx]; + + return wave_scanned; +#endif +} + +//[RootSignature(ROOT_SIGNATURE)] +#pragma kernel BlockScanAdd +[numthreads(GROUP_SIZE, 1, 1)] +void BlockScanAdd( + in uint gidx: SV_DispatchThreadID, + in uint lidx: SV_GroupThreadID, + in uint bidx: SV_GroupID) +{ + uint i = 0; // Loop counter. + + // Perform coalesced load into LDS + uint range_begin = bidx * GROUP_SIZE * KEYS_PER_THREAD; + for (i = 0; i < KEYS_PER_THREAD; ++i) + { + uint load_index = range_begin + i * GROUP_SIZE + lidx; + + uint col = (i * GROUP_SIZE + lidx) / KEYS_PER_THREAD; + uint row = (i * GROUP_SIZE + lidx) % KEYS_PER_THREAD; + + lds_loads[row][col] = (load_index < g_constants_num_keys) ? g_buffer[g_constants_input_keys_offset + load_index] : 0; + } + + GroupMemoryBarrierWithGroupSync(); + + int thread_sum = 0; + + // Calculate scan on this thread's elements + for (i = 0; i < KEYS_PER_THREAD; ++i) + { + int tmp = lds_loads[i][lidx]; + lds_loads[i][lidx] = thread_sum; + thread_sum += tmp; + } + + // Scan partial sums + thread_sum = BlockScan(thread_sum, lidx); + + // Add global partial sums if required + int part_sum = 0; +#if ADD_PART_SUM + part_sum = g_buffer[g_constants_part_sums_offset + bidx]; +#endif + + // Add partial sums back + for (i = 0; i < KEYS_PER_THREAD; ++i) + { + lds_loads[i][lidx] += thread_sum; + } + + GroupMemoryBarrierWithGroupSync(); + + // Perform coalesced writes back to global memory + for (i = 0; i < KEYS_PER_THREAD; ++i) + { + uint store_index = range_begin + i * GROUP_SIZE + lidx; + uint col = (i * GROUP_SIZE + lidx) / KEYS_PER_THREAD; + uint row = (i * GROUP_SIZE + lidx) % KEYS_PER_THREAD; + + if (store_index < g_constants_num_keys) + { + g_buffer[g_constants_output_keys_offset + store_index] = lds_loads[row][col] + part_sum; + } + } +} diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/block_scan.compute.meta b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/block_scan.compute.meta new file mode 100644 index 00000000000..4d5a4a0920b --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/block_scan.compute.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 4d6d5de35fa45ef4a92119397a045cc9 +ComputeShaderImporter: + externalObjects: {} + userData: + assetBundleName: unifiedraytracing + assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/build_hlbvh.compute b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/build_hlbvh.compute new file mode 100644 index 00000000000..e7725396c19 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/build_hlbvh.compute @@ -0,0 +1,526 @@ +/* Copyright (c) 2021 Advanced Micro Devices, Inc. All rights reserved. + +Bullet Continuous Collision Detection and Physics Library +Copyright (c) 2003-2011 Erwin Coumans http://bulletphysics.org + +This software is provided 'as-is', without any express or implied warranty. +In no event will the authors be held liable for any damages arising from the use of this software. +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it freely, +subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. */ + +// WebGPU has extremely strict uniformity requirements that are incompatible with the current implementation of this shader. +#pragma exclude_renderers webgpu +#pragma multi_compile __ TOP_LEVEL UINT16_INDICES + +#if defined(SHADER_API_PSSL) || defined(SHADER_API_METAL) || defined(SHADER_API_WEBGPU) +#define globallycoherent +#define USE_ATOMICS 1 +#endif + +#include "transform.hlsl" + +uint g_constants_vertex_stride; +uint g_constants_triangle_count; + +uint g_aabb_offset; +uint g_morton_codes_offset; +uint g_primitive_refs_offset; +uint g_leaf_parents_offset; +int g_internal_node_range_offset; + +#if !(TOP_LEVEL) +RWStructuredBuffer g_vertices; +ByteAddressBuffer g_indices; +int g_vertices_offset; +int g_base_index; +int g_indices_offset; +#define MESH_INDICES_BINDINGS +#include "triangle_mesh.hlsl" +#endif +globallycoherent RWStructuredBuffer g_scratch_buffer; + +#include "bvh2il.hlsl" + +#if TOP_LEVEL + +#endif + +#define PRIMITIVES_PER_THREAD 8 + +#define GROUP_SIZE 256 +#define INVALID_IDX 0xffffffff + +#define unit_side 1024.0f +#define IS_LEAF_BIT (1 << 31) +#define IS_UPDATED_BIT (1 << 31) +#define IS_ENABLED_BIT (1 << 31) + +//===================================================================================================================== +// 3-dilate a number +uint ExpandBits(in uint r) +{ + r = (r * 0x00010001u) & 0xFF0000FFu; + r = (r * 0x00000101u) & 0x0F00F00Fu; + r = (r * 0x00000011u) & 0xC30C30C3u; + r = (r * 0x00000005u) & 0x49249249u; + return r; +} + +//===================================================================================================================== +// Calculate and pack Morton code for the point +uint CalculateMortonCode(in float3 p) +{ + float x = clamp(p.x * unit_side, 0.0f, unit_side - 1.0f); + float y = clamp(p.y * unit_side, 0.0f, unit_side - 1.0f); + float z = clamp(p.z * unit_side, 0.0f, unit_side - 1.0f); + + return ((ExpandBits(uint(x)) << 2) | (ExpandBits(uint(y)) << 1) | ExpandBits(uint(z))); +} + +//===================================================================================================================== +// HLSL implementation of OpenCL clz. This function counts the number of leading 0's from MSB + +// Thanks to a compiler bug, Only works on DX backends +//int clz(int value) { return (31 - firstbithigh(value)); } + +// Version that works on all gfx backends +int clz(uint x) +{ + int n = 1; + if (x == 0) return 32; + if ((x >> 16) == 0) { n = n + 16; x = x << 16; } + if ((x >> 24) == 0) { n = n + 8; x = x << 8; } + if ((x >> 28) == 0) { n = n + 4; x = x << 4; } + if ((x >> 30) == 0) { n = n + 2; x = x << 2; } + + n = n - (x >> 31); + return n; +} + +//===================================================================================================================== +// Magic found here: https://github.com/kripken/bullet/blob/master/ +// src/BulletMultiThreaded/GpuSoftBodySolvers/DX11/HLSL/ComputeBounds.hlsl +uint3 Float3ToUint3(in float3 v) +{ + // Reinterpret value as uint + uint3 value_as_uint = uint3(asuint(v.x), asuint(v.y), asuint(v.z)); + + // Invert sign bit of positives and whole of to anegativesllow comparison as unsigned ints + value_as_uint.x ^= (1 + ~(value_as_uint.x >> 31) | 0x80000000); + value_as_uint.y ^= (1 + ~(value_as_uint.y >> 31) | 0x80000000); + value_as_uint.z ^= (1 + ~(value_as_uint.z >> 31) | 0x80000000); + + return value_as_uint; +} + +//===================================================================================================================== +// Magic found here: https://github.com/kripken/bullet/blob/master/src/BulletMultiThreaded/GpuSoftBodySolvers/DX11/btSoftBodySolver_DX11.cpp +float3 Uint3ToFloat3(in uint3 v) +{ + v.x ^= (((v.x >> 31) - 1) | 0x80000000); + v.y ^= (((v.y >> 31) - 1) | 0x80000000); + v.z ^= (((v.z >> 31) - 1) | 0x80000000); + + return asfloat(v); +} + + +void MergeIntoGlobalAabb(in uint3 pmin_uint, in uint3 pmax_uint) +{ + uint temp; + InterlockedMin(g_scratch_buffer[g_aabb_offset + 0], pmin_uint.x, temp); + InterlockedMin(g_scratch_buffer[g_aabb_offset + 1], pmin_uint.y, temp); + InterlockedMin(g_scratch_buffer[g_aabb_offset + 2], pmin_uint.z, temp); + + InterlockedMax(g_scratch_buffer[g_aabb_offset + 3], pmax_uint.x, temp); + InterlockedMax(g_scratch_buffer[g_aabb_offset + 4], pmax_uint.y, temp); + InterlockedMax(g_scratch_buffer[g_aabb_offset + 5], pmax_uint.z, temp); +} + + +//===================================================================================================================== +groupshared uint3 lds_pmin[GROUP_SIZE]; +groupshared uint3 lds_pmax[GROUP_SIZE]; + +void UpdateGlobalAabb(in Aabb aabb, in uint lidx) +{ +#ifdef USE_WAVE_INTRINSICS + // Calculate the combined AABB for the entire wave. + const float3 wave_bounds_min = WaveActiveMin(aabb.pmin); + const float3 wave_bound_max = WaveActiveMax(aabb.pmax); + GroupMemoryBarrierWithGroupSync(); + + // Calculate the AABB for the entire scene using memory atomics. + // Scalarize the atomic min/max writes by only using the first lane. + if (WaveIsFirstLane()) + { + // Convert the wave bounds to uints so we can atomically min/max them against the scene bounds in memory. + const uint3 wave_min_uint = Float3ToUint3(wave_bounds_min); + const uint3 wave_max_uint = Float3ToUint3(wave_bound_max); + + MergeIntoGlobalAabb(wave_min_uint, wave_max_uint); + } +#else + lds_pmin[lidx] = Float3ToUint3(aabb.pmin); + lds_pmax[lidx] = Float3ToUint3(aabb.pmax); + + GroupMemoryBarrierWithGroupSync(); + + // Peform reduction within a block + for (int stride = (GROUP_SIZE >> 1); stride > 0; stride >>= 1) + { + if ((int)lidx < stride) + { + lds_pmin[lidx] = min(lds_pmin[lidx], lds_pmin[lidx + stride]); + lds_pmax[lidx] = max(lds_pmax[lidx], lds_pmax[lidx + stride]); + } + + GroupMemoryBarrierWithGroupSync(); + } + + if (lidx == 0) + { + MergeIntoGlobalAabb(lds_pmin[0], lds_pmax[0]); + } +#endif +} + + + +#pragma kernel Init +[numthreads(1, 1, 1)] +void Init(in uint gidx: SV_DispatchThreadID, + in uint lidx : SV_GroupThreadID, + in uint bidx : SV_GroupID) +{ + if (gidx == 0) + { + Aabb aabb = CreateEmptyAabb(); + const uint3 pmin = Float3ToUint3(aabb.pmin); + const uint3 pmax = Float3ToUint3(aabb.pmax); + + g_scratch_buffer[g_aabb_offset + 0] = pmin.x; + g_scratch_buffer[g_aabb_offset + 1] = pmin.y; + g_scratch_buffer[g_aabb_offset + 2] = pmin.z; + + g_scratch_buffer[g_aabb_offset + 3] = pmax.x; + g_scratch_buffer[g_aabb_offset + 4] = pmax.y; + g_scratch_buffer[g_aabb_offset + 5] = pmax.z; + } +} + +#pragma kernel CalculateAabb +[numthreads(GROUP_SIZE, 1, 1)] +void CalculateAabb(in uint gidx: SV_DispatchThreadID, + in uint lidx : SV_GroupThreadID, + in uint bidx : SV_GroupID) + +{ + Aabb local_aabb = CreateEmptyAabb(); + // Each thread handles PRIMITIVES_PER_THREAD triangles. + for (int i = 0; i < PRIMITIVES_PER_THREAD; ++i) + { + // Calculate linear triangle index. + uint prim_index = gidx * PRIMITIVES_PER_THREAD + i; + + if (prim_index < g_constants_triangle_count - 1) + { + // clear bvh update flag + g_bvh[g_bvh_offset + 1 + prim_index].update = 0; + } + + // Check out of bounds for this triangle. + if (prim_index < g_constants_triangle_count) + { +#if !(TOP_LEVEL) + // Fetch triangle indices & vertices. + uint3 indices = GetFaceIndices(prim_index); + TriangleData tri = FetchTriangle(indices); + + // Update local AABB for the thread. + GrowAabb(tri.v0, local_aabb); + GrowAabb(tri.v1, local_aabb); + GrowAabb(tri.v2, local_aabb); +#else + Aabb instance_aabb = GetInstanceAabb(prim_index); + GrowAabb(instance_aabb.pmin, local_aabb); + GrowAabb(instance_aabb.pmax, local_aabb); +#endif + } + } + + // Update global AABB for + UpdateGlobalAabb(local_aabb, lidx); +} + +#pragma kernel CalculateMortonCodes +[numthreads(GROUP_SIZE, 1, 1)] +void CalculateMortonCodes(in uint gidx: SV_DispatchThreadID, + in uint lidx : SV_GroupThreadID, + in uint bidx : SV_GroupID) +{ + uint3 pmin; + pmin.x = g_scratch_buffer[g_aabb_offset + 0]; + pmin.y = g_scratch_buffer[g_aabb_offset + 1]; + pmin.z = g_scratch_buffer[g_aabb_offset + 2]; + + uint3 pmax; + pmax.x = g_scratch_buffer[g_aabb_offset + 3]; + pmax.y = g_scratch_buffer[g_aabb_offset + 4]; + pmax.z = g_scratch_buffer[g_aabb_offset + 5]; + + Aabb mesh_aabb; + mesh_aabb.pmin = Uint3ToFloat3(pmin); + mesh_aabb.pmax = Uint3ToFloat3(pmax); + + // Each thread handles PRIMITIVES_PER_THREAD triangles. + for (int i = 0; i < PRIMITIVES_PER_THREAD; ++i) + { + // Calculate linear triangle index. + uint prim_index = gidx * PRIMITIVES_PER_THREAD + i; + + // Check out of bounds for this triangle. + if (prim_index < g_constants_triangle_count) + { + // Calculate primitive centroid and map it to [0, 1]. +#if !(TOP_LEVEL) + uint3 indices = GetFaceIndices(prim_index); + TriangleData tri = FetchTriangle(indices); + Aabb triangle_aabb = CreateEmptyAabb(); + GrowAabb(tri.v0, triangle_aabb); + GrowAabb(tri.v1, triangle_aabb); + GrowAabb(tri.v2, triangle_aabb); + + float3 center = 0.5f * (triangle_aabb.pmin + triangle_aabb.pmax); +#else + Aabb instance_aabb = GetInstanceAabb(prim_index); + float3 center = 0.5f * (instance_aabb.pmin + instance_aabb.pmax); +#endif + center -= mesh_aabb.pmin; + center /= (mesh_aabb.pmax - mesh_aabb.pmin); + + // Calculate Morton code and save triangle index for further sorting. + g_scratch_buffer[g_morton_codes_offset + prim_index] = CalculateMortonCode(center); + g_scratch_buffer[g_primitive_refs_offset + prim_index] = prim_index; + } + } +} + +uint deltaCompare(int index, int otherIndex) +{ + return ((uint)g_scratch_buffer[g_morton_codes_offset + index]) ^ ((uint)g_scratch_buffer[g_morton_codes_offset + otherIndex]); +} + +void InitBvhHeader(float3 fpmin, float3 fpmax, uint primCount) +{ + g_bvh[g_bvh_offset + 0].child0 = primCount - 1; // internal node count + g_bvh[g_bvh_offset + 0].child1 = primCount; // leaf node count + g_bvh[g_bvh_offset + 0].update = 0; // unused + g_bvh[g_bvh_offset + 0].parent = 0; // root node index (set later) + + g_bvh[g_bvh_offset + 0].SetLeftAabb(fpmin, fpmax); // global aabb + g_bvh[g_bvh_offset + 0].SetRightAabb(0.0, 0.0); // unused +} + +void SetBvhHeaderRootNodeIndex(uint index) +{ + g_bvh[g_bvh_offset + 0].parent = index; +} + +#if !TOP_LEVEL +void SetLeafNode(int leafNodeIndex, uint3 triangleIndices, uint primIndex) +{ +#if USE_ATOMICS + uint old_value; + InterlockedExchange(g_bvh_leaves[g_bvh_leaves_offset + leafNodeIndex].x, triangleIndices.x, old_value); + InterlockedExchange(g_bvh_leaves[g_bvh_leaves_offset + leafNodeIndex].y, triangleIndices.y, old_value); + InterlockedExchange(g_bvh_leaves[g_bvh_leaves_offset + leafNodeIndex].z, triangleIndices.z, old_value); + InterlockedExchange(g_bvh_leaves[g_bvh_leaves_offset + leafNodeIndex].w, primIndex, old_value); +#else + g_bvh_leaves[g_bvh_leaves_offset + leafNodeIndex] = uint4(triangleIndices, primIndex); +#endif +} +#endif + +void SetNodeLeftRange(int nodeIndex, uint rangeLeft) +{ +#if USE_ATOMICS + uint old_value; + InterlockedExchange(g_scratch_buffer[g_internal_node_range_offset + 2 * nodeIndex], rangeLeft, old_value); +#else + g_scratch_buffer[g_internal_node_range_offset + 2 * nodeIndex] = rangeLeft; +#endif +} + +void SetNodeRightRange(int nodeIndex, uint rangeRight) +{ +#if USE_ATOMICS + uint old_value; + InterlockedExchange(g_scratch_buffer[g_internal_node_range_offset + 2 * nodeIndex + 1], rangeRight, old_value); +#else + g_scratch_buffer[g_internal_node_range_offset + 2 * nodeIndex + 1] = rangeRight; +#endif +} + +uint2 GetNodeRange(int nodeIndex) +{ + int rangeLeft = 0; + int rangeRight = 0; +#if USE_ATOMICS + InterlockedAdd(g_scratch_buffer[g_internal_node_range_offset + 2 * nodeIndex], 0, rangeLeft); + InterlockedAdd(g_scratch_buffer[g_internal_node_range_offset + 2 * nodeIndex + 1], 0, rangeRight); +#else + rangeLeft = g_scratch_buffer[g_internal_node_range_offset + 2 * nodeIndex]; + rangeRight = g_scratch_buffer[g_internal_node_range_offset + 2 * nodeIndex + 1]; +#endif + + return uint2(rangeLeft, rangeRight); +} + +uint ChooseNodeParent(uint index, uint rangeLeft, uint rangeRight, uint N, bool isLeafNode) +{ + if (rangeRight - rangeLeft == N - 1) + { + g_bvh[g_bvh_offset+1 + index].parent = INVALID_IDX; + SetBvhHeaderRootNodeIndex(index); + return INVALID_IDX; + } + else // not necessary but unity compiler reports a warning otherwise + { + if (rangeLeft == 0 || (rangeRight != N-1 && deltaCompare(rangeRight, rangeRight + 1) < deltaCompare(rangeLeft - 1, rangeLeft))) + { + uint parent = rangeRight; + if (!isLeafNode) + g_bvh[g_bvh_offset+1 + index].parent = parent; + #if !TOP_LEVEL + else + g_scratch_buffer[g_leaf_parents_offset + GET_LEAF_NODE_FIRST_PRIM(index)] = parent; + #endif + + g_bvh[g_bvh_offset+1 + parent].child0 = index; + SetNodeLeftRange(parent, rangeLeft); + return parent; + } + else + { + uint parent = rangeLeft - 1; + if (!isLeafNode) + g_bvh[g_bvh_offset+1 + index].parent = parent; + #if !TOP_LEVEL + else + g_scratch_buffer[g_leaf_parents_offset + GET_LEAF_NODE_FIRST_PRIM(index)] = parent; + #endif + + g_bvh[g_bvh_offset+1 + parent].child1 = index; + SetNodeRightRange(parent, rangeRight); + return parent; + } + } +} + +#pragma kernel BuildTreeBottomUp +[numthreads(GROUP_SIZE, 1, 1)] +void BuildTreeBottomUp( + in uint gidx: SV_DispatchThreadID, + in uint lidx : SV_GroupThreadID, + in uint bidx : SV_GroupID) +{ + const uint N = g_constants_triangle_count; + if (gidx == 0) + { + uint3 pmin; + pmin.x = g_scratch_buffer[g_aabb_offset + 0]; + pmin.y = g_scratch_buffer[g_aabb_offset + 1]; + pmin.z = g_scratch_buffer[g_aabb_offset + 2]; + + uint3 pmax; + pmax.x = g_scratch_buffer[g_aabb_offset + 3]; + pmax.y = g_scratch_buffer[g_aabb_offset + 4]; + pmax.z = g_scratch_buffer[g_aabb_offset + 5]; + + float3 fpmin = Uint3ToFloat3(pmin); + float3 fpmax = Uint3ToFloat3(pmax); + + // first bvh node is used as header + InitBvhHeader(fpmin, fpmax, N); + + if (N == 1) + { + uint prim_index = 0; + SetBvhHeaderRootNodeIndex(LEAF_NODE_INDEX(prim_index)); + #if TOP_LEVEL + g_instance_infos[prim_index].world_to_local_transform = Inverse(g_instance_infos[prim_index].local_to_world_transform); + #else + g_scratch_buffer[g_leaf_parents_offset + 0] = INVALID_IDX; + uint3 indices = GetFaceIndices(0); + g_bvh_leaves[g_bvh_leaves_offset + 0] = uint4(indices, 0); + #endif + return; + } + } + + // Each thread handles PRIMITIVES_PER_THREAD triangles. + for (int i = 0; i < PRIMITIVES_PER_THREAD; ++i) + { + // Calculate linear primitive index. + uint leaf_index = gidx * PRIMITIVES_PER_THREAD + i; + if (leaf_index >= N) + { + return; + } + + #if TOP_LEVEL + uint prim_index = g_scratch_buffer[g_primitive_refs_offset + leaf_index]; + g_instance_infos[prim_index].world_to_local_transform = Inverse(g_instance_infos[prim_index].local_to_world_transform); + + uint index = ChooseNodeParent(LEAF_NODE_INDEX(prim_index), leaf_index, leaf_index, N, true); + #else + uint prim_index = g_scratch_buffer[g_primitive_refs_offset + leaf_index]; + uint3 indices = GetFaceIndices(prim_index); + SetLeafNode(leaf_index, indices, prim_index); + + uint index = ChooseNodeParent(LEAF_NODE_INDEX(leaf_index), leaf_index, leaf_index, N, true); + #endif + + + [allow_uav_condition] + while (index != INVALID_IDX) + { + uint old_value = 0; + AllMemoryBarrier(); // Shouldn't be necessary, g_bvh is globallycoherent but unity's compiler will remove too much code if not present + InterlockedExchange(g_bvh[g_bvh_offset+1 + index].update, 1, old_value); + + if (old_value == 1) + { + uint child0 = g_bvh[g_bvh_offset+1 + index].child0; + uint child1 = g_bvh[g_bvh_offset+1 + index].child1; +#if USE_ATOMICS + Aabb aabb0 = GetNodeAabbSync(g_bvh_offset+1, child0); + Aabb aabb1 = GetNodeAabbSync(g_bvh_offset+1, child1); + SetNodeAabbsSync(g_bvh, g_bvh_offset+1 + index, aabb0, aabb1); +#else + Aabb aabb0 = GetNodeAabb(g_bvh_offset+1, child0); + Aabb aabb1 = GetNodeAabb(g_bvh_offset+1, child1); + + g_bvh[g_bvh_offset+1 + index].SetLeftAabb(aabb0); + g_bvh[g_bvh_offset+1 + index].SetRightAabb(aabb1); +#endif + + uint2 nodeRange = GetNodeRange(index); + index = ChooseNodeParent(index, nodeRange.x, nodeRange.y, N, false); + } + else + { + // This is the first thread joining this node, bail out. + break; + } + } + } +} + +// clang-format on diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/build_hlbvh.compute.meta b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/build_hlbvh.compute.meta new file mode 100644 index 00000000000..971d99892e2 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/build_hlbvh.compute.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 2d70cd6be91bd7843a39a54b51c15b13 +ComputeShaderImporter: + externalObjects: {} + userData: + assetBundleName: unifiedraytracing + assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/bvh2il.hlsl b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/bvh2il.hlsl new file mode 100644 index 00000000000..c0c6ee8859f --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/bvh2il.hlsl @@ -0,0 +1,292 @@ +/********************************************************************** +Copyright (c) 2019 Advanced Micro Devices, Inc. All rights reserved. +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +********************************************************************/ +#ifndef BVH2IL_HLSL +#define BVH2IL_HLSL + +#ifndef HOST +#include "aabb.hlsl" +#endif + +#define INVALID_IDX 0xffffffff + +#define BVH_NODE_SIZE 64 +#define BVH_NODE_STRIDE_SHIFT 6 +#define BVH_NODE_BYTE_OFFSET(i) ((i) << BVH_NODE_STRIDE_SHIFT) + +#define LEAF_NODE_INDEX(i) (i | (1 << 31)) +#define IS_LEAF_NODE(i) (i & (1 << 31)) +#define IS_INTERNAL_NODE(i) (!IS_LEAF_NODE(i)) +#define GET_LEAF_NODE_FIRST_PRIM(i) (i & ~0xE0000000) +#define GET_LEAF_NODE_PRIM_COUNT(i) (((i & 0x60000000) >> 29) + 1) +//< BVH2 node. +struct BvhNode +{ + uint child0; + uint child1; + uint parent; + uint update; + + uint data[12]; + + void SetLeftAabb(float3 min, float3 max) + { + data[0] = asuint(min.x); data[1] = asuint(min.y); data[2] = asuint(min.z); + data[3] = asuint(max.x); data[4] = asuint(max.y); data[5] = asuint(max.z); + } + + void SetLeftAabb(Aabb aabb) + { + SetLeftAabb(aabb.pmin, aabb.pmax); + } + + void SetRightAabb(float3 min, float3 max) + { + data[6] = asuint(min.x); data[7] = asuint(min.y); data[8] = asuint(min.z); + data[9] = asuint(max.x); data[10] = asuint(max.y); data[11] = asuint(max.z); + } + + void SetRightAabb(Aabb aabb) + { + SetRightAabb(aabb.pmin, aabb.pmax); + } + + float3 LeftAabbMin() + { + return float3(asfloat(data[0]), asfloat(data[1]), asfloat(data[2])); + } + + float3 LeftAabbMax() + { + return float3(asfloat(data[3]), asfloat(data[4]), asfloat(data[5])); + } + + float3 RightAabbMin() + { + return float3(asfloat(data[6]), asfloat(data[7]), asfloat(data[8])); + } + + float3 RightAabbMax() + { + return float3(asfloat(data[9]), asfloat(data[10]), asfloat(data[11])); + } +}; + +struct InstanceInfo +{ + int blas_offset; + int instance_mask; + int vertex_offset; + int index_offset; + uint disable_triangle_culling; + uint invert_triangle_culling; + uint user_instance_id; + int is_opaque; + Transform world_to_local_transform; + Transform local_to_world_transform; +}; + +globallycoherent RWStructuredBuffer g_bvh; +uint g_bvh_offset; +#if !TOP_LEVEL +globallycoherent RWStructuredBuffer g_bvh_leaves; +uint g_bvh_leaves_offset; +#endif + +#if TOP_LEVEL +StructuredBuffer g_bottom_bvhs; +RWStructuredBuffer g_instance_infos; + +Aabb GetInstanceAabb(int instance_index) +{ + uint bottom_bvh_offset = g_instance_infos[instance_index].blas_offset; + Transform transform = g_instance_infos[instance_index].local_to_world_transform; + BvhNode header_node = g_bottom_bvhs[bottom_bvh_offset + 0]; + Aabb local_aabb = CreateEmptyAabb(); + GrowAabb(header_node.LeftAabbMin(), local_aabb); + GrowAabb(header_node.LeftAabbMax(), local_aabb); + + return TransformAabb(local_aabb, transform); +} + +//< Calculate BVH2 node bounding box. +Aabb GetNodeAabb(uint offset, uint node_index) +{ + Aabb aabb = CreateEmptyAabb(); + + if (IS_LEAF_NODE(node_index)) + { + aabb = GetInstanceAabb(GET_LEAF_NODE_FIRST_PRIM(node_index)); + } + else + { + BvhNode node = g_bvh[offset + node_index]; + GrowAabb(node.LeftAabbMin(), aabb); + GrowAabb(node.LeftAabbMax(), aabb); + GrowAabb(node.RightAabbMin(), aabb); + GrowAabb(node.RightAabbMax(), aabb); + } + + return aabb; +} + +Aabb GetNodeAabbSync(uint offset, int node_index) +{ + Aabb aabb = CreateEmptyAabb(); + if (IS_LEAF_NODE(node_index)) + { + aabb = GetInstanceAabb(GET_LEAF_NODE_FIRST_PRIM(node_index)); + } + else + { + uint3 aabb0_min; + uint3 aabb0_max; + uint3 aabb1_min; + uint3 aabb1_max; + + InterlockedAdd(g_bvh[offset + node_index].data[0], 0, aabb0_min.x); + InterlockedAdd(g_bvh[offset + node_index].data[1], 0, aabb0_min.y); + InterlockedAdd(g_bvh[offset + node_index].data[2], 0, aabb0_min.z); + + InterlockedAdd(g_bvh[offset + node_index].data[3], 0, aabb0_max.x); + InterlockedAdd(g_bvh[offset + node_index].data[4], 0, aabb0_max.y); + InterlockedAdd(g_bvh[offset + node_index].data[5], 0, aabb0_max.z); + + InterlockedAdd(g_bvh[offset + node_index].data[6], 0, aabb1_min.x); + InterlockedAdd(g_bvh[offset + node_index].data[7], 0, aabb1_min.y); + InterlockedAdd(g_bvh[offset + node_index].data[8], 0, aabb1_min.z); + + InterlockedAdd(g_bvh[offset + node_index].data[9], 0, aabb1_max.x); + InterlockedAdd(g_bvh[offset + node_index].data[10], 0, aabb1_max.y); + InterlockedAdd(g_bvh[offset + node_index].data[11], 0, aabb1_max.z); + + GrowAabb(asfloat(aabb0_min), aabb); + GrowAabb(asfloat(aabb0_max), aabb); + GrowAabb(asfloat(aabb1_min), aabb); + GrowAabb(asfloat(aabb1_max), aabb); + } + + return aabb; +} + +#else + +//< Calculate BVH2 node bounding box. +Aabb GetNodeAabb(uint offset, uint node_index) +{ + Aabb aabb = CreateEmptyAabb(); + + if (IS_LEAF_NODE(node_index)) + { + int firstTriangle = GET_LEAF_NODE_FIRST_PRIM(node_index); + int triangleCount = GET_LEAF_NODE_PRIM_COUNT(node_index); + for (int i = 0; i < triangleCount; ++i) + { + uint3 indices = g_bvh_leaves[g_bvh_leaves_offset + firstTriangle + i].xyz; + TriangleData tri = FetchTriangle(indices); + + GrowAabb(tri.v0, aabb); + GrowAabb(tri.v1, aabb); + GrowAabb(tri.v2, aabb); + } + } + else + { + BvhNode node = g_bvh[offset+node_index]; + GrowAabb(node.LeftAabbMin(), aabb); + GrowAabb(node.LeftAabbMax(), aabb); + GrowAabb(node.RightAabbMin(), aabb); + GrowAabb(node.RightAabbMax(), aabb); + } + + return aabb; +} + +Aabb GetNodeAabbSync(uint offset, int node_index) +{ + Aabb aabb = CreateEmptyAabb(); + if (IS_LEAF_NODE(node_index)) + { + int firstTriangle = GET_LEAF_NODE_FIRST_PRIM(node_index); + int triangleCount = GET_LEAF_NODE_PRIM_COUNT(node_index); + for (int i = 0; i < triangleCount; ++i) + { + uint3 indices = 0; + InterlockedAdd(g_bvh_leaves[g_bvh_leaves_offset + firstTriangle + i].x, 0, indices.x); + InterlockedAdd(g_bvh_leaves[g_bvh_leaves_offset + firstTriangle + i].y, 0, indices.y); + InterlockedAdd(g_bvh_leaves[g_bvh_leaves_offset + firstTriangle + i].z, 0, indices.z); + TriangleData tri = FetchTriangle(indices); + + GrowAabb(tri.v0, aabb); + GrowAabb(tri.v1, aabb); + GrowAabb(tri.v2, aabb); + } + } + else + { + uint3 aabb0_min; + uint3 aabb0_max; + uint3 aabb1_min; + uint3 aabb1_max; + + InterlockedAdd(g_bvh[offset + node_index].data[0], 0, aabb0_min.x); + InterlockedAdd(g_bvh[offset + node_index].data[1], 0, aabb0_min.y); + InterlockedAdd(g_bvh[offset + node_index].data[2], 0, aabb0_min.z); + + InterlockedAdd(g_bvh[offset + node_index].data[3], 0, aabb0_max.x); + InterlockedAdd(g_bvh[offset + node_index].data[4], 0, aabb0_max.y); + InterlockedAdd(g_bvh[offset + node_index].data[5], 0, aabb0_max.z); + + InterlockedAdd(g_bvh[offset + node_index].data[6], 0, aabb1_min.x); + InterlockedAdd(g_bvh[offset + node_index].data[7], 0, aabb1_min.y); + InterlockedAdd(g_bvh[offset + node_index].data[8], 0, aabb1_min.z); + + InterlockedAdd(g_bvh[offset + node_index].data[9], 0, aabb1_max.x); + InterlockedAdd(g_bvh[offset + node_index].data[10], 0, aabb1_max.y); + InterlockedAdd(g_bvh[offset + node_index].data[11], 0, aabb1_max.z); + + GrowAabb(asfloat(aabb0_min), aabb); + GrowAabb(asfloat(aabb0_max), aabb); + GrowAabb(asfloat(aabb1_min), aabb); + GrowAabb(asfloat(aabb1_max), aabb); + } + + return aabb; +} + +#endif + +void SetNodeAabbsSync(globallycoherent RWStructuredBuffer bvh, int index, Aabb aabb0, Aabb aabb1) +{ + uint old_value2 = 0; + InterlockedExchange(bvh[index].data[0], asuint(aabb0.pmin.x), old_value2); + InterlockedExchange(bvh[index].data[1], asuint(aabb0.pmin.y), old_value2); + InterlockedExchange(bvh[index].data[2], asuint(aabb0.pmin.z), old_value2); + InterlockedExchange(bvh[index].data[3], asuint(aabb0.pmax.x), old_value2); + InterlockedExchange(bvh[index].data[4], asuint(aabb0.pmax.y), old_value2); + InterlockedExchange(bvh[index].data[5], asuint(aabb0.pmax.z), old_value2); + + InterlockedExchange(bvh[index].data[6], asuint(aabb1.pmin.x), old_value2); + InterlockedExchange(bvh[index].data[7], asuint(aabb1.pmin.y), old_value2); + InterlockedExchange(bvh[index].data[8], asuint(aabb1.pmin.z), old_value2); + InterlockedExchange(bvh[index].data[9], asuint(aabb1.pmax.x), old_value2); + InterlockedExchange(bvh[index].data[10], asuint(aabb1.pmax.y), old_value2); + InterlockedExchange(bvh[index].data[11], asuint(aabb1.pmax.z), old_value2); +} + +#endif // BVH2IL_HLSL diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/bvh2il.hlsl.meta b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/bvh2il.hlsl.meta new file mode 100644 index 00000000000..565be46c6bf --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/bvh2il.hlsl.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 4541f1bb75b10ac4597809e3016f3026 +ShaderIncludeImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/intersect_structures.hlsl b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/intersect_structures.hlsl new file mode 100644 index 00000000000..a7409c362c9 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/intersect_structures.hlsl @@ -0,0 +1,42 @@ +/********************************************************************** +Copyright (c) 2019 Advanced Micro Devices, Inc. All rights reserved. +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +********************************************************************/ +#ifndef INTERSECT_STRUCTURES_HLSL +#define INTERSECT_STRUCTURES_HLSL + +struct Ray +{ + float3 origin; + float min_t; + float3 direction; + float max_t; +}; + +struct FullHitData +{ + float2 uv; + uint inst_id; + uint prim_id; +}; + +struct AnyHitData +{ + uint inst_id; +}; + +#endif diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/intersect_structures.hlsl.meta b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/intersect_structures.hlsl.meta new file mode 100644 index 00000000000..5c15c5f5a4b --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/intersect_structures.hlsl.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f20cb86c2d6c414d9ff78df5fc04cd1d +ShaderIncludeImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/intersector_common.hlsl b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/intersector_common.hlsl new file mode 100644 index 00000000000..a7b04ab5e24 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/intersector_common.hlsl @@ -0,0 +1,202 @@ +/********************************************************************** +Copyright (c) 2019 Advanced Micro Devices, Inc. All rights reserved. +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +********************************************************************/ +#define INVALID_NODE 0xFFFFFFFFu +#define INVALID_IDX 0xffffffff + +#define BVH_NODE_SIZE 64 +#define BVH_NODE_STRIDE_SHIFT 6 +#define BVH_NODE_BYTE_OFFSET(i) ((i) << BVH_NODE_STRIDE_SHIFT) + +#define LEAF_NODE_INDEX(i) (i | (1 << 31)) +#define IS_LEAF_NODE(i) (i & (1 << 31)) +#define IS_INTERNAL_NODE(i) (!IS_LEAF_NODE(i)) +#define GET_LEAF_NODE_FIRST_PRIM(i) (i & ~0xE0000000) +#define GET_LEAF_NODE_PRIM_COUNT(i) (((i & 0x60000000) >> 29) + 1) + +struct BvhNode +{ + uint left_child; + uint right_child; + uint parent; + uint update; + + uint data[12]; + + void SetLeftAabb(float3 min, float3 max) + { + data[0] = min.x; data[1] = min.y; data[2] = min.z; + data[3] = max.x; data[4] = max.y; data[5] = max.z; + } + + /*void SetLeftAabb(Aabb aabb) + { + SetLeftAabb(aabb.pmin, aabb.pmax); + }*/ + + void SetRightAabb(float3 min, float3 max) + { + data[6] = min.x; data[7] = min.y; data[8] = min.z; + data[9] = max.x; data[10] = max.y; data[11] = max.z; + } + + /*void SetRightAabb(Aabb aabb) + { + SetRightAabb(aabb.pmin, aabb.pmax); + }*/ + + float3 LeftAabbMin() + { + return float3(asfloat(data[0]), asfloat(data[1]), asfloat(data[2])); + } + + float3 LeftAabbMax() + { + return float3(asfloat(data[3]), asfloat(data[4]), asfloat(data[5])); + } + + float3 RightAabbMin() + { + return float3(asfloat(data[6]), asfloat(data[7]), asfloat(data[8])); + } + + float3 RightAabbMax() + { + return float3(asfloat(data[9]), asfloat(data[10]), asfloat(data[11])); + } + +}; + +#define CULL_MODE_FRONTFACE 1 +#define CULL_MODE_BACKFACE -1 +#define CULL_MODE_NONE 0 + +struct InstanceInfo +{ + int blas_offset; + int instance_mask; + int vertex_offset; + int blas_leaves_offset; + uint disable_triangle_culling; + uint invert_triangle_culling; + uint user_instance_id; + int is_opaque; + Transform world_to_local_transform; + Transform local_to_world_transform; +}; + +bool fast_intersect_triangle(in uint cull_mode, + in float3 ray_origin, + in float3 ray_direction, + in float3 v1, + in float3 v2, + in float3 v3, + in float tmin, + inout float closest_t, + inout float2 barycentric, + inout bool front_face) +{ + float3 e1; + float3 e2; + + // Determine edge vectors for clockwise triangle vertices + e1 = v2 - v1; + e2 = v3 - v1; + + const float3 s1 = cross(ray_direction, e2); + const float determinant = dot(s1, e1); + const float invd = rcp(determinant); + + const float3 d = ray_origin - v1; + const float u = dot(d, s1) * invd; + + front_face = (determinant > 0); + + // Barycentric coordinate U is outside range + bool hit = false; + if (!((u < 0.f) || (u > 1.f) || determinant == 0.0f || (asuint(determinant) & 0x80000000) == cull_mode)) + { + const float3 s2 = cross(d, e1); + const float v = dot(ray_direction, s2) * invd; + + // Barycentric coordinate V is outside range + if (!((v < 0.f) || (u + v > 1.f))) + { + // Check parametric distance + const float t = dot(e2, s2) * invd; + if (!(t < tmin || t > closest_t)) + { + // Accept hit + closest_t = t; + barycentric = float2(u, v); + + hit = true; + } + } + } + return hit; +} + +float min3(float3 val) { return min(min(val.x, val.y), val.z); } + +float max3(float3 val) { return max(max(val.x, val.y), val.z); } + +// slabs method for Ray-AABB intersection test (Ref: Raytracing Gems 2 Chapter 2) +// relies on IEEE 754 floating point rules for infinity and NaNs to handle case when one or more ray_dir coordinates are 0. +// rays that are exactly passing along a face are considered as non intersecting +float2 fast_intersect_bbox(in float3 ray_origin, in float3 ray_inv_dir, in float3 box_min, in float3 box_max, in float t_min, in float t_max) +{ + float3 f = (box_max - ray_origin) * ray_inv_dir; + float3 n = (box_min - ray_origin) * ray_inv_dir; + float3 tmax = max(f, n); + float3 tmin = min(f, n); + float max_t = min(min3(tmax), t_max); + float min_t = max(max3(tmin), t_min); + + return float2(min_t, max_t); +} + +uint2 IntersectInternalNode(in BvhNode node, in float3 invd, in float3 o, in float tmin, in float tmax) +{ + float2 s0 = fast_intersect_bbox(o, invd, node.LeftAabbMin(), node.LeftAabbMax(), tmin, tmax); + float2 s1 = fast_intersect_bbox(o, invd, node.RightAabbMin(), node.RightAabbMax(), tmin, tmax); + + uint traverse0 = (s0.x <= s0.y) ? node.left_child : INVALID_NODE; + uint traverse1 = (s1.x <= s1.y) ? node.right_child : INVALID_NODE; + + return (s0.x < s1.x && traverse0 != INVALID_NODE) ? uint2(traverse0, traverse1) : uint2(traverse1, traverse0); +} + +float3 FetchVertex(StructuredBuffer vertex_buffer, int vertex_stride, int vertex_offset, uint idx) +{ + uint index_in_floats = vertex_offset + idx * vertex_stride; + return float3( + asfloat(vertex_buffer[index_in_floats]), + asfloat(vertex_buffer[index_in_floats + 1]), + asfloat(vertex_buffer[index_in_floats + 2])); +} + +bool IntersectLeafTriangle(StructuredBuffer vertex_buffer, int vertex_stride, int vertex_offset, uint4 leaf_node, int cull_mode, in float3 d, in float3 o, in float tmin, inout float closest_t, inout float2 uv, inout bool front_face) +{ + uint3 triangle_indices = leaf_node.xyz; + float3 v0 = FetchVertex(vertex_buffer, vertex_stride, vertex_offset, triangle_indices.x); + float3 v1 = FetchVertex(vertex_buffer, vertex_stride, vertex_offset, triangle_indices.y); + float3 v2 = FetchVertex(vertex_buffer, vertex_stride, vertex_offset, triangle_indices.z); + + return fast_intersect_triangle(cull_mode, o, d, v0, v1, v2, tmin, closest_t, uv, front_face); +} diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/intersector_common.hlsl.meta b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/intersector_common.hlsl.meta new file mode 100644 index 00000000000..fb1b4f57dbf --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/intersector_common.hlsl.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 1d3d4991676b46b4dbcffa10bf77e786 +ShaderIncludeImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/math.hlsl b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/math.hlsl new file mode 100644 index 00000000000..7909455aa4a --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/math.hlsl @@ -0,0 +1,75 @@ +/********************************************************************** +Copyright (c) 2019 Advanced Micro Devices, Inc. All rights reserved. +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +********************************************************************/ +#ifndef MATH_HLSL +#define MATH_HLSL + +#ifndef FLT_MAX +#define FLT_MAX 3.402823e+38 +#endif + +//< Transform 3D point. +float3 TransformPoint(in float3 p, in float4 transform[3]) +{ + return float3(dot(p, transform[0].xyz) + transform[0].w, + dot(p, transform[1].xyz) + transform[1].w, + dot(p, transform[2].xyz) + transform[2].w); +} + +//< Caluclate inverse of 4x4 matrix. +float4x4 inverse(in float4x4 m) +{ + float n11 = m[0][0], n12 = m[1][0], n13 = m[2][0], n14 = m[3][0]; + float n21 = m[0][1], n22 = m[1][1], n23 = m[2][1], n24 = m[3][1]; + float n31 = m[0][2], n32 = m[1][2], n33 = m[2][2], n34 = m[3][2]; + float n41 = m[0][3], n42 = m[1][3], n43 = m[2][3], n44 = m[3][3]; + + float t11 = n23 * n34 * n42 - n24 * n33 * n42 + n24 * n32 * n43 - n22 * n34 * n43 - n23 * n32 * n44 + n22 * n33 * n44; + float t12 = n14 * n33 * n42 - n13 * n34 * n42 - n14 * n32 * n43 + n12 * n34 * n43 + n13 * n32 * n44 - n12 * n33 * n44; + float t13 = n13 * n24 * n42 - n14 * n23 * n42 + n14 * n22 * n43 - n12 * n24 * n43 - n13 * n22 * n44 + n12 * n23 * n44; + float t14 = n14 * n23 * n32 - n13 * n24 * n32 - n14 * n22 * n33 + n12 * n24 * n33 + n13 * n22 * n34 - n12 * n23 * n34; + + float det = n11 * t11 + n21 * t12 + n31 * t13 + n41 * t14; + float idet = 1.0f / det; + + float4x4 ret; + + ret[0][0] = t11 * idet; + ret[0][1] = (n24 * n33 * n41 - n23 * n34 * n41 - n24 * n31 * n43 + n21 * n34 * n43 + n23 * n31 * n44 - n21 * n33 * n44) * idet; + ret[0][2] = (n22 * n34 * n41 - n24 * n32 * n41 + n24 * n31 * n42 - n21 * n34 * n42 - n22 * n31 * n44 + n21 * n32 * n44) * idet; + ret[0][3] = (n23 * n32 * n41 - n22 * n33 * n41 - n23 * n31 * n42 + n21 * n33 * n42 + n22 * n31 * n43 - n21 * n32 * n43) * idet; + + ret[1][0] = t12 * idet; + ret[1][1] = (n13 * n34 * n41 - n14 * n33 * n41 + n14 * n31 * n43 - n11 * n34 * n43 - n13 * n31 * n44 + n11 * n33 * n44) * idet; + ret[1][2] = (n14 * n32 * n41 - n12 * n34 * n41 - n14 * n31 * n42 + n11 * n34 * n42 + n12 * n31 * n44 - n11 * n32 * n44) * idet; + ret[1][3] = (n12 * n33 * n41 - n13 * n32 * n41 + n13 * n31 * n42 - n11 * n33 * n42 - n12 * n31 * n43 + n11 * n32 * n43) * idet; + + ret[2][0] = t13 * idet; + ret[2][1] = (n14 * n23 * n41 - n13 * n24 * n41 - n14 * n21 * n43 + n11 * n24 * n43 + n13 * n21 * n44 - n11 * n23 * n44) * idet; + ret[2][2] = (n12 * n24 * n41 - n14 * n22 * n41 + n14 * n21 * n42 - n11 * n24 * n42 - n12 * n21 * n44 + n11 * n22 * n44) * idet; + ret[2][3] = (n13 * n22 * n41 - n12 * n23 * n41 - n13 * n21 * n42 + n11 * n23 * n42 + n12 * n21 * n43 - n11 * n22 * n43) * idet; + + ret[3][0] = t14 * idet; + ret[3][1] = (n13 * n24 * n31 - n14 * n23 * n31 + n14 * n21 * n33 - n11 * n24 * n33 - n13 * n21 * n34 + n11 * n23 * n34) * idet; + ret[3][2] = (n14 * n22 * n31 - n12 * n24 * n31 - n14 * n21 * n32 + n11 * n24 * n32 + n12 * n21 * n34 - n11 * n22 * n34) * idet; + ret[3][3] = (n12 * n23 * n31 - n13 * n22 * n31 + n13 * n21 * n32 - n11 * n23 * n32 - n12 * n21 * n33 + n11 * n22 * n33) * idet; + + return ret; +} + +#endif // MATH_HLSL \ No newline at end of file diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/math.hlsl.meta b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/math.hlsl.meta new file mode 100644 index 00000000000..b77d3e9cab6 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/math.hlsl.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 8a988affc98dd434aadd71fe6be1061f +ShaderIncludeImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/restructure_bvh.compute b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/restructure_bvh.compute new file mode 100644 index 00000000000..d5280c9cd19 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/restructure_bvh.compute @@ -0,0 +1,673 @@ +/********************************************************************** +Copyright (c) 2019 Advanced Micro Devices, Inc. All rights reserved. +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +********************************************************************/ +/********************************************************************** +Copyright (c) 2019 Advanced Micro Devices, Inc. All rights reserved. +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +********************************************************************/ + +// WebGPU has extremely strict uniformity requirements that are incompatible with the current implementation of this shader. +#pragma exclude_renderers webgpu + +RWStructuredBuffer g_vertices; +int g_vertices_offset; +uint g_constants_vertex_stride; + +#if defined(SHADER_API_PSSL) || defined(SHADER_API_METAL) || defined(SHADER_API_WEBGPU) +// TODO: globallycoherent is not supported on PS4, metal, or webgpu this shader may fail +#define globallycoherent +#endif + +#include "triangle_mesh.hlsl" +#include "transform.hlsl" +#include "bvh2il.hlsl" + +uint g_constants_min_prims_per_treelet; +uint g_constants_triangle_count; +uint g_treelet_count_offset; +uint g_treelet_roots_offset; +uint g_primitive_counts_offset; +uint g_remainder_treelets; +uint g_leaf_parents_offset; + +globallycoherent RWStructuredBuffer g_scratch_buffer; +RWStructuredBuffer g_treelet_dispatch_buffer; + +#define MAX_THREADGROUP_DIM 65535 +#define PRIMITIVES_PER_THREAD 8 +#define GROUP_SIZE 256 +#define INVALID_IDX 0xffffffff +#define MAX_TREELET_SIZE 7 +#define MAX_TREELET_INTERNAL_NODES (MAX_TREELET_SIZE - 1) +#define NUM_TREE_SPLIT_PERMUTATIONS (1 << MAX_TREELET_SIZE) +#define C_INT 1.2f +#define NUM_TREE_SPLIT_PERMUTATIONS_PER_THREAD (1 << (MAX_TREELET_SIZE - 6)) + +#define USE_BITWISE_OPT 1 +#define USE_PRECOMPUTED_PERMUTATIONS 1 + +/** + * @brief Initialize treelet counter. + **/ +#pragma kernel InitPrimitiveCounts +[numthreads(GROUP_SIZE, 1, 1)] +void InitPrimitiveCounts(in uint gidx: SV_DispatchThreadID) +{ + if (gidx == 0) + { + g_scratch_buffer[g_treelet_count_offset] = 0; + } + + uint leafCount = g_bvh[g_bvh_offset + 0].child1; + uint internalNodesCount = leafCount - 1; + + + for (int i = 0; i < PRIMITIVES_PER_THREAD; ++i) + { + uint index = gidx * PRIMITIVES_PER_THREAD + i; + if (index >= g_constants_triangle_count) + { + return; + } + + // Internal nodes. + if (index < internalNodesCount) + { + g_scratch_buffer[g_primitive_counts_offset + index] = 0; + } + } +} + +/** + * @brief Find treelet roots. + **/ +#pragma kernel FindTreeletRoots +[numthreads(GROUP_SIZE, 1, 1)] +void FindTreeletRoots(in uint gidx: SV_DispatchThreadID) +{ + const uint N = g_bvh[g_bvh_offset + 0].child1; + + for (int i = 0; i < PRIMITIVES_PER_THREAD; ++i) + { + uint prim_index = gidx * PRIMITIVES_PER_THREAD + i; + if (prim_index >= N) + { + return; + } + + uint prim_count = 1; + uint index = g_scratch_buffer[g_leaf_parents_offset + prim_index]; + + [allow_uav_condition] + while (index != INVALID_IDX) + { + uint old_value = 0; + AllMemoryBarrier(); + InterlockedExchange(g_scratch_buffer[g_primitive_counts_offset + index], prim_count, old_value); + AllMemoryBarrier(); + + prim_count += old_value; + + if (old_value) + { + if (prim_count >= g_constants_min_prims_per_treelet) + { + // Write treelet. + uint idx; + InterlockedAdd(g_scratch_buffer[g_treelet_count_offset], 1, idx); + g_scratch_buffer[g_treelet_roots_offset + idx] = index; + break; + } + } + else + { + // This is first thread, bail out. + break; + } + + index = g_bvh[g_bvh_offset + 1 + index].parent; + } + } +} + +#pragma kernel PrepareTreeletsDispatchSize +[numthreads(1, 1, 1)] +void PrepareTreeletsDispatchSize(in uint gidx: SV_DispatchThreadID) +{ + if (gidx == 0) + { + uint treelet_count = g_scratch_buffer[g_treelet_count_offset]; + if (treelet_count <= MAX_THREADGROUP_DIM) + { + g_treelet_dispatch_buffer[0] = treelet_count; + g_treelet_dispatch_buffer[1] = 1; + g_treelet_dispatch_buffer[2] = 1; + + g_treelet_dispatch_buffer[3] = 0; + g_treelet_dispatch_buffer[4] = 1; + g_treelet_dispatch_buffer[5] = 1; + } + else + { + int line_count = treelet_count / MAX_THREADGROUP_DIM; + int remainder = treelet_count % MAX_THREADGROUP_DIM; + + g_treelet_dispatch_buffer[0] = MAX_THREADGROUP_DIM; + g_treelet_dispatch_buffer[1] = line_count; + g_treelet_dispatch_buffer[2] = 1; + + g_treelet_dispatch_buffer[3] = remainder; + g_treelet_dispatch_buffer[4] = 1; + g_treelet_dispatch_buffer[5] = 1; + } + } +} + + +//===================================================================================================================== +float CalculateCost(in Aabb node_aabb, in float parent_aabb_surface_area) +{ + // TODO consider caching rcp(parent_aabb_surface_area) + return C_INT * GetAabbSurfaceArea(node_aabb) / parent_aabb_surface_area; +} + +float CalculateCost(in float surface_area, in float parent_aabb_surface_area) +{ + // TODO consider caching rcp(parent_aabb_surface_area) + return C_INT * surface_area / parent_aabb_surface_area; +} +#define BIT(x) (1 << (x)) + +groupshared uint lds_nodes_to_reorder[MAX_TREELET_SIZE]; +groupshared uint lds_internal_nodes[MAX_TREELET_INTERNAL_NODES]; +groupshared float lds_area[NUM_TREE_SPLIT_PERMUTATIONS]; +groupshared float lds_optimal_cost[NUM_TREE_SPLIT_PERMUTATIONS]; +groupshared uint lds_optimal_partition[NUM_TREE_SPLIT_PERMUTATIONS]; +groupshared uint lds_node_index; +groupshared bool lds_is_done; +groupshared float lds_partiton_cost[64]; +groupshared uint lds_partition_mask[64]; + +struct PartitionEntry +{ + uint mask; + uint node_index; +}; + +#if USE_PRECOMPUTED_PERMUTATIONS + +// All results of s_full_treelet_size choose i +static const uint s_full_treelet_size_choose[MAX_TREELET_SIZE + 1] = { 1, 7, 21, 35, 35, 21, 7, 1 }; + +// Precalculated bit permutations with k bits set, for k = 2 to s_full_treelet_size - 1. +// Permutations with k = 0, 1, and s_full_treelet_size are calculated in GetBitPermutation. +static const uint s_bit_permutations[MAX_TREELET_SIZE - 2][35] = { + { 0x03, 0x05, 0x06, 0x09, 0x0a, 0x0c, 0x11, 0x12, 0x14, 0x18, 0x21, 0x22, 0x24, 0x28, 0x30, 0x41, 0x42, 0x44, 0x48, 0x50, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, + { 0x07, 0x0b, 0x0d, 0x0e, 0x13, 0x15, 0x16, 0x19, 0x1a, 0x1c, 0x23, 0x25, 0x26, 0x29, 0x2a, 0x2c, 0x31, 0x32, 0x34, 0x38, 0x43, 0x45, 0x46, 0x49, 0x4a, 0x4c, 0x51, 0x52, 0x54, 0x58, 0x61, 0x62, 0x64, 0x68, 0x70 }, + { 0x0f, 0x17, 0x1b, 0x1d, 0x1e, 0x27, 0x2b, 0x2d, 0x2e, 0x33, 0x35, 0x36, 0x39, 0x3a, 0x3c, 0x47, 0x4b, 0x4d, 0x4e, 0x53, 0x55, 0x56, 0x59, 0x5a, 0x5c, 0x63, 0x65, 0x66, 0x69, 0x6a, 0x6c, 0x71, 0x72, 0x74, 0x78 }, + { 0x1f, 0x2f, 0x37, 0x3b, 0x3d, 0x3e, 0x4f, 0x57, 0x5b, 0x5d, 0x5e, 0x67, 0x6b, 0x6d, 0x6e, 0x73, 0x75, 0x76, 0x79, 0x7a, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, + { 0x3f, 0x5f, 0x6f, 0x77, 0x7b, 0x7d, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } +}; + +uint GetBitPermutation(uint num_bits_set, uint n) +{ + // GetBitPermutation is always called with num_bits_set == [2, s_full_treelet_size] + if (num_bits_set == MAX_TREELET_SIZE) + { + return BIT(MAX_TREELET_SIZE) - 1; + } + else + { + return s_bit_permutations[num_bits_set - 2][n]; + } +} +//************************************************************ +#endif + + +void ComputeTreeletCosts(uint lidx) +{ + //iterate through all bitmasks with "N bits" to calculate the costs + //the costs depened on lower bits so start from bits 1 + + + // calc cost for for bitmaks with 1bit + { + //**can be removed and just use lds_area as theres no leaf intersection in cost** + float root_aabb_surface_area = 1; + + //calc cost per bit in bitmask (per leaf) + //cost for ONE bit + //**can be removed and just use lds_area as theres no leaf intersection in cost** + + if (lidx < MAX_TREELET_SIZE) + { + lds_optimal_cost[BIT(lidx)] = CalculateCost(lds_area[BIT(lidx)], root_aabb_surface_area); + } + } + + // calc cost for for bitmaks with 1 to MAX_TREELET_SIZE-2 bits + uint bits; + uint bitsEnd = MAX_TREELET_SIZE - 1; + // uint bitsEnd = MAX_TREELET_SIZE - 2; TODO(Yvain) renable when MAX_TREELET_SIZE-1 optmized path is fixed + for (bits = 2; bits <= bitsEnd; bits++) + { + // Sync before move on to calculate cost for more bits + GroupMemoryBarrierWithGroupSync(); + + uint num_treelet_bitmasks = s_full_treelet_size_choose[bits]; + + if (lidx < num_treelet_bitmasks) + { + //NOTE: since everything in s_full_treelet_size_choose < 64 (wave size), we can simply assign one bitmask per thread + uint treelet_bitmask = GetBitPermutation(bits, lidx); + + float lowest_cost = FLT_MAX; + uint best_partition = 0; + + //https://research.nvidia.com/sites/default/files/pubs/2013-07_Fast-Parallel-Construction/karras2013hpg_paper.pdf + //Algorithm 3 + + uint delta = (treelet_bitmask - 1) & treelet_bitmask; + uint minus_delta = -((int)delta); + uint partition_bitmask = minus_delta & treelet_bitmask; + + do + { + const float cost = lds_optimal_cost[partition_bitmask] + lds_optimal_cost[treelet_bitmask ^ partition_bitmask]; + if ((best_partition == 0) || (cost < lowest_cost)) + { + lowest_cost = cost; + best_partition = partition_bitmask; + } + + partition_bitmask = (partition_bitmask - delta) & treelet_bitmask; + } while (partition_bitmask != 0); + lds_optimal_cost[treelet_bitmask] = C_INT * lds_area[treelet_bitmask] + lowest_cost; + + //pseusorandomize the partitioning to left vs right as this can impact performance + lds_optimal_partition[treelet_bitmask] = (countbits(treelet_bitmask) & 0x1) ? best_partition : (treelet_bitmask ^ best_partition); + + } + } + + // TODO(Yvain) This optimized path is crashing with Vulkan + /*GroupMemoryBarrierWithGroupSync(); + // calc cost for for bitmaks with MAX_TREELET_SIZE-1 bits + + bits = MAX_TREELET_SIZE - 1; + uint num_treelet_bitmasks = 56; + { + //7 different masks - 31 partitions per mask + //8 threads per mask - 4 partitions per thread + //56 = 7x8 threads to calculate cost for each partition + + uint mask_index = lidx / 8; //8 threads + uint thread_index = lidx % 8; + + uint treelet_bitmask = GetBitPermutation(bits, mask_index); + + if (lidx < num_treelet_bitmasks) + { + //8 threads working on same treelet_bitmask + //divide work by 8 and find best partition in parallel + float lowest_cost = FLT_MAX; + uint best_partition = 0; + + uint delta = (treelet_bitmask - 1) & treelet_bitmask; + uint partition_bitmask = (-delta) & treelet_bitmask; + + // starting partition depends on which thread + // 4 partitions per thread + partition_bitmask = (partition_bitmask - delta * thread_index * 4) & treelet_bitmask; + + int counter = 0; + + do + { + const float cost = lds_optimal_cost[partition_bitmask] + lds_optimal_cost[treelet_bitmask ^ partition_bitmask]; + if ((best_partition == 0) || (cost < lowest_cost)) + { + lowest_cost = cost; + best_partition = partition_bitmask; + } + + partition_bitmask = (partition_bitmask - delta) & treelet_bitmask; + counter++; + } while (partition_bitmask != 0 && counter < 4); + + lds_partiton_cost[lidx] = lowest_cost; + lds_partition_mask[lidx] = best_partition; + } + + GroupMemoryBarrierWithGroupSync(); + + uint num_unsorted_numbers = 8; + for (uint l = 0; l < ceil(log2(num_unsorted_numbers)); l++) + { + //[][][][] + //|/ | / + //[] [] + //| / + //| / + //[] + if (lidx < num_treelet_bitmasks && (lidx & ((1 << (l + 1)) - 1)) == 0) //gather and compare at each level + { + if (lds_partiton_cost[lidx] > lds_partiton_cost[lidx + (1 << l)]) //find min cost + { + lds_partiton_cost[lidx] = lds_partiton_cost[lidx + (1 << l)]; + lds_partition_mask[lidx] = lds_partition_mask[lidx + (1 << l)]; + } + } + + GroupMemoryBarrierWithGroupSync(); + } + + if (lidx < num_treelet_bitmasks && thread_index == 0) + { + lds_optimal_cost[treelet_bitmask] = C_INT * lds_area[treelet_bitmask] + lds_partiton_cost[lidx]; + lds_optimal_partition[treelet_bitmask] = lds_partition_mask[lidx]; + } + }*/ + + GroupMemoryBarrierWithGroupSync(); + // calc cost for for bitmaks with MAX_TREELET_SIZE bits + // groups size is 64 no need to check if lidx < 64 + bits = MAX_TREELET_SIZE; + { + uint treelet_bitmask = GetBitPermutation(bits, lidx); + + //1 mask + //63 threads to calculate cost for each partition + //64 threads to sort to find lowest cost partition + + if (lidx < ((1 << (MAX_TREELET_SIZE - 1)) - 1)) //63 possible partitions (1-63) + { + uint partition_bitmask = ((lidx + 1) << 1); //<<1 because the last bit/leaf will be part of the other side of the partition + + const float cost = lds_optimal_cost[partition_bitmask] + lds_optimal_cost[treelet_bitmask ^ partition_bitmask]; + + lds_partiton_cost[lidx] = cost; + lds_partition_mask[lidx] = partition_bitmask; + } + + GroupMemoryBarrierWithGroupSync(); + + uint num_unsorted_numbers = 63; + uint levels = ceil(log2(num_unsorted_numbers)); + for (uint l = 0; l < levels; l++) + { + //[][][][] + //|/ | / + //[] [] + //| / + //| / + //[] + if ((lidx & ((1 << (l + 1)) - 1)) == 0 && ((lidx + (1 << l)) < num_unsorted_numbers - 1)) //gather and compare at each level + { + if (lds_partiton_cost[lidx] > lds_partiton_cost[lidx + (1 << l)]) //find min cost + { + lds_partiton_cost[lidx] = lds_partiton_cost[lidx + (1 << l)]; + lds_partition_mask[lidx] = lds_partition_mask[lidx + (1 << l)]; + } + } + + GroupMemoryBarrierWithGroupSync(); + } + + if (lidx == 0) + { + lds_optimal_cost[treelet_bitmask] = C_INT * lds_area[treelet_bitmask] + lds_partiton_cost[0]; + lds_optimal_partition[treelet_bitmask] = lds_partition_mask[0]; + } + } +} + +/** + * @brief Restructure. + * + * Each group works on a separate treelet here and then goes up the tree. + **/ +#pragma kernel Restructure +[numthreads(64, 1, 1)] +void Restructure(in uint gidx : SV_DispatchThreadID, + in uint lidx : SV_GroupThreadID, + in uint2 bidx : SV_GroupID) +{ + const uint N = g_bvh[g_bvh_offset + 0].child1; + + if (lidx == 0) + { + int treelet_index; + if (g_remainder_treelets) + treelet_index = g_scratch_buffer[g_treelet_count_offset] - g_treelet_dispatch_buffer[3] + bidx.x; + else + treelet_index = bidx.x + bidx.y * MAX_THREADGROUP_DIM; + + lds_node_index = g_scratch_buffer[g_treelet_roots_offset + treelet_index]; + lds_is_done = false; + } + + GroupMemoryBarrierWithGroupSync(); + + [allow_uav_condition] + //while (true) // FXC generates incorrect code with a while true here, we write it as a for loop instead as a workaround + for (uint i = 0; i < 2147483647u; ++i) + { + // Form a treelet + if (lidx == 0) + { + lds_internal_nodes[0] = lds_node_index; + + lds_nodes_to_reorder[0] = g_bvh[g_bvh_offset+1 + lds_node_index].child0; + lds_nodes_to_reorder[1] = g_bvh[g_bvh_offset+1 + lds_node_index].child1; + + float surface_areas[MAX_TREELET_SIZE]; + + surface_areas[0] = GetAabbSurfaceArea(GetNodeAabb(g_bvh_offset+1, lds_nodes_to_reorder[0])); + surface_areas[1] = GetAabbSurfaceArea(GetNodeAabb(g_bvh_offset+1, lds_nodes_to_reorder[1])); + + uint treelet_size = 2; + while (treelet_size < MAX_TREELET_SIZE) + { + float largest_surface_area = 0.0; + uint node_index_to_traverse = 0; + uint index_of_node_index_to_traverse = 0; + for (uint i = 0; i < treelet_size; i++) + { + uint treelet_node_index = lds_nodes_to_reorder[i]; + // Leaf nodes can't be split so skip these + if (IS_INTERNAL_NODE(treelet_node_index)) + { + float surface_area = surface_areas[i]; + + if (largest_surface_area == 0.0 || surface_area > largest_surface_area) + { + largest_surface_area = surface_area; + node_index_to_traverse = treelet_node_index; + index_of_node_index_to_traverse = i; + } + } + } + + // Replace the original node with its left child and add the right child to the end + lds_internal_nodes[treelet_size - 1] = node_index_to_traverse; + + BvhNode node_to_traverse = g_bvh[g_bvh_offset+1 + node_index_to_traverse]; + + lds_nodes_to_reorder[index_of_node_index_to_traverse] = node_to_traverse.child0; + lds_nodes_to_reorder[treelet_size] = node_to_traverse.child1; + + surface_areas[index_of_node_index_to_traverse] = GetAabbSurfaceArea(GetNodeAabb(g_bvh_offset+1, node_to_traverse.child0)); + surface_areas[treelet_size] = GetAabbSurfaceArea(GetNodeAabb(g_bvh_offset+1, node_to_traverse.child1)); + + treelet_size++; + } + } + + + // Now that a treelet has been formed, try to reorder + + // Make sure thread0 is done before we procceed + GroupMemoryBarrierWithGroupSync(); + + for (uint b = 0; b < NUM_TREE_SPLIT_PERMUTATIONS_PER_THREAD; b++) + { + uint treelet_bitmask = NUM_TREE_SPLIT_PERMUTATIONS_PER_THREAD * lidx + b; + + Aabb aabb = CreateEmptyAabb(); + for (uint i = 0; i < MAX_TREELET_SIZE; i++) + { + if (BIT(i) & treelet_bitmask) + { + GrowAabb(GetNodeAabb(g_bvh_offset+1, lds_nodes_to_reorder[i]), aabb); + } + } + + lds_area[treelet_bitmask] = GetAabbSurfaceArea(aabb); + } + + ComputeTreeletCosts(lidx); + + GroupMemoryBarrierWithGroupSync(); + + //now have optimal partition for each type of bitmask (ie where to split for the active bits) + if (lidx == 0) + { + const uint full_partition_mask = NUM_TREE_SPLIT_PERMUTATIONS - 1; + + // Now that a reordering has been calculated, reform the tree + uint nodes_allocated = 1; + uint partition_stack_size = 1; + + PartitionEntry partition_stack[MAX_TREELET_SIZE]; + + partition_stack[0].mask = full_partition_mask; + partition_stack[0].node_index = lds_internal_nodes[0]; + + while (partition_stack_size > 0) + { + PartitionEntry partition = partition_stack[partition_stack_size - 1]; + partition_stack_size--; + + PartitionEntry left_entry; + left_entry.mask = lds_optimal_partition[partition.mask]; + + if (countbits(left_entry.mask) > 1) //internal treelet node + { + left_entry.node_index = lds_internal_nodes[nodes_allocated++]; + partition_stack[partition_stack_size++] = left_entry; + } + else //"leaf"..end of treeLet + { + left_entry.node_index = lds_nodes_to_reorder[log2(left_entry.mask)]; + } + + PartitionEntry right_entry; + right_entry.mask = partition.mask ^ left_entry.mask; + if (countbits(right_entry.mask) > 1) //internal treelet node + { + right_entry.node_index = lds_internal_nodes[nodes_allocated++]; + partition_stack[partition_stack_size++] = right_entry; + } + else //"leaf"..end of treeLet + { + right_entry.node_index = lds_nodes_to_reorder[log2(right_entry.mask)]; + } + + g_bvh[g_bvh_offset+1 + partition.node_index].child0 = left_entry.node_index; + g_bvh[g_bvh_offset+1 + partition.node_index].child1 = right_entry.node_index; + + if (IS_LEAF_NODE(left_entry.node_index)) + g_scratch_buffer[g_leaf_parents_offset + GET_LEAF_NODE_FIRST_PRIM(left_entry.node_index)] = partition.node_index; + else + g_bvh[g_bvh_offset+1 + left_entry.node_index].parent = partition.node_index; + + if (IS_LEAF_NODE(right_entry.node_index)) + g_scratch_buffer[g_leaf_parents_offset + GET_LEAF_NODE_FIRST_PRIM(right_entry.node_index)] = partition.node_index; + else + g_bvh[g_bvh_offset+1 + right_entry.node_index].parent = partition.node_index; + } + + ////recalc AABB for each internal node since they change topology + + // Start from the back. This is optimizing since the previous traversal went from + // top-down, the reverse order is guaranteed to be bottom-up + for (int j = MAX_TREELET_INTERNAL_NODES - 1; j >= 0; j--) + { + uint internal_node_index = lds_internal_nodes[j]; + Aabb left_aabb = GetNodeAabb(g_bvh_offset+1, g_bvh[g_bvh_offset+1 + internal_node_index].child0); + Aabb right_aabb = GetNodeAabb(g_bvh_offset+1, g_bvh[g_bvh_offset+1 + internal_node_index].child1); + + g_bvh[g_bvh_offset+1 + internal_node_index].SetLeftAabb(left_aabb); + g_bvh[g_bvh_offset+1 + internal_node_index].SetRightAabb(right_aabb); + } + } + + if (lidx == 0) + { + lds_node_index = IS_LEAF_NODE(lds_node_index) ? g_scratch_buffer[g_leaf_parents_offset + GET_LEAF_NODE_FIRST_PRIM(lds_node_index)] : g_bvh[g_bvh_offset+1 + lds_node_index].parent; + + if (lds_node_index == INVALID_IDX) + { + lds_is_done = true; + } + else + { + uint old = 0; + + InterlockedAdd(g_scratch_buffer[g_primitive_counts_offset + lds_node_index], 1, old); + if (old != 0) + { + Aabb left_aabb = GetNodeAabb(g_bvh_offset+1, g_bvh[g_bvh_offset+1 + lds_node_index].child0); + Aabb right_aabb = GetNodeAabb(g_bvh_offset+1, g_bvh[g_bvh_offset+1 + lds_node_index].child1); + + g_bvh[g_bvh_offset+1 + lds_node_index].SetLeftAabb(left_aabb); + g_bvh[g_bvh_offset+1 + lds_node_index].SetRightAabb(right_aabb); + } + else + { + lds_is_done = true; + } + } + } + + DeviceMemoryBarrierWithGroupSync(); + + if (lds_is_done) + { + return; + } + } +} + + diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/restructure_bvh.compute.meta b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/restructure_bvh.compute.meta new file mode 100644 index 00000000000..fb35c9df3bb --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/restructure_bvh.compute.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 56641cb88dcb31a4398a4997ef7a7a8c +ComputeShaderImporter: + externalObjects: {} + userData: + assetBundleName: unifiedraytracing + assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/scatter.compute b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/scatter.compute new file mode 100644 index 00000000000..37e5f544295 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/scatter.compute @@ -0,0 +1,247 @@ +/********************************************************************** +Copyright (c) 2019 Advanced Micro Devices, Inc. All rights reserved. +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +********************************************************************/ + +// WebGPU has extremely strict uniformity requirements that are incompatible with the current implementation of this shader. +#pragma exclude_renderers webgpu + +#define SORT_VALUES + +uint g_constants_num_keys; +uint g_constants_num_blocks; +uint g_constants_bit_shift; + +uint g_input_keys_offset; +uint g_group_histograms_offset; +uint g_output_keys_offset; +uint g_input_values_offset; +uint g_output_values_offset; + +RWStructuredBuffer g_buffer : register(u0); + + +#define NUM_BITS_PER_PASS 4 +#define NUM_BINS (1 << NUM_BITS_PER_PASS) +#define GROUP_SIZE 256u +#define KEYS_PER_THREAD 4u +//#define HISTOGRAM_TYPE short +#define INT_MAX 0x7fffffff + +// Scratch memory for group operations +groupshared int lds_scratch[GROUP_SIZE]; +// Temporary storage for the keys +groupshared int lds_keys[GROUP_SIZE]; +// Cache for scanned histogram for faster indexing +groupshared int lds_scanned_histogram[NUM_BINS]; +// Block histogram +groupshared int lds_histogram[NUM_BINS]; + +int BlockScan(int key, uint lidx) +{ +#ifndef USE_WAVE_INTRINSICS + // Load the key into LDS + lds_keys[lidx] = key; + + GroupMemoryBarrierWithGroupSync(); + + // Calculate reduction + uint stride = 0; + for (stride = 1; stride < GROUP_SIZE; stride <<= 1) + { + if (lidx < GROUP_SIZE / (2 * stride)) + { + lds_keys[2 * (lidx + 1) * stride - 1] = + lds_keys[2 * (lidx + 1) * stride - 1] + lds_keys[(2 * lidx + 1) * stride - 1]; + } + + GroupMemoryBarrierWithGroupSync(); + } + + // Then put 0 into the root for downsweep + if (lidx == 0) + lds_keys[GROUP_SIZE - 1] = 0; + + GroupMemoryBarrierWithGroupSync(); + + // Perform downsweep + for (stride = GROUP_SIZE >> 1; stride > 0; stride >>= 1) + { + if (lidx < GROUP_SIZE / (2 * stride)) + { + int temp = lds_keys[(2 * lidx + 1) * stride - 1]; + lds_keys[(2 * lidx + 1) * stride - 1] = lds_keys[2 * (lidx + 1) * stride - 1]; + lds_keys[2 * (lidx + 1) * stride - 1] = lds_keys[2 * (lidx + 1) * stride - 1] + temp; + } + + GroupMemoryBarrierWithGroupSync(); + } + + return lds_keys[lidx]; +#else + lds_keys[lidx] = 0; + + GroupMemoryBarrierWithGroupSync(); + + // Perform scan within a subgroup + int wave_scanned = WavePrefixSum(key); + + uint widx = lidx / WaveGetLaneCount(); + uint wlidx = WaveGetLaneIndex(); + + // Last element in each subgroup writes partial sum into LDS + if (wlidx == WaveGetLaneCount() - 1) + { + lds_keys[widx] = wave_scanned + key; + } + + GroupMemoryBarrierWithGroupSync(); + + // Then first subgroup scannes partial sums + if (widx == 0) + { + lds_keys[lidx] = WavePrefixSum(lds_keys[lidx]); + } + + GroupMemoryBarrierWithGroupSync(); + + // And we add partial sums back to each subgroup-scanned element + wave_scanned += lds_keys[widx]; + + return wave_scanned; +#endif +} + +//[RootSignature(ROOT_SIGNATURE)] +#pragma kernel Scatter +[numthreads(GROUP_SIZE, 1, 1)] +void Scatter( + in uint gidx: SV_DispatchThreadID, + in uint lidx: SV_GroupThreadID, + in uint bidx: SV_GroupID) +{ + // Cache scanned histogram in LDS and clear block histogram + if (lidx < NUM_BINS) + { + lds_scanned_histogram[lidx] = g_buffer[g_group_histograms_offset + g_constants_num_blocks * lidx + bidx]; + } + + // Starting point of our block in global memory + uint block_start_index = bidx * GROUP_SIZE * KEYS_PER_THREAD; + // Each thread handles PP_KEYS_PER_THREAD elements + for (uint i = 0; i < KEYS_PER_THREAD; ++i) + { + // Clear block histogram + if (lidx < NUM_BINS) + { + lds_histogram[lidx] = 0; + } + + // Calculate next input element index + uint key_index = block_start_index + i * GROUP_SIZE + lidx; + + // Fetch next element and put it in LDS + int key = (key_index < g_constants_num_keys) ? g_buffer[g_input_keys_offset + key_index] : INT_MAX; +#ifdef SORT_VALUES + int value = (key_index < g_constants_num_keys) ? g_buffer[g_input_values_offset + key_index] : 0; +#endif + + // Sort keys locally in LDS + for (uint shift = 0; shift < NUM_BITS_PER_PASS; shift += 2) + { + // Detemine bin index for the key + int bin_index = ((key >> g_constants_bit_shift) >> shift) & 0x3; + // Create local packed histogram (0th in 1st byte, 1th in 2nd, etc) + int local_histogram = 1 << (bin_index * 8); + // Scan local histograms + int local_histogram_scanned = BlockScan(local_histogram, lidx); + // Last thread in a block broadcasts total block histogram + if (lidx == (GROUP_SIZE - 1)) + { + lds_scratch[0] = local_histogram_scanned + local_histogram; + } + // Make sure broadcast happened + GroupMemoryBarrierWithGroupSync(); + // Load broadcast value + local_histogram = lds_scratch[0]; + // Scan block histogram in order to add scanned values as offsets + local_histogram = (local_histogram << 8) + + (local_histogram << 16) + + (local_histogram << 24); + // Add offsets from previos bins + local_histogram_scanned += local_histogram; + // Calculate target offset + int offset = (local_histogram_scanned >> (bin_index * 8)) & 0xff; + // Distribute the key + lds_keys[offset] = key; + // + GroupMemoryBarrierWithGroupSync(); + // Load key + key = lds_keys[lidx]; + +#ifdef SORT_VALUES + // Perform value exchange + GroupMemoryBarrierWithGroupSync(); + lds_keys[offset] = value; + GroupMemoryBarrierWithGroupSync(); + value = lds_keys[lidx]; + GroupMemoryBarrierWithGroupSync(); +#endif + } + + // Reconstruct original 16-bins histogram + int bin_index = (key >> g_constants_bit_shift) & 0xf; + + InterlockedAdd(lds_histogram[bin_index], 1); + + GroupMemoryBarrierWithGroupSync(); + + // Scan original histogram + int histogram_value = BlockScan(lidx < NUM_BINS ? lds_histogram[lidx] : 0, lidx); + + // Broadcast scanned histogram via LDS + if (lidx < NUM_BINS) + { + lds_scratch[lidx] = histogram_value; + } + + // Fetch scanned block histogram index + int global_offset = lds_scanned_histogram[bin_index]; + + GroupMemoryBarrierWithGroupSync(); + + // Fetch scanned histogram within a block + int local_offset = int(lidx) - lds_scratch[bin_index]; + + // Write the element back to global memory + if (global_offset + local_offset < int(g_constants_num_keys)) + { + g_buffer[g_output_keys_offset + global_offset + local_offset] = key; +#ifdef SORT_VALUES + g_buffer[g_output_values_offset + global_offset + local_offset] = value; +#endif + } + + GroupMemoryBarrierWithGroupSync(); + + // Update scanned histogram + if (lidx < NUM_BINS) + { + lds_scanned_histogram[lidx] += lds_histogram[lidx]; + } + } +} diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/scatter.compute.meta b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/scatter.compute.meta new file mode 100644 index 00000000000..0e873b73394 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/scatter.compute.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: a2eaeefdac4637a44b734e85b7be9186 +ComputeShaderImporter: + externalObjects: {} + userData: + assetBundleName: unifiedraytracing + assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/trace_ray.hlsl b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/trace_ray.hlsl new file mode 100644 index 00000000000..40b2d67a7d0 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/trace_ray.hlsl @@ -0,0 +1,281 @@ +/********************************************************************** +Copyright (c) 2019 Advanced Micro Devices, Inc. All rights reserved. +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +********************************************************************/ +#ifndef TRACE_RAY_HLSL +#define TRACE_RAY_HLSL + +#include "intersect_structures.hlsl" +#include "transform.hlsl" +#include "intersector_common.hlsl" + +#pragma warning(disable : 4008) // // fast_intersect_bbox is designed to handle inf and nans, so we disable the `floating point division by zero` warning +#ifndef GROUP_SIZE +#define GROUP_SIZE 128 +#endif + +#define LDS_STACK_SIZE 8 +#define STACK_SIZE 64 +#define TOP_LEVEL_SENTINEL 0xFFFFFFFE +groupshared uint lds_stack[LDS_STACK_SIZE * GROUP_SIZE]; + +void PushStack(RWStructuredBuffer stack, in uint addr, inout uint lds_sptr, inout uint lds_sbegin, inout uint sptr, inout uint sbegin) +{ + if (lds_sptr - lds_sbegin >= LDS_STACK_SIZE) + { + for (int i = 1; i < LDS_STACK_SIZE; ++i) + { + stack[sptr + i] = lds_stack[lds_sbegin + i]; + } + + sptr += LDS_STACK_SIZE; + lds_sptr = lds_sbegin + 1; + } + lds_stack[lds_sptr++] = addr; +} + +uint PopStack(RWStructuredBuffer stack, inout uint lds_sptr, inout uint lds_sbegin, inout uint sptr, inout uint sbegin) +{ + uint addr = lds_stack[--lds_sptr]; + if (addr == INVALID_NODE && sptr > sbegin) + { + sptr -= LDS_STACK_SIZE; + for (int i = 1; i < LDS_STACK_SIZE; ++i) + { + lds_stack[lds_sbegin + i] = stack[sptr + i]; + } + lds_sptr = lds_sbegin + LDS_STACK_SIZE; + addr = lds_stack[--lds_sptr]; + } + return addr; +} + +/** + * @brief Trace rays againsts given acceleration structure + * + **/ + +struct TraceHitResult +{ + float2 uv; + uint inst_id; + uint prim_id; + float hit_distance; + bool front_face; +}; + +struct TraceParams +{ + StructuredBuffer bvh; + StructuredBuffer bottom_bvhs; + StructuredBuffer bottom_bvh_leaves; + StructuredBuffer bottom_bvhs_vertices; + int bottom_bvhs_vertex_stride; + + RWStructuredBuffer stack; + StructuredBuffer instance_infos; + + uint globalThreadIndex; + uint localThreadIndex; +}; + +TraceHitResult TraceRaySoftware( + TraceParams params, + float3 rayOrigin, float tmin, float3 rayDirection, float tmax, + uint rayMask, + int ray_cull_mode, + bool closestHit) +{ + // define stack start + uint sbegin = STACK_SIZE * params.globalThreadIndex; + uint sptr = sbegin; + uint lds_sbegin = params.localThreadIndex * LDS_STACK_SIZE; + uint lds_sptr = lds_sbegin; + lds_stack[lds_sptr++] = INVALID_NODE; + // prepare ray info for trace + float3 ray_o = rayOrigin; + float3 ray_d = rayDirection; + float ray_mint = tmin; + float ray_maxt = tmax; + float3 ray_invd = 1.0 / ray_d; // fast_intersect_bbox is designed to handle inf and nans + + float ray_length = 1.0f; + bool intersection_found_in_bottom_level = false; + // instance index for scene + uint current_instance = INVALID_NODE; + uint closest_instance = INVALID_NODE; + uint closest_prim = INVALID_NODE; + float2 closest_uv = float2(0.f, 0.f); + bool closest_front_face = true; + + int vertex_offset = 0; + int bottom_bvh_leaves_offset = 0; + int cull_mode = ray_cull_mode; + + // get root node index from bvh header + uint node_index = params.bvh[0].parent; + uint bottom_bvh_offset; + + while (node_index != INVALID_NODE ) + { + bool is_leaf = IS_LEAF_NODE(node_index); + bool skip_popstack = false; + + if (!is_leaf) + { + BvhNode node; + if (current_instance == INVALID_NODE) + { + node = params.bvh[1 + node_index]; + } + else + { + node = params.bottom_bvhs[bottom_bvh_offset + 1 + node_index]; + } + + uint2 result = IntersectInternalNode(node, ray_invd, ray_o, ray_mint, ray_maxt); + if (result.y != INVALID_NODE) + { + PushStack(params.stack, result.y, lds_sptr, lds_sbegin, sptr, sbegin); + } + + if (result.x != INVALID_NODE) + { + node_index = result.x; + skip_popstack = true; + } + } + // top-level leaf: adjust ray respecively to transforms + else if (current_instance == INVALID_NODE) + { + uint instance_in_leaf_node = GET_LEAF_NODE_FIRST_PRIM(node_index); + uint instance_mask = params.instance_infos[instance_in_leaf_node].instance_mask; + + if ((instance_mask & rayMask) != 0) + { + // push sentinel + PushStack(params.stack, TOP_LEVEL_SENTINEL, lds_sptr, lds_sbegin, sptr, sbegin); + + current_instance = instance_in_leaf_node; + bottom_bvh_offset = params.instance_infos[current_instance].blas_offset; + Transform transform = params.instance_infos[current_instance].world_to_local_transform; + vertex_offset = params.instance_infos[current_instance].vertex_offset; + bottom_bvh_leaves_offset = params.instance_infos[current_instance].blas_leaves_offset; + + cull_mode = ray_cull_mode; + if (params.instance_infos[current_instance].invert_triangle_culling) + cull_mode = -cull_mode; + + if (!params.instance_infos[current_instance].triangle_culling_enabled) + cull_mode = 0; + + node_index = params.bottom_bvhs[bottom_bvh_offset + 0].parent; + + // transform ray into Bottom level space + intersection_found_in_bottom_level = false; + ray_o = TransformPointT(ray_o, transform); + ray_d = TransformDirection(ray_d, transform); + tmax = ray_maxt; + ray_length = max3(abs(ray_d)); + ray_d /= ray_length; // rescale ray to avoid floating point precision issues + ray_maxt *= ray_length; + ray_mint *= ray_length; + ray_invd = 1.0 / ray_d; + + skip_popstack = true; + } + } + // bottom-level leaf + else + { + int first_triangle = GET_LEAF_NODE_FIRST_PRIM(node_index); + int node_triangle_count = GET_LEAF_NODE_PRIM_COUNT(node_index); + + for (int i = 0; i < node_triangle_count; ++i) + { + uint4 leafNode = params.bottom_bvh_leaves[bottom_bvh_leaves_offset + (first_triangle + i)]; + uint prim_id = leafNode.w; + float2 uv = 0.0f; + bool is_front_face = false; + if (IntersectLeafTriangle(params.bottom_bvhs_vertices, params.bottom_bvhs_vertex_stride, vertex_offset, leafNode, cull_mode, ray_d, ray_o, ray_mint, ray_maxt, uv, is_front_face)) + { + intersection_found_in_bottom_level = true; + if (closestHit) + { + closest_instance = current_instance; + closest_prim = prim_id; + closest_uv = uv; + closest_front_face = is_front_face; + } + else + { + TraceHitResult res; + res.inst_id = current_instance; + res.uv = uv; + res.prim_id = prim_id; + res.hit_distance = ray_maxt; + res.front_face = is_front_face; + return res; + } + } + } + } + + if (skip_popstack) + continue; + + node_index = PopStack(params.stack, lds_sptr, lds_sbegin, sptr, sbegin); + // check if need to go back to the top-level + if (node_index == TOP_LEVEL_SENTINEL) + { + node_index = PopStack(params.stack, lds_sptr, lds_sbegin, sptr, sbegin); + current_instance = INVALID_NODE; + // restore ray + ray_o = rayOrigin; + ray_d = rayDirection; + ray_maxt = intersection_found_in_bottom_level ? ray_maxt / ray_length : tmax; + ray_mint = tmin; + ray_invd = 1.0 / ray_d; // fast_intersect_bbox is designed to handle inf and nans + } + } + + TraceHitResult res; + if (closestHit && closest_instance != INVALID_NODE) + { + res.uv = closest_uv; + res.prim_id = closest_prim; + res.inst_id = closest_instance; + res.hit_distance = ray_maxt; + res.front_face = closest_front_face; + } + else + { + res.uv = 0; + res.prim_id = INVALID_NODE; + res.inst_id = INVALID_NODE; + res.hit_distance = FLT_MAX; + res.front_face = false; + } + + return res; +} + +uint GetUserInstanceID(TraceParams params, int instance_id) +{ + return params.instance_infos[instance_id].user_instance_id; +} +#endif // TRACE_RAY_HLSL diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/trace_ray.hlsl.meta b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/trace_ray.hlsl.meta new file mode 100644 index 00000000000..8a6cb3c3b73 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/trace_ray.hlsl.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ab8d793352dffca4f9b91b50e2421b57 +ShaderIncludeImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/transform.hlsl b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/transform.hlsl new file mode 100644 index 00000000000..4ed30014fa7 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/transform.hlsl @@ -0,0 +1,101 @@ +/********************************************************************** +Copyright (c) 2020 Advanced Micro Devices, Inc. All rights reserved. +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +********************************************************************/ +#ifndef TRANSFORM_HLSL +#define TRANSFORM_HLSL + +#ifndef HOST +#include "math.hlsl" +#include "aabb.hlsl" +#endif + +//< Transform matrix +struct Transform +{ + float4 row0; + float4 row1; + float4 row2; +}; + +#ifndef HOST +float3 TransformPointT(in float3 p, in Transform transform) +{ + float4 transform_vec[3] = {transform.row0, transform.row1, transform.row2}; + return TransformPoint(p, transform_vec); +} + +float3 TransformDirection(in float3 d, in Transform transform) +{ + return float3(dot(d, transform.row0.xyz), + dot(d, transform.row1.xyz), + dot(d, transform.row2.xyz)); +} + +Transform Inverse(in Transform t) +{ + float4x4 m; + m[0] = float4(t.row0.x, t.row1.x, t.row2.x, 0); + m[1] = float4(t.row0.y, t.row1.y, t.row2.y, 0); + m[2] = float4(t.row0.z, t.row1.z, t.row2.z, 0); + m[3] = float4(t.row0.w, t.row1.w, t.row2.w, 1); + + m = inverse(m); + + Transform res; + res.row0 = float4(m[0].x, m[1].x, m[2].x, m[3].x); + res.row1 = float4(m[0].y, m[1].y, m[2].y, m[3].y); + res.row2 = float4(m[0].z, m[1].z, m[2].z, m[3].z); + + return res; +} + +Aabb TransformAabb(in Aabb aabb, in Transform t) +{ + float3 p0 = aabb.pmin; + float3 p1 = float3(aabb.pmin.x, aabb.pmin.y, aabb.pmax.z); + float3 p2 = float3(aabb.pmin.x, aabb.pmax.y, aabb.pmin.z); + float3 p3 = float3(aabb.pmin.x, aabb.pmax.y, aabb.pmax.z); + float3 p4 = float3(aabb.pmax.x, aabb.pmin.y, aabb.pmax.z); + float3 p5 = float3(aabb.pmax.x, aabb.pmax.y, aabb.pmin.z); + float3 p6 = float3(aabb.pmax.x, aabb.pmax.y, aabb.pmax.z); + float3 p7 = aabb.pmax; + + p0 = TransformPointT(p0, t); + p1 = TransformPointT(p1, t); + p2 = TransformPointT(p2, t); + p3 = TransformPointT(p3, t); + p4 = TransformPointT(p4, t); + p5 = TransformPointT(p5, t); + p6 = TransformPointT(p6, t); + p7 = TransformPointT(p7, t); + + aabb = CreateEmptyAabb(); + GrowAabb(p0, aabb); + GrowAabb(p1, aabb); + GrowAabb(p2, aabb); + GrowAabb(p3, aabb); + GrowAabb(p4, aabb); + GrowAabb(p5, aabb); + GrowAabb(p6, aabb); + GrowAabb(p7, aabb); + + return aabb; +} +#endif + +#endif // TRANSFORM_HLSL \ No newline at end of file diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/transform.hlsl.meta b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/transform.hlsl.meta new file mode 100644 index 00000000000..2440a731c64 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/transform.hlsl.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 7b4dd253adea58d49a8347c5bcc08904 +ShaderIncludeImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/triangle_mesh.hlsl b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/triangle_mesh.hlsl new file mode 100644 index 00000000000..e9721f5a3ce --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/triangle_mesh.hlsl @@ -0,0 +1,68 @@ +/********************************************************************** +Copyright (c) 2019 Advanced Micro Devices, Inc. All rights reserved. +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +********************************************************************/ +#ifndef TRIANGLE_MESH_HLSL +#define TRIANGLE_MESH_HLSL + +struct TriangleData +{ + float3 v0; + float3 v1; + float3 v2; +}; + +#ifdef MESH_INDICES_BINDINGS + +uint LoadIndex16(uint offset) +{ + uint val = g_indices.Load(((g_indices_offset + offset) / 2u) << 2); + val = (g_indices_offset + offset) % 2u == 0 ? (val & 0x0000ffff) : (val >> 16); + return val; +} + +#if !(TOP_LEVEL) +uint3 GetFaceIndices(uint tri_idx) +{ + #if UINT16_INDICES + return g_base_index + uint3(LoadIndex16(3*tri_idx), LoadIndex16(3 * tri_idx + 1), LoadIndex16(3 * tri_idx + 2)); + #else + return g_base_index + uint3(g_indices.Load((g_indices_offset + 3 * tri_idx)<<2), g_indices.Load((g_indices_offset + 3 * tri_idx + 1)<<2), g_indices.Load((g_indices_offset + 3 * tri_idx + 2)<<2)); + #endif +} +#endif + +#endif // MESH_INDICES_BINDINGS + +float3 FetchVertex(uint idx) +{ + uint stride_in_floats = g_constants_vertex_stride; + uint index_in_floats = g_vertices_offset + idx * stride_in_floats; + return float3(g_vertices[index_in_floats], g_vertices[index_in_floats + 1], g_vertices[index_in_floats + 2]); +} + +TriangleData FetchTriangle(uint3 idx) +{ + TriangleData tri; + tri.v0 = FetchVertex(idx.x); + tri.v1 = FetchVertex(idx.y); + tri.v2 = FetchVertex(idx.z); + return tri; +} + + +#endif // TRIANGLE_MESH_HLSL diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/triangle_mesh.hlsl.meta b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/triangle_mesh.hlsl.meta new file mode 100644 index 00000000000..21c23bf6fd1 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/triangle_mesh.hlsl.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 76757b5514dd6404dafc9fbe2566522d +ShaderIncludeImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RayQuerySoftware.hlsl b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RayQuerySoftware.hlsl new file mode 100644 index 00000000000..3dca1b65c30 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RayQuerySoftware.hlsl @@ -0,0 +1,434 @@ +#ifndef _UNIFIEDRAYTRACING_RAYQUERYSOFTWARE_HLSL_ +#define _UNIFIEDRAYTRACING_RAYQUERYSOFTWARE_HLSL_ + +#include "Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Bindings.hlsl" + +#pragma warning(disable : 4008) // fast_intersect_bbox is designed to handle inf and nans, so we disable the `floating point division by zero` warning + +#ifndef UNIFIED_RT_LDS_STACK_SIZE +#define UNIFIED_RT_LDS_STACK_SIZE 8 +#endif + +#ifndef UNIFIED_RT_STACK_SIZE +#define UNIFIED_RT_STACK_SIZE 64 +#endif + +RWStructuredBuffer _UnifiedRT_Stack; + +namespace UnifiedRT { + +groupshared uint lds_stack[UNIFIED_RT_LDS_STACK_SIZE * (UNIFIED_RT_GROUP_SIZE_X*UNIFIED_RT_GROUP_SIZE_Y*UNIFIED_RT_GROUP_SIZE_Z)]; + +static const uint kTopLevelSentinel = 0xFFFFFFFE; +static const uint kCommittedNothing = 0; +static const uint kCommittedTriangleHit = 1; + +static const uint kNonOpaqueInstanceBit = (1 << 29); +static const uint kCandidateHitCommittedBit = (1 << 28); + +struct RayTraversalStack +{ + void Init(uint globalThreadIndex, uint localThreadIndex) + { + sbegin = UNIFIED_RT_STACK_SIZE * globalThreadIndex; + sptr = sbegin; + lds_sbegin = localThreadIndex * UNIFIED_RT_LDS_STACK_SIZE; + lds_sptr = lds_sbegin; + lds_stack[lds_sptr++] = INVALID_NODE; + } + + void Push(uint addr) + { + if (lds_sptr - lds_sbegin >= UNIFIED_RT_LDS_STACK_SIZE) + { + for (int i = 1; i < UNIFIED_RT_LDS_STACK_SIZE; ++i) + { + _UnifiedRT_Stack[sptr + i] = lds_stack[lds_sbegin + i]; + } + + sptr += UNIFIED_RT_LDS_STACK_SIZE; + lds_sptr = lds_sbegin + 1; + } + lds_stack[lds_sptr++] = addr; + } + + uint Pop() + { + uint addr = lds_stack[--lds_sptr]; + if (addr == INVALID_NODE && sptr > sbegin) + { + sptr -= UNIFIED_RT_LDS_STACK_SIZE; + for (int i = 1; i < UNIFIED_RT_LDS_STACK_SIZE; ++i) + { + lds_stack[lds_sbegin + i] = _UnifiedRT_Stack[sptr + i]; + } + lds_sptr = lds_sbegin + UNIFIED_RT_LDS_STACK_SIZE; + addr = lds_stack[--lds_sptr]; + } + return addr; + } + + uint lds_sptr; + uint lds_sbegin; + uint sptr; + uint sbegin; +}; + +uint GetCullMode(uint rayFlags) +{ + uint cullMode = 0; + cullMode |= (rayFlags & kRayFlagCullBackFacingTriangles) << 27; + + if ((rayFlags & (kRayFlagCullFrontFacingTriangles | kRayFlagCullBackFacingTriangles)) == 0) + cullMode |= (1 << 30); + + return cullMode; +} + +struct ClosestHit +{ + uint instanceIndex; + uint isFrontFace_primitiveIndex; + float2 uv; +}; + +struct CandidateHit +{ + uint isFrontFace_primitiveIndex; + float2 uv; + float hitT; +}; + +struct CurrentInstance +{ + uint cullMode_isNonOpaque_candidateCommitted; + uint bvhOffset; + int bvhLeavesOffset; + int vertexOffset; +}; + +CurrentInstance GetCurrentInstance(InstanceInfo instanceInfo, uint rayCullMode, bool transparentInstance) +{ + CurrentInstance currentInstance; + currentInstance.bvhOffset = instanceInfo.blas_offset; + currentInstance.vertexOffset = instanceInfo.vertex_offset; + currentInstance.bvhLeavesOffset = instanceInfo.blas_leaves_offset; + + uint instanceCullMode = (rayCullMode ^ instanceInfo.invert_triangle_culling) | instanceInfo.disable_triangle_culling; + + currentInstance.cullMode_isNonOpaque_candidateCommitted = instanceCullMode; + if (transparentInstance) + currentInstance.cullMode_isNonOpaque_candidateCommitted |= kNonOpaqueInstanceBit; + + return currentInstance; +} + +bool IsInstanceNonOpaque(RayTracingAccelStruct accelStruct, uint instanceIndex, uint rayFlags) +{ + bool isTransparent = !accelStruct.instance_infos[instanceIndex].is_opaque; + if (rayFlags & kRayFlagForceNonOpaque) + isTransparent = true; + if (rayFlags & kRayFlagForceOpaque) + isTransparent = false; + + return isTransparent; +} + +float4x3 ConvertToFloat4x3(Transform t) +{ + float4x3 m; + m[0] = float3(t.row0.x, t.row1.x, t.row2.x); + m[1] = float3(t.row0.y, t.row1.y, t.row2.y); + m[2] = float3(t.row0.z, t.row1.z, t.row2.z); + m[3] = float3(t.row0.w, t.row1.w, t.row2.w); + return m; +} + +float3x4 ConvertToFloat3x4(Transform t) +{ + float3x4 m; + m[0] = float4(t.row0.x, t.row0.y, t.row0.z, t.row0.w); + m[1] = float4(t.row1.x, t.row1.y, t.row1.z, t.row1.w); + m[2] = float4(t.row2.x, t.row2.y, t.row2.z, t.row2.w); + return m; +} + +bool IntersectLeafTriangle( + StructuredBuffer vertexBuffer, int vertexOffset, uint4 leafNode, uint triangleCullMode, + float3 rayDirection, float3 rayOrigin, float tmin, float tmax, + out CandidateHit hitInfo) +{ + hitInfo = (CandidateHit)0; + uint3 triangleIndices = leafNode.xyz; + float3 v1 = FetchVertex(vertexBuffer, 3, vertexOffset, triangleIndices.x); + float3 v2 = FetchVertex(vertexBuffer, 3, vertexOffset, triangleIndices.y); + float3 v3 = FetchVertex(vertexBuffer, 3, vertexOffset, triangleIndices.z); + + // Determine edge vectors for clockwise triangle vertices + const float3 e1 = v2 - v1; + const float3 e2 = v3 - v1; + + const float3 s1 = cross(rayDirection, e2); + const float determinant = dot(s1, e1); + const float invd = rcp(determinant); + + const float3 d = rayOrigin - v1; + const float u = dot(d, s1) * invd; + + const uint detSignBit = asuint(determinant) & 0x80000000; + // Barycentric coordinate U is outside range or triangle front/backface culled + bool hit = false; + if (!((u < 0.f) || (u > 1.f) || determinant == 0.0f || detSignBit == triangleCullMode)) + { + const float3 s2 = cross(d, e1); + const float v = dot(rayDirection, s2) * invd; + // Barycentric coordinate V is outside range + if (!((v < 0.f) || (u + v > 1.f))) + { + // Check parametric distance + const float t = dot(e2, s2) * invd; + if (!(t < tmin || t > tmax)) + { + // Accept hit + hitInfo.isFrontFace_primitiveIndex = (detSignBit ^ 0x80000000) | leafNode.w; + hitInfo.uv = float2(u, v); + hitInfo.hitT = t; + hit = true; + } + } + } + return hit; +} + +struct RayQuery +{ + void Init(uint globalThreadIndex, uint localThreadIndex, RayTracingAccelStruct accelStruct_, uint rayFlags_, uint instanceMask_, Ray ray_) + { + accelStruct = accelStruct_; + rayCullMode_Mask = instanceMask_ & 0x000000FF; + rayCullMode_Mask |= GetCullMode(rayFlags_); + rayFlags = rayFlags_; + rayOriginInWorld = ray_.origin; + rayDirectionInWorld = ray_.direction; + tMin = ray_.tMin; + tMax = ray_.tMax; + rayOrigin = ray_.origin; + rayDirection = ray_.direction; + rayInvDir = 1.0 / ray_.direction; + + stack.Init(globalThreadIndex, localThreadIndex); + + candidateHit = (CandidateHit)0; + closestHit = (ClosestHit)0; + closestHit.instanceIndex = INVALID_NODE; + currentInstance = (CurrentInstance)0; + + currentNodeIndex = accelStruct.bvh[0].parent; // get root node index from bvh header + currentInstanceIndex = INVALID_NODE; + currentLeafTriangleIndex = -1; + } + + bool Proceed() + { + bool transparencyEnabled = !(rayFlags & (UnifiedRT::kRayFlagForceOpaque | UnifiedRT::kRayFlagCullNonOpaque)); + + if ((currentInstance.cullMode_isNonOpaque_candidateCommitted & kCandidateHitCommittedBit) && transparencyEnabled) + { + currentInstance.cullMode_isNonOpaque_candidateCommitted &= ~kCandidateHitCommittedBit; + + _CommitCandidateHit(); + + if (rayFlags & kRayFlagAcceptFirstHitAndEndSearch) + { + Abort(); + return false; + } + } + + currentLeafTriangleIndex++; + + while (currentNodeIndex != INVALID_NODE) + { + bool isLeaf = IS_LEAF_NODE(currentNodeIndex); + bool skipPopStack = false; + + // internal node (Bounding boxes) + if (!isLeaf) + { + BvhNode node; + if (currentInstanceIndex == INVALID_NODE) + node = accelStruct.bvh[1 + currentNodeIndex]; + else + node = accelStruct.bottom_bvhs[currentInstance.bvhOffset + 1 + currentNodeIndex]; + + uint2 result = IntersectInternalNode(node, rayInvDir, rayOrigin, tMin, tMax); + if (result.y != INVALID_NODE) + { + stack.Push(result.y); + } + + if (result.x != INVALID_NODE) + { + currentNodeIndex = result.x; + skipPopStack = true; + } + } + // top-level leaf: adjust ray respecively to transforms + else if (currentInstanceIndex == INVALID_NODE) + { + uint currentInstanceIndex_ = GET_LEAF_NODE_FIRST_PRIM(currentNodeIndex); + uint instanceMask = accelStruct.instance_infos[currentInstanceIndex_].instance_mask; + bool instanceIsTransparent = IsInstanceNonOpaque(accelStruct, currentInstanceIndex_, rayFlags); + + bool instanceCulled = (instanceMask & rayCullMode_Mask & 0x000000FF) == 0 || + (instanceIsTransparent && (rayFlags & kRayFlagCullNonOpaque)) || + (!instanceIsTransparent && (rayFlags & kRayFlagCullOpaque)); + + if (!instanceCulled) + { + // push sentinel + stack.Push(kTopLevelSentinel); + + currentInstanceIndex = currentInstanceIndex_; + currentInstance = GetCurrentInstance(accelStruct.instance_infos[currentInstanceIndex_], rayCullMode_Mask & 0xC0000000, instanceIsTransparent); + currentNodeIndex = accelStruct.bottom_bvhs[currentInstance.bvhOffset + 0].parent; + + // transform ray into Bottom level space + Transform transform = accelStruct.instance_infos[currentInstanceIndex].world_to_local_transform; + rayOrigin = TransformPointT(rayOriginInWorld, transform); + rayDirection = TransformDirection(rayDirectionInWorld, transform); + rayInvDir = 1.0 / rayDirection; + + skipPopStack = true; + } + } + // bottom-level leaf (triangles) + else + { + int firstTriangle = GET_LEAF_NODE_FIRST_PRIM(currentNodeIndex); + int nodeTriangleCount = GET_LEAF_NODE_PRIM_COUNT(currentNodeIndex); + + while (currentLeafTriangleIndex < nodeTriangleCount) + { + uint4 leafNode = accelStruct.bottom_bvh_leaves[currentInstance.bvhLeavesOffset + (firstTriangle + currentLeafTriangleIndex)]; + uint triangleCullMode = (currentInstance.cullMode_isNonOpaque_candidateCommitted & 0xC0000000); + bool nonOpaqueInstance = (currentInstance.cullMode_isNonOpaque_candidateCommitted & kNonOpaqueInstanceBit); + + if (IntersectLeafTriangle( + accelStruct.vertexBuffer, currentInstance.vertexOffset, leafNode, triangleCullMode, + rayDirection, rayOrigin, tMin, tMax, + candidateHit)) + { + if (nonOpaqueInstance && transparencyEnabled) + return true; + + _CommitCandidateHit(); + + if (rayFlags & kRayFlagAcceptFirstHitAndEndSearch) + { + Abort(); + return false; + } + } + + currentLeafTriangleIndex++; + } + + currentLeafTriangleIndex = 0; + } + + if (skipPopStack) + continue; + + currentNodeIndex = stack.Pop(); + + // check if need to go back to the top-level + if (currentNodeIndex == kTopLevelSentinel) + { + currentNodeIndex = stack.Pop(); + currentInstanceIndex = INVALID_NODE; + + // restore ray + rayOrigin = rayOriginInWorld; + rayDirection= rayDirectionInWorld; + rayInvDir = 1.0 / rayDirectionInWorld; + } + } + + return false; + } + + void Abort() + { + currentNodeIndex = INVALID_NODE; + } + + void CommitNonOpaqueTriangleHit() + { + currentInstance.cullMode_isNonOpaque_candidateCommitted |= kCandidateHitCommittedBit; + } + + void _CommitCandidateHit() + { + closestHit.instanceIndex = currentInstanceIndex; + closestHit.isFrontFace_primitiveIndex = candidateHit.isFrontFace_primitiveIndex; + closestHit.uv = candidateHit.uv; + tMax = candidateHit.hitT; + } + + uint RayFlags() { return rayFlags; } + float3 WorldRayOrigin() { return rayOriginInWorld; } + float3 WorldRayDirection() { return rayDirectionInWorld; } + float RayTMin() { return tMin; } + + float CandidateTriangleRayT() { return candidateHit.hitT; } + uint CandidateInstanceID() { return accelStruct.instance_infos[currentInstanceIndex].user_instance_id; } + uint CandidatePrimitiveIndex() { return candidateHit.isFrontFace_primitiveIndex & 0x7FFFFFFF; } + float2 CandidateTriangleBarycentrics() { return candidateHit.uv; } + bool CandidateTriangleFrontFace() { return candidateHit.isFrontFace_primitiveIndex & 0x80000000; } + float3 CandidateLocalRayOrigin() { return rayOrigin; } + float3 CandidateLocalRayDirection() { return rayDirection; } + float3x4 CandidateWorldToLocal3x4() { return ConvertToFloat3x4(accelStruct.instance_infos[currentInstanceIndex].world_to_local_transform); } + float4x3 CandidateWorldToLocal4x3() { return ConvertToFloat4x3(accelStruct.instance_infos[currentInstanceIndex].world_to_local_transform); } + float3x4 CandidateLocalToWorld3x4() { return ConvertToFloat3x4(accelStruct.instance_infos[currentInstanceIndex].local_to_world_transform); } + float4x3 CandidateLocalToWorld4x3() { return ConvertToFloat4x3(accelStruct.instance_infos[currentInstanceIndex].local_to_world_transform); } + + uint CommittedStatus() { return closestHit.instanceIndex == -1 ? kCommittedNothing : kCommittedTriangleHit; } + float CommittedRayT() { return tMax; } + uint CommittedInstanceID() { return accelStruct.instance_infos[closestHit.instanceIndex].user_instance_id; } + uint CommittedPrimitiveIndex() { return closestHit.isFrontFace_primitiveIndex & 0x7FFFFFFF; } + float2 CommittedTriangleBarycentrics() { return closestHit.uv; } + bool CommittedTriangleFrontFace() { return closestHit.isFrontFace_primitiveIndex & 0x80000000; } + float3 CommittedLocalRayOrigin() { return TransformPointT(rayOriginInWorld, accelStruct.instance_infos[closestHit.instanceIndex].world_to_local_transform); } + float3 CommittedLocalRayDirection() { return TransformDirection(rayDirectionInWorld, accelStruct.instance_infos[closestHit.instanceIndex].world_to_local_transform); } + float3x4 CommittedWorldToLocal3x4() { return ConvertToFloat3x4(accelStruct.instance_infos[closestHit.instanceIndex].world_to_local_transform); } + float4x3 CommittedWorldToLocal4x3() { return ConvertToFloat4x3(accelStruct.instance_infos[closestHit.instanceIndex].world_to_local_transform); } + float3x4 CommittedLocalToWorld3x4() { return ConvertToFloat3x4(accelStruct.instance_infos[closestHit.instanceIndex].local_to_world_transform); } + float4x3 CommittedLocalToWorld4x3() { return ConvertToFloat4x3(accelStruct.instance_infos[closestHit.instanceIndex].local_to_world_transform); } + + // read only data + uint rayFlags; + uint rayCullMode_Mask; + float3 rayOriginInWorld; + float3 rayDirectionInWorld; + float tMin; + RayTracingAccelStruct accelStruct; + + // traversal state + float tMax; + float3 rayOrigin; + float3 rayDirection; + float3 rayInvDir; + ClosestHit closestHit; + CandidateHit candidateHit; + RayTraversalStack stack; + CurrentInstance currentInstance; + uint currentNodeIndex; + uint currentInstanceIndex; + int currentLeafTriangleIndex; +}; + + +} // namespace UnifiedRT + +#endif // _UNIFIEDRAYTRACING_RAYQUERYSOFTWARE_HLSL_ diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RayQuerySoftware.hlsl.meta b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RayQuerySoftware.hlsl.meta new file mode 100644 index 00000000000..78963bef32c --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RayQuerySoftware.hlsl.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 3cae67c457a2ad24495f86529619c102 diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/FetchGeometry.hlsl b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/FetchGeometry.hlsl new file mode 100644 index 00000000000..55c6cead9b5 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/FetchGeometry.hlsl @@ -0,0 +1,123 @@ +#ifndef _UNIFIEDRAYTRACING_FETCHGEOMETRY_HLSL_ +#define _UNIFIEDRAYTRACING_FETCHGEOMETRY_HLSL_ + +#include "Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/GeometryPool/GeometryPoolDefs.cs.hlsl" +#include "Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/GeometryPool/GeometryPool.hlsl" + +#include "Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/CommonStructs.hlsl" + +#define INTERPOLATE_ATTRIBUTE(attr, barCoords) v.attr = v0.attr * (1.0 - barCoords.x - barCoords.y) + v1.attr * barCoords.x + v2.attr * barCoords.y + +StructuredBuffer g_AccelStructInstanceList; + +StructuredBuffer g_globalIndexBuffer; +StructuredBuffer g_globalVertexBuffer; +int g_globalVertexBufferStride; +StructuredBuffer g_MeshList; + +namespace UnifiedRT { + +namespace Internal { + GeoPoolVertex InterpolateVertices(GeoPoolVertex v0, GeoPoolVertex v1, GeoPoolVertex v2, float2 barycentricCoords) + { + GeoPoolVertex v; + INTERPOLATE_ATTRIBUTE(pos, barycentricCoords); + INTERPOLATE_ATTRIBUTE(N, barycentricCoords); + INTERPOLATE_ATTRIBUTE(uv0, barycentricCoords); + INTERPOLATE_ATTRIBUTE(uv1, barycentricCoords); + return v; + } + + uint3 FetchTriangleIndices(GeoPoolMeshChunk meshInfo, uint triangleID) + { + return uint3( + g_globalIndexBuffer[meshInfo.indexOffset + 3 * triangleID], + g_globalIndexBuffer[meshInfo.indexOffset + 3 * triangleID + 1], + g_globalIndexBuffer[meshInfo.indexOffset + 3 * triangleID + 2]); + } + + + GeoPoolVertex FetchVertex(GeoPoolMeshChunk meshInfo, uint vertexIndex) + { + GeoPoolVertex v; + GeometryPool::LoadVertex(meshInfo.vertexOffset + (int)vertexIndex, 0, g_globalVertexBuffer, v); + return v; + } +} + + +static const uint kGeomAttribPosition = 1 << 0; +static const uint kGeomAttribNormal = 1 << 1; +static const uint kGeomAttribTexCoord0 = 1 << 4; +static const uint kGeomAttribTexCoord1 = 1 << 8; +static const uint kGeomAttribFaceNormal = 1 << 16; +static const uint kGeomAttribAll = 0xFFFFFFFF; + +struct HitGeomAttributes +{ + float3 position; + float3 normal; + float3 faceNormal; + float2 uv0; + float2 uv1; +}; + +HitGeomAttributes FetchHitGeomAttributes(int geometryIndex, int primitiveIndex, float2 uvBarycentrics, uint attributesToFetch = kGeomAttribAll) +{ + HitGeomAttributes result = (HitGeomAttributes)0; + + GeoPoolMeshChunk meshInfo = g_MeshList[geometryIndex]; + uint3 triangleVertexIndices = Internal::FetchTriangleIndices(meshInfo, primitiveIndex); + + GeoPoolVertex v0, v1, v2; + v0 = Internal::FetchVertex(meshInfo, triangleVertexIndices.x); + v1 = Internal::FetchVertex(meshInfo, triangleVertexIndices.y); + v2 = Internal::FetchVertex(meshInfo, triangleVertexIndices.z); + + GeoPoolVertex v = Internal::InterpolateVertices(v0, v1, v2, uvBarycentrics); + + if (attributesToFetch & kGeomAttribFaceNormal) + result.faceNormal = cross(v1.pos - v0.pos, v2.pos - v0.pos); + + if (attributesToFetch & kGeomAttribPosition) + result.position = v.pos; + + if (attributesToFetch & kGeomAttribNormal) + result.normal = v.N; + + if (attributesToFetch & kGeomAttribTexCoord0) + result.uv0 = v.uv0; + + if (attributesToFetch & kGeomAttribTexCoord1) + result.uv1 = v.uv1; + + return result; +} + + +HitGeomAttributes FetchHitGeomAttributes(Hit hit, uint attributesToFetch = kGeomAttribAll) +{ + int geometryIndex = g_AccelStructInstanceList[hit.instanceID].geometryIndex; + return FetchHitGeomAttributes(geometryIndex, hit.primitiveIndex, hit.uvBarycentrics, attributesToFetch); +} + +HitGeomAttributes FetchHitGeomAttributesInWorldSpace(UnifiedRT::InstanceData instanceInfo, UnifiedRT::Hit hit) +{ + UnifiedRT::HitGeomAttributes res = UnifiedRT::FetchHitGeomAttributes(hit); + + HitGeomAttributes wsRes = res; + wsRes.position = mul(instanceInfo.localToWorld, float4(res.position, 1)).xyz; + wsRes.normal = normalize(mul((float3x3)instanceInfo.localToWorldNormals, res.normal)); + wsRes.faceNormal = normalize(mul((float3x3)instanceInfo.localToWorldNormals, res.faceNormal)); + + return wsRes; +} + +InstanceData GetInstance(uint instanceID) +{ + return g_AccelStructInstanceList[instanceID]; +} + +} // namespace UnifiedRT + +#endif // UNIFIEDRAYTRACING_FETCH_GEOMETRY_HLSL diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/FetchGeometry.hlsl.meta b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/FetchGeometry.hlsl.meta new file mode 100644 index 00000000000..2d6194e23a9 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/FetchGeometry.hlsl.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 8089a70b4819c714295530d5e01d5d36 +ShaderIncludeImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Hardware.meta b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Hardware.meta new file mode 100644 index 00000000000..58426d2b3d7 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Hardware.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: de0ed5319362ff5418fb5d16977e9463 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Hardware/HardwareRayTracingAccelStruct.cs b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Hardware/HardwareRayTracingAccelStruct.cs new file mode 100644 index 00000000000..2196e0613de --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Hardware/HardwareRayTracingAccelStruct.cs @@ -0,0 +1,141 @@ +using System.Collections.Generic; +using System.Diagnostics; + +namespace UnityEngine.Rendering.UnifiedRayTracing +{ + internal sealed class HardwareRayTracingAccelStruct : IRayTracingAccelStruct + { + public RayTracingAccelerationStructure accelStruct { get; } + + readonly RayTracingAccelerationStructureBuildFlags m_BuildFlags; + + // keep a reference to Meshes because RayTracingAccelerationStructure impl is to automatically + // remove instances when the mesh is disposed + readonly Dictionary m_Meshes = new(); + readonly ReferenceCounter m_Counter; + + #if UNITY_ASSERTIONS + readonly HashSet m_InstanceHandles = new(); + #endif + + internal HardwareRayTracingAccelStruct(AccelerationStructureOptions options, ReferenceCounter counter) + { + m_BuildFlags = (RayTracingAccelerationStructureBuildFlags)options.buildFlags; + + RayTracingAccelerationStructure.Settings settings = new RayTracingAccelerationStructure.Settings(); + settings.rayTracingModeMask = RayTracingAccelerationStructure.RayTracingModeMask.Everything; + settings.managementMode = RayTracingAccelerationStructure.ManagementMode.Manual; + settings.enableCompaction = false; + settings.layerMask = 255; + settings.buildFlagsStaticGeometries = m_BuildFlags; + + accelStruct = new RayTracingAccelerationStructure(settings); + + m_Counter = counter; + m_Counter.Inc(); + } + + public void Dispose() + { + m_Counter.Dec(); + accelStruct?.Dispose(); + } + + public int AddInstance(MeshInstanceDesc meshInstance) + { + Utils.CheckArgIsNotNull(meshInstance.mesh, "meshInstance.mesh"); + Utils.CheckArg(meshInstance.mesh.HasVertexAttribute(VertexAttribute.Position), "Cant use a mesh buffer that has no positions."); + Utils.CheckArgRange(meshInstance.subMeshIndex, 0, meshInstance.mesh.subMeshCount, "meshInstance.subMeshIndex"); + + var instanceDesc = new RayTracingMeshInstanceConfig(meshInstance.mesh, (uint)meshInstance.subMeshIndex, null); + instanceDesc.mask = meshInstance.mask; + instanceDesc.enableTriangleCulling = meshInstance.enableTriangleCulling; + instanceDesc.frontTriangleCounterClockwise = meshInstance.frontTriangleCounterClockwise; + instanceDesc.subMeshFlags = meshInstance.opaqueGeometry ? RayTracingSubMeshFlags.Enabled | RayTracingSubMeshFlags.ClosestHitOnly : RayTracingSubMeshFlags.Enabled | RayTracingSubMeshFlags.UniqueAnyHitCalls; + int instanceHandle = accelStruct.AddInstance(instanceDesc, meshInstance.localToWorldMatrix, null, meshInstance.instanceID); + + // If instanceID is auto assigned, set it in the same way as ComputeRaytracingAccelStruct + if (meshInstance.instanceID == 0xFFFFFFFF) + accelStruct.UpdateInstanceID(instanceHandle, (uint)instanceHandle); + + m_Meshes.Add(instanceHandle, meshInstance.mesh); + + #if UNITY_ASSERTIONS + m_InstanceHandles.Add(instanceHandle); + #endif + + return instanceHandle; + } + + public void RemoveInstance(int instanceHandle) + { + #if UNITY_ASSERTIONS + if (!m_InstanceHandles.Remove(instanceHandle)) + throw new System.ArgumentException($"accel struct does not contain instanceHandle {instanceHandle}", "instanceHandle"); + #endif + + m_Meshes.Remove(instanceHandle); + accelStruct.RemoveInstance(instanceHandle); + } + + public void ClearInstances() + { + #if UNITY_ASSERTIONS + m_InstanceHandles.Clear(); + #endif + + m_Meshes.Clear(); + accelStruct.ClearInstances(); + } + + public void UpdateInstanceTransform(int instanceHandle, Matrix4x4 localToWorldMatrix) + { + CheckInstanceHandleIsValid(instanceHandle); + + accelStruct.UpdateInstanceTransform(instanceHandle, localToWorldMatrix); + } + + public void UpdateInstanceID(int instanceHandle, uint instanceID) + { + CheckInstanceHandleIsValid(instanceHandle); + + accelStruct.UpdateInstanceID(instanceHandle, instanceID); + } + + public void UpdateInstanceMask(int instanceHandle, uint mask) + { + CheckInstanceHandleIsValid(instanceHandle); + + accelStruct.UpdateInstanceMask(instanceHandle, mask); + } + + public void Build(CommandBuffer cmd, GraphicsBuffer scratchBuffer) + { + Utils.CheckArgIsNotNull(cmd, nameof(cmd)); + + var buildSettings = new RayTracingAccelerationStructure.BuildSettings() + { + buildFlags = m_BuildFlags, + relativeOrigin = Vector3.zero + }; + cmd.BuildRayTracingAccelerationStructure(accelStruct, buildSettings); + } + + public ulong GetBuildScratchBufferRequiredSizeInBytes() + { + // Unity's Hardware impl (RayTracingAccelerationStructure) does not require any scratchbuffers. + // They are directly handled internally by the GfxDevice. + return 0; + } + + [Conditional("UNITY_ASSERTIONS")] + void CheckInstanceHandleIsValid(int instanceHandle) + { +#if UNITY_ASSERTIONS + if (!m_InstanceHandles.Contains(instanceHandle)) + throw new System.ArgumentException($"accel struct does not contain instanceHandle {instanceHandle}", "instanceHandle"); +#endif + } + } +} + diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Hardware/HardwareRayTracingAccelStruct.cs.meta b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Hardware/HardwareRayTracingAccelStruct.cs.meta new file mode 100644 index 00000000000..fda1dfbf295 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Hardware/HardwareRayTracingAccelStruct.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6170611547c16f24cb5d5878364fc42d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Hardware/HardwareRayTracingBackend.cs b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Hardware/HardwareRayTracingBackend.cs new file mode 100644 index 00000000000..6b9463eaa68 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Hardware/HardwareRayTracingBackend.cs @@ -0,0 +1,28 @@ +namespace UnityEngine.Rendering.UnifiedRayTracing +{ + internal class HardwareRayTracingBackend : IRayTracingBackend + { + public HardwareRayTracingBackend(RayTracingResources resources) + { + m_Resources = resources; + } + + public IRayTracingShader CreateRayTracingShader(Object shader, string kernelName, GraphicsBuffer dispatchBuffer) + { + Debug.Assert(shader is RayTracingShader); + return new HardwareRayTracingShader((RayTracingShader)shader, kernelName, dispatchBuffer); + } + + public IRayTracingAccelStruct CreateAccelerationStructure(AccelerationStructureOptions options, ReferenceCounter counter) + { + return new HardwareRayTracingAccelStruct(options, counter); + } + + public ulong GetRequiredTraceScratchBufferSizeInBytes(uint width, uint height, uint depth) + { + return 0; + } + + readonly RayTracingResources m_Resources; + } +} diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Hardware/HardwareRayTracingBackend.cs.meta b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Hardware/HardwareRayTracingBackend.cs.meta new file mode 100644 index 00000000000..a6980d5e487 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Hardware/HardwareRayTracingBackend.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5b5b3e229e218a448ae4b7fa04df3b32 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Hardware/HardwareRayTracingShader.cs b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Hardware/HardwareRayTracingShader.cs new file mode 100644 index 00000000000..19492291460 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Hardware/HardwareRayTracingShader.cs @@ -0,0 +1,126 @@ +using Unity.Mathematics; +using UnityEngine.Assertions; + +namespace UnityEngine.Rendering.UnifiedRayTracing +{ + internal class HardwareRayTracingShader : IRayTracingShader + { + readonly RayTracingShader m_Shader; + readonly string m_ShaderDispatchFuncName; + + internal HardwareRayTracingShader(RayTracingShader shader, string dispatchFuncName, GraphicsBuffer unused) + { + m_Shader = shader; + m_ShaderDispatchFuncName = dispatchFuncName; + } + + public uint3 GetThreadGroupSizes() + { + return new uint3(1, 1, 1); + } + + public void SetAccelerationStructure(CommandBuffer cmd, string name, IRayTracingAccelStruct accelStruct) + { + Utils.CheckArgIsNotNull(cmd, nameof(cmd)); + Utils.CheckArgIsNotNull(accelStruct, nameof(accelStruct)); + + cmd.SetRayTracingShaderPass(m_Shader, "RayTracing"); + + var hwAccelStruct = accelStruct as HardwareRayTracingAccelStruct; + Debug.Assert(hwAccelStruct != null); + + cmd.SetRayTracingAccelerationStructure(m_Shader, Shader.PropertyToID(name+"accelStruct"), hwAccelStruct.accelStruct); + } + + public void SetIntParam(CommandBuffer cmd, int nameID, int val) + { + Utils.CheckArgIsNotNull(cmd, nameof(cmd)); + + cmd.SetRayTracingIntParam(m_Shader, nameID, val); + } + + public void SetFloatParam(CommandBuffer cmd, int nameID, float val) + { + Utils.CheckArgIsNotNull(cmd, nameof(cmd)); + + cmd.SetRayTracingFloatParam(m_Shader, nameID, val); + } + + public void SetVectorParam(CommandBuffer cmd, int nameID, Vector4 val) + { + Utils.CheckArgIsNotNull(cmd, nameof(cmd)); + + cmd.SetRayTracingVectorParam(m_Shader, nameID, val); + } + + public void SetMatrixParam(CommandBuffer cmd, int nameID, Matrix4x4 val) + { + Utils.CheckArgIsNotNull(cmd, nameof(cmd)); + + cmd.SetRayTracingMatrixParam(m_Shader, nameID, val); + } + + public void SetTextureParam(CommandBuffer cmd, int nameID, RenderTargetIdentifier rt) + { + Utils.CheckArgIsNotNull(cmd, nameof(cmd)); + + cmd.SetRayTracingTextureParam(m_Shader, nameID, rt); + } + + public void SetBufferParam(CommandBuffer cmd, int nameID, GraphicsBuffer buffer) + { + Utils.CheckArgIsNotNull(cmd, nameof(cmd)); + Utils.CheckArgIsNotNull(buffer, nameof(buffer)); + + cmd.SetRayTracingBufferParam(m_Shader, nameID, buffer); + } + + public void SetBufferParam(CommandBuffer cmd, int nameID, ComputeBuffer buffer) + { + Utils.CheckArgIsNotNull(cmd, nameof(cmd)); + Utils.CheckArgIsNotNull(buffer, nameof(buffer)); + + cmd.SetRayTracingBufferParam(m_Shader, nameID, buffer); + } + + public void SetConstantBufferParam(CommandBuffer cmd, int nameID, GraphicsBuffer buffer, int offset, int size) + { + Utils.CheckArgIsNotNull(cmd, nameof(cmd)); + Utils.CheckArgIsNotNull(buffer, nameof(buffer)); + + cmd.SetRayTracingConstantBufferParam(m_Shader, nameID, buffer, offset, size); + } + + public void SetConstantBufferParam(CommandBuffer cmd, int nameID, ComputeBuffer buffer, int offset, int size) + { + Utils.CheckArgIsNotNull(cmd, nameof(cmd)); + Utils.CheckArgIsNotNull(buffer, nameof(buffer)); + + cmd.SetRayTracingConstantBufferParam(m_Shader, nameID, buffer, offset, size); + } + + public void Dispatch(CommandBuffer cmd, GraphicsBuffer scratchBuffer, uint width, uint height, uint depth) + { + Utils.CheckArgIsNotNull(cmd, nameof(cmd)); + + cmd.DispatchRays(m_Shader, m_ShaderDispatchFuncName, width, height, depth, null); + } + + public void Dispatch(CommandBuffer cmd, GraphicsBuffer scratchBuffer, GraphicsBuffer argsBuffer) + { + Utils.CheckArgIsNotNull(cmd, nameof(cmd)); + Utils.CheckArgIsNotNull(argsBuffer, nameof(argsBuffer)); + GraphicsBuffer.Target requiredFlags = GraphicsBuffer.Target.IndirectArguments | GraphicsBuffer.Target.Structured; + Utils.CheckArg((argsBuffer.target & requiredFlags) == requiredFlags, "argsBuffer.target must have both Target.IndirectArguments and Target.Structured set"); + + cmd.DispatchRays(m_Shader, m_ShaderDispatchFuncName, argsBuffer, 0); + } + public ulong GetTraceScratchBufferRequiredSizeInBytes(uint width, uint height, uint depth) + { + return 0; + } + + } +} + + diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Hardware/HardwareRayTracingShader.cs.meta b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Hardware/HardwareRayTracingShader.cs.meta new file mode 100644 index 00000000000..c5f0b239e9f --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Hardware/HardwareRayTracingShader.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5fe1af5fce30d364abd00e843878a7ad +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Hardware/HardwareRaygenShader.hlsl b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Hardware/HardwareRaygenShader.hlsl new file mode 100644 index 00000000000..145da92322d --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Hardware/HardwareRaygenShader.hlsl @@ -0,0 +1,61 @@ +#pragma max_recursion_depth 1 + +[shader("raygeneration")] +void MainRayGenShader() +{ + UnifiedRT::DispatchInfo dispatchInfo; + dispatchInfo.dispatchThreadID = DispatchRaysIndex(); + dispatchInfo.dispatchDimensionsInThreads = DispatchRaysDimensions(); + dispatchInfo.localThreadIndex = 0; + dispatchInfo.globalThreadIndex = DispatchRaysIndex().x + DispatchRaysIndex().y * DispatchRaysDimensions().x + DispatchRaysIndex().z * (DispatchRaysDimensions().x * DispatchRaysDimensions().y); + + UNIFIED_RT_RAYGEN_FUNC(dispatchInfo); +} + +// miss shader needs to be always defined +[shader("miss")] +void MissShader(inout UNIFIED_RT_PAYLOAD payload : SV_RayPayload) +{ +#ifdef UNIFIED_RT_MISS_FUNC + UnifiedRT::HitContext hitContext = (UnifiedRT::HitContext)0; + UNIFIED_RT_MISS_FUNC(hitContext, payload); +#endif +} + +namespace UnifiedRT +{ + struct AttributeData + { + float2 barycentrics; + }; +} + +#ifdef UNIFIED_RT_CLOSESTHIT_FUNC +[shader("closesthit")] +void ClosestHitShader(inout UNIFIED_RT_PAYLOAD payload : SV_RayPayload, UnifiedRT::AttributeData attribs : SV_IntersectionAttributes) +{ + UnifiedRT::HitContext hitContext; + hitContext.barycentrics = attribs.barycentrics; + + UNIFIED_RT_CLOSESTHIT_FUNC(hitContext, payload); +} +#endif + +#ifdef UNIFIED_RT_ANYHIT_FUNC +[shader("anyhit")] +void AnyHitShader(inout UNIFIED_RT_PAYLOAD payload : SV_RayPayload, UnifiedRT::AttributeData attribs : SV_IntersectionAttributes) +{ + UnifiedRT::HitContext hitContext; + hitContext.barycentrics = attribs.barycentrics; + + uint res = UNIFIED_RT_ANYHIT_FUNC(hitContext, payload); + + if (res == UnifiedRT::kIgnoreHit) + IgnoreHit(); + + if (res == UnifiedRT::kAcceptHitAndEndSearch) + AcceptHitAndEndSearch(); + + // UnifiedRT::kAcceptHit: As specified in DXR, simply exiting means the hit is accepted. +} +#endif diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Hardware/HardwareRaygenShader.hlsl.meta b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Hardware/HardwareRaygenShader.hlsl.meta new file mode 100644 index 00000000000..da2155884ff --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Hardware/HardwareRaygenShader.hlsl.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 1ad0a9c8f99bbe642b782fd45551c0a1 +ShaderIncludeImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/IRayTracingAccelStruct.cs b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/IRayTracingAccelStruct.cs new file mode 100644 index 00000000000..03fd7c077ef --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/IRayTracingAccelStruct.cs @@ -0,0 +1,150 @@ +using System; + +namespace UnityEngine.Rendering.UnifiedRayTracing +{ + /// + /// Parameters used to configure the creation of instances that are part of a . + /// + public struct MeshInstanceDesc + { + /// + /// The Mesh used to build this instance's geometry. + /// + public Mesh mesh; + + /// + /// The index of the sub-mesh (MeshInstanceDesc references a single sub-mesh). + /// + public int subMeshIndex; + + /// + /// The transformation matrix of the instance. + /// + public Matrix4x4 localToWorldMatrix; + + /// + /// The instance mask. + /// + /// + /// Instances in the acceleration structure contain an 8-bit user defined instance mask. + /// The TraceRayClosestHit/TraceRayAnyHit HLSL functions have an 8-bit input parameter, InstanceInclusionMask which gets ANDed with the instance mask from + /// any instance that is a candidate for intersection during acceleration structure traversal on the GPU. + /// If the result of the AND operation is zero, the GPU ignores the intersection. + /// + public uint mask; + + /// + /// Instance identifier. Can be accessed in the HLSL via the instanceID member of Hit (Hit is returned by the TraceRayClosestHit/TraceRayAnyHit HLSL functions). + /// + public uint instanceID; + + /// + /// Whether front/back face culling for this ray tracing instance is enabled. Default value: true. + /// + public bool enableTriangleCulling; + + /// + /// Whether to flip the way triangles face in this ray tracing instance. Default value: false. + /// + public bool frontTriangleCounterClockwise; + + /// + /// Whether the geometry is considered opaque. Default value: true. + /// + /// + /// When an instance's opaqueGeometry field is set to false, the AnyHitExecute shader function will be invoked during the ray traversal when a hit is found. + /// This alows the user to programmatically decide whether to reject or accept the candidate hit. This feature can, for example, be used to implement alpha cutout transparency. + /// For best performance, prefer to set this parameter to false for as many geometries as possibe. + /// + public bool opaqueGeometry; + + /// + /// Creates a MeshInstanceDesc. + /// + /// The Mesh used to build this instance's geometry. + /// The index of the sub-mesh (MeshInstanceDesc references a single sub-mesh). + public MeshInstanceDesc(Mesh mesh, int subMeshIndex = 0) + { + this.mesh = mesh; + this.subMeshIndex = subMeshIndex; + localToWorldMatrix = Matrix4x4.identity; + mask = 0xFFFFFFFF; + instanceID = 0xFFFFFFFF; + enableTriangleCulling = true; + frontTriangleCounterClockwise = false; + opaqueGeometry = true; + } + } + + /// + /// A data structure used to represent a collection of instances and geometries that are used for GPU ray tracing. + /// It can be created by calling . + /// + public interface IRayTracingAccelStruct : IDisposable + { + /// + /// Adds an instance to the RayTracingAccelerationStructure. + /// + /// The parameters describing this instance. + /// A value representing a handle that you can use to perform later actions (e.g. RemoveInstance...) + /// Thrown if the instance cannot be added. Inspect for the reason. + int AddInstance(MeshInstanceDesc meshInstance); + + /// + /// Removes an instance. + /// + /// The handle associated with an instance. + void RemoveInstance(int instanceHandle); + + /// + /// Removes all ray tracing instances from the acceleration structure. + /// + void ClearInstances(); + + /// + /// Updates the transformation of an instance. + /// + /// The handle associated with an instance. + /// The new transformation matrix of the instance. + void UpdateInstanceTransform(int instanceHandle, Matrix4x4 localToWorldMatrix); + + /// + /// Updates the instance ID of an instance. + /// + /// The handle associated with an instance. + /// The new instance ID. + void UpdateInstanceID(int instanceHandle, uint instanceID); + + /// + /// Updates the instance mask of an instance. + /// + /// + /// Ray tracing instances in the acceleration structure contain an 8-bit user defined instance mask. + /// The TraceRay() HLSL function has an 8-bit input parameter, InstanceInclusionMask which gets ANDed with the instance mask from + /// any ray tracing instance that is a candidate for intersection during acceleration structure traversal on the GPU. + /// If the result of the AND operation is zero, the GPU ignores the intersection. + /// + /// The handle associated with an instance. + /// The new mask. + void UpdateInstanceMask(int instanceHandle, uint mask); + + /// + /// Adds a command in cmd to build this acceleration structure on the GPU. + /// + /// + /// Depending on the backend, the GPU build algorithm can require additional GPU storage that is supplied through the scratchBuffer parameter. + /// Its required size can be queried by calling . + /// + /// CommandBuffer to register the build command to. + /// Temporary buffer used during the build. + /// Thrown if the build failed. Inspect for the reason. + void Build(CommandBuffer cmd, GraphicsBuffer scratchBuffer); + + /// + /// Returns the minimum buffer size that is required by the scratchBuffer parameter of . + /// + /// The minimum size in bytes. + ulong GetBuildScratchBufferRequiredSizeInBytes(); + } +} + diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/IRayTracingAccelStruct.cs.meta b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/IRayTracingAccelStruct.cs.meta new file mode 100644 index 00000000000..d0884b84a32 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/IRayTracingAccelStruct.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d7dc1089d206d5b41896750a9934e1aa +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/IRayTracingBackend.cs b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/IRayTracingBackend.cs new file mode 100644 index 00000000000..87d6ece9296 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/IRayTracingBackend.cs @@ -0,0 +1,18 @@ +using System; + +namespace UnityEngine.Rendering.UnifiedRayTracing +{ + internal interface IRayTracingBackend + { + IRayTracingShader CreateRayTracingShader( + Object shader, + string kernelName, + GraphicsBuffer dispatchBuffer); + + IRayTracingAccelStruct CreateAccelerationStructure( + AccelerationStructureOptions options, + ReferenceCounter counter); + + ulong GetRequiredTraceScratchBufferSizeInBytes(uint width, uint height, uint depth); + } +} diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/IRayTracingBackend.cs.meta b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/IRayTracingBackend.cs.meta new file mode 100644 index 00000000000..969ab9a5a84 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/IRayTracingBackend.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c55c8d58ea467a449b38deeb15c16906 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/IRayTracingShader.cs b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/IRayTracingShader.cs new file mode 100644 index 00000000000..f446a2dbd03 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/IRayTracingShader.cs @@ -0,0 +1,147 @@ +using Unity.Mathematics; + +namespace UnityEngine.Rendering.UnifiedRayTracing +{ + /// + /// Shader abstraction that is used to bind resources and execute a unified ray tracing shader (.urtshader) on the GPU. + /// + /// + /// It can be created by calling , or . + /// Depending on the backend that was selected when creating the , this class either wraps + /// a RayTracing or a Compute shader. + /// + public interface IRayTracingShader + { + /// + /// Adds a command in cmd to set an IRayTracingAccelStruct on this shader. + /// + /// CommandBuffer to register the command to. + /// Name of the variable in shader code. + /// The IRayTracingAccelStruct to be used. + void SetAccelerationStructure(CommandBuffer cmd, string name, IRayTracingAccelStruct accelStruct); + + /// + /// Adds a command in cmd to set an integer parameter on this shader. + /// + /// CommandBuffer to register the command to. + /// Property name ID. Use Shader.PropertyToID to get this ID. + /// Value to set. + void SetIntParam(CommandBuffer cmd, int nameID, int val); + + /// + /// Adds a command in cmd to set a float parameter. + /// + /// CommandBuffer to register the command to. + /// Property name ID. Use Shader.PropertyToID to get this ID. + /// Value to set. + void SetFloatParam(CommandBuffer cmd, int nameID, float val); + + /// + /// Adds a command in cmd to set a vector parameter. + /// + /// CommandBuffer to register the command to. + /// Property name ID. Use Shader.PropertyToID to get this ID. + /// Value to set. + void SetVectorParam(CommandBuffer cmd, int nameID, Vector4 val); + + /// + /// Adds a command in cmd to set a matrix parameter. + /// + /// CommandBuffer to register the command to. + /// Property name ID. Use Shader.PropertyToID to get this ID. + /// Value to set. + void SetMatrixParam(CommandBuffer cmd, int nameID, Matrix4x4 val); + + /// + /// Adds a command in cmd to set a texture parameter. + /// + /// CommandBuffer to register the command to. + /// Property name ID. Use Shader.PropertyToID to get this ID. + /// Texture to set. + void SetTextureParam(CommandBuffer cmd, int nameID, RenderTargetIdentifier rt); + + /// + /// Adds a command in cmd to set a buffer parameter. + /// + /// CommandBuffer to register the command to. + /// Property name ID. Use Shader.PropertyToID to get this ID. + /// Buffer to set. + void SetBufferParam(CommandBuffer cmd, int nameID, GraphicsBuffer buffer); + + /// + /// Adds a command in cmd to set a buffer parameter. + /// + /// CommandBuffer to register the command to. + /// Property name ID. Use Shader.PropertyToID to get this ID. + /// Buffer to set. + void SetBufferParam(CommandBuffer cmd, int nameID, ComputeBuffer buffer); + + /// + /// Adds a command in cmd to dispatch this IRayTracingShader. + /// + /// + /// Dispatches to the GPU this shader to be executed on a grid of width*height*depth threads. + /// Depending on the backend, the GPU ray traversal algorithm can require additional GPU storage that is supplied through the scratchBuffer parameter. + /// Its required size can be queried by calling . + /// + /// CommandBuffer to register the command to. + /// Temporary buffer used during the shader's ray tracing calls. + /// Number of threads in the X dimension. + /// Number of threads in the Y dimension. + /// Number of threads in the Z dimension. + void Dispatch(CommandBuffer cmd, GraphicsBuffer scratchBuffer, uint width, uint height, uint depth); + + /// + /// Adds a command in cmd to dispatch this IRayTracingShader. + /// + /// + /// Dispatches to the GPU this shader to be executed on a grid of width*height*depth threads. The grid dimensions are read directly from the argsBuffer parameter. It needs + /// to contain 3 integers: number of threads in X dimension, number of threads in Y dimension, number of threads in Z dimension. + /// Typical use case is writing to argsBuffer from another shader and then dispatching this shader, without requiring a readback to the CPU. + /// Depending on the backend, the GPU ray traversal algorithm can require additional GPU storage that is supplied through the scratchBuffer parameter. + /// Its required size can be queried by calling . + /// + /// CommandBuffer to register the command to. + /// Temporary buffer used during the shader's ray tracing calls. + /// Buffer with work grid dimensions. + void Dispatch(CommandBuffer cmd, GraphicsBuffer scratchBuffer, GraphicsBuffer argsBuffer); + + /// + /// Adds a command in cmd to set a constant buffer parameter. + /// + /// CommandBuffer to register the command to. + /// Property name ID. Use Shader.PropertyToID to get this ID. + /// The buffer to bind as constant buffer. + /// The offset in bytes from the beginning of the buffer to bind. Must be a multiple of SystemInfo.constantBufferOffsetAlignment, or 0 if that value is 0. + /// The number of bytes to bind. + void SetConstantBufferParam(CommandBuffer cmd, int nameID, GraphicsBuffer buffer, int offset, int size); + + /// + /// Adds a command in cmd to set a constant buffer parameter. + /// + /// CommandBuffer to register the command to. + /// Property name ID. Use Shader.PropertyToID to get this ID. + /// The buffer to bind as constant buffer. + /// The offset in bytes from the beginning of the buffer to bind. Must be a multiple of SystemInfo.constantBufferOffsetAlignment, or 0 if that value is 0. + /// The number of bytes to bind. + void SetConstantBufferParam(CommandBuffer cmd, int nameID, ComputeBuffer buffer, int offset, int size); + + /// + /// Returns the minimum buffer size that is required by the scratchBuffer parameter of . + /// This size depends on the specific values for width,height and depth that will be passed to Dispatch(). + /// + /// Number of threads in the X dimension. + /// Number of threads in the Y dimension. + /// Number of threads in the Z dimension. + /// The minimum size in bytes. + ulong GetTraceScratchBufferRequiredSizeInBytes(uint width, uint height, uint depth); + + /// + /// Get the thread group sizes of this shader. + /// + /// Thread group size in the X,Y and Z directions. + uint3 GetThreadGroupSizes(); + } +} + + diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/IRayTracingShader.cs.meta b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/IRayTracingShader.cs.meta new file mode 100644 index 00000000000..5782bee6b72 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/IRayTracingShader.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 049128a5d2439f641b23508bb67e181c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/RayTracingContext.cs b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/RayTracingContext.cs new file mode 100644 index 00000000000..0c6ff3dcf0a --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/RayTracingContext.cs @@ -0,0 +1,389 @@ +using System; +using System.IO; + +#if UNITY_EDITOR +using UnityEditor; +#endif + +namespace UnityEngine.Rendering.UnifiedRayTracing +{ + /// + /// Specifies what backend to use when creating a . + /// + public enum RayTracingBackend + { + /// + /// Requires a GPU supporting hardware accelerated ray tracing. + /// + Hardware = 0, + + /// + /// Software implementation of ray tracing that requires the GPU to support compute shaders. + /// + Compute = 1 + } + + /// + /// Entry point for the UnifiedRayTracing API. + /// + /// + /// It provides functionality to: + /// + /// load shader code (CreateRayTracingShader) + /// create an acceleration structure (CreateAccelerationStructure) that represents the geometry to be ray traced against. + /// + /// Once these objects have been created, the shader code can be executed by calling IRayTracingShader.Dispatch + /// Before calling Dispose() on a RayTracingContext, all that have been created by a RayTracingContext must be disposed as well. + /// + public sealed class RayTracingContext : IDisposable + { + /// + /// Creates a RayTracingContext. + /// + /// The chosen backend. + /// The resources (provides the various shaders the context needs to operate). + /// Thrown when the supplied backend is not supported. + public RayTracingContext(RayTracingBackend backend, RayTracingResources resources) + { + Utils.CheckArgIsNotNull(resources, nameof(resources)); + + if (!IsBackendSupported(backend)) + throw new System.InvalidOperationException("Unsupported backend: " + backend.ToString()); + + BackendType = backend; + if (backend == RayTracingBackend.Hardware) + m_Backend = new HardwareRayTracingBackend(resources); + else if (backend == RayTracingBackend.Compute) + m_Backend = new ComputeRayTracingBackend(resources); + + Resources = resources; + m_DispatchBuffer = RayTracingHelper.CreateDispatchIndirectBuffer(); + } + + /// + /// Creates a RayTracingContext. + /// + /// The resources (provides the various shaders the context needs to operate). + /// Thrown when no supported backend is available. + public RayTracingContext(RayTracingResources resources) : this(IsBackendSupported(RayTracingBackend.Hardware) ? RayTracingBackend.Hardware : RayTracingBackend.Compute, resources) + { + } + + /// + /// Disposes the RaytracingContext. + /// + /// + /// Before calling this, all that have been created with this RayTracingContext must be disposed as well. + /// + public void Dispose() + { + if (m_AccelStructCounter.value != 0) + { + Debug.LogError("Memory Leak. Please call .Dispose() on all the IAccelerationStructure resources "+ + "that have been created with this context before calling RayTracingContext.Dispose()"); + } + m_DispatchBuffer?.Release(); + } + + /// + /// object this context has been created with. + /// + public RayTracingResources Resources { get; private set; } + + /// + /// Checks if the specified backend is supported on the current GPU. + /// + /// The backend. + /// Whether the specified bakend is supported. + static public bool IsBackendSupported(RayTracingBackend backend) + { + if (backend == RayTracingBackend.Hardware) + return SystemInfo.supportsRayTracing; + else if (backend == RayTracingBackend.Compute) + return SystemInfo.supportsComputeShaders; + + return false; + } + + /// + /// Creates a IRayTracingShader. + /// + /// + /// Depending on the chosen backend, the shader parameter + /// needs to be either a ComputeShader or RayTracingShader. + /// + /// The ComputeShader or RayTracingShader asset. + /// The unified ray tracing shader. + public IRayTracingShader CreateRayTracingShader(Object shader) => + m_Backend.CreateRayTracingShader(shader, "MainRayGenShader", m_DispatchBuffer); + +#if UNITY_EDITOR + /// + /// Creates a unified ray tracing shader from .urtshader asset file. + /// + /// + /// - This API works only in the Unity Editor, not at runtime. + /// - The path must be relative to the project folder, for example: "Assets/Stuff/myshader.urtshader". + /// - A .urtshader asset file is imported in the Editor as 2 shaders: a ComputeShader and a RayTracingShader. LoadRayTracingShader loads the one relevant one depending on the RayTracingContext's backend. + /// + /// Path to the .urtshader shader asset file to load. + /// The unified ray tracing shader. + public IRayTracingShader LoadRayTracingShader(string fileName) + { + Type shaderType = BackendHelpers.GetTypeOfShader(BackendType); + Object asset = AssetDatabase.LoadAssetAtPath(fileName, shaderType); + return CreateRayTracingShader(asset); + } +#endif +#if ENABLE_ASSET_BUNDLE + /// + /// Creates a unified ray tracing shader from an AssetBundle. + /// + /// The AssetBundle. + /// The asset name with the .urtshader extension included. + /// The unified ray tracing shader. + public IRayTracingShader LoadRayTracingShaderFromAssetBundle(AssetBundle assetBundle, string name) + { + Utils.CheckArgIsNotNull(assetBundle, nameof(assetBundle)); + + Object asset = assetBundle.LoadAsset(name, BackendHelpers.GetTypeOfShader(BackendType)); + return CreateRayTracingShader(asset); + } +#endif + /// + /// Creates a IRayTracingAccelStruct. + /// + /// Options for quality/performance trade-offs for the returned acceleration structure + /// The acceleration structure. + public IRayTracingAccelStruct CreateAccelerationStructure(AccelerationStructureOptions options) + { + Utils.CheckArgIsNotNull(options, nameof(options)); + + var accelStruct = m_Backend.CreateAccelerationStructure(options, m_AccelStructCounter); + return accelStruct; + } + + /// + /// Returns the minimum size that is required by the scratchBuffer parameter of . + /// + /// Number of threads in the X dimension. + /// Number of threads in the Y dimension. + /// Number of threads in the Z dimension. + /// The size in bytes. + public ulong GetRequiredTraceScratchBufferSizeInBytes(uint width, uint height, uint depth) + { + return m_Backend.GetRequiredTraceScratchBufferSizeInBytes(width, height, depth); + } + + /// + /// Required stride for the creation of the scratchBuffers used by and . + /// + /// The required stride. + public static uint GetScratchBufferStrideInBytes() => 4; + + /// + /// The this context was created with. + /// + public RayTracingBackend BackendType { get; private set; } + + readonly IRayTracingBackend m_Backend; + readonly ReferenceCounter m_AccelStructCounter = new ReferenceCounter(); + readonly GraphicsBuffer m_DispatchBuffer; + } + + /// + /// Specifies how Unity builds the acceleration structure on the GPU. + /// + [System.Flags] + public enum BuildFlags + { + /// + /// Specify no options for the acceleration structure build. Provides a trade-off between good ray tracing performance and fast build times. + /// + None = 0, + + /// + /// Build a high quality acceleration structure, increasing build time but maximizing ray tracing performance. + /// + PreferFastTrace = 1 << 0, + + /// + /// Build a lower quality acceleration structure, minimizing build time but decreasing ray tracing performance. + /// + PreferFastBuild = 1 << 1, + + /// + /// Minimize the amount of temporary memory Unity uses when building the acceleration structure, and minimize the size of the result. + /// + MinimizeMemory = 1 << 2 + } + + /// + /// Options used to configure the creation of a . + /// + public class AccelerationStructureOptions + { + /// + /// Option for the quality of the built . + /// + public BuildFlags buildFlags = 0; +#if UNITY_EDITOR + /// + /// Enables building the acceleration structure on the CPU instead of the GPU. + /// Enabling this option combined with the use of the PreferFastBuild flag provides the best possible ray tracing performance. + /// + /// + /// This field works only in the Unity Editor, not at runtime. + /// + public bool useCPUBuild = false; +#endif + } + + internal class ReferenceCounter + { + public ulong value = 0; + + public void Inc() { value++; } + public void Dec() { value--; } + } + + /// + /// Helper functions that can be used to create a scratch buffer. + /// + /// + /// A scratch buffer is a GraphicsBuffer that Unity uses during the acceleration structure build or the ray tracing dispatch to store temporary data. + /// + public static class RayTracingHelper + { + /// + /// suitable for scratch buffers used in for both and . + /// + public const GraphicsBuffer.Target ScratchBufferTarget = GraphicsBuffer.Target.Structured; + + /// + /// Creates an indirect args buffer suitable for . + /// + /// The scratch buffer. + static public GraphicsBuffer CreateDispatchIndirectBuffer() + { + return new GraphicsBuffer(GraphicsBuffer.Target.IndirectArguments | GraphicsBuffer.Target.Structured | GraphicsBuffer.Target.CopySource, 3, sizeof(uint)); + } + + /// + /// Creates a scratch buffer suitable for both and . + /// + /// The acceleration structure that will be passed to . + /// The shader that will be passed to . + /// Number of threads in the X dimension that will be passed to . + /// Number of threads in the Y dimension that will be passed to . + /// Number of threads in the Z dimension that will be passed to . + /// The scratch buffer. + static public GraphicsBuffer CreateScratchBufferForBuildAndDispatch( + IRayTracingAccelStruct accelStruct, + IRayTracingShader shader, uint dispatchWidth, uint dispatchHeight, uint dispatchDepth) + { + Utils.CheckArgIsNotNull(accelStruct, nameof(accelStruct)); + Utils.CheckArgIsNotNull(shader, nameof(shader)); + + var sizeInBytes = System.Math.Max(accelStruct.GetBuildScratchBufferRequiredSizeInBytes(), shader.GetTraceScratchBufferRequiredSizeInBytes(dispatchWidth, dispatchHeight, dispatchDepth)); + if (sizeInBytes == 0) + return null; + + return new GraphicsBuffer(GraphicsBuffer.Target.Structured, (int)(sizeInBytes / 4), 4); + } + + /// + /// Creates a scratch buffer suitable for . + /// + /// The acceleration structure that will be passed to . + /// The scratch buffer. + static public GraphicsBuffer CreateScratchBufferForBuild( + IRayTracingAccelStruct accelStruct) + { + Utils.CheckArgIsNotNull(accelStruct, nameof(accelStruct)); + + var sizeInBytes = accelStruct.GetBuildScratchBufferRequiredSizeInBytes(); + if (sizeInBytes == 0) + return null; + + return new GraphicsBuffer(GraphicsBuffer.Target.Structured, (int)(sizeInBytes / 4), 4); + } + + /// + /// Creates a scratch buffer suitable for . + /// + /// The shader that will be passed to . + /// Number of threads in the X dimension that will be passed to . + /// Number of threads in the Y dimension that will be passed to . + /// Number of threads in the Z dimension that will be passed to . + /// The scratch buffer. + static public GraphicsBuffer CreateScratchBufferForTrace(IRayTracingShader shader, uint dispatchWidth, uint dispatchHeight, uint dispatchDepth) + { + Utils.CheckArgIsNotNull(shader, nameof(shader)); + + var sizeInBytes = shader.GetTraceScratchBufferRequiredSizeInBytes(dispatchWidth, dispatchHeight, dispatchDepth); + if (sizeInBytes == 0) + return null; + + return new GraphicsBuffer(GraphicsBuffer.Target.Structured, (int)(sizeInBytes / 4), 4); + } + + /// + /// Resizes a scratch buffer if its size doesn't fit the requirement of . + /// + /// + /// The resize is accomplished by disposing of the GraphicsBuffer and instanciating a new one at the proper size. + /// + /// The shader that will be passed to . + /// Number of threads in the X dimension that will be passed to . + /// Number of threads in the Y dimension that will be passed to . + /// Number of threads in the Z dimension that will be passed to . + /// The scratch buffer. + static public void ResizeScratchBufferForTrace( + IRayTracingShader shader, uint dispatchWidth, uint dispatchHeight, uint dispatchDepth, ref GraphicsBuffer scratchBuffer) + { + Utils.CheckArgIsNotNull(shader, nameof(shader)); + + var sizeInBytes = shader.GetTraceScratchBufferRequiredSizeInBytes(dispatchWidth, dispatchHeight, dispatchDepth); + if (sizeInBytes == 0) + return; + + if (scratchBuffer != null) + Utils.CheckArg(scratchBuffer.target == ScratchBufferTarget, "scratchBuffer.target must have Target.Structured set"); + + if (scratchBuffer == null || (ulong)(scratchBuffer.count*scratchBuffer.stride) < sizeInBytes) + { + scratchBuffer?.Dispose(); + scratchBuffer = new GraphicsBuffer(ScratchBufferTarget, (int)(sizeInBytes / 4), 4); + } + } + + /// + /// Resizes a scratch buffer if its size doesn't fit the requirement of . + /// + /// + /// The resize is accomplished by disposing of the GraphicsBuffer and instanciating a new one at the proper size. + /// + /// The acceleration structure that will be passed to . + /// The scratch buffer. + static public void ResizeScratchBufferForBuild( + IRayTracingAccelStruct accelStruct, ref GraphicsBuffer scratchBuffer) + { + Utils.CheckArgIsNotNull(accelStruct, nameof(accelStruct)); + + var sizeInBytes = accelStruct.GetBuildScratchBufferRequiredSizeInBytes(); + if (sizeInBytes == 0) + return; + + if (scratchBuffer != null) + Utils.CheckArg(scratchBuffer.target == ScratchBufferTarget, "scratchBuffer.target must have Target.Structured set"); + + if (scratchBuffer == null || (ulong)(scratchBuffer.count * scratchBuffer.stride) < sizeInBytes) + { + scratchBuffer?.Dispose(); + scratchBuffer = new GraphicsBuffer(ScratchBufferTarget, (int)(sizeInBytes / 4), 4); + } + } + } + +} diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/RayTracingContext.cs.meta b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/RayTracingContext.cs.meta new file mode 100644 index 00000000000..d2d46fb5f11 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/RayTracingContext.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: bf5115231aebe5d459b1b57b8a3cd703 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/RayTracingResources.cs b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/RayTracingResources.cs new file mode 100644 index 00000000000..0b29748791d --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/RayTracingResources.cs @@ -0,0 +1,205 @@ +using System; +#if UNITY_EDITOR +using UnityEditor; +#endif + +namespace UnityEngine.Rendering.UnifiedRayTracing +{ + [Serializable] + [SupportedOnRenderPipeline()] + [Categorization.CategoryInfo(Name = "R: Unified Ray Tracing", Order = 1000), HideInInspector] + internal class RayTracingRenderPipelineResources : IRenderPipelineResources + { + [SerializeField, HideInInspector] int m_Version = 1; + + public int version + { + get => m_Version; + } + + [SerializeField, ResourcePath("Runtime/UnifiedRayTracing/Common/GeometryPool/GeometryPoolKernels.compute")] + ComputeShader m_GeometryPoolKernels; + + [SerializeField, ResourcePath("Runtime/UnifiedRayTracing/Common/Utilities/CopyBuffer.compute")] + ComputeShader m_CopyBuffer; + + [SerializeField, ResourcePath("Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/copyPositions.compute")] + ComputeShader m_CopyPositions; + + [SerializeField, ResourcePath("Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/bit_histogram.compute")] + ComputeShader m_BitHistogram; + + [SerializeField, ResourcePath("Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/block_reduce_part.compute")] + ComputeShader m_BlockReducePart; + + [SerializeField, ResourcePath("Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/block_scan.compute")] + ComputeShader m_BlockScan; + + [SerializeField, ResourcePath("Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/build_hlbvh.compute")] + ComputeShader m_BuildHlbvh; + + [SerializeField, ResourcePath("Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/restructure_bvh.compute")] + ComputeShader m_RestructureBvh; + + [SerializeField, ResourcePath("Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/scatter.compute")] + ComputeShader m_Scatter; + + public ComputeShader GeometryPoolKernels + { + get => m_GeometryPoolKernels; + set => this.SetValueAndNotify(ref m_GeometryPoolKernels, value, nameof(m_GeometryPoolKernels)); + } + + public ComputeShader CopyBuffer + { + get => m_CopyBuffer; + set => this.SetValueAndNotify(ref m_CopyBuffer, value, nameof(m_CopyBuffer)); + } + + public ComputeShader CopyPositions + { + get => m_CopyPositions; + set => this.SetValueAndNotify(ref m_CopyPositions, value, nameof(m_CopyPositions)); + } + + public ComputeShader BitHistogram + { + get => m_BitHistogram; + set => this.SetValueAndNotify(ref m_BitHistogram, value, nameof(m_BitHistogram)); + } + + public ComputeShader BlockReducePart + { + get => m_BlockReducePart; + set => this.SetValueAndNotify(ref m_BlockReducePart, value, nameof(m_BlockReducePart)); + } + + public ComputeShader BlockScan + { + get => m_BlockScan; + set => this.SetValueAndNotify(ref m_BlockScan, value, nameof(m_BlockScan)); + } + + public ComputeShader BuildHlbvh + { + get => m_BuildHlbvh; + set => this.SetValueAndNotify(ref m_BuildHlbvh, value, nameof(m_BuildHlbvh)); + } + + public ComputeShader RestructureBvh + { + get => m_RestructureBvh; + set => this.SetValueAndNotify(ref m_RestructureBvh, value, nameof(m_RestructureBvh)); + } + + public ComputeShader Scatter + { + get => m_Scatter; + set => this.SetValueAndNotify(ref m_Scatter, value, nameof(m_Scatter)); + } + } + + /// + /// Utility shaders needed by a to operate. + /// + public class RayTracingResources + { + internal ComputeShader geometryPoolKernels { get; set; } + internal ComputeShader copyBuffer { get; set; } + internal ComputeShader copyPositions { get; set; } + internal ComputeShader bitHistogram { get; set; } + internal ComputeShader blockReducePart { get; set; } + internal ComputeShader blockScan { get; set; } + internal ComputeShader buildHlbvh { get; set; } + internal ComputeShader restructureBvh { get; set; } + internal ComputeShader scatter { get; set; } + +#if UNITY_EDITOR + /// + /// Intializes the RayTracingResources. + /// + /// + /// This API works only in the Unity Editor, not at runtime. + /// + public void Load() + { + const string path = "Packages/com.unity.render-pipelines.core/Runtime/"; + + geometryPoolKernels = AssetDatabase.LoadAssetAtPath(path + "UnifiedRayTracing/Common/GeometryPool/GeometryPoolKernels.compute"); + copyBuffer = AssetDatabase.LoadAssetAtPath(path + "UnifiedRayTracing/Common/Utilities/CopyBuffer.compute"); + + copyPositions = AssetDatabase.LoadAssetAtPath(path + "UnifiedRayTracing/Compute/RadeonRays/kernels/copyPositions.compute"); + bitHistogram = AssetDatabase.LoadAssetAtPath(path + "UnifiedRayTracing/Compute/RadeonRays/kernels/bit_histogram.compute"); + blockReducePart = AssetDatabase.LoadAssetAtPath(path + "UnifiedRayTracing/Compute/RadeonRays/kernels/block_reduce_part.compute"); + blockScan = AssetDatabase.LoadAssetAtPath(path + "UnifiedRayTracing/Compute/RadeonRays/kernels/block_scan.compute"); + buildHlbvh = AssetDatabase.LoadAssetAtPath(path + "UnifiedRayTracing/Compute/RadeonRays/kernels/build_hlbvh.compute"); + restructureBvh = AssetDatabase.LoadAssetAtPath(path + "UnifiedRayTracing/Compute/RadeonRays/kernels/restructure_bvh.compute"); + scatter = AssetDatabase.LoadAssetAtPath(path + "UnifiedRayTracing/Compute/RadeonRays/kernels/scatter.compute"); + } +#endif + +#if ENABLE_ASSET_BUNDLE + /// + /// Intializes the RayTracingResources by loading its utility shaders from an AssetBundle. + /// + /// + /// The necessary shaders are configured to belong to the unifiedraytracing AssetBundle which can be built by calling + /// + /// The AssetBundle to load the shaders from. + public void LoadFromAssetBundle(AssetBundle assetBundle) + { + const string path = "Packages/com.unity.render-pipelines.core/Runtime/"; + + geometryPoolKernels = assetBundle.LoadAsset(path + "UnifiedRayTracing/Common/GeometryPool/GeometryPoolKernels.compute"); + copyBuffer = assetBundle.LoadAsset(path + "UnifiedRayTracing/Common/Utilities/CopyBuffer.compute"); + + copyPositions = assetBundle.LoadAsset(path + "UnifiedRayTracing/Compute/RadeonRays/kernels/copyPositions.compute"); + bitHistogram = assetBundle.LoadAsset(path + "UnifiedRayTracing/Compute/RadeonRays/kernels/bit_histogram.compute"); + blockReducePart = assetBundle.LoadAsset(path + "UnifiedRayTracing/Compute/RadeonRays/kernels/block_reduce_part.compute"); + blockScan = assetBundle.LoadAsset(path + "UnifiedRayTracing/Compute/RadeonRays/kernels/block_scan.compute"); + buildHlbvh = assetBundle.LoadAsset(path + "UnifiedRayTracing/Compute/RadeonRays/kernels/build_hlbvh.compute"); + restructureBvh = assetBundle.LoadAsset(path + "UnifiedRayTracing/Compute/RadeonRays/kernels/restructure_bvh.compute"); + scatter = assetBundle.LoadAsset(path + "UnifiedRayTracing/Compute/RadeonRays/kernels/scatter.compute"); + } +#endif + + /// + /// Intializes the RayTracingResources by loading its utility shaders via GraphicsSettings. + /// + /// + /// This method only works in projects that use Scriptable Render Pipeline. + /// + /// Whether the resources were successfully loaded. + public bool LoadFromRenderPipelineResources() + { + if (!GraphicsSettings.TryGetRenderPipelineSettings(out var rpResources)) + return false; + + Debug.Assert(rpResources.GeometryPoolKernels != null); + Debug.Assert(rpResources.CopyBuffer != null); + Debug.Assert(rpResources.CopyPositions != null); + Debug.Assert(rpResources.BitHistogram != null); + Debug.Assert(rpResources.BlockReducePart != null); + Debug.Assert(rpResources.BlockScan != null); + Debug.Assert(rpResources.BuildHlbvh != null); + Debug.Assert(rpResources.RestructureBvh != null); + Debug.Assert(rpResources.Scatter != null); + + geometryPoolKernels = rpResources.GeometryPoolKernels; + copyBuffer = rpResources.CopyBuffer; + + copyPositions = rpResources.CopyPositions; + bitHistogram = rpResources.BitHistogram; + blockReducePart = rpResources.BlockReducePart; + blockScan = rpResources.BlockScan; + buildHlbvh = rpResources.BuildHlbvh; + restructureBvh = rpResources.RestructureBvh; + scatter = rpResources.Scatter; + + return true; + } + } + +} + + diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/RayTracingResources.cs.meta b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/RayTracingResources.cs.meta new file mode 100644 index 00000000000..62970a469b0 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/RayTracingResources.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e9a999e2bb7021640b7d79411f755090 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/StringIDs.cs b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/StringIDs.cs new file mode 100644 index 00000000000..0900806fda4 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/StringIDs.cs @@ -0,0 +1,10 @@ + +namespace UnityEngine.Rendering.UnifiedRayTracing +{ + internal static class SID + { + public static readonly int _UnifiedRT_Stack = Shader.PropertyToID("_UnifiedRT_Stack"); + public static readonly int _UnifiedRT_DispatchDims = Shader.PropertyToID("_UnifiedRT_DispatchDims"); + public static readonly int _UnifiedRT_DispatchDimsInWorkgroups = Shader.PropertyToID("_UnifiedRT_DispatchDimsInWorkgroups"); + } +} diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/StringIDs.cs.meta b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/StringIDs.cs.meta new file mode 100644 index 00000000000..2b384b793e8 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/StringIDs.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 8f66ec818466aff4c96e8f911679ffe5 diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/TraceRay.hlsl b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/TraceRay.hlsl new file mode 100644 index 00000000000..b9bcd02df1a --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/TraceRay.hlsl @@ -0,0 +1,226 @@ +#ifndef _UNIFIEDRAYTRACING_TRACERAY_HLSL_ +#define _UNIFIEDRAYTRACING_TRACERAY_HLSL_ + +#include "Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Bindings.hlsl" +#if defined(UNIFIED_RT_BACKEND_COMPUTE) +#include "Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RayQuerySoftware.hlsl" +#endif + +namespace UnifiedRT +{ + +#ifndef UNIFIED_RT_PAYLOAD + #pragma message("Error, you must define UNIFIED_RT_PAYLOAD before including TraceRay.hlsl") +#endif + +#if defined(UNIFIED_RT_BACKEND_HARDWARE) + +float3 _WorldRayOrigin() { return WorldRayOrigin(); } +float3 _WorldRayDirection() { return WorldRayDirection(); } +float _RayTMin() { return RayTMin(); } +float _RayTCurrent() { return RayTCurrent(); } +uint _InstanceID() { return InstanceID(); } +uint _InstanceIndex() { return InstanceIndex(); } +uint _PrimitiveIndex() { return PrimitiveIndex(); } + +struct HitContext +{ + float2 barycentrics; + + float3 WorldRayOrigin() + { + return _WorldRayOrigin(); + } + + float3 WorldRayDirection() + { + return _WorldRayDirection(); + } + + float RayTMin() + { + return _RayTMin(); + } + + float RayTCurrent() + { + return _RayTCurrent(); + } + + uint InstanceIndex() + { + return _InstanceIndex(); + } + + uint InstanceID() + { + return _InstanceID(); + } + + uint PrimitiveIndex() + { + return _PrimitiveIndex(); + } + + float2 UvBarycentrics() + { + return barycentrics; + } + + bool IsFrontFace() + { + return (HitKind() == HIT_KIND_TRIANGLE_FRONT_FACE); + } +}; + +void TraceRay(DispatchInfo dispatchInfo, RayTracingAccelStruct accelStruct, uint instanceMask, Ray ray, uint rayFlags, inout UNIFIED_RT_PAYLOAD payload) +{ + RayDesc rayDesc; + rayDesc.Origin = ray.origin; + rayDesc.TMin = ray.tMin; + rayDesc.Direction = ray.direction; + rayDesc.TMax = ray.tMax; + + TraceRay(accelStruct.accelStruct, rayFlags, instanceMask, 0, 1, 0, rayDesc, payload); +} + +#elif defined(UNIFIED_RT_BACKEND_COMPUTE) + +struct HitContext +{ + float3 worldRayOrigin; + float3 worldRayDirection; + float tmin; + float tcurrent; + uint instanceID; + uint primitiveIndex; + float2 barycentrics; + bool isFrontFace; + + float3 WorldRayOrigin() + { + return worldRayOrigin; + } + + float3 WorldRayDirection() + { + return worldRayDirection; + } + + float RayTMin() + { + return tmin; + } + + float RayTCurrent() + { + return tcurrent; + } + + uint InstanceID() + { + return instanceID; + } + + uint PrimitiveIndex() + { + return primitiveIndex; + } + + float2 UvBarycentrics() + { + return barycentrics; + } + + bool IsFrontFace() + { + return isFrontFace; + } +}; + +} // namespace UnifiedRT + +#ifdef UNIFIED_RT_ANYHIT_FUNC + uint UNIFIED_RT_ANYHIT_FUNC(UnifiedRT::HitContext hitContext, inout UNIFIED_RT_PAYLOAD payload); +#endif + +#ifdef UNIFIED_RT_CLOSESTHIT_FUNC + void UNIFIED_RT_CLOSESTHIT_FUNC(UnifiedRT::HitContext hitContext, inout UNIFIED_RT_PAYLOAD payload); +#endif + +namespace UnifiedRT { + +#pragma warning(disable : 3557) // prevent warning when the "while (rayQuery.Proceed())" loop is unrolled + +void TraceRay(DispatchInfo dispatchInfo, RayTracingAccelStruct accelStruct, uint instanceMask, Ray ray, uint rayFlags, inout UNIFIED_RT_PAYLOAD payload) +{ + #ifdef UNIFIED_RT_ANYHIT_FUNC + RayQuery rayQuery; + rayQuery.Init(dispatchInfo.globalThreadIndex, dispatchInfo.localThreadIndex, accelStruct, rayFlags, instanceMask, ray); + while (rayQuery.Proceed()) + { + // not necessary but makes sure the compiler optimizes the loop out when one of these flags is set + if (rayFlags & (UnifiedRT::kRayFlagForceOpaque | UnifiedRT::kRayFlagCullNonOpaque)) + break; + + HitContext hitContext; + hitContext.worldRayOrigin = rayQuery.WorldRayOrigin(); + hitContext.worldRayDirection = rayQuery.WorldRayDirection(); + hitContext.tmin = rayQuery.RayTMin(); + hitContext.tcurrent = rayQuery.CandidateTriangleRayT(); + hitContext.instanceID = rayQuery.CandidateInstanceID(); + hitContext.primitiveIndex = rayQuery.CandidatePrimitiveIndex(); + hitContext.barycentrics = rayQuery.CandidateTriangleBarycentrics(); + hitContext.isFrontFace = rayQuery.CandidateTriangleFrontFace(); + + uint res = UNIFIED_RT_ANYHIT_FUNC(hitContext, payload); + + if (res != UnifiedRT::kIgnoreHit) + rayQuery.CommitNonOpaqueTriangleHit(); + + if (res == UnifiedRT::kAcceptHitAndEndSearch) + rayQuery.Abort(); + + } + #else + RayQuery rayQuery; + rayQuery.Init(dispatchInfo.globalThreadIndex, dispatchInfo.localThreadIndex, accelStruct, rayFlags | UnifiedRT::kRayFlagForceOpaque, instanceMask, ray); + rayQuery.Proceed(); + #endif + +#ifdef UNIFIED_RT_CLOSESTHIT_FUNC + if (!(rayFlags & kRayFlagSkipClosestHit) && rayQuery.CommittedStatus() == kCommittedTriangleHit) + { + HitContext hitContext; + hitContext.worldRayOrigin = rayQuery.WorldRayOrigin(); + hitContext.worldRayDirection = rayQuery.WorldRayDirection(); + hitContext.tmin = rayQuery.RayTMin(); + hitContext.tcurrent = rayQuery.CommittedRayT(); + hitContext.instanceID = rayQuery.CommittedInstanceID(); + hitContext.primitiveIndex = rayQuery.CommittedPrimitiveIndex(); + hitContext.barycentrics = rayQuery.CommittedTriangleBarycentrics(); + hitContext.isFrontFace = rayQuery.CommittedTriangleFrontFace(); + + UNIFIED_RT_CLOSESTHIT_FUNC(hitContext, payload); + } +#endif + +#ifdef UNIFIED_RT_MISS_FUNC + if (rayQuery.CommittedStatus() == kCommittedNothing) + { + HitContext hitContext = (HitContext)0; + hitContext.worldRayOrigin = rayQuery.WorldRayOrigin(); + hitContext.worldRayDirection = rayQuery.WorldRayDirection(); + hitContext.tmin = rayQuery.RayTMin(); + + UNIFIED_RT_MISS_FUNC(hitContext, payload); + } +#endif + +} + +#endif + +} // namespace UnifiedRT + +#endif // UNIFIEDRAYTRACING_TRACERAY_HLSL diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/TraceRay.hlsl.meta b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/TraceRay.hlsl.meta new file mode 100644 index 00000000000..84f8016696b --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/TraceRay.hlsl.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d89584fc78a387b4b89d50da624e2695 +ShaderIncludeImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/TraceRayAndQueryHit.hlsl b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/TraceRayAndQueryHit.hlsl new file mode 100644 index 00000000000..afdfa0b5b8f --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/TraceRayAndQueryHit.hlsl @@ -0,0 +1,45 @@ +#ifndef _UNIFIEDRAYTRACING_TRACERAYANDQUERYHIT_HLSL_ +#define _UNIFIEDRAYTRACING_TRACERAYANDQUERYHIT_HLSL_ + +#define UNIFIED_RT_PAYLOAD UnifiedRT::Hit +#ifndef UNIFIED_RT_RAYGEN_FUNC +#define UNIFIED_RT_RAYGEN_FUNC RayGenExecute +#endif +#define UNIFIED_RT_CLOSESTHIT_FUNC ClosestHitExecute +#include "Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/TraceRay.hlsl" + +void ClosestHitExecute(UnifiedRT::HitContext hitContext, inout UnifiedRT::Hit payload) +{ + payload.instanceID = hitContext.InstanceID(); + payload.primitiveIndex = hitContext.PrimitiveIndex(); + payload.uvBarycentrics = hitContext.UvBarycentrics(); + payload.hitDistance = hitContext.RayTCurrent(); + payload.isFrontFace = hitContext.IsFrontFace(); +} + +namespace UnifiedRT +{ + +Hit TraceRayClosestHit(DispatchInfo dispatchInfo, RayTracingAccelStruct accelStruct, uint instanceMask, Ray ray, uint rayFlags) +{ + Hit payload= (Hit)0; + payload.instanceID = -1; + + TraceRay(dispatchInfo, accelStruct, instanceMask, ray, rayFlags | kRayFlagForceOpaque, payload); + + return payload; +} + +bool TraceRayAnyHit(DispatchInfo dispatchInfo, RayTracingAccelStruct accelStruct, uint instanceMask, Ray ray, uint rayFlags) +{ + Hit payLoadShadow = (Hit)0; + payLoadShadow.instanceID = -1; + + TraceRay(dispatchInfo, accelStruct, instanceMask, ray, rayFlags | kRayFlagForceOpaque | kRayFlagAcceptFirstHitAndEndSearch, payLoadShadow); + + return payLoadShadow.IsValid(); +} + +} // namespace UnifiedRT + +#endif // _UNIFIEDRAYTRACING_TRACERAYANDQUERYHIT_HLSL_ diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/TraceRayAndQueryHit.hlsl.meta b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/TraceRayAndQueryHit.hlsl.meta new file mode 100644 index 00000000000..164358d2686 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/TraceRayAndQueryHit.hlsl.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: ff541650e0d7c3146a62582a0bd48d30 diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/UnifiedRayTracingException.cs b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/UnifiedRayTracingException.cs new file mode 100644 index 00000000000..b4ea3f39f49 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/UnifiedRayTracingException.cs @@ -0,0 +1,41 @@ + +using System; + +namespace UnityEngine.Rendering.UnifiedRayTracing +{ + /// + /// Represents errors that can occur during UnifiedRayTracing calls. + /// + public enum UnifiedRayTracingError + { + /// Unknown error. + Unknown, + /// Graphics Buffer allocation failed. It happens usually when the GPU runs out of memory. You can try to reduce your mesh data or your number of instances. + GraphicsBufferAllocationFailed + } + + /// + /// Exception type that can be thrown in case of failure in UnifiedRayTracing calls. + /// + public class UnifiedRayTracingException : Exception + { + /// + /// Initializes a new instance of + /// + /// Message describing the error. + /// The error code. + public UnifiedRayTracingException(string message, UnifiedRayTracingError errorCode) + : base(message) + { + this.errorCode = errorCode; + } + + /// + /// Gets the code associated with the exception. + /// + public UnifiedRayTracingError errorCode { get; private set; } + } + +} + + diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/UnifiedRayTracingException.cs.meta b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/UnifiedRayTracingException.cs.meta new file mode 100644 index 00000000000..af2556b5299 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/UnifiedRayTracingException.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 9eb26d0567d9108418c5bf72b7b62682 \ No newline at end of file diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Unity.UnifiedRayTracing.Runtime.asmdef b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Unity.UnifiedRayTracing.Runtime.asmdef new file mode 100644 index 00000000000..6202ece7e69 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Unity.UnifiedRayTracing.Runtime.asmdef @@ -0,0 +1,26 @@ +{ + "name": "Unity.UnifiedRayTracing.Runtime", + "rootNamespace": "", + "references": [ + "Unity.Mathematics", + "Unity.Collections", + "Unity.Burst" + ], + "includePlatforms": [], + "excludePlatforms": [ + "WebGL" + ], + "allowUnsafeCode": false, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": true, + "defineConstraints": [], + "versionDefines": [ + { + "name": "com.unity.modules.assetbundle", + "expression": "1.0.0", + "define": "ENABLE_ASSET_BUNDLE" + } + ], + "noEngineReferences": false +} \ No newline at end of file diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Unity.UnifiedRayTracing.Runtime.asmdef.meta b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Unity.UnifiedRayTracing.Runtime.asmdef.meta new file mode 100644 index 00000000000..16aef1075eb --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Unity.UnifiedRayTracing.Runtime.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 214c0945bb158c940aada223f3223ee8 +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Utilities/BatchRendererGroupGlobals.cs b/Packages/com.unity.render-pipelines.core/Runtime/Utilities/BatchRendererGroupGlobals.cs index 163a88e67ea..f9a377aafa5 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/Utilities/BatchRendererGroupGlobals.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/Utilities/BatchRendererGroupGlobals.cs @@ -153,7 +153,7 @@ public override int GetHashCode() /// unity_DOTSInstanceGlobalValues constant buffer the shader expects the default /// values in. /// - [Obsolete("BatchRendererGroupGlobals and associated cbuffer are now set automatically by Unity. Setting it manually is no longer necessary or supported.")] + [Obsolete("BatchRendererGroupGlobals and associated cbuffer are now set automatically by Unity. Setting it manually is no longer necessary or supported. #from(2023.1)")] [StructLayout(LayoutKind.Sequential)] [Serializable] public struct BatchRendererGroupGlobals : IEquatable diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Utilities/Blitter.cs b/Packages/com.unity.render-pipelines.core/Runtime/Utilities/Blitter.cs index 90cb3a3d25d..87ff26c99f4 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/Utilities/Blitter.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/Utilities/Blitter.cs @@ -354,7 +354,7 @@ internal static bool CanCopyMSAA() return s_Copy.passCount == 2; } - internal static bool CanCopyMSAA(in TextureDesc sourceDesc) + internal static bool CanCopyMSAA(bool srcBindTextureMS) { // Real native renderpass platforms // TODO: Expose this through systeminfo @@ -364,7 +364,7 @@ internal static bool CanCopyMSAA(in TextureDesc sourceDesc) || SystemInfo.graphicsDeviceType == GraphicsDeviceType.Direct3D12; if (SystemInfo.supportsMultisampleAutoResolve && - !hasRenderPass && sourceDesc.bindTextureMS == false) + !hasRenderPass && !srcBindTextureMS) { // If we have autoresolve it means msaa rendertextures render as MSAA but magically resolve in the driver when accessed as a texture, the MSAA surface is fully hidden inside the GFX device // this is contrary to most platforms where the resolve magic on reading happens in the engine layer (and thus allocates proper multi sampled and resolve surfaces the engine can access) @@ -502,7 +502,7 @@ public static void BlitTexture(RasterCommandBuffer cmd, RTHandle source, Vector4 public static void BlitTexture(CommandBuffer cmd, RTHandle source, Vector4 scaleBias, float mipLevel, bool bilinear) { s_PropertyBlock.SetFloat(BlitShaderIDs._BlitMipLevel, mipLevel); - BlitTexture(cmd, source, scaleBias, GetBlitMaterial(TextureXR.dimension), s_BlitShaderPassIndicesMap[bilinear ? 1 : 0]); + BlitTexture(cmd, source, scaleBias, GetBlitMaterial(source.rt.dimension), s_BlitShaderPassIndicesMap[bilinear ? 1 : 0]); } /// @@ -537,6 +537,7 @@ public static void BlitTexture(CommandBuffer cmd, RTHandle source, Vector4 scale /// Blitter.BlitTexture2D(cmd, source, new Vector4(1, 0.5, 0, 0.5), 4, false); /// ]]> /// + public static void BlitTexture2D(RasterCommandBuffer cmd, RTHandle source, Vector4 scaleBias, float mipLevel, bool bilinear) { BlitTexture2D(cmd.m_WrappedCommandBuffer, source, scaleBias, mipLevel, bilinear); @@ -1021,7 +1022,7 @@ public static void BlitCameraTexture(CommandBuffer cmd, RTHandle source, RTHandl /// RTHandle source = renderGraph.CreateTexture(texDesc); /// // Do a full copy of the texture's first mip level to a destination render target /// // scaling with bilinear filtering to the destination render target's full rect. - /// Blitter.BlitCameraTexture(cmd, source, destination, 0, true); + /// Blitter.BlitCameraTexture2D(cmd, source, destination, 0, true); /// ]]> /// public static void BlitCameraTexture2D(CommandBuffer cmd, RTHandle source, RTHandle destination, float mipLevel = 0.0f, bool bilinear = false) diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Utilities/CoreRenderPipelinePreferences.cs b/Packages/com.unity.render-pipelines.core/Runtime/Utilities/CoreRenderPipelinePreferences.cs index 9cb42495234..abb29afab75 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/Utilities/CoreRenderPipelinePreferences.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/Utilities/CoreRenderPipelinePreferences.cs @@ -23,7 +23,7 @@ public static class CoreRenderPipelinePreferences #region Volumes Gizmo Color - [Obsolete("Use VolumePreferences", false)] + [Obsolete("Use VolumePreferences #from(2022.1)")] public static Color volumeGizmoColor { get; } = new Color(0.2f, 0.8f, 0.1f, 0.125f); #endregion diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Utilities/CoreUtils.cs b/Packages/com.unity.render-pipelines.core/Runtime/Utilities/CoreUtils.cs index c7b03896e0c..e355d2b8069 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/Utilities/CoreUtils.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/Utilities/CoreUtils.cs @@ -104,31 +104,31 @@ public static class Priorities public const int scriptingPriority = 40; } - const string obsoletePriorityMessage = "Use CoreUtils.Priorities instead"; + const string obsoletePriorityMessage = "Use CoreUtils.Priorities instead. #from(2021.2)"; /// Edit Menu priority 1 - [Obsolete(obsoletePriorityMessage, false)] + [Obsolete(obsoletePriorityMessage)] public const int editMenuPriority1 = 320; /// Edit Menu priority 2 - [Obsolete(obsoletePriorityMessage, false)] + [Obsolete(obsoletePriorityMessage)] public const int editMenuPriority2 = 331; /// Edit Menu priority 3 - [Obsolete(obsoletePriorityMessage, false)] + [Obsolete(obsoletePriorityMessage)] public const int editMenuPriority3 = 342; /// Edit Menu priority 4 - [Obsolete(obsoletePriorityMessage, false)] + [Obsolete(obsoletePriorityMessage)] public const int editMenuPriority4 = 353; /// Asset Create Menu priority 1 - [Obsolete(obsoletePriorityMessage, false)] + [Obsolete(obsoletePriorityMessage)] public const int assetCreateMenuPriority1 = 230; /// Asset Create Menu priority 2 - [Obsolete(obsoletePriorityMessage, false)] + [Obsolete(obsoletePriorityMessage)] public const int assetCreateMenuPriority2 = 241; /// Asset Create Menu priority 3 - [Obsolete(obsoletePriorityMessage, false)] + [Obsolete(obsoletePriorityMessage)] public const int assetCreateMenuPriority3 = 300; /// Game Object Menu priority - [Obsolete(obsoletePriorityMessage, false)] + [Obsolete(obsoletePriorityMessage)] public const int gameObjectMenuPriority = 10; static Cubemap m_BlackCubeTexture; @@ -422,7 +422,7 @@ public static void SetRenderTarget(CommandBuffer cmd, RenderTargetIdentifier[] c { SetRenderTarget(cmd, colorBuffers, depthBuffer, clearFlag, Color.clear); } - + /// /// Set the current multiple render texture. /// @@ -647,6 +647,21 @@ public static void SetRenderTarget(CommandBuffer cmd, RTHandle buffer, ClearFlag SetViewportAndClear(cmd, buffer, clearFlag, clearColor); } + /// + /// Setup the current render texture using an RTHandle + /// + /// ComputeCommandBuffer used for rendering commands, it must not be async. + /// Color buffer RTHandle + /// If not set to ClearFlag.None, specifies how to clear the render target after setup. + /// If applicable, color with which to clear the render texture after setup. + /// Mip level that should be bound as a render texture if applicable. + /// Cubemap face that should be bound as a render texture if applicable. + /// Depth slice that should be bound as a render texture if applicable. + public static void SetRenderTarget(ComputeCommandBuffer cmd, RTHandle buffer, ClearFlag clearFlag, Color clearColor, int miplevel = 0, CubemapFace cubemapFace = CubemapFace.Unknown, int depthSlice = -1) + { + SetRenderTarget(cmd.m_WrappedCommandBuffer, buffer, clearFlag, clearColor, miplevel, cubemapFace, depthSlice); + } + /// /// Setup the current render texture using an RTHandle /// @@ -1649,8 +1664,37 @@ public static bool IsSceneViewPrefabStageContextHidden() /// Current Scriptable Render Context. /// Command Buffer used for rendering. /// Renderer List to render. + [Obsolete("Use DrawRendererList(CommandBuffer cmd, UnityEngine.Rendering.RendererList rendererList) instead. #from(6000.3) (UnityUpgradable) -> !0")] public static void DrawRendererList(ScriptableRenderContext renderContext, CommandBuffer cmd, UnityEngine.Rendering.RendererList rendererList) { +#if UNITY_ENABLE_CHECKS || UNITY_EDITOR + if (!rendererList.isValid) + throw new ArgumentException("Invalid renderer list provided to DrawRendererList"); +#endif + cmd.DrawRendererList(rendererList); + } + + /// + /// Draw a renderer list. + /// + /// Command Buffer used for rendering. + /// Renderer List to render. + public static void DrawRendererList(CommandBuffer cmd, UnityEngine.Rendering.RendererList rendererList) + { +#if DEVELOPMENT_BUILD || UNITY_EDITOR + if (!rendererList.isValid) + throw new ArgumentException("Invalid renderer list provided to DrawRendererList"); +#endif + cmd.DrawRendererList(rendererList); + } + + /// + /// Draw a renderer list. + /// + /// Command Buffer used for rendering. + /// Renderer List to render. + public static void DrawRendererList(IRasterCommandBuffer cmd, UnityEngine.Rendering.RendererList rendererList) + { #if DEVELOPMENT_BUILD || UNITY_EDITOR if (!rendererList.isValid) throw new ArgumentException("Invalid renderer list provided to DrawRendererList"); diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Utilities/FSRUtils.cs b/Packages/com.unity.render-pipelines.core/Runtime/Utilities/FSRUtils.cs index b224e8b6a15..936acc1d058 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/Utilities/FSRUtils.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/Utilities/FSRUtils.cs @@ -26,7 +26,7 @@ static class ShaderConstants /// /// Sets the constant values required by the FSR EASU shader on the provided command buffer - /// + /// /// Logic ported from "FsrEasuCon()" in Runtime/PostProcessing/Shaders/ffx/ffx_fsr1.hlsl /// /// Command buffer to modify @@ -89,7 +89,7 @@ public static void SetEasuConstants(CommandBuffer cmd, Vector2 inputViewportSize /// /// Sets the constant values required by the FSR EASU shader on the provided command buffer - /// + /// /// Logic ported from "FsrEasuCon()" in Runtime/PostProcessing/Shaders/ffx/ffx_fsr1.hlsl /// /// RasterCommandBuffer/ComputeCommandBuffer/UnsafeCommandBuffer to modify @@ -147,6 +147,19 @@ public static void SetRcasConstants(CommandBuffer cmd, float sharpnessStops = kD cmd.SetGlobalVector(ShaderConstants._FsrRcasConstants, constants); } + /// + /// Sets the constant values required by the FSR RCAS shader on the provided command buffer + /// + /// Logic ported from "FsrRcasCon()" in Runtime/PostProcessing/Shaders/ffx/ffx_fsr1.hlsl + /// For a more user-friendly version of this function, see SetRcasConstantsLinear(). + /// + /// Command buffer to modify + /// The scale is {0.0 := maximum, to N>0, where N is the number of stops(halving) of the reduction of sharpness + public static void SetRcasConstants(BaseCommandBuffer cmd, float sharpnessStops = kDefaultSharpnessStops) + { + SetRcasConstants(cmd.m_WrappedCommandBuffer, sharpnessStops); + } + /// /// Sets the constant values required by the FSR RCAS shader on the provided command buffer /// diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Utilities/GPUPrefixSum/GPUPrefixSum.Data.cs b/Packages/com.unity.render-pipelines.core/Runtime/Utilities/GPUPrefixSum/GPUPrefixSum.Data.cs index b8f3dc3b156..f48b41fc9d0 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/Utilities/GPUPrefixSum/GPUPrefixSum.Data.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/Utilities/GPUPrefixSum/GPUPrefixSum.Data.cs @@ -81,6 +81,7 @@ public struct RenderGraphResources /// Render Graph Builder /// Whether or not to allocate a transient resource. /// The created Render Graph Resources. + [Obsolete("This Create signature is deprecated and will be removed in the future. Please use Create(IBaseRenderGraphBuilder) instead. #from(6000.3)")] public static RenderGraphResources Create(int newMaxElementCount, RenderGraph renderGraph, RenderGraphBuilder builder, bool outputIsTemp = false) { var resources = new RenderGraphResources(); @@ -103,6 +104,44 @@ void Initialize(int newMaxElementCount, RenderGraph renderGraph, RenderGraphBuil maxBufferCount = totalSize; maxLevelCount = levelCounts; } + + /// + /// Creates the render graph buffer resources from an input count. + /// + /// The maximum number of elements that the buffer will support. + /// Render Graph + /// Render Graph Builder + /// Whether or not to allocate a transient resource. + /// The created Render Graph Resources. + public static RenderGraphResources Create(int newMaxElementCount, RenderGraph renderGraph, IBaseRenderGraphBuilder builder, bool outputIsTemp = false) + { + var resources = new RenderGraphResources(); + resources.Initialize(newMaxElementCount, renderGraph, builder, outputIsTemp); + return resources; + } + + void Initialize(int newMaxElementCount, RenderGraph renderGraph, IBaseRenderGraphBuilder builder, bool outputIsTemp = false) + { + newMaxElementCount = Math.Max(newMaxElementCount, 1); + ShaderDefs.CalculateTotalBufferSize(newMaxElementCount, out int totalSize, out int levelCounts); + + var prefixBuffer0Desc = new BufferDesc(totalSize, 4, GraphicsBuffer.Target.Raw) { name = "prefixBuffer0" }; + if (outputIsTemp) + prefixBuffer0 = builder.CreateTransientBuffer(prefixBuffer0Desc); + else + { + prefixBuffer0 = renderGraph.CreateBuffer(prefixBuffer0Desc); + builder.UseBuffer(prefixBuffer0, AccessFlags.Write); + } + + prefixBuffer1 = builder.CreateTransientBuffer(new BufferDesc(newMaxElementCount, 4, GraphicsBuffer.Target.Raw) { name = "prefixBuffer1" }); + totalLevelCountBuffer = builder.CreateTransientBuffer(new BufferDesc(1, 4, GraphicsBuffer.Target.Raw) { name = "totalLevelCountBuffer" }); + levelOffsetBuffer = builder.CreateTransientBuffer(new BufferDesc(levelCounts, System.Runtime.InteropServices.Marshal.SizeOf(), GraphicsBuffer.Target.Structured) { name = "levelOffsetBuffer" }); + indirectDispatchArgsBuffer = builder.CreateTransientBuffer(new BufferDesc(ShaderDefs.ArgsBufferStride * levelCounts, sizeof(uint), GraphicsBuffer.Target.Structured | GraphicsBuffer.Target.IndirectArguments) { name = "indirectDispatchArgsBuffer" });//3 arguments for upp dispatch, 3 arguments for lower dispatch + alignedElementCount = ShaderDefs.AlignUpGroup(newMaxElementCount); + maxBufferCount = totalSize; + maxLevelCount = levelCounts; + } } /// diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Utilities/GPUPrefixSum/GPUPrefixSum.cs b/Packages/com.unity.render-pipelines.core/Runtime/Utilities/GPUPrefixSum/GPUPrefixSum.cs index a249f43f80f..08b3c3b72d4 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/Utilities/GPUPrefixSum/GPUPrefixSum.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/Utilities/GPUPrefixSum/GPUPrefixSum.cs @@ -73,6 +73,22 @@ internal void ExecuteCommonIndirect(CommandBuffer cmdBuffer, GraphicsBuffer inpu } } + /// + /// Prefix sum a list of data from a CPU-defined count. + /// + /// Command Buffer for recording the prefix sum commands. + /// Runtime arguments for the prefix sum. + /// When the input data is invalid. + public void DispatchDirect(IComputeCommandBuffer cmdBuffer, in DirectArgs arguments) + { + if (cmdBuffer is BaseCommandBuffer baseBuffer) + DispatchDirect(baseBuffer.m_WrappedCommandBuffer, arguments); +#if UNITY_EDITOR + else + throw new ArgumentException("Command buffer must inherit from BaseCommandBuffer."); +#endif + } + /// /// Prefix sum a list of data from a CPU-defined count. /// @@ -101,6 +117,22 @@ public void DispatchDirect(CommandBuffer cmdBuffer, in DirectArgs arguments) ExecuteCommonIndirect(cmdBuffer, arguments.input, arguments.supportResources, arguments.exclusive); } + /// + /// Prefix sum a list of data from a GPU-defined count. + /// + /// Command Buffer for recording the prefix sum commands. + /// Runtime arguments for the prefix sum. + /// When the input data is invalid. + public void DispatchIndirect(IComputeCommandBuffer cmdBuffer, in IndirectDirectArgs arguments) + { + if (cmdBuffer is BaseCommandBuffer baseBuffer) + DispatchIndirect(baseBuffer.m_WrappedCommandBuffer, arguments); +#if UNITY_EDITOR + else + throw new ArgumentException("Command buffer must inherit from BaseCommandBuffer."); +#endif + } + /// /// Prefix sum a list of data from a GPU-defined count. /// diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Utilities/GPUSort/GPUSort.Data.cs b/Packages/com.unity.render-pipelines.core/Runtime/Utilities/GPUSort/GPUSort.Data.cs index a77a8dd4330..fad7452622f 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/Utilities/GPUSort/GPUSort.Data.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/Utilities/GPUSort/GPUSort.Data.cs @@ -1,3 +1,4 @@ +using System; using UnityEngine.Rendering.RenderGraphModule; namespace UnityEngine.Rendering @@ -40,6 +41,7 @@ public struct RenderGraphResources /// Render Graph /// Render Graph Builder /// An initialized RenderGraphResources object containing the created sort buffers. + [Obsolete("This Create signature is deprecated and will be removed in the future. Please use Create(IBaseRenderGraphBuilder) instead. #from(6000.3)")] public static RenderGraphResources Create(int count, RenderGraph renderGraph, RenderGraphBuilder builder) { var targets = GraphicsBuffer.Target.Raw | GraphicsBuffer.Target.CopyDestination; @@ -52,6 +54,26 @@ public static RenderGraphResources Create(int count, RenderGraph renderGraph, Re return resources; } + + /// + /// Creates the render graph buffer resources from an input count. + /// + /// The number of (key, value) elements. + /// Render Graph + /// Render Graph Builder + /// An initialized RenderGraphResources object containing the created sort buffers. + public static RenderGraphResources Create(int count, RenderGraph renderGraph, IBaseRenderGraphBuilder builder) + { + var targets = GraphicsBuffer.Target.Raw | GraphicsBuffer.Target.CopyDestination; + + var resources = new RenderGraphResources + { + sortBufferKeys = builder.CreateTransientBuffer(new BufferDesc(count, 4, targets) { name = "Keys" }), + sortBufferValues = builder.CreateTransientBuffer(new BufferDesc(count, 4, targets) { name = "Values" }) + }; + + return resources; + } } /// diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Utilities/GPUSort/GPUSort.cs b/Packages/com.unity.render-pipelines.core/Runtime/Utilities/GPUSort/GPUSort.cs index e34f969f0de..ee23a3ab8cc 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/Utilities/GPUSort/GPUSort.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/Utilities/GPUSort/GPUSort.cs @@ -81,6 +81,21 @@ void CopyBuffer(CommandBuffer cmd, GraphicsBuffer src, GraphicsBuffer dst) internal static int DivRoundUp(int x, int y) => (x + y - 1) / y; + /// + /// Sorts a list of (key, value) pairs. + /// + /// Command buffer for recording the sorting commands. + /// Runtime arguments for the sorting. + public void Dispatch(IComputeCommandBuffer cmd, Args args) + { + if (cmd is BaseCommandBuffer baseCmd) + Dispatch(baseCmd.m_WrappedCommandBuffer, args); +#if UNITY_EDITOR + else + throw new ArgumentException("Command buffer must inherit from BaseCommandBuffer."); +#endif + } + /// /// Sorts a list of (key, value) pairs. /// diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Volume/VolumeComponent.cs b/Packages/com.unity.render-pipelines.core/Runtime/Volume/VolumeComponent.cs index 4fa42010bee..155f50b88af 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/Volume/VolumeComponent.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/Volume/VolumeComponent.cs @@ -45,7 +45,7 @@ public VolumeComponentMenu(string menu) /// This attribute allows you to add commands to the Add Override popup menu on Volumes, /// while also specifying the render pipeline(s) for which the command will be supported. /// - [Obsolete(@"VolumeComponentMenuForRenderPipelineAttribute is deprecated. Use VolumeComponentMenu with SupportedOnRenderPipeline instead. #from(2023.1)", false)] + [Obsolete(@"VolumeComponentMenuForRenderPipelineAttribute is deprecated. Use VolumeComponentMenu with SupportedOnRenderPipeline instead. #from(2023.1)")] public class VolumeComponentMenuForRenderPipeline : VolumeComponentMenu { /// @@ -85,7 +85,7 @@ public VolumeComponentMenuForRenderPipeline(string menu, params Type[] pipelineT /// overrides in the Volume Inspector via the Add Override button. /// [AttributeUsage(AttributeTargets.Class)] - [Obsolete("VolumeComponentDeprecated has been deprecated (UnityUpgradable) -> [UnityEngine] UnityEngine.HideInInspector #from(2023.1)", false)] + [Obsolete("VolumeComponentDeprecated has been deprecated. #from(2023.1) (UnityUpgradable) -> [UnityEngine] UnityEngine.HideInInspector")] public sealed class VolumeComponentDeprecated : Attribute { } diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Volume/VolumeManager.cs b/Packages/com.unity.render-pipelines.core/Runtime/Volume/VolumeManager.cs index 3909ce32bb3..1278f15c9c4 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/Volume/VolumeManager.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/Volume/VolumeManager.cs @@ -61,7 +61,7 @@ public sealed partial class VolumeManager /// /// The current list of all available types that derive from . /// - [Obsolete("Please use baseComponentTypeArray instead.")] + [Obsolete("Please use baseComponentTypeArray instead. #from(2021.2)")] public IEnumerable baseComponentTypes => baseComponentTypeArray; static readonly Dictionary> s_SupportedVolumeComponentsForRenderPipeline = new(); @@ -857,7 +857,7 @@ static bool IsVolumeRenderedByCamera(Volume volume, Camera camera) /// /// A scope in which a Camera filters a Volume. /// - [Obsolete("VolumeIsolationScope is deprecated, it does not have any effect anymore.")] + [Obsolete("VolumeIsolationScope is deprecated, it does not have any effect anymore. #from(2021.1)")] public struct VolumeIsolationScope : IDisposable { /// diff --git a/Packages/com.unity.render-pipelines.core/Runtime/XR/XRPass.cs b/Packages/com.unity.render-pipelines.core/Runtime/XR/XRPass.cs index 960ea65d855..d141006d7c4 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/XR/XRPass.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/XR/XRPass.cs @@ -24,6 +24,7 @@ public struct XRPassCreateInfo internal int cullingPassId; internal bool copyDepth; internal bool hasMotionVectorPass; + internal bool spaceWarpRightHandedNDC; #if ENABLE_VR && ENABLE_XR_MODULE internal UnityEngine.XR.XRDisplaySubsystem.XRRenderPass xrSdkRenderPass; @@ -108,6 +109,22 @@ public bool supportsFoveatedRendering /// public bool hasMotionVectorPass { get; private set; } + /// + /// Reports which NDC convention the render pipeline should use when calculating motion vectors. + /// if true, motion vector data must use the right-handed NDC space. If false motion vector data + /// must use the left-handed NDC space. + /// + /// + /// The render pipeline must write motion vector data to the . + /// + /// > [!NOTE] + /// > The OpenXR specification doesn't specify which coordinate space convention to use for the + /// > motion vector data. Unity only supports SpaceWarp when using the Vulkan graphics API, which uses the right-handed convention for normalized device coordinates, but + /// > devices still can choose either convention for motion data when the + /// > application is using the Vulkan graphics API. + /// + public bool spaceWarpRightHandedNDC { get; private set; } + /// /// If true, is the first pass of a xr camera /// @@ -400,7 +417,7 @@ public void StopSinglePass(BaseCommandBuffer cmd) /// Set to true when rendering into a render texture. Used for handling Unity yflip. public void RenderOcclusionMesh(CommandBuffer cmd, bool renderIntoTexture = false) { - if(occlusionMeshScale > 0) + if (occlusionMeshScale > 0) m_OcclusionMesh.RenderOcclusionMesh(cmd, occlusionMeshScale, renderIntoTexture); } @@ -537,6 +554,7 @@ public void InitBase(XRPassCreateInfo createInfo) motionVectorRenderTarget = new RenderTargetIdentifier(createInfo.motionVectorRenderTarget, 0, CubemapFace.Unknown, -1); motionVectorRenderTargetDesc = createInfo.motionVectorRenderTargetDesc; hasMotionVectorPass = createInfo.hasMotionVectorPass; + spaceWarpRightHandedNDC = createInfo.spaceWarpRightHandedNDC; m_OcclusionMesh.SetMaterial(createInfo.occlusionMeshMaterial); occlusionMeshScale = createInfo.occlusionMeshScale; foveatedRenderingInfo = createInfo.foveatedRenderingInfo; diff --git a/Packages/com.unity.render-pipelines.core/Runtime/XR/XRSystem.cs b/Packages/com.unity.render-pipelines.core/Runtime/XR/XRSystem.cs index 1ef3882fea8..582999e9efb 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/XR/XRSystem.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/XR/XRSystem.cs @@ -560,6 +560,7 @@ static XRPassCreateInfo BuildPass(XRDisplaySubsystem.XRRenderPass xrRenderPass, multipassId = layout.GetActivePasses().Count, cullingPassId = xrRenderPass.cullingPassIndex, copyDepth = xrRenderPass.shouldFillOutDepth, + spaceWarpRightHandedNDC = xrRenderPass.spaceWarpRightHandedNDC, xrSdkRenderPass = xrRenderPass }; diff --git a/Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl b/Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl index cfd5cb2fee5..4b01974196d 100644 --- a/Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl +++ b/Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl @@ -954,6 +954,38 @@ float Remap(float origFrom, float origTo, float targetFrom, float targetTo, floa return lerp(targetFrom, targetTo, (value - origFrom) / (origTo - origFrom)); } +float3 RotateVectorByQuat(float4 quarternion, float3 v) +{ + // Extract Quaternion components + float qx = quarternion.x; + float qy = quarternion.y; + float qz = quarternion.z; + float qw = quarternion.w; + + // Precompute products and scale factors + float x = qx * 2.0f; + float y = qy * 2.0f; + float z = qz * 2.0f; + float xx = qx * x; + float yy = qy * y; + float zz = qz * z; + float xy = qx * y; + float xz = qx * z; + float yz = qy * z; + float wx = qw * x; + float wy = qw * y; + float wz = qw * z; + + // Compute rotated vector + float3 res; + res.x = (1.0f - (yy + zz)) * v.x + (xy - wz) * v.y + (xz + wy) * v.z; + res.y = (xy + wz) * v.x + (1.0f - (xx + zz)) * v.y + (yz - wx) * v.z; + res.z = (xz - wy) * v.x + (yz + wx) * v.y + (1.0f - (xx + yy)) * v.z; + + return res; +} + + // ---------------------------------------------------------------------------- // Texture utilities // ---------------------------------------------------------------------------- diff --git a/Packages/com.unity.render-pipelines.core/THIRD PARTY NOTICES.md b/Packages/com.unity.render-pipelines.core/THIRD PARTY NOTICES.md new file mode 100644 index 00000000000..d5211d3d0d2 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/THIRD PARTY NOTICES.md @@ -0,0 +1,77 @@ +This package contains third-party software components governed by the license(s) indicated below: +--------- + +Component Name: RadeonRays 4.1 + +License Type: MIT License + +https://github.com/GPUOpen-LibrariesAndSDKs/RadeonRays_SDK + +Copyright (c) 2021 Advanced Micro Devices, Inc. All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +--------- + +Component Name: Bullet Physics SDK + +License Type: zlib License + +The files in this repository are licensed under the zlib license, except for the files under 'Extras' and examples/ThirdPartyLibs. + +Bullet Continuous Collision Detection and Physics Library +http://bulletphysics.org + +This software is provided 'as-is', without any express or implied warranty. +In no event will the authors be held liable for any damages arising from the use of this software. +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it freely, +subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. + +--------- + +Component Name: Sobol sampler + +License Type: MIT License + +https://github.com/lgruen/sobol + +Copyright (c) 2023 Leonhard Gruenschloss + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/Packages/com.unity.render-pipelines.core/THIRD PARTY NOTICES.md.meta b/Packages/com.unity.render-pipelines.core/THIRD PARTY NOTICES.md.meta new file mode 100644 index 00000000000..f9d632373ee --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/THIRD PARTY NOTICES.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: eefc64b67f7aad040905b2000990f5f3 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Tests/Editor/RenderGraphTests.UtilityPasses.cs b/Packages/com.unity.render-pipelines.core/Tests/Editor/RenderGraphTests.UtilityPasses.cs index bdda1db673b..49e41bbe82c 100644 --- a/Packages/com.unity.render-pipelines.core/Tests/Editor/RenderGraphTests.UtilityPasses.cs +++ b/Packages/com.unity.render-pipelines.core/Tests/Editor/RenderGraphTests.UtilityPasses.cs @@ -39,7 +39,7 @@ TestBlitResources CreateBlitResources(RenderGraph g) public void RenderPassAddBlitReturnBuilder() { var resources = CreateBlitResources(m_RenderGraph); - + var builderNull = m_RenderGraph.AddBlitPass(resources.blitParameters, "Test Pass", false); Assert.IsNull(builderNull); @@ -47,10 +47,10 @@ public void RenderPassAddBlitReturnBuilder() Assert.IsNotNull(builder); builder.Dispose(); - builderNull = m_RenderGraph.AddBlitPass(resources.textures[0], resources.textures[1], Vector2.one, Vector2.zero, passName:"Test Pass", returnBuilder:false); + builderNull = m_RenderGraph.AddBlitPass(resources.textures[0], resources.textures[1], Vector2.one, Vector2.zero, passName: "Test Pass", returnBuilder: false); Assert.IsNull(builderNull); - builder = m_RenderGraph.AddBlitPass(resources.textures[0], resources.textures[1], Vector2.one, Vector2.zero, passName:"Test Pass", returnBuilder:true); + builder = m_RenderGraph.AddBlitPass(resources.textures[0], resources.textures[1], Vector2.one, Vector2.zero, passName: "Test Pass", returnBuilder: true); Assert.IsNotNull(builder); builder.Dispose(); } @@ -61,14 +61,14 @@ public void RenderPassAddBlitSetGlobal() int texture0ID = 0; int texture1ID = 1; var resources = CreateBlitResources(m_RenderGraph); - - using(var builder = m_RenderGraph.AddBlitPass(resources.blitParameters, "Test Pass", true )) + + using (var builder = m_RenderGraph.AddBlitPass(resources.blitParameters, "Test Pass", true)) { builder.SetGlobalTextureAfterPass(resources.textures[0], texture0ID); } Assert.IsTrue(m_RenderGraph.IsGlobal(texture0ID)); - using(var builder = m_RenderGraph.AddBlitPass(resources.textures[0], resources.textures[1], Vector2.one, Vector2.zero, passName: "Test Pass", returnBuilder: true )) + using (var builder = m_RenderGraph.AddBlitPass(resources.textures[0], resources.textures[1], Vector2.one, Vector2.zero, passName: "Test Pass", returnBuilder: true)) { builder.SetGlobalTextureAfterPass(resources.textures[1], texture1ID); } @@ -80,9 +80,10 @@ public void RenderPassAddBlitSetGlobal() public void RenderPassAddBlitUseTexture() { var resources = CreateBlitResources(m_RenderGraph); - + var canUseCopyPass = RenderGraphUtils.CanAddCopyPass(m_RenderGraph, resources.blitParameters.source, resources.blitParameters.destination); + // Writing to the texture blitting is the same as writing the same texture twice, is not allowed. - using (var builder = m_RenderGraph.AddBlitPass(resources.blitParameters, "BlitPass", true )) + using (var builder = m_RenderGraph.AddBlitPass(resources.blitParameters, "BlitPass", true)) { Assert.Throws(() => { @@ -93,14 +94,28 @@ public void RenderPassAddBlitUseTexture() // Writing to the texture blitting is the same as writing the same texture twice, is not allowed. using (var builder = m_RenderGraph.AddBlitPass(resources.textures[0], resources.textures[1], Vector2.one, Vector2.zero, passName: "Test Pass", returnBuilder: true)) { - Assert.Throws(() => + // The CopyPass should throw the following exception: + // "(() => + { + builder.UseTexture(resources.textures[1], AccessFlags.Write); + }); + } + // The BlitPass should throw the following exception: + // "(() => + { + builder.UseTexture(resources.textures[1], AccessFlags.Write); + }); + } } // Reading the same texture twice is allowed - using (var builder = m_RenderGraph.AddBlitPass(resources.blitParameters, "BlitPass", true )) + using (var builder = m_RenderGraph.AddBlitPass(resources.blitParameters, "BlitPass", true)) { builder.UseTexture(resources.textures[0], AccessFlags.Read); } @@ -127,5 +142,29 @@ public void RenderPassAddBlitNullSourceSupport() m_RenderGraph.AddBlitPass(resources.blitParameters.source, resources.blitParameters.destination, Vector2.one, Vector2.zero, passName: "BlitPass2"); }); } + + [Test] + public void RenderPassAddBlitBackbufferTarget() + { + var resources = CreateBlitResources(m_RenderGraph); + resources.blitParameters.destination = m_RenderGraph.ImportBackbuffer(0); + + // Using a backbuffer as destination is allowed + Assert.DoesNotThrow(delegate { m_RenderGraph.AddBlitPass(resources.blitParameters, "BlitPassBackbufferTarget0"); }); + Assert.DoesNotThrow(delegate { m_RenderGraph.AddBlitPass(resources.blitParameters.source, resources.blitParameters.destination, Vector2.one, Vector2.zero, passName: "BlitPassBackbufferTarget1"); }); + + resources.blitParameters.destination = resources.textures[1]; + resources.blitParameters.source = m_RenderGraph.ImportBackbuffer(0); + + // Using a backbuffer as source is not allowed and throws an exception + Assert.Throws(() => + { + m_RenderGraph.AddBlitPass(resources.blitParameters, "BlitPassBackbufferSource0"); + }); + Assert.Throws(() => + { + m_RenderGraph.AddBlitPass(resources.blitParameters.source, resources.blitParameters.destination, Vector2.one, Vector2.zero, passName: "BlitPassBackbufferSource1"); + }); + } } } diff --git a/Packages/com.unity.render-pipelines.core/Tests/Editor/RenderGraphTests.cs b/Packages/com.unity.render-pipelines.core/Tests/Editor/RenderGraphTests.cs index ee2f6dafdcd..a395d9e26e5 100644 --- a/Packages/com.unity.render-pipelines.core/Tests/Editor/RenderGraphTests.cs +++ b/Packages/com.unity.render-pipelines.core/Tests/Editor/RenderGraphTests.cs @@ -227,11 +227,7 @@ public void NoWriteToBackBufferCulled() { using (var builder = m_RenderGraph.AddUnsafePass("TestPass0", out var passData)) { - builder.UseTexture( - m_RenderGraph.CreateTexture(new TextureDesc(Vector2.one) - { - colorFormat = GraphicsFormat.R8G8B8A8_UNorm - }), AccessFlags.WriteAll); + builder.UseTexture(m_RenderGraph.CreateTexture(new TextureDesc(Vector2.one) { colorFormat = GraphicsFormat.R8G8B8A8_UNorm }), AccessFlags.WriteAll); builder.SetRenderFunc((RenderGraphTestPassData data, UnsafeGraphContext context) => { }); } @@ -342,17 +338,10 @@ public void PassDisallowCullingNotCulled() [Test] public void PartialUnusedProductNotCulled() { - TextureHandle texture = - m_RenderGraph.CreateTexture( - new TextureDesc(Vector2.one) { colorFormat = GraphicsFormat.R8G8B8A8_UNorm }); + TextureHandle texture = m_RenderGraph.CreateTexture(new TextureDesc(Vector2.one) { colorFormat = GraphicsFormat.R8G8B8A8_UNorm }); using (var builder = m_RenderGraph.AddUnsafePass("TestPass0", out var passData)) { builder.UseTexture(texture, AccessFlags.Write); - builder.UseTexture( - m_RenderGraph.CreateTexture(new TextureDesc(Vector2.one) - { - colorFormat = GraphicsFormat.R8G8B8A8_UNorm - }), AccessFlags.Write); builder.SetRenderFunc((RenderGraphTestPassData data, UnsafeGraphContext context) => { }); } @@ -375,9 +364,7 @@ public void PartialUnusedProductNotCulled() [Test] public void SimpleCreateReleaseTexture() { - TextureHandle texture = - m_RenderGraph.CreateTexture( - new TextureDesc(Vector2.one) { colorFormat = GraphicsFormat.R8G8B8A8_UNorm }); + TextureHandle texture = m_RenderGraph.CreateTexture(new TextureDesc(Vector2.one) { colorFormat = GraphicsFormat.R8G8B8A8_UNorm }); using (var builder = m_RenderGraph.AddUnsafePass("TestPass0", out var passData)) { builder.UseTexture(texture, AccessFlags.Write); @@ -530,9 +517,7 @@ public void AsyncPassReleaseTextureOnGraphicsPipe() [Test] public void TransientResourceNotCulled() { - TextureHandle texture0 = - m_RenderGraph.CreateTexture( - new TextureDesc(Vector2.one) { colorFormat = GraphicsFormat.R8G8B8A8_UNorm }); + TextureHandle texture0 = m_RenderGraph.CreateTexture(new TextureDesc(Vector2.one) { colorFormat = GraphicsFormat.R8G8B8A8_UNorm }); using (var builder = m_RenderGraph.AddUnsafePass("TestPass0", out var passData)) { builder.UseTexture(texture0, AccessFlags.Write); @@ -565,9 +550,7 @@ public void TransientResourceNotCulled() [Test] public void AsyncPassWriteWaitOnGraphicsPipe() { - TextureHandle texture0 = - m_RenderGraph.CreateTexture( - new TextureDesc(Vector2.one) { colorFormat = GraphicsFormat.R8G8B8A8_UNorm }); + TextureHandle texture0 = m_RenderGraph.CreateTexture(new TextureDesc(Vector2.one) { colorFormat = GraphicsFormat.R8G8B8A8_UNorm }); using (var builder = m_RenderGraph.AddUnsafePass("TestPass0", out var passData)) { builder.UseTexture(texture0, AccessFlags.Write); @@ -599,12 +582,8 @@ public void AsyncPassWriteWaitOnGraphicsPipe() [Test] public void AsyncPassReadWaitOnGraphicsPipe() { - TextureHandle texture0 = - m_RenderGraph.CreateTexture( - new TextureDesc(Vector2.one) { colorFormat = GraphicsFormat.R8G8B8A8_UNorm }); - TextureHandle texture1 = - m_RenderGraph.CreateTexture( - new TextureDesc(Vector2.one) { colorFormat = GraphicsFormat.R8G8B8A8_UNorm }); + TextureHandle texture0 = m_RenderGraph.CreateTexture(new TextureDesc(Vector2.one) { colorFormat = GraphicsFormat.R8G8B8A8_UNorm }); + TextureHandle texture1 = m_RenderGraph.CreateTexture(new TextureDesc(Vector2.one) { colorFormat = GraphicsFormat.R8G8B8A8_UNorm }); using (var builder = m_RenderGraph.AddUnsafePass("TestPass0", out var passData)) { @@ -638,9 +617,7 @@ public void AsyncPassReadWaitOnGraphicsPipe() [Test] public void GraphicsPassWriteWaitOnAsyncPipe() { - TextureHandle texture0 = - m_RenderGraph.CreateTexture( - new TextureDesc(Vector2.one) { colorFormat = GraphicsFormat.R8G8B8A8_UNorm }); + TextureHandle texture0 = m_RenderGraph.CreateTexture(new TextureDesc(Vector2.one) { colorFormat = GraphicsFormat.R8G8B8A8_UNorm }); using (var builder = m_RenderGraph.AddUnsafePass("Async_TestPass0", out var passData)) { @@ -674,9 +651,7 @@ public void GraphicsPassWriteWaitOnAsyncPipe() [Test] public void GraphicsPassReadWaitOnAsyncPipe() { - TextureHandle texture0 = - m_RenderGraph.CreateTexture( - new TextureDesc(Vector2.one) { colorFormat = GraphicsFormat.R8G8B8A8_UNorm }); + TextureHandle texture0 = m_RenderGraph.CreateTexture(new TextureDesc(Vector2.one) { colorFormat = GraphicsFormat.R8G8B8A8_UNorm }); using (var builder = m_RenderGraph.AddUnsafePass("Async_TestPass0", out var passData)) { @@ -962,6 +937,40 @@ public void RenderPassWithNoRenderFuncThrows() m_Camera.Render(); } + [Test] + [TestMustExpectAllLogs] + public void ExceptionsOnExecuteAreHandledAsExpected() + { + const string kErrorMessage = "A fatal error."; + const int kWidth = 4; + const int kHeight = 4; + + // record and execute render graph calls + m_RenderGraphTestPipeline.recordRenderGraphBody = (context, camera, cmd) => + { + TextureHandle texture0 = m_RenderGraph.CreateTexture(new TextureDesc(kWidth, kHeight) { colorFormat = GraphicsFormat.R8G8B8A8_UNorm }); + TextureHandle texture1 = m_RenderGraph.CreateTexture(new TextureDesc(kWidth, kHeight) { colorFormat = GraphicsFormat.R8G8B8A8_UNorm }); + + using (var builder = m_RenderGraph.AddRasterRenderPass("WorkingPass", out var passData)) + { + builder.AllowPassCulling(false); + builder.SetRenderAttachment(texture0, 0); + builder.SetRenderFunc((RenderGraphTestPassData data, RasterGraphContext context) => { }); + } + + using (var builder = m_RenderGraph.AddRasterRenderPass("BrokenPass", out var passData)) + { + builder.AllowPassCulling(false); + builder.SetInputAttachment(texture1, 0); + builder.SetRenderAttachment(texture0, 1); + builder.SetRenderFunc((RenderGraphTestPassData data, RasterGraphContext context) => throw new Exception(kErrorMessage)); + } + }; + LogAssert.Expect(LogType.Error, "Render Graph Execution error"); + LogAssert.Expect(LogType.Exception, $"Exception: {kErrorMessage}"); + m_Camera.Render(); + } + [Test] public void UsingAddRenderPassWithNRPThrows() { diff --git a/Packages/com.unity.render-pipelines.core/Tests/Editor/UnifiedRayTracing.meta b/Packages/com.unity.render-pipelines.core/Tests/Editor/UnifiedRayTracing.meta new file mode 100644 index 00000000000..db331f17432 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Tests/Editor/UnifiedRayTracing.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4e4c297047ea96a49826f1570cf7db07 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Tests/Editor/UnifiedRayTracing/APITests.cs b/Packages/com.unity.render-pipelines.core/Tests/Editor/UnifiedRayTracing/APITests.cs new file mode 100644 index 00000000000..8b56cef9e54 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Tests/Editor/UnifiedRayTracing/APITests.cs @@ -0,0 +1,62 @@ +using NUnit.Framework; +using System; +using UnityEditor; +using System.Runtime.InteropServices; +using Unity.Mathematics; +using Unity.Collections.LowLevel.Unsafe; + +namespace UnityEngine.Rendering.UnifiedRayTracing.Tests +{ + [TestFixture("Compute")] + [TestFixture("Hardware")] + internal class IRayTracingBackendTests + { + readonly RayTracingBackend m_BackendType; + RayTracingResources m_Resources; + IRayTracingBackend m_Backend; + + public IRayTracingBackendTests(string backendAsString) + { + m_BackendType = Enum.Parse(backendAsString); + } + + [SetUp] + public void SetUp() + { + if (!SystemInfo.supportsRayTracing && m_BackendType == RayTracingBackend.Hardware) + { + Assert.Ignore("Cannot run test on this Graphics API. Hardware RayTracing is not supported"); + } + + if (!SystemInfo.supportsComputeShaders && m_BackendType == RayTracingBackend.Compute) + { + Assert.Ignore("Cannot run test on this Graphics API. Compute shaders are not supported"); + } + + m_Resources = new RayTracingResources(); + m_Resources.Load(); + + if (m_BackendType == RayTracingBackend.Hardware) + m_Backend = new HardwareRayTracingBackend(m_Resources); + else if (m_BackendType == RayTracingBackend.Compute) + m_Backend = new ComputeRayTracingBackend(m_Resources); + else + Assert.Fail("Invalid backend type"); + } + + [Test] + public void IRayTracingBackend_QueryScratchBufferStride_ShouldGenerateCorrectResult() + { + Assert.AreEqual(4, RayTracingContext.GetScratchBufferStrideInBytes()); + } + + [Test] + public void IRayTracingBackend_QueryScratchBufferSize_ShouldGenerateCorrectResult() + { + if (m_BackendType == RayTracingBackend.Hardware) + Assert.AreEqual(0, m_Backend.GetRequiredTraceScratchBufferSizeInBytes(1, 2, 3)); + else if (m_BackendType == RayTracingBackend.Compute) + Assert.AreEqual(1536, m_Backend.GetRequiredTraceScratchBufferSizeInBytes(1, 2, 3)); + } + } +} diff --git a/Packages/com.unity.render-pipelines.core/Tests/Editor/UnifiedRayTracing/APITests.cs.meta b/Packages/com.unity.render-pipelines.core/Tests/Editor/UnifiedRayTracing/APITests.cs.meta new file mode 100644 index 00000000000..fcb17d986f7 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Tests/Editor/UnifiedRayTracing/APITests.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 1cee6a301a2297f4aa8e064f8504abc8 \ No newline at end of file diff --git a/Packages/com.unity.render-pipelines.core/Tests/Editor/UnifiedRayTracing/AccelStructAdapterTests.cs b/Packages/com.unity.render-pipelines.core/Tests/Editor/UnifiedRayTracing/AccelStructAdapterTests.cs new file mode 100644 index 00000000000..44bdeb1bed9 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Tests/Editor/UnifiedRayTracing/AccelStructAdapterTests.cs @@ -0,0 +1,263 @@ +using NUnit.Framework; +using System; +using UnityEditor; +using System.Runtime.InteropServices; +using Unity.Mathematics; +using Unity.Collections.LowLevel.Unsafe; + +namespace UnityEngine.Rendering.UnifiedRayTracing.Tests +{ + + [TestFixture("Compute")] + [TestFixture("Hardware")] + internal class AccelStructAdapterTests + { + readonly RayTracingBackend m_Backend; + RayTracingContext m_Context; + AccelStructAdapter m_AccelStruct; + IRayTracingShader m_Shader; + + public AccelStructAdapterTests(string backendAsString) + { + m_Backend = Enum.Parse(backendAsString); + } + + [SetUp] + public void SetUp() + { + if (!SystemInfo.supportsRayTracing && m_Backend == RayTracingBackend.Hardware) + { + Assert.Ignore("Cannot run test on this Graphics API. Hardware RayTracing is not supported"); + } + + if (!SystemInfo.supportsComputeShaders && m_Backend == RayTracingBackend.Compute) + { + Assert.Ignore("Cannot run test on this Graphics API. Compute shaders are not supported"); + } + + if (SystemInfo.graphicsDeviceName.Contains("llvmpipe")) + { + Assert.Ignore("Cannot run test on this device (Renderer: llvmpipe (LLVM 10.0.0, 128 bits)). Tests are disabled because they fail on some platforms (that do not support 11 SSBOs). Once we do not run Ubuntu 18.04 try removing this"); + } + + CreateRayTracingResources(); + } + + [TearDown] + public void TearDown() + { + DisposeRayTracingResources(); + } + + void RayTraceAndCheckUVs(Mesh mesh, float2 expected, int uvChannel, float tolerance = 0.01f) + { + const int instanceCount = 4; + CreateMatchingRaysAndInstanceDescs(instanceCount, mesh, out RayWithFlags[] rays, out MeshInstanceDesc[] instanceDescs); + + for (int i = 0; i < instanceCount; ++i) + { + m_AccelStruct.AddInstance(i, instanceDescs[i].mesh, instanceDescs[i].localToWorldMatrix, new uint[]{ 0xFFFFFFFF }, new uint[]{ 0xFFFFFFFF }, new bool[] { true }, 1); + } + + HitGeomAttributes[] hitAttributes = null; + var hits = TraceRays(rays, out hitAttributes); + for (int i = 0; i < rays.Length; ++i) + { + Assert.IsTrue(hits[i].Valid(), "Expected ray to hit the mesh."); + float2 uv = uvChannel == 1 ? hitAttributes[i].uv1 : hitAttributes[i].uv0; + Assert.AreEqual(expected.x, uv.x, tolerance, $"Expected x (from uv{uvChannel}) to be fetched correctly in the ray tracing shader."); + Assert.AreEqual(expected.y, uv.y, tolerance, $"Expected y (from uv{uvChannel}) to be fetched correctly in the ray tracing shader."); + } + } + + [Test] + [TestCase(0)] + [TestCase(1)] + public void GeometryPool_MeshWithTwoWideUVs_UVsAreFetchedCorrectly(int uvChannel) + { + Mesh mesh = MeshUtil.CreateSingleTriangleMesh(new float2(1.5f, 1.5f), new float3(-0.5f, -0.5f, 0.0f)); + float x = 100.2f; + float y = -9.3f; + var uvs = new Vector2[] { new Vector2(x, y), new Vector2(x, y), new Vector2(x, y) }; + // Here we use the Vector2 version for setting the UVs on the mesh + mesh.SetUVs(uvChannel, uvs); + RayTraceAndCheckUVs(mesh, new float2(x, y), uvChannel); + } + + [Test] + [TestCase(0)] + [TestCase(1)] + public void GeometryPool_MeshWithThreeWideUVs_UVsAreFetchedCorrectly(int uvChannel) + { + Mesh mesh = MeshUtil.CreateSingleTriangleMesh(new float2(1.5f, 1.5f), new float3(-0.5f, -0.5f, 0.0f)); + float x = 100.2f; + float y = -9.3f; + float z = 32.4f; + var uvs = new Vector3[] { new Vector3(x, y, z), new Vector3(x, y, z), new Vector3(x, y, z) }; + // Here we use the Vector3 version for setting the UVs on the mesh + mesh.SetUVs(uvChannel, uvs); + RayTraceAndCheckUVs(mesh, new float2(x, y), uvChannel); + } + + [Test] + [TestCase(0)] + [TestCase(1)] + public void GeometryPool_MeshWithFourWideUVs_UVsAreFetchedCorrectly(int uvChannel) + { + Mesh mesh = MeshUtil.CreateSingleTriangleMesh(new float2(1.5f, 1.5f), new float3(-0.5f, -0.5f, 0.0f)); + float x = 100.2f; + float y = -9.3f; + float z = 32.4f; + float w = -12.5f; + var uvs = new Vector4[] { new Vector4(x, y, z, w), new Vector4(x, y, z, w), new Vector4(x, y, z, w) }; + // Here we use the Vector4 version for setting the UVs on the mesh + mesh.SetUVs(uvChannel, uvs); + RayTraceAndCheckUVs(mesh, new float2(x, y), uvChannel); + } + + [Test] + [TestCase(0)] + [TestCase(1)] + public void GeometryPool_MeshWithLargeUVValues_UVsAreFetchedCorrectly(int uvChannel) + { + Mesh mesh = MeshUtil.CreateSingleTriangleMesh(new float2(1.5f, 1.5f), new float3(-0.5f, -0.5f, 0.0f)); + float x = 100000.2f; + float y = -900000.3f; + float z = 32000.4f; + float w = -1200000.5f; + var uvs = new Vector4[] { new Vector4(x, y, z, w), new Vector4(x, y, z, w), new Vector4(x, y, z, w) }; + // Here we use the Vector4 version for setting the UVs on the mesh + mesh.SetUVs(uvChannel, uvs); + RayTraceAndCheckUVs(mesh, new float2(x, y), uvChannel, 0.2f); + } + + [Test] + [TestCase(0)] + [TestCase(1)] + public void GeometryPool_MeshWithDifferentVertexUVs_UVsAreInterpolatedCorrectly(int uvChannel) + { + Mesh mesh = MeshUtil.CreateSingleTriangleMesh(new float2(1.5f, 1.5f), new float3(-0.5f, -0.5f, 0.0f)); + float x = 1.0f; + float y = 5.0f; + float z = 7.0f; + var uvs = new Vector4[] { new Vector4(x, x, x, x), new Vector4(y, y, y, y), new Vector4(z, z, z, z) }; + // Here we use the Vector4 version for setting the UVs on the mesh + mesh.SetUVs(uvChannel, uvs); + RayTraceAndCheckUVs(mesh, new float2(4.333f, 4.333f), uvChannel, 0.001f); + } + + void CreateMatchingRaysAndInstanceDescs(uint instanceCount, Mesh mesh, out RayWithFlags[] rays, out MeshInstanceDesc[] instanceDescs) + { + instanceDescs = new MeshInstanceDesc[instanceCount]; + rays = new RayWithFlags[instanceCount]; + var ray = new RayWithFlags(new float3(0.0f, 0.0f, 1.0f), new float3(0.0f, 0.0f, -1.0f)); + float3 step = new float3(2.0f, 0.0f, 0.0f); + + for (int i = 0; i < instanceCount; ++i) + { + instanceDescs[i] = new MeshInstanceDesc(mesh); + instanceDescs[i].localToWorldMatrix = float4x4.Translate(step * i); + + rays[i] = ray; + rays[i].origin += step * i; + } + } + + Hit[] TraceRays(RayWithFlags[] rays, out HitGeomAttributes[] hitAttributes) + { + var bufferTarget = GraphicsBuffer.Target.Structured; + var rayCount = rays.Length; + using var raysBuffer = new GraphicsBuffer(bufferTarget, rayCount, Marshal.SizeOf()); + raysBuffer.SetData(rays); + using var hitsBuffer = new GraphicsBuffer(bufferTarget, rayCount, Marshal.SizeOf()); + using var attributesBuffer = new GraphicsBuffer(bufferTarget, rayCount, Marshal.SizeOf()); + + var scratchBuffer = RayTracingHelper.CreateScratchBufferForBuildAndDispatch(m_AccelStruct.GetAccelerationStructure(), m_Shader, (uint)rayCount, 1, 1); + + var cmd = new CommandBuffer(); + m_AccelStruct.Build(cmd, ref scratchBuffer); + m_AccelStruct.Bind(cmd, "_AccelStruct", m_Shader); + m_Shader.SetBufferParam(cmd, Shader.PropertyToID("_Rays"), raysBuffer); + m_Shader.SetBufferParam(cmd, Shader.PropertyToID("_Hits"), hitsBuffer); + m_Shader.SetBufferParam(cmd, Shader.PropertyToID("_HitAttributes"), attributesBuffer); + m_Shader.Dispatch(cmd, scratchBuffer, (uint)rayCount, 1, 1); + Graphics.ExecuteCommandBuffer(cmd); + + var hits = new Hit[rayCount]; + hitsBuffer.GetData(hits); + + hitAttributes = new HitGeomAttributes[rayCount]; + attributesBuffer.GetData(hitAttributes); + + scratchBuffer?.Dispose(); + + return hits; + } + + void CreateRayTracingResources() + { + var resources = new RayTracingResources(); + resources.Load(); + + m_Context = new RayTracingContext(m_Backend, resources); + m_AccelStruct = new AccelStructAdapter(m_Context.CreateAccelerationStructure(new AccelerationStructureOptions()), resources); + m_Shader = m_Context.LoadRayTracingShader("Packages/com.unity.render-pipelines.core/Tests/Editor/UnifiedRayTracing/TraceRaysAndFetchAttributes.urtshader"); + } + + void DisposeRayTracingResources() + { + m_AccelStruct?.Dispose(); + m_Context?.Dispose(); + } + + [StructLayout(LayoutKind.Sequential)] + public struct RayWithFlags + { + public float3 origin; + public float minT; + public float3 direction; + public float maxT; + public uint culling; + public uint instanceMask; + uint padding; + uint padding2; + + public RayWithFlags(float3 origin, float3 direction) + { + this.origin = origin; + this.direction = direction; + minT = 0.0f; + maxT = float.MaxValue; + instanceMask = 0xFFFFFFFF; + culling = 0; + padding = 0; + padding2 = 0; + } + } + + [System.Flags] + enum RayCulling { None = 0, CullFrontFace = 0x10, CullBackFace = 0x20 } + + [StructLayout(LayoutKind.Sequential)] + public struct Hit + { + public uint instanceID; + public uint primitiveIndex; + public float2 uvBarycentrics; + public float hitDistance; + public uint isFrontFace; + + public bool Valid() { return instanceID != 0xFFFFFFFF; } + } + + [StructLayout(LayoutKind.Sequential)] + public struct HitGeomAttributes + { + public float3 position; + public float3 normal; + public float3 faceNormal; + public float2 uv0; + public float2 uv1; + } + } +} diff --git a/Packages/com.unity.render-pipelines.core/Tests/Editor/UnifiedRayTracing/AccelStructAdapterTests.cs.meta b/Packages/com.unity.render-pipelines.core/Tests/Editor/UnifiedRayTracing/AccelStructAdapterTests.cs.meta new file mode 100644 index 00000000000..23d0990967c --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Tests/Editor/UnifiedRayTracing/AccelStructAdapterTests.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 355495db5b95855439b77dcb5868f8f7 \ No newline at end of file diff --git a/Packages/com.unity.render-pipelines.core/Tests/Editor/UnifiedRayTracing/AccelStructTests.cs b/Packages/com.unity.render-pipelines.core/Tests/Editor/UnifiedRayTracing/AccelStructTests.cs new file mode 100644 index 00000000000..23a6676b844 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Tests/Editor/UnifiedRayTracing/AccelStructTests.cs @@ -0,0 +1,722 @@ +using NUnit.Framework; +using System; +using UnityEditor; +using System.Runtime.InteropServices; +using Unity.Mathematics; +using Unity.Collections.LowLevel.Unsafe; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.TestTools; +using UnityEngine.Rendering.RadeonRays; + +namespace UnityEngine.Rendering.UnifiedRayTracing.Tests +{ + internal static class MeshUtil + { + static internal Mesh CreateSingleTriangleMesh(float2 scaling, float3 translation) + { + Mesh mesh = new Mesh(); + + Vector3[] vertices = new Vector3[] + { + (Vector3)translation + new Vector3(0.0f, 0.0f, 0), + (Vector3)translation + new Vector3(1.0f * scaling.x, 0.0f, 0), + (Vector3)translation + new Vector3(0.0f, 1.0f * scaling.y, 0) + }; + mesh.vertices = vertices; + + Vector3[] normals = new Vector3[] + { + -Vector3.forward, + -Vector3.forward, + -Vector3.forward + }; + mesh.normals = normals; + + Vector2[] uv = new Vector2[] + { + new Vector2(0, 1), + new Vector2(1, 1), + new Vector2(0, 0) + }; + mesh.uv = uv; + + int[] tris = new int[3] + { + 0, 2, 1 + }; + mesh.triangles = tris; + + return mesh; + } + + static internal Mesh CreateQuadMesh() + { + Mesh mesh = new Mesh(); + + Vector3[] vertices = new Vector3[] + { + new Vector3(-0.5f, -0.5f, 0.0f), + new Vector3(0.5f, -0.5f, 0.0f), + new Vector3(-0.5f, 0.5f, 0.0f), + new Vector3(0.5f, 0.5f, 0.0f) + }; + mesh.vertices = vertices; + + Vector3[] normals = new Vector3[] + { + -Vector3.forward, + -Vector3.forward, + -Vector3.forward, + -Vector3.forward + }; + mesh.normals = normals; + + Vector2[] uv = new Vector2[] + { + new Vector2(0, 0), + new Vector2(1, 0), + new Vector2(0, 1), + new Vector2(1, 1) + }; + mesh.uv = uv; + + int[] tris = new int[6] + { + 0, 2, 1, + 2, 3, 1 + }; + mesh.triangles = tris; + + return mesh; + } + } + + internal class ComputeRayTracingAccelStructTests + { + static private void AssertFloat3sAreEqual(float3 expected, float3 actual, float tolerance) + { + Assert.AreEqual(expected.x, actual.x, tolerance); + Assert.AreEqual(expected.y, actual.y, tolerance); + Assert.AreEqual(expected.z, actual.z, tolerance); + } + + static private void AssertAABBsAreEqual(float3 expectedMin, float3 expectedMax, float3 actualMin, float3 actualMax, float tolerance) + { + AssertFloat3sAreEqual(expectedMin, actualMin, tolerance); + AssertFloat3sAreEqual(expectedMax, actualMax, tolerance); + } + + [Test] + public void Build_TwoInstancesOfASingleTriangleMesh_ShouldGenerateCorrectResult() + { + var resources = new RayTracingResources(); + resources.Load(); + + using var accelStruct = new ComputeRayTracingAccelStruct( + new AccelerationStructureOptions() { buildFlags = BuildFlags.PreferFastBuild }, + resources, + new ReferenceCounter()); + + uint instanceCount = 2; + + { + var mesh = MeshUtil.CreateSingleTriangleMesh(new float2(1.0f, 1.0f), float3.zero); + var globalTranslation = new float3(1.0f, 1.0f, 0.0f); + for (uint i = 0; i < instanceCount; i++) + { + var instanceDesc = new MeshInstanceDesc(mesh); + instanceDesc.localToWorldMatrix = Matrix4x4.Translate(globalTranslation + new float3(2.0f * i, 0.0f, 0.0f)); + accelStruct.AddInstance(instanceDesc); + } + + using var scratchBuffer = RayTracingHelper.CreateScratchBufferForBuild(accelStruct); + using var cmd = new CommandBuffer(); + accelStruct.Build(cmd, scratchBuffer); + Graphics.ExecuteCommandBuffer(cmd); + Object.DestroyImmediate(mesh); + } + + var tolerance = 0.001f; + { + // Verify bottom level BVH. + uint expectedTotalNodeCount = 1; + var bottomLevelNodes = new BvhNode[(int)expectedTotalNodeCount + 1]; // plus one for header + accelStruct.bottomLevelBvhBuffer.GetData(bottomLevelNodes); + + var header = UnsafeUtility.As(ref bottomLevelNodes[0]); + Assert.AreEqual(expectedTotalNodeCount, header.internalNodeCount + header.leafNodeCount); + Assert.AreEqual(1, header.leafNodeCount); + Assert.AreEqual(expectedTotalNodeCount, header.internalNodeCount + header.leafNodeCount); + AssertAABBsAreEqual(new float3(0.0f, 0.0f, 0.0f), new float3(1.0f, 1.0f, 0.0f), header.globalAabbMin, header.globalAabbMax, tolerance); + } + + { + // Verify top level BVH. + uint expectedInternalNodeCount = instanceCount - 1; + uint expectedLeafNodeCount = instanceCount; + var topLevelNodes = new BvhNode[(int)expectedInternalNodeCount + 1]; // plus one for header + accelStruct.topLevelBvhBuffer.GetData(topLevelNodes); + + var header = UnsafeUtility.As(ref topLevelNodes[0]); + Assert.AreEqual(expectedInternalNodeCount, header.internalNodeCount); + Assert.AreEqual(expectedLeafNodeCount, header.leafNodeCount); + + AssertAABBsAreEqual(new float3(1.0f, 1.0f, 0.0f), new float3(4.0f, 2.0f, 0.0f), header.globalAabbMin, header.globalAabbMax, tolerance); + + var instanceBvhRoot = topLevelNodes[1]; + Assert.AreEqual(0u | (1u << 31), instanceBvhRoot.child0); // MSB is set for leaf node indices + Assert.AreEqual(1u | (1u << 31), instanceBvhRoot.child1); + AssertAABBsAreEqual(new float3(1.0f, 1.0f, 0.0f), new float3(2.0f, 2.0f, 0.0f), instanceBvhRoot.aabb0_min, instanceBvhRoot.aabb0_max, tolerance); + AssertAABBsAreEqual(new float3(3.0f, 1.0f, 0.0f), new float3(4.0f, 2.0f, 0.0f), instanceBvhRoot.aabb1_min, instanceBvhRoot.aabb1_max, tolerance); + } + } + + [Test] + [Ignore("Test too unstable on Yamato (UUM-95662, UUM-67382)")] + public void AddInstance_MeshWith2GBWorthOfVertices_Throws() + { + var resources = new RayTracingResources(); + resources.Load(); + + using var accelStruct = new ComputeRayTracingAccelStruct( + new AccelerationStructureOptions() { buildFlags = BuildFlags.PreferFastBuild }, + resources, + new ReferenceCounter()); + + Random.InitState(1987); + + int vertexCount = 200000001; // 200 millions + int indexCount = vertexCount; // must be a multiple of 3 + + Mesh mesh = new Mesh(); + mesh.indexFormat = IndexFormat.UInt32; + + Vector3[] vertices = new Vector3[vertexCount]; + for (int i = 0; i < vertexCount; ++i) + { + vertices[i] = new Vector3(0.0f, 0.0f, Random.Range(0.0f, 1.0f)); + } + mesh.SetVertices(vertices); + + Vector3[] normals = new Vector3[vertexCount]; + mesh.SetNormals(normals); + + Vector2[] uv = new Vector2[vertexCount]; + mesh.SetUVs(0, uv); + + int[] tris = new int[indexCount]; + for (int i = 0; i < indexCount; ++i) + tris[i] = i; + + mesh.SetIndices(tris, MeshTopology.Triangles, 0); + + MeshInstanceDesc instanceDesc = new MeshInstanceDesc(mesh); + Assert.Throws(() => accelStruct.AddInstance(instanceDesc)); + + Assert.That(accelStruct.m_BlasAllocator.allocatedSize, Is.Zero); + Assert.That(accelStruct.m_BlasLeavesAllocator.allocatedSize, Is.Zero); + } + } + + + internal class AccelStructTestsBase + { + readonly protected RayTracingBackend m_Backend; + protected RayTracingContext m_Context; + protected RayTracingResources m_Resources; + protected IRayTracingAccelStruct m_AccelStruct; + protected IRayTracingShader m_Shader; + + public AccelStructTestsBase(string backendAsString) + { + m_Backend = Enum.Parse(backendAsString); + } + + protected void CreateRayTracingResources(string shaderFilename) + { + if (!SystemInfo.supportsRayTracing && m_Backend == RayTracingBackend.Hardware) + { + Assert.Ignore("Cannot run test on this Graphics API. Hardware RayTracing is not supported"); + } + + if (!SystemInfo.supportsComputeShaders && m_Backend == RayTracingBackend.Compute) + { + Assert.Ignore("Cannot run test on this Graphics API. Compute shaders are not supported"); + } + + if (SystemInfo.graphicsDeviceName.Contains("llvmpipe")) + { + Assert.Ignore("Cannot run test on this device (Renderer: llvmpipe (LLVM 10.0.0, 128 bits)). Tests are disabled because they fail on some platforms (that do not support 11 SSBOs). Once we do not run Ubuntu 18.04 try removing this"); + } + + m_Resources = new RayTracingResources(); + m_Resources.Load(); + + m_Context = new RayTracingContext(m_Backend, m_Resources); + m_AccelStruct = m_Context.CreateAccelerationStructure(new AccelerationStructureOptions()); + m_Shader = m_Context.LoadRayTracingShader("Packages/com.unity.render-pipelines.core/Tests/Editor/UnifiedRayTracing/" + shaderFilename); + } + + protected void DisposeRayTracingResources() + { + m_AccelStruct?.Dispose(); + m_Context?.Dispose(); + } + + protected THit[] TraceRays(RayWithFlags[] rays, AnyHitDecision anyHitDecision = AnyHitDecision.Invalid) + { + var bufferTarget = GraphicsBuffer.Target.Structured; + var rayCount = rays.Length; + using var raysBuffer = new GraphicsBuffer(bufferTarget, rayCount, Marshal.SizeOf()); + raysBuffer.SetData(rays); + using var hitsBuffer = new GraphicsBuffer(bufferTarget, rayCount, Marshal.SizeOf()); + + using var scratchBuffer = RayTracingHelper.CreateScratchBufferForBuildAndDispatch(m_AccelStruct, m_Shader, (uint)rayCount, 1, 1); + + var cmd = new CommandBuffer(); + m_AccelStruct.Build(cmd, scratchBuffer); + + if (anyHitDecision != AnyHitDecision.Invalid) + m_Shader.SetIntParam(cmd, Shader.PropertyToID("_AnyHitDecision"), (int)anyHitDecision); + + m_Shader.SetAccelerationStructure(cmd, "_AccelStruct", m_AccelStruct); + m_Shader.SetBufferParam(cmd, Shader.PropertyToID("_Rays"), raysBuffer); + m_Shader.SetBufferParam(cmd, Shader.PropertyToID("_Hits"), hitsBuffer); + m_Shader.Dispatch(cmd, scratchBuffer, (uint)rayCount, 1, 1); + Graphics.ExecuteCommandBuffer(cmd); + + var hits = new THit[rayCount]; + hitsBuffer.GetData(hits); + + return hits; + } + + [StructLayout(LayoutKind.Sequential)] + public struct RayWithFlags + { + public float3 origin; + public float minT; + public float3 direction; + public float maxT; + public uint culling; + public uint instanceMask; + uint padding; + uint padding2; + + public RayWithFlags(float3 origin, float3 direction) + { + this.origin = origin; + this.direction = direction; + minT = 0.0f; + maxT = float.MaxValue; + instanceMask = 0xFFFFFFFF; + culling = 0; + padding = 0; + padding2 = 0; + } + } + + protected enum AnyHitDecision { Invalid = -1, IgnoreHit = 0, AcceptHit = 1, AcceptHitAndEndSearch = 2 }; + + [System.Flags] + protected enum RayFlags { None = 0, ForceOpaque = 0x01, ForceNonOpaque = 0x02, AcceptFirstHitAndEndSearch = 0x04, SkipClosestHit = 0x08, CullBackFace = 0x10, CullFrontFace = 0x20, CullOpaque = 0x40, CullNonOpaque = 0x80 } + } + + + [TestFixture("Compute")] + [TestFixture("Hardware")] + internal class AccelStructTests : AccelStructTestsBase + { + public AccelStructTests(string backendAsString) : base(backendAsString) + { + } + + [SetUp] + public void SetUp() + { + CreateRayTracingResources("TraceRays.urtshader"); + } + + [TearDown] + public void TearDown() + { + DisposeRayTracingResources(); + } + + [Test] + public void RayTracePixelsInUnitQuad([Values(1, 10, 100)] int rayResolution, [Values(0, 1, 2, 3)] int buildFlagsAsInteger) + { + var buildFlags = (BuildFlags)buildFlagsAsInteger; // We do this ugly but simple cast hack because the BuildFlags type is not public as time of this writing (test methods must be public and so must their argument types). + + // re-create the acceleration structure with suitable options + m_AccelStruct?.Dispose(); + var options = new AccelerationStructureOptions() { buildFlags = buildFlags }; + m_AccelStruct = m_Context.CreateAccelerationStructure(options); + + Mesh mesh = MeshUtil.CreateQuadMesh(); + + var instanceDesc = new MeshInstanceDesc(mesh); + instanceDesc.localToWorldMatrix = Matrix4x4.identity; + instanceDesc.localToWorldMatrix.SetTRS(new Vector3(0.5f, 0.5f, 0.0f), Quaternion.identity, new Vector3(1.0f, 1.0f, 1.0f)); + instanceDesc.enableTriangleCulling = false; + instanceDesc.frontTriangleCounterClockwise = true; + m_AccelStruct.AddInstance(instanceDesc); + + // trace N*N rays towards the quad and expect to hit it + int N = rayResolution; + var rays = new RayWithFlags[N * N]; + int rayI = 0; + for (int v = 0; v < N; ++v) + { + for (int u = 0; u < N; ++u) + { + float2 uv = new float2((float)u, (float)v); + uv += 0.5f; + uv /= N; + float3 origin = new float3(uv.x, uv.y, 1.0f); + float3 direction = new float3(0.0f, 0.0f, -1.0f); + rays[rayI] = new RayWithFlags(origin, direction); + rays[rayI].culling = (uint)RayFlags.None; + rayI++; + } + } + + var hits = TraceRays(rays); + for (int i = 0; i < hits.Length; ++i) + { + Assert.IsTrue(hits[i].Valid(), $"Expected all rays to hit the quad but ray {i} missed."); + } + } + + [Test] + public void FrontOrBackFaceCulling() + { + const int instanceCount = 4; + Mesh mesh = MeshUtil.CreateSingleTriangleMesh(new float2(1.5f, 1.5f), new float3(-0.5f, -0.5f, 0.0f)); + CreateMatchingRaysAndInstanceDescs(instanceCount, mesh, out RayWithFlags[] rays, out MeshInstanceDesc[] instanceDescs); + + var raysDuplicated = new RayWithFlags[instanceCount * 3]; + Array.Copy(rays, 0, raysDuplicated, 0, instanceCount); + Array.Copy(rays, 0, raysDuplicated, instanceCount, instanceCount); + Array.Copy(rays, 0, raysDuplicated, 2 * instanceCount, instanceCount); + + for (int i = 0; i < instanceCount; ++i) + { + raysDuplicated[i].culling = (uint)RayFlags.None; + raysDuplicated[i + instanceCount].culling = (uint)RayFlags.CullBackFace; + raysDuplicated[i + instanceCount * 2].culling = (uint)RayFlags.CullFrontFace; + } + + instanceDescs[0].enableTriangleCulling = false; + instanceDescs[0].frontTriangleCounterClockwise = true; + + instanceDescs[1].enableTriangleCulling = false; + instanceDescs[1].frontTriangleCounterClockwise = false; + + instanceDescs[2].enableTriangleCulling = true; + instanceDescs[2].frontTriangleCounterClockwise = true; + + instanceDescs[3].enableTriangleCulling = true; + instanceDescs[3].frontTriangleCounterClockwise = false; + + for (int i = 0; i < instanceCount; ++i) + { + m_AccelStruct.AddInstance(instanceDescs[i]); + } + + var hits = TraceRays(raysDuplicated); + // No culling + Assert.IsTrue(hits[0].Valid()); + Assert.IsTrue(hits[1].Valid()); + Assert.IsTrue(hits[2].Valid()); + Assert.IsTrue(hits[3].Valid()); + + // FrontFace culling + Assert.IsTrue(hits[4].Valid()); + Assert.IsTrue(hits[5].Valid()); + Assert.IsTrue(hits[6].Valid()); + Assert.IsTrue(!hits[7].Valid()); + + // BackFace culling + Assert.IsTrue(hits[8].Valid()); + Assert.IsTrue(hits[9].Valid()); + Assert.IsTrue(!hits[10].Valid()); + Assert.IsTrue(hits[11].Valid()); + + + } + + + [Test] + public void InstanceAndRayMask() + { + const int instanceCount = 8; + Mesh mesh = MeshUtil.CreateSingleTriangleMesh(new float2(1.5f, 1.5f), new float3(-0.5f, -0.5f, 0.0f)); + CreateMatchingRaysAndInstanceDescs(instanceCount, mesh, out RayWithFlags[] rays, out MeshInstanceDesc[] instanceDescs); + + var rayAndInstanceMasks = new (uint instanceMask, uint rayMask)[] + { + (0, 0), + (0xFFFFFFFF, 0xFFFFFFFF), + (0, 0xFFFFFFFF), + (0xFFFFFFFF, 0), + (0x0F, 0x01), + (0x0F, 0xF0), + (0x90, 0xF0), + (0xF0, 0x10), + }; + + for (int i = 0; i < instanceCount; ++i) + { + instanceDescs[i].mask = rayAndInstanceMasks[i].instanceMask; + rays[i].instanceMask = rayAndInstanceMasks[i].rayMask; + } + + for (int i = 0; i < instanceCount; ++i) + { + m_AccelStruct.AddInstance(instanceDescs[i]); + } + + var hits = TraceRays(rays); + + for (int i = 0; i < instanceCount; ++i) + { + bool rayShouldHit = ((rayAndInstanceMasks[i].instanceMask & rayAndInstanceMasks[i].rayMask) != 0); + bool rayHit = hits[i].Valid(); + + var message = String.Format("Ray {0} hit for InstanceMask: 0x{1:X} & RayMask: 0x{2:X}", + rayShouldHit ? "should" : "shouldn't", + rayAndInstanceMasks[i].instanceMask, + rayAndInstanceMasks[i].rayMask); + + Assert.AreEqual(rayShouldHit, rayHit, message); + } + } + + [Test] + public void AddAndRemoveInstances() + { + const int instanceCount = 4; + Mesh mesh = MeshUtil.CreateSingleTriangleMesh(new float2(1.5f, 1.5f), new float3(-0.5f, -0.5f, 0.0f)); + CreateMatchingRaysAndInstanceDescs(instanceCount, mesh, out RayWithFlags[] rays, out MeshInstanceDesc[] instanceDescs); + + var instanceHandles = new int[instanceCount]; + var expectedVisibleInstances = new bool[instanceCount]; + + for (int i = 0; i < instanceCount; ++i) + { + instanceHandles[i] = m_AccelStruct.AddInstance(instanceDescs[i]); + expectedVisibleInstances[i] = true; + } + + CheckVisibleInstances(rays, expectedVisibleInstances); + + m_AccelStruct.RemoveInstance(instanceHandles[0]); expectedVisibleInstances[0] = false; + m_AccelStruct.RemoveInstance(instanceHandles[2]); expectedVisibleInstances[2] = false; + + CheckVisibleInstances(rays, expectedVisibleInstances); + + m_AccelStruct.ClearInstances(); + + Array.Fill(expectedVisibleInstances, false); + + CheckVisibleInstances(rays, expectedVisibleInstances); + + m_AccelStruct.AddInstance(instanceDescs[3]); + expectedVisibleInstances[3] = true; + + CheckVisibleInstances(rays, expectedVisibleInstances); + } + + private void AddTerrainToAccelerationStructure(int heightmapResolution) + { + Terrain.CreateTerrainGameObject(new TerrainData()); + Terrain terrain = GameObject.FindFirstObjectByType(); + Assert.NotNull(terrain); + + // Set terrain texture resolution on terrain data. + terrain.terrainData.heightmapResolution = heightmapResolution; + + // Convert to mesh. + AsyncTerrainToMeshRequest request = TerrainToMesh.ConvertAsync(terrain); + request.WaitForCompletion(); + + // Add the terrain to the acceleration structure. + MeshInstanceDesc instanceDesc = new MeshInstanceDesc(request.GetMesh()); + instanceDesc.localToWorldMatrix = float4x4.identity; + m_AccelStruct.AddInstance(instanceDesc); + } + + [Test] + public void Add_1KTerrain_Works() + { + AddTerrainToAccelerationStructure(1025); + } + + [Test] + [Ignore("This test is disabled because of the allocation limitation of 2 GB in GraphicsBuffer.")] + public void Add_4KTerrain_Works() + { + AddTerrainToAccelerationStructure(4097); + } + + void CheckVisibleInstances(RayWithFlags[] rays, bool[] expectedVisibleInstances) + { + var hits = TraceRays(rays); + for (int i = 0; i < rays.Length; ++i) + { + Assert.AreEqual(expectedVisibleInstances[i], hits[i].Valid(), $"Unexpected state of intersection with instance {i}"); + } + } + + void CreateMatchingRaysAndInstanceDescs(uint instanceCount, Mesh mesh, out RayWithFlags[] rays, out MeshInstanceDesc[] instanceDescs) + { + instanceDescs = new MeshInstanceDesc[instanceCount]; + rays = new RayWithFlags[instanceCount]; + var ray = new RayWithFlags(new float3(0.0f, 0.0f, 1.0f), new float3(0.0f, 0.0f, -1.0f)); + float3 step = new float3(2.0f, 0.0f, 0.0f); + + for (int i = 0; i < instanceCount; ++i) + { + instanceDescs[i] = new MeshInstanceDesc(mesh); + instanceDescs[i].localToWorldMatrix = float4x4.Translate(step * i); + + rays[i] = ray; + rays[i].origin += step * i; + } + } + + + [StructLayout(LayoutKind.Sequential)] + public struct Hit + { + public uint instanceID; + public uint primitiveIndex; + public float2 uvBarycentrics; + public float hitDistance; + public uint isFrontFace; + + public bool Valid() { return instanceID != 0xFFFFFFFF; } + } + + } + + [TestFixture("Compute")] + [TestFixture("Hardware")] + internal class AccelStructTransparencyTests : AccelStructTestsBase + { + public AccelStructTransparencyTests(string backendAsString) : base(backendAsString) + { + } + + [SetUp] + public void SetUp() + { + CreateRayTracingResources("TraceTransparentRays.urtshader"); + } + + [TearDown] + public void TearDown() + { + DisposeRayTracingResources(); + } + + + [Test] + public void WithTransparentInstances_ClosestAndAnyHitsFuncsAreCalled() + { + Mesh mesh = MeshUtil.CreateSingleTriangleMesh(new float2(1.5f, 1.5f), new float3(-0.5f, -0.5f, 0.0f)); + + var isOpaque = new bool[] { false, false, true, false, false, false, true, false }; + for (int i = 0; i < isOpaque.Length; ++i) + { + var instanceDesc = new MeshInstanceDesc(mesh); + instanceDesc.localToWorldMatrix = float4x4.Translate(new float3(0.0f, 0.0f, 2.0f) * i); + instanceDesc.opaqueGeometry = isOpaque[i]; + instanceDesc.instanceID = (uint)i; + + m_AccelStruct.AddInstance(instanceDesc); + } + + { + var testCases = new TransparencyTestCase[] { + new(RayFlags.None, 2, new int[] { 0, 1 }), + new(RayFlags.ForceOpaque, 0, new int[] { }), + new(RayFlags.ForceNonOpaque, -1, new int[] { 0, 1, 2, 3, 4, 5, 6, 7 }), + new(RayFlags.CullOpaque, -1, new int[] { 0, 1, 3, 4, 5, 7 }), + new(RayFlags.CullNonOpaque, 2, new int[] { }), + new(RayFlags.CullOpaque | RayFlags.SkipClosestHit, -1, new int[] { 0, 1, 3, 4, 5, 7 }), + new(RayFlags.AcceptFirstHitAndEndSearch, 2, new int[] { 0, 1 }), + new(RayFlags.ForceNonOpaque | RayFlags.AcceptFirstHitAndEndSearch, -1, new int[] { 0, 1, 2, 3, 4, 5, 6, 7 }), + }; + + TestTransparentInstances(testCases, AnyHitDecision.IgnoreHit); + } + + { + var testCases = new TransparencyTestCase[] { + new(RayFlags.None, 0, new int[] { 0 }), + new(RayFlags.ForceOpaque, 0, new int[] { }), + new(RayFlags.ForceNonOpaque, 0, new int[] { 0 }), + new(RayFlags.CullOpaque, 0, new int[] { 0 }), + new(RayFlags.CullNonOpaque, 2, new int[] { }), + new(RayFlags.CullOpaque | RayFlags.SkipClosestHit, -1, new int[] { 0 }), + new(RayFlags.AcceptFirstHitAndEndSearch, 0, new int[] { 0 }), + new(RayFlags.ForceNonOpaque | RayFlags.AcceptFirstHitAndEndSearch, 0, new int[] { 0 }), + }; + + TestTransparentInstances(testCases, AnyHitDecision.AcceptHit); + TestTransparentInstances(testCases, AnyHitDecision.AcceptHitAndEndSearch); + } + } + + void TestTransparentInstances(TransparencyTestCase[] testCases, AnyHitDecision anyHitDecision) + { + var expectedResults = new List(); + var rayWithFlags = new List(); + + foreach (var testCase in testCases) + { + var ray = new RayWithFlags(new float3(0.0f, 0.0f, -1.0f), new float3(0.0f, 0.0f, 1.0f)); + ray.culling = (uint)testCase.rayFlags; + rayWithFlags.Add(ray); + + expectedResults.Add(testCase.expectedResult); + } + + var hits = TraceRays(rayWithFlags.ToArray(), anyHitDecision); + + for (int i = 0; i < testCases.Length; ++i) + { + Assert.AreEqual(testCases[i].expectedResult.closestHit, hits[i].closestHit, $"Unexpected closestHit with RayFlags=[{(RayFlags)rayWithFlags[i].culling}] and AnyHitDecision=[{anyHitDecision}]"); + Assert.AreEqual(testCases[i].expectedResult.anyHits, hits[i].anyHits, $"Unexpected anyHits with RayFlags=[{(RayFlags)rayWithFlags[i].culling}] and AnyHitDecision=[{anyHitDecision}]"); + } + } + + + + [StructLayout(LayoutKind.Sequential, Pack = 1)] + public struct TransparentRayResult + { + public uint anyHits; + public int closestHit; + } + + struct TransparencyTestCase + { + public TransparencyTestCase(RayFlags flags, int expectedClosestHit, int[] expectedAnyHitInvocations) + { + rayFlags = flags; + + expectedResult.closestHit = expectedClosestHit; + expectedResult.anyHits = 0; + for (int i = 0; i < expectedAnyHitInvocations.Length; ++i) + expectedResult.anyHits |= (1u << expectedAnyHitInvocations[i]); + } + + public RayFlags rayFlags; + public TransparentRayResult expectedResult; + } + } +} diff --git a/Packages/com.unity.render-pipelines.core/Tests/Editor/UnifiedRayTracing/AccelStructTests.cs.meta b/Packages/com.unity.render-pipelines.core/Tests/Editor/UnifiedRayTracing/AccelStructTests.cs.meta new file mode 100644 index 00000000000..686c2868621 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Tests/Editor/UnifiedRayTracing/AccelStructTests.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 907dea72c9efc834499557d581dbc45a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Tests/Editor/UnifiedRayTracing/BlockAllocatorTests.cs b/Packages/com.unity.render-pipelines.core/Tests/Editor/UnifiedRayTracing/BlockAllocatorTests.cs new file mode 100644 index 00000000000..465169c0563 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Tests/Editor/UnifiedRayTracing/BlockAllocatorTests.cs @@ -0,0 +1,54 @@ +using NUnit.Framework; +using System; +using UnityEditor; +using System.Runtime.InteropServices; +using Unity.Mathematics; +using Unity.Collections.LowLevel.Unsafe; +using UnityEngine.Rendering.RadeonRays; + +namespace UnityEngine.Rendering.UnifiedRayTracing.Tests +{ + internal class BlockAllocatorTests + { + [Test] + public void GrowAndAllocate_NotEnoughSpace_ShouldFail() + { + var allocator = new BlockAllocator(); + allocator.Initialize(500); + for (int i = 0; i < 50; i++) + { + var a = allocator.Allocate(2); + Assert.IsTrue(a.valid); + } + + int oldCapacity; + int newCapacity; + + var alloc = allocator.GrowAndAllocate(500, 300, out oldCapacity, out newCapacity); + Assert.IsFalse(alloc.valid); + + alloc = allocator.GrowAndAllocate(500, 600, out oldCapacity, out newCapacity); + Assert.IsTrue(alloc.valid); + + alloc = allocator.GrowAndAllocate(2, 600, out oldCapacity, out newCapacity); + Assert.IsFalse(alloc.valid); + } + + [Test] + public void GrowAndAllocate_NotEnoughSpaceMaxInt_ShouldFail() + { + var allocator = new BlockAllocator(); + allocator.Initialize(int.MaxValue); + var a = allocator.Allocate(int.MaxValue / 2); + + int oldCapacity; + int newCapacity; + + var alloc = allocator.GrowAndAllocate(3, int.MaxValue, out oldCapacity, out newCapacity); + Assert.IsTrue(alloc.valid); + + alloc = allocator.GrowAndAllocate(int.MaxValue / 2, int.MaxValue, out oldCapacity, out newCapacity); + Assert.IsFalse(alloc.valid); + } +} +} diff --git a/Packages/com.unity.render-pipelines.core/Tests/Editor/UnifiedRayTracing/BlockAllocatorTests.cs.meta b/Packages/com.unity.render-pipelines.core/Tests/Editor/UnifiedRayTracing/BlockAllocatorTests.cs.meta new file mode 100644 index 00000000000..948a39bd745 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Tests/Editor/UnifiedRayTracing/BlockAllocatorTests.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 6e0bf59629e30a243ba9535c7ed91f54 \ No newline at end of file diff --git a/Packages/com.unity.render-pipelines.core/Tests/Editor/UnifiedRayTracing/InvalidInputsTests.cs b/Packages/com.unity.render-pipelines.core/Tests/Editor/UnifiedRayTracing/InvalidInputsTests.cs new file mode 100644 index 00000000000..f7a8bf6055a --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Tests/Editor/UnifiedRayTracing/InvalidInputsTests.cs @@ -0,0 +1,175 @@ +using System; +using NUnit.Framework; +using UnityEngine.TestTools; + +namespace UnityEngine.Rendering.UnifiedRayTracing.Tests +{ + [TestFixture("Compute")] + [TestFixture("Hardware")] + internal class InvalidInputsTests + { + readonly RayTracingBackend m_Backend; + RayTracingContext m_Context; + RayTracingResources m_Resources; + IRayTracingAccelStruct m_AccelStruct; + IRayTracingShader m_Shader; + + [Flags] + enum MeshField { Positions=1, Normals=2, Uvs=4, Indices=8 } + + static Mesh CreateSingleTriangleMesh(MeshField fields) + { + Mesh mesh = new Mesh(); + + if ((fields & MeshField.Positions) != 0) + { + Vector3[] vertices = new Vector3[] + { + new Vector3(1.0f, 0.0f, 0), + new Vector3(0.0f, 0.0f, 0), + new Vector3(0.0f, 0.0f, 0) + }; + mesh.vertices = vertices; + } + + + if ((fields & MeshField.Normals) != 0) + { + Vector3[] normals = new Vector3[] + { + -Vector3.forward, + -Vector3.forward, + -Vector3.forward + }; + mesh.normals = normals; + } + + if ((fields & MeshField.Uvs) != 0) + { + Vector2[] uv = new Vector2[] + { + new Vector2(0, 1), + new Vector2(1, 1), + new Vector2(0, 0) + }; + mesh.uv = uv; + } + + if ((fields & MeshField.Indices) != 0) + { + int[] tris = new int[3] + { + 0, 2, 1 + }; + mesh.triangles = tris; + } + + return mesh; + } + + public InvalidInputsTests(string backendAsString) + { + m_Backend = Enum.Parse(backendAsString); + } + + [SetUp] + public void SetUp() + { + if (!SystemInfo.supportsRayTracing && m_Backend == RayTracingBackend.Hardware) + Assert.Ignore("Cannot run test on this Graphics API. Hardware RayTracing is not supported"); + + + if (!SystemInfo.supportsComputeShaders && m_Backend == RayTracingBackend.Compute) + Assert.Ignore("Cannot run test on this Graphics API. Compute shaders are not supported"); + + m_Resources = new RayTracingResources(); + m_Resources.Load(); + + m_Context = new RayTracingContext(m_Backend, m_Resources); + m_AccelStruct = m_Context.CreateAccelerationStructure(new AccelerationStructureOptions() { useCPUBuild = false }); + m_Shader = m_Context.LoadRayTracingShader("Packages/com.unity.render-pipelines.core/Tests/Editor/UnifiedRayTracing/TraceRays.urtshader"); + } + + [TearDown] + public void TearDown() + { + m_AccelStruct?.Dispose(); + m_Context?.Dispose(); + } + + + [Test] + public void AccelStruct_AddInstance_ThrowOnNullMesh() + { + var instanceDesc = new MeshInstanceDesc(null); + Assert.Throws(() => m_AccelStruct.AddInstance(instanceDesc)); + } + + [Test] + public void AccelStruct_AddInstance_ThrowOnMeshWithNoPositions() + { + var mesh = new Mesh(); + var instanceDesc = new MeshInstanceDesc(mesh); + Assert.Throws(() => m_AccelStruct.AddInstance(instanceDesc)); + } + + [Test] + public void AccelStruct_AddInstance_ThrowOnInvalidSubmeshIndex() + { + var mesh = CreateSingleTriangleMesh(MeshField.Positions | MeshField.Indices | MeshField.Normals | MeshField.Uvs); + var instanceDesc = new MeshInstanceDesc(mesh); + instanceDesc.subMeshIndex = -1; + Assert.Throws(() => m_AccelStruct.AddInstance(instanceDesc)); + } + + [Test] + public void AccelStruct_AddInstance_ThrowOnInvalidInstanceHandle() + { + var mesh = CreateSingleTriangleMesh(MeshField.Positions | MeshField.Indices | MeshField.Normals | MeshField.Uvs); + var instanceDesc = new MeshInstanceDesc(mesh); + var handle = m_AccelStruct.AddInstance(instanceDesc); + Assert.Throws(() => m_AccelStruct.RemoveInstance(handle + 1)); + + m_AccelStruct.ClearInstances(); + Assert.Throws(() => m_AccelStruct.RemoveInstance(handle)); + } + + [Test] + public void RayTracingShader_SetFloatParam_ThrowOnNullCmdBuffer() + { + Assert.Throws(() => m_Shader.SetFloatParam(null, 0, 1.0f)); + } + + [Test] + public void RayTracingShader_Dispatch_ThrowOnSmallScratchBuffer() + { + if (m_Backend == RayTracingBackend.Hardware) + { + Assert.Ignore("scratch buffer is lawfully null with hardware backend"); + return; + } + + using GraphicsBuffer scratch = new GraphicsBuffer(GraphicsBuffer.Target.Structured, 10, 4); + using CommandBuffer cmd = new CommandBuffer(); + var except = Assert.Throws(() => m_Shader.Dispatch(cmd, scratch, 20, 20, 20)); + Assert.That(except.Message, Does.Contain("scratch")); + } + + [Test] + public void RayTracingShader_Dispatch_ThrowOnScratchBufferWithInvalidTarget() + { + if (m_Backend == RayTracingBackend.Hardware) + { + Assert.Ignore("scratch buffer is lawfully null with hardware backend"); + return; + } + + using GraphicsBuffer scratch = new GraphicsBuffer(GraphicsBuffer.Target.Raw, 20*20*20*100, 4); + using CommandBuffer cmd = new CommandBuffer(); + var except = Assert.Throws(() => m_Shader.Dispatch(cmd, scratch, 20, 20, 20)); + Assert.That(except.Message, Does.Contain("target")); + } + + } +} + diff --git a/Packages/com.unity.render-pipelines.core/Tests/Editor/UnifiedRayTracing/InvalidInputsTests.cs.meta b/Packages/com.unity.render-pipelines.core/Tests/Editor/UnifiedRayTracing/InvalidInputsTests.cs.meta new file mode 100644 index 00000000000..fae7e4e9083 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Tests/Editor/UnifiedRayTracing/InvalidInputsTests.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: dd65df3631672c9449ce603e84743fd9 \ No newline at end of file diff --git a/Packages/com.unity.render-pipelines.core/Tests/Editor/UnifiedRayTracing/TraceRays.urtshader b/Packages/com.unity.render-pipelines.core/Tests/Editor/UnifiedRayTracing/TraceRays.urtshader new file mode 100644 index 00000000000..3db863cbcf5 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Tests/Editor/UnifiedRayTracing/TraceRays.urtshader @@ -0,0 +1,38 @@ +#define UNIFIED_RT_GROUP_SIZE_X 16 +#define UNIFIED_RT_GROUP_SIZE_Y 8 +#include "Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/TraceRayAndQueryHit.hlsl" + +UNIFIED_RT_DECLARE_ACCEL_STRUCT(_AccelStruct); + +struct RayWithFlags +{ + float3 origin; + float tMin; + float3 direction; + float tMax; + uint culling; + uint instanceMask; + uint padding; + uint padding2; +}; + + + +StructuredBuffer _Rays; +RWStructuredBuffer _Hits; + + +void RayGenExecute(UnifiedRT::DispatchInfo dispatchInfo) +{ + RayWithFlags rayWithFlags = _Rays[dispatchInfo.globalThreadIndex]; + UnifiedRT::Ray ray; + ray.origin = rayWithFlags.origin; + ray.direction = rayWithFlags.direction; + ray.tMin = rayWithFlags.tMin; + ray.tMax = rayWithFlags.tMax; + + UnifiedRT::RayTracingAccelStruct accelStruct = UNIFIED_RT_GET_ACCEL_STRUCT(_AccelStruct); + UnifiedRT::Hit hitResult = UnifiedRT::TraceRayClosestHit(dispatchInfo, accelStruct, rayWithFlags.instanceMask, ray, rayWithFlags.culling); + + _Hits[dispatchInfo.globalThreadIndex] = hitResult; +} diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred_GBuffer_Alpha.unity.meta b/Packages/com.unity.render-pipelines.core/Tests/Editor/UnifiedRayTracing/TraceRays.urtshader.meta similarity index 74% rename from Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred_GBuffer_Alpha.unity.meta rename to Packages/com.unity.render-pipelines.core/Tests/Editor/UnifiedRayTracing/TraceRays.urtshader.meta index f67d167c3b1..1b9e032ae42 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred_GBuffer_Alpha.unity.meta +++ b/Packages/com.unity.render-pipelines.core/Tests/Editor/UnifiedRayTracing/TraceRays.urtshader.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: e90c743b5f0d84d30bc98e6d5be68eca +guid: 1142bbad8b9e8c44c83a9775ff120d37 DefaultImporter: externalObjects: {} userData: diff --git a/Packages/com.unity.render-pipelines.core/Tests/Editor/UnifiedRayTracing/TraceRaysAndFetchAttributes.urtshader b/Packages/com.unity.render-pipelines.core/Tests/Editor/UnifiedRayTracing/TraceRaysAndFetchAttributes.urtshader new file mode 100644 index 00000000000..f02b22e9f87 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Tests/Editor/UnifiedRayTracing/TraceRaysAndFetchAttributes.urtshader @@ -0,0 +1,48 @@ +#define UNIFIED_RT_GROUP_SIZE_X 16 +#define UNIFIED_RT_GROUP_SIZE_Y 8 +#include "Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/FetchGeometry.hlsl" +#include "Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/TraceRayAndQueryHit.hlsl" + +UNIFIED_RT_DECLARE_ACCEL_STRUCT(_AccelStruct); + +struct RayWithFlags +{ + float3 origin; + float tMin; + float3 direction; + float tMax; + uint culling; + uint instanceMask; + uint padding; + uint padding2; +}; + +StructuredBuffer _Rays; +RWStructuredBuffer _Hits; +RWStructuredBuffer _HitAttributes; + +void RayGenExecute(UnifiedRT::DispatchInfo dispatchInfo) +{ + + RayWithFlags rayWithFlags = _Rays[dispatchInfo.globalThreadIndex]; + UnifiedRT::Ray ray; + ray.origin = rayWithFlags.origin; + ray.direction = rayWithFlags.direction; + ray.tMin = rayWithFlags.tMin; + ray.tMax = rayWithFlags.tMax; + + UnifiedRT::RayTracingAccelStruct accelStruct = UNIFIED_RT_GET_ACCEL_STRUCT(_AccelStruct); + UnifiedRT::Hit hitResult = UnifiedRT::TraceRayClosestHit(dispatchInfo, accelStruct, rayWithFlags.instanceMask, ray, rayWithFlags.culling); + if (hitResult.IsValid()) + { + UnifiedRT::HitGeomAttributes hitAttribs = UnifiedRT::FetchHitGeomAttributes(hitResult); + _HitAttributes[dispatchInfo.globalThreadIndex] = hitAttribs; + } + else + { + _HitAttributes[dispatchInfo.globalThreadIndex] = (UnifiedRT::HitGeomAttributes)0; + } + + + _Hits[dispatchInfo.globalThreadIndex] = hitResult; +} diff --git a/Packages/com.unity.render-pipelines.core/Tests/Editor/UnifiedRayTracing/TraceRaysAndFetchAttributes.urtshader.meta b/Packages/com.unity.render-pipelines.core/Tests/Editor/UnifiedRayTracing/TraceRaysAndFetchAttributes.urtshader.meta new file mode 100644 index 00000000000..8ab85f8e486 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Tests/Editor/UnifiedRayTracing/TraceRaysAndFetchAttributes.urtshader.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: fbc59f55df2416344b008dc23753cae2 +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: 42d537a8a4089e448a99fc57a06d74a9, type: 3} diff --git a/Packages/com.unity.render-pipelines.core/Tests/Editor/UnifiedRayTracing/TraceTransparentRays.urtshader b/Packages/com.unity.render-pipelines.core/Tests/Editor/UnifiedRayTracing/TraceTransparentRays.urtshader new file mode 100644 index 00000000000..03686c9de4d --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Tests/Editor/UnifiedRayTracing/TraceTransparentRays.urtshader @@ -0,0 +1,65 @@ +#define UNIFIED_RT_GROUP_SIZE_X 16 +#define UNIFIED_RT_GROUP_SIZE_Y 8 +#define UNIFIED_RT_PAYLOAD RayPayload +#define UNIFIED_RT_RAYGEN_FUNC RayGenExecute +#define UNIFIED_RT_CLOSESTHIT_FUNC ClosestHitExecute +#define UNIFIED_RT_ANYHIT_FUNC AnyHitExecute + +struct RayPayload +{ + uint anyHits; + int closestHit; +}; + +#include "Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/TraceRay.hlsl" + +int _AnyHitDecision; + +uint AnyHitExecute(UnifiedRT::HitContext hitContext, inout RayPayload payload) +{ + payload.anyHits |= (1 << hitContext.InstanceID()); + + return _AnyHitDecision; +} + +void ClosestHitExecute(UnifiedRT::HitContext hitContext, inout RayPayload payload) +{ + payload.closestHit = hitContext.InstanceID(); +} + +UNIFIED_RT_DECLARE_ACCEL_STRUCT(_AccelStruct); + +struct RayWithFlags +{ + float3 origin; + float tMin; + float3 direction; + float tMax; + uint culling; + uint instanceMask; + uint padding; + uint padding2; +}; + +StructuredBuffer _Rays; +RWStructuredBuffer _Hits; + + +void RayGenExecute(UnifiedRT::DispatchInfo dispatchInfo) +{ + RayWithFlags rayWithFlags = _Rays[dispatchInfo.globalThreadIndex]; + UnifiedRT::Ray ray; + ray.origin = rayWithFlags.origin; + ray.direction = rayWithFlags.direction; + ray.tMin = rayWithFlags.tMin; + ray.tMax = rayWithFlags.tMax; + + UnifiedRT::RayTracingAccelStruct accelStruct = UNIFIED_RT_GET_ACCEL_STRUCT(_AccelStruct); + + RayPayload rayPayload = (RayPayload)0; + rayPayload.closestHit = -1; + UnifiedRT::TraceRay(dispatchInfo, accelStruct, 0xFFFFFFFF, ray, rayWithFlags.culling, rayPayload); + + _Hits[dispatchInfo.globalThreadIndex] = rayPayload; +} + diff --git a/Packages/com.unity.render-pipelines.core/Tests/Editor/UnifiedRayTracing/TraceTransparentRays.urtshader.meta b/Packages/com.unity.render-pipelines.core/Tests/Editor/UnifiedRayTracing/TraceTransparentRays.urtshader.meta new file mode 100644 index 00000000000..f90fde8a674 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Tests/Editor/UnifiedRayTracing/TraceTransparentRays.urtshader.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 6513c3b892e933c4f8d00c19d5c47532 diff --git a/Packages/com.unity.render-pipelines.core/Tests/Editor/UnifiedRayTracing/Unity.UnifiedRayTracing.Editor.Tests.asmdef b/Packages/com.unity.render-pipelines.core/Tests/Editor/UnifiedRayTracing/Unity.UnifiedRayTracing.Editor.Tests.asmdef new file mode 100644 index 00000000000..8c170851b27 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Tests/Editor/UnifiedRayTracing/Unity.UnifiedRayTracing.Editor.Tests.asmdef @@ -0,0 +1,24 @@ +{ + "name": "Unity.UnifiedRayTracing.Editor.Tests", + "rootNamespace": "", + "references": [ + "GUID:d8b63aba1907145bea998dd612889d6b", + "GUID:df380645f10b7bc4b97d4f5eb6303d95", + "GUID:214c0945bb158c940aada223f3223ee8" + ], + "includePlatforms": [ + "Editor" + ], + "excludePlatforms": [], + "allowUnsafeCode": true, + "overrideReferences": true, + "precompiledReferences": [ + "nunit.framework.dll" + ], + "autoReferenced": false, + "defineConstraints": [ + "UNITY_INCLUDE_TESTS" + ], + "versionDefines": [], + "noEngineReferences": false +} \ No newline at end of file diff --git a/Packages/com.unity.render-pipelines.core/Tests/Editor/UnifiedRayTracing/Unity.UnifiedRayTracing.Editor.Tests.asmdef.meta b/Packages/com.unity.render-pipelines.core/Tests/Editor/UnifiedRayTracing/Unity.UnifiedRayTracing.Editor.Tests.asmdef.meta new file mode 100644 index 00000000000..6e56e53fc0c --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Tests/Editor/UnifiedRayTracing/Unity.UnifiedRayTracing.Editor.Tests.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: cb16ddcad9e86c047a91282ca9c48140 +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/package.json b/Packages/com.unity.render-pipelines.core/package.json index e35da912d43..de0c130ef0e 100644 --- a/Packages/com.unity.render-pipelines.core/package.json +++ b/Packages/com.unity.render-pipelines.core/package.json @@ -11,7 +11,6 @@ "com.unity.collections": "2.4.3", "com.unity.modules.physics": "1.0.0", "com.unity.modules.terrain": "1.0.0", - "com.unity.modules.jsonserialize": "1.0.0", - "com.unity.rendering.light-transport": "1.0.1" + "com.unity.modules.jsonserialize": "1.0.0" } } \ No newline at end of file diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Camera-Relative-Rendering.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Camera-Relative-Rendering.md index 1de85f22fcd..6a0af108e4f 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Camera-Relative-Rendering.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Camera-Relative-Rendering.md @@ -16,7 +16,15 @@ If you view the source files for pre-built HDRP Shaders, the view and view-proje Camera-relative rendering is enabled by default in the ShaderConfig.cs file (in your Project window go to **Packages > High Definition RP Config > Runtime > ShaderLibrary** and click on **ShaderConfig.cs**). To disable this feature, set `CameraRelativeRendering` to `0`, and then generate Shader includes to update the ShaderConfig.cs.hlsl file (menu: **Edit > Render Pipeline** and click **Generate Shader Includes)**. -## **Examples** +To disable camera-relative rendering: + +1. In the Project window, go to **Packages** > **High Definition Render Pipeline Config** > **Runtime**. + +1. Open the `ShaderConfig.cs` file, then set `CameraRelativeRendering` to `0`. + +1. From the main menu, select **Edit** > **Render Pipeline** > **Generate Shader Includes** to generate shader includes and update the `ShaderConfig.cs.hlsl` file + +## Examples If you enable Camera-relative rendering: diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/HDRP-Asset.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/HDRP-Asset.md index 5a4c789fdf3..2942590aa11 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/HDRP-Asset.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/HDRP-Asset.md @@ -97,9 +97,10 @@ The following properties are available only if you add **DLSS** to **Advanced Up | **Property** | **Description** | |-|-| -| **DLSS Mode** | Sets whether DLSS prioritizes quality or performance. The options are:
  • **Maximum Quality**
  • **Balanced**
  • **Maximum Performance**
  • **Ultra Performance**
| +| **DLSS Mode** | Sets whether DLSS prioritizes quality or performance. The options are:
  • **Maximum Quality**
  • **Balanced**
  • **Maximum Performance**
  • **Ultra Performance**
  • **DLAA**
| | **DLSS Injection Point** | Sets when DLSS runs in the rendering pipeline. For more information, refer to [Injection points dropdown](#injection-points). | | **DLSS Use Optimal Settings** | Enables DLSS to control screen percentage automatically. | +| **DLSS Render Presets** | Sets the selected DLSS Render Preset for each quality mode. For more information, refer to [DLSS Quality Modes and Render Presets](deep-learning-super-sampling-in-hdrp.md#qualityandpresets). | #### FSR2 settings diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Mask-Map-and-Detail-Map.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Mask-Map-and-Detail-Map.md index 01a7714da8b..89dbf2e33f1 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Mask-Map-and-Detail-Map.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Mask-Map-and-Detail-Map.md @@ -20,7 +20,7 @@ The mask map contains four grayscale textures, one in each color channel. The de | **Alpha** | Smoothness | -**Note:** The detail mask texture allows you to control where the detail texture is applied on your model. This means you can decide which areas should display the detail texture and which should not. For instance, if your model has skin pores, you might mask the lips and eyebrows to prevent the pores from appearing in those areas. +**Note:** The detail mask texture allows you to control where the detail texture is applied on your model. Use a value of `1` to display the detail texture and a value of `0` to mask it. For instance, if your model has skin pores, you might mask the lips and eyebrows to prevent the pores from appearing in those areas. To create a mask map, create a linear composited map in a photo editor, using the channels as described in the table above. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Shadows-in-HDRP.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Shadows-in-HDRP.md index 410e0a9bf9a..00ef846d3cb 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Shadows-in-HDRP.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Shadows-in-HDRP.md @@ -37,6 +37,8 @@ To enable this feature: HDRP renders all real-time shadows for a frame using a shadow map atlas for all [punctual light](Glossary.md#PunctualLight) shadows, an atlas for area lights and another one for Directional Light shadows. +HDRP also renders separate shadow atlases for cached shadows. For more information, refer to [Update shadows less frequently](shadow-update-mode.md). + Set the size of these atlases in your Unity Project’s [HDRP Asset](HDRP-Asset.md). The atlas size determines the maximum resolution of shadows in your Scene. For example, the default size of an atlas is 4096 x 4096, which can fit: @@ -44,19 +46,6 @@ For example, the default size of an atlas is 4096 x 4096, which can fit: - Sixteen shadow maps of 1024 x 1024 pixels. - Two shadow maps of 2048 x 2048 plus four shadow maps of 1024 x 1024 plus eight shadow maps of 512 x 512 plus 32 shadow maps of 256 x 256. -### Preserve shadow atlas placement - -If you disable a Light or change its **Update Mode** to **Every Frame**, the cached shadow manager unreserves the Light's shadow map's space in the cached shadow atlas and HDRP begins to render the Light's shadow map to the normal shadow atlases every frame. If the cached shadow manager needs to allocate space on the atlas for another Light, it can overwrite the space currently taken up by the original Light's shadow map. - -If you want to temporarily set a Light's **Update Mode** to **Every Frame** and want to set it back to **On Enable** or **On Demand** later, you can preserve the Light's shadow map placement in its atlas. This is useful, for example, if you want HDRP to cache a far away Light's shadow map, but update it every frame when it gets close to the [Camera](hdrp-camera-component-reference.md). To do this: - -1. Select a Light in your scene to view it in the Inspector window. -2. Go to **HDAdditionalLightData** and open the More menu (⋮) -3. Select **Edit Script** -4. Enable **preserveCachedShadow** and set it to **True**. HDRP preserves the Light's shadow map's space in its shadow atlas. - -**Note**: Even if you enable **preserveCachedShadow**, if you destroy the Light, it loses its placement in the shadow atlas. - ### Control the maximum number of shadows on screen In addition to the atlases, you can also set the maximum number of shadow maps HDRP can render in a single frame. To do this, open your Unity Project’s HDRP Asset, navigate to the **Shadows** section, and enter a **Max Shadows on Screen** value. If the number of shadow maps on screen is higher than this limit, HDRP doesn't render them. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/System-Requirements.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/System-Requirements.md index fcc4be071cd..e1c0735b5b1 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/System-Requirements.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/System-Requirements.md @@ -4,22 +4,11 @@ This page contains information on system requirements and compatibility of the H ## Unity Editor compatibility -The following table shows the compatibility of the High Definition Render Pipeline (HDRP) versions with different Unity Editor versions. - -| **Package version** | **Minimum Unity version** | **Maximum Unity version** | -|---------------------|---------------------------|---------------------------| -| 17.x | 6000.x | 6000.x | -| 16.0.x | 2023.2 | 2023.x | -| 15.0.x | 2023.1 | 2023.1 | -| 14.0.x | 2022.2 | 2022.x | -| 13.x.x | 2022.1 | 2022.1 | -| 12.0.x | 2021.2 | 2021.3 | -| 11.x | 2021.1 | 2021.1 | -| 10.x | 2020.2 | 2020.3 | -| 9.x-preview | 2020.1 | 2020.1 | -| 8.x | 2020.1 | 2020.1 | -| 7.x | 2019.3 | 2019.4 | -| 6.x | 2019.2 | 2019.2 | +HDRP is a [core Unity package](../pack-core). For each alpha, beta or patch release of Unity, the main Unity installer contains the up-to-date version of the package. + +The Package Manager window displays only the major and minor revision of the package. For example, version 17.2.0 for all Unity 6.2.x releases. + +You can install a different version of a graphics package from disk using the Package Manager, or by modifying the `manifest.json` file. ## Render pipeline compatibility diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/deep-learning-super-sampling-in-hdrp.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/deep-learning-super-sampling-in-hdrp.md index ef76e23a274..eab74e186dc 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/deep-learning-super-sampling-in-hdrp.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/deep-learning-super-sampling-in-hdrp.md @@ -1,10 +1,10 @@ # Deep learning super sampling (DLSS) -NVIDIA Deep Learning Super Sampling (DLSS) is a rendering technology that uses artificial intelligence to increase graphics performance. The High Definition Render Pipeline (HDRP) natively supports DLSS. For more information about DLSS see [Deep learning super sampling](https://docs.unity3d.com/Manual/deep-learning-super-sampling.html). +[NVIDIA Deep Learning Super Sampling (DLSS)](https://www.nvidia.com/en-us/geforce/technologies/dlss/) is a rendering technology that uses artificial intelligence to increase graphics performance. The High Definition Render Pipeline (HDRP) natively supports DLSS. ## Requirements and compatibility -This section includes HDRP-specific requirements and compatibility information for DLSS. For information about the general requirements and compatibility of DLSS, see [Deep learning super sampling](https://docs.unity3d.com/Manual/deep-learning-super-sampling.html). +This section includes HDRP-specific requirements and compatibility information for DLSS. ### Platforms @@ -50,7 +50,7 @@ To use DLSS in your scene: 2. Select **Allow Dynamic Resolution** to expose the DLSS settings. For more information see the [Dynamic Resolution](Dynamic-Resolution.md) guide. 3. Enable **Allow DLSS** to expose other properties that you can use to customize DLSS for the Camera. For information about these properties, see the [Camera](hdrp-camera-component-reference.md) documentation. -4. Set the DLSS quality mode. You can do this on a project level or a per-Camera level. For information about the available quality modes, see [Quality modes](https://docs.unity3d.com/Manual/deep-learning-super-sampling.html). +4. Set the DLSS quality mode. You can do this on a project level or a per-camera level. * To change the DLSS quality mode for your whole project: @@ -63,6 +63,41 @@ To use DLSS in your scene: 2. Select **Use Custom Quality**. 3. Set the **Mode** property to the quality mode you want. +5. To fine-tune the DLSS image quality for your project, select a DLSS render preset for each quality mode available under the [HDRP Asset](HDRP-Asset.md) + + + +### DLSS quality modes and render presets + +| Quality mode | Explanation | Upscale ratio | Render percentage | +|- |- |- |- | +| Maximum Quality | Provides the highest image quality but lowers performance. | 1.50 | 67% | +| Balanced | Balances image quality and performance. | 1.72 | 58% | +| Maximum Performance | Increases performance but lowers image quality. | 2.00 | 50% | +| Ultra Performance | Provides the highest performance and the lowest image quality. | 3.00 | 33% | +| DLAA | Provides AI-assisted anti-aliasing (deep-learning anti-aliasing) without upscaling | 1.00 | 100% | + +Each quality mode provides a specific collection of DLSS Render presets. +Available presets are marked as '1' in the table below. + +| Render Preset | Maximum Quality | Balanced | Maximum Performance | Ultra Performance | DLAA | Explanation | AI Model | +|- |- |- |- |- |- |- |- | +| Preset F | | | | 1 | 1 | Provides the highest image stability. Default value for UltraPerformance. | CNN | +| Preset J | 1 | 1 | 1| | 1 | Slightly lowers ghosting but increases flickering.
NVIDIA recommends using **Preset K** instead of **Preset J**. | Transformer | +| Preset K | 1 | 1 | 1| | 1 | Provides the highest image quality. | Transformer | + +The defaults for each quality mode are: + +| **Quality mode** | **Default render preset** | +|- |- | +| **Maximum Quality** | Preset K +| **Balanced** | Preset K +| **Maximum Performance** | Preset K +| **Ultra Performance** | Preset F +| **DLAA** | Preset K | + +DLSS render presets are project-specific. Presets are available only from the HDRP Asset settings. You can't override presets on a per-camera basis. + ### DLSS and Dynamic Resolution The **Use Optimal Settings** checkbox in the [HDRP Assets](HDRP-Asset.md) is enabled by default. This means that DLSS sets the dynamic resolution scale automatically. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/hdrp-camera-component-reference.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/hdrp-camera-component-reference.md index 2c8e8b1bdf0..4180052b408 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/hdrp-camera-component-reference.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/hdrp-camera-component-reference.md @@ -72,9 +72,9 @@ The following properties are available only if you enable **Allow DLSS**. | **Property** | **Description** | |-|-| | **Use DLSS Custom Quality** | Indicates whether this Camera overrides the DLSS quality mode specified in the [HDRP Asset](HDRP-Asset.md). | -| **DLSS Mode** | Sets whether DLSS prioritizes quality or performance. The options are:
  • **Maximum Quality**
  • **Balanced**
  • **Maximum Performance**
  • **Ultra Performance**
This property is available only if you enable **Use DLSS Custom Quality**. | +| **DLSS Mode** | Sets whether DLSS prioritizes quality or performance. The options are:
  • **Maximum Quality**
  • **Balanced**
  • **Maximum Performance**
  • **Ultra Performance**
  • **DLAA**
This property is available only if you enable **Use DLSS Custom Quality**. | | **Use DLSS Custom Attributes** | Overrides the DLSS properties specified in the [HDRP Asset](HDRP-Asset.md), on this camera. | -| **DLSS Use Optimal Settings** | Enables DLSS controlling sharpness and screen percentage automatically. This property is available only if you enable **Use DLSS Custom Attributes**. | +| **DLSS Use Optimal Settings** | Enables DLSS to automatically control screen percentage. This property is available only if you enable **Use DLSS Custom Attributes**. | ### FSR2 settings diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/reference-light-component.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/reference-light-component.md index fc0b9dbf096..839d7eec659 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/reference-light-component.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/reference-light-component.md @@ -154,7 +154,7 @@ These settings define the volumetric behavior of this Light. Alter these setting | ----------------- | ------------------------------------------------------------ | | **Enable** | Enable the checkbox to simulate light scattering through volumetric fog. Enabling this property allows you to edit the **Multiplier** and **Shadow Dimmer** properties. | | **Multiplier** | Sets the intensity of the volumetric lighting effect of this Light. | -| **Shadow Dimmer** | Dims the volumetric fog effect of this Light. Set this property to 0 to make the volumetric scattering compute faster. | +| **Shadow Dimmer** | Dims the volumetric shadows the light casts. If you set this property to zero, Unity no longer samples the shadow map to create volumetric shadows, which might reduce the performance impact. | @@ -174,7 +174,7 @@ This section is only available in Realtime or Mixed light **Mode**. | **Property** | **Description** | | -------------------------- | ------------------------------------------------------------ | | **Enable** | Enable the checkbox to let this Light cast shadows. | -| **Update Mode** | Use the drop-down to select the mode that HDRP uses to determine when to update a shadow map.
For information on the modes available, see the [Shadows in HDRP documentation](shadow-update-mode.md). | +| **Update Mode** | Determines how often HDRP updates the shadow map for the Light. The options are:
  • Every Frame: Updates the shadow maps for the Light every frame. This is the default value.
  • On Enable: Updates the shadow maps for the Light only when you enable the GameObject.
  • On Demand: Updates the shadow maps for the Light only when you call the [`HDAdditionalLightData.RequestShadowMapRendering`](xref:UnityEngine.Rendering.HighDefinition.HDAdditionalLightData.RequestShadowMapRendering) API to update them.
For more information, refer to [Update shadows less frequently](shadow-update-mode.md). | | **Resolution** | Set the resolution of this Light’s shadow maps. Use the drop-down to select which quality mode to derive the resolution from. If you don't enable **Use Quality Settings**, or you select **Custom**, set the resolution, measured in pixels, in the input field.
A higher resolution increases the fidelity of shadows at the cost of GPU performance and memory usage, so if you experience any performance issues, try using a lower value. Shadows can be turned off by setting the resolution to 0. | | **Near Plane** | The distance, in meters, from the Light that GameObjects begin to cast shadows. | | **Shadowmask Mode** | Defines how the shadowmask behaves for this Light. For detailed information on each **Shadowmask Mode**, see the documentation on [Shadowmasks](Lighting-Mode-Shadowmask.md). This property is only visible if you tet the **Mode**, under [General](#general), to **Mixed**. | diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/rendering-debugger-window-reference.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/rendering-debugger-window-reference.md index 2c3f2d1b6db..6c90650cf44 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/rendering-debugger-window-reference.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/rendering-debugger-window-reference.md @@ -351,6 +351,7 @@ The **NVIDIA device debug view** is a panel that displays a list of the current | **Input resolution** | Displays the current input resolution. Unity calculates this from the screen percentage specified for dynamic resolution scaling. | | **Output resolution** | Displays the target resolution for this particular DLSS view. | | **Quality** | Displays the quality selected for this particular DLSS view. | +| **Render Preset** | Displays the render preset selected for the currently active quality mode for this particular DLSS view. | The **History Buffers view** lets you display various render pipeline full screen buffers that persist across multiple frames. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/shadow-update-mode.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/shadow-update-mode.md index 786b1acf20a..cd3e78b107b 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/shadow-update-mode.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/shadow-update-mode.md @@ -1,41 +1,55 @@ -## Set a shadow update mode +# Update shadows less frequently -You can use **Update Mode** to specify the calculation method HDRP uses to update a [Light](Light-Component.md)'s shadow maps. The following Update Modes are available: +By default, the High Definition Render Pipline (HDRP) calculates the shadow map of a Light every frame. To improve performance, reduce how often HDRP updates the shadow map. -| **Update Mode** | **Description** | -| --------------- | ------------------------------------------------------------ | -| **Every Frame** | HDRP updates the shadow maps for the light every frame. | -| **On Enable** | HDRP updates the shadow maps for the light whenever you enable the GameObject. | -| **On Demand** | HDRP updates the shadow maps for the light every time you request them. To do this, call the RequestShadowMapRendering() method in the Light's HDAdditionalLightData component. | +## Reduce shadow map updates -The High Definition Render Pipeline (HDRP) uses shadow caching to increase performance by only updating the shadow maps for [Lights](Light-Component.md) when it's necessary. HDRP has shadow atlases for punctual, area, and directional Lights, and separate shadow atlases specifically for cached punctual and cached area Lights. For cached directional Lights, they use the same atlas as normal directional Lights. +Follow these steps: -When a Light that caches its shadows renders its shadow map for the first time, HDRP registers it with the cached shadow manager which assigns the shadow map to a cached shadow atlas. For directional Lights, HDRP uses the same shadow atlas for cached and non-cached directional Lights. +1. Select a Light in your Scene. +1. In the Inspector window, in the **Shadows** section, set **Update Mode** to **On Enable** or **On Demand**. -A Light's **Update Mode** determines whether HDRP caches its shadow map: + - **On Enable**: Updates the shadow map only when the Light is enabled. + - **On Demand**: Updates the shadow map only when you use an API to update the shadows manually. -- If you set a Light's **Update Mode** to **OnEnable** or **OnDemand**, HDRP caches the Light's shadow map. -- If you set a Light's **Update Mode** to **Every Frame**, HDRP doesn't cache the Light's shadow map. +In these modes, HDRP caches the shadow map when the shadows update, and uses the cached version between updates. -If you set the Light's **Update Mode** to **OnDemand**, you can manually request HDRP to update the Light's shadow map. To do this: +Point Lights and Area Lights have their own shadow atlas for cached shadows. Directional Lights store cached shadows in the same shadow atlas as non-cached Directional Lights. For more information about shadow atlases, refer to [Control shadow resolution and quality](Shadows-in-HDRP.md). -1. Select a Light in your scene to view it in the Inspector window. -2. Go to **HDAdditionalLightData** and open the More menu (⋮). -3. Select **Edit Script**. -4. Call the `RequestShadowMapRendering` function in the script. +## Updates shadows manually -If the Light has multiple shadows (for example, multiple cascades of a directional light), you can request the update of a specific sub-shadow. To do this, use the `RequestSubShadowMapRendering(shadowIndex)` function. +If you set the **Update Mode** of the Light to **On Demand**, follow these steps to update the shadows: -When you set **Update Mode** to **OnDemand** HDRP renders the shadow maps `OnEnable` for the first time, or when first registered with the system by default. You can change this using the `onDemandShadowRenderOnPlacement` property. If you set this property to false, HDRP doesn't render the shadows until you call `RequestShadowMapRendering` or `RequestSubShadowMapRendering(shadowIndex)`. +1. In the Inspector window for the Light, go to **HDAdditionalLightData** and open the **More** (⋮) menu. +1. Select **Edit Script**. +1. Call the `RequestShadowMapRendering` API in the script when you want to update the shadows. -For a Light that caches its shadows, if you disable it or set its **Update Mode** to **Every Frame**, HDRP can preserve the Light's shadow map's place in the cached shadow atlas. This means that, if you enable the Light again, HDRP doesn't need to re-render the shadow map or place it into a shadow atlas. For information on how to make a Light preserve its shadow map's place in the cached shadow atlas, see [Preserving shadow atlas placement](Shadows-in-HDRP.md#preserve-shadow-atlas-placement). +HDRP also updates the shadows when you first enable [Contact Shadows](Override-Contact-Shadows.md). -As a shortcut for a common case, HDRP offers an option to automatically trigger an update when either the position or rotation of a light changes above a certain threshold. To enable this option: +If you set a Directional Light to **On Demand**, update shadows frequently so they stay up-to-date with the camera position. Otherwise you might see visual artifacts. -1. Select a Light in your Scene to view it in the Inspector window. -2. Go to **Light** > **Shadows** and set **Update Mode** to **On Enable** -3. Enable **Update on light movement**. +For more information about customizing which shadows HDRP updates and when, refer to the [`HDAdditionalLightData`](xref:UnityEngine.Rendering.HighDefinition.HDAdditionalLightData) API. -You can customize the threshold that HDRP uses to determine how much a light needs to move or rotate to trigger an update. To do this, use the properties: `cachedShadowTranslationUpdateThreshold` and `cachedShadowAngleUpdateThreshold` properties on the Light's **HDAdditionalLightData** component. +## Update shadows when the Light moves -**Note**: Point lights ignore the angle differences when determining if they need to perform an update in this mode. \ No newline at end of file +To update the shadow map only when the position or rotation of the Light changes, follow these steps: + +1. Set **Update Mode** to **On Enable**. +1. Enable **Update on light movement**. + +To customize how much a light needs to move or rotate to trigger an update, use the [`cachedShadowAngleUpdateThreshold`](xref:UnityEngine.Rendering.HighDefinition.HDAdditionalLightData.cachedShadowAngleUpdateThreshold) and [`cachedShadowTranslationUpdateThreshold`](xref:UnityEngine.Rendering.HighDefinition.HDAdditionalLightData.cachedShadowTranslationUpdateThreshold) APIs. + +**Note**: Point Lights ignore `cachedShadowAngleUpdateThreshold`. + +## Preserve cached shadows + +To preserve a cached shadow map when you disable a Light or set its **Update Mode** back to **Every Frame**, edit your script to set the [`UnityEngine.Rendering.HighDefinition.HDAdditionalLightData.preserveCachedShadow`](HighDefinition.HDAdditionalLightData.preserveCachedShadow) property to `true`. + +HDRP keeps the shadow map in the shadow atlas, so it doesn't need to re-render the shadow map or place it into a shadow atlas again. This is useful if, for example, you want HDRP to cache the shadow map of a distant Light, but update the shadow map every frame when the Light gets closer to the camera. + +**Note**: If you destroy the Light, HDRP no longer preserves its shadow map in the shadow atlas. + +## Additional resources + +- [Realtime shadows](Realtime-Shadows.md) +- [Contact Shadows](Override-Contact-Shadows.md) diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/upgrade-guides.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/upgrade-guides.md index 88fd2ca1816..02f2cae8e36 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/upgrade-guides.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/upgrade-guides.md @@ -4,6 +4,8 @@ This section contains information about upgrading from an older version of the H To upgrade a Unity project that uses the built-in render pipeline, refer to [Convert a project from the Built-in Render Pipeline](convert-project-from-built-in-render-pipeline.md). +**Note:** For HDRP 17.2 (Unity 6.2) and later, refer to the [Upgrade Unity](https://docs.unity3d.com/6000.2/Documentation/Manual/UpgradeGuides.html) page. + | Page| Description| |-|-| |[High Definition Render Pipeline Wizard](Render-Pipeline-Wizard.md)|Use the HDRP Wizard to upgrade features between versions.| diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/whats-new.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/whats-new.md index 3cf23a9cf14..41fcd517b5c 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/whats-new.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/whats-new.md @@ -2,6 +2,8 @@ This section contains information about changes to the High Definition Render Pipeline (HDRP). Each page contains a list of new features and, if relevant, a list of improvements and a list of resolved issues. +**Note:** For HDRP 17.2 (Unity 6.2) and later, refer to the [What's new in Unity](https://docs.unity3d.com/6000.2/Documentation/Manual/WhatsNewUnity6Preview.html) page. + | Page| Description| |-| -| | [What's new in HDRP 16](whats-new-16.md) | Unity version 2023.2| diff --git a/Packages/com.unity.render-pipelines.high-definition/Editor/AssemblyInfo.cs b/Packages/com.unity.render-pipelines.high-definition/Editor/AssemblyInfo.cs index 337b0119ba9..cf804066a3d 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Editor/AssemblyInfo.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Editor/AssemblyInfo.cs @@ -4,3 +4,4 @@ [assembly: InternalsVisibleTo("Unity.RenderPipelines.HighDefinition.Editor.Tests")] [assembly: InternalsVisibleTo("Unity.Industrial.Materials.AVRD.Editor")] [assembly: InternalsVisibleTo("Unity.TextMeshPro.Editor")] +[assembly: InternalsVisibleTo("Unity.GI.ReflectionProbes.Test")] diff --git a/Packages/com.unity.render-pipelines.high-definition/Editor/AssetProcessors/MaterialPostProcessor.cs b/Packages/com.unity.render-pipelines.high-definition/Editor/AssetProcessors/MaterialPostProcessor.cs index dcd404d6694..c309c4511f3 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Editor/AssetProcessors/MaterialPostProcessor.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Editor/AssetProcessors/MaterialPostProcessor.cs @@ -284,7 +284,7 @@ static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAsse if (importCounter > 2) continue; - var shaderPath = AssetDatabase.GetAssetPath(material.shader.GetInstanceID()); + var shaderPath = AssetDatabase.GetAssetPath(material.shader.GetEntityId()); AssetDatabase.ImportAsset(shaderPath); // Restart the material import instead of proceeding otherwise the shadergraph will be processed after diff --git a/Packages/com.unity.render-pipelines.high-definition/Editor/BuildProcessors/HDRPPreprocessShaders.cs b/Packages/com.unity.render-pipelines.high-definition/Editor/BuildProcessors/HDRPPreprocessShaders.cs index 5449cf26c0c..989ca554694 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Editor/BuildProcessors/HDRPPreprocessShaders.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Editor/BuildProcessors/HDRPPreprocessShaders.cs @@ -202,9 +202,20 @@ protected override bool DoShadersStripper(HDRenderPipelineAsset hdrpAsset, Shade return true; } - foreach (var areaShadowVariant in m_ShadowKeywords.AreaShadowVariants) + + if (ShaderConfig.s_AreaLights == 1) + { + foreach (var areaShadowVariant in m_ShadowKeywords.AreaShadowVariants) + { + if (areaShadowVariant.Key != shadowInitParams.areaShadowFilteringQuality) + if (inputData.shaderKeywordSet.IsEnabled(areaShadowVariant.Value)) + return true; + } + } + else { - if (areaShadowVariant.Key != shadowInitParams.areaShadowFilteringQuality) + // Strip all the area light shadow filtering variants when they are disabled in the shader config. + foreach (var areaShadowVariant in m_ShadowKeywords.AreaShadowVariants) if (inputData.shaderKeywordSet.IsEnabled(areaShadowVariant.Value)) return true; } diff --git a/Packages/com.unity.render-pipelines.high-definition/Editor/BuildProcessors/ShaderStrippers/HDRPComputeShaderVariantStripper.cs b/Packages/com.unity.render-pipelines.high-definition/Editor/BuildProcessors/ShaderStrippers/HDRPComputeShaderVariantStripper.cs index 5d1b125569e..c07916db393 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Editor/BuildProcessors/ShaderStrippers/HDRPComputeShaderVariantStripper.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Editor/BuildProcessors/ShaderStrippers/HDRPComputeShaderVariantStripper.cs @@ -111,13 +111,22 @@ internal bool StripShader(HDRenderPipelineAsset hdAsset, ComputeShader shader, s } } - foreach (var areaShadowVariant in m_ShadowKeywords.AreaShadowVariants) + + if (ShaderConfig.s_AreaLights == 1) { - if (areaShadowVariant.Key != shadowInitParams.areaShadowFilteringQuality) + foreach (var areaShadowVariant in m_ShadowKeywords.AreaShadowVariants) { + if (areaShadowVariant.Key != shadowInitParams.areaShadowFilteringQuality) + if (inputData.shaderKeywordSet.IsEnabled(areaShadowVariant.Value)) + return true; + } + } + else + { + // Strip all the area light shadow filtering variants when they are disabled in the shader config. + foreach (var areaShadowVariant in m_ShadowKeywords.AreaShadowVariants) if (inputData.shaderKeywordSet.IsEnabled(areaShadowVariant.Value)) return true; - } } // Screen space shadow variant is exclusive, either we have a variant with dynamic if that support screen space shadow or not diff --git a/Packages/com.unity.render-pipelines.high-definition/Editor/HDAnalytics.cs b/Packages/com.unity.render-pipelines.high-definition/Editor/HDAnalytics.cs index f6bf65b8905..996a0e6e95b 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Editor/HDAnalytics.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Editor/HDAnalytics.cs @@ -57,7 +57,7 @@ static void SendUsage() var data = new UsageEventData() { build_target = activeBuildTarget.ToString(), - asset_guid = AssetDatabase.AssetPathToGUID(AssetDatabase.GetAssetPath(hdrpAsset.GetInstanceID())), + asset_guid = AssetDatabase.AssetPathToGUID(AssetDatabase.GetAssetPath(hdrpAsset.GetEntityId())), changed_settings = hdrpAsset.currentPlatformRenderPipelineSettings.ToNestedColumnWithDefault(defaults, true) }; Analytic analytic = new Analytic(data); diff --git a/Packages/com.unity.render-pipelines.high-definition/Editor/Lighting/HDLightEditor.cs b/Packages/com.unity.render-pipelines.high-definition/Editor/Lighting/HDLightEditor.cs index ad5e42b9a7d..5e1f6f62032 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Editor/Lighting/HDLightEditor.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Editor/Lighting/HDLightEditor.cs @@ -144,17 +144,7 @@ protected override void OnSceneGUI() } else if (lightType == LightType.Disc) { - EditorGUI.BeginChangeCheck(); - base.OnSceneGUI(); - - if (EditorGUI.EndChangeCheck()) - { - // Necessary since the built-in disk light logic doesn't update the HDRP property when - // changing the radius through the disk's gizmo in the scene view. - m_SerializedHDLight.shapeWidth.floatValue = targetAdditionalData.legacyLight.areaSize.x; - m_SerializedHDLight.Apply(); - } } else HDLightUI.DrawHandles(targetAdditionalData, this); diff --git a/Packages/com.unity.render-pipelines.high-definition/Editor/Lighting/HDLightUI.Handles.cs b/Packages/com.unity.render-pipelines.high-definition/Editor/Lighting/HDLightUI.Handles.cs index fcf284d8e69..e0725a5a986 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Editor/Lighting/HDLightUI.Handles.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Editor/Lighting/HDLightUI.Handles.cs @@ -558,34 +558,34 @@ public static void DrawHandles(HDAdditionalLightData additionalData, Editor owne shadowNearPlane = light.shadows != LightShadows.None ? shadowNearPlane : 0.0f; using (new Handles.DrawingScope(Matrix4x4.TRS(light.transform.position, light.transform.rotation, Vector3.one))) { - Vector3 outterAngleInnerAngleRange = new Vector3(light.spotAngle, light.spotAngle * additionalData.innerSpotPercent01, light.range); + Vector3 outerAngleInnerAngleRange = new Vector3(light.spotAngle, light.innerSpotAngle, light.range); Handles.zTest = UnityEngine.Rendering.CompareFunction.Greater; Handles.color = wireframeColorBehind; - DrawSpotlightWireframe(outterAngleInnerAngleRange, shadowNearPlane); + DrawSpotlightWireframe(outerAngleInnerAngleRange, shadowNearPlane); Handles.zTest = UnityEngine.Rendering.CompareFunction.LessEqual; Handles.color = wireframeColorAbove; - DrawSpotlightWireframe(outterAngleInnerAngleRange, shadowNearPlane); + DrawSpotlightWireframe(outerAngleInnerAngleRange, shadowNearPlane); EditorGUI.BeginChangeCheck(); Handles.zTest = UnityEngine.Rendering.CompareFunction.Greater; Handles.color = handleColorBehind; - outterAngleInnerAngleRange = DrawSpotlightHandle(outterAngleInnerAngleRange); + outerAngleInnerAngleRange = DrawSpotlightHandle(outerAngleInnerAngleRange); Handles.zTest = UnityEngine.Rendering.CompareFunction.LessEqual; Handles.color = handleColorAbove; - outterAngleInnerAngleRange = DrawSpotlightHandle(outterAngleInnerAngleRange); + outerAngleInnerAngleRange = DrawSpotlightHandle(outerAngleInnerAngleRange); if (EditorGUI.EndChangeCheck()) { Undo.RecordObjects(new UnityEngine.Object[] { light, additionalData }, "Adjust Cone Spot Light"); - outterAngleInnerAngleRange.x = Mathf.Min(179.0f, Mathf.Max(1.0f, outterAngleInnerAngleRange.x)); - additionalData.innerSpotPercent = 100f * outterAngleInnerAngleRange.y / outterAngleInnerAngleRange.x; + outerAngleInnerAngleRange.x = Mathf.Min(179.0f, Mathf.Max(1.0f, outerAngleInnerAngleRange.x)); // If light unit is currently displayed in lumen and 'reflector' is on, recalculate candela so lumen value remains constant - if (light.spotAngle != outterAngleInnerAngleRange.x && light.enableSpotReflector && light.lightUnit == LightUnit.Lumen) + if (light.spotAngle != outerAngleInnerAngleRange.x && light.enableSpotReflector && light.lightUnit == LightUnit.Lumen) { float oldLumen = LightUnitUtils.ConvertIntensity(light, light.intensity, LightUnit.Candela, LightUnit.Lumen); - float newSolidAngle = LightUnitUtils.GetSolidAngleFromSpotLight(Mathf.Max(1.0f, outterAngleInnerAngleRange.x)); + float newSolidAngle = LightUnitUtils.GetSolidAngleFromSpotLight(Mathf.Max(1.0f, outerAngleInnerAngleRange.x)); light.intensity = LightUnitUtils.LumenToCandela(oldLumen, newSolidAngle); } - light.spotAngle = outterAngleInnerAngleRange.x; - light.range = outterAngleInnerAngleRange.z; + light.spotAngle = outerAngleInnerAngleRange.x; + light.innerSpotAngle = Mathf.Max(outerAngleInnerAngleRange.y, HDAdditionalLightData.k_MinSpotAngle); + light.range = outerAngleInnerAngleRange.z; } // Handles.color reseted at end of scope @@ -598,7 +598,9 @@ public static void DrawHandles(HDAdditionalLightData additionalData, Editor owne shadowNearPlane = light.shadows != LightShadows.None ? shadowNearPlane : 0.0f; using (new Handles.DrawingScope(Matrix4x4.TRS(light.transform.position, light.transform.rotation, Vector3.one))) { - Vector4 aspectFovMaxRangeMinRange = new Vector4(additionalData.aspectRatio, light.spotAngle, light.range); + float aspectRatio = Mathf.Tan(light.innerSpotAngle * Mathf.PI / 360f) / + Mathf.Tan(light.spotAngle * Mathf.PI / 360f); + Vector4 aspectFovMaxRangeMinRange = new Vector4(aspectRatio, light.spotAngle, light.range); Handles.zTest = UnityEngine.Rendering.CompareFunction.Greater; Handles.color = wireframeColorBehind; DrawSpherePortionWireframe(aspectFovMaxRangeMinRange, shadowNearPlane); @@ -616,15 +618,17 @@ public static void DrawHandles(HDAdditionalLightData additionalData, Editor owne { Undo.RecordObjects(new UnityEngine.Object[] { light, additionalData }, "Adjust Pyramid Spot Light"); - if ((light.spotAngle != aspectFovMaxRangeMinRange.y || additionalData.aspectRatio != aspectFovMaxRangeMinRange.x) + if ((light.spotAngle != aspectFovMaxRangeMinRange.y || aspectRatio != aspectFovMaxRangeMinRange.x) && light.enableSpotReflector && light.lightUnit == LightUnit.Lumen) { float oldLumen = LightUnitUtils.ConvertIntensity(light, light.intensity, LightUnit.Candela, LightUnit.Lumen); float newSolidAngle = LightUnitUtils.GetSolidAngleFromPyramidLight(aspectFovMaxRangeMinRange.y, aspectFovMaxRangeMinRange.x); light.intensity = LightUnitUtils.LumenToCandela(oldLumen, newSolidAngle); } - additionalData.aspectRatio = aspectFovMaxRangeMinRange.x; + + float newAspectRatio = aspectFovMaxRangeMinRange.x; light.spotAngle = aspectFovMaxRangeMinRange.y; + light.innerSpotAngle = 360f / Mathf.PI * Mathf.Atan(newAspectRatio * Mathf.Tan(light.spotAngle * Mathf.PI / 360f)); light.range = aspectFovMaxRangeMinRange.z; } @@ -638,7 +642,7 @@ public static void DrawHandles(HDAdditionalLightData additionalData, Editor owne shadowNearPlane = light.shadows != LightShadows.None ? shadowNearPlane : 0.0f; using (new Handles.DrawingScope(Matrix4x4.TRS(light.transform.position, light.transform.rotation, Vector3.one))) { - Vector4 widthHeightMaxRangeMinRange = new Vector4(additionalData.shapeWidth, additionalData.shapeHeight, light.range); + Vector4 widthHeightMaxRangeMinRange = new Vector4(light.areaSize.x, light.areaSize.y, light.range); Handles.zTest = UnityEngine.Rendering.CompareFunction.Greater; Handles.color = wireframeColorBehind; DrawOrthoFrustumWireframe(widthHeightMaxRangeMinRange, shadowNearPlane); @@ -655,8 +659,7 @@ public static void DrawHandles(HDAdditionalLightData additionalData, Editor owne if (EditorGUI.EndChangeCheck()) { Undo.RecordObjects(new UnityEngine.Object[] { light, additionalData }, "Adjust Box Spot Light"); - additionalData.shapeWidth = widthHeightMaxRangeMinRange.x; - additionalData.shapeHeight = widthHeightMaxRangeMinRange.y; + light.areaSize = new Vector2(widthHeightMaxRangeMinRange.x, widthHeightMaxRangeMinRange.y); light.range = widthHeightMaxRangeMinRange.z; } @@ -670,11 +673,11 @@ public static void DrawHandles(HDAdditionalLightData additionalData, Editor owne bool withYAxis = light.type == LightType.Rectangle; using (new Handles.DrawingScope(Matrix4x4.TRS(light.transform.position, light.transform.rotation, Vector3.one))) { - Vector2 widthHeight = new Vector4(additionalData.shapeWidth, withYAxis ? additionalData.shapeHeight : 0f); + Vector2 widthHeight = new Vector4(light.areaSize.x, withYAxis ? light.areaSize.y : 0f); float range = light.range; - float aspect = additionalData.shapeWidth / additionalData.shapeHeight; + float aspect = light.areaSize.x / light.areaSize.y; float angle = additionalData.areaLightShadowCone; - float offset = -Mathf.Min(additionalData.shapeWidth, additionalData.shapeHeight) * 0.5f / Mathf.Tan(angle * 0.5f * Mathf.Deg2Rad); + float offset = -Mathf.Min(light.areaSize.x, light.areaSize.y) * 0.5f / Mathf.Tan(angle * 0.5f * Mathf.Deg2Rad); Vector4 aspectFovMaxRangeMinRange = new Vector4(aspect, angle, range - offset); Matrix4x4 shadowFrustumMatrix = Matrix4x4.TRS(light.transform.position + light.transform.forward * offset, light.transform.rotation, Vector3.one); float nearPlane = additionalData.shadowNearPlane - offset; @@ -716,8 +719,8 @@ public static void DrawHandles(HDAdditionalLightData additionalData, Editor owne if (EditorGUI.EndChangeCheck()) { Undo.RecordObjects(new UnityEngine.Object[] { light, additionalData }, withYAxis ? "Adjust Area Rectangle Light" : "Adjust Area Tube Light"); - float oldWidth = additionalData.shapeWidth; - float oldHeight = additionalData.shapeHeight; + float oldWidth = light.areaSize.x; + float oldHeight = light.areaSize.y; if (withYAxis) { if (light.lightUnit == LightUnit.Lumen) @@ -728,7 +731,7 @@ public static void DrawHandles(HDAdditionalLightData additionalData, Editor owne float newArea = LightUnitUtils.GetAreaFromRectangleLight(widthHeight); light.intensity = LightUnitUtils.LumenToNits(oldLumen, newArea); } - additionalData.shapeHeight = widthHeight.y; + light.areaSize = new Vector2(light.areaSize.x, widthHeight.y); } else if (light.lightUnit == LightUnit.Lumen) { @@ -738,7 +741,7 @@ public static void DrawHandles(HDAdditionalLightData additionalData, Editor owne float newArea = LightUnitUtils.GetAreaFromTubeLight(widthHeight.x); light.intensity = LightUnitUtils.LumenToNits(oldLumen, newArea); } - additionalData.shapeWidth = widthHeight.x; + light.areaSize = new Vector2(widthHeight.x, light.areaSize.y); light.range = range; } @@ -789,8 +792,8 @@ static void DrawGizmoForHDAdditionalLightData(HDAdditionalLightData src, GizmoTy float depth = src.barnDoorLength * Mathf.Cos(angle); // Evaluate the half dimensions of the rectangular area light - float halfWidth = src.shapeWidth * 0.5f; - float halfHeight = src.shapeHeight * 0.5f; + float halfWidth = src.legacyLight.areaSize.x * 0.5f; + float halfHeight = src.legacyLight.areaSize.y * 0.5f; // Evaluate the dimensions of the extended area light float extendedWidth = Mathf.Tan(angle) * depth + halfWidth; diff --git a/Packages/com.unity.render-pipelines.high-definition/Editor/Lighting/HDLightUI.cs b/Packages/com.unity.render-pipelines.high-definition/Editor/Lighting/HDLightUI.cs index 4b9b62af995..edbe2ae255a 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Editor/Lighting/HDLightUI.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Editor/Lighting/HDLightUI.cs @@ -273,8 +273,6 @@ static void DrawGeneralContent(SerializedHDLight serialized, Editor owner, bool break; case LightArchetype.Area: serialized.settings.lightType.SetEnumValue(LightType.Rectangle); - serialized.shapeWidth.floatValue = Mathf.Max(serialized.shapeWidth.floatValue, HDAdditionalLightData.k_MinLightSize); - serialized.shapeHeight.floatValue = Mathf.Max(serialized.shapeHeight.floatValue, HDAdditionalLightData.k_MinLightSize); break; default: throw new ArgumentOutOfRangeException(); @@ -425,8 +423,8 @@ static void DrawShapeContent(SerializedHDLight serialized, Editor owner) else if (lightType == LightType.Box) { // Box directional light. - EditorGUILayout.PropertyField(serialized.shapeWidth, s_Styles.shapeWidthBox); - EditorGUILayout.PropertyField(serialized.shapeHeight, s_Styles.shapeHeightBox); + EditorGUILayout.PropertyField(serialized.settings.areaSizeX, s_Styles.shapeWidthBox); + EditorGUILayout.PropertyField(serialized.settings.areaSizeY, s_Styles.shapeHeightBox); } else if (lightType == LightType.Spot) { @@ -443,7 +441,7 @@ static void DrawShapeContent(SerializedHDLight serialized, Editor owner) float spacing = EditorGUIUtility.pixelsPerPoint * 2f; float max = oldSpotAngle; - float min = (serialized.spotInnerPercent.floatValue / 100f) * max; + float min = serialized.settings.innerSpotAngle.floatValue; Rect position = EditorGUILayout.GetControlRect(); @@ -468,7 +466,7 @@ static void DrawShapeContent(SerializedHDLight serialized, Editor owner) { serialized.customSpotLightShadowCone.floatValue = Math.Min(serialized.customSpotLightShadowCone.floatValue, serialized.settings.spotAngle.floatValue); min = Mathf.Clamp(min, HDAdditionalLightData.k_MinSpotAngle, max); - serialized.spotInnerPercent.floatValue = min / max * 100f; + serialized.settings.innerSpotAngle.floatValue = min; } EditorGUI.BeginChangeCheck(); @@ -476,7 +474,7 @@ static void DrawShapeContent(SerializedHDLight serialized, Editor owner) if (EditorGUI.EndChangeCheck()) { min = Mathf.Clamp(min, HDAdditionalLightData.k_MinSpotAngle, max); - serialized.spotInnerPercent.floatValue = min / max * 100f; + serialized.settings.innerSpotAngle.floatValue = min; serialized.settings.spotAngle.floatValue = max; serialized.settings.bakedShadowRadiusProp.floatValue = serialized.shapeRadius.floatValue; needsReflectedIntensityRecalc = (max != oldSpotAngle); @@ -517,19 +515,28 @@ static void DrawShapeContent(SerializedHDLight serialized, Editor owner) bool isReflectorRelevant = serialized.settings.enableSpotReflector.boolValue && serialized.settings.lightUnit.GetEnumValue() == LightUnit.Lumen; bool needsReflectedIntensityRecalc = false; float oldSpotAngle = serialized.settings.spotAngle.floatValue; - float oldAspectRatio = serialized.aspectRatio.floatValue; + float oldAspectRatio = serialized.settings.areaSizeX.floatValue; EditorGUI.BeginChangeCheck(); serialized.settings.DrawSpotAngle(); if (EditorGUI.EndChangeCheck()) { serialized.customSpotLightShadowCone.floatValue = Math.Min(serialized.customSpotLightShadowCone.floatValue, serialized.settings.spotAngle.floatValue); needsReflectedIntensityRecalc = true; + // Change the innerSpotAngle to keep the same aspect ratio. + float aspect = + Mathf.Tan(serialized.settings.innerSpotAngle.floatValue * Mathf.PI / 360f) + / Mathf.Tan(oldSpotAngle * Mathf.PI / 360f); + float innerAngle = 360f / Mathf.PI * + Mathf.Atan(aspect * Mathf.Tan(serialized.settings.spotAngle.floatValue * Mathf.PI / 360f)); + serialized.settings.innerSpotAngle.floatValue = innerAngle; } EditorGUI.BeginChangeCheck(); - EditorGUILayout.Slider(serialized.aspectRatio, HDAdditionalLightData.k_MinAspectRatio, HDAdditionalLightData.k_MaxAspectRatio, s_Styles.aspectRatioPyramid); + float aspectRatio = Mathf.Tan(serialized.settings.innerSpotAngle.floatValue * Mathf.PI / 360f) / Mathf.Tan(serialized.settings.spotAngle.floatValue * Mathf.PI / 360f); + float newAspectRatio = EditorGUILayout.Slider(s_Styles.aspectRatioPyramid, aspectRatio, 0.05f, 20f); if (EditorGUI.EndChangeCheck()) { - serialized.settings.areaSizeX.floatValue = serialized.aspectRatio.floatValue; + float newInnerSpotAngle = 360f / Mathf.PI * Mathf.Atan(newAspectRatio * Mathf.Tan(serialized.settings.spotAngle.floatValue * Mathf.PI / 360f)); + serialized.settings.innerSpotAngle.floatValue = newInnerSpotAngle; needsReflectedIntensityRecalc = true; } @@ -539,7 +546,7 @@ static void DrawShapeContent(SerializedHDLight serialized, Editor owner) // recalculate candela so lumen value remains constant float oldSolidAngle = LightUnitUtils.GetSolidAngleFromPyramidLight(oldSpotAngle, oldAspectRatio); float oldLumen = LightUnitUtils.CandelaToLumen(serialized.settings.intensity.floatValue, oldSolidAngle); - float newSolidAngle = LightUnitUtils.GetSolidAngleFromPyramidLight(serialized.settings.spotAngle.floatValue, serialized.aspectRatio.floatValue); + float newSolidAngle = LightUnitUtils.GetSolidAngleFromPyramidLight(serialized.settings.spotAngle.floatValue, serialized.settings.areaSizeX.floatValue); float newCandela = LightUnitUtils.LumenToCandela(oldLumen, newSolidAngle); serialized.settings.intensity.floatValue = newCandela; } @@ -603,12 +610,12 @@ static void DrawShapeContent(SerializedHDLight serialized, Editor owner) if (lightType == LightType.Rectangle) { EditorGUI.BeginChangeCheck(); - EditorGUILayout.PropertyField(serialized.shapeWidth, s_Styles.shapeWidthRect); - EditorGUILayout.PropertyField(serialized.shapeHeight, s_Styles.shapeHeightRect); + EditorGUILayout.PropertyField(serialized.settings.areaSizeX, s_Styles.shapeWidthRect); + EditorGUILayout.PropertyField(serialized.settings.areaSizeY, s_Styles.shapeHeightRect); if (EditorGUI.EndChangeCheck()) { - serialized.shapeWidth.floatValue = Mathf.Max(HDAdditionalLightData.k_MinAreaWidth, serialized.shapeWidth.floatValue); - serialized.shapeHeight.floatValue = Mathf.Max(HDAdditionalLightData.k_MinAreaWidth, serialized.shapeHeight.floatValue); + serialized.settings.areaSizeX.floatValue = Mathf.Max(HDAdditionalLightData.k_MinAreaWidth, serialized.settings.areaSizeX.floatValue); + serialized.settings.areaSizeY.floatValue = Mathf.Max(HDAdditionalLightData.k_MinAreaWidth, serialized.settings.areaSizeY.floatValue); // If light intensity is currently displayed as Lumen, // recalculate native (Nits) intensity so displayed Lumen value remains constant if (serialized.settings.lightUnit.GetEnumValue() == LightUnit.Lumen) @@ -617,14 +624,12 @@ static void DrawShapeContent(SerializedHDLight serialized, Editor owner) float oldArea = LightUnitUtils.GetAreaFromRectangleLight(oldSize); float oldLumen = LightUnitUtils.NitsToLumen(serialized.settings.intensity.floatValue, oldArea); - Vector2 newSize = new Vector2(serialized.shapeWidth.floatValue, serialized.shapeHeight.floatValue); + Vector2 newSize = new Vector2(serialized.settings.areaSizeX.floatValue, serialized.settings.areaSizeY.floatValue); float newArea = LightUnitUtils.GetAreaFromRectangleLight(newSize); float newNits = LightUnitUtils.LumenToNits(oldLumen, newArea); serialized.settings.intensity.floatValue = newNits; } - serialized.settings.areaSizeX.floatValue = serialized.shapeWidth.floatValue; - serialized.settings.areaSizeY.floatValue = serialized.shapeHeight.floatValue; } if (ShaderConfig.s_BarnDoor == 1) { @@ -666,10 +671,10 @@ static void DrawShapeContent(SerializedHDLight serialized, Editor owner) else if (lightType == LightType.Tube) { EditorGUI.BeginChangeCheck(); - EditorGUILayout.PropertyField(serialized.shapeWidth, s_Styles.shapeWidthTube); + EditorGUILayout.PropertyField(serialized.settings.areaSizeX, s_Styles.shapeWidthTube); if (EditorGUI.EndChangeCheck()) { - serialized.shapeWidth.floatValue = Mathf.Max(HDAdditionalLightData.k_MinLightSize, serialized.shapeWidth.floatValue); + serialized.settings.areaSizeX.floatValue = Mathf.Max(HDAdditionalLightData.k_MinLightSize, serialized.settings.areaSizeX.floatValue); // If light intensity is currently displayed as Lumen, // recalculate native (Nits) intensity so displayed Lumen value remains constant if (serialized.settings.lightUnit.GetEnumValue() == LightUnit.Lumen) @@ -678,14 +683,14 @@ static void DrawShapeContent(SerializedHDLight serialized, Editor owner) float oldArea = LightUnitUtils.GetAreaFromTubeLight(oldLineWidth); float oldLumen = LightUnitUtils.NitsToLumen(serialized.settings.intensity.floatValue, oldArea); - float newLineWidth = serialized.shapeWidth.floatValue; + float newLineWidth = serialized.settings.areaSizeX.floatValue; float newArea = LightUnitUtils.GetAreaFromTubeLight(newLineWidth); float newNits = LightUnitUtils.LumenToNits(oldLumen, newArea); serialized.settings.intensity.floatValue = newNits; } // Fake line with a small rectangle in vanilla unity for GI - serialized.settings.areaSizeX.floatValue = serialized.shapeWidth.floatValue; + serialized.settings.areaSizeX.floatValue = serialized.settings.areaSizeX.floatValue; serialized.settings.areaSizeY.floatValue = HDAdditionalLightData.k_MinLightSize; } // If realtime GI is enabled and the shape is unsupported or not implemented, show a warning. @@ -875,12 +880,11 @@ static void DrawEmissionContent(SerializedHDLight serialized, Editor owner) { EditorGUI.indentLevel++; EditorGUI.BeginChangeCheck(); - var size = new Vector2(serialized.shapeWidth.floatValue, serialized.shapeHeight.floatValue); + var size = serialized.settings.cookieSize2D.vector2Value; size = EditorGUILayout.Vector2Field(s_Styles.cookieSize, size); if (EditorGUI.EndChangeCheck()) { - serialized.shapeWidth.floatValue = size.x; - serialized.shapeHeight.floatValue = size.y; + serialized.settings.cookieSize2D.vector2Value = size; } EditorGUI.indentLevel--; } diff --git a/Packages/com.unity.render-pipelines.high-definition/Editor/Lighting/Reflection/HDBakedReflectionSystem.cs b/Packages/com.unity.render-pipelines.high-definition/Editor/Lighting/Reflection/HDBakedReflectionSystem.cs index 1d303f16d1c..73a9ebcdd88 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Editor/Lighting/Reflection/HDBakedReflectionSystem.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Editor/Lighting/Reflection/HDBakedReflectionSystem.cs @@ -63,7 +63,6 @@ public override bool BakeAllReflectionProbes() { if (!AreAllOpenedSceneSaved()) return false; - DeleteCubemapAssets(true); var bakedProbes = HDProbeSystem.bakedProbes; @@ -789,7 +788,7 @@ internal static void ImportAssetAt(HDProbe probe, string file) importer.SaveAndReimport(); } - static bool AreAllOpenedSceneSaved() + public static bool AreAllOpenedSceneSaved() { for (int i = 0, c = SceneManager.sceneCount; i < c; ++i) { diff --git a/Packages/com.unity.render-pipelines.high-definition/Editor/Lighting/Reflection/HDProbeUI.Drawers.cs b/Packages/com.unity.render-pipelines.high-definition/Editor/Lighting/Reflection/HDProbeUI.Drawers.cs index a5d4e5e42b7..50832ecd001 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Editor/Lighting/Reflection/HDProbeUI.Drawers.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Editor/Lighting/Reflection/HDProbeUI.Drawers.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using System.Linq; using UnityEditorInternal; using System.Reflection; @@ -7,23 +8,12 @@ using UnityEngine; using UnityEngine.Rendering.HighDefinition; using UnityEngine.Rendering; +using Object = UnityEngine.Object; namespace UnityEditor.Rendering.HighDefinition { static partial class HDProbeUI { - [Flags] - internal enum ToolBar - { - None = 0, - InfluenceShape = 1 << 0, - Blend = 1 << 1, - NormalBlend = 1 << 2, - CapturePosition = 1 << 3, - MirrorPosition = 1 << 4, - MirrorRotation = 1 << 5 - } - internal interface IProbeUISettingsProvider { ProbeSettingsOverride displayedCaptureSettings { get; } @@ -269,9 +259,16 @@ public static void DrawBakeButton(SerializedHDProbe serialized, Editor owner) }, GUILayout.ExpandWidth(true))) { - HDBakedReflectionSystem.BakeProbes(serialized.serializedObject.targetObjects + if (HDBakedReflectionSystem.AreAllOpenedSceneSaved()) + { + HDBakedReflectionSystem.BakeProbes(serialized.serializedObject.targetObjects .OfType().ToArray()); - GUIUtility.ExitGUI(); + GUIUtility.ExitGUI(); + } + else + { + Debug.LogError($"Opened scenes are not saved. Please save before baking."); + } } GUI.enabled = true; @@ -438,8 +435,8 @@ static internal CubeReflectionResolution GetHighestCubemapResolutionSetting(Rend } } - [EditorTool(Description, typeof(PlanarReflectionProbe), null, (int)Mode, null)] - internal class PlanarReflectionProbeModifyBaseShapeTool : ReflectionProbeTool + [EditorTool(Description, typeof(PlanarReflectionProbe), toolPriority = (int)Mode)] + internal class PlanarReflectionProbeModifyBaseShapeTool : GenericEditorTool { private const string Description = "Modify the base shape."; private const EditMode.SceneViewEditMode Mode = HDProbeUI.EditBaseShape; @@ -448,8 +445,8 @@ internal class PlanarReflectionProbeModifyBaseShapeTool : ReflectionProbeTool public PlanarReflectionProbeModifyBaseShapeTool() : base(Description, Mode, IconName) { } } - [EditorTool(Description, typeof(PlanarReflectionProbe), null, (int)Mode, null)] - internal class PlanarReflectionProbeModifyMirrorPositionTool : ReflectionProbeTool + [EditorTool(Description, typeof(PlanarReflectionProbe), toolPriority = (int)Mode)] + internal class PlanarReflectionProbeModifyMirrorPositionTool : GenericEditorTool { private const string Description = "Change the mirror position."; private const EditMode.SceneViewEditMode Mode = HDProbeUI.EditMirrorPosition; @@ -458,8 +455,8 @@ internal class PlanarReflectionProbeModifyMirrorPositionTool : ReflectionProbeTo public PlanarReflectionProbeModifyMirrorPositionTool() : base(Description, Mode, IconName) { } } - [EditorTool(Description, typeof(PlanarReflectionProbe), null, (int)Mode, null)] - internal class PlanarReflectionProbeModifyMirrorRotationTool : ReflectionProbeTool + [EditorTool(Description, typeof(PlanarReflectionProbe), toolPriority = (int)Mode)] + internal class PlanarReflectionProbeModifyMirrorRotationTool : GenericEditorTool { private const string Description = "Change the mirror rotation."; private const EditMode.SceneViewEditMode Mode = HDProbeUI.EditMirrorRotation; @@ -468,8 +465,8 @@ internal class PlanarReflectionProbeModifyMirrorRotationTool : ReflectionProbeTo public PlanarReflectionProbeModifyMirrorRotationTool() : base(Description, Mode, IconName) { } } - [EditorTool(Description, typeof(PlanarReflectionProbe), null, (int)Mode, null)] - internal class PlanarReflectionProbeModifyEditInfluenceShapeTool : ReflectionProbeTool + [EditorTool(Description, typeof(PlanarReflectionProbe), toolPriority = (int)Mode)] + internal class PlanarReflectionProbeModifyEditInfluenceShapeTool : GenericEditorTool { private const string Description = "Modify the influence volume blend distance."; private const EditMode.SceneViewEditMode Mode = HDProbeUI.EditInfluenceShape; @@ -478,8 +475,8 @@ internal class PlanarReflectionProbeModifyEditInfluenceShapeTool : ReflectionPro public PlanarReflectionProbeModifyEditInfluenceShapeTool() : base(Description, Mode, IconName) { } } - [EditorTool(Description, typeof(ReflectionProbe), null, (int)Mode, null)] - internal class ReflectionProbeModifyBaseShapeTool : ReflectionProbeTool + [EditorTool(Description, typeof(ReflectionProbe), toolPriority = (int)Mode)] + internal class ReflectionProbeModifyBaseShapeTool : GenericEditorTool { private const string Description = "Modify the base shape."; private const EditMode.SceneViewEditMode Mode = HDProbeUI.EditBaseShape; @@ -488,8 +485,8 @@ internal class ReflectionProbeModifyBaseShapeTool : ReflectionProbeTool public ReflectionProbeModifyBaseShapeTool() : base(Description, Mode, IconName) {} } - [EditorTool(Description, typeof(ReflectionProbe), null, (int)Mode, null)] - internal class ReflectionProbeModifyEditInfluenceShapeTool : ReflectionProbeTool + [EditorTool(Description, typeof(ReflectionProbe), toolPriority = (int)Mode)] + internal class ReflectionProbeModifyEditInfluenceShapeTool : GenericEditorTool { private const string Description = "Modify the influence volume blend distance."; private const EditMode.SceneViewEditMode Mode = HDProbeUI.EditInfluenceShape; @@ -498,8 +495,8 @@ internal class ReflectionProbeModifyEditInfluenceShapeTool : ReflectionProbeTool public ReflectionProbeModifyEditInfluenceShapeTool() : base(Description, Mode, IconName) { } } - [EditorTool(Description, typeof(ReflectionProbe), null, (int)Mode, null)] - internal class ReflectionProbeModifyInfluenceNormalShapeTool : ReflectionProbeTool + [EditorTool(Description, typeof(ReflectionProbe), toolPriority = (int)Mode)] + internal class ReflectionProbeModifyInfluenceNormalShapeTool : GenericEditorTool { private const string Description = "Modify the influence volume normal blend distance."; private const EditMode.SceneViewEditMode Mode = HDProbeUI.EditInfluenceNormalShape; @@ -508,8 +505,8 @@ internal class ReflectionProbeModifyInfluenceNormalShapeTool : ReflectionProbeTo public ReflectionProbeModifyInfluenceNormalShapeTool() : base(Description, Mode, IconName) { } } - [EditorTool(Description, typeof(ReflectionProbe), null, (int)Mode, null)] - internal class ReflectionProbeModifyCapturePositionTool : ReflectionProbeTool + [EditorTool(Description, typeof(ReflectionProbe), toolPriority = (int)Mode)] + internal class ReflectionProbeModifyCapturePositionTool : GenericEditorTool { private const string Description = "Change the capture position."; private const EditMode.SceneViewEditMode Mode = HDProbeUI.EditCapturePosition; @@ -518,15 +515,14 @@ internal class ReflectionProbeModifyCapturePositionTool : ReflectionProbeTool protected ReflectionProbeModifyCapturePositionTool() : base(Description, Mode, IconName) { } } - internal class ReflectionProbeTool : EditorTool + internal class GenericEditorTool : EditorTool where T : Component { private readonly string _description; private readonly EditMode.SceneViewEditMode _mode; private readonly string _iconName; private GUIContent _iconContent; - private bool _wasDeactivated; - protected ReflectionProbeTool(string description, EditMode.SceneViewEditMode mode, string iconName) + protected GenericEditorTool(string description, EditMode.SceneViewEditMode mode, string iconName) { _description = description; _mode = mode; @@ -534,23 +530,32 @@ protected ReflectionProbeTool(string description, EditMode.SceneViewEditMode mod } public override GUIContent toolbarIcon => _iconContent; - public override void OnWillBeDeactivated() => _wasDeactivated = true; + public override void OnWillBeDeactivated() => EditMode.SetEditModeToNone(); public override void OnToolGUI(EditorWindow window) { - Bounds bounds = target switch - { - PlanarReflectionProbe planarProbe => planarProbe.bounds, - ReflectionProbe reflectionProbe => reflectionProbe.bounds, - _ => default - }; - if (bounds == default) + if (EditMode.editMode == _mode) return; - if (EditMode.editMode == _mode && !_wasDeactivated) + + List usefulTargets = new(); + foreach (Object thisTarget in targets) + if (thisTarget is T usefulTarget) + usefulTargets.Add(usefulTarget); + + if (usefulTargets.Count == 0) return; + Bounds bounds = GetBoundsOfTargets(usefulTargets); EditMode.ChangeEditMode(_mode, bounds); ToolManager.SetActiveTool(this); - _wasDeactivated = false; + } + + private static Bounds GetBoundsOfTargets(IEnumerable targets) + { + var bounds = new Bounds { min = Vector3.positiveInfinity, max = Vector3.negativeInfinity }; + foreach (T t in targets) + bounds.Encapsulate(t.transform.position); + + return bounds; } private void OnEnable() => _iconContent = EditorGUIUtility.TrIconContent(_iconName, _description); diff --git a/Packages/com.unity.render-pipelines.high-definition/Editor/Lighting/SerializedHDLight.cs b/Packages/com.unity.render-pipelines.high-definition/Editor/Lighting/SerializedHDLight.cs index 0f0f9093e39..2302d68f627 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Editor/Lighting/SerializedHDLight.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Editor/Lighting/SerializedHDLight.cs @@ -9,18 +9,14 @@ namespace UnityEditor.Rendering.HighDefinition internal class SerializedHDLight : ISerializedLight { // HDRP specific properties - public SerializedProperty spotInnerPercent; public SerializedProperty spotIESCutoffPercent; public SerializedProperty lightDimmer; public SerializedProperty fadeDistance; public SerializedProperty affectDiffuse; public SerializedProperty affectSpecular; public SerializedProperty nonLightmappedOnly; - public SerializedProperty shapeWidth; - public SerializedProperty shapeHeight; public SerializedProperty barnDoorAngle; public SerializedProperty barnDoorLength; - public SerializedProperty aspectRatio; public SerializedProperty shapeRadius; public SerializedProperty maxSmoothness; public SerializedProperty applyRangeAttenuation; @@ -122,7 +118,7 @@ internal class SerializedHDLight : ISerializedLight public SerializedProperty slopeBias; public SerializedProperty normalBias; - [Obsolete("This property has been deprecated. Use SerializedHDLight.settings.intensity instead.")] + [Obsolete("This property has been deprecated. Use SerializedHDLight.settings.intensity instead. #from(2023.3)")] public SerializedProperty intensity => settings.intensity; private GameObject[] emissiveMeshes; @@ -253,7 +249,6 @@ public SerializedHDLight(HDAdditionalLightData[] lightDatas, LightEditor.Setting using (var o = new PropertyFetcher(serializedObject)) { - spotInnerPercent = o.Find("m_InnerSpotPercent"); spotIESCutoffPercent = o.Find("m_SpotIESCutoffPercent"); lightDimmer = o.Find("m_LightDimmer"); volumetricDimmer = o.Find("m_VolumetricDimmer"); @@ -263,11 +258,8 @@ public SerializedHDLight(HDAdditionalLightData[] lightDatas, LightEditor.Setting affectDiffuse = o.Find("m_AffectDiffuse"); affectSpecular = o.Find("m_AffectSpecular"); nonLightmappedOnly = o.Find("m_NonLightmappedOnly"); - shapeWidth = o.Find("m_ShapeWidth"); - shapeHeight = o.Find("m_ShapeHeight"); barnDoorAngle = o.Find("m_BarnDoorAngle"); barnDoorLength = o.Find("m_BarnDoorLength"); - aspectRatio = o.Find("m_AspectRatio"); shapeRadius = o.Find("m_ShapeRadius"); maxSmoothness = o.Find("m_MaxSmoothness"); applyRangeAttenuation = o.Find("m_ApplyRangeAttenuation"); diff --git a/Packages/com.unity.render-pipelines.high-definition/Editor/Lighting/VolumetricLighting/LocalVolumetricFogEditor.cs b/Packages/com.unity.render-pipelines.high-definition/Editor/Lighting/VolumetricLighting/LocalVolumetricFogEditor.cs index b640ac13f40..698f569f57d 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Editor/Lighting/VolumetricLighting/LocalVolumetricFogEditor.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Editor/Lighting/VolumetricLighting/LocalVolumetricFogEditor.cs @@ -1,8 +1,9 @@ -using UnityEngine; -using UnityEngine.Rendering.HighDefinition; +using System.Collections; +using UnityEditor.EditorTools; using UnityEditorInternal; -using UnityEditor.Rendering; +using UnityEngine; using UnityEngine.Rendering; +using UnityEngine.Rendering.HighDefinition; namespace UnityEditor.Rendering.HighDefinition { @@ -263,4 +264,24 @@ void OnSceneGUI() } } } + + [EditorTool(Description, typeof(LocalVolumetricFog), toolPriority = (int)Mode)] + internal class LocalVolumetricFogModifyInfluenceVolumeTool : GenericEditorTool + { + private const string Description = "Modify the influence volume"; + private const EditMode.SceneViewEditMode Mode = LocalVolumetricFogEditor.k_EditBlend; + private const string IconName = "PreMatCube"; + + protected LocalVolumetricFogModifyInfluenceVolumeTool() : base(Description, Mode, IconName) { } + } + + [EditorTool(Description, typeof(LocalVolumetricFog), toolPriority = (int)Mode)] + internal class LocalVolumetricFogModifyReflectionProbeBoxTool : GenericEditorTool + { + private const string Description = "Modify the base shape"; + private const EditMode.SceneViewEditMode Mode = LocalVolumetricFogEditor.k_EditShape; + private const string IconName = "EditCollider"; + + protected LocalVolumetricFogModifyReflectionProbeBoxTool() : base(Description, Mode, IconName) { } + } } diff --git a/Packages/com.unity.render-pipelines.high-definition/Editor/Lighting/VolumetricLighting/LocalVolumetricFogUI.Drawer.cs b/Packages/com.unity.render-pipelines.high-definition/Editor/Lighting/VolumetricLighting/LocalVolumetricFogUI.Drawer.cs index 24298da733b..0a2d78c01ed 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Editor/Lighting/VolumetricLighting/LocalVolumetricFogUI.Drawer.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Editor/Lighting/VolumetricLighting/LocalVolumetricFogUI.Drawer.cs @@ -21,7 +21,6 @@ enum Expandable public static readonly CED.IDrawer Inspector = CED.Group( CED.Group( - Drawer_ToolBar, Drawer_PrimarySettings ), CED.space, @@ -38,24 +37,6 @@ enum Expandable )) ); - static void Drawer_ToolBar(SerializedLocalVolumetricFog serialized, Editor owner) - { - GUILayout.BeginHorizontal(); - GUILayout.FlexibleSpace(); - EditMode.DoInspectorToolbar(new[] { LocalVolumetricFogEditor.k_EditShape, LocalVolumetricFogEditor.k_EditBlend }, Styles.s_Toolbar_Contents, () => - { - var bounds = new Bounds(); - foreach (Component targetObject in owner.targets) - { - bounds.Encapsulate(targetObject.transform.position); - } - return bounds; - }, - owner); - GUILayout.FlexibleSpace(); - GUILayout.EndHorizontal(); - } - static void Drawer_PrimarySettings(SerializedLocalVolumetricFog serialized, Editor owner) { var mode = (LocalVolumetricFogMaskMode)serialized.maskMode.intValue; diff --git a/Packages/com.unity.render-pipelines.high-definition/Editor/Lighting/VolumetricLighting/LocalVolumetricFogUI.Skin.cs b/Packages/com.unity.render-pipelines.high-definition/Editor/Lighting/VolumetricLighting/LocalVolumetricFogUI.Skin.cs index fd6f24e3e67..6e0f623bdca 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Editor/Lighting/VolumetricLighting/LocalVolumetricFogUI.Skin.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Editor/Lighting/VolumetricLighting/LocalVolumetricFogUI.Skin.cs @@ -10,12 +10,6 @@ internal static class Styles public static readonly GUIContent k_DensityMaskTextureHeader = new GUIContent("Mask Texture"); public static readonly GUIContent k_MaskMaterialTextureHeader = new GUIContent("Mask Material"); - public static readonly GUIContent[] s_Toolbar_Contents = new GUIContent[] - { - EditorGUIUtility.IconContent("EditCollider", "|Modify the base shape. (SHIFT+1)"), - EditorGUIUtility.IconContent("PreMatCube", "|Modify the influence volume. (SHIFT+2)") - }; - public static readonly GUIContent s_ScaleMode = new GUIContent("Scale Mode", "Specifies the scaling mode to apply to the Local Volumetric Fog Volume."); public static readonly GUIContent s_Size = new GUIContent("Size", "Modify the size of this Local Volumetric Fog. This is independent of the Transform's Scale."); public static readonly GUIContent s_AlbedoLabel = new GUIContent("Single Scattering Albedo", "The color this fog scatters light to."); diff --git a/Packages/com.unity.render-pipelines.high-definition/Editor/Material/Decal/DecalProjectorEditor.Skin.cs b/Packages/com.unity.render-pipelines.high-definition/Editor/Material/Decal/DecalProjectorEditor.Skin.cs index b27334ce120..274ca09a893 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Editor/Material/Decal/DecalProjectorEditor.Skin.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Editor/Material/Decal/DecalProjectorEditor.Skin.cs @@ -4,9 +4,9 @@ namespace UnityEditor.Rendering.HighDefinition { partial class DecalProjectorEditor { - const string k_EditShapePreservingUVTooltip = "Modifies the projector boundaries and crops/tiles the decal to fill them."; - const string k_EditShapeWithoutPreservingUVTooltip = "Modifies the projector boundaries and stretches the decal to fill them."; - const string k_EditUVTooltip = "Modify the UV and the pivot position without moving the projection box. It can alter Transform."; + internal const string k_EditShapePreservingUVTooltip = "Modifies the projector boundaries and crops/tiles the decal to fill them."; + internal const string k_EditShapeWithoutPreservingUVTooltip = "Modifies the projector boundaries and stretches the decal to fill them."; + internal const string k_EditUVTooltip = "Modify the UV and the pivot position without moving the projection box. It can alter Transform."; static readonly GUIContent k_ScaleMode = EditorGUIUtility.TrTextContent("Scale Mode", "Specifies the scaling mode to apply to decals that use this Decal Projector."); static readonly GUIContent k_SizeContent = EditorGUIUtility.TrTextContent("Size", "Sets the size of the projector."); diff --git a/Packages/com.unity.render-pipelines.high-definition/Editor/Material/Decal/DecalProjectorEditor.cs b/Packages/com.unity.render-pipelines.high-definition/Editor/Material/Decal/DecalProjectorEditor.cs index 62f10b2168a..f4745d524ce 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Editor/Material/Decal/DecalProjectorEditor.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Editor/Material/Decal/DecalProjectorEditor.cs @@ -1,9 +1,11 @@ using System; using System.Collections.Generic; +using UnityEditor.EditorTools; using UnityEditor.IMGUI.Controls; using UnityEditor.Rendering.HighDefinition.ShaderGraph; using UnityEditor.ShaderGraph; using UnityEditor.ShortcutManagement; +using UnityEditorInternal; using UnityEngine; using UnityEngine.Rendering; using UnityEngine.Rendering.HighDefinition; @@ -168,33 +170,12 @@ static DisplacableRectHandles uvHandles static readonly BoxBoundsHandle s_AreaLightHandle = new BoxBoundsHandle { axes = PrimitiveBoundsHandle.Axes.X | PrimitiveBoundsHandle.Axes.Y }; - const SceneViewEditMode k_EditShapeWithoutPreservingUV = (SceneViewEditMode)90; - const SceneViewEditMode k_EditShapePreservingUV = (SceneViewEditMode)91; - const SceneViewEditMode k_EditUVAndPivot = (SceneViewEditMode)92; - static readonly SceneViewEditMode[] k_EditVolumeModes = new SceneViewEditMode[] - { - k_EditShapeWithoutPreservingUV, - k_EditShapePreservingUV - }; - static readonly SceneViewEditMode[] k_EditUVAndPivotModes = new SceneViewEditMode[] - { - k_EditUVAndPivot - }; + internal const SceneViewEditMode k_EditShapeWithoutPreservingUV = (SceneViewEditMode)90; + internal const SceneViewEditMode k_EditShapePreservingUV = (SceneViewEditMode)91; + internal const SceneViewEditMode k_EditUVAndPivot = (SceneViewEditMode)92; static Func s_DrawPivotHandle; - static GUIContent[] k_EditVolumeLabels = null; - static GUIContent[] editVolumeLabels => k_EditVolumeLabels ?? (k_EditVolumeLabels = new GUIContent[] - { - EditorGUIUtility.TrIconContent("d_ScaleTool", k_EditShapeWithoutPreservingUVTooltip), - EditorGUIUtility.TrIconContent("d_RectTool", k_EditShapePreservingUVTooltip) - }); - static GUIContent[] k_EditPivotLabels = null; - static GUIContent[] editPivotLabels => k_EditPivotLabels ?? (k_EditPivotLabels = new GUIContent[] - { - EditorGUIUtility.TrIconContent("d_MoveTool", k_EditUVTooltip) - }); - static List s_Instances = new List(); static DecalProjectorEditor FindEditorFromSelection() @@ -728,8 +709,6 @@ public override void OnInspectorGUI() { EditorGUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); - DoInspectorToolbar(k_EditVolumeModes, editVolumeLabels, GetBoundsGetter(target as DecalProjector), this); - DoInspectorToolbar(k_EditUVAndPivotModes, editPivotLabels, GetBoundsGetter(target as DecalProjector), this); GUILayout.FlexibleSpace(); EditorGUILayout.EndHorizontal(); @@ -1017,4 +996,34 @@ public override void Action(int instanceId, string pathName, string resourceFile } } } + + [EditorTool(Description, typeof(DecalProjector), toolPriority = (int)Mode)] + internal class DecalProjectorModifyScaleTool : GenericEditorTool + { + private const string Description = DecalProjectorEditor.k_EditShapeWithoutPreservingUVTooltip; + private const EditMode.SceneViewEditMode Mode = DecalProjectorEditor.k_EditShapeWithoutPreservingUV; + private const string IconName = "d_ScaleTool"; + + protected DecalProjectorModifyScaleTool() : base(Description, Mode, IconName) { } + } + + [EditorTool(Description, typeof(DecalProjector), toolPriority = (int)Mode)] + internal class DecalProjectorEditShapeTool : GenericEditorTool + { + private const string Description = DecalProjectorEditor.k_EditShapePreservingUVTooltip; + private const EditMode.SceneViewEditMode Mode = DecalProjectorEditor.k_EditShapePreservingUV; + private const string IconName = "d_RectTool"; + + protected DecalProjectorEditShapeTool() : base(Description, Mode, IconName) { } + } + + [EditorTool(Description, typeof(DecalProjector), toolPriority = (int)Mode)] + internal class DecalProjectorEditTool : GenericEditorTool + { + private const string Description = DecalProjectorEditor.k_EditUVTooltip; + private const EditMode.SceneViewEditMode Mode = DecalProjectorEditor.k_EditUVAndPivot; + private const string IconName = "d_MoveTool"; + + protected DecalProjectorEditTool() : base(Description, Mode, IconName) { } + } } diff --git a/Packages/com.unity.render-pipelines.high-definition/Editor/Material/LayeredLit/LayeredLitGUI.cs b/Packages/com.unity.render-pipelines.high-definition/Editor/Material/LayeredLit/LayeredLitGUI.cs index 34fa632435f..4ab7c960e43 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Editor/Material/LayeredLit/LayeredLitGUI.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Editor/Material/LayeredLit/LayeredLitGUI.cs @@ -47,7 +47,7 @@ protected override void OnMaterialGUI(MaterialEditor materialEditor, MaterialPro public static void SynchronizeAllLayers(Material material) { int layerCount = (int)material.GetFloat(kLayerCount); - AssetImporter materialImporter = AssetImporter.GetAtPath(AssetDatabase.GetAssetPath(material.GetInstanceID())); + AssetImporter materialImporter = AssetImporter.GetAtPath(AssetDatabase.GetAssetPath(material.GetEntityId())); Material[] layers = null; bool[] withUV = null; @@ -126,7 +126,7 @@ public static void SynchronizeLayerProperties(Material material, int layerIndex, // so we can keep reference during serialization public static void InitializeMaterialLayers(Material material, ref Material[] layers, ref bool[] withUV) { - AssetImporter materialImporter = AssetImporter.GetAtPath(AssetDatabase.GetAssetPath(material.GetInstanceID())); + AssetImporter materialImporter = AssetImporter.GetAtPath(AssetDatabase.GetAssetPath(material.GetEntityId())); InitializeMaterialLayers(materialImporter, ref layers, ref withUV); } @@ -167,7 +167,7 @@ public static void InitializeMaterialLayers(AssetImporter materialImporter, ref public static void SaveMaterialLayers(Material material, Material[] materialLayers, bool[] withUV) { - AssetImporter materialImporter = AssetImporter.GetAtPath(AssetDatabase.GetAssetPath(material.GetInstanceID())); + AssetImporter materialImporter = AssetImporter.GetAtPath(AssetDatabase.GetAssetPath(material.GetEntityId())); SerializeableGUIDs layersGUID; // We should guarantee that the size of the layers is equal to kMaxLayerCount as it is initialized before. @@ -176,7 +176,7 @@ public static void SaveMaterialLayers(Material material, Material[] materialLaye for (int i = 0; i < materialLayers.Length; ++i) { if (materialLayers[i] != null) - layersGUID.GUIDArray[i] = AssetDatabase.AssetPathToGUID(AssetDatabase.GetAssetPath(materialLayers[i].GetInstanceID())); + layersGUID.GUIDArray[i] = AssetDatabase.AssetPathToGUID(AssetDatabase.GetAssetPath(materialLayers[i].GetEntityId())); layersGUID.withUV[i] = withUV[i]; } diff --git a/Packages/com.unity.render-pipelines.high-definition/Editor/Material/Lit/ShaderGraph/HDLitData.cs b/Packages/com.unity.render-pipelines.high-definition/Editor/Material/Lit/ShaderGraph/HDLitData.cs index ec49f4646fd..33376385bed 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Editor/Material/Lit/ShaderGraph/HDLitData.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Editor/Material/Lit/ShaderGraph/HDLitData.cs @@ -6,7 +6,7 @@ namespace UnityEditor.Rendering.HighDefinition.ShaderGraph { class HDLitData : HDTargetData { - [Obsolete("Use MaterialTypeMask instead.")] + [Obsolete("Use MaterialTypeMask instead. #from(2023.1)")] public enum MaterialType { Standard, @@ -37,10 +37,10 @@ public bool rayTracing set => m_RayTracing = value; } - [SerializeField, Obsolete("use m_MaterialTypeMask instead.")] + [SerializeField, Obsolete("use m_MaterialTypeMask instead. #from(2023.1)")] MaterialType m_MaterialType; - [Obsolete("Use materialTypeMask instead.")] + [Obsolete("Use materialTypeMask instead. #from(2023.1)")] public MaterialType materialType { get => m_MaterialType; diff --git a/Packages/com.unity.render-pipelines.high-definition/Editor/Material/Nature/HDSpeedTree8MaterialUpgrader.cs b/Packages/com.unity.render-pipelines.high-definition/Editor/Material/Nature/HDSpeedTree8MaterialUpgrader.cs index cbb3d6c5aa6..4b027a4e2d3 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Editor/Material/Nature/HDSpeedTree8MaterialUpgrader.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Editor/Material/Nature/HDSpeedTree8MaterialUpgrader.cs @@ -59,7 +59,7 @@ public static bool IsHDSpeedTree8Material(Material mat) /// (Obsolete) HDRP may reset SpeedTree-specific keywords which should not be modified. This method restores these keywords to their original state. ///
/// SpeedTree 8 material. - [System.Obsolete("No longer needed from 21.2 onwards.")] + [System.Obsolete("No longer needed. #from(2021.2)")] public static void RestoreHDSpeedTree8Keywords(Material mat) { // Since ShaderGraph now supports toggling keywords via float properties, keywords get diff --git a/Packages/com.unity.render-pipelines.high-definition/Editor/Material/ShaderGraph/HDTarget.cs b/Packages/com.unity.render-pipelines.high-definition/Editor/Material/ShaderGraph/HDTarget.cs index ab0885d3523..f3b7cfc386b 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Editor/Material/ShaderGraph/HDTarget.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Editor/Material/ShaderGraph/HDTarget.cs @@ -64,7 +64,7 @@ sealed class HDTarget : Target, IHasMetadata, ILegacyTarget, IMaySupportVFX, IRe [SerializeField] JsonData m_ActiveSubTarget; - public SubTarget activeSubTarget + public override SubTarget activeSubTarget { get => m_ActiveSubTarget.value; set => m_ActiveSubTarget = value; diff --git a/Packages/com.unity.render-pipelines.high-definition/Editor/Material/ShaderGraph/Nodes/DiffusionProfileNode.cs b/Packages/com.unity.render-pipelines.high-definition/Editor/Material/ShaderGraph/Nodes/DiffusionProfileNode.cs index c8dca2d95c5..38174066472 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Editor/Material/ShaderGraph/Nodes/DiffusionProfileNode.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Editor/Material/ShaderGraph/Nodes/DiffusionProfileNode.cs @@ -26,7 +26,7 @@ public DiffusionProfileNode() public override string documentationURL => NodeUtils.GetDocumentationString("Diffusion-Profile"); - [SerializeField, Obsolete("Use m_DiffusionProfileAsset instead.")] + [SerializeField, Obsolete("Use m_DiffusionProfileAsset instead. #from(2021.1)")] UnityEditor.ShaderGraph.Drawing.Controls.PopupList m_DiffusionProfile = new UnityEditor.ShaderGraph.Drawing.Controls.PopupList(); // Helper class to serialize an asset inside a shader graph diff --git a/Packages/com.unity.render-pipelines.high-definition/Editor/Material/ShaderGraph/Slots/DiffusionProfileInputMaterialSlot.cs b/Packages/com.unity.render-pipelines.high-definition/Editor/Material/ShaderGraph/Slots/DiffusionProfileInputMaterialSlot.cs index 23019577fbd..5fde4b5b5e3 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Editor/Material/ShaderGraph/Slots/DiffusionProfileInputMaterialSlot.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Editor/Material/ShaderGraph/Slots/DiffusionProfileInputMaterialSlot.cs @@ -18,7 +18,7 @@ namespace UnityEditor.Rendering.HighDefinition [HasDependencies(typeof(DiffusionProfileInputMaterialSlot))] class DiffusionProfileInputMaterialSlot : Vector1MaterialSlot, IHasDependencies { - [SerializeField, Obsolete("Use m_DiffusionProfileAsset instead.")] + [SerializeField, Obsolete("Use m_DiffusionProfileAsset instead. #from(2021.1)")] PopupList m_DiffusionProfile; // Helper class to serialize an asset inside a shader graph diff --git a/Packages/com.unity.render-pipelines.high-definition/Editor/Material/ShaderGraph/TargetData/SystemData.cs b/Packages/com.unity.render-pipelines.high-definition/Editor/Material/ShaderGraph/TargetData/SystemData.cs index c0707bf918e..4518314476c 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Editor/Material/ShaderGraph/TargetData/SystemData.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Editor/Material/ShaderGraph/TargetData/SystemData.cs @@ -98,13 +98,13 @@ public bool excludeFromTUAndAA set => m_ExcludeFromTUAndAA = value; } - [SerializeField, Obsolete("Keep for migration")] + [SerializeField, Obsolete("Keep for migration. #from(2021.1)")] internal bool m_TransparentDepthPrepass; - [SerializeField, Obsolete("Keep for migration")] + [SerializeField, Obsolete("Keep for migration. #from(2021.1)")] internal bool m_TransparentDepthPostpass; - [SerializeField, Obsolete("Keep for migration")] + [SerializeField, Obsolete("Keep for migration. #from(2021.1)")] internal bool m_SupportLodCrossFade; [SerializeField] diff --git a/Packages/com.unity.render-pipelines.high-definition/Editor/Material/UIBlocks/HDShaderGUI.cs b/Packages/com.unity.render-pipelines.high-definition/Editor/Material/UIBlocks/HDShaderGUI.cs index bb47cc0eff8..0a425dca032 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Editor/Material/UIBlocks/HDShaderGUI.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Editor/Material/UIBlocks/HDShaderGUI.cs @@ -27,7 +27,7 @@ public abstract class HDShaderGUI : ShaderGUI /// Sets up the keywords and passes for the material you pass in as a parameter. ///
/// Target material. - [Obsolete("SetupMaterialKeywordsAndPass has been renamed ValidateMaterial", false)] + [Obsolete("SetupMaterialKeywordsAndPass has been renamed ValidateMaterial. #from(2022.1)")] protected virtual void SetupMaterialKeywordsAndPass(Material material) { ValidateMaterial(material); diff --git a/Packages/com.unity.render-pipelines.high-definition/Editor/Material/UIBlocks/LayerListUIBlock.cs b/Packages/com.unity.render-pipelines.high-definition/Editor/Material/UIBlocks/LayerListUIBlock.cs index df5c43c3d91..ef2ab5aadfe 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Editor/Material/UIBlocks/LayerListUIBlock.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Editor/Material/UIBlocks/LayerListUIBlock.cs @@ -47,7 +47,7 @@ public override void LoadMaterialProperties() // TODO: does not work with multi-selection Material material = materials[0]; - m_MaterialImporter = AssetImporter.GetAtPath(AssetDatabase.GetAssetPath(material.GetInstanceID())); + m_MaterialImporter = AssetImporter.GetAtPath(AssetDatabase.GetAssetPath(material.GetEntityId())); // Material importer can be null when the selected material doesn't exists as asset (Material saved inside the scene) if (m_MaterialImporter != null) diff --git a/Packages/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/BaseUI.cs b/Packages/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/BaseUI.cs index 707262a20b8..3282b915e98 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/BaseUI.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/BaseUI.cs @@ -4,7 +4,7 @@ namespace UnityEditor.Rendering.HighDefinition { - [Obsolete("Use IUpdateable and EditorPrefsBoolFlags")] + [Obsolete("Use IUpdateable and EditorPrefsBoolFlags. #from(2021.1)")] class BaseUI { protected AnimBool[] m_AnimBools = null; diff --git a/Packages/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/HDEditorUtils.cs b/Packages/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/HDEditorUtils.cs index 1bae934a01a..b7364b5bf0d 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/HDEditorUtils.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/HDEditorUtils.cs @@ -73,7 +73,7 @@ internal static T LoadAsset(string relativePath) where T : UnityEngine.Object /// True: managed to do the operation. /// False: unknown shader used in material /// - [Obsolete("Use HDShaderUtils.ResetMaterialKeywords instead")] + [Obsolete("Use HDShaderUtils.ResetMaterialKeywords instead. #from(2021.1)")] public static bool ResetMaterialKeywords(Material material) => HDShaderUtils.ResetMaterialKeywords(material); @@ -366,16 +366,25 @@ static void FrameSettingsHelpBox(Camera camera, FrameSettingsField field, FrameS bool disabledByDefault = !defaultValue && !cameraOverrideState; bool disabledByCameraOverride = cameraOverrideState && !cameraOverridenValue; - - var textBase = $"The FrameSetting required to render this effect in the {(camera.cameraType == CameraType.SceneView ? "Scene" : "Game")} view (by {camera.name}) "; + + // If the setting is enabled in the frame settings but is disabled in the HDRP Asset (cameraSanitizedValue), it means the feature is disabled and we should not display anything. + bool disabledbySanitized = (cameraOverrideState ? cameraOverridenValue : defaultValue) && !cameraSanitizedValue; + + var textBase = $"The Frame Setting required to render this effect in the {(camera.cameraType == CameraType.SceneView ? "Scene" : "Game")} view "; if (disabledByDefault) - GlobalSettingsHelpBox(textBase + "is disabled in the HDRP Global Settings.", MessageType.Warning, field, attribute.displayedName); + GlobalSettingsHelpBox(textBase + "is disabled in the HDRP Default Frame Settings.", MessageType.Warning, field, attribute.displayedName); else if (disabledByCameraOverride) - CoreEditorUtils.DrawFixMeBox(textBase + $"is disabled on the Camera.", MessageType.Warning, "Open", () => EditorUtility.OpenPropertyEditor(camera)); + CoreEditorUtils.DrawFixMeBox(textBase + $"is disabled in the {camera.name}'s Custom Frame Settings.", MessageType.Warning, "Open", () => EditorUtility.OpenPropertyEditor(camera)); else if (!dependenciesSanitizedValueOk) - GlobalSettingsHelpBox(textBase + "depends on a disabled FrameSetting.", MessageType.Warning, field, attribute.displayedName); - else if (!finalValue) + { + if(cameraOverrideState) + CoreEditorUtils.DrawFixMeBox(textBase + $"depends on a disabled Frame Setting parent in the {camera.name} Custom Frame Settings.", MessageType.Warning, "Open", () => EditorUtility.OpenPropertyEditor(camera)); + else + GlobalSettingsHelpBox(textBase + "depends on a disabled Frame Setting parent in the HDRP Default Frame Settings.", MessageType.Warning, field, attribute.displayedName); + + } + else if (!finalValue && !disabledbySanitized) CoreEditorUtils.DrawFixMeBox(textBase + "is disabled in the Rendering Debugger.", MessageType.Warning, "Open", () => HighlightInDebugger(camera, field, attribute.displayedName)); } @@ -397,7 +406,7 @@ internal static bool EnsureFrameSetting(FrameSettingsField field) static IEnumerable<(Camera camera, T component)> SelectVolumeComponent(IEnumerable cameras) where T : VolumeComponent { // Wait for volume system to be initialized - if (VolumeManager.instance.baseComponentTypeArray == null) + if (!VolumeManager.instance.isInitialized) yield break; foreach (var camera in GetAllCameras()) diff --git a/Packages/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/HDRenderPipelineUI.Skin.cs b/Packages/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/HDRenderPipelineUI.Skin.cs index 7826d49e347..bf8b7d51ae9 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/HDRenderPipelineUI.Skin.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/HDRenderPipelineUI.Skin.cs @@ -275,7 +275,59 @@ public class Styles public static readonly GUIContent defaultInjectionPoint = EditorGUIUtility.TrTextContent("Injection Point", "The injection point at which to apply the upscaling."); public static readonly GUIContent TAAUInjectionPoint = EditorGUIUtility.TrTextContent("TAA Upscale Injection Point", "The injection point at which to apply the upscaling."); public static readonly GUIContent STPInjectionPoint = EditorGUIUtility.TrTextContent("STP Injection Point", "The injection point at which to apply the upscaling."); - public static readonly GUIContent DLSSUseOptimalSettingsContent = EditorGUIUtility.TrTextContent("DLSS Use Optimal Settings", "Sets the sharpness and scale automatically for NVIDIA Deep Learning Super Sampling, depending on the values of quality settings. When DLSS Optimal Settings is on, the percentage settings for Dynamic Resolution Scaling are ignored."); + public static readonly GUIContent DLSSUseOptimalSettingsContent = EditorGUIUtility.TrTextContent("DLSS Use Optimal Settings", "Sets the scale automatically for NVIDIA Deep Learning Super Sampling, depending on the values of quality settings. When DLSS Optimal Settings is on, the percentage settings for Dynamic Resolution Scaling are ignored."); + public static readonly GUIContent DLSSRenderPresetsContent = EditorGUIUtility.TrTextContent("DLSS Render Presets", "DLSS will use the specified render preset for each quality value."); +#if ENABLE_NVIDIA && ENABLE_NVIDIA_MODULE + public static readonly string[] DLSSPerfQualityLabels = + { // should follow enum value ordering in DLSSQuality enum + UnityEngine.NVIDIA.DLSSQuality.MaximumPerformance.ToString(), + UnityEngine.NVIDIA.DLSSQuality.Balanced.ToString(), + UnityEngine.NVIDIA.DLSSQuality.MaximumQuality.ToString(), + UnityEngine.NVIDIA.DLSSQuality.UltraPerformance.ToString(), + UnityEngine.NVIDIA.DLSSQuality.DLAA.ToString() + }; + public static string[][] DLSSPresetOptionsForEachPerfQuality = PopulateDLSSQualityPresetLabels(); + private static string[][] PopulateDLSSQualityPresetLabels() + { + int CountBits(uint bitMask) // System.Numerics.BitOperations not available + { + int count = 0; + while (bitMask > 0) + { + count += (bitMask & 1) > 0 ? 1 : 0; + bitMask >>= 1; + } + return count; + } + + System.Array perfQualities = System.Enum.GetValues(typeof(UnityEngine.NVIDIA.DLSSQuality)); + string[][] labels = new string[perfQualities.Length][]; + foreach(UnityEngine.NVIDIA.DLSSQuality quality in perfQualities) + { + uint presetBitmask = UnityEngine.NVIDIA.GraphicsDevice.GetAvailableDLSSPresetsForQuality(quality); + int numPresets = CountBits(presetBitmask) + 1; // +1 for default option which is available to all quality enums + labels[(int)quality] = new string[numPresets]; + + int iWrite = 0; + System.Array presets = System.Enum.GetValues(typeof(UnityEngine.NVIDIA.DLSSPreset)); + foreach(UnityEngine.NVIDIA.DLSSPreset preset in presets) + { + if (preset == UnityEngine.NVIDIA.DLSSPreset.Preset_Default) + { + labels[(int)quality][iWrite++] = "Default Preset"; + continue; + } + + if ((presetBitmask & (uint)preset) != 0) + { + string presetName = preset.ToString().Replace('_', ' '); + labels[(int)quality][iWrite++] = presetName + " - " + UnityEngine.NVIDIA.GraphicsDevice.GetDLSSPresetExplanation(preset); + } + } + } + return labels; + } +#endif public static readonly GUIContent FSR2Title = EditorGUIUtility.TrTextContent("AMD FidelityFX Super Resolution 2.0 (FSR2)"); public static readonly GUIContent enableFSR2 = EditorGUIUtility.TrTextContent("Enable Fidelity FX 2.2", "Enables FidelityFX 2.0 Super Resolution (FSR2)."); @@ -327,6 +379,7 @@ public class Styles public static readonly GUIContent dynResTypeWarning = EditorGUIUtility.TrTextContent("The current graphics API does not support hardware dynamic resolution mode. HDRP will automatically fall back to software dynamic resolution mode."); public static readonly GUIContent useMipBias = EditorGUIUtility.TrTextContent("Use Mip Bias", "Offsets the mip bias to recover more detail. This only works if the camera is utilizing TAA."); public static readonly GUIContent upsampleFilter = EditorGUIUtility.TrTextContent("Default Upscale Filter", "Specifies the filter that HDRP uses for upscaling unless overwritten by API by the user."); + public static readonly GUIContent upsampleLowResFilter = EditorGUIUtility.TrTextContent("Upscale Filter", "Specifies the filter that HDRP uses for upscaling the low-resolution transparent texture. Bilinear provides good quality at the cost of performance whereas Nearest Depth is more performant."); public static readonly GUIContent fallbackUpsampleFilter = EditorGUIUtility.TrTextContent("Default Fallback Upscale Filter", "Specifies the filter that HDRP uses for upscaling as a fallback if DLSS is not detected. Can be overwritten via API."); public static readonly GUIContent forceScreenPercentage = EditorGUIUtility.TrTextContent("Force Screen Percentage", "When enabled, HDRP uses the Forced Screen Percentage value as the screen percentage."); public static readonly GUIContent forcedScreenPercentage = EditorGUIUtility.TrTextContent("Forced Screen Percentage", "Sets a specific screen percentage value. HDRP forces this screen percentage for dynamic resolution."); diff --git a/Packages/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/HDRenderPipelineUI.cs b/Packages/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/HDRenderPipelineUI.cs index f81c76ca01e..3fc4ff1106c 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/HDRenderPipelineUI.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/HDRenderPipelineUI.cs @@ -1,6 +1,5 @@ using System; using System.Collections.Generic; -using System.Reflection; using System.Text; using UnityEngine; using Unity.Mathematics; @@ -674,17 +673,84 @@ static void Drawer_SectionDynamicResolutionSettings(SerializedHDRenderPipelineAs bool dlssDetected = ((1 << (int)AdvancedUpscalers.DLSS) & advancedUpscalersDetectedMask) != 0; if (containsDLSS) { + SerializedDynamicResolutionSettings drsSettings = serialized.renderPipelineSettings.dynamicResolutionSettings; + + ++EditorGUI.indentLevel; + var v = EditorGUILayout.EnumPopup(Styles.DLSSQualitySettingContent, (UnityEngine.NVIDIA.DLSSQuality)drsSettings.DLSSPerfQualitySetting.intValue); + + drsSettings.DLSSPerfQualitySetting.intValue = (int)(object)v; + + int injectionPointVal = EditorGUILayout.IntPopup(Styles.DLSSInjectionPoint, drsSettings.DLSSInjectionPoint.intValue, Styles.UpscalerInjectionPointNames, Styles.UpscalerInjectionPointValues); + drsSettings.DLSSInjectionPoint.intValue = injectionPointVal; + EditorGUILayout.PropertyField(drsSettings.DLSSUseOptimalSettings, Styles.DLSSUseOptimalSettingsContent); + +#if ENABLE_NVIDIA && ENABLE_NVIDIA_MODULE + EditorGUILayout.PrefixLabel(Styles.DLSSRenderPresetsContent); ++EditorGUI.indentLevel; - var v = EditorGUILayout.EnumPopup( - Styles.DLSSQualitySettingContent, - (UnityEngine.NVIDIA.DLSSQuality) - serialized.renderPipelineSettings.dynamicResolutionSettings.DLSSPerfQualitySetting.intValue); - serialized.renderPipelineSettings.dynamicResolutionSettings.DLSSPerfQualitySetting.intValue = (int)(object)v; + void DrawPresetDropdown(ref SerializedProperty presetProp, UnityEngine.NVIDIA.DLSSQuality perfQuality) + { + // each DLSSQuality has a different set of DLSSPresets, represented by a bitmask. + uint presetBitmask = UnityEngine.NVIDIA.GraphicsDevice.GetAvailableDLSSPresetsForQuality(perfQuality); + if(presetProp.uintValue != 0 && (presetBitmask & presetProp.uintValue) == 0) + { + Debug.LogWarningFormat("DLSS Preset {0} not found for quality setting {1}, resetting to default value.", + ((UnityEngine.NVIDIA.DLSSPreset)presetProp.uintValue).ToString(), + perfQuality.ToString() + ); + presetProp.uintValue = 0; + } + + // We don't want to deal with List & using bitmasks, + // so we need some bit ops to convert between GUI index <--> Preset value + int FindPresetGUIIndex(uint presetBitmask, uint presetValue) + { + int i = 0; + while (presetValue > 0) + { + i += (presetBitmask & 1) > 0 ? 1 : 0; + presetBitmask >>= 1; + presetValue >>= 1; + } + return i; // includes 0=default, goes like 1=preset_A, 2=preset_B ... + } + uint GUIIndexToPresetValue(uint presetBitmask, uint index) + { + // e.g. bitset: 100101 --> 3 bits set, supports 4 presets (0=default, +3 other presets). + // ^ i = 1 -> Preset A = 1 + // ^ i = 2 -> Preset C = 4 + // ^ i = 3 -> Preset F = 32 + uint val = 0; + while (index > 0 && presetBitmask > 0) + { + if ((presetBitmask & 1) != 0) + --index; + presetBitmask >>= 1; + val = val == 0 ? 1 : (val << 1); + } + if(index != 0) + { + Debug.LogWarningFormat("DLSSPreset (index={0}) not found in the supported preset list (mask={1}), setting to default value.", index, presetBitmask); + return 0; + } + // Debug.LogFormat("Setting preset {0} : {1}", ((DLSSPreset)val).ToString(), val); + return val; + } + + int presetIndex = FindPresetGUIIndex(presetBitmask, presetProp.uintValue); + int iNew = EditorGUILayout.Popup(Styles.DLSSPerfQualityLabels[(int)perfQuality], presetIndex, Styles.DLSSPresetOptionsForEachPerfQuality[(int)perfQuality]); + if(iNew != presetIndex) + presetProp.uintValue = GUIIndexToPresetValue(presetBitmask, (uint)iNew); + } + DrawPresetDropdown(ref drsSettings.DLSSRenderPresetForQuality , UnityEngine.NVIDIA.DLSSQuality.MaximumQuality ); + DrawPresetDropdown(ref drsSettings.DLSSRenderPresetForBalanced , UnityEngine.NVIDIA.DLSSQuality.Balanced ); + DrawPresetDropdown(ref drsSettings.DLSSRenderPresetForPerformance , UnityEngine.NVIDIA.DLSSQuality.MaximumPerformance); + DrawPresetDropdown(ref drsSettings.DLSSRenderPresetForUltraPerformance, UnityEngine.NVIDIA.DLSSQuality.UltraPerformance ); + DrawPresetDropdown(ref drsSettings.DLSSRenderPresetForDLAA , UnityEngine.NVIDIA.DLSSQuality.DLAA ); - int injectionPointVal = EditorGUILayout.IntPopup(Styles.DLSSInjectionPoint, serialized.renderPipelineSettings.dynamicResolutionSettings.DLSSInjectionPoint.intValue, Styles.UpscalerInjectionPointNames, Styles.UpscalerInjectionPointValues); - serialized.renderPipelineSettings.dynamicResolutionSettings.DLSSInjectionPoint.intValue = injectionPointVal; - EditorGUILayout.PropertyField(serialized.renderPipelineSettings.dynamicResolutionSettings.DLSSUseOptimalSettings, Styles.DLSSUseOptimalSettingsContent); + --EditorGUI.indentLevel; + +#endif --EditorGUI.indentLevel; } @@ -944,15 +1010,14 @@ static void Drawer_SectionLowResTransparentSettings(SerializedHDRenderPipelineAs { EditorGUILayout.PropertyField(serialized.renderPipelineSettings.lowresTransparentSettings.enabled, Styles.lowResTransparentEnabled); - /* For the time being we don't enable the option control and default to nearest depth. This might change in a close future. + // For the time being we don't enable the option control and default to nearest depth. This might change in a close future. ++EditorGUI.indentLevel; using (new EditorGUI.DisabledScope(!serialized.renderPipelineSettings.lowresTransparentSettings.enabled.boolValue)) { - EditorGUILayout.PropertyField(serialized.renderPipelineSettings.lowresTransparentSettings.checkerboardDepthBuffer, k_CheckerboardDepthBuffer); - EditorGUILayout.PropertyField(serialized.renderPipelineSettings.lowresTransparentSettings.upsampleType, k_UpsampleFilter); + EditorGUILayout.PropertyField(serialized.renderPipelineSettings.lowresTransparentSettings.checkerboardDepthBuffer, Styles.checkerboardDepthBuffer); + EditorGUILayout.PropertyField(serialized.renderPipelineSettings.lowresTransparentSettings.upsampleType, Styles.upsampleLowResFilter); } --EditorGUI.indentLevel; - */ } static void Drawer_SectionWaterSettings(SerializedHDRenderPipelineAsset serialized, Editor owner) diff --git a/Packages/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/Settings/SerializedDynamicResolutionSettings.cs b/Packages/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/Settings/SerializedDynamicResolutionSettings.cs index d2efeb12f44..66bb13a20e9 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/Settings/SerializedDynamicResolutionSettings.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/Settings/SerializedDynamicResolutionSettings.cs @@ -13,6 +13,11 @@ class SerializedDynamicResolutionSettings public SerializedProperty DLSSInjectionPoint; public SerializedProperty DLSSUseOptimalSettings; public SerializedProperty DLSSSharpness; + public SerializedProperty DLSSRenderPresetForQuality; + public SerializedProperty DLSSRenderPresetForBalanced; + public SerializedProperty DLSSRenderPresetForPerformance; + public SerializedProperty DLSSRenderPresetForUltraPerformance; + public SerializedProperty DLSSRenderPresetForDLAA; public SerializedProperty FSR2EnableSharpness; public SerializedProperty FSR2Sharpness; public SerializedProperty FSR2UseOptimalSettings; @@ -48,6 +53,11 @@ public SerializedDynamicResolutionSettings(SerializedProperty root) defaultInjectionPoint = root.Find((GlobalDynamicResolutionSettings s) => s.defaultInjectionPoint); DLSSUseOptimalSettings = root.Find((GlobalDynamicResolutionSettings s) => s.DLSSUseOptimalSettings); DLSSSharpness = root.Find((GlobalDynamicResolutionSettings s) => s.DLSSSharpness); + DLSSRenderPresetForQuality = root.Find((GlobalDynamicResolutionSettings s) => s.DLSSRenderPresetForQuality); + DLSSRenderPresetForBalanced = root.Find((GlobalDynamicResolutionSettings s) => s.DLSSRenderPresetForBalanced); + DLSSRenderPresetForPerformance = root.Find((GlobalDynamicResolutionSettings s) => s.DLSSRenderPresetForPerformance); + DLSSRenderPresetForUltraPerformance = root.Find((GlobalDynamicResolutionSettings s) => s.DLSSRenderPresetForUltraPerformance); + DLSSRenderPresetForDLAA = root.Find((GlobalDynamicResolutionSettings s) => s.DLSSRenderPresetForDLAA); advancedUpscalersByPriority = root.Find((GlobalDynamicResolutionSettings s) => s.advancedUpscalersByPriority); FSR2EnableSharpness = root.Find((GlobalDynamicResolutionSettings s) => s.FSR2EnableSharpness); FSR2Sharpness = root.Find((GlobalDynamicResolutionSettings s) => s.FSR2Sharpness); diff --git a/Packages/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/Settings/SerializedRenderPipelineSettings.cs b/Packages/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/Settings/SerializedRenderPipelineSettings.cs index b96f3ff0f68..f52f914e130 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/Settings/SerializedRenderPipelineSettings.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/Settings/SerializedRenderPipelineSettings.cs @@ -101,10 +101,10 @@ class SerializedRenderPipelineSettings public SerializedScalableSetting maximumLODLevel; #pragma warning disable 618 // Type or member is obsolete - [FormerlySerializedAs("enableUltraQualitySSS"), FormerlySerializedAs("increaseSssSampleCount"), Obsolete("For data migration")] + [FormerlySerializedAs("enableUltraQualitySSS"), FormerlySerializedAs("increaseSssSampleCount"), Obsolete("For data migration. #from(2021.1)")] SerializedProperty m_ObsoleteincreaseSssSampleCount; - [FormerlySerializedAs("supportDitheringCrossFade"), Obsolete("Merged with LOD Quality Setting")] + [FormerlySerializedAs("supportDitheringCrossFade"), Obsolete("Merged with LOD Quality Setting. #from(2023.2)")] private SerializedProperty m_ObsoleteSupportDitheringCrossFade; #pragma warning restore 618 diff --git a/Packages/com.unity.render-pipelines.high-definition/Editor/RenderPipelineResources/HDProjectSettings.cs b/Packages/com.unity.render-pipelines.high-definition/Editor/RenderPipelineResources/HDProjectSettings.cs index 2a8c5ae05fc..6c17dde14c7 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Editor/RenderPipelineResources/HDProjectSettings.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Editor/RenderPipelineResources/HDProjectSettings.cs @@ -345,13 +345,13 @@ internal enum Version ); #pragma warning disable 649 // Field never assigned - [SerializeField, Obsolete("Moved from HDProjectSettings to HDUserSettings"), FormerlySerializedAs("m_WizardPopupAlreadyShownOnce")] + [SerializeField, Obsolete("Moved from HDProjectSettings to HDUserSettings. #from(2022.1)"), FormerlySerializedAs("m_WizardPopupAlreadyShownOnce")] bool m_ObsoleteWizardPopupAlreadyShownOnce; - [SerializeField, Obsolete("Moved from HDProjectSettings to HDUserSettings"), FormerlySerializedAs("m_WizardActiveTab")] + [SerializeField, Obsolete("Moved from HDProjectSettings to HDUserSettings. #from(2022.1)"), FormerlySerializedAs("m_WizardActiveTab")] int m_ObsoleteWizardActiveTab; - [SerializeField, Obsolete("Moved from HDProjectSettings to HDUserSettings"), FormerlySerializedAs("m_WizardNeedRestartAfterChangingToDX12")] + [SerializeField, Obsolete("Moved from HDProjectSettings to HDUserSettings. #from(2022.1)"), FormerlySerializedAs("m_WizardNeedRestartAfterChangingToDX12")] bool m_ObsoleteWizardNeedRestartAfterChangingToDX12; - [SerializeField, Obsolete("Moved from HDProjectSettings to HDUserSettings"), FormerlySerializedAs("m_WizardNeedToRunFixAllAgainAfterDomainReload")] + [SerializeField, Obsolete("Moved from HDProjectSettings to HDUserSettings. #from(2022.1)"), FormerlySerializedAs("m_WizardNeedToRunFixAllAgainAfterDomainReload")] bool m_ObsoleteWizardNeedToRunFixAllAgainAfterDomainReload; #pragma warning restore 649 // Field never assigned #endregion diff --git a/Packages/com.unity.render-pipelines.high-definition/Editor/Tools/Resources/ColorCheckerMaterial.mat b/Packages/com.unity.render-pipelines.high-definition/Editor/Tools/Resources/ColorCheckerMaterial.mat index 3cd0112f8f0..7a9d3272b92 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Editor/Tools/Resources/ColorCheckerMaterial.mat +++ b/Packages/com.unity.render-pipelines.high-definition/Editor/Tools/Resources/ColorCheckerMaterial.mat @@ -8,8 +8,7 @@ Material: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_Name: ColorCheckerMaterial - m_Shader: {fileID: -6465566751694194690, guid: 57281877c54abf74f990563fcd006765, - type: 3} + m_Shader: {fileID: -6465566751694194690, guid: 57281877c54abf74f990563fcd006765, type: 3} m_Parent: {fileID: 0} m_ModifiedSerializedProperties: 0 m_ValidKeywords: @@ -133,7 +132,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!114 &9214507695027985507 MonoBehaviour: m_ObjectHideFlags: 11 diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/AssemblyInfo.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/AssemblyInfo.cs index 924e06d7ca9..d205cb064a4 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/AssemblyInfo.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/AssemblyInfo.cs @@ -12,4 +12,5 @@ [assembly: InternalsVisibleTo("Unity.Industrial.Materials.AVRD.Editor")] [assembly: InternalsVisibleTo("Unity.RenderPipelines.Multiple_SRP.RuntimeTests")] [assembly: InternalsVisibleTo("Unity.RenderPipelines.Multiple_SRP.EditorTests")] +[assembly: InternalsVisibleTo("Unity.GI.ReflectionProbes.Test")] diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugDisplay.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugDisplay.cs index a350074b455..f27d997146e 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugDisplay.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugDisplay.cs @@ -302,7 +302,7 @@ public partial class DebugData /// Index of the light used for contact shadows display. public int fullScreenContactShadowLightIndex = 0; /// XR single pass test mode. - [Obsolete] + [Obsolete("#from(2022.2)")] public bool xrSinglePassTestMode = false; /// Whether to display the average timings every second. public bool averageProfilerTimingsOverASecond = false; @@ -323,7 +323,7 @@ public partial class DebugData public FalseColorDebugSettings falseColorDebugSettings = new FalseColorDebugSettings(); /// Current decals debug settings. - [Obsolete("decalsDebugSettings has been deprecated, please use HDDebugDisplaySettings.Instance.decalSettings instead", false)] + [Obsolete("decalsDebugSettings has been deprecated, please use HDDebugDisplaySettings.Instance.decalSettings instead. #from(2023.1)")] public DecalsDebugSettings decalsDebugSettings = HDDebugDisplaySettings.Instance.decalSettings.m_Data; /// Current transparency debug settings. @@ -335,7 +335,7 @@ public partial class DebugData /// Max vertex density for vertex density display. public uint maxVertexDensity = 10; /// Display ray tracing ray count per frame. - [Obsolete("Obsolete, moved to HDDebugDisplayStats", false)] + [Obsolete("Obsolete, moved to HDDebugDisplayStats. #from(2023.1)")] public bool countRays = false; /// Display Show Lens Flare Data Driven Only. public bool showLensFlareDataDrivenOnly = false; diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugLightVolumes.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugLightVolumes.cs index 43a544d4cbe..cebedfebd48 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugLightVolumes.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugLightVolumes.cs @@ -74,7 +74,7 @@ class RenderLightVolumesPassData public void RenderLightVolumes(RenderGraph renderGraph, LightingDebugSettings lightingDebugSettings, TextureHandle destination, TextureHandle depthBuffer, CullingResults cullResults, HDCamera hdCamera) { - using (var builder = renderGraph.AddRenderPass("LightVolumes", out var passData)) + using (var builder = renderGraph.AddUnsafePass("LightVolumes", out var passData)) { bool lightOverlapEnabled = CoreUtils.IsLightOverlapDebugEnabled(hdCamera.camera); bool useColorAndEdge = lightingDebugSettings.lightVolumeDebugByCategory == LightVolumeDebug.ColorAndEdge || lightOverlapEnabled; @@ -94,12 +94,15 @@ public void RenderLightVolumes(RenderGraph renderGraph, LightingDebugSettings li { format = GraphicsFormat.R16G16B16A16_SFloat, clearBuffer = true, clearColor = Color.black, name = "LightVolumeColorAccumulation" }); passData.debugLightVolumesTexture = builder.CreateTransientTexture(new TextureDesc(Vector2.one, true, true) { format = GraphicsFormat.R16G16B16A16_SFloat, clearBuffer = true, clearColor = Color.black, enableRandomWrite = true, name = "LightVolumeDebugLightVolumesTexture" }); - passData.depthBuffer = builder.UseDepthBuffer(depthBuffer, DepthAccess.ReadWrite); - passData.destination = builder.WriteTexture(destination); + passData.depthBuffer = depthBuffer; + builder.SetRenderAttachmentDepth(depthBuffer, AccessFlags.ReadWrite); + passData.destination = destination; + builder.UseTexture(passData.destination, AccessFlags.Write); builder.SetRenderFunc( - (RenderLightVolumesPassData data, RenderGraphContext ctx) => + (RenderLightVolumesPassData data, UnsafeGraphContext ctx) => { + var natCmd = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); var mpb = ctx.renderGraphPool.GetTempMaterialPropertyBlock(); RenderTargetIdentifier[] mrt = ctx.renderGraphPool.GetTempArray(2); mrt[0] = data.lightCountBuffer; @@ -108,18 +111,18 @@ public void RenderLightVolumes(RenderGraph renderGraph, LightingDebugSettings li if (data.lightOverlapEnabled) { // We only need the accumulation buffer, not the color (we only display the outline of the light shape in this mode). - CoreUtils.SetRenderTarget(ctx.cmd, mrt[0], depthBuffer); + CoreUtils.SetRenderTarget(natCmd, mrt[0], depthBuffer); // The cull result doesn't contains overlapping lights so we use a custom list foreach (var overlappingHDLight in HDAdditionalLightData.s_overlappingHDLights) { - RenderLightVolume(ctx.cmd, data.debugLightVolumeMaterial, overlappingHDLight, overlappingHDLight.legacyLight, mpb); + RenderLightVolume(natCmd, data.debugLightVolumeMaterial, overlappingHDLight, overlappingHDLight.legacyLight, mpb); } } else { // Set the render target array - CoreUtils.SetRenderTarget(ctx.cmd, mrt, depthBuffer); + CoreUtils.SetRenderTarget(natCmd, mrt, depthBuffer); // First of all let's do the regions for the light sources (we only support Punctual and Area) int numLights = data.cullResults.visibleLights.Length; @@ -130,7 +133,7 @@ public void RenderLightVolumes(RenderGraph renderGraph, LightingDebugSettings li if (currentLegacyLight == null) continue; if (!currentLegacyLight.TryGetComponent(out var currentHDRLight)) continue; - RenderLightVolume(ctx.cmd, data.debugLightVolumeMaterial, currentHDRLight, currentLegacyLight, mpb); + RenderLightVolume(natCmd, data.debugLightVolumeMaterial, currentHDRLight, currentLegacyLight, mpb); } // When we enable the light overlap mode we hide probes as they can't be baked in shadow masks @@ -163,18 +166,18 @@ public void RenderLightVolumes(RenderGraph renderGraph, LightingDebugSettings li m_MaterialProperty.SetColor(_ColorShaderID, new Color(1.0f, 1.0f, 0.0f, 1.0f)); m_MaterialProperty.SetVector(_OffsetShaderID, new Vector3(0, 0, 0)); Matrix4x4 positionMat = Matrix4x4.Translate(currentLegacyProbe.transform.position); - ctx.cmd.DrawMesh(targetMesh, positionMat, data.debugLightVolumeMaterial, 0, 0, m_MaterialProperty); + natCmd.DrawMesh(targetMesh, positionMat, data.debugLightVolumeMaterial, 0, 0, m_MaterialProperty); } } } // Set the input params for the compute - ctx.cmd.SetComputeTextureParam(data.debugLightVolumeCS, data.debugLightVolumeKernel, _DebugLightCountBufferShaderID, data.lightCountBuffer); - ctx.cmd.SetComputeTextureParam(data.debugLightVolumeCS, data.debugLightVolumeKernel, _DebugColorAccumulationBufferShaderID, data.colorAccumulationBuffer); - ctx.cmd.SetComputeTextureParam(data.debugLightVolumeCS, data.debugLightVolumeKernel, _DebugLightVolumesTextureShaderID, data.debugLightVolumesTexture); - ctx.cmd.SetComputeTextureParam(data.debugLightVolumeCS, data.debugLightVolumeKernel, _ColorGradientTextureShaderID, data.colorGradientTexture); - ctx.cmd.SetComputeIntParam(data.debugLightVolumeCS, _MaxDebugLightCountShaderID, data.maxDebugLightCount); - ctx.cmd.SetComputeFloatParam(data.debugLightVolumeCS, _BorderRadiusShaderID, data.borderRadius); + natCmd.SetComputeTextureParam(data.debugLightVolumeCS, data.debugLightVolumeKernel, _DebugLightCountBufferShaderID, data.lightCountBuffer); + natCmd.SetComputeTextureParam(data.debugLightVolumeCS, data.debugLightVolumeKernel, _DebugColorAccumulationBufferShaderID, data.colorAccumulationBuffer); + natCmd.SetComputeTextureParam(data.debugLightVolumeCS, data.debugLightVolumeKernel, _DebugLightVolumesTextureShaderID, data.debugLightVolumesTexture); + natCmd.SetComputeTextureParam(data.debugLightVolumeCS, data.debugLightVolumeKernel, _ColorGradientTextureShaderID, data.colorGradientTexture); + natCmd.SetComputeIntParam(data.debugLightVolumeCS, _MaxDebugLightCountShaderID, data.maxDebugLightCount); + natCmd.SetComputeFloatParam(data.debugLightVolumeCS, _BorderRadiusShaderID, data.borderRadius); // Texture dimensions int texWidth = data.hdCamera.actualWidth; @@ -184,12 +187,12 @@ public void RenderLightVolumes(RenderGraph renderGraph, LightingDebugSettings li int lightVolumesTileSize = 8; int numTilesX = (texWidth + (lightVolumesTileSize - 1)) / lightVolumesTileSize; int numTilesY = (texHeight + (lightVolumesTileSize - 1)) / lightVolumesTileSize; - ctx.cmd.DispatchCompute(data.debugLightVolumeCS, data.debugLightVolumeKernel, numTilesX, numTilesY, data.hdCamera.viewCount); + natCmd.DispatchCompute(data.debugLightVolumeCS, data.debugLightVolumeKernel, numTilesX, numTilesY, data.hdCamera.viewCount); // Blit this into the camera target - CoreUtils.SetRenderTarget(ctx.cmd, destination); + CoreUtils.SetRenderTarget(natCmd, destination); mpb.SetTexture(HDShaderIDs._BlitTexture, data.debugLightVolumesTexture); - ctx.cmd.DrawProcedural(Matrix4x4.identity, data.debugLightVolumeMaterial, 1, MeshTopology.Triangles, 3, 1, mpb); + natCmd.DrawProcedural(Matrix4x4.identity, data.debugLightVolumeMaterial, 1, MeshTopology.Triangles, 3, 1, mpb); }); } } @@ -220,14 +223,15 @@ static void RenderLightVolume( break; case LightType.Box: mpb.SetColor(_ColorShaderID, new Color(1.0f, 0.5f, 0.0f, 1.0f)); - mpb.SetVector(_RangeShaderID, new Vector3(currentHDRLight.shapeWidth, currentHDRLight.shapeHeight, currentLegacyLight.range)); + mpb.SetVector(_RangeShaderID, new Vector3(currentLegacyLight.areaSize.x, currentLegacyLight.areaSize.y, currentLegacyLight.range)); mpb.SetVector(_OffsetShaderID, new Vector3(0, 0, currentLegacyLight.range / 2.0f)); cmd.DrawMesh(DebugShapes.instance.RequestBoxMesh(), currentLegacyLight.gameObject.transform.localToWorldMatrix, debugLightVolumeMaterial, 0, 0, mpb); break; case LightType.Pyramid: - float bottomWidth = Mathf.Tan(currentLegacyLight.spotAngle * Mathf.PI / 360.0f) * currentLegacyLight.range; + float bottomX = Mathf.Tan(currentLegacyLight.spotAngle * Mathf.PI / 360.0f) * currentLegacyLight.range; + float bottomY = Mathf.Tan(currentLegacyLight.innerSpotAngle * Mathf.PI / 360.0f) * currentLegacyLight.range; mpb.SetColor(_ColorShaderID, new Color(1.0f, 0.5f, 0.0f, 1.0f)); - mpb.SetVector(_RangeShaderID, new Vector3(currentHDRLight.aspectRatio * bottomWidth * 2, bottomWidth * 2, currentLegacyLight.range)); + mpb.SetVector(_RangeShaderID, new Vector3(bottomY * 2, bottomX * 2, currentLegacyLight.range)); mpb.SetVector(_OffsetShaderID, new Vector3(0, 0, 0)); cmd.DrawMesh(DebugShapes.instance.RequestPyramidMesh(), currentLegacyLight.gameObject.transform.localToWorldMatrix, debugLightVolumeMaterial, 0, 0, mpb); break; diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugOverlay.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugOverlay.cs index 1e0beeb9fd0..9044908431d 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugOverlay.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugOverlay.cs @@ -3,7 +3,7 @@ namespace UnityEngine.Rendering.HighDefinition /// /// Utility class for debug overlay coordinates. /// - [System.Obsolete("Please use UnityEngine.Rendering.DebugOverlay")] + [System.Obsolete("Please use UnityEngine.Rendering.DebugOverlay. #from(2023.1)")] public class DebugOverlay { /// Current x coordinate. diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/GPUInlineDebugDrawer.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/GPUInlineDebugDrawer.cs index 5c75671c27d..8aac1917ead 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/GPUInlineDebugDrawer.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/GPUInlineDebugDrawer.cs @@ -167,7 +167,7 @@ class GPUInlineDebugDrawerData static public void BindProducers(HDCamera cam, RenderGraph renderGraph) { #if ENABLE_GPU_INLINE_DEBUG_DRAWER - using (var builder = renderGraph.AddRenderPass("GPUInlineDebugDrawer_BindProducers", out var passData)) + using (var builder = renderGraph.AddUnsafePass("GPUInlineDebugDrawer_BindProducers", out var passData)) { int maxLines = (int)GPUInlineDebugDrawerParams.MaxLines; @@ -176,33 +176,39 @@ static public void BindProducers(HDCamera cam, RenderGraph renderGraph) lineCSBuffer = renderGraph.CreateBuffer(new BufferDesc(maxLines, Marshal.SizeOf(typeof(GPUInlineDebugDrawerLine)), GraphicsBuffer.Target.Append) { name = "GPUInlineDebugDrawerLineCS" }); - passData.lineWSBuffer = builder.WriteBuffer(lineWSBuffer); - passData.lineCSBuffer = builder.WriteBuffer(lineCSBuffer); + passData.lineWSBuffer = lineWSBuffer; + builder.UseBuffer(passData.lineWSBuffer, AccessFlags.Write); + passData.lineCSBuffer = lineCSBuffer; + builder.UseBuffer(passData.lineCSBuffer, AccessFlags.Write); plotRingBufferHandle = renderGraph.ImportBuffer(plotRingBuffer); plotRingBufferStartHandle = renderGraph.ImportBuffer(plotRingBufferStart); plotRingBufferEndHandle = renderGraph.ImportBuffer(plotRingBufferEnd); - passData.plotRingBuffer = builder.WriteBuffer(plotRingBufferHandle); - passData.plotRingBufferStart = builder.WriteBuffer(plotRingBufferStartHandle); - passData.plotRingBufferEnd = builder.WriteBuffer(plotRingBufferEndHandle); + passData.plotRingBuffer = plotRingBufferHandle; + builder.UseBuffer(passData.plotRingBuffer, AccessFlags.Write); + passData.plotRingBufferStart = plotRingBufferStartHandle; + builder.UseBuffer(passData.plotRingBufferStart, AccessFlags.Write); + passData.plotRingBufferEnd = plotRingBufferEndHandle; + builder.UseBuffer(passData.plotRingBufferEnd, AccessFlags.Write); passData.mousePosition = new Vector2(Mathf.Round(Event.current.mousePosition.x), Mathf.Round(cam.actualHeight - 1 - Event.current.mousePosition.y)); builder.SetRenderFunc( - (GPUInlineDebugDrawerData data, Rendering.RenderGraphModule.RenderGraphContext ctx) => + (GPUInlineDebugDrawerData data, Rendering.RenderGraphModule.UnsafeGraphContext ctx) => { + var natCmd = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); ((GraphicsBuffer)data.lineWSBuffer).SetCounterValue(0u); ((GraphicsBuffer)data.lineCSBuffer).SetCounterValue(0u); - ctx.cmd.SetGlobalBuffer(HDShaderIDs._GPUInlineDebugDrawerLinesWSProduce, data.lineWSBuffer); - ctx.cmd.SetGlobalBuffer(HDShaderIDs._GPUInlineDebugDrawerLinesCSProduce, data.lineCSBuffer); + natCmd.SetGlobalBuffer(HDShaderIDs._GPUInlineDebugDrawerLinesWSProduce, data.lineWSBuffer); + natCmd.SetGlobalBuffer(HDShaderIDs._GPUInlineDebugDrawerLinesCSProduce, data.lineCSBuffer); - ctx.cmd.SetGlobalBuffer(HDShaderIDs._GPUInlineDebugDrawer_PlotRingBuffer, data.plotRingBuffer); - ctx.cmd.SetGlobalBuffer(HDShaderIDs._GPUInlineDebugDrawer_PlotRingBufferStart, data.plotRingBufferStart); - ctx.cmd.SetGlobalBuffer(HDShaderIDs._GPUInlineDebugDrawer_PlotRingBufferEnd, data.plotRingBufferEnd); + natCmd.SetGlobalBuffer(HDShaderIDs._GPUInlineDebugDrawer_PlotRingBuffer, data.plotRingBuffer); + natCmd.SetGlobalBuffer(HDShaderIDs._GPUInlineDebugDrawer_PlotRingBufferStart, data.plotRingBufferStart); + natCmd.SetGlobalBuffer(HDShaderIDs._GPUInlineDebugDrawer_PlotRingBufferEnd, data.plotRingBufferEnd); - ctx.cmd.SetGlobalVector(HDShaderIDs._GPUInlineDebugDrawerMousePos, data.mousePosition); + natCmd.SetGlobalVector(HDShaderIDs._GPUInlineDebugDrawerMousePos, data.mousePosition); }); } #endif @@ -215,18 +221,25 @@ static public void BindProducers(HDCamera cam, RenderGraph renderGraph) static public void Draw(RenderGraph renderGraph) { #if ENABLE_GPU_INLINE_DEBUG_DRAWER - using (var builder = renderGraph.AddRenderPass("GPUInlineDebugDrawer_Draws", out var passData)) + using (var builder = renderGraph.AddUnsafePass("GPUInlineDebugDrawer_Draws", out var passData)) { - passData.lineWSBuffer = builder.ReadBuffer(lineWSBuffer); - passData.lineCSBuffer = builder.ReadBuffer(lineCSBuffer); + passData.lineWSBuffer = lineWSBuffer; + builder.UseBuffer(passData.lineWSBuffer, AccessFlags.Read); + passData.lineCSBuffer = lineCSBuffer; + builder.UseBuffer(passData.lineCSBuffer, AccessFlags.Read); lineWSIndirectArgs.SetData(m_IndirectLineArgsDefault); lineCSIndirectArgs.SetData(m_IndirectLineArgsDefault); - passData.lineWSIndirectArgs = builder.WriteBuffer(renderGraph.ImportBuffer(lineWSIndirectArgs)); - passData.lineCSIndirectArgs = builder.WriteBuffer(renderGraph.ImportBuffer(lineCSIndirectArgs)); - - passData.plotRingBuffer = builder.ReadBuffer(plotRingBufferHandle); - passData.plotRingBufferStart = builder.ReadBuffer(plotRingBufferStartHandle); - passData.plotRingBufferEnd = builder.ReadBuffer(plotRingBufferEndHandle); + passData.lineWSIndirectArgs = renderGraph.ImportBuffer(lineWSIndirectArgs); + builder.UseBuffer(passData.lineWSIndirectArgs, AccessFlags.Write); + passData.lineCSIndirectArgs = renderGraph.ImportBuffer(lineCSIndirectArgs); + builder.UseBuffer(passData.lineCSIndirectArgs, AccessFlags.Write); + + passData.plotRingBuffer = plotRingBufferHandle; + builder.UseBuffer(passData.plotRingBuffer, AccessFlags.Read); + passData.plotRingBufferStart = plotRingBufferStartHandle; + builder.UseBuffer(passData.plotRingBufferStart, AccessFlags.Read); + passData.plotRingBufferEnd = plotRingBufferEndHandle; + builder.UseBuffer(passData.plotRingBufferEnd, AccessFlags.Read); passData.lineMaterial = m_LineMaterial; passData.lineWSNoDepthTestPassID = m_LineWSNoDepthTestPassID; @@ -234,24 +247,25 @@ static public void Draw(RenderGraph renderGraph) passData.plotRingBufferPassID = m_PlotRingBufferPassID; builder.SetRenderFunc( - (GPUInlineDebugDrawerData data, RenderGraphContext ctx) => + (GPUInlineDebugDrawerData data, UnsafeGraphContext ctx) => { - ctx.cmd.CopyCounterValue(data.lineWSBuffer, data.lineWSIndirectArgs, sizeof(uint)); - ctx.cmd.CopyCounterValue(data.lineCSBuffer, data.lineCSIndirectArgs, sizeof(uint)); + var natCmd = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); + natCmd.CopyCounterValue(data.lineWSBuffer, data.lineWSIndirectArgs, sizeof(uint)); + natCmd.CopyCounterValue(data.lineCSBuffer, data.lineCSIndirectArgs, sizeof(uint)); - ctx.cmd.SetGlobalBuffer(HDShaderIDs._GPUInlineDebugDrawerLinesWSConsume, data.lineWSBuffer); - ctx.cmd.SetGlobalBuffer(HDShaderIDs._GPUInlineDebugDrawerLinesCSConsume, data.lineCSBuffer); + natCmd.SetGlobalBuffer(HDShaderIDs._GPUInlineDebugDrawerLinesWSConsume, data.lineWSBuffer); + natCmd.SetGlobalBuffer(HDShaderIDs._GPUInlineDebugDrawerLinesCSConsume, data.lineCSBuffer); - ctx.cmd.SetGlobalBuffer(HDShaderIDs._GPUInlineDebugDrawer_PlotRingBufferRead, data.plotRingBuffer); - ctx.cmd.SetGlobalBuffer(HDShaderIDs._GPUInlineDebugDrawer_PlotRingBufferStartRead, data.plotRingBufferStart); - ctx.cmd.SetGlobalBuffer(HDShaderIDs._GPUInlineDebugDrawer_PlotRingBufferEndRead, data.plotRingBufferEnd); + natCmd.SetGlobalBuffer(HDShaderIDs._GPUInlineDebugDrawer_PlotRingBufferRead, data.plotRingBuffer); + natCmd.SetGlobalBuffer(HDShaderIDs._GPUInlineDebugDrawer_PlotRingBufferStartRead, data.plotRingBufferStart); + natCmd.SetGlobalBuffer(HDShaderIDs._GPUInlineDebugDrawer_PlotRingBufferEndRead, data.plotRingBufferEnd); // Draw World Space Lines - ctx.cmd.DrawProceduralIndirect(Matrix4x4.identity, data.lineMaterial, data.lineWSNoDepthTestPassID, MeshTopology.Lines, data.lineWSIndirectArgs); + natCmd.DrawProceduralIndirect(Matrix4x4.identity, data.lineMaterial, data.lineWSNoDepthTestPassID, MeshTopology.Lines, data.lineWSIndirectArgs); // Draw Clip Space Lines - ctx.cmd.DrawProceduralIndirect(Matrix4x4.identity, data.lineMaterial, data.lineCSNoDepthTestPassID, MeshTopology.Lines, data.lineCSIndirectArgs); + natCmd.DrawProceduralIndirect(Matrix4x4.identity, data.lineMaterial, data.lineCSNoDepthTestPassID, MeshTopology.Lines, data.lineCSIndirectArgs); // Draw Plot Ring Buffer - ctx.cmd.DrawProcedural(Matrix4x4.identity, data.lineMaterial, data.plotRingBufferPassID, MeshTopology.LineStrip, (int)GPUInlineDebugDrawerParams.MaxPlotRingBuffer + 5); + natCmd.DrawProcedural(Matrix4x4.identity, data.lineMaterial, data.plotRingBufferPassID, MeshTopology.LineStrip, (int)GPUInlineDebugDrawerParams.MaxPlotRingBuffer + 5); }); } #endif diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/HDVolumeDebugSettings.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/HDVolumeDebugSettings.cs index 09bb0a36b63..f234299d6fc 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/HDVolumeDebugSettings.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/HDVolumeDebugSettings.cs @@ -15,7 +15,7 @@ namespace UnityEngine.Rendering.HighDefinition /// This class provides access to debug settings for the volume stack and layer mask in the High Definition Render Pipeline (HDRP). /// It is useful for visualizing and adjusting volume settings for specific cameras during development. /// - [Obsolete("This is not longer supported Please use DebugDisplaySettingsVolume. #from(6000.2)", false)] + [Obsolete("This is not longer supported Please use DebugDisplaySettingsVolume. #from(6000.2)")] public partial class HDVolumeDebugSettings : VolumeDebugSettings { /// diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/HDVolumeDebugSettings.deprecated.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/HDVolumeDebugSettings.deprecated.cs index d924ae3c81f..d52de3f49a4 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/HDVolumeDebugSettings.deprecated.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/HDVolumeDebugSettings.deprecated.cs @@ -7,7 +7,7 @@ public partial class HDVolumeDebugSettings /// /// Specifies the render pipeline for this volume settings /// - [Obsolete("This property is obsolete and kept only for not breaking user code. VolumeDebugSettings will use current pipeline when it needs to gather volume component types and paths. #from(23.2)", false)] + [Obsolete("This property is obsolete and kept only for not breaking user code. VolumeDebugSettings will use current pipeline when it needs to gather volume component types and paths. #from(2023.2)")] public override Type targetRenderPipeline => typeof(HDRenderPipeline); } } diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/LightingDebug.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/LightingDebug.cs index f046f431d6d..953147bacde 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/LightingDebug.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/LightingDebug.cs @@ -291,7 +291,7 @@ public bool IsDebugDisplayEnabled() /// Exposure compensation to apply on current scene exposure. public float debugExposure = 0.0f; /// Obsolete, please use the lens attenuation mode in HDRP Global Settings. - [Obsolete("Please use the lens attenuation mode in HDRP Global Settings", true)] + [Obsolete("Please use the lens attenuation mode in HDRP Global Settings. #from(2021.1) #breakingFrom(2021.1)", true)] public float debugLensAttenuation = 0.65f; /// Whether to show tonemap curve in the histogram debug view or not. public bool showTonemapCurveAlongHistogramView = true; @@ -340,7 +340,7 @@ public bool IsDebugDisplayEnabled() public bool showReflectionProbe = true; /// Display the Local Volumetric Fog atlas. - [Obsolete("The local volumetric fog atlas was removed. This field is unused.")] + [Obsolete("The local volumetric fog atlas was removed. This field is unused. #from(2023.1)")] public bool displayLocalVolumetricFogAtlas = false; /// Local Volumetric Fog atlas slice. public uint localVolumetricFogAtlasSlice = 0; diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/NVIDIADebugView.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/NVIDIADebugView.cs index 20c7a447011..8dbe3cb690f 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/NVIDIADebugView.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/NVIDIADebugView.cs @@ -152,6 +152,9 @@ private DebugUI.Widget InternalCreateWidget() }, new DebugUI.Container() { displayName = "Quality", + }, + new DebugUI.Container() { + displayName = "Render Preset", } } }; @@ -175,8 +178,8 @@ private DebugUI.Widget InternalCreateWidget() }, new DebugUI.Value() { - displayName = "DLSS Version", - getter = () => m_DebugView == null ? "-" : String.Format("{0}.{1}.{2}", (m_DebugView.ngxVersion >> 16) & 0xFF, (m_DebugView.ngxVersion >> 8) & 0xFF, m_DebugView.ngxVersion & 0xFF), + displayName = "DLSS Version", // Must match NVUnityPlugin preprocessor definition NV_MAKE_BIT_VERSION + getter = () => m_DebugView == null ? "-" : String.Format("{0}.{1}.{2}", (m_DebugView.ngxVersion >> 18) & 0x3FF, (m_DebugView.ngxVersion >> 7) & 0x7F, m_DebugView.ngxVersion & 0x7F), }, new DebugUI.Value() { @@ -211,6 +214,25 @@ String resToString(uint a, uint b) data = new DLSSDebugFeatureInfos() }; m_Data.dlssFeatureInfos[r] = c; + + string GetPresetLabel(DLSSQuality quality) + { + DLSSPreset presetValue = DLSSPreset.Preset_Default; + switch (quality) + { + case DLSSQuality.DLAA: presetValue = c.data.initData.presetDlaaMode; break; + case DLSSQuality.Balanced: presetValue = c.data.initData.presetBalancedMode; break; + case DLSSQuality.MaximumQuality: presetValue = c.data.initData.presetQualityMode; break; + case DLSSQuality.UltraPerformance: presetValue = c.data.initData.presetUltraPerformanceMode; break; + case DLSSQuality.MaximumPerformance: presetValue = c.data.initData.presetPerformanceMode; break; + } + string presetLabel = presetValue.ToString(); + int delimiterIndex = presetLabel.IndexOf(" - "); // trim explanation from explanation separator token + if (delimiterIndex != -1) + presetLabel = presetLabel.Substring(0, delimiterIndex); + return presetLabel; + } + var dlssStateRow = new DebugUI.Table.Row() { children = @@ -230,6 +252,10 @@ String resToString(uint a, uint b) new DebugUI.Value() { getter = () => c.data.validFeature ? c.data.initData.quality.ToString() : "-" + }, + new DebugUI.Value() + { + getter = () => c.data.validFeature ? GetPresetLabel(c.data.initData.quality) : "-" } } }; diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/RayCountManager.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/RayCountManager.cs index ce499d1b65e..a5c34122668 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/RayCountManager.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/RayCountManager.cs @@ -120,11 +120,14 @@ class EvaluateRayCountPassData public Queue rayCountReadbacks; } - void PrepareEvaluateRayCountPassData(in RenderGraphBuilder builder, EvaluateRayCountPassData data, HDCamera hdCamera, TextureHandle colorBuffer, TextureHandle depthBuffer, TextureHandle rayCountTexture) + void PrepareEvaluateRayCountPassData(in IUnsafeRenderGraphBuilder builder, EvaluateRayCountPassData data, HDCamera hdCamera, TextureHandle colorBuffer, TextureHandle depthBuffer, TextureHandle rayCountTexture) { - data.colorBuffer = builder.UseColorBuffer(colorBuffer, 0); - data.depthBuffer = builder.UseDepthBuffer(depthBuffer, DepthAccess.ReadWrite); - data.rayCountTexture = builder.ReadTexture(rayCountTexture); + data.colorBuffer = colorBuffer; + builder.SetRenderAttachment(colorBuffer, 0); + data.depthBuffer = depthBuffer; + builder.SetRenderAttachmentDepth(depthBuffer, AccessFlags.ReadWrite); + data.rayCountTexture = rayCountTexture; + builder.UseTexture(data.rayCountTexture, AccessFlags.Read); data.reducedRayCountBuffer0 = builder.CreateTransientBuffer(new BufferDesc((int)RayCountValues.Count * 256 * 256, sizeof(uint))); data.reducedRayCountBuffer1 = builder.CreateTransientBuffer(new BufferDesc((int)RayCountValues.Count * 32 * 32, sizeof(uint))); @@ -143,12 +146,12 @@ public void EvaluateRayCount(RenderGraph renderGraph, HDCamera hdCamera, Texture { if (m_IsActive) { - using (var builder = renderGraph.AddRenderPass("RenderRayCountOverlay", out var passData, ProfilingSampler.Get(HDProfileId.RaytracingDebugOverlay))) + using (var builder = renderGraph.AddUnsafePass("RenderRayCountOverlay", out var passData, ProfilingSampler.Get(HDProfileId.RaytracingDebugOverlay))) { PrepareEvaluateRayCountPassData(builder, passData, hdCamera, colorBuffer, depthBuffer, rayCountTexture); builder.SetRenderFunc( - (EvaluateRayCountPassData data, RenderGraphContext ctx) => + (EvaluateRayCountPassData data, UnsafeGraphContext ctx) => { // Get the size of the viewport to process int currentWidth = data.width; diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Deprecated.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/Deprecated.cs index 5efe20145fc..8944b349554 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Deprecated.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Deprecated.cs @@ -7,13 +7,13 @@ namespace UnityEngine.Rendering.HighDefinition { /// Deprecated DensityVolume - [Obsolete("DensityVolume has been deprecated, use LocalVolumetricFog", true)] + [Obsolete("DensityVolume has been deprecated, use LocalVolumetricFog. #from(2021.2) #breakingFrom(2022.2)", true)] public class DensityVolume : LocalVolumetricFog { } /// Deprecated DensityVolumeArtistParameters - [Obsolete("DensityVolumeArtistParameters has been deprecated, use LocalVolumetricFogArtistParameters", true)] + [Obsolete("DensityVolumeArtistParameters has been deprecated, use LocalVolumetricFogArtistParameters. #from(2021.2) #breakingFrom(2022.2)", true)] public struct DensityVolumeArtistParameters { } @@ -21,14 +21,14 @@ public struct DensityVolumeArtistParameters public partial struct LocalVolumetricFogArtistParameters { /// Obsolete, do not use. - [Obsolete("Never worked correctly due to having engine working in percent. Will be removed soon.")] + [Obsolete("Never worked correctly due to having engine working in percent. Will be removed soon. #from(2021.2)")] public bool advancedFade => true; } /// /// Volume debug settings. /// - [Obsolete("VolumeDebugSettings has been deprecated. Use HDVolumeDebugSettings instead (UnityUpgradable) -> HDVolumeDebugSettings")] + [Obsolete("VolumeDebugSettings has been deprecated. Use HDVolumeDebugSettings instead. #from(2022.1) (UnityUpgradable) -> HDVolumeDebugSettings")] public class VolumeDebugSettings : HDVolumeDebugSettings { } @@ -44,37 +44,37 @@ public partial class DebugDisplaySettings public partial class DebugData { /// Current volume debug settings. - [Obsolete("Moved to HDDebugDisplaySettings.Instance. Will be removed soon.")] + [Obsolete("Moved to HDDebugDisplaySettings.Instance. Will be removed soon. #from(2022.2)")] public IVolumeDebugSettings volumeDebugSettings = new HDVolumeDebugSettings(); } /// List of Full Screen Lighting RTAS Debug view names. - [Obsolete("Use autoenum instead @from(2022.2)")] + [Obsolete("Use autoenum instead #from(2022.2)")] public static GUIContent[] lightingFullScreenRTASDebugViewStrings => Enum.GetNames(typeof(RTASDebugView)).Select(t => new GUIContent(t)).ToArray(); /// List of Full Screen Lighting RTAS Debug view values. - [Obsolete("Use autoenum instead @from(2022.2)")] + [Obsolete("Use autoenum instead #from(2022.2)")] public static int[] lightingFullScreenRTASDebugViewValues => (int[])Enum.GetValues(typeof(RTASDebugView)); /// List of Full Screen Lighting RTAS Debug mode names. - [Obsolete("Use autoenum instead @from(2022.2)")] + [Obsolete("Use autoenum instead #from(2022.2)")] public static GUIContent[] lightingFullScreenRTASDebugModeStrings => Enum.GetNames(typeof(RTASDebugMode)).Select(t => new GUIContent(t)).ToArray(); /// List of Full Screen Lighting RTAS Debug mode values. - [Obsolete("Use autoenum instead @from(2022.2)")] + [Obsolete("Use autoenum instead #from(2022.2)")] public static int[] lightingFullScreenRTASDebugModeValues => (int[])Enum.GetValues(typeof(RTASDebugMode)); } /// /// AmbientOcclusion has been renamed. Use ScreenSpaceAmbientOcclusion instead /// - [Obsolete("AmbientOcclusion has been renamed. Use ScreenSpaceAmbientOcclusion instead @from(2022.2) (UnityUpgradable) -> ScreenSpaceAmbientOcclusion")] + [Obsolete("AmbientOcclusion has been renamed. Use ScreenSpaceAmbientOcclusion instead #from(2022.2) (UnityUpgradable) -> ScreenSpaceAmbientOcclusion")] public sealed class AmbientOcclusion { } /// Deprecated DiffusionProfileOverride - [Obsolete("DiffusionProfileOverride has been deprecated @from(2022.2) (UnityUpgradable) -> DiffusionProfileList", false)] + [Obsolete("DiffusionProfileOverride has been deprecated #from(2022.2) (UnityUpgradable) -> DiffusionProfileList")] public sealed class DiffusionProfileOverride { } @@ -85,7 +85,7 @@ public sealed class DiffusionProfileOverride /// /// Options for defining LayerMasks to make lights or effects affect only specific renderers. /// - [Flags, Obsolete("LightLayersEnum has been renamed and can now use 16 bits. Use RenderingLayerMask instead @from(2023.1) (UnityUpgradable) -> RenderingLayerMask")] + [Flags, Obsolete("LightLayersEnum has been renamed and can now use 16 bits. Use RenderingLayerMask instead #from(2023.1) (UnityUpgradable) -> RenderingLayerMask")] public enum LightLayerEnum { /// The light doesn't affect any object. @@ -116,7 +116,7 @@ public enum LightLayerEnum /// /// Options for defining LayerMasks to make decals affect only specific renderers. /// - [Flags, Obsolete("DecalLayerEnum has been renamed and can now use 16 bits. Use RenderingLayerMask instead @from(2023.1) (UnityUpgradable) -> RenderingLayerMask")] + [Flags, Obsolete("DecalLayerEnum has been renamed and can now use 16 bits. Use RenderingLayerMask instead #from(2023.1) (UnityUpgradable) -> RenderingLayerMask")] public enum DecalLayerEnum { /// The decal doesn't affect any object. @@ -147,7 +147,7 @@ public enum DecalLayerEnum /// /// Options for defining LayerMasks to make lights or effects affect only specific renderers. /// - [Flags, Obsolete("DebugLightLayersMask has been renamed and can now use 16 bits. Use RenderingLayerMask instead @from(2023.1)")] + [Flags, Obsolete("DebugLightLayersMask has been renamed and can now use 16 bits. Use RenderingLayerMask instead #from(2023.1)")] public enum DebugLightLayersMask { /// No light layer debug. @@ -173,7 +173,7 @@ public enum DebugLightLayersMask /// This enum has been deprecated, and light types that existed only in HDRP have been moved into /// the `UnityEngine.LightType` instead. So you should now directly set the `type` property on the /// `UnityEngine.Light` monobehaviour. - [Obsolete("This enum has been deprecated. Use the UnityEngine.LightType enum instead.", false)] + [Obsolete("This enum has been deprecated. Use the UnityEngine.LightType enum instead. #from(2023.2)")] public enum HDLightType { /// Spot Light. Complete this type by setting the SpotLightShape too. @@ -189,7 +189,7 @@ public enum HDLightType /// This enum has been deprecated, and the spot light shapes now exist as separate members in the /// `UnityEngine.LightType` enum. The `Cone`, `Pyramid`, and `Box` types are represented by `LightType.Spot`, /// `LightType.Pyramid`, and `LightType.Box` respectively. - [Obsolete("This enum has been deprecated. Use the UnityEngine.LightType enum instead.", false)] + [Obsolete("This enum has been deprecated. Use the UnityEngine.LightType enum instead. #from(2023.2)")] public enum SpotLightShape { /// Cone shape. The default shape of the spot light. @@ -203,7 +203,7 @@ public enum SpotLightShape /// This enum has been deprecated, and the area light shapes now exist as separate members in the /// `UnityEngine.LightType` enum. The `Rectangle`, `Tube`, and `Disc` types are represented by `LightType.Rectangle`, /// `LightType.Tube`, and `LightType.Disc` respectively. - [Obsolete("This enum has been deprecated. Use the UnityEngine.LightType enum instead.", false)] + [Obsolete("This enum has been deprecated. Use the UnityEngine.LightType enum instead. #from(2023.2)")] public enum AreaLightShape { /// Rectangle shape. @@ -217,7 +217,7 @@ public enum AreaLightShape /// This enum has been deprecated, and the light type and shape combos now exist as separate members in the /// `UnityEngine.LightType` enum. - [Obsolete("This enum has been deprecated. Use the UnityEngine.LightType enum instead.", false)] + [Obsolete("This enum has been deprecated. Use the UnityEngine.LightType enum instead. #from(2023.2)")] public enum HDLightTypeAndShape { /// Point Light. @@ -242,7 +242,7 @@ public partial class HDAdditionalLightData { //Internal enum to differentiate built-in LightType.Point that can be Area or Point in HDRP //This is due to realtime support and culling behavior in Unity - [Obsolete("This property has been deprecated. Use Light.type instead.", false)] + [Obsolete("This property has been deprecated. Use Light.type instead. #from(2023.2)")] internal enum PointLightHDType { Punctual, @@ -252,7 +252,7 @@ internal enum PointLightHDType /// This property has been deprecated, and light types that existed only in HDRP have been moved into /// the `UnityEngine.LightType` instead. So `hdAdditionalLightData.type = HDLightType.Point` should now be /// written as `light.type = LightType.Point` - [Obsolete("This property has been deprecated. Use the UnityEngine.Light.type property instead.", false)] + [Obsolete("This property has been deprecated. Use the UnityEngine.Light.type property instead. #from(2023.2)")] public HDLightType type { get @@ -291,7 +291,7 @@ public HDLightType type /// This property has been deprecated, and the spot light shapes now exist as separate members in the /// `UnityEngine.LightType` enum. So `hdAdditionalLightData.spotLightShape = SpotLightShape.Pyramid` should now /// be written as `light.type = LightType.Pyramid`. - [Obsolete("This property has been deprecated. Use the UnityEngine.Light.type property instead.", false)] + [Obsolete("This property has been deprecated. Use the UnityEngine.Light.type property instead. #from(2023.2)")] public SpotLightShape spotLightShape { get @@ -318,7 +318,7 @@ public SpotLightShape spotLightShape /// This property has been deprecated, and the area light shapes now exist as separate members in the /// `UnityEngine.LightType` enum. So `hdAdditionalLightData.areaLightShape = AreaLightShape.Rectangle` should /// now be written as `light.type = LightType.Rectangle`. - [Obsolete("This property has been deprecated. Use the UnityEngine.Light.type property instead.", false)] + [Obsolete("This property has been deprecated. Use the UnityEngine.Light.type property instead. #from(2023.2)")] public AreaLightShape areaLightShape { get @@ -342,17 +342,17 @@ public AreaLightShape areaLightShape } } - [Obsolete("This property has been deprecated. Use Light.type instead.")] + [Obsolete("This property has been deprecated. Use Light.type instead. #from(2023.2)")] [SerializeField, FormerlySerializedAs("lightTypeExtent"), FormerlySerializedAs("m_LightTypeExtent")] PointLightHDType m_PointlightHDType = PointLightHDType.Punctual; // Only for Spotlight, should be hide for other light - [Obsolete("This property has been deprecated. Use Light.type instead.")] + [Obsolete("This property has been deprecated. Use Light.type instead. #from(2023.2)")] [SerializeField, FormerlySerializedAs("spotLightShape")] SpotLightShape m_SpotLightShape = SpotLightShape.Cone; // Only for Spotlight, should be hide for other light - [Obsolete("This property has been deprecated. Use Light.type instead.")] + [Obsolete("This property has been deprecated. Use Light.type instead. #from(2023.2)")] [SerializeField] AreaLightShape m_AreaLightShape = AreaLightShape.Rectangle; @@ -361,7 +361,7 @@ public AreaLightShape areaLightShape /// `hdAdditionalLightData.SetLightTypeAndShape(HDLightTypeAndShape.PyramidSpot)` should now be written as /// `light.type = LightType.Pyramid`. /// - [Obsolete("This method has been deprecated. Set the UnityEngine.Light.type property instead.", false)] + [Obsolete("This method has been deprecated. Set the UnityEngine.Light.type property instead. #from(2023.2)")] public void SetLightTypeAndShape(HDLightTypeAndShape typeAndShape) { legacyLight.type = typeAndShape switch @@ -383,7 +383,7 @@ public void SetLightTypeAndShape(HDLightTypeAndShape typeAndShape) /// `var type = hdAdditionalLightData.GetLightTypeAndShape()` should now be written as /// `var type = light.type`.
/// - [Obsolete("This method has been deprecated. Use Light.type instead.", false)] + [Obsolete("This method has been deprecated. Use Light.type instead. #from(2023.2)")] public HDLightTypeAndShape GetLightTypeAndShape() { return legacyLight.type switch @@ -406,7 +406,7 @@ public HDLightTypeAndShape GetLightTypeAndShape() /// /// /// - [Obsolete("This method has been deprecated. Use the GetSupportedLightUnits(LightType) overload instead.", false)] + [Obsolete("This method has been deprecated. Use the GetSupportedLightUnits(LightType) overload instead. #from(2023.2)")] public static LightUnit[] GetSupportedLightUnits(HDLightType type, SpotLightShape spotLightShape) { LightType ltype = type switch @@ -434,7 +434,7 @@ public static LightUnit[] GetSupportedLightUnits(HDLightType type, SpotLightShap /// /// /// - [Obsolete("This method has been deprecated. Use LightUnitUtils.IsLightUnitSupported(LightType, LightUnit) instead.", false)] + [Obsolete("This method has been deprecated. Use LightUnitUtils.IsLightUnitSupported(LightType, LightUnit) instead. #from(2023.2)")] public static bool IsValidLightUnitForType(HDLightType type, SpotLightShape spotLightShape, LightUnit unit) { LightType ltype = type switch @@ -454,24 +454,24 @@ public static bool IsValidLightUnitForType(HDLightType type, SpotLightShape spot return LightUnitUtils.IsLightUnitSupported(ltype, unit); } - [Obsolete("This property has been deprecated. Use Light.enableSpotReflector instead.", false)] + [Obsolete("This property has been deprecated. Use Light.enableSpotReflector instead. #from(2023.3)")] [SerializeField, FormerlySerializedAs("enableSpotReflector")] bool m_EnableSpotReflector = true; /// This property has been deprecated and moved to Light. - [Obsolete("This property has been deprecated. Use Light.enableSpotReflector instead.", false)] + [Obsolete("This property has been deprecated. Use Light.enableSpotReflector instead. #from(2023.3)")] public bool enableSpotReflector { get => legacyLight.enableSpotReflector; set => legacyLight.enableSpotReflector = value; } - [Obsolete("This property has been deprecated. Use Light.lightUnit instead.", false)] + [Obsolete("This property has been deprecated. Use Light.lightUnit instead. #from(2023.3)")] [SerializeField, FormerlySerializedAs("lightUnit")] LightUnit m_LightUnit = LightUnit.Lumen; /// This property has been deprecated and moved to Light. - [Obsolete("This property has been deprecated. Use Light.lightUnit instead.", false)] + [Obsolete("This property has been deprecated. Use Light.lightUnit instead. #from(2023.3)")] public LightUnit lightUnit { get => legacyLight.lightUnit; @@ -480,7 +480,7 @@ public LightUnit lightUnit /// This method has been deprecated. /// Unit of the light - [Obsolete("This property has been deprecated. Directly set Light.lightUnit instead.", false)] + [Obsolete("This property has been deprecated. Directly set Light.lightUnit instead. #from(2023.3)")] public void SetLightUnit(LightUnit unit) { legacyLight.lightUnit = unit; @@ -489,7 +489,7 @@ public void SetLightUnit(LightUnit unit) /// This method has been deprecated. If you need to set a light's intensity measured by some light unit, /// you should use the ConvertIntensity(...) method in LightUnitUtils and set Light.intensity directly. /// Light intensity - [Obsolete("This method has been deprecated. Use LightUnitUtils.ConvertIntensity(...) & directly set Light.intensity instead.", false)] + [Obsolete("This method has been deprecated. Use LightUnitUtils.ConvertIntensity(...) & directly set Light.intensity instead. #from(2023.3)")] public void SetIntensity(float intensity) { legacyLight.intensity = LightUnitUtils.ConvertIntensity(legacyLight, intensity, legacyLight.lightUnit, LightUnitUtils.GetNativeLightUnit(legacyLight.type)); @@ -500,19 +500,19 @@ public void SetIntensity(float intensity) /// If you need to change the unit, set Light.lightUnit directly.
/// Light intensity /// Unit must be a valid Light Unit for the current light type - [Obsolete("This property has been deprecated. Use LightUnitUtils.ConvertIntensity(...) & directly set Light.lightUnit + Light.intensity instead.", false)] + [Obsolete("This property has been deprecated. Use LightUnitUtils.ConvertIntensity(...) & directly set Light.lightUnit + Light.intensity instead. #from(2023.3)")] public void SetIntensity(float intensity, LightUnit unit) { legacyLight.intensity = LightUnitUtils.ConvertIntensity(legacyLight, intensity, unit, LightUnitUtils.GetNativeLightUnit(legacyLight.type)); legacyLight.lightUnit = unit; } - [Obsolete("This property has been deprecated. Use Light.luxAtDistance instead.", false)] + [Obsolete("This property has been deprecated. Use Light.luxAtDistance instead. #from(2023.3)")] [SerializeField, FormerlySerializedAs("luxAtDistance")] float m_LuxAtDistance = 1.0f; /// This property has been deprecated and moved to Light. - [Obsolete("This property has been deprecated. Use Light.luxAtDistance instead.", false)] + [Obsolete("This property has been deprecated. Use Light.luxAtDistance instead. #from(2023.3)")] public float luxAtDistance { get => legacyLight.luxAtDistance; @@ -525,7 +525,7 @@ public float luxAtDistance /// If you need to change lux at distance, set light.luxAtDistance directly.
/// Lux intensity /// Lux at distance - [Obsolete("This method has been deprecated. Use LightUnitUtils.ConvertIntensity(...) & directly set Light.luxAtDistance + Light.lightUnit + Light.intensity instead.", false)] + [Obsolete("This method has been deprecated. Use LightUnitUtils.ConvertIntensity(...) & directly set Light.luxAtDistance + Light.lightUnit + Light.intensity instead. #from(2023.3)")] public void SetSpotLightLuxAt(float luxIntensity, float distance) { legacyLight.luxAtDistance = distance; @@ -534,12 +534,12 @@ public void SetSpotLightLuxAt(float luxIntensity, float distance) } - [Obsolete("This property has been deprecated. Use Light.intensity instead.", false)] + [Obsolete("This property has been deprecated. Use Light.intensity instead. #from(2023.3)")] [SerializeField, FormerlySerializedAs("displayLightIntensity")] float m_Intensity; /// This property has been deprecated and moved to Light. - [Obsolete("This property has been deprecated. Use Light.intensity instead.", false)] + [Obsolete("This property has been deprecated. Use Light.intensity instead. #from(2023.3)")] public float intensity { get => legacyLight.intensity; @@ -550,7 +550,7 @@ public float intensity /// The type of the light /// The unit to check /// True: this unit is supported - [Obsolete("This function has been deprecated. Use LightUnitUtils.IsLightUnitSupported(LightType, LightUnit) instead.", false)] + [Obsolete("This function has been deprecated. Use LightUnitUtils.IsLightUnitSupported(LightType, LightUnit) instead. #from(2023.3)")] public static bool IsValidLightUnitForType(LightType type, LightUnit unit) { return LightUnitUtils.IsLightUnitSupported(type, unit); @@ -558,7 +558,7 @@ public static bool IsValidLightUnitForType(LightType type, LightUnit unit) /// This method has been deprecated. /// Array of supported units - [Obsolete("This function has been deprecated. Use LightUnitUtils.IsLightUnitSupported(LightType, LightUnit) instead.", false)] + [Obsolete("This function has been deprecated. Use LightUnitUtils.IsLightUnitSupported(LightType, LightUnit) instead. #from(2023.3)")] public LightUnit[] GetSupportedLightUnits() { return GetSupportedLightUnits(legacyLight.type); @@ -567,7 +567,7 @@ public LightUnit[] GetSupportedLightUnits() /// This method has been deprecated. /// The type of the light /// Array of supported units - [Obsolete("This function has been deprecated. Use LightUnitUtils.IsLightUnitSupported(LightType, LightUnit) instead.", false)] + [Obsolete("This function has been deprecated. Use LightUnitUtils.IsLightUnitSupported(LightType, LightUnit) instead. #from(2023.3)")] public static LightUnit[] GetSupportedLightUnits(LightType type) { return type switch { @@ -577,6 +577,148 @@ public static LightUnit[] GetSupportedLightUnits(LightType type) _ => throw new ArgumentOutOfRangeException(nameof(type), type, null) }; } + + [Obsolete("This property has been deprecated. Use Light.innerSpotAngle. #from(6000.3)")] + [Range(k_MinSpotInnerPercent, k_MaxSpotInnerPercent)] + [SerializeField] + float m_InnerSpotPercent = -1.0f; + + /// + /// Get/Set the inner spot radius in percent. + /// + [Obsolete("This property has been deprecated. Use Light.innerSpotAngle. #from(6000.3)")] + public float innerSpotPercent + { + get => legacyLight.innerSpotAngle / legacyLight.spotAngle * 100f; + set => legacyLight.innerSpotAngle = value * legacyLight.spotAngle / 100f; + } + + /// + /// Get the inner spot radius between 0 and 1. + /// + [Obsolete("This property has been deprecated. Use Light.innerSpotAngle. #from(6000.3)")] + public float innerSpotPercent01 => legacyLight.innerSpotAngle / legacyLight.spotAngle; + + /// + /// Set the spot light angle and inner spot percent. We don't use Light.innerSpotAngle. + /// + /// inner spot angle in degree + /// inner spot angle in percent + [Obsolete("This function has been deprecated. Directly set Light.spotAngle and Light.innerSpotAngle instead. #from(6000.3)")] + public void SetSpotAngle(float angle, float innerSpotPercent = 0) + { + legacyLight.spotAngle = angle; + legacyLight.innerSpotAngle = innerSpotPercent * angle / 100f; + } + + /// Control the width of an area, a box spot light or a directional light cookie. + [Obsolete("This property has been deprecated. #from(6000.3)")] + [SerializeField, FormerlySerializedAs("shapeWidth")] + float m_ShapeWidth = -1.0f; + + /// + /// Control the width of an area, a box spot light or a directional light cookie. + /// + [Obsolete("This property has been deprecated. For directional lights, use Light.cookieSize2D.x instead. For other lights, use Light.areaSize.x. #from(6000.3)")] + public float shapeWidth + { + get + { + if (legacyLight.type == LightType.Directional) + { + return legacyLight.cookieSize2D.x; + } + return legacyLight.areaSize.x; + } + set + { + if (legacyLight.type == LightType.Directional) + { + legacyLight.cookieSize2D = new Vector2(value, legacyLight.cookieSize2D.y); + } + else + { + legacyLight.areaSize = new Vector2(value, legacyLight.areaSize.y); + UpdateAllLightValues(); + } + } + } + + [Obsolete("This property has been deprecated. #from(6000.3)")] + [SerializeField, FormerlySerializedAs("shapeHeight")] + float m_ShapeHeight = -1.0f; + + /// + /// Control the height of an area, a box spot light or a directional light cookie. + /// + [Obsolete("This property has been deprecated. For directional lights, use Light.cookieSize2D.y instead. For other lights, use Light.areaSize.y. #from(6000.3)")] + public float shapeHeight + { + get + { + if (legacyLight.type == LightType.Directional) + { + return legacyLight.cookieSize2D.y; + } + return legacyLight.areaSize.y; + } + set + { + if (legacyLight.type == LightType.Directional) + { + legacyLight.cookieSize2D = new Vector2(legacyLight.cookieSize2D.x, value); + } + else + { + legacyLight.areaSize = new Vector2(legacyLight.areaSize.x, value); + UpdateAllLightValues(); + } + } + } + + /// + /// Set the area light size. + /// + /// + [Obsolete("This method has been deprecated. Set Light.areaSize instead. #from(6000.3)")] + public void SetAreaLightSize(Vector2 size) + { + if (legacyLight.type.IsArea()) + { + legacyLight.areaSize = size; + } + } + + /// + /// Set the box spot light size. + /// + /// + [Obsolete("This method has been deprecated. Set Light.areaSize instead. #from(6000.3)")] + public void SetBoxSpotSize(Vector2 size) + { + if (legacyLight.type == LightType.Box) + { + legacyLight.areaSize = size; + } + } + + [Obsolete("This property has been deprecated. Use Light.spotAngles instead. #from(6000.3)")] + [SerializeField, FormerlySerializedAs("aspectRatio")] + float m_AspectRatio = -1.0f; + + /// + /// Get/Set the aspect ratio of a pyramid light + /// + [Obsolete("This property has been deprecated. Use Light.innerSpotAngle and Light.spotAngle instead. #from(6000.3)")] + public float aspectRatio + { + get => Mathf.Tan(legacyLight.innerSpotAngle * Mathf.PI / 360f) / Mathf.Tan(legacyLight.spotAngle * Mathf.PI / 360f); + set + { + legacyLight.innerSpotAngle = 360f / Mathf.PI * Mathf.Atan(value * Mathf.Tan(legacyLight.spotAngle * Mathf.PI / 360f)); + UpdateAllLightValues(); + } + } } public static partial class GameObjectExtension @@ -587,7 +729,7 @@ public static partial class GameObjectExtension /// The GameObject on which the light is going to be added /// The type and shape of the HDRP light to Add /// The created HDRP Light component - [Obsolete("This method has been deprecated. Use the AddHDLight(LightType) overload instead.", false)] + [Obsolete("This method has been deprecated. Use the AddHDLight(LightType) overload instead. #from(2023.2)")] public static HDAdditionalLightData AddHDLight(this GameObject gameObject, HDLightTypeAndShape lightTypeAndShape) { LightType type; @@ -624,36 +766,36 @@ public static HDAdditionalLightData AddHDLight(this GameObject gameObject, HDLig return AddHDLight(gameObject, type); } } - + partial class HDRenderPipelineGlobalSettings { #region Custom Post Processes Injections - [SerializeField, Obsolete("Keep for migration. #from(23.2)")] + [SerializeField, Obsolete("Keep for migration. #from(2023.2)")] private CustomPostProcessOrdersSettings m_CustomPostProcessOrdersSettings = new(); // List of custom post process Types that will be executed in the project, in the order of the list (top to back) - [SerializeField, Obsolete("Keep for migration. #from(23.2)")] + [SerializeField, Obsolete("Keep for migration. #from(2023.2)")] internal List beforeTransparentCustomPostProcesses = new List(); - [SerializeField, Obsolete("Keep for migration. #from(23.2)")] + [SerializeField, Obsolete("Keep for migration. #from(2023.2)")] internal List beforePostProcessCustomPostProcesses = new List(); - [SerializeField, Obsolete("Keep for migration. #from(23.2)")] + [SerializeField, Obsolete("Keep for migration. #from(2023.2)")] internal List afterPostProcessBlursCustomPostProcesses = new List(); - [SerializeField, Obsolete("Keep for migration. #from(23.2)")] + [SerializeField, Obsolete("Keep for migration. #from(2023.2)")] internal List afterPostProcessCustomPostProcesses = new List(); - [SerializeField, Obsolete("Keep for migration. #from(23.2)")] + [SerializeField, Obsolete("Keep for migration. #from(2023.2)")] internal List beforeTAACustomPostProcesses = new List(); #endregion - [SerializeField, Obsolete("Keep for Migration. #from(23.2)")] internal ShaderStrippingSetting m_ShaderStrippingSetting = new(); + [SerializeField, Obsolete("Keep for Migration. #from(2023.2)")] internal ShaderStrippingSetting m_ShaderStrippingSetting = new(); #pragma warning disable 0414 - [SerializeField, FormerlySerializedAs("shaderVariantLogLevel"), Obsolete("Keep for Migration. #from(23.2)")] internal ShaderVariantLogLevel m_ShaderVariantLogLevel = ShaderVariantLogLevel.Disabled; - [SerializeField, FormerlySerializedAs("supportRuntimeDebugDisplay"), Obsolete("Keep for Migration. #from(23.2)")] internal bool m_SupportRuntimeDebugDisplay = false; + [SerializeField, FormerlySerializedAs("shaderVariantLogLevel"), Obsolete("Keep for Migration. #from(2023.2)")] internal ShaderVariantLogLevel m_ShaderVariantLogLevel = ShaderVariantLogLevel.Disabled; + [SerializeField, FormerlySerializedAs("supportRuntimeDebugDisplay"), Obsolete("Keep for Migration. #from(2023.2)")] internal bool m_SupportRuntimeDebugDisplay = false; - [SerializeField, Obsolete("Keep for Migration. #from(23.2)")] internal bool m_ExportShaderVariants = true; - [SerializeField, Obsolete("Keep for Migration. #from(23.2)")] internal bool m_StripDebugVariants = false; + [SerializeField, Obsolete("Keep for Migration. #from(2023.2)")] internal bool m_ExportShaderVariants = true; + [SerializeField, Obsolete("Keep for Migration. #from(2023.2)")] internal bool m_StripDebugVariants = false; #pragma warning restore 0414 [SerializeField] @@ -664,36 +806,36 @@ partial class HDRenderPipelineGlobalSettings [Obsolete("This field is not used anymore. #from(2023.2)")] internal bool useDLSSCustomProjectId = false; - [SerializeField, Obsolete("Keep for Migration. #from(23.2)")] + [SerializeField, Obsolete("Keep for Migration. #from(2023.2)")] internal bool supportProbeVolumes = false; - [Obsolete("Keep for Migration. #from(23.2)")] + [Obsolete("Keep for Migration. #from(2023.2)")] public bool autoRegisterDiffusionProfiles = true; - [Obsolete("Keep for Migration. #from(23.2)")] + [Obsolete("Keep for Migration. #from(2023.2)")] public bool analyticDerivativeEmulation = false; - [Obsolete("Keep for Migration. #from(23.2)")] + [Obsolete("Keep for Migration. #from(2023.2)")] public bool analyticDerivativeDebugOutput = false; [SerializeField] - [Obsolete("Keep for Migration. #from(23.2)")] + [Obsolete("Keep for Migration. #from(2023.2)")] internal LensAttenuationMode lensAttenuationMode; [SerializeField] - [Obsolete("Keep for Migration. #from(23.2)")] + [Obsolete("Keep for Migration. #from(2023.2)")] internal ColorGradingSpace colorGradingSpace; [SerializeField, FormerlySerializedAs("diffusionProfileSettingsList")] - [Obsolete("Keep for Migration. #from(23.2)")] + [Obsolete("Keep for Migration. #from(2023.2)")] internal DiffusionProfileSettings[] m_ObsoleteDiffusionProfileSettingsList; [SerializeField] - [Obsolete("Keep for Migration. #from(23.2)")] + [Obsolete("Keep for Migration. #from(2023.2)")] internal bool specularFade; [SerializeField] - [Obsolete("Keep for Migration. #from(23.2)")] + [Obsolete("Keep for Migration. #from(2023.2)")] internal bool rendererListCulling; [SerializeField, FormerlySerializedAs("m_DefaultVolumeProfile"), FormerlySerializedAs("m_VolumeProfileDefault")] @@ -709,19 +851,19 @@ partial class HDRenderPipelineGlobalSettings #region Camera's FrameSettings // To be able to turn on/off FrameSettings properties at runtime for debugging purpose without affecting the original one // we create a runtime copy (m_ActiveFrameSettings that is used, and any parametrization is done on serialized frameSettings) - [SerializeField, FormerlySerializedAs("m_RenderingPathDefaultCameraFrameSettings"), Obsolete("Kept For Migration. #from(2023.2")] + [SerializeField, FormerlySerializedAs("m_RenderingPathDefaultCameraFrameSettings"), Obsolete("Kept For Migration. #from(2023.2)")] FrameSettings m_ObsoleteRenderingPathDefaultCameraFrameSettings = FrameSettingsDefaults.Get(FrameSettingsRenderType.Camera); - [SerializeField, FormerlySerializedAs("m_RenderingPathDefaultBakedOrCustomReflectionFrameSettings"), Obsolete("Kept For Migration. #from(2023.2")] + [SerializeField, FormerlySerializedAs("m_RenderingPathDefaultBakedOrCustomReflectionFrameSettings"), Obsolete("Kept For Migration. #from(2023.2)")] FrameSettings m_ObsoleteRenderingPathDefaultBakedOrCustomReflectionFrameSettings = FrameSettingsDefaults.Get(FrameSettingsRenderType.CustomOrBakedReflection); - [SerializeField, FormerlySerializedAs("m_RenderingPathDefaultRealtimeReflectionFrameSettings"), Obsolete("Kept For Migration. #from(2023.2")] + [SerializeField, FormerlySerializedAs("m_RenderingPathDefaultRealtimeReflectionFrameSettings"), Obsolete("Kept For Migration. #from(2023.2)")] FrameSettings m_ObsoleteRenderingPathDefaultRealtimeReflectionFrameSettings = FrameSettingsDefaults.Get(FrameSettingsRenderType.RealtimeReflection); - [SerializeField, FormerlySerializedAs("m_RenderingPath"), Obsolete("Kept For Migration. #from(2023.2")] + [SerializeField, FormerlySerializedAs("m_RenderingPath"), Obsolete("Kept For Migration. #from(2023.2)")] internal RenderingPathFrameSettings m_ObsoleteRenderingPath = new(); - [Obsolete("Kept For Migration. #from(2023.2")] + [Obsolete("Kept For Migration. #from(2023.2)")] internal ref FrameSettings GetDefaultFrameSettings(FrameSettingsRenderType type) { #pragma warning disable 618 // Type or member is obsolete diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/AtmosphericScattering/ExponentialFog.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/AtmosphericScattering/ExponentialFog.cs index a78b9e4c161..2d1a5435b60 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/AtmosphericScattering/ExponentialFog.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/AtmosphericScattering/ExponentialFog.cs @@ -3,7 +3,7 @@ namespace UnityEngine.Rendering.HighDefinition { // Deprecated, kept for migration - [Obsolete()] + [Obsolete("#from(2021.2)")] [SupportedOnRenderPipeline(typeof(HDRenderPipelineAsset))] class ExponentialFog : AtmosphericScattering { diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/AtmosphericScattering/VolumetricFog.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/AtmosphericScattering/VolumetricFog.cs index bd0998dd2d2..f1e8ce80409 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/AtmosphericScattering/VolumetricFog.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/AtmosphericScattering/VolumetricFog.cs @@ -3,7 +3,7 @@ namespace UnityEngine.Rendering.HighDefinition { // Deprecated, kept for migration - [Obsolete()] + [Obsolete("#from(2021.2)")] [SupportedOnRenderPipeline(typeof(HDRenderPipelineAsset))] class VolumetricFog : AtmosphericScattering { diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/GlobalIlluminationUtils.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/GlobalIlluminationUtils.cs index 787122076be..415093e1828 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/GlobalIlluminationUtils.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/GlobalIlluminationUtils.cs @@ -95,8 +95,6 @@ public static bool LightDataGIExtract(Light light, ref LightDataGI lightDataGI) lightDataGI.orientation = light.transform.rotation; lightDataGI.position = light.transform.position; lightDataGI.range = 0.0f; - lightDataGI.coneAngle = add.shapeWidth; - lightDataGI.innerConeAngle = add.shapeHeight; #if UNITY_EDITOR lightDataGI.shape0 = light.shadows != LightShadows.None ? (Mathf.Deg2Rad * light.shadowAngle) : 0.0f; #else @@ -105,8 +103,8 @@ public static bool LightDataGIExtract(Light light, ref LightDataGI lightDataGI) lightDataGI.shape1 = 0.0f; lightDataGI.type = UnityEngine.Experimental.GlobalIllumination.LightType.Directional; lightDataGI.falloff = FalloffType.Undefined; - lightDataGI.coneAngle = add.shapeWidth; - lightDataGI.innerConeAngle = add.shapeHeight; + lightDataGI.coneAngle = light.cookieSize2D.x; + lightDataGI.innerConeAngle = light.cookieSize2D.y; break; case LightType.Spot: @@ -126,7 +124,7 @@ public static bool LightDataGIExtract(Light light, ref LightDataGI lightDataGI) spot.indirectColor = indirectColor; spot.range = light.range; spot.coneAngle = light.spotAngle * Mathf.Deg2Rad; - spot.innerConeAngle = light.spotAngle * Mathf.Deg2Rad * add.innerSpotPercent01; + spot.innerConeAngle = Mathf.Deg2Rad * light.innerSpotAngle; spot.falloff = add.applyRangeAttenuation ? FalloffType.InverseSquared : FalloffType.InverseSquaredNoRangeAttenuation; spot.angularFalloff = AngularFalloffType.AnalyticAndInnerAngle; lightDataGI.Init(ref spot, ref cookie); @@ -152,7 +150,7 @@ public static bool LightDataGIExtract(Light light, ref LightDataGI lightDataGI) pyramid.indirectColor = indirectColor; pyramid.range = light.range; pyramid.angle = light.spotAngle * Mathf.Deg2Rad; - pyramid.aspectRatio = add.aspectRatio; + pyramid.aspectRatio = Mathf.Tan(light.innerSpotAngle * Mathf.PI / 360f) / Mathf.Tan(light.spotAngle * Mathf.PI / 360f); pyramid.falloff = add.applyRangeAttenuation ? FalloffType.InverseSquared : FalloffType.InverseSquaredNoRangeAttenuation; lightDataGI.Init(ref pyramid, ref cookie); if (light.cookie != null) @@ -175,8 +173,8 @@ public static bool LightDataGIExtract(Light light, ref LightDataGI lightDataGI) box.color = directColor; box.indirectColor = indirectColor; box.range = light.range; - box.width = add.shapeWidth; - box.height = add.shapeHeight; + box.width = light.areaSize.x; + box.height = light.areaSize.y; lightDataGI.Init(ref box, ref cookie); if (light.cookie != null) lightDataGI.cookieTextureEntityId = light.cookie.GetEntityId(); @@ -215,8 +213,8 @@ public static bool LightDataGIExtract(Light light, ref LightDataGI lightDataGI) lightDataGI.range = light.range; lightDataGI.coneAngle = 0.0f; lightDataGI.innerConeAngle = 0.0f; - lightDataGI.shape0 = add.shapeWidth; - lightDataGI.shape1 = add.shapeHeight; + lightDataGI.shape0 = light.areaSize.x; + lightDataGI.shape1 = light.areaSize.y; // TEMP: for now, if we bake a rectangle type this will disable the light for runtime, need to speak with GI team about it! lightDataGI.type = UnityEngine.Experimental.GlobalIllumination.LightType.Rectangle; diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Light/HDAdditionalLightData.Migration.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Light/HDAdditionalLightData.Migration.cs index 0317fe0aae2..bbfe3078dab 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Light/HDAdditionalLightData.Migration.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Light/HDAdditionalLightData.Migration.cs @@ -27,12 +27,13 @@ enum Version EnableApplyRangeAttenuationOnBoxLight, UpdateLightShapeToCore, UpdateLightUnitsToCore, + UpdateSpotLightParamsToCore, } /// /// Shadow Resolution Tier /// - [Obsolete] + [Obsolete("#from(2021.1)")] enum ShadowResolutionTier { Low = 0, @@ -44,7 +45,7 @@ enum ShadowResolutionTier /// /// Type used previous isolation of AreaLightShape as we use Point for realtime area light due to culling /// - [Obsolete] + [Obsolete("#from(2021.1)")] enum LightTypeExtent { Punctual, @@ -237,8 +238,74 @@ private static readonly MigrationDescription k_H // This is a temporary solution until we break out areaSize into multiple fields light.areaSize = new Vector2(data.aspectRatio, light.areaSize.y); } + }), + MigrationStep.New(Version.UpdateSpotLightParamsToCore, (HDAdditionalLightData data) => + { + // Copy data from the HDRP's HDAdditionalLight component to the Unity's Light component + // Assign -1.0f (invalid value) to the deprecated variables to detect if they are animated. (See MigrateFromTimeline) + + var light = data.GetComponent(); + if (light.type == LightType.Pyramid) + { + light.innerSpotAngle = 360f / Mathf.PI * Mathf.Atan(data.m_AspectRatio * Mathf.Tan(light.spotAngle * Mathf.PI / 360f)); + data.m_AspectRatio = -1.0f; + } + else + { + light.innerSpotAngle = data.m_InnerSpotPercent * light.spotAngle / 100f; + data.m_InnerSpotPercent = -1.0f; + } + + if (light.type == LightType.Directional) + { + light.cookieSize2D = new Vector2(data.m_ShapeWidth, data.m_ShapeHeight); + data.m_ShapeWidth = data.m_ShapeHeight = -1.0f; + } + else if (light.type == LightType.Disc) + { + // Disc lights already store their size in Light.areaSize. Don't overwrite it. + } + else + { + light.areaSize = new Vector2(data.m_ShapeWidth, data.m_ShapeHeight); + data.m_ShapeWidth = data.m_ShapeHeight = -1.0f; + } }) ); + + /// + /// Migrate deprecated variables if they are animated + /// + void MigrateFromTimeline() + { + var lightType = legacyLight.type; + + if (lightType == LightType.Pyramid) + { + if (m_AspectRatio != -1.0f) + legacyLight.innerSpotAngle = 360f / Mathf.PI * Mathf.Atan(m_AspectRatio * Mathf.Tan(legacyLight.spotAngle * Mathf.PI / 360f)); + } + else + { + if (m_InnerSpotPercent != -1.0f) + legacyLight.innerSpotAngle = m_InnerSpotPercent * legacyLight.spotAngle / 100f; + } + + if (lightType == LightType.Directional) + { + if (m_ShapeWidth != -1.0f || m_ShapeHeight != -1.0f) + legacyLight.cookieSize2D = new Vector2(m_ShapeWidth, m_ShapeHeight); + } + else if (lightType == LightType.Disc) + { + // nop + } + else + { + if (m_ShapeWidth != -1.0f || m_ShapeHeight != -1.0f) + legacyLight.areaSize = new Vector2(m_ShapeWidth, m_ShapeHeight); + } + } #pragma warning restore 0618, 0612 void Migrate() @@ -251,30 +318,31 @@ void Migrate() #region Obsolete fields // To be able to have correct default values for our lights and to also control the conversion of intensity from the light editor (so it is compatible with GI) // we add intensity (for each type of light we want to manage). - [Obsolete("Use Light.renderingLayerMask instead")] + [Obsolete("Use Light.renderingLayerMask instead. #from(2021.1)")] [FormerlySerializedAs("lightLayers")] [ExcludeCopy] RenderingLayerMask m_LightLayers = RenderingLayerMask.LightLayerDefault; - [Obsolete] + [Obsolete("#from(2021.1)")] [SerializeField] [FormerlySerializedAs("m_ShadowResolutionTier")] [ExcludeCopy] ShadowResolutionTier m_ObsoleteShadowResolutionTier = ShadowResolutionTier.Medium; - [Obsolete] + + [Obsolete("#from(2021.1)")] [SerializeField] [FormerlySerializedAs("m_UseShadowQualitySettings")] [ExcludeCopy] bool m_ObsoleteUseShadowQualitySettings = false; [FormerlySerializedAs("m_CustomShadowResolution")] - [Obsolete] + [Obsolete("#from(2021.1)")] [SerializeField] [ExcludeCopy] int m_ObsoleteCustomShadowResolution = k_DefaultShadowResolution; [FormerlySerializedAs("m_ContactShadows")] - [Obsolete] + [Obsolete("#from(2021.1)")] [SerializeField] [ExcludeCopy] bool m_ObsoleteContactShadows = false; diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Light/HDAdditionalLightData.Types.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Light/HDAdditionalLightData.Types.cs index 96c92dd9df2..1b47e6000c3 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Light/HDAdditionalLightData.Types.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Light/HDAdditionalLightData.Types.cs @@ -87,13 +87,13 @@ public enum RenderingLayerMask RenderingLayer16 = 1 << 15, /// Default Layer for lights. - [HideInInspector, Obsolete("Use UnityEngine.RenderingLayerMask.defaultRenderingLayerMask instead. @from(2023.1) ")] + [HideInInspector, Obsolete("Use UnityEngine.RenderingLayerMask.defaultRenderingLayerMask instead. #from(2023.1) ")] LightLayerDefault = RenderingLayer1, /// Default Layer for decals. - [HideInInspector, Obsolete("Use UnityEngine.RenderingLayerMask.defaultRenderingLayerMask instead. @from(2023.1) ")] + [HideInInspector, Obsolete("Use UnityEngine.RenderingLayerMask.defaultRenderingLayerMask instead. #from(2023.1) ")] DecalLayerDefault = RenderingLayer9, /// Default rendering layers mask. - [HideInInspector, Obsolete("Use UnityEngine.RenderingLayerMask.defaultRenderingLayerMask instead. @from(2023.1) ")] + [HideInInspector, Obsolete("Use UnityEngine.RenderingLayerMask.defaultRenderingLayerMask instead. #from(2023.1) ")] Default = LightLayerDefault | DecalLayerDefault, /// All layers enabled. [HideInInspector] @@ -101,47 +101,47 @@ public enum RenderingLayerMask /// Light Layer 1. - [HideInInspector, Obsolete("@from(2023.1) Use RenderingLayer2")] + [HideInInspector, Obsolete("Use RenderingLayer2. #from(2023.1)")] LightLayer1 = RenderingLayer2, /// Light Layer 2. - [HideInInspector, Obsolete("@from(2023.1) Use RenderingLayer3")] + [HideInInspector, Obsolete("Use RenderingLayer3. #from(2023.1)")] LightLayer2 = RenderingLayer3, /// Light Layer 3. - [HideInInspector, Obsolete("@from(2023.1) Use RenderingLayer4")] + [HideInInspector, Obsolete("Use RenderingLayer4. #from(2023.1)")] LightLayer3 = RenderingLayer4, /// Light Layer 4. - [HideInInspector, Obsolete("@from(2023.1) Use RenderingLayer5")] + [HideInInspector, Obsolete("Use RenderingLayer5. #from(2023.1)")] LightLayer4 = RenderingLayer5, /// Light Layer 5. - [HideInInspector, Obsolete("@from(2023.1) Use RenderingLayer6")] + [HideInInspector, Obsolete("Use RenderingLayer6. #from(2023.1)")] LightLayer5 = RenderingLayer6, /// Light Layer 6. - [HideInInspector, Obsolete("@from(2023.1) Use RenderingLayer7")] + [HideInInspector, Obsolete("Use RenderingLayer7. #from(2023.1)")] LightLayer6 = RenderingLayer7, /// Light Layer 7. - [HideInInspector, Obsolete("@from(2023.1) Use RenderingLayer8")] + [HideInInspector, Obsolete("Use RenderingLayer8. #from(2023.1)")] LightLayer7 = RenderingLayer8, /// Decal Layer 1. - [HideInInspector, Obsolete("@from(2023.1) Use RenderingLayer10")] + [HideInInspector, Obsolete("Use RenderingLayer10. #from(2023.1)")] DecalLayer1 = RenderingLayer10, /// Decal Layer 2. - [HideInInspector, Obsolete("@from(2023.1) Use RenderingLayer11")] + [HideInInspector, Obsolete("Use RenderingLayer11. #from(2023.1)")] DecalLayer2 = RenderingLayer11, /// Decal Layer 3. - [HideInInspector, Obsolete("@from(2023.1) Use RenderingLayer12")] + [HideInInspector, Obsolete("Use RenderingLayer12. #from(2023.1)")] DecalLayer3 = RenderingLayer12, /// Decal Layer 4. - [HideInInspector, Obsolete("@from(2023.1) Use RenderingLayer13")] + [HideInInspector, Obsolete("Use RenderingLayer13. #from(2023.1)")] DecalLayer4 = RenderingLayer13, /// Decal Layer 5. - [HideInInspector, Obsolete("@from(2023.1) Use RenderingLayer14")] + [HideInInspector, Obsolete("Use RenderingLayer14. #from(2023.1)")] DecalLayer5 = RenderingLayer14, /// Decal Layer 6. - [HideInInspector, Obsolete("@from(2023.1) Use RenderingLayer15")] + [HideInInspector, Obsolete("Use RenderingLayer15. #from(2023.1)")] DecalLayer6 = RenderingLayer15, /// Decal Layer 7. - [HideInInspector, Obsolete("@from(2023.1) Use RenderingLayer16")] + [HideInInspector, Obsolete("Use RenderingLayer16. #from(2023.1)")] DecalLayer7 = RenderingLayer16, } diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Light/HDAdditionalLightData.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Light/HDAdditionalLightData.cs index 84a0e190422..e49112855c2 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Light/HDAdditionalLightData.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Light/HDAdditionalLightData.cs @@ -145,33 +145,6 @@ public enum CelestialBodyShadingSource [ExcludeCopy] internal HDLightRenderEntity lightEntity = HDLightRenderEntity.Invalid; - [Range(k_MinSpotInnerPercent, k_MaxSpotInnerPercent)] - [SerializeField] - float m_InnerSpotPercent; // To display this field in the UI this need to be public - /// - /// Get/Set the inner spot radius in percent. - /// - public float innerSpotPercent - { - get => m_InnerSpotPercent; - set - { - if (m_InnerSpotPercent == value) - return; - - m_InnerSpotPercent = Mathf.Clamp(value, k_MinSpotInnerPercent, k_MaxSpotInnerPercent); - - if (lightEntity.valid) - HDLightRenderDatabase.instance.EditLightDataAsRef(lightEntity).innerSpotPercent = m_InnerSpotPercent; - } - } - - /// - /// Get the inner spot radius between 0 and 1. - /// - public float innerSpotPercent01 => innerSpotPercent / 100f; - - [Range(k_MinSpotInnerPercent, k_MaxSpotInnerPercent)] [SerializeField] float m_SpotIESCutoffPercent = 100.0f; // To display this field in the UI this need to be public @@ -341,73 +314,6 @@ public bool nonLightmappedOnly } } - // Only for Rectangle/Line/box projector lights. - [SerializeField, FormerlySerializedAs("shapeWidth")] - float m_ShapeWidth = 0.5f; - /// - /// Control the width of an area, a box spot light or a directional light cookie. - /// - public float shapeWidth - { - get => m_ShapeWidth; - set - { - if (m_ShapeWidth == value) - return; - - var lightType = legacyLight.type; - if (lightType.IsArea()) - m_ShapeWidth = Mathf.Clamp(value, k_MinAreaWidth, float.MaxValue); - else - m_ShapeWidth = Mathf.Clamp(value, 0, float.MaxValue); - UpdateAllLightValues(); - HDLightRenderDatabase.instance.SetShapeWidth(lightEntity, m_ShapeWidth); - } - } - - // Only for Rectangle/box projector and rectangle area lights - [SerializeField, FormerlySerializedAs("shapeHeight")] - float m_ShapeHeight = 0.5f; - /// - /// Control the height of an area, a box spot light or a directional light cookie. - /// - public float shapeHeight - { - get => m_ShapeHeight; - set - { - if (m_ShapeHeight == value) - return; - - if (legacyLight.type.IsArea()) - m_ShapeHeight = Mathf.Clamp(value, k_MinAreaWidth, float.MaxValue); - else - m_ShapeHeight = Mathf.Clamp(value, 0, float.MaxValue); - UpdateAllLightValues(); - HDLightRenderDatabase.instance.SetShapeHeight(lightEntity, m_ShapeHeight); - } - } - - // Only for pyramid projector - [SerializeField, FormerlySerializedAs("aspectRatio")] - float m_AspectRatio = 1.0f; - /// - /// Get/Set the aspect ratio of a pyramid light - /// - public float aspectRatio - { - get => m_AspectRatio; - set - { - if (m_AspectRatio == value) - return; - - m_AspectRatio = Mathf.Clamp(value, k_MinAspectRatio, k_MaxAspectRatio); - UpdateAllLightValues(); - HDLightRenderDatabase.instance.SetAspectRatio(lightEntity, m_AspectRatio); - } - } - // Only for Punctual/Sphere/Disc. Default shape radius is not 0 so that specular highlight is visible by default, it matches the previous default of 0.99 for MaxSmoothness. [SerializeField, FormerlySerializedAs("shapeRadius")] float m_ShapeRadius = 0.025f; @@ -2844,12 +2750,13 @@ internal static void TickLateUpdate() } else // Pyramid { + float aspectRatio = Mathf.Tan(lightData.legacyLight.innerSpotAngle * Mathf.PI / 360f) / Mathf.Tan(lightData.legacyLight.spotAngle * Mathf.PI / 360f); oldSolidAngle = LightUnitUtils.GetSolidAngleFromPyramidLight( lightData.timelineWorkaround.oldSpotAngle, - lightData.aspectRatio); + aspectRatio); newSolidAngle = LightUnitUtils.GetSolidAngleFromPyramidLight( lightData.legacyLight.spotAngle, - lightData.aspectRatio); + aspectRatio); } float oldLumen = LightUnitUtils.CandelaToLumen(lightData.legacyLight.intensity, oldSolidAngle); @@ -2885,7 +2792,6 @@ void OnDidApplyAnimationProperties() /// Destination component public void CopyTo(HDAdditionalLightData data) { - data.m_InnerSpotPercent = m_InnerSpotPercent; data.m_SpotIESCutoffPercent = m_SpotIESCutoffPercent; data.m_LightDimmer = m_LightDimmer; data.m_VolumetricDimmer = m_VolumetricDimmer; @@ -2894,9 +2800,6 @@ public void CopyTo(HDAdditionalLightData data) data.m_AffectDiffuse = m_AffectDiffuse; data.m_AffectSpecular = m_AffectSpecular; data.m_NonLightmappedOnly = m_NonLightmappedOnly; - data.m_ShapeWidth = m_ShapeWidth; - data.m_ShapeHeight = m_ShapeHeight; - data.m_AspectRatio = m_AspectRatio; data.m_ShapeRadius = m_ShapeRadius; data.m_SoftnessScale = m_SoftnessScale; data.m_UseCustomSpotLightShadowCone = m_UseCustomSpotLightShadowCone; @@ -3055,9 +2958,6 @@ void OnValidate() RefreshCachedShadow(); - // Light size must be non-zero, else we get NaNs. - shapeWidth = Mathf.Max(shapeWidth, k_MinLightSize); - shapeHeight = Mathf.Max(shapeHeight, k_MinLightSize); shapeRadius = Mathf.Max(shapeRadius, 0.0f); #if UNITY_EDITOR @@ -3143,35 +3043,10 @@ internal void UpdateAreaLightEmissiveMesh(bool fromTimeLine = false) } // Update light area size with clamping - Vector3 lightSize = new Vector3(m_ShapeWidth, m_ShapeHeight, 0); + Vector3 lightSize = new Vector3(legacyLight.areaSize.x, legacyLight.areaSize.y, 0); if (lightType == LightType.Tube) lightSize.y = 0; lightSize = Vector3.Max(Vector3.one * k_MinAreaWidth, lightSize); - - switch (lightType) - { - case LightType.Rectangle: - m_ShapeWidth = lightSize.x; - m_ShapeHeight = lightSize.y; - break; - case LightType.Tube: - m_ShapeWidth = lightSize.x; - break; - case LightType.Disc: - m_ShapeWidth = lightSize.x; - m_ShapeHeight = lightSize.x; - break; - default: - break; - } - - if (lightEntity.valid) - { - ref HDLightRenderData lightRenderData = ref HDLightRenderDatabase.instance.EditLightDataAsRef(lightEntity); - lightRenderData.shapeWidth = m_ShapeWidth; - lightRenderData.shapeHeight = m_ShapeHeight; - } - legacyLight.areaSize = lightSize; // Update child emissive mesh scale @@ -3230,9 +3105,7 @@ void UpdateRectangleLightBounds() legacyLight.useShadowMatrixOverride = false; // TODO: Don't use bounding sphere overrides. Support this properly in Unity native instead. legacyLight.useBoundingSphereOverride = true; - float halfWidth = m_ShapeWidth * 0.5f; - float halfHeight = m_ShapeHeight * 0.5f; - float diag = Mathf.Sqrt(halfWidth * halfWidth + halfHeight * halfHeight); + float diag = 0.5f * legacyLight.areaSize.magnitude; legacyLight.boundingSphereOverride = new Vector4(0.0f, 0.0f, 0.0f, range + diag); } @@ -3241,7 +3114,7 @@ void UpdateDiscLightBounds() legacyLight.useShadowMatrixOverride = false; // TODO: Don't use bounding sphere overrides. Support this properly in Unity native instead. legacyLight.useBoundingSphereOverride = true; - legacyLight.boundingSphereOverride = new Vector4(0.0f, 0.0f, 0.0f, range + m_ShapeWidth); + legacyLight.boundingSphereOverride = new Vector4(0.0f, 0.0f, 0.0f, range + legacyLight.areaSize.x); } void UpdateTubeLightBounds() @@ -3249,7 +3122,7 @@ void UpdateTubeLightBounds() legacyLight.useShadowMatrixOverride = false; // TODO: Don't use bounding sphere overrides. Support this properly in Unity native instead. legacyLight.useBoundingSphereOverride = true; - legacyLight.boundingSphereOverride = new Vector4(0.0f, 0.0f, 0.0f, range + m_ShapeWidth * 0.5f); + legacyLight.boundingSphereOverride = new Vector4(0.0f, 0.0f, 0.0f, range + legacyLight.areaSize.x * 0.5f); } void UpdateBoxLightBounds() @@ -3260,10 +3133,10 @@ void UpdateBoxLightBounds() // Need to inverse scale because culling != rendering convention apparently Matrix4x4 scaleMatrix = Matrix4x4.Scale(new Vector3(1.0f, 1.0f, -1.0f)); - legacyLight.shadowMatrixOverride = HDShadowUtils.ExtractBoxLightProjectionMatrix(legacyLight.range, shapeWidth, m_ShapeHeight, shadowNearPlane) * scaleMatrix; + legacyLight.shadowMatrixOverride = HDShadowUtils.ExtractBoxLightProjectionMatrix(legacyLight.range, legacyLight.areaSize.x, legacyLight.areaSize.y, shadowNearPlane) * scaleMatrix; // Very conservative bounding sphere taking the diagonal of the shape as the radius - float diag = new Vector3(shapeWidth * 0.5f, m_ShapeHeight * 0.5f, legacyLight.range * 0.5f).magnitude; + float diag = 0.5f * new Vector3(legacyLight.areaSize.x, legacyLight.areaSize.y, legacyLight.range).magnitude; legacyLight.boundingSphereOverride = new Vector4(0.0f, 0.0f, legacyLight.range * 0.5f, diag); } @@ -3275,7 +3148,8 @@ void UpdatePyramidLightBounds() // Need to inverse scale because culling != rendering convention apparently Matrix4x4 scaleMatrix = Matrix4x4.Scale(new Vector3(1.0f, 1.0f, -1.0f)); - legacyLight.shadowMatrixOverride = HDShadowUtils.ExtractSpotLightProjectionMatrix(legacyLight.range, legacyLight.spotAngle, shadowNearPlane, aspectRatio, 0.0f) * scaleMatrix; + float aspect = Mathf.Tan(legacyLight.innerSpotAngle * Mathf.PI / 360f) / Mathf.Tan(legacyLight.spotAngle * Mathf.PI / 360f); + legacyLight.shadowMatrixOverride = HDShadowUtils.ExtractSpotLightProjectionMatrix(legacyLight.range, legacyLight.spotAngle, shadowNearPlane, aspect, 0.0f) * scaleMatrix; legacyLight.boundingSphereOverride = new Vector4(0.0f, 0.0f, 0.0f, legacyLight.range); } @@ -3309,24 +3183,6 @@ void UpdateBounds() } } - void UpdateShapeSize() - { - // Force to clamp the shape if we changed the type of the light - shapeWidth = m_ShapeWidth; - shapeHeight = m_ShapeHeight; - - if (legacyLight.type == LightType.Pyramid) - { - // Pyramid lights use areaSize.x for aspect ratio. - legacyLight.areaSize = new Vector2(aspectRatio, 0); - } - else if (legacyLight.type != LightType.Disc) - { - // We don't want to update the disc area since their shape is largely handled by builtin. - legacyLight.areaSize = new Vector2(shapeWidth, shapeHeight); - } - } - /// /// Synchronize all the HD Additional Light values with the Light component. /// @@ -3337,11 +3193,14 @@ public void UpdateAllLightValues() internal void UpdateAllLightValues(bool fromTimeLine) { - UpdateShapeSize(); - // Patch bounds UpdateBounds(); + if (fromTimeLine) + { + MigrateFromTimeline(); + } + UpdateAreaLightEmissiveMesh(fromTimeLine: fromTimeLine); } @@ -3415,8 +3274,7 @@ public void SetCookie(Texture cookie, Vector2 directionalLightCookieSize) } if (lightType == LightType.Directional) { - shapeWidth = directionalLightCookieSize.x; - shapeHeight = directionalLightCookieSize.y; + legacyLight.cookieSize2D = directionalLightCookieSize; } legacyLight.cookie = cookie; } @@ -3428,17 +3286,6 @@ public void SetCookie(Texture cookie, Vector2 directionalLightCookieSize) /// Cookie texture, must be 2D for Directional, Spot and Area light and Cubemap for Point lights public void SetCookie(Texture cookie) => SetCookie(cookie, Vector2.zero); - /// - /// Set the spot light angle and inner spot percent. We don't use Light.innerSpotAngle. - /// - /// inner spot angle in degree - /// inner spot angle in percent - public void SetSpotAngle(float angle, float innerSpotPercent = 0) - { - this.legacyLight.spotAngle = angle; - this.innerSpotPercent = innerSpotPercent; - } - /// /// Set the dimmer for light and volumetric light. /// @@ -3592,35 +3439,6 @@ public void SetShadowDimmer(float shadowDimmer = 1, float volumetricShadowDimmer /// public float[] SetLayerShadowCullDistances(float[] layerShadowCullDistances) => legacyLight.layerShadowCullDistances = layerShadowCullDistances; - /// - /// Set the area light size. - /// - /// - public void SetAreaLightSize(Vector2 size) - { - if (legacyLight.type.IsArea()) - { - m_ShapeWidth = size.x; - m_ShapeHeight = size.y; - HDLightRenderDatabase.instance.SetShapeWidth(lightEntity, m_ShapeWidth); - HDLightRenderDatabase.instance.SetShapeHeight(lightEntity, m_ShapeHeight); - UpdateAllLightValues(); - } - } - - /// - /// Set the box spot light size. - /// - /// - public void SetBoxSpotSize(Vector2 size) - { - if (legacyLight.type == LightType.Box) - { - shapeWidth = size.x; - shapeHeight = size.y; - } - } - #if UNITY_EDITOR /// [Editor Only] Set the lightmap bake type. public LightmapBakeType lightmapBakeType @@ -3719,10 +3537,6 @@ internal void UpdateRenderEntity() lightRenderData.shadowDimmer = m_ShadowDimmer; lightRenderData.shadowFadeDistance = m_ShadowFadeDistance; lightRenderData.volumetricShadowDimmer = m_VolumetricShadowDimmer; - lightRenderData.shapeWidth = m_ShapeWidth; - lightRenderData.shapeHeight = m_ShapeHeight; - lightRenderData.aspectRatio = m_AspectRatio; - lightRenderData.innerSpotPercent = m_InnerSpotPercent; lightRenderData.spotIESCutoffPercent = m_SpotIESCutoffPercent; lightRenderData.shapeRadius = m_ShapeRadius; lightRenderData.barnDoorLength = m_BarnDoorLength; diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Light/HDGpuLightsBuilder.Jobs.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Light/HDGpuLightsBuilder.Jobs.cs index 40f65aedbf9..e671839520f 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Light/HDGpuLightsBuilder.Jobs.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Light/HDGpuLightsBuilder.Jobs.cs @@ -175,8 +175,8 @@ public static void ConvertLightToGPUFormat( lightData.rangeAttenuationBias = hugeValue; } - float shapeWidthVal = lightRenderData.shapeWidth; - float shapeHeightVal = lightRenderData.shapeHeight; + float shapeWidthVal = light.areaSize.x; + float shapeHeightVal = light.areaSize.y; if (lightData.lightType == GPULightType.Tube) shapeHeightVal = 0; if (lightData.lightType == GPULightType.Disc) shapeHeightVal = shapeWidthVal; @@ -202,7 +202,7 @@ public static void ConvertLightToGPUFormat( { // Get width and height for the current frustum var spotAngle = light.spotAngle; - float aspectRatioValue = lightRenderData.aspectRatio; + float aspectRatioValue = Mathf.Tan(light.innerSpotAngle * Mathf.PI / 360f) / Mathf.Tan(light.spotAngle * Mathf.PI / 360f); float frustumWidth, frustumHeight; @@ -230,10 +230,9 @@ public static void ConvertLightToGPUFormat( { var spotAngle = light.spotAngle; - var innerConePercent = lightRenderData.innerSpotPercent / 100.0f; var cosSpotOuterHalfAngle = Mathf.Clamp(Mathf.Cos(spotAngle * 0.5f * Mathf.Deg2Rad), 0.0f, 1.0f); var sinSpotOuterHalfAngle = Mathf.Sqrt(1.0f - cosSpotOuterHalfAngle * cosSpotOuterHalfAngle); - var cosSpotInnerHalfAngle = Mathf.Clamp(Mathf.Cos(spotAngle * 0.5f * innerConePercent * Mathf.Deg2Rad), 0.0f, 1.0f); // inner cone + var cosSpotInnerHalfAngle = Mathf.Clamp(Mathf.Cos(light.innerSpotAngle * 0.5f * Mathf.Deg2Rad), 0.0f, 1.0f); // inner cone var val = Mathf.Max(0.0001f, (cosSpotInnerHalfAngle - cosSpotOuterHalfAngle)); lightData.angleScale = 1.0f / val; @@ -583,8 +582,8 @@ private void ConvertDirectionalLightToGPUFormat( lightData.isRayTracedContactShadow = 0.0f; // Rescale for cookies and windowing. - lightData.right = light.GetRight() * 2 / Mathf.Max(lightRenderData.shapeWidth, 0.001f); - lightData.up = light.GetUp() * 2 / Mathf.Max(lightRenderData.shapeHeight, 0.001f); + lightData.right = light.GetRight() * 2 / Mathf.Max(light.areaSize.x, 0.001f); + lightData.up = light.GetUp() * 2 / Mathf.Max(light.areaSize.y, 0.001f); lightData.positionRWS = light.GetPosition(); lightData.shadowDimmer = lightRenderData.shadowDimmer; diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Light/HDGpuLightsBuilder.LightLoop.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Light/HDGpuLightsBuilder.LightLoop.cs index f15d1374d53..8ab4ddd74bc 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Light/HDGpuLightsBuilder.LightLoop.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Light/HDGpuLightsBuilder.LightLoop.cs @@ -287,7 +287,7 @@ private void CalculateDirectionalLightDataTextureInfo( CookieParameters cookieParams = new CookieParameters() { texture = lightComponent?.cookie, - size = new Vector2(additionalLightData.shapeWidth, additionalLightData.shapeHeight), + size = lightComponent.cookieSize2D, position = light.GetPosition() }; diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Light/HDLightRenderDatabase.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Light/HDLightRenderDatabase.cs index 45f74a448e7..7b01ef0bd31 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Light/HDLightRenderDatabase.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Light/HDLightRenderDatabase.cs @@ -37,10 +37,6 @@ internal struct HDLightRenderData public float shadowDimmer; public float shadowFadeDistance; public float volumetricShadowDimmer; - public float shapeWidth; - public float shapeHeight; - public float aspectRatio; - public float innerSpotPercent; public float spotIESCutoffPercent; public float shapeRadius; public float barnDoorLength; @@ -64,9 +60,6 @@ internal struct HDAdditionalLightDataUpdateInfo public float shadowNearPlane; public float normalBias; - public float shapeHeight; - public float aspectRatio; - public float shapeWidth; public float areaLightShadowCone; public float softnessScale; public float angularDiameter; @@ -139,9 +132,6 @@ public void Set(HDAdditionalLightData additionalLightData) { shadowNearPlane = additionalLightData.shadowNearPlane; normalBias = additionalLightData.normalBias; - shapeHeight = additionalLightData.shapeHeight; - aspectRatio = additionalLightData.aspectRatio; - shapeWidth = additionalLightData.shapeWidth; areaLightShadowCone = additionalLightData.areaLightShadowCone; softnessScale = additionalLightData.softnessScale; angularDiameter = additionalLightData.angularDiameter; @@ -255,26 +245,6 @@ public ref HDAdditionalLightDataUpdateInfo EditAdditionalLightUpdateDataAsRef(in } } - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public void SetShapeWidth(in HDLightRenderEntity entity, float shapeWidth) - { - if (!entity.valid) - return; - - EditLightDataAsRef(entity).shapeWidth = shapeWidth; - EditAdditionalLightUpdateDataAsRef(entity).shapeWidth = shapeWidth; - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public void SetShapeHeight(in HDLightRenderEntity entity, float shapeHeight) - { - if (!entity.valid) - return; - - EditLightDataAsRef(entity).shapeHeight = shapeHeight; - EditAdditionalLightUpdateDataAsRef(entity).shapeHeight = shapeHeight; - } - [MethodImpl(MethodImplOptions.AggressiveInlining)] public void SetShapeRadius(in HDLightRenderEntity entity, float shapeRadius) { @@ -285,16 +255,6 @@ public void SetShapeRadius(in HDLightRenderEntity entity, float shapeRadius) EditAdditionalLightUpdateDataAsRef(entity).shapeRadius = shapeRadius; } - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public void SetAspectRatio(in HDLightRenderEntity entity, float aspectRatio) - { - if (!entity.valid) - return; - - EditLightDataAsRef(entity).aspectRatio = aspectRatio; - EditAdditionalLightUpdateDataAsRef(entity).aspectRatio = aspectRatio; - } - [MethodImpl(MethodImplOptions.AggressiveInlining)] public void SetAngularDiameter(in HDLightRenderEntity entity, float angularDiameter) { diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/LightLoop/GlobalLightLoopSettings.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/LightLoop/GlobalLightLoopSettings.cs index 65c77d909bc..ab48db34dbc 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/LightLoop/GlobalLightLoopSettings.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/LightLoop/GlobalLightLoopSettings.cs @@ -152,7 +152,7 @@ public enum CubeCookieResolution /// Possible values for one element of the Local Volumetric Fog atlas. ///
[Serializable] - [Obsolete("The texture resolution limit in volumetric fogs have been removed. This enum is unused.")] + [Obsolete("The texture resolution limit in volumetric fogs have been removed. This enum is unused. #from(2023.1)")] public enum LocalVolumetricFogResolution { /// 3D volume of 32x32x32 voxels. @@ -230,25 +230,25 @@ internal static Vector2Int GetReflectionProbeTextureCacheDim(ReflectionProbeText public int cookieAtlasLastValidMip; // We keep this property for the migration code (we need to know how many cookies we could have before). - [SerializeField, Obsolete("There is no more texture array for cookies, use cookie atlases properties instead.", false)] + [SerializeField, Obsolete("There is no more texture array for cookies, use cookie atlases properties instead. #from(2021.2)")] internal int cookieTexArraySize; // We keep this property for the migration code /// Obsolete: Use planar reflection atlas. [FormerlySerializedAs("planarReflectionTextureSize")] - [SerializeField, Obsolete("There is no more planar reflection atlas, use reflection probe atlases instead.", false)] + [SerializeField, Obsolete("There is no more planar reflection atlas, use reflection probe atlases instead. #from(2022.2)")] public PlanarReflectionAtlasResolution planarReflectionAtlasSize; // We keep this property for the migration code - [SerializeField, Obsolete("There is no more texture array for cube reflection probes, use reflection probe atlases properties instead.", false)] + [SerializeField, Obsolete("There is no more texture array for cube reflection probes, use reflection probe atlases properties instead. #from(2022.2)")] internal int reflectionProbeCacheSize; // We keep this property for the migration code - [SerializeField, Obsolete("There is no more cube reflection probe size, use cube reflection probe size tiers instead.", false)] + [SerializeField, Obsolete("There is no more cube reflection probe size, use cube reflection probe size tiers instead. #from(2022.2)")] internal CubeReflectionResolution reflectionCubemapSize; // We keep this property for the migration code - [SerializeField, Obsolete("There is no more max env light on screen, use max planar and cube reflection probes on screen instead.", false)] + [SerializeField, Obsolete("There is no more max env light on screen, use max planar and cube reflection probes on screen instead. #from(2022.2)")] internal int maxEnvLightsOnScreen; /// Enable reflection probe cache compression. @@ -287,7 +287,7 @@ internal static Vector2Int GetReflectionProbeTextureCacheDim(ReflectionProbeText public int maxLightsPerClusterCell; /// Maximum size of one Local Volumetric Fog texture. - [Obsolete("The texture resolution limit in volumetric fogs have been removed. This field is unused.")] + [Obsolete("The texture resolution limit in volumetric fogs have been removed. This field is unused. #from(2023.1)")] public LocalVolumetricFogResolution maxLocalVolumetricFogSize; /// Maximum number of Local Volumetric Fog at the same time on screen. diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/LightLoop/LightLoop.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/LightLoop/LightLoop.cs index d820562ae64..125a3b981d3 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/LightLoop/LightLoop.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/LightLoop/LightLoop.cs @@ -233,10 +233,10 @@ public enum TileClusterCategoryDebug : int /// Decals. Decal = (1 << LightCategory.Decal), /// Local Volumetric Fog. - [Obsolete("Unused")] + [Obsolete("Unused. #from(2023.1)")] LocalVolumetricFog = 0, /// Local Volumetric Fog. - [Obsolete("Unused", true)] + [Obsolete("Unused. #from(2021.2) #breakingFrom(2023.1)", true)] [InspectorName("Local Volumetric Fog")] DensityVolumes = LocalVolumetricFog }; diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Reflection/HDAdditionalReflectionData.Migration.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Reflection/HDAdditionalReflectionData.Migration.cs index 755bd0687dc..c4a9ad98e3d 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Reflection/HDAdditionalReflectionData.Migration.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Reflection/HDAdditionalReflectionData.Migration.cs @@ -110,21 +110,21 @@ static readonly MigrationDescriptionObsolete field
- [SerializeField, FormerlySerializedAs("m_InfiniteProjection"), Obsolete("For Data Migration")] + [SerializeField, FormerlySerializedAs("m_InfiniteProjection"), Obsolete("For Data Migration. #from(2021.1)")] protected bool m_ObsoleteInfiniteProjection = true; /// Obsolete field - [SerializeField, FormerlySerializedAs("m_InfluenceVolume"), Obsolete("For Data Migration")] + [SerializeField, FormerlySerializedAs("m_InfluenceVolume"), Obsolete("For Data Migration. #from(2021.1)")] protected InfluenceVolume m_ObsoleteInfluenceVolume; #pragma warning disable 618 // Type or member is obsolete - [SerializeField, FormerlySerializedAs("m_FrameSettings"), Obsolete("For Data Migration")] + [SerializeField, FormerlySerializedAs("m_FrameSettings"), Obsolete("For Data Migration. #from(2021.1)")] ObsoleteFrameSettings m_ObsoleteFrameSettings = null; #pragma warning restore 618 /// Obsolete field [SerializeField, FormerlySerializedAs("m_Multiplier"), FormerlySerializedAs("dimmer")] - [FormerlySerializedAs("m_Dimmer"), FormerlySerializedAs("multiplier"), Obsolete("For Data Migration")] + [FormerlySerializedAs("m_Dimmer"), FormerlySerializedAs("multiplier"), Obsolete("For Data Migration. #from(2021.1)")] protected float m_ObsoleteMultiplier = 1.0f; /// Obsolete field [SerializeField, FormerlySerializedAs("m_Weight"), FormerlySerializedAs("weight")] - [Obsolete("For Data Migration")] + [Obsolete("For Data Migration. #from(2021.1)")] [Range(0.0f, 1.0f)] protected float m_ObsoleteWeight = 1.0f; /// Obsolete field - [SerializeField, FormerlySerializedAs("m_Mode"), Obsolete("For Data Migration")] + [SerializeField, FormerlySerializedAs("m_Mode"), Obsolete("For Data Migration. #from(2021.1)")] protected ProbeSettings.Mode m_ObsoleteMode = ProbeSettings.Mode.Baked; - [SerializeField, FormerlySerializedAs("lightLayers"), Obsolete("For Data Migration")] + [SerializeField, FormerlySerializedAs("lightLayers"), Obsolete("For Data Migration. #from(2021.1)")] RenderingLayerMask m_ObsoleteLightLayers = RenderingLayerMask.LightLayerDefault; /// Obsolete field - [SerializeField, FormerlySerializedAs("m_CaptureSettings"), Obsolete("For Data Migration")] + [SerializeField, FormerlySerializedAs("m_CaptureSettings"), Obsolete("For Data Migration. #from(2021.1)")] internal ObsoleteCaptureSettings m_ObsoleteCaptureSettings; } } diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Reflection/HDProbe.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Reflection/HDProbe.cs index 32f91cb6f18..d07f8010dda 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Reflection/HDProbe.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Reflection/HDProbe.cs @@ -2,9 +2,11 @@ using UnityEngine.Serialization; #if UNITY_EDITOR using UnityEditor; +using static UnityEditor.SceneView; #endif using UnityEngine.Rendering; using UnityEngine.Experimental.Rendering; +using System.Collections.Generic; namespace UnityEngine.Rendering.HighDefinition { @@ -291,7 +293,7 @@ internal ProbeRenderSteps NextRenderSteps() m_RemainingRenderSteps = ProbeRenderStepsExt.FromProbeType(type); m_HasPendingRenderRequest = false; } - + if (type == ProbeSettings.ProbeType.ReflectionProbe) { // pick one bit or all remaining bits @@ -452,6 +454,103 @@ public RTHandle realtimeDepthTextureRTH /// The texture used during lighting for this probe. /// public Texture texture => GetTexture(mode); + + /// + /// Allocates a texture for the probe based on its type and resolution. + /// + /// The graphics format to use for the allocated texture. + /// + /// This method handles the allocation of textures for both reflection probes and planar probes. + /// For reflection probes, it ensures the texture matches the desired resolution and format. + /// For planar probes, it creates a texture based on the resolution or a placeholder texture if the probe is turned off. + /// + internal void AllocTexture(GraphicsFormat probeFormat) + { + switch (type) + { + case ProbeSettings.ProbeType.ReflectionProbe: + int desiredProbeSize = (int)cubeResolution; + + var desiredProbeFormat = ((HDRenderPipeline)RenderPipelineManager.currentPipeline).currentPlatformRenderPipelineSettings.lightLoopSettings.reflectionProbeFormat; + + if (realtimeTextureRTH == null || realtimeTextureRTH.rt.width != desiredProbeSize || + realtimeTextureRTH.rt.graphicsFormat != probeFormat) + { + SetTexture(ProbeSettings.Mode.Realtime, HDRenderUtilities.CreateReflectionProbeRenderTarget(desiredProbeSize, probeFormat)); + } + break; + case ProbeSettings.ProbeType.PlanarProbe: + + if (IsTurnedOff()) + { + RenderTexture rt = new RenderTexture(1, 1, 1, probeFormat) + { + dimension = TextureDimension.Tex2D, + enableRandomWrite = false, + useMipMap = true, + autoGenerateMips = false, + depth = 0 + }; + rt.Create(); + SetTexture(ProbeSettings.Mode.Realtime, rt); + } + else + { + + int desiredPlanarProbeSize = (int)resolution; + + if (realtimeTextureRTH == null || + realtimeTextureRTH.rt.width != desiredPlanarProbeSize || + realtimeTextureRTH.rt.graphicsFormat != probeFormat) + { + SetTexture(ProbeSettings.Mode.Realtime, + HDRenderUtilities.CreatePlanarProbeRenderTarget(desiredPlanarProbeSize, probeFormat)); + } + + if (realtimeDepthTextureRTH == null || + realtimeDepthTextureRTH.rt.width != desiredPlanarProbeSize) + { + SetDepthTexture(ProbeSettings.Mode.Realtime, + HDRenderUtilities.CreatePlanarProbeDepthRenderTarget(desiredPlanarProbeSize)); + } + + } + break; + } + } + + /// + /// Sets the camera anchor for planar probes based on the viewer's transform. + /// + /// A list of camera settings to update. + /// The transform of the viewer to use as the camera anchor. + /// + /// This method updates the camera settings for planar probes to use the viewer's transform as the anchor. + /// Reflection probes are ignored as they do not require camera anchors. + /// + public void SetCameraAnchor(List cameraSettings, Transform viewerTransform) + { + switch (type) + { + case ProbeSettings.ProbeType.ReflectionProbe: return; + case ProbeSettings.ProbeType.PlanarProbe: + if (!IsTurnedOff()) + { + // Set the viewer's camera as the default camera anchor + for (var i = 0; i < cameraSettings.Count; ++i) + { + var v = cameraSettings[i]; + if (v.volumes.anchorOverride == null) + { + v.volumes.anchorOverride = viewerTransform; + cameraSettings[i] = v; + } + } + } + break; + } + } + /// /// Get the texture for a specific mode. /// @@ -791,7 +890,7 @@ public virtual void PrepareCulling() { } internal void TryUpdateLuminanceSHL2ForNormalization() { #if UNITY_EDITOR - const float kValidSHThresh = 0.33f; // This threshold is used to make the code below functionally equivalent to the obsolete RetrieveProbeSH. + const float kValidSHThresh = 0.33f; // This threshold is used to make the code below functionally equivalent to the obsolete RetrieveProbeSH. m_HasValidSHForNormalization = AdditionalGIBakeRequestsManager.instance.RetrieveProbe(GetEntityId(), out m_SHValidForCapturePosition, out m_SHForNormalization, out float validity); m_HasValidSHForNormalization = m_HasValidSHForNormalization && validity < kValidSHThresh; if (m_HasValidSHForNormalization) diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Reflection/PlanarReflectionProbe.Migration.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Reflection/PlanarReflectionProbe.Migration.cs index ec772edbdb8..9e4eff17431 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Reflection/PlanarReflectionProbe.Migration.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Reflection/PlanarReflectionProbe.Migration.cs @@ -81,14 +81,14 @@ enum PlanarProbeVersion // Obsolete Properties #pragma warning disable 649 - [SerializeField, FormerlySerializedAs("m_CaptureNearPlane"), Obsolete("For data migration")] + [SerializeField, FormerlySerializedAs("m_CaptureNearPlane"), Obsolete("For data migration. #from(2021.1)")] float m_ObsoleteCaptureNearPlane = ObsoleteCaptureSettings.@default.nearClipPlane; - [SerializeField, FormerlySerializedAs("m_CaptureFarPlane"), Obsolete("For data migration")] + [SerializeField, FormerlySerializedAs("m_CaptureFarPlane"), Obsolete("For data migration. #from(2021.1)")] float m_ObsoleteCaptureFarPlane = ObsoleteCaptureSettings.@default.farClipPlane; - [SerializeField, FormerlySerializedAs("m_OverrideFieldOfView"), Obsolete("For data migration")] + [SerializeField, FormerlySerializedAs("m_OverrideFieldOfView"), Obsolete("For data migration. #from(2021.1)")] bool m_ObsoleteOverrideFieldOfView; - [SerializeField, FormerlySerializedAs("m_FieldOfViewOverride"), Obsolete("For data migration")] + [SerializeField, FormerlySerializedAs("m_FieldOfViewOverride"), Obsolete("For data migration. #from(2021.1)")] float m_ObsoleteFieldOfViewOverride = ObsoleteCaptureSettings.@default.fieldOfView; #pragma warning restore 649 } diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Reflection/Volume/InfluenceVolume.Migration.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Reflection/Volume/InfluenceVolume.Migration.cs index c5469578d99..00a61476059 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Reflection/Volume/InfluenceVolume.Migration.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Reflection/Volume/InfluenceVolume.Migration.cs @@ -30,13 +30,13 @@ enum Version // Obsolete fields #pragma warning disable 649 //never assigned - [SerializeField, FormerlySerializedAs("m_SphereBaseOffset"), Obsolete("For Data Migration")] + [SerializeField, FormerlySerializedAs("m_SphereBaseOffset"), Obsolete("For Data Migration. #from(2021.1)")] [ExcludeCopy] Vector3 m_ObsoleteSphereBaseOffset; [SerializeField, FormerlySerializedAs("m_BoxBaseOffset"), FormerlySerializedAs("m_Offset")] [ExcludeCopy] Vector3 m_ObsoleteOffset; - [Obsolete("Only used for data migration purpose. Don't use this field.")] + [Obsolete("Only used for data migration purpose. Don't use this field. #from(2021.1)")] internal Vector3 obsoleteOffset { get => m_ObsoleteOffset; set => m_ObsoleteOffset = value; } #pragma warning restore 649 //never assigned diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Reflection/Volume/ProxyVolume.Migration.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Reflection/Volume/ProxyVolume.Migration.cs index 8f9978654e4..696df88ec14 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Reflection/Volume/ProxyVolume.Migration.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Reflection/Volume/ProxyVolume.Migration.cs @@ -35,9 +35,9 @@ enum Version Version IVersionable.version { get => m_CSVersion; set => m_CSVersion = value; } // Obsolete fields - [SerializeField, FormerlySerializedAs("m_SphereInfiniteProjection"), Obsolete("For data migration")] + [SerializeField, FormerlySerializedAs("m_SphereInfiniteProjection"), Obsolete("For data migration. #from(2021.1)")] bool m_ObsoleteSphereInfiniteProjection = false; - [SerializeField, FormerlySerializedAs("m_BoxInfiniteProjection"), Obsolete("Kept only for compatibility. Use m_Shape instead")] + [SerializeField, FormerlySerializedAs("m_BoxInfiniteProjection"), Obsolete("Kept only for compatibility. Use m_Shape instead. #from(2021.1)")] bool m_ObsoleteBoxInfiniteProjection = false; /// Serialization callback diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/ScreenSpaceLighting/HDRenderPipeline.AmbientOcclusion.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/ScreenSpaceLighting/HDRenderPipeline.AmbientOcclusion.cs index 4ecbd388225..ce95b9861df 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/ScreenSpaceLighting/HDRenderPipeline.AmbientOcclusion.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/ScreenSpaceLighting/HDRenderPipeline.AmbientOcclusion.cs @@ -203,7 +203,7 @@ class RenderAOPassData TextureHandle RenderAO(RenderGraph renderGraph, in RenderAOParameters parameters, TextureHandle depthPyramid, TextureHandle normalBuffer) { - using (var builder = renderGraph.AddRenderPass("GTAO Horizon search and integration", out var passData, ProfilingSampler.Get(HDProfileId.HorizonSSAO))) + using (var builder = renderGraph.AddComputePass("GTAO Horizon search and integration", out var passData, ProfilingSampler.Get(HDProfileId.HorizonSSAO))) { builder.EnableAsyncCompute(parameters.runAsync); @@ -222,13 +222,16 @@ TextureHandle RenderAO(RenderGraph renderGraph, in RenderAOParameters parameters float scaleFactor = parameters.fullResolution ? 1.0f : 0.5f; - passData.packedData = builder.WriteTexture(renderGraph.CreateTexture(new TextureDesc(Vector2.one * scaleFactor, true, true) - { format = GraphicsFormat.R32_SFloat, enableRandomWrite = true, name = "AO Packed data" })); - passData.depthPyramid = builder.ReadTexture(depthPyramid); - passData.normalBuffer = builder.ReadTexture(normalBuffer); + passData.packedData = renderGraph.CreateTexture(new TextureDesc(Vector2.one * scaleFactor, true, true) + { format = GraphicsFormat.R32_SFloat, enableRandomWrite = true, name = "AO Packed data" }); + builder.UseTexture(passData.packedData, AccessFlags.Write); + passData.depthPyramid = depthPyramid; + builder.UseTexture(passData.depthPyramid, AccessFlags.Read); + passData.normalBuffer = normalBuffer; + builder.UseTexture(passData.normalBuffer, AccessFlags.Read); builder.SetRenderFunc( - (RenderAOPassData data, RenderGraphContext ctx) => + (RenderAOPassData data, ComputeGraphContext ctx) => { ConstantBuffer.Push(ctx.cmd, data.parameters.cb, data.gtaoCS, HDShaderIDs._ShaderVariablesAmbientOcclusion); ctx.cmd.SetComputeTextureParam(data.gtaoCS, data.gtaoKernel, HDShaderIDs._AOPackedData, data.packedData); @@ -259,7 +262,7 @@ class SpatialDenoiseAOPassData TextureHandle SpatialDenoiseAO(RenderGraph renderGraph, in RenderAOParameters parameters, TextureHandle aoPackedData) { - using (var builder = renderGraph.AddRenderPass("Spatial Denoise GTAO", out var passData)) + using (var builder = renderGraph.AddComputePass("Spatial Denoise GTAO", out var passData)) { builder.EnableAsyncCompute(parameters.runAsync); @@ -273,15 +276,21 @@ TextureHandle SpatialDenoiseAO(RenderGraph renderGraph, in RenderAOParameters pa passData.spatialDenoiseAOCS.EnableKeyword("TO_TEMPORAL"); passData.denoiseKernelSpatial = passData.spatialDenoiseAOCS.FindKernel("SpatialDenoise"); - passData.packedData = builder.ReadTexture(aoPackedData); + passData.packedData = aoPackedData; + builder.UseTexture(passData.packedData, AccessFlags.Read); if (parameters.temporalAccumulation) - passData.denoiseOutput = builder.WriteTexture(renderGraph.CreateTexture( - new TextureDesc(Vector2.one * (parameters.fullResolution ? 1.0f : 0.5f), true, true) { format = GraphicsFormat.R32_SFloat, enableRandomWrite = true, name = "AO Packed blurred data" })); + { + passData.denoiseOutput = renderGraph.CreateTexture( + new TextureDesc(Vector2.one * (parameters.fullResolution ? 1.0f : 0.5f), true, true) { format = GraphicsFormat.R32_SFloat, enableRandomWrite = true, name = "AO Packed blurred data" }); + } else - passData.denoiseOutput = builder.WriteTexture(CreateAmbientOcclusionTexture(renderGraph, parameters.fullResolution)); + { + passData.denoiseOutput = CreateAmbientOcclusionTexture(renderGraph, parameters.fullResolution); + } + builder.UseTexture(passData.denoiseOutput, AccessFlags.Write); builder.SetRenderFunc( - (SpatialDenoiseAOPassData data, RenderGraphContext ctx) => + (SpatialDenoiseAOPassData data, ComputeGraphContext ctx) => { const int groupSizeX = 8; const int groupSizeY = 8; @@ -326,7 +335,7 @@ TextureHandle TemporalDenoiseAO(RenderGraph renderGraph, TextureHandle currentHistory, TextureHandle outputHistory) { - using (var builder = renderGraph.AddRenderPass("Temporal Denoise GTAO", out var passData)) + using (var builder = renderGraph.AddComputePass("Temporal Denoise GTAO", out var passData)) { builder.EnableAsyncCompute(parameters.runAsync); @@ -344,14 +353,19 @@ TextureHandle TemporalDenoiseAO(RenderGraph renderGraph, passData.denoiseKernelCopyHistory = passData.copyHistoryAOCS.FindKernel("GTAODenoise_CopyHistory"); passData.historyReady = m_AOHistoryReady; - passData.motionVectors = builder.ReadTexture(motionVectors); - passData.currentHistory = builder.ReadTexture(currentHistory); // can also be written on first frame, but since it's an imported resource, it doesn't matter in term of lifetime. - passData.outputHistory = builder.WriteTexture(outputHistory); - passData.packedDataBlurred = builder.ReadTexture(aoPackedDataBlurred); - passData.denoiseOutput = builder.WriteTexture(CreateAmbientOcclusionTexture(renderGraph, parameters.fullResolution)); + passData.motionVectors = motionVectors; + builder.UseTexture(passData.motionVectors, AccessFlags.Read); + passData.currentHistory = currentHistory; + builder.UseTexture(passData.currentHistory, AccessFlags.Read); // can also be written on first frame, but since it's an imported resource, it doesn't matter in term of lifetime. + passData.outputHistory = outputHistory; + builder.UseTexture(passData.outputHistory, AccessFlags.Write); + passData.packedDataBlurred = aoPackedDataBlurred; + builder.UseTexture(passData.packedDataBlurred, AccessFlags.Read); + passData.denoiseOutput = CreateAmbientOcclusionTexture(renderGraph, parameters.fullResolution); + builder.UseTexture(passData.denoiseOutput, AccessFlags.Write); builder.SetRenderFunc( - (TemporalDenoiseAOPassData data, RenderGraphContext ctx) => + (TemporalDenoiseAOPassData data, ComputeGraphContext ctx) => { const int groupSizeX = 8; const int groupSizeY = 8; @@ -398,7 +412,7 @@ TextureHandle UpsampleAO(RenderGraph renderGraph, in RenderAOParameters paramete if (parameters.fullResolution) return input; - using (var builder = renderGraph.AddRenderPass("Upsample GTAO", out var passData, ProfilingSampler.Get(HDProfileId.UpSampleSSAO))) + using (var builder = renderGraph.AddComputePass("Upsample GTAO", out var passData, ProfilingSampler.Get(HDProfileId.UpSampleSSAO))) { builder.EnableAsyncCompute(parameters.runAsync); @@ -408,12 +422,15 @@ TextureHandle UpsampleAO(RenderGraph renderGraph, in RenderAOParameters paramete passData.upsampleAOKernel = passData.upsampleAndBlurAOCS.FindKernel(parameters.bilateralUpsample ? "BilateralUpsampling" : "BoxUpsampling"); else passData.upsampleAOKernel = passData.upsampleAndBlurAOCS.FindKernel("BlurUpsample"); - passData.input = builder.ReadTexture(input); - passData.depthTexture = builder.ReadTexture(depthTexture); - passData.output = builder.WriteTexture(CreateAmbientOcclusionTexture(renderGraph, true)); + passData.input = input; + builder.UseTexture(passData.input, AccessFlags.Read); + passData.depthTexture = depthTexture; + builder.UseTexture(passData.depthTexture, AccessFlags.Read); + passData.output = CreateAmbientOcclusionTexture(renderGraph, true); + builder.UseTexture(passData.output, AccessFlags.Write); builder.SetRenderFunc( - (UpsampleAOPassData data, RenderGraphContext ctx) => + (UpsampleAOPassData data, ComputeGraphContext ctx) => { ConstantBuffer.Set(ctx.cmd, data.upsampleAndBlurAOCS, HDShaderIDs._ShaderVariablesAmbientOcclusion); diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/ScreenSpaceLighting/HDRenderPipeline.ScreenSpaceGlobalIllumination.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/ScreenSpaceLighting/HDRenderPipeline.ScreenSpaceGlobalIllumination.cs index 3f5cd908573..ee9d651b243 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/ScreenSpaceLighting/HDRenderPipeline.ScreenSpaceGlobalIllumination.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/ScreenSpaceLighting/HDRenderPipeline.ScreenSpaceGlobalIllumination.cs @@ -171,10 +171,8 @@ internal Vector2 GetSSGILowResPercentage(HDCamera hdCamera) TextureHandle TraceSSGI(RenderGraph renderGraph, HDCamera hdCamera, GlobalIllumination giSettings, TextureHandle depthPyramid, TextureHandle normalBuffer, TextureHandle stencilBuffer, TextureHandle motionVectorsBuffer, BufferHandle lightList) { - using (var builder = renderGraph.AddRenderPass("Trace SSGI", out var passData, ProfilingSampler.Get(HDProfileId.SSGITrace))) + using (var builder = renderGraph.AddUnsafePass("Trace SSGI", out var passData, ProfilingSampler.Get(HDProfileId.SSGITrace))) { - builder.EnableAsyncCompute(false); - if (giSettings.fullResolutionSS.value) { passData.lowResPercentage = 1.0f; @@ -210,37 +208,49 @@ TextureHandle TraceSSGI(RenderGraph renderGraph, HDCamera hdCamera, GlobalIllumi passData.shaderVariablesRayTracingCB = m_ShaderVariablesRayTracingCB; passData.offsetBuffer = hdCamera.depthBufferMipChainInfo.GetOffsetBufferData(m_DepthPyramidMipLevelOffsetsBuffer); - passData.lightList = builder.ReadBuffer(lightList); - passData.depthTexture = builder.ReadTexture(depthPyramid); - passData.normalBuffer = builder.ReadTexture(normalBuffer); - passData.stencilBuffer = builder.ReadTexture(stencilBuffer); + passData.lightList = lightList; + builder.UseBuffer(passData.lightList, AccessFlags.Read); + passData.depthTexture = depthPyramid; + builder.UseTexture(passData.depthTexture, AccessFlags.Read); + passData.normalBuffer = normalBuffer; + builder.UseTexture(passData.normalBuffer, AccessFlags.Read); + passData.stencilBuffer = stencilBuffer; + builder.UseTexture(passData.stencilBuffer, AccessFlags.Read); if (!hdCamera.frameSettings.IsEnabled(FrameSettingsField.ObjectMotionVectors)) - { - passData.motionVectorsBuffer = builder.ReadTexture(renderGraph.defaultResources.blackTextureXR); - } + passData.motionVectorsBuffer = renderGraph.defaultResources.blackTextureXR; else - { - passData.motionVectorsBuffer = builder.ReadTexture(motionVectorsBuffer); - } + passData.motionVectorsBuffer = motionVectorsBuffer; + builder.UseTexture(passData.motionVectorsBuffer, AccessFlags.Read); // History buffers var colorPyramid = hdCamera.GetPreviousFrameRT((int)HDCameraFrameHistoryType.ColorBufferMipChain); - passData.colorPyramid = colorPyramid != null ? builder.ReadTexture(renderGraph.ImportTexture(colorPyramid)) : renderGraph.defaultResources.blackTextureXR; + if (colorPyramid != null) + passData.colorPyramid = renderGraph.ImportTexture(colorPyramid); + else + passData.colorPyramid = renderGraph.defaultResources.blackTextureXR; + builder.UseTexture(passData.colorPyramid, AccessFlags.Read); + var historyDepth = hdCamera.GetCurrentFrameRT((int)HDCameraFrameHistoryType.Depth); - passData.historyDepth = historyDepth != null ? builder.ReadTexture(renderGraph.ImportTexture(historyDepth)) : renderGraph.defaultResources.blackTextureXR; + if (historyDepth != null) + passData.historyDepth = renderGraph.ImportTexture(historyDepth); + else + passData.historyDepth = renderGraph.defaultResources.blackTextureXR; + builder.UseTexture(passData.historyDepth, AccessFlags.Read); // Temporary textures passData.hitPointBuffer = builder.CreateTransientTexture(new TextureDesc(Vector2.one, true, true) { format = GraphicsFormat.R16G16_SFloat, enableRandomWrite = true, name = "SSGI Hit Point" }); // Output textures - passData.outputBuffer = builder.WriteTexture(renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) - { format = GraphicsFormat.B10G11R11_UFloatPack32, enableRandomWrite = true, name = "SSGI Color" })); + passData.outputBuffer = renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) + { format = GraphicsFormat.B10G11R11_UFloatPack32, enableRandomWrite = true, name = "SSGI Color" }); + builder.UseTexture(passData.outputBuffer, AccessFlags.Write); builder.SetRenderFunc( - (TraceSSGIPassData data, RenderGraphContext ctx) => + (TraceSSGIPassData data, UnsafeGraphContext ctx) => { + var natCmd = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); int ssgiTileSize = 8; int numTilesXHR = (data.texWidth + (ssgiTileSize - 1)) / ssgiTileSize; int numTilesYHR = (data.texHeight + (ssgiTileSize - 1)) / ssgiTileSize; @@ -250,52 +260,52 @@ TextureHandle TraceSSGI(RenderGraph renderGraph, HDCamera hdCamera, GlobalIllumi float f = data.farClipPlane; float thicknessScale = 1.0f / (1.0f + data.thickness); float thicknessBias = -n / (f - n) * (data.thickness * thicknessScale); - ctx.cmd.SetComputeFloatParam(data.ssGICS, HDShaderIDs._RayMarchingThicknessScale, thicknessScale); - ctx.cmd.SetComputeFloatParam(data.ssGICS, HDShaderIDs._RayMarchingThicknessBias, thicknessBias); - ctx.cmd.SetComputeIntParam(data.ssGICS, HDShaderIDs._RayMarchingSteps, data.raySteps); - ctx.cmd.SetComputeIntParam(data.ssGICS, HDShaderIDs._RayMarchingReflectSky, 1); - ctx.cmd.SetComputeIntParam(data.ssGICS, HDShaderIDs._IndirectDiffuseFrameIndex, data.frameIndex); + natCmd.SetComputeFloatParam(data.ssGICS, HDShaderIDs._RayMarchingThicknessScale, thicknessScale); + natCmd.SetComputeFloatParam(data.ssGICS, HDShaderIDs._RayMarchingThicknessBias, thicknessBias); + natCmd.SetComputeIntParam(data.ssGICS, HDShaderIDs._RayMarchingSteps, data.raySteps); + natCmd.SetComputeIntParam(data.ssGICS, HDShaderIDs._RayMarchingReflectSky, 1); + natCmd.SetComputeIntParam(data.ssGICS, HDShaderIDs._IndirectDiffuseFrameIndex, data.frameIndex); // Inject the ray-tracing sampling data - BlueNoise.BindDitheredTextureSet(ctx.cmd, data.ditheredTextureSet); + BlueNoise.BindDitheredTextureSet(natCmd, data.ditheredTextureSet); // Inject all the input textures/buffers - ctx.cmd.SetComputeTextureParam(data.ssGICS, data.traceKernel, HDShaderIDs._DepthTexture, data.depthTexture); - ctx.cmd.SetComputeTextureParam(data.ssGICS, data.traceKernel, HDShaderIDs._NormalBufferTexture, data.normalBuffer); - ctx.cmd.SetComputeTextureParam(data.ssGICS, data.traceKernel, HDShaderIDs._IndirectDiffuseHitPointTextureRW, data.hitPointBuffer); - ctx.cmd.SetComputeBufferParam(data.ssGICS, data.traceKernel, HDShaderIDs._DepthPyramidMipLevelOffsets, data.offsetBuffer); - ctx.cmd.SetComputeBufferParam(data.ssGICS, data.traceKernel, HDShaderIDs.g_vLightListTile, data.lightList); - ctx.cmd.SetComputeFloatParam(data.ssGICS, HDShaderIDs._RayMarchingLowResPercentageInv, 1.0f / data.lowResPercentage); - ctx.cmd.SetComputeFloatParam(data.ssGICS, HDShaderIDs._SSGILayerMask, (uint)data.apvLayerMask); + natCmd.SetComputeTextureParam(data.ssGICS, data.traceKernel, HDShaderIDs._DepthTexture, data.depthTexture); + natCmd.SetComputeTextureParam(data.ssGICS, data.traceKernel, HDShaderIDs._NormalBufferTexture, data.normalBuffer); + natCmd.SetComputeTextureParam(data.ssGICS, data.traceKernel, HDShaderIDs._IndirectDiffuseHitPointTextureRW, data.hitPointBuffer); + natCmd.SetComputeBufferParam(data.ssGICS, data.traceKernel, HDShaderIDs._DepthPyramidMipLevelOffsets, data.offsetBuffer); + natCmd.SetComputeBufferParam(data.ssGICS, data.traceKernel, HDShaderIDs.g_vLightListTile, data.lightList); + natCmd.SetComputeFloatParam(data.ssGICS, HDShaderIDs._RayMarchingLowResPercentageInv, 1.0f / data.lowResPercentage); + natCmd.SetComputeFloatParam(data.ssGICS, HDShaderIDs._SSGILayerMask, (uint)data.apvLayerMask); // Do the ray marching - ctx.cmd.DispatchCompute(data.ssGICS, data.traceKernel, numTilesXHR, numTilesYHR, data.viewCount); + natCmd.DispatchCompute(data.ssGICS, data.traceKernel, numTilesXHR, numTilesYHR, data.viewCount); // Update global constant buffer. // This should probably be a shader specific uniform instead of reusing the global constant buffer one since it's the only one updated here. - ConstantBuffer.PushGlobal(ctx.cmd, data.shaderVariablesRayTracingCB, HDShaderIDs._ShaderVariablesRaytracing); + ConstantBuffer.PushGlobal(natCmd, data.shaderVariablesRayTracingCB, HDShaderIDs._ShaderVariablesRaytracing); // Inject all the input scalars - ctx.cmd.SetComputeIntParam(data.ssGICS, HDShaderIDs._ObjectMotionStencilBit, (int)StencilUsage.ObjectMotionVector); - ctx.cmd.SetComputeIntParam(data.ssGICS, HDShaderIDs._RayMarchingFallbackHierarchy, data.rayMiss); - ctx.cmd.SetComputeFloatParam(data.ssGICS, HDShaderIDs._RayMarchingLowResPercentageInv, 1.0f / data.lowResPercentage); + natCmd.SetComputeIntParam(data.ssGICS, HDShaderIDs._ObjectMotionStencilBit, (int)StencilUsage.ObjectMotionVector); + natCmd.SetComputeIntParam(data.ssGICS, HDShaderIDs._RayMarchingFallbackHierarchy, data.rayMiss); + natCmd.SetComputeFloatParam(data.ssGICS, HDShaderIDs._RayMarchingLowResPercentageInv, 1.0f / data.lowResPercentage); // Bind all the input buffers - ctx.cmd.SetComputeTextureParam(data.ssGICS, data.projectKernel, HDShaderIDs._DepthTexture, data.depthTexture); - ctx.cmd.SetComputeTextureParam(data.ssGICS, data.projectKernel, HDShaderIDs._StencilTexture, data.stencilBuffer, 0, RenderTextureSubElement.Stencil); - ctx.cmd.SetComputeTextureParam(data.ssGICS, data.projectKernel, HDShaderIDs._NormalBufferTexture, data.normalBuffer); - ctx.cmd.SetComputeTextureParam(data.ssGICS, data.projectKernel, HDShaderIDs._CameraMotionVectorsTexture, data.motionVectorsBuffer); - ctx.cmd.SetComputeTextureParam(data.ssGICS, data.projectKernel, HDShaderIDs._IndirectDiffuseHitPointTexture, data.hitPointBuffer); - ctx.cmd.SetComputeTextureParam(data.ssGICS, data.projectKernel, HDShaderIDs._ColorPyramidTexture, data.colorPyramid); - ctx.cmd.SetComputeTextureParam(data.ssGICS, data.projectKernel, HDShaderIDs._HistoryDepthTexture, data.historyDepth); - ctx.cmd.SetComputeBufferParam(data.ssGICS, data.projectKernel, HDShaderIDs._DepthPyramidMipLevelOffsets, data.offsetBuffer); - ctx.cmd.SetComputeBufferParam(data.ssGICS, data.projectKernel, HDShaderIDs.g_vLightListTile, data.lightList); + natCmd.SetComputeTextureParam(data.ssGICS, data.projectKernel, HDShaderIDs._DepthTexture, data.depthTexture); + natCmd.SetComputeTextureParam(data.ssGICS, data.projectKernel, HDShaderIDs._StencilTexture, data.stencilBuffer, 0, RenderTextureSubElement.Stencil); + natCmd.SetComputeTextureParam(data.ssGICS, data.projectKernel, HDShaderIDs._NormalBufferTexture, data.normalBuffer); + natCmd.SetComputeTextureParam(data.ssGICS, data.projectKernel, HDShaderIDs._CameraMotionVectorsTexture, data.motionVectorsBuffer); + natCmd.SetComputeTextureParam(data.ssGICS, data.projectKernel, HDShaderIDs._IndirectDiffuseHitPointTexture, data.hitPointBuffer); + natCmd.SetComputeTextureParam(data.ssGICS, data.projectKernel, HDShaderIDs._ColorPyramidTexture, data.colorPyramid); + natCmd.SetComputeTextureParam(data.ssGICS, data.projectKernel, HDShaderIDs._HistoryDepthTexture, data.historyDepth); + natCmd.SetComputeBufferParam(data.ssGICS, data.projectKernel, HDShaderIDs._DepthPyramidMipLevelOffsets, data.offsetBuffer); + natCmd.SetComputeBufferParam(data.ssGICS, data.projectKernel, HDShaderIDs.g_vLightListTile, data.lightList); // Bind the output texture - ctx.cmd.SetComputeTextureParam(data.ssGICS, data.projectKernel, HDShaderIDs._IndirectDiffuseTextureRW, data.outputBuffer); + natCmd.SetComputeTextureParam(data.ssGICS, data.projectKernel, HDShaderIDs._IndirectDiffuseTextureRW, data.outputBuffer); // Do the re-projection - ctx.cmd.DispatchCompute(data.ssGICS, data.projectKernel, numTilesXHR, numTilesYHR, data.viewCount); + natCmd.DispatchCompute(data.ssGICS, data.projectKernel, numTilesXHR, numTilesYHR, data.viewCount); }); return passData.outputBuffer; @@ -323,10 +333,8 @@ class UpscaleSSGIPassData TextureHandle UpscaleSSGI(RenderGraph renderGraph, HDCamera hdCamera, GlobalIllumination giSettings, HDUtils.PackedMipChainInfo info, TextureHandle depthPyramid, TextureHandle inputBuffer) { - using (var builder = renderGraph.AddRenderPass("Upscale SSGI", out var passData, ProfilingSampler.Get(HDProfileId.SSGIUpscale))) + using (var builder = renderGraph.AddUnsafePass("Upscale SSGI", out var passData, ProfilingSampler.Get(HDProfileId.SSGIUpscale))) { - builder.EnableAsyncCompute(false); - // Set the camera parameters passData.texWidth = hdCamera.actualWidth; passData.texHeight = hdCamera.actualHeight; @@ -353,14 +361,18 @@ TextureHandle UpscaleSSGI(RenderGraph renderGraph, HDCamera hdCamera, GlobalIllu passData.bilateralUpsampleCS = runtimeShaders.bilateralUpsampleCS; passData.upscaleKernel = passData.lowResPercentage == 0.5f ? m_BilateralUpSampleColorKernelHalf : m_BilateralUpSampleColorKernel; - passData.depthTexture = builder.ReadTexture(depthPyramid); - passData.inputBuffer = builder.ReadTexture(inputBuffer); - passData.outputBuffer = builder.WriteTexture(renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) - { format = GraphicsFormat.B10G11R11_UFloatPack32, enableRandomWrite = true, name = "SSGI Final" })); + passData.depthTexture = depthPyramid; + builder.UseTexture(passData.depthTexture, AccessFlags.Read); + passData.inputBuffer = inputBuffer; + builder.UseTexture(passData.inputBuffer, AccessFlags.Read); + passData.outputBuffer = renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) + { format = GraphicsFormat.B10G11R11_UFloatPack32, enableRandomWrite = true, name = "SSGI Final" }); + builder.UseTexture(passData.outputBuffer, AccessFlags.Write); builder.SetRenderFunc( - (UpscaleSSGIPassData data, RenderGraphContext ctx) => + (UpscaleSSGIPassData data, UnsafeGraphContext ctx) => { + var natCmd = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); // Re-evaluate the dispatch parameters (we are evaluating the upsample in full resolution) int ssgiTileSize = 8; int numTilesXHR = (data.texWidth + (ssgiTileSize - 1)) / ssgiTileSize; @@ -368,18 +380,18 @@ TextureHandle UpscaleSSGI(RenderGraph renderGraph, HDCamera hdCamera, GlobalIllu ConstantBuffer.PushGlobal(ctx.cmd, data.shaderVariablesBilateralUpsampleCB, HDShaderIDs._ShaderVariablesBilateralUpsample); - ctx.cmd.SetComputeFloatParam(data.bilateralUpsampleCS, HDShaderIDs._RayMarchingLowResPercentage, data.lowResPercentage); + natCmd.SetComputeFloatParam(data.bilateralUpsampleCS, HDShaderIDs._RayMarchingLowResPercentage, data.lowResPercentage); // Inject all the input buffers - ctx.cmd.SetComputeTextureParam(data.bilateralUpsampleCS, data.upscaleKernel, HDShaderIDs._DepthTexture, data.depthTexture); - ctx.cmd.SetComputeTextureParam(data.bilateralUpsampleCS, data.upscaleKernel, HDShaderIDs._LowResolutionTexture, data.inputBuffer); - ctx.cmd.SetComputeVectorParam(data.bilateralUpsampleCS, HDShaderIDs._HalfScreenSize, data.halfScreenSize); + natCmd.SetComputeTextureParam(data.bilateralUpsampleCS, data.upscaleKernel, HDShaderIDs._DepthTexture, data.depthTexture); + natCmd.SetComputeTextureParam(data.bilateralUpsampleCS, data.upscaleKernel, HDShaderIDs._LowResolutionTexture, data.inputBuffer); + natCmd.SetComputeVectorParam(data.bilateralUpsampleCS, HDShaderIDs._HalfScreenSize, data.halfScreenSize); // Inject the output textures - ctx.cmd.SetComputeTextureParam(data.bilateralUpsampleCS, data.upscaleKernel, HDShaderIDs._OutputUpscaledTexture, data.outputBuffer); + natCmd.SetComputeTextureParam(data.bilateralUpsampleCS, data.upscaleKernel, HDShaderIDs._OutputUpscaledTexture, data.outputBuffer); // Upscale the buffer to full resolution - ctx.cmd.DispatchCompute(data.bilateralUpsampleCS, data.upscaleKernel, numTilesXHR, numTilesYHR, data.viewCount); + natCmd.DispatchCompute(data.bilateralUpsampleCS, data.upscaleKernel, numTilesXHR, numTilesYHR, data.viewCount); }); return passData.outputBuffer; } diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Shadow/AdditionalShadowData.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Shadow/AdditionalShadowData.cs index dadf0fbc2d5..16cf9d96cf0 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Shadow/AdditionalShadowData.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Shadow/AdditionalShadowData.cs @@ -4,60 +4,60 @@ namespace UnityEngine.Rendering { [RequireComponent(typeof(Light))] - [Obsolete("This component will be removed in the future, it's content have been moved to HDAdditionalLightData.")] + [Obsolete("This component will be removed in the future, it's content have been moved to HDAdditionalLightData. #from(2021.1)")] [ExecuteAlways] class AdditionalShadowData : MonoBehaviour { [SerializeField] - [Obsolete("Obsolete, use HDAdditionalLightData.customResolution instead.")] + [Obsolete("Obsolete, use HDAdditionalLightData.customResolution instead. #from(2021.1)")] [UnityEngine.Serialization.FormerlySerializedAs("shadowResolution")] internal int customResolution = HDAdditionalLightData.k_DefaultShadowResolution; [SerializeField] [Range(0.0f, 1.0f)] - [Obsolete("Obsolete, use HDAdditionalLightData.shadowDimmer instead.")] + [Obsolete("Obsolete, use HDAdditionalLightData.shadowDimmer instead. #from(2021.1)")] internal float shadowDimmer = 1.0f; [SerializeField] [Range(0.0f, 1.0f)] - [Obsolete("Obsolete, use HDAdditionalLightData.volumetricShadowDimmer instead.")] + [Obsolete("Obsolete, use HDAdditionalLightData.volumetricShadowDimmer instead. #from(2021.1)")] internal float volumetricShadowDimmer = 1.0f; [SerializeField] - [Obsolete("Obsolete, use HDAdditionalLightData.shadowFadeDistance instead.")] + [Obsolete("Obsolete, use HDAdditionalLightData.shadowFadeDistance instead. #from(2021.1)")] internal float shadowFadeDistance = 10000.0f; [SerializeField] - [Obsolete("Obsolete, use HDAdditionalLightData.contactShadows instead.")] + [Obsolete("Obsolete, use HDAdditionalLightData.contactShadows instead. #from(2021.1)")] internal bool contactShadows = false; [SerializeField] - [Obsolete("Obsolete, use HDAdditionalLightData.shadowTint instead.")] + [Obsolete("Obsolete, use HDAdditionalLightData.shadowTint instead. #from(2021.1)")] internal Color shadowTint = Color.black; // bias control [SerializeField] - [Obsolete("Obsolete, use HDAdditionalLightData.normalBias instead.")] + [Obsolete("Obsolete, use HDAdditionalLightData.normalBias instead. #from(2021.1)")] internal float normalBias = 0.75f; [SerializeField] - [Obsolete("Obsolete, use HDAdditionalLightData.shadowUpdateMode instead.")] + [Obsolete("Obsolete, use HDAdditionalLightData.shadowUpdateMode instead. #from(2021.1)")] internal ShadowUpdateMode shadowUpdateMode = ShadowUpdateMode.EveryFrame; [HideInInspector, SerializeField] - [Obsolete("Obsolete, use HDAdditionalLightData.shadowCascadeRatios instead.")] + [Obsolete("Obsolete, use HDAdditionalLightData.shadowCascadeRatios instead. #from(2021.1)")] internal float[] shadowCascadeRatios = new float[3] { 0.05f, 0.2f, 0.3f }; [HideInInspector, SerializeField] - [Obsolete("Obsolete, use HDAdditionalLightData.shadowCascadeBorders instead.")] + [Obsolete("Obsolete, use HDAdditionalLightData.shadowCascadeBorders instead. #from(2021.1)")] internal float[] shadowCascadeBorders = new float[4] { 0.2f, 0.2f, 0.2f, 0.2f }; [HideInInspector, SerializeField] - [Obsolete("Obsolete, use HDAdditionalLightData.shadowAlgorithm instead.")] + [Obsolete("Obsolete, use HDAdditionalLightData.shadowAlgorithm instead. #from(2021.1)")] internal int shadowAlgorithm = 0; [HideInInspector, SerializeField] - [Obsolete("Obsolete, use HDAdditionalLightData.shadowVariant instead.")] + [Obsolete("Obsolete, use HDAdditionalLightData.shadowVariant instead. #from(2021.1)")] internal int shadowVariant = 0; [HideInInspector, SerializeField] - [Obsolete("Obsolete, use HDAdditionalLightData.shadowPrecision instead.")] + [Obsolete("Obsolete, use HDAdditionalLightData.shadowPrecision instead. #from(2021.1)")] internal int shadowPrecision = 0; } } diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Shadow/HDDynamicShadowAtlas.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Shadow/HDDynamicShadowAtlas.cs index 2afd5bdb1c7..9345af1ff61 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Shadow/HDDynamicShadowAtlas.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Shadow/HDDynamicShadowAtlas.cs @@ -238,25 +238,28 @@ public unsafe void BlitCachedIntoAtlas(RenderGraph renderGraph, TextureHandle ca { if (m_MixedRequestsPendingBlits.Length > 0) { - using (var builder = renderGraph.AddRenderPass(passName, out var passData, ProfilingSampler.Get(profileID))) + using (var builder = renderGraph.AddUnsafePass(passName, out var passData, ProfilingSampler.Get(profileID))) { passData.requestsWaitingBlits = m_MixedRequestsPendingBlits; passData.blitMaterial = blitMaterial; passData.cachedShadowAtlasSize = cachedAtlasSize; - passData.sourceCachedAtlas = builder.ReadTexture(cachedAtlasTexture); - passData.atlasTexture = builder.WriteTexture(GetShadowMapDepthTexture(renderGraph)); + passData.sourceCachedAtlas = cachedAtlasTexture; + builder.UseTexture(passData.sourceCachedAtlas, AccessFlags.Read); + passData.atlasTexture = GetShadowMapDepthTexture(renderGraph); + builder.UseTexture(passData.atlasTexture, AccessFlags.Write); builder.SetRenderFunc( - (BlitCachedShadowPassData data, RenderGraphContext ctx) => + (BlitCachedShadowPassData data, UnsafeGraphContext ctx) => { + var natCmd = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); NativeList requestStorage = HDShadowRequestDatabase.instance.hdShadowRequestStorage; ref UnsafeList requestStorageUnsafe = ref *requestStorage.GetUnsafeList(); foreach (var requestHandle in data.requestsWaitingBlits) { ref var request = ref requestStorageUnsafe.ElementAt(requestHandle.storageIndexForShadowRequest); var mpb = ctx.renderGraphPool.GetTempMaterialPropertyBlock(); - ctx.cmd.SetRenderTarget(data.atlasTexture); - ctx.cmd.SetViewport(request.dynamicAtlasViewport); + natCmd.SetRenderTarget(data.atlasTexture); + natCmd.SetViewport(request.dynamicAtlasViewport); Vector4 sourceScaleBias = new Vector4(request.cachedAtlasViewport.width / data.cachedShadowAtlasSize.x, request.cachedAtlasViewport.height / data.cachedShadowAtlasSize.y, @@ -265,7 +268,7 @@ public unsafe void BlitCachedIntoAtlas(RenderGraph renderGraph, TextureHandle ca mpb.SetTexture(HDShaderIDs._CachedShadowmapAtlas, data.sourceCachedAtlas); mpb.SetVector(HDShaderIDs._BlitScaleBias, sourceScaleBias); - CoreUtils.DrawFullScreen(ctx.cmd, data.blitMaterial, mpb, 0); + CoreUtils.DrawFullScreen(natCmd, data.blitMaterial, mpb, 0); } data.requestsWaitingBlits.Clear(); diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Shadow/HDRenderPIpeline.ScreenSpaceShadowsArea.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Shadow/HDRenderPIpeline.ScreenSpaceShadowsArea.cs index c2a2c963e67..a2c8a5a4e2d 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Shadow/HDRenderPIpeline.ScreenSpaceShadowsArea.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Shadow/HDRenderPIpeline.ScreenSpaceShadowsArea.cs @@ -65,7 +65,7 @@ static void ExecuteSSSAreaRayTrace(CommandBuffer cmd, RTShadowAreaPassData data) cmd.SetRayTracingTextureParam(data.screenSpaceShadowsRT, HDShaderIDs._RaytracedAreaShadowIntegration, data.outputShadowTexture); // Evaluate the intersection - cmd.DispatchRays(data.screenSpaceShadowsRT, m_RayGenAreaShadowSingleName, (uint)data.texWidth, (uint)data.texHeight, (uint)data.viewCount); + cmd.DispatchRays(data.screenSpaceShadowsRT, m_RayGenAreaShadowSingleName, (uint)data.texWidth, (uint)data.texHeight, (uint)data.viewCount, null); // Let's do the following samples (if any) for (int sampleIndex = 1; sampleIndex < data.numSamples; ++sampleIndex) @@ -108,7 +108,7 @@ static void ExecuteSSSAreaRayTrace(CommandBuffer cmd, RTShadowAreaPassData data) cmd.SetRayTracingTextureParam(data.screenSpaceShadowsRT, HDShaderIDs._RaytracedAreaShadowIntegration, data.outputShadowTexture); // Evaluate the intersection - cmd.DispatchRays(data.screenSpaceShadowsRT, m_RayGenAreaShadowSingleName, (uint)data.texWidth, (uint)data.texHeight, (uint)data.viewCount); + cmd.DispatchRays(data.screenSpaceShadowsRT, m_RayGenAreaShadowSingleName, (uint)data.texWidth, (uint)data.texHeight, (uint)data.viewCount, null); } if (data.filterTracedShadow) @@ -252,7 +252,7 @@ void RenderAreaScreenSpaceShadow(RenderGraph renderGraph, HDCamera hdCamera RTHandle analyticHistoryArray = RequestShadowHistoryValidityBuffer(hdCamera); TextureHandle areaShadow; - using (var builder = renderGraph.AddRenderPass("Screen Space Shadows Debug", out var passData, ProfilingSampler.Get(HDProfileId.RaytracingAreaLightShadow))) + using (var builder = renderGraph.AddUnsafePass("Screen Space Shadows Debug", out var passData, ProfilingSampler.Get(HDProfileId.RaytracingAreaLightShadow))) { // Set the camera parameters passData.texWidth = hdCamera.actualWidth; @@ -298,27 +298,37 @@ void RenderAreaScreenSpaceShadow(RenderGraph renderGraph, HDCamera hdCamera passData.ditheredTextureSet = GetBlueNoiseManager().DitheredTextureSet8SPP(); // Input Buffers - passData.depthStencilBuffer = builder.UseDepthBuffer(depthBuffer, DepthAccess.Read); - passData.normalBuffer = builder.ReadTexture(normalBuffer); - passData.motionVectorsBuffer = builder.ReadTexture(motionVectorsBuffer); + passData.depthStencilBuffer = depthBuffer; + builder.UseTexture(passData.depthStencilBuffer, AccessFlags.Read); + passData.normalBuffer = normalBuffer; + builder.UseTexture(passData.normalBuffer, AccessFlags.Read); + passData.motionVectorsBuffer = motionVectorsBuffer; + builder.UseTexture(passData.motionVectorsBuffer, AccessFlags.Read); if (hdCamera.frameSettings.litShaderMode == LitShaderMode.Deferred) { - passData.gbuffer0 = builder.ReadTexture(prepassOutput.gbuffer.mrt[0]); - passData.gbuffer1 = builder.ReadTexture(prepassOutput.gbuffer.mrt[1]); - passData.gbuffer2 = builder.ReadTexture(prepassOutput.gbuffer.mrt[2]); - passData.gbuffer3 = builder.ReadTexture(prepassOutput.gbuffer.mrt[3]); + passData.gbuffer0 = prepassOutput.gbuffer.mrt[0]; + passData.gbuffer1 = prepassOutput.gbuffer.mrt[1]; + passData.gbuffer2 = prepassOutput.gbuffer.mrt[2]; + passData.gbuffer3 = prepassOutput.gbuffer.mrt[3]; } else { - passData.gbuffer0 = builder.ReadTexture(renderGraph.defaultResources.blackTextureXR); - passData.gbuffer1 = builder.ReadTexture(renderGraph.defaultResources.blackTextureXR); - passData.gbuffer2 = builder.ReadTexture(renderGraph.defaultResources.blackTextureXR); - passData.gbuffer3 = builder.ReadTexture(renderGraph.defaultResources.blackTextureXR); + passData.gbuffer0 = renderGraph.defaultResources.blackTextureXR; + passData.gbuffer1 = renderGraph.defaultResources.blackTextureXR; + passData.gbuffer2 = renderGraph.defaultResources.blackTextureXR; + passData.gbuffer3 = renderGraph.defaultResources.blackTextureXR; } - passData.shadowHistoryArray = builder.ReadWriteTexture(renderGraph.ImportTexture(shadowHistoryArray)); - passData.analyticHistoryArray = builder.ReadWriteTexture(renderGraph.ImportTexture(analyticHistoryArray)); + builder.UseTexture(passData.gbuffer0, AccessFlags.Read); + builder.UseTexture(passData.gbuffer1, AccessFlags.Read); + builder.UseTexture(passData.gbuffer2, AccessFlags.Read); + builder.UseTexture(passData.gbuffer3, AccessFlags.Read); + + passData.shadowHistoryArray = renderGraph.ImportTexture(shadowHistoryArray); + builder.UseTexture(passData.shadowHistoryArray, AccessFlags.ReadWrite); + passData.analyticHistoryArray = renderGraph.ImportTexture(analyticHistoryArray); + builder.UseTexture(passData.analyticHistoryArray, AccessFlags.ReadWrite); // Intermediate buffers passData.directionBuffer = builder.CreateTransientTexture(new TextureDesc(Vector2.one, true, true) { format = GraphicsFormat.R16G16B16A16_SFloat, enableRandomWrite = true, name = "Direction Buffer" }); @@ -327,14 +337,17 @@ void RenderAreaScreenSpaceShadow(RenderGraph renderGraph, HDCamera hdCamera passData.intermediateBufferRG0 = builder.CreateTransientTexture(new TextureDesc(Vector2.one, true, true) { format = GraphicsFormat.R16G16B16A16_SFloat, enableRandomWrite = true, name = "Intermediate Buffer RG0" }); // Debug textures - passData.rayCountTexture = builder.ReadWriteTexture(rayCountTexture); + passData.rayCountTexture = rayCountTexture; + builder.UseTexture(passData.rayCountTexture, AccessFlags.ReadWrite); // Output buffers - passData.outputShadowTexture = builder.ReadWriteTexture(renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) { format = GraphicsFormat.R16G16B16A16_SFloat, enableRandomWrite = true, name = "Shadow Buffer" })); + passData.outputShadowTexture = renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) { format = GraphicsFormat.R16G16B16A16_SFloat, enableRandomWrite = true, name = "Shadow Buffer" }); + builder.UseTexture(passData.outputShadowTexture, AccessFlags.ReadWrite); + builder.SetRenderFunc( - (RTShadowAreaPassData data, RenderGraphContext context) => + (RTShadowAreaPassData data, UnsafeGraphContext ctx) => { - ExecuteSSSAreaRayTrace(context.cmd, data); + ExecuteSSSAreaRayTrace(CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd), data); }); areaShadow = passData.outputShadowTexture; } diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Shadow/HDRenderPipeline.ScreenSpaceShadows.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Shadow/HDRenderPipeline.ScreenSpaceShadows.cs index 4abc97ea711..21512b9b958 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Shadow/HDRenderPipeline.ScreenSpaceShadows.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Shadow/HDRenderPipeline.ScreenSpaceShadows.cs @@ -316,7 +316,7 @@ TextureHandle EvaluateShadowDebugView(RenderGraph renderGraph, HDCamera hdCamera if (!rayTracingSupported || (m_ScreenSpaceShadowChannelSlot <= m_CurrentDebugDisplaySettings.data.screenSpaceShadowIndex)) return m_RenderGraph.defaultResources.blackTextureXR; - using (var builder = renderGraph.AddRenderPass("Screen Space Shadows Debug", out var passData, ProfilingSampler.Get(HDProfileId.ScreenSpaceShadowsDebug))) + using (var builder = renderGraph.AddUnsafePass("Screen Space Shadows Debug", out var passData, ProfilingSampler.Get(HDProfileId.ScreenSpaceShadowsDebug))) { passData.texWidth = hdCamera.actualWidth; passData.texHeight = hdCamera.actualHeight; @@ -331,23 +331,26 @@ TextureHandle EvaluateShadowDebugView(RenderGraph renderGraph, HDCamera hdCamera // TODO: move the debug kernel outside of the ray tracing resources passData.shadowFilter = rayTracingResources.shadowFilterCS; - passData.screenSpaceShadowArray = builder.ReadTexture(screenSpaceShadowArray); - passData.outputBuffer = builder.WriteTexture(renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) - { format = GraphicsFormat.R16G16B16A16_SFloat, enableRandomWrite = true, name = "EvaluateShadowDebug" })); + passData.screenSpaceShadowArray = screenSpaceShadowArray; + builder.UseTexture(passData.screenSpaceShadowArray, AccessFlags.Read); + passData.outputBuffer = renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) + { format = GraphicsFormat.R16G16B16A16_SFloat, enableRandomWrite = true, name = "EvaluateShadowDebug" }); + builder.UseTexture(passData.outputBuffer, AccessFlags.Write); builder.SetRenderFunc( - (ScreenSpaceShadowDebugPassData data, RenderGraphContext ctx) => + (ScreenSpaceShadowDebugPassData data, UnsafeGraphContext ctx) => { + var natCmd = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); // Evaluate the dispatch parameters int shadowTileSize = 8; int numTilesX = (data.texWidth + (shadowTileSize - 1)) / shadowTileSize; int numTilesY = (data.texHeight + (shadowTileSize - 1)) / shadowTileSize; // If the screen space shadows we are asked to deliver is available output it to the intermediate texture - ctx.cmd.SetComputeIntParam(data.shadowFilter, HDShaderIDs._DenoisingHistorySlot, data.targetShadow); - ctx.cmd.SetComputeTextureParam(data.shadowFilter, data.debugKernel, HDShaderIDs._ScreenSpaceShadowsTextureRW, data.screenSpaceShadowArray); - ctx.cmd.SetComputeTextureParam(data.shadowFilter, data.debugKernel, HDShaderIDs._DenoiseOutputTextureRW, data.outputBuffer); - ctx.cmd.DispatchCompute(data.shadowFilter, data.debugKernel, numTilesX, numTilesY, data.viewCount); + natCmd.SetComputeIntParam(data.shadowFilter, HDShaderIDs._DenoisingHistorySlot, data.targetShadow); + natCmd.SetComputeTextureParam(data.shadowFilter, data.debugKernel, HDShaderIDs._ScreenSpaceShadowsTextureRW, data.screenSpaceShadowArray); + natCmd.SetComputeTextureParam(data.shadowFilter, data.debugKernel, HDShaderIDs._DenoiseOutputTextureRW, data.outputBuffer); + natCmd.DispatchCompute(data.shadowFilter, data.debugKernel, numTilesX, numTilesY, data.viewCount); }); return passData.outputBuffer; } @@ -379,7 +382,7 @@ class WriteScreenSpaceShadowPassData void WriteScreenSpaceShadow(RenderGraph renderGraph, HDCamera hdCamera, TextureHandle shadowTexture, TextureHandle screenSpaceShadowArray, int shadowIndex, ScreenSpaceShadowType shadowType) { // Write the result texture to the screen space shadow buffer - using (var builder = renderGraph.AddRenderPass("Write Screen Space Shadows", out var passData, ProfilingSampler.Get(HDProfileId.RaytracingWriteShadow))) + using (var builder = renderGraph.AddUnsafePass("Write Screen Space Shadows", out var passData, ProfilingSampler.Get(HDProfileId.RaytracingWriteShadow))) { passData.texWidth = hdCamera.actualWidth; passData.texHeight = hdCamera.actualHeight; @@ -418,29 +421,32 @@ void WriteScreenSpaceShadow(RenderGraph renderGraph, HDCamera hdCamera, TextureH // Other parameters passData.screenSpaceShadowCS = m_ScreenSpaceShadowsCS; - passData.inputShadowBuffer = builder.ReadTexture(shadowTexture); - passData.outputShadowArrayBuffer = builder.ReadWriteTexture(screenSpaceShadowArray); + passData.inputShadowBuffer = shadowTexture; + builder.UseTexture(passData.inputShadowBuffer, AccessFlags.Read); + passData.outputShadowArrayBuffer = screenSpaceShadowArray; + builder.UseTexture(passData.outputShadowArrayBuffer, AccessFlags.ReadWrite); builder.SetRenderFunc( - (WriteScreenSpaceShadowPassData data, RenderGraphContext ctx) => + (WriteScreenSpaceShadowPassData data, UnsafeGraphContext ctx) => { + var natCmd = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); // Evaluate the dispatch parameters int shadowTileSize = 8; int numTilesX = (data.texWidth + (shadowTileSize - 1)) / shadowTileSize; int numTilesY = (data.texHeight + (shadowTileSize - 1)) / shadowTileSize; // Bind the input data - ctx.cmd.SetComputeIntParam(data.screenSpaceShadowCS, HDShaderIDs._RaytracingShadowSlot, data.shadowSlot / 4); - ctx.cmd.SetComputeVectorParam(data.screenSpaceShadowCS, HDShaderIDs._RaytracingChannelMask, data.shadowChannelMask); - ctx.cmd.SetComputeVectorParam(data.screenSpaceShadowCS, HDShaderIDs._RaytracingChannelMask0, data.shadowChannelMask0); - ctx.cmd.SetComputeVectorParam(data.screenSpaceShadowCS, HDShaderIDs._RaytracingChannelMask1, data.shadowChannelMask1); - ctx.cmd.SetComputeTextureParam(data.screenSpaceShadowCS, data.shadowKernel, HDShaderIDs._RaytracedShadowIntegration, data.inputShadowBuffer); + natCmd.SetComputeIntParam(data.screenSpaceShadowCS, HDShaderIDs._RaytracingShadowSlot, data.shadowSlot / 4); + natCmd.SetComputeVectorParam(data.screenSpaceShadowCS, HDShaderIDs._RaytracingChannelMask, data.shadowChannelMask); + natCmd.SetComputeVectorParam(data.screenSpaceShadowCS, HDShaderIDs._RaytracingChannelMask0, data.shadowChannelMask0); + natCmd.SetComputeVectorParam(data.screenSpaceShadowCS, HDShaderIDs._RaytracingChannelMask1, data.shadowChannelMask1); + natCmd.SetComputeTextureParam(data.screenSpaceShadowCS, data.shadowKernel, HDShaderIDs._RaytracedShadowIntegration, data.inputShadowBuffer); // Bind the output texture - ctx.cmd.SetComputeTextureParam(data.screenSpaceShadowCS, data.shadowKernel, HDShaderIDs._ScreenSpaceShadowsTextureRW, data.outputShadowArrayBuffer); + natCmd.SetComputeTextureParam(data.screenSpaceShadowCS, data.shadowKernel, HDShaderIDs._ScreenSpaceShadowsTextureRW, data.outputShadowArrayBuffer); //Do our copy - ctx.cmd.DispatchCompute(data.screenSpaceShadowCS, data.shadowKernel, numTilesX, numTilesY, data.viewCount); + natCmd.DispatchCompute(data.screenSpaceShadowCS, data.shadowKernel, numTilesX, numTilesY, data.viewCount); }); } } diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Shadow/HDRenderPipeline.ScreenSpaceShadowsDirectional.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Shadow/HDRenderPipeline.ScreenSpaceShadowsDirectional.cs index 816404ebc0b..7b320a18103 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Shadow/HDRenderPipeline.ScreenSpaceShadowsDirectional.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Shadow/HDRenderPipeline.ScreenSpaceShadowsDirectional.cs @@ -101,7 +101,7 @@ void RenderRayTracedDirectionalScreenSpaceShadow(RenderGraph renderGraph, HDCame bool softShadows = m_CurrentSunLightAdditionalLightData.angularDiameter > 0.0 ? true : false; - using (var builder = renderGraph.AddRenderPass("Directional RT Shadow", out var passData, ProfilingSampler.Get(HDProfileId.RaytracingDirectionalLightShadow))) + using (var builder = renderGraph.AddUnsafePass("Directional RT Shadow", out var passData, ProfilingSampler.Get(HDProfileId.RaytracingDirectionalLightShadow))) { RayTracingSettings rayTracingSettings = hdCamera.volumeStack.GetComponent(); @@ -129,26 +129,33 @@ void RenderRayTracedDirectionalScreenSpaceShadow(RenderGraph renderGraph, HDCame passData.ditheredTextureSet = GetBlueNoiseManager().DitheredTextureSet8SPP(); // Input Buffer - passData.depthStencilBuffer = builder.UseDepthBuffer(depthBuffer, DepthAccess.Read); - passData.normalBuffer = builder.ReadTexture(normalBuffer); + passData.depthStencilBuffer = depthBuffer; + builder.UseTexture(depthBuffer, AccessFlags.Read); + passData.normalBuffer = normalBuffer; + builder.UseTexture(passData.normalBuffer, AccessFlags.Read); passData.directionBuffer = builder.CreateTransientTexture(new TextureDesc(Vector2.one, true, true) { format = GraphicsFormat.R16G16B16A16_SFloat, enableRandomWrite = true, name = "Direction Buffer" }); // Debug buffers - passData.rayCountTexture = builder.ReadWriteTexture(rayCountTexture); + passData.rayCountTexture = rayCountTexture; + builder.UseTexture(passData.rayCountTexture, AccessFlags.ReadWrite); // Output Buffers - passData.velocityBuffer = builder.ReadWriteTexture(renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) - { format = GraphicsFormat.R8_SNorm, enableRandomWrite = true, clearBuffer = true, name = "Velocity Buffer" })); - passData.distanceBuffer = builder.ReadWriteTexture(renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) - { format = GraphicsFormat.R32_SFloat, enableRandomWrite = true, clearBuffer = true, name = "Distance Buffer" })); - passData.outputShadowBuffer = builder.ReadWriteTexture(renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) - { format = GraphicsFormat.R16G16B16A16_SFloat, enableRandomWrite = true, clearBuffer = true, name = "RT Directional Shadow" })); + passData.velocityBuffer = renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) + { format = GraphicsFormat.R8_SNorm, enableRandomWrite = true, clearBuffer = true, name = "Velocity Buffer" }); + builder.UseTexture(passData.velocityBuffer, AccessFlags.ReadWrite); + passData.distanceBuffer = renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) + { format = GraphicsFormat.R32_SFloat, enableRandomWrite = true, clearBuffer = true, name = "Distance Buffer" }); + builder.UseTexture(passData.distanceBuffer, AccessFlags.ReadWrite); + passData.outputShadowBuffer = renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) + { format = GraphicsFormat.R16G16B16A16_SFloat, enableRandomWrite = true, clearBuffer = true, name = "RT Directional Shadow" }); + builder.UseTexture(passData.outputShadowBuffer, AccessFlags.ReadWrite); builder.SetRenderFunc( - (RTSDirectionalTracePassData data, RenderGraphContext ctx) => + (RTSDirectionalTracePassData data, UnsafeGraphContext ctx) => { + var natCmd = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); // Inject the ray-tracing sampling data - BlueNoise.BindDitheredTextureSet(ctx.cmd, data.ditheredTextureSet); + BlueNoise.BindDitheredTextureSet(natCmd, data.ditheredTextureSet); // Evaluate the dispatch parameters int shadowTileSize = 8; @@ -156,20 +163,20 @@ void RenderRayTracedDirectionalScreenSpaceShadow(RenderGraph renderGraph, HDCame int numTilesY = (data.texHeight + (shadowTileSize - 1)) / shadowTileSize; // Clear the integration texture - ctx.cmd.SetComputeTextureParam(data.screenSpaceShadowCS, data.clearShadowKernel, HDShaderIDs._RaytracedShadowIntegration, data.outputShadowBuffer); - ctx.cmd.DispatchCompute(data.screenSpaceShadowCS, data.clearShadowKernel, numTilesX, numTilesY, data.viewCount); + natCmd.SetComputeTextureParam(data.screenSpaceShadowCS, data.clearShadowKernel, HDShaderIDs._RaytracedShadowIntegration, data.outputShadowBuffer); + natCmd.DispatchCompute(data.screenSpaceShadowCS, data.clearShadowKernel, numTilesX, numTilesY, data.viewCount); - ctx.cmd.SetComputeTextureParam(data.screenSpaceShadowCS, data.clearShadowKernel, HDShaderIDs._RaytracedShadowIntegration, data.velocityBuffer); - ctx.cmd.DispatchCompute(data.screenSpaceShadowCS, data.clearShadowKernel, numTilesX, numTilesY, data.viewCount); + natCmd.SetComputeTextureParam(data.screenSpaceShadowCS, data.clearShadowKernel, HDShaderIDs._RaytracedShadowIntegration, data.velocityBuffer); + natCmd.DispatchCompute(data.screenSpaceShadowCS, data.clearShadowKernel, numTilesX, numTilesY, data.viewCount); - ctx.cmd.SetComputeTextureParam(data.screenSpaceShadowCS, data.clearShadowKernel, HDShaderIDs._RaytracedShadowIntegration, data.distanceBuffer); - ctx.cmd.DispatchCompute(data.screenSpaceShadowCS, data.clearShadowKernel, numTilesX, numTilesY, data.viewCount); + natCmd.SetComputeTextureParam(data.screenSpaceShadowCS, data.clearShadowKernel, HDShaderIDs._RaytracedShadowIntegration, data.distanceBuffer); + natCmd.DispatchCompute(data.screenSpaceShadowCS, data.clearShadowKernel, numTilesX, numTilesY, data.viewCount); // Grab and bind the acceleration structure for the target camera - ctx.cmd.SetRayTracingAccelerationStructure(data.screenSpaceShadowRT, HDShaderIDs._RaytracingAccelerationStructureName, data.accelerationStructure); + natCmd.SetRayTracingAccelerationStructure(data.screenSpaceShadowRT, HDShaderIDs._RaytracingAccelerationStructureName, data.accelerationStructure); // Make sure the right closest hit/any hit will be triggered by using the right multi compile - CoreUtils.SetKeyword(ctx.cmd, "TRANSPARENT_COLOR_SHADOW", data.colorShadow); + CoreUtils.SetKeyword(natCmd, "TRANSPARENT_COLOR_SHADOW", data.colorShadow); // Define which ray generation shaders we shall be using string directionaLightShadowShader = data.colorShadow ? m_RayGenDirectionalColorShadowSingleName : m_RayGenDirectionalShadowSingleName; @@ -180,44 +187,44 @@ void RenderRayTracedDirectionalScreenSpaceShadow(RenderGraph renderGraph, HDCame // Update global Constant Buffer data.shaderVariablesRayTracingCB._RaytracingSampleIndex = sampleIdx; data.shaderVariablesRayTracingCB._RaytracingNumSamples = data.numShadowSamples; - ConstantBuffer.PushGlobal(ctx.cmd, data.shaderVariablesRayTracingCB, HDShaderIDs._ShaderVariablesRaytracing); + ConstantBuffer.PushGlobal(natCmd, data.shaderVariablesRayTracingCB, HDShaderIDs._ShaderVariablesRaytracing); // Input Buffer - ctx.cmd.SetComputeTextureParam(data.screenSpaceShadowCS, data.directionalShadowSample, HDShaderIDs._DepthTexture, data.depthStencilBuffer); - ctx.cmd.SetComputeTextureParam(data.screenSpaceShadowCS, data.directionalShadowSample, HDShaderIDs._StencilTexture, data.depthStencilBuffer, 0, RenderTextureSubElement.Stencil); - ctx.cmd.SetComputeTextureParam(data.screenSpaceShadowCS, data.directionalShadowSample, HDShaderIDs._NormalBufferTexture, data.normalBuffer); + natCmd.SetComputeTextureParam(data.screenSpaceShadowCS, data.directionalShadowSample, HDShaderIDs._DepthTexture, data.depthStencilBuffer); + natCmd.SetComputeTextureParam(data.screenSpaceShadowCS, data.directionalShadowSample, HDShaderIDs._StencilTexture, data.depthStencilBuffer, 0, RenderTextureSubElement.Stencil); + natCmd.SetComputeTextureParam(data.screenSpaceShadowCS, data.directionalShadowSample, HDShaderIDs._NormalBufferTexture, data.normalBuffer); // Output buffer - ctx.cmd.SetComputeTextureParam(data.screenSpaceShadowCS, data.directionalShadowSample, HDShaderIDs._RaytracingDirectionBuffer, data.directionBuffer); + natCmd.SetComputeTextureParam(data.screenSpaceShadowCS, data.directionalShadowSample, HDShaderIDs._RaytracingDirectionBuffer, data.directionBuffer); // Generate a new direction - ctx.cmd.DispatchCompute(data.screenSpaceShadowCS, data.directionalShadowSample, numTilesX, numTilesY, data.viewCount); + natCmd.DispatchCompute(data.screenSpaceShadowCS, data.directionalShadowSample, numTilesX, numTilesY, data.viewCount); // Define the shader pass to use for the shadow pass - ctx.cmd.SetRayTracingShaderPass(data.screenSpaceShadowRT, "VisibilityDXR"); + natCmd.SetRayTracingShaderPass(data.screenSpaceShadowRT, "VisibilityDXR"); // Input Uniforms - ctx.cmd.SetRayTracingFloatParam(data.screenSpaceShadowRT, HDShaderIDs._DirectionalMaxRayLength, data.maxShadowLength); + natCmd.SetRayTracingFloatParam(data.screenSpaceShadowRT, HDShaderIDs._DirectionalMaxRayLength, data.maxShadowLength); // Set ray count texture - ctx.cmd.SetRayTracingTextureParam(data.screenSpaceShadowRT, HDShaderIDs._RayCountTexture, data.rayCountTexture); + natCmd.SetRayTracingTextureParam(data.screenSpaceShadowRT, HDShaderIDs._RayCountTexture, data.rayCountTexture); // Input buffers - ctx.cmd.SetRayTracingTextureParam(data.screenSpaceShadowRT, HDShaderIDs._DepthTexture, data.depthStencilBuffer); - ctx.cmd.SetRayTracingTextureParam(data.screenSpaceShadowRT, HDShaderIDs._NormalBufferTexture, data.normalBuffer); - ctx.cmd.SetRayTracingTextureParam(data.screenSpaceShadowRT, HDShaderIDs._RaytracingDirectionBuffer, data.directionBuffer); + natCmd.SetRayTracingTextureParam(data.screenSpaceShadowRT, HDShaderIDs._DepthTexture, data.depthStencilBuffer); + natCmd.SetRayTracingTextureParam(data.screenSpaceShadowRT, HDShaderIDs._NormalBufferTexture, data.normalBuffer); + natCmd.SetRayTracingTextureParam(data.screenSpaceShadowRT, HDShaderIDs._RaytracingDirectionBuffer, data.directionBuffer); // Output buffer - ctx.cmd.SetRayTracingTextureParam(data.screenSpaceShadowRT, data.colorShadow ? HDShaderIDs._RaytracedColorShadowIntegration : HDShaderIDs._RaytracedShadowIntegration, data.outputShadowBuffer); - ctx.cmd.SetRayTracingTextureParam(data.screenSpaceShadowRT, HDShaderIDs._VelocityBuffer, data.velocityBuffer); - ctx.cmd.SetRayTracingTextureParam(data.screenSpaceShadowRT, HDShaderIDs._RaytracingDistanceBufferRW, data.distanceBuffer); + natCmd.SetRayTracingTextureParam(data.screenSpaceShadowRT, data.colorShadow ? HDShaderIDs._RaytracedColorShadowIntegration : HDShaderIDs._RaytracedShadowIntegration, data.outputShadowBuffer); + natCmd.SetRayTracingTextureParam(data.screenSpaceShadowRT, HDShaderIDs._VelocityBuffer, data.velocityBuffer); + natCmd.SetRayTracingTextureParam(data.screenSpaceShadowRT, HDShaderIDs._RaytracingDistanceBufferRW, data.distanceBuffer); // Evaluate the visibility - ctx.cmd.DispatchRays(data.screenSpaceShadowRT, directionaLightShadowShader, (uint)data.texWidth, (uint)data.texHeight, (uint)data.viewCount); + natCmd.DispatchRays(data.screenSpaceShadowRT, directionaLightShadowShader, (uint)data.texWidth, (uint)data.texHeight, (uint)data.viewCount, null); } // Now that we are done with the ray tracing bit, disable the multi compile that was potentially enabled - CoreUtils.SetKeyword(ctx.cmd, "TRANSPARENT_COLOR_SHADOW", false); + CoreUtils.SetKeyword(natCmd, "TRANSPARENT_COLOR_SHADOW", false); }); directionalShadow = passData.outputShadowBuffer; @@ -264,21 +271,24 @@ void RenderDirectionalLightScreenSpaceShadow(RenderGraph renderGraph, HDCamera h RenderRayTracedDirectionalScreenSpaceShadow(renderGraph, hdCamera, depthBuffer, normalBuffer, motionVectorsBuffer, historyValidityBuffer, rayCountTexture, screenSpaceShadowArray); else { - using (var builder = renderGraph.AddRenderPass("Directional RT Shadow", out var passData, ProfilingSampler.Get(HDProfileId.RaytracingDirectionalLightShadow))) + using (var builder = renderGraph.AddUnsafePass("Directional RT Shadow", out var passData, ProfilingSampler.Get(HDProfileId.RaytracingDirectionalLightShadow))) { passData.depthSlice = m_CurrentSunLightDirectionalLightData.screenSpaceShadowIndex; - passData.normalBuffer = builder.ReadTexture(normalBuffer); - passData.screenSpaceShadowArray = builder.ReadWriteTexture(screenSpaceShadowArray); + passData.normalBuffer = normalBuffer; + builder.UseTexture(passData.normalBuffer, AccessFlags.Read); + passData.screenSpaceShadowArray = screenSpaceShadowArray; + builder.UseTexture(passData.screenSpaceShadowArray, AccessFlags.ReadWrite); builder.SetRenderFunc( - (SSSDirectionalTracePassData data, RenderGraphContext ctx) => + (SSSDirectionalTracePassData data, UnsafeGraphContext ctx) => { + var natCmd = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); // If it is screen space but not ray traced, then we can rely on the shadow map // WARNING: This pattern only works because we can only have one directional and the directional shadow is evaluated first. var mpb = ctx.renderGraphPool.GetTempMaterialPropertyBlock(); - CoreUtils.SetRenderTarget(ctx.cmd, data.screenSpaceShadowArray, depthSlice: data.depthSlice); + CoreUtils.SetRenderTarget(natCmd, data.screenSpaceShadowArray, depthSlice: data.depthSlice); mpb.SetTexture(HDShaderIDs._NormalBufferTexture, data.normalBuffer); - HDUtils.DrawFullScreen(ctx.cmd, s_ScreenSpaceShadowsMat, data.screenSpaceShadowArray, mpb); + HDUtils.DrawFullScreen(natCmd, s_ScreenSpaceShadowsMat, data.screenSpaceShadowArray, mpb); }); } } diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Shadow/HDRenderPipeline.ScreenSpaceShadowsPunctual.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Shadow/HDRenderPipeline.ScreenSpaceShadowsPunctual.cs index bfea05309d2..d1463308d88 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Shadow/HDRenderPipeline.ScreenSpaceShadowsPunctual.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Shadow/HDRenderPipeline.ScreenSpaceShadowsPunctual.cs @@ -143,42 +143,40 @@ void RenderPunctualScreenSpaceShadow(RenderGraph renderGraph, HDCamera hdCamera props.lightRadius = additionalLightData.shapeRadius; props.lightPosition = additionalLightData.transform.position; props.kernelSize = additionalLightData.filterSizeTraced; - props.lightConeAngle = additionalLightData.legacyLight.spotAngle * (float)Math.PI / 180.0f; + props.lightConeAngle = additionalLightData.legacyLight.spotAngle * Mathf.PI / 180.0f; props.distanceBasedDenoiser = additionalLightData.distanceBasedFiltering; switch (lightData.lightType) { case (GPULightType.ProjectorPyramid): { - float spotHalfAngleRadians = 0.5f * props.lightConeAngle; - // Scale up one of the pyramind light angles based on aspect ratio // We reuse _RaytracingLightSizeX and _RaytracingLightSizeY for the pyramid angles here - if (additionalLightData.aspectRatio < 1.0f) + if (additionalLightData.legacyLight.innerSpotAngle < additionalLightData.legacyLight.spotAngle) { - float scaledLightAngle = 2.0f * Mathf.Atan(Mathf.Tan(spotHalfAngleRadians) / additionalLightData.aspectRatio); + float tanInnerSpotAngle = Mathf.Tan(additionalLightData.legacyLight.innerSpotAngle * Mathf.PI / 360f); + float tanSpotAngle = Mathf.Tan(additionalLightData.legacyLight.spotAngle * Mathf.PI / 360f); + float aspectRatio = tanInnerSpotAngle / tanSpotAngle; props.lightSizeX = props.lightConeAngle; - props.lightSizeY = scaledLightAngle; + props.lightSizeY = 2.0f * Mathf.Atan(tanSpotAngle / aspectRatio); } else { - float scaledLightAngle = 2.0f * Mathf.Atan(Mathf.Tan(spotHalfAngleRadians) * additionalLightData.aspectRatio); - - props.lightSizeX = scaledLightAngle; + props.lightSizeX = additionalLightData.legacyLight.innerSpotAngle * Mathf.Deg2Rad; props.lightSizeY = props.lightConeAngle; } } break; default: { - props.lightSizeX = additionalLightData.shapeWidth; - props.lightSizeY = additionalLightData.shapeHeight; + props.lightSizeX = additionalLightData.legacyLight.areaSize.x; + props.lightSizeY = additionalLightData.legacyLight.areaSize.y; } break; } - using (var builder = renderGraph.AddRenderPass("Punctual RT Shadow", out var passData, ProfilingSampler.Get(HDProfileId.RaytracingLightShadow))) + using (var builder = renderGraph.AddUnsafePass("Punctual RT Shadow", out var passData, ProfilingSampler.Get(HDProfileId.RaytracingLightShadow))) { // Set the camera parameters passData.texWidth = hdCamera.actualWidth; @@ -216,27 +214,34 @@ void RenderPunctualScreenSpaceShadow(RenderGraph renderGraph, HDCamera hdCamera passData.ditheredTextureSet = GetBlueNoiseManager().DitheredTextureSet8SPP(); // Input Buffer - passData.depthStencilBuffer = builder.UseDepthBuffer(depthBuffer, DepthAccess.Read); - passData.normalBuffer = builder.ReadTexture(normalBuffer); + passData.depthStencilBuffer = depthBuffer; + builder.UseTexture(passData.depthStencilBuffer, AccessFlags.Read); + passData.normalBuffer = normalBuffer; + builder.UseTexture(passData.normalBuffer, AccessFlags.Read); passData.directionBuffer = builder.CreateTransientTexture(new TextureDesc(Vector2.one, true, true) { format = GraphicsFormat.R16G16B16A16_SFloat, enableRandomWrite = true, name = "Direction Buffer" }); passData.rayLengthBuffer = builder.CreateTransientTexture(new TextureDesc(Vector2.one, true, true) { format = GraphicsFormat.R32_SFloat, enableRandomWrite = true, name = "Ray Length Buffer" }); // Debug buffers - passData.rayCountTexture = builder.ReadWriteTexture(rayCountTexture); + passData.rayCountTexture = rayCountTexture; + builder.UseTexture(passData.rayCountTexture, AccessFlags.ReadWrite); // Output Buffers - passData.velocityBuffer = builder.ReadWriteTexture(renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) - { format = GraphicsFormat.R8_SNorm, enableRandomWrite = true, name = "Velocity Buffer" })); - passData.distanceBuffer = builder.ReadWriteTexture(renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) - { format = GraphicsFormat.R32_SFloat, enableRandomWrite = true, name = "Distance Buffer" })); - passData.outputShadowBuffer = builder.ReadWriteTexture(renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) - { format = GraphicsFormat.R16G16B16A16_SFloat, enableRandomWrite = true, name = "RT Sphere Shadow" })); + passData.velocityBuffer = renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) + { format = GraphicsFormat.R8_SNorm, enableRandomWrite = true, name = "Velocity Buffer" }); + builder.UseTexture(passData.velocityBuffer, AccessFlags.ReadWrite); + passData.distanceBuffer = renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) + { format = GraphicsFormat.R32_SFloat, enableRandomWrite = true, name = "Distance Buffer" }); + builder.UseTexture(passData.distanceBuffer, AccessFlags.ReadWrite); + passData.outputShadowBuffer = renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) + { format = GraphicsFormat.R16G16B16A16_SFloat, enableRandomWrite = true, name = "RT Sphere Shadow" }); + builder.UseTexture(passData.outputShadowBuffer, AccessFlags.ReadWrite); builder.SetRenderFunc( - (RTSPunctualTracePassData data, RenderGraphContext ctx) => + (RTSPunctualTracePassData data, UnsafeGraphContext ctx) => { + var natCmd = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); // Inject the ray-tracing sampling data - BlueNoise.BindDitheredTextureSet(ctx.cmd, data.ditheredTextureSet); + BlueNoise.BindDitheredTextureSet(natCmd, data.ditheredTextureSet); // Evaluate the dispatch parameters int shadowTileSize = 8; @@ -244,38 +249,38 @@ void RenderPunctualScreenSpaceShadow(RenderGraph renderGraph, HDCamera hdCamera int numTilesY = (data.texHeight + (shadowTileSize - 1)) / shadowTileSize; // Clear the integration textures - ctx.cmd.SetComputeTextureParam(data.screenSpaceShadowCS, data.clearShadowKernel, HDShaderIDs._RaytracedShadowIntegration, data.outputShadowBuffer); - ctx.cmd.DispatchCompute(data.screenSpaceShadowCS, data.clearShadowKernel, numTilesX, numTilesY, data.viewCount); + natCmd.SetComputeTextureParam(data.screenSpaceShadowCS, data.clearShadowKernel, HDShaderIDs._RaytracedShadowIntegration, data.outputShadowBuffer); + natCmd.DispatchCompute(data.screenSpaceShadowCS, data.clearShadowKernel, numTilesX, numTilesY, data.viewCount); - ctx.cmd.SetComputeTextureParam(data.screenSpaceShadowCS, data.clearShadowKernel, HDShaderIDs._RaytracedShadowIntegration, data.velocityBuffer); - ctx.cmd.DispatchCompute(data.screenSpaceShadowCS, data.clearShadowKernel, numTilesX, numTilesY, data.viewCount); + natCmd.SetComputeTextureParam(data.screenSpaceShadowCS, data.clearShadowKernel, HDShaderIDs._RaytracedShadowIntegration, data.velocityBuffer); + natCmd.DispatchCompute(data.screenSpaceShadowCS, data.clearShadowKernel, numTilesX, numTilesY, data.viewCount); if (data.distanceBasedFiltering) { - ctx.cmd.SetComputeTextureParam(data.screenSpaceShadowCS, data.clearShadowKernel, HDShaderIDs._RaytracedShadowIntegration, data.distanceBuffer); - ctx.cmd.DispatchCompute(data.screenSpaceShadowCS, data.clearShadowKernel, numTilesX, numTilesY, data.viewCount); + natCmd.SetComputeTextureParam(data.screenSpaceShadowCS, data.clearShadowKernel, HDShaderIDs._RaytracedShadowIntegration, data.distanceBuffer); + natCmd.DispatchCompute(data.screenSpaceShadowCS, data.clearShadowKernel, numTilesX, numTilesY, data.viewCount); } // Set the acceleration structure for the pass - ctx.cmd.SetRayTracingAccelerationStructure(data.screenSpaceShadowRT, HDShaderIDs._RaytracingAccelerationStructureName, data.accelerationStructure); + natCmd.SetRayTracingAccelerationStructure(data.screenSpaceShadowRT, HDShaderIDs._RaytracingAccelerationStructureName, data.accelerationStructure); // Define the shader pass to use for the reflection pass - ctx.cmd.SetRayTracingShaderPass(data.screenSpaceShadowRT, "VisibilityDXR"); + natCmd.SetRayTracingShaderPass(data.screenSpaceShadowRT, "VisibilityDXR"); if (data.lightType == GPULightType.ProjectorBox || data.lightType == GPULightType.ProjectorPyramid) { - ctx.cmd.SetComputeFloatParam(data.screenSpaceShadowCS, HDShaderIDs._RaytracingLightSizeX, data.properties.lightSizeX); - ctx.cmd.SetComputeFloatParam(data.screenSpaceShadowCS, HDShaderIDs._RaytracingLightSizeY, data.properties.lightSizeY); + natCmd.SetComputeFloatParam(data.screenSpaceShadowCS, HDShaderIDs._RaytracingLightSizeX, data.properties.lightSizeX); + natCmd.SetComputeFloatParam(data.screenSpaceShadowCS, HDShaderIDs._RaytracingLightSizeY, data.properties.lightSizeY); } // Bind the light & sampling data - ctx.cmd.SetComputeIntParam(data.screenSpaceShadowCS, HDShaderIDs._RaytracingTargetLight, data.properties.lightIndex); - ctx.cmd.SetComputeFloatParam(data.screenSpaceShadowCS, HDShaderIDs._RaytracingLightRadius, data.properties.lightRadius); + natCmd.SetComputeIntParam(data.screenSpaceShadowCS, HDShaderIDs._RaytracingTargetLight, data.properties.lightIndex); + natCmd.SetComputeFloatParam(data.screenSpaceShadowCS, HDShaderIDs._RaytracingLightRadius, data.properties.lightRadius); if (data.lightType == GPULightType.Spot) { - ctx.cmd.SetComputeFloatParam(data.screenSpaceShadowCS, HDShaderIDs._RaytracingLightAngle, data.properties.lightConeAngle); + natCmd.SetComputeFloatParam(data.screenSpaceShadowCS, HDShaderIDs._RaytracingLightAngle, data.properties.lightConeAngle); } // Loop through the samples of this frame @@ -284,40 +289,41 @@ void RenderPunctualScreenSpaceShadow(RenderGraph renderGraph, HDCamera hdCamera // Update global constant buffer data.shaderVariablesRayTracingCB._RaytracingSampleIndex = sampleIdx; data.shaderVariablesRayTracingCB._RaytracingNumSamples = data.numShadowSamples; - ConstantBuffer.PushGlobal(ctx.cmd, data.shaderVariablesRayTracingCB, HDShaderIDs._ShaderVariablesRaytracing); + ConstantBuffer.PushGlobal(natCmd, data.shaderVariablesRayTracingCB, HDShaderIDs._ShaderVariablesRaytracing); // Input Buffer - ctx.cmd.SetComputeTextureParam(data.screenSpaceShadowCS, data.shadowKernel, HDShaderIDs._DepthTexture, data.depthStencilBuffer); - ctx.cmd.SetComputeTextureParam(data.screenSpaceShadowCS, data.shadowKernel, HDShaderIDs._StencilTexture, data.depthStencilBuffer, 0, RenderTextureSubElement.Stencil); - ctx.cmd.SetComputeTextureParam(data.screenSpaceShadowCS, data.shadowKernel, HDShaderIDs._NormalBufferTexture, data.normalBuffer); + natCmd.SetComputeTextureParam(data.screenSpaceShadowCS, data.shadowKernel, HDShaderIDs._DepthTexture, data.depthStencilBuffer); + natCmd.SetComputeTextureParam(data.screenSpaceShadowCS, data.shadowKernel, HDShaderIDs._StencilTexture, data.depthStencilBuffer, 0, RenderTextureSubElement.Stencil); + natCmd.SetComputeTextureParam(data.screenSpaceShadowCS, data.shadowKernel, HDShaderIDs._NormalBufferTexture, data.normalBuffer); // Output buffers - ctx.cmd.SetComputeTextureParam(data.screenSpaceShadowCS, data.shadowKernel, HDShaderIDs._RaytracingDirectionBuffer, data.directionBuffer); - ctx.cmd.SetComputeTextureParam(data.screenSpaceShadowCS, data.shadowKernel, HDShaderIDs._RayTracingLengthBuffer, data.rayLengthBuffer); + natCmd.SetComputeTextureParam(data.screenSpaceShadowCS, data.shadowKernel, HDShaderIDs._RaytracingDirectionBuffer, data.directionBuffer); + natCmd.SetComputeTextureParam(data.screenSpaceShadowCS, data.shadowKernel, HDShaderIDs._RayTracingLengthBuffer, data.rayLengthBuffer); // Generate a new direction - ctx.cmd.DispatchCompute(data.screenSpaceShadowCS, data.shadowKernel, numTilesX, numTilesY, data.viewCount); + natCmd.DispatchCompute(data.screenSpaceShadowCS, data.shadowKernel, numTilesX, numTilesY, data.viewCount); // Define the shader pass to use for the shadow pass - ctx.cmd.SetRayTracingShaderPass(data.screenSpaceShadowRT, "VisibilityDXR"); + natCmd.SetRayTracingShaderPass(data.screenSpaceShadowRT, "VisibilityDXR"); // Set ray count texture - ctx.cmd.SetRayTracingTextureParam(data.screenSpaceShadowRT, HDShaderIDs._RayCountTexture, data.rayCountTexture); + natCmd.SetRayTracingTextureParam(data.screenSpaceShadowRT, HDShaderIDs._RayCountTexture, data.rayCountTexture); // Input buffers - ctx.cmd.SetRayTracingTextureParam(data.screenSpaceShadowRT, HDShaderIDs._DepthTexture, data.depthStencilBuffer); - ctx.cmd.SetRayTracingTextureParam(data.screenSpaceShadowRT, HDShaderIDs._NormalBufferTexture, data.normalBuffer); - ctx.cmd.SetRayTracingTextureParam(data.screenSpaceShadowRT, HDShaderIDs._RaytracingDirectionBuffer, data.directionBuffer); - ctx.cmd.SetRayTracingTextureParam(data.screenSpaceShadowRT, HDShaderIDs._RayTracingLengthBuffer, data.rayLengthBuffer); + natCmd.SetRayTracingTextureParam(data.screenSpaceShadowRT, HDShaderIDs._DepthTexture, data.depthStencilBuffer); + natCmd.SetRayTracingTextureParam(data.screenSpaceShadowRT, HDShaderIDs._NormalBufferTexture, data.normalBuffer); + natCmd.SetRayTracingTextureParam(data.screenSpaceShadowRT, HDShaderIDs._RaytracingDirectionBuffer, data.directionBuffer); + natCmd.SetRayTracingTextureParam(data.screenSpaceShadowRT, HDShaderIDs._RayTracingLengthBuffer, data.rayLengthBuffer); // Output buffer - ctx.cmd.SetRayTracingTextureParam(data.screenSpaceShadowRT, HDShaderIDs._RaytracedShadowIntegration, data.outputShadowBuffer); - ctx.cmd.SetRayTracingTextureParam(data.screenSpaceShadowRT, HDShaderIDs._VelocityBuffer, data.velocityBuffer); - ctx.cmd.SetRayTracingTextureParam(data.screenSpaceShadowRT, HDShaderIDs._RaytracingDistanceBufferRW, data.distanceBuffer); + natCmd.SetRayTracingTextureParam(data.screenSpaceShadowRT, HDShaderIDs._RaytracedShadowIntegration, data.outputShadowBuffer); + natCmd.SetRayTracingTextureParam(data.screenSpaceShadowRT, HDShaderIDs._VelocityBuffer, data.velocityBuffer); + natCmd.SetRayTracingTextureParam(data.screenSpaceShadowRT, HDShaderIDs._RaytracingDistanceBufferRW, data.distanceBuffer); + + CoreUtils.SetKeyword(natCmd, "TRANSPARENT_COLOR_SHADOW", data.semiTransparentShadow); - CoreUtils.SetKeyword(ctx.cmd, "TRANSPARENT_COLOR_SHADOW", data.semiTransparentShadow); - ctx.cmd.DispatchRays(data.screenSpaceShadowRT, data.semiTransparentShadow ? m_RayGenSemiTransparentShadowSegmentSingleName : m_RayGenShadowSegmentSingleName, (uint)data.texWidth, (uint)data.texHeight, (uint)data.viewCount); - CoreUtils.SetKeyword(ctx.cmd, "TRANSPARENT_COLOR_SHADOW", false); + natCmd.DispatchRays(data.screenSpaceShadowRT, data.semiTransparentShadow ? m_RayGenSemiTransparentShadowSegmentSingleName : m_RayGenShadowSegmentSingleName, (uint)data.texWidth, (uint)data.texHeight, (uint)data.viewCount, null); + CoreUtils.SetKeyword(natCmd, "TRANSPARENT_COLOR_SHADOW", false); } }); pointShadowBuffer = passData.outputShadowBuffer; diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Shadow/HDShadowAtlas.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Shadow/HDShadowAtlas.cs index 4b466aaf7a8..20bc3ba41e8 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Shadow/HDShadowAtlas.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Shadow/HDShadowAtlas.cs @@ -229,8 +229,8 @@ public void InvalidateOutput() { // Since we now store the output TextureHandle (because we only want to create the texture once depending on the control flow), // we need to be careful not to keep a "valid" handle when not desired. - // Note: this seems to be redundant, m_Output.IsValid() should be enough but keeping this to avoid regressions m_Output = TextureHandle.nullHandle; + m_ShadowMapOutput = TextureHandle.nullHandle; } public void CreateOrUpdateOutputTexture(RenderGraph renderGraph) @@ -330,9 +330,10 @@ class RenderShadowMapsPassData : RenderShadowMapsCommonPassData public ShadowDrawingSettings shadowDrawSettings; public Material clearMaterial; public bool debugClearAtlas; + public ScriptableRenderContext renderContext; } - private void SetCommonRenderPassData(RenderShadowMapsCommonPassData passData, in RenderGraphBuilder builder, RenderGraph renderGraph, in ShaderVariablesGlobal globalCBData) + private void SetCommonRenderPassData(RenderShadowMapsCommonPassData passData, in IUnsafeRenderGraphBuilder builder, RenderGraph renderGraph, in ShaderVariablesGlobal globalCBData) { passData.globalCBData = globalCBData; passData.globalCB = m_GlobalConstantBuffer; @@ -341,9 +342,10 @@ private void SetCommonRenderPassData(RenderShadowMapsCommonPassData passData, in // Only in case of regular shadow map do we render directly in the output texture of the atlas. if (m_BlurAlgorithm == BlurAlgorithm.EVSM || m_BlurAlgorithm == BlurAlgorithm.IM) - passData.atlasTexture = builder.WriteTexture(GetShadowMapDepthTexture(renderGraph)); + passData.atlasTexture = GetShadowMapDepthTexture(renderGraph); else - passData.atlasTexture = builder.WriteTexture(GetOutputTexture(renderGraph)); + passData.atlasTexture = GetOutputTexture(renderGraph); + builder.UseTexture(passData.atlasTexture, AccessFlags.Write); } struct RenderShadowMapsCommonState @@ -427,11 +429,11 @@ private static void ResetDepthState(CommandBuffer cmd) } public static Vector4[] frustumPlanesScratchpad = new Vector4[HDShadowRequest.frustumPlanesCount]; - internal unsafe TextureHandle RenderShadowMaps(RenderGraph renderGraph, CullingResults cullResults, in ShaderVariablesGlobal globalCBData, FrameSettings frameSettings, string shadowPassName) + internal unsafe TextureHandle RenderShadowMaps(RenderGraph renderGraph, ScriptableRenderContext renderContext, CullingResults cullResults, in ShaderVariablesGlobal globalCBData, FrameSettings frameSettings, string shadowPassName) { TextureHandle atlasTexture; - using (var builder = renderGraph.AddRenderPass("Render Shadow Maps", out var passData, ProfilingSampler.Get(HDProfileId.RenderShadowMaps))) + using (var builder = renderGraph.AddUnsafePass("Render Shadow Maps", out var passData, ProfilingSampler.Get(HDProfileId.RenderShadowMaps))) { SetCommonRenderPassData(passData, builder, renderGraph, globalCBData); @@ -439,15 +441,17 @@ internal unsafe TextureHandle RenderShadowMaps(RenderGraph renderGraph, CullingR passData.debugClearAtlas = m_LightingDebugSettings.clearShadowAtlas; passData.shadowDrawSettings = new ShadowDrawingSettings(cullResults, 0); passData.shadowDrawSettings.useRenderingLayerMaskTest = frameSettings.IsEnabled(FrameSettingsField.LightLayers); + passData.renderContext = renderContext; builder.SetRenderFunc( - (RenderShadowMapsPassData data, RenderGraphContext ctx) => + (RenderShadowMapsPassData data, UnsafeGraphContext ctx) => { - ctx.cmd.SetRenderTarget(data.atlasTexture, RenderBufferLoadAction.DontCare, RenderBufferStoreAction.Store); + var natCmd = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); + natCmd.SetRenderTarget(data.atlasTexture, RenderBufferLoadAction.DontCare, RenderBufferStoreAction.Store); // Clear the whole atlas to avoid garbage outside of current request when viewing it. if (data.debugClearAtlas) - CoreUtils.DrawFullScreen(ctx.cmd, data.clearMaterial, null, 0); + CoreUtils.DrawFullScreen(natCmd, data.clearMaterial, null, 0); NativeList requestStorage = HDShadowRequestDatabase.instance.hdShadowRequestStorage; ref UnsafeList requestStorageUnsafe = ref *requestStorage.GetUnsafeList(); @@ -459,7 +463,7 @@ internal unsafe TextureHandle RenderShadowMaps(RenderGraph renderGraph, CullingR foreach (var shadowRequestHandle in data.shadowRequests) { ref var shadowRequest = ref requestStorageUnsafe.ElementAt(shadowRequestHandle.storageIndexForShadowRequest); - var commonState = CommonPerShadowRequestUpdate(ctx.cmd, data, shadowRequest, shadowRequestHandle, ref planesScratchpad, ref frustumPlanesStorageUnsafe); + var commonState = CommonPerShadowRequestUpdate(natCmd, data, shadowRequest, shadowRequestHandle, ref planesScratchpad, ref frustumPlanesStorageUnsafe); if (commonState.shouldSkipRequest) continue; @@ -476,18 +480,18 @@ internal unsafe TextureHandle RenderShadowMaps(RenderGraph renderGraph, CullingR #endif if (!commonState.mixedInDynamicAtlas) - CoreUtils.DrawFullScreen(ctx.cmd, data.clearMaterial, null, 0); + CoreUtils.DrawFullScreen(natCmd, data.clearMaterial, null, 0); data.shadowDrawSettings.lightIndex = shadowRequest.lightIndex; data.shadowDrawSettings.splitIndex = shadowRequest.cullingSplit.splitIndex; //TODO(ddebaets) as the shadowDrawSettings are modified in this loop, we generate this RL very last minute // We might want to refactor this and create the RL ahead of time (especially if we ever allow AsyncPrepare on them) - var rl = ctx.renderContext.CreateShadowRendererList(ref data.shadowDrawSettings); - ctx.cmd.DrawRendererList(rl); + var rl = data.renderContext.CreateShadowRendererList(ref data.shadowDrawSettings); + natCmd.DrawRendererList(rl); } - ResetDepthState(ctx.cmd); + ResetDepthState(natCmd); }); m_ShadowMapOutput = passData.atlasTexture; @@ -510,18 +514,22 @@ class EVSMBlurMomentsPassData unsafe TextureHandle EVSMBlurMoments(RenderGraph renderGraph, TextureHandle inputAtlas) { - using (var builder = renderGraph.AddRenderPass("EVSM Blur Moments", out var passData, ProfilingSampler.Get(HDProfileId.RenderEVSMShadowMaps))) + using (var builder = renderGraph.AddUnsafePass("EVSM Blur Moments", out var passData, ProfilingSampler.Get(HDProfileId.RenderEVSMShadowMaps))) { passData.evsmShadowBlurMomentsCS = m_RenderPipeline.runtimeShaders.evsmBlurCS; passData.shadowRequests = m_ShadowRequests; passData.isRenderingOnACache = m_IsACacheForShadows; - passData.atlasTexture = builder.ReadTexture(inputAtlas); - passData.momentAtlasTexture1 = builder.WriteTexture(GetOutputTexture(renderGraph)); - passData.momentAtlasTexture2 = builder.WriteTexture(renderGraph.CreateTexture(GetMomentAtlasDesc(m_MomentCopyName))); + passData.atlasTexture = inputAtlas; + builder.UseTexture(passData.atlasTexture, AccessFlags.Read); + passData.momentAtlasTexture1 = GetOutputTexture(renderGraph); + builder.UseTexture(passData.momentAtlasTexture1, AccessFlags.Write); + passData.momentAtlasTexture2 = renderGraph.CreateTexture(GetMomentAtlasDesc(m_MomentCopyName)); + builder.UseTexture(passData.momentAtlasTexture2, AccessFlags.Write); builder.SetRenderFunc( - (EVSMBlurMomentsPassData data, RenderGraphContext ctx) => + (EVSMBlurMomentsPassData data, UnsafeGraphContext ctx) => { + var natCmd = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); ComputeShader shadowBlurMomentsCS = data.evsmShadowBlurMomentsCS; RTHandle[] momentAtlasRenderTextures = ctx.renderGraphPool.GetTempArray(2); momentAtlasRenderTextures[0] = data.momentAtlasTexture1; @@ -533,8 +541,8 @@ unsafe TextureHandle EVSMBlurMoments(RenderGraph renderGraph, TextureHandle inpu RTHandle atlasRenderTexture = data.atlasTexture; - ctx.cmd.SetComputeTextureParam(shadowBlurMomentsCS, generateAndBlurMomentsKernel, HDShaderIDs._DepthTexture, atlasRenderTexture); - ctx.cmd.SetComputeVectorArrayParam(shadowBlurMomentsCS, HDShaderIDs._BlurWeightsStorage, evsmBlurWeights); + natCmd.SetComputeTextureParam(shadowBlurMomentsCS, generateAndBlurMomentsKernel, HDShaderIDs._DepthTexture, atlasRenderTexture); + natCmd.SetComputeVectorArrayParam(shadowBlurMomentsCS, HDShaderIDs._BlurWeightsStorage, evsmBlurWeights); // We need to store in which of the two moment texture a request will have its last version stored in for a final patch up at the end. var finalAtlasTexture = stackalloc int[data.shadowRequests.Length]; @@ -561,29 +569,29 @@ unsafe TextureHandle EVSMBlurMoments(RenderGraph renderGraph, TextureHandle inpu Vector2 DstRectOffset = new Vector2(viewport.min.x * 0.5f, viewport.min.y * 0.5f); - ctx.cmd.SetComputeTextureParam(shadowBlurMomentsCS, generateAndBlurMomentsKernel, HDShaderIDs._OutputTexture, momentAtlasRenderTextures[0]); - ctx.cmd.SetComputeVectorParam(shadowBlurMomentsCS, HDShaderIDs._SrcRect, new Vector4(viewport.min.x, viewport.min.y, viewport.width, viewport.height)); - ctx.cmd.SetComputeVectorParam(shadowBlurMomentsCS, HDShaderIDs._DstRect, new Vector4(DstRectOffset.x, DstRectOffset.y, 1.0f / atlasRenderTexture.rt.width, 1.0f / atlasRenderTexture.rt.height)); - ctx.cmd.SetComputeFloatParam(shadowBlurMomentsCS, HDShaderIDs._EVSMExponent, shadowRequest.evsmParams.x); + natCmd.SetComputeTextureParam(shadowBlurMomentsCS, generateAndBlurMomentsKernel, HDShaderIDs._OutputTexture, momentAtlasRenderTextures[0]); + natCmd.SetComputeVectorParam(shadowBlurMomentsCS, HDShaderIDs._SrcRect, new Vector4(viewport.min.x, viewport.min.y, viewport.width, viewport.height)); + natCmd.SetComputeVectorParam(shadowBlurMomentsCS, HDShaderIDs._DstRect, new Vector4(DstRectOffset.x, DstRectOffset.y, 1.0f / atlasRenderTexture.rt.width, 1.0f / atlasRenderTexture.rt.height)); + natCmd.SetComputeFloatParam(shadowBlurMomentsCS, HDShaderIDs._EVSMExponent, shadowRequest.evsmParams.x); int dispatchSizeX = ((int)downsampledWidth + 7) / 8; int dispatchSizeY = ((int)downsampledHeight + 7) / 8; - ctx.cmd.DispatchCompute(shadowBlurMomentsCS, generateAndBlurMomentsKernel, dispatchSizeX, dispatchSizeY, 1); + natCmd.DispatchCompute(shadowBlurMomentsCS, generateAndBlurMomentsKernel, dispatchSizeX, dispatchSizeY, 1); int currentAtlasMomentSurface = 0; RTHandle GetMomentRT() { return momentAtlasRenderTextures[currentAtlasMomentSurface]; } RTHandle GetMomentRTCopy() { return momentAtlasRenderTextures[(currentAtlasMomentSurface + 1) & 1]; } - ctx.cmd.SetComputeVectorParam(shadowBlurMomentsCS, HDShaderIDs._SrcRect, new Vector4(DstRectOffset.x, DstRectOffset.y, downsampledWidth, downsampledHeight)); + natCmd.SetComputeVectorParam(shadowBlurMomentsCS, HDShaderIDs._SrcRect, new Vector4(DstRectOffset.x, DstRectOffset.y, downsampledWidth, downsampledHeight)); for (int i = 0; i < shadowRequest.evsmParams.w; ++i) { currentAtlasMomentSurface = (currentAtlasMomentSurface + 1) & 1; - ctx.cmd.SetComputeTextureParam(shadowBlurMomentsCS, blurMomentsKernel, HDShaderIDs._InputTexture, GetMomentRTCopy()); - ctx.cmd.SetComputeTextureParam(shadowBlurMomentsCS, blurMomentsKernel, HDShaderIDs._OutputTexture, GetMomentRT()); + natCmd.SetComputeTextureParam(shadowBlurMomentsCS, blurMomentsKernel, HDShaderIDs._InputTexture, GetMomentRTCopy()); + natCmd.SetComputeTextureParam(shadowBlurMomentsCS, blurMomentsKernel, HDShaderIDs._OutputTexture, GetMomentRT()); - ctx.cmd.DispatchCompute(shadowBlurMomentsCS, blurMomentsKernel, dispatchSizeX, dispatchSizeY, 1); + natCmd.DispatchCompute(shadowBlurMomentsCS, blurMomentsKernel, dispatchSizeX, dispatchSizeY, 1); } finalAtlasTexture[requestIdx++] = currentAtlasMomentSurface; @@ -603,14 +611,14 @@ unsafe TextureHandle EVSMBlurMoments(RenderGraph renderGraph, TextureHandle inpu int downsampledWidth = Mathf.CeilToInt(viewport.width * 0.5f); int downsampledHeight = Mathf.CeilToInt(viewport.height * 0.5f); - ctx.cmd.SetComputeVectorParam(shadowBlurMomentsCS, HDShaderIDs._SrcRect, new Vector4(viewport.min.x * 0.5f, viewport.min.y * 0.5f, downsampledWidth, downsampledHeight)); - ctx.cmd.SetComputeTextureParam(shadowBlurMomentsCS, copyMomentsKernel, HDShaderIDs._InputTexture, momentAtlasRenderTextures[1]); - ctx.cmd.SetComputeTextureParam(shadowBlurMomentsCS, copyMomentsKernel, HDShaderIDs._OutputTexture, momentAtlasRenderTextures[0]); + natCmd.SetComputeVectorParam(shadowBlurMomentsCS, HDShaderIDs._SrcRect, new Vector4(viewport.min.x * 0.5f, viewport.min.y * 0.5f, downsampledWidth, downsampledHeight)); + natCmd.SetComputeTextureParam(shadowBlurMomentsCS, copyMomentsKernel, HDShaderIDs._InputTexture, momentAtlasRenderTextures[1]); + natCmd.SetComputeTextureParam(shadowBlurMomentsCS, copyMomentsKernel, HDShaderIDs._OutputTexture, momentAtlasRenderTextures[0]); int dispatchSizeX = ((int)downsampledWidth + 7) / 8; int dispatchSizeY = ((int)downsampledHeight + 7) / 8; - ctx.cmd.DispatchCompute(shadowBlurMomentsCS, copyMomentsKernel, dispatchSizeX, dispatchSizeY, 1); + natCmd.DispatchCompute(shadowBlurMomentsCS, copyMomentsKernel, dispatchSizeX, dispatchSizeY, 1); } } } @@ -634,21 +642,26 @@ class IMBlurMomentPassData unsafe TextureHandle IMBlurMoment(RenderGraph renderGraph, TextureHandle atlasTexture) { - using (var builder = renderGraph.AddRenderPass("EVSM Blur Moments", out var passData, ProfilingSampler.Get(HDProfileId.RenderMomentShadowMaps))) + using (var builder = renderGraph.AddUnsafePass("EVSM Blur Moments", out var passData, ProfilingSampler.Get(HDProfileId.RenderMomentShadowMaps))) { passData.shadowRequests = m_ShadowRequests; passData.isRenderingOnACache = m_IsACacheForShadows; passData.imShadowBlurMomentsCS = m_RenderPipeline.runtimeShaders.momentShadowsCS; - passData.atlasTexture = builder.ReadTexture(atlasTexture); - passData.momentAtlasTexture = builder.WriteTexture(GetOutputTexture(renderGraph)); - passData.intermediateSummedAreaTexture = builder.WriteTexture(renderGraph.CreateTexture(new TextureDesc(width, height) - { format = GraphicsFormat.R32G32B32A32_SInt, name = m_IntermediateSummedAreaName, enableRandomWrite = true, clearBuffer = true, clearColor = Color.black })); - passData.summedAreaTexture = builder.WriteTexture(renderGraph.CreateTexture(new TextureDesc(width, height) - { format = GraphicsFormat.R32G32B32A32_SInt, name = m_SummedAreaName, enableRandomWrite = true, clearColor = Color.black })); + passData.atlasTexture = atlasTexture; + builder.UseTexture(passData.atlasTexture, AccessFlags.Read); + passData.momentAtlasTexture = GetOutputTexture(renderGraph); + builder.UseTexture(passData.momentAtlasTexture, AccessFlags.Write); + passData.intermediateSummedAreaTexture = renderGraph.CreateTexture(new TextureDesc(width, height) + { format = GraphicsFormat.R32G32B32A32_SInt, name = m_IntermediateSummedAreaName, enableRandomWrite = true, clearBuffer = true, clearColor = Color.black }); + builder.UseTexture(passData.intermediateSummedAreaTexture, AccessFlags.Write); + passData.summedAreaTexture = renderGraph.CreateTexture(new TextureDesc(width, height) + { format = GraphicsFormat.R32G32B32A32_SInt, name = m_SummedAreaName, enableRandomWrite = true, clearColor = Color.black }); + builder.UseTexture(passData.summedAreaTexture, AccessFlags.Write); builder.SetRenderFunc( - (IMBlurMomentPassData data, RenderGraphContext ctx) => + (IMBlurMomentPassData data, UnsafeGraphContext ctx) => { + var natCmd = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); // If the target kernel is not available ComputeShader momentCS = data.imShadowBlurMomentsCS; if (momentCS == null) return; @@ -670,35 +683,35 @@ unsafe TextureHandle IMBlurMoment(RenderGraph renderGraph, TextureHandle atlasTe { ref var shadowRequest = ref requestStorageUnsafe.ElementAt(shadowRequestHandle.storageIndexForShadowRequest); // Let's bind the resources of this - ctx.cmd.SetComputeTextureParam(momentCS, computeMomentKernel, HDShaderIDs._ShadowmapAtlas, atlas); - ctx.cmd.SetComputeTextureParam(momentCS, computeMomentKernel, HDShaderIDs._MomentShadowAtlas, atlasMoment); - ctx.cmd.SetComputeVectorParam(momentCS, HDShaderIDs._MomentShadowmapSlotST, new Vector4(shadowRequest.dynamicAtlasViewport.width, shadowRequest.dynamicAtlasViewport.height, shadowRequest.dynamicAtlasViewport.min.x, shadowRequest.dynamicAtlasViewport.min.y)); + natCmd.SetComputeTextureParam(momentCS, computeMomentKernel, HDShaderIDs._ShadowmapAtlas, atlas); + natCmd.SetComputeTextureParam(momentCS, computeMomentKernel, HDShaderIDs._MomentShadowAtlas, atlasMoment); + natCmd.SetComputeVectorParam(momentCS, HDShaderIDs._MomentShadowmapSlotST, new Vector4(shadowRequest.dynamicAtlasViewport.width, shadowRequest.dynamicAtlasViewport.height, shadowRequest.dynamicAtlasViewport.min.x, shadowRequest.dynamicAtlasViewport.min.y)); // First of all we need to compute the moments int numTilesX = Math.Max((int)shadowRequest.dynamicAtlasViewport.width / 8, 1); int numTilesY = Math.Max((int)shadowRequest.dynamicAtlasViewport.height / 8, 1); - ctx.cmd.DispatchCompute(momentCS, computeMomentKernel, numTilesX, numTilesY, 1); + natCmd.DispatchCompute(momentCS, computeMomentKernel, numTilesX, numTilesY, 1); // Do the horizontal pass of the summed area table - ctx.cmd.SetComputeTextureParam(momentCS, summedAreaHorizontalKernel, HDShaderIDs._SummedAreaTableInputFloat, atlasMoment); - ctx.cmd.SetComputeTextureParam(momentCS, summedAreaHorizontalKernel, HDShaderIDs._SummedAreaTableOutputInt, intermediateSummedAreaTexture); - ctx.cmd.SetComputeFloatParam(momentCS, HDShaderIDs._IMSKernelSize, shadowRequest.kernelSize); - ctx.cmd.SetComputeVectorParam(momentCS, HDShaderIDs._MomentShadowmapSize, new Vector2((float)atlasMoment.referenceSize.x, (float)atlasMoment.referenceSize.y)); + natCmd.SetComputeTextureParam(momentCS, summedAreaHorizontalKernel, HDShaderIDs._SummedAreaTableInputFloat, atlasMoment); + natCmd.SetComputeTextureParam(momentCS, summedAreaHorizontalKernel, HDShaderIDs._SummedAreaTableOutputInt, intermediateSummedAreaTexture); + natCmd.SetComputeFloatParam(momentCS, HDShaderIDs._IMSKernelSize, shadowRequest.kernelSize); + natCmd.SetComputeVectorParam(momentCS, HDShaderIDs._MomentShadowmapSize, new Vector2((float)atlasMoment.referenceSize.x, (float)atlasMoment.referenceSize.y)); int numLines = Math.Max((int)shadowRequest.dynamicAtlasViewport.width / 64, 1); - ctx.cmd.DispatchCompute(momentCS, summedAreaHorizontalKernel, numLines, 1, 1); + natCmd.DispatchCompute(momentCS, summedAreaHorizontalKernel, numLines, 1, 1); // Do the horizontal pass of the summed area table - ctx.cmd.SetComputeTextureParam(momentCS, summedAreaVerticalKernel, HDShaderIDs._SummedAreaTableInputInt, intermediateSummedAreaTexture); - ctx.cmd.SetComputeTextureParam(momentCS, summedAreaVerticalKernel, HDShaderIDs._SummedAreaTableOutputInt, summedAreaTexture); - ctx.cmd.SetComputeVectorParam(momentCS, HDShaderIDs._MomentShadowmapSize, new Vector2((float)atlasMoment.referenceSize.x, (float)atlasMoment.referenceSize.y)); - ctx.cmd.SetComputeFloatParam(momentCS, HDShaderIDs._IMSKernelSize, shadowRequest.kernelSize); + natCmd.SetComputeTextureParam(momentCS, summedAreaVerticalKernel, HDShaderIDs._SummedAreaTableInputInt, intermediateSummedAreaTexture); + natCmd.SetComputeTextureParam(momentCS, summedAreaVerticalKernel, HDShaderIDs._SummedAreaTableOutputInt, summedAreaTexture); + natCmd.SetComputeVectorParam(momentCS, HDShaderIDs._MomentShadowmapSize, new Vector2((float)atlasMoment.referenceSize.x, (float)atlasMoment.referenceSize.y)); + natCmd.SetComputeFloatParam(momentCS, HDShaderIDs._IMSKernelSize, shadowRequest.kernelSize); int numColumns = Math.Max((int)shadowRequest.dynamicAtlasViewport.height / 64, 1); - ctx.cmd.DispatchCompute(momentCS, summedAreaVerticalKernel, numColumns, 1, 1); + natCmd.DispatchCompute(momentCS, summedAreaVerticalKernel, numColumns, 1, 1); // Push the global texture - ctx.cmd.SetGlobalTexture(HDShaderIDs._SummedAreaTableInputInt, summedAreaTexture); + natCmd.SetGlobalTexture(HDShaderIDs._SummedAreaTableInputInt, summedAreaTexture); } }); @@ -726,14 +739,14 @@ internal TextureHandle BlurShadows(RenderGraph renderGraph) return m_ShadowMapOutput; } } - internal TextureHandle RenderShadows(RenderGraph renderGraph, CullingResults cullResults, in ShaderVariablesGlobal globalCB, FrameSettings frameSettings, string shadowPassName) + internal TextureHandle RenderShadows(RenderGraph renderGraph, ScriptableRenderContext renderContext, CullingResults cullResults, in ShaderVariablesGlobal globalCB, FrameSettings frameSettings, string shadowPassName) { if (m_ShadowRequests.Length == 0) { return renderGraph.defaultResources.defaultShadowTexture; } - RenderShadowMaps(renderGraph, cullResults, globalCB, frameSettings, shadowPassName); + RenderShadowMaps(renderGraph, renderContext, cullResults, globalCB, frameSettings, shadowPassName); if (m_BlurAlgorithm == BlurAlgorithm.EVSM) { diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Shadow/HDShadowCullingUtils.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Shadow/HDShadowCullingUtils.cs index 84bdc2d0714..db0437c425e 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Shadow/HDShadowCullingUtils.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Shadow/HDShadowCullingUtils.cs @@ -541,8 +541,8 @@ int ComputeSpotShadowCullingSplits(UnsafeList Matrix4x4 invViewProjection; Vector4 deviceProjection; - HDShadowUtils.ExtractSpotLightData(spotAngleForShadows, light.shadowNearPlane, light.aspectRatio, light.shapeWidth, - light.shapeHeight, visibleLight, viewportSize, light.normalBias, punctualShadowFilteringQuality, usesReversedZBuffer, + HDShadowUtils.ExtractSpotLightData(spotAngleForShadows, light.shadowNearPlane, visibleLight.areaSize.x, + visibleLight.areaSize.y, visibleLight, viewportSize, light.normalBias, punctualShadowFilteringQuality, usesReversedZBuffer, out view, out invViewProjection, out projection, out deviceProjection, out deviceProjectionYFlip, out splitData); @@ -685,8 +685,7 @@ int ComputeAreaRectangleShadowCullingSplits(UnsafeList("BindShadowGlobalResources", out var passData)) + using (var builder = renderGraph.AddUnsafePass("BindShadowGlobalResources", out var passData)) { passData.shadowResult = ReadShadowResult(shadowResult, builder); builder.AllowPassCulling(false); builder.SetRenderFunc( - (BindShadowGlobalResourcesPassData data, RenderGraphContext ctx) => + (BindShadowGlobalResourcesPassData data, UnsafeGraphContext ctx) => { BindAtlasTexture(ctx, data.shadowResult.punctualShadowResult, HDShaderIDs._ShadowmapAtlas); BindAtlasTexture(ctx, data.shadowResult.directionalShadowResult, HDShaderIDs._ShadowmapCascadeAtlas); @@ -1464,11 +1479,11 @@ void BindShadowGlobalResources(RenderGraph renderGraph, in ShadowResult shadowRe internal static void BindDefaultShadowGlobalResources(RenderGraph renderGraph) { - using (var builder = renderGraph.AddRenderPass("BindDefaultShadowGlobalResources", out var passData)) + using (var builder = renderGraph.AddUnsafePass("BindDefaultShadowGlobalResources", out var passData)) { builder.AllowPassCulling(false); builder.SetRenderFunc( - (BindShadowGlobalResourcesPassData data, RenderGraphContext ctx) => + (BindShadowGlobalResourcesPassData data, UnsafeGraphContext ctx) => { BindAtlasTexture(ctx, ctx.defaultResources.defaultShadowTexture, HDShaderIDs._ShadowmapAtlas); BindAtlasTexture(ctx, ctx.defaultResources.defaultShadowTexture, HDShaderIDs._ShadowmapCascadeAtlas); diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Shadow/HDShadowUtils.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Shadow/HDShadowUtils.cs index a44389fbbb3..e0674939e31 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Shadow/HDShadowUtils.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Shadow/HDShadowUtils.cs @@ -43,14 +43,17 @@ public static void ExtractPointLightData(NativeArray cubeMapFaces, Vi } // TODO: box spot and pyramid spots with non 1 aspect ratios shadow are incorrectly culled, see when scriptable culling will be here - public static void ExtractSpotLightData(float spotAngle, float nearPlane, float aspectRatio, float shapeWidth, float shapeHeight, VisibleLight visibleLight, Vector2 viewportSize, float normalBiasMax, HDShadowFilteringQuality filteringQuality, bool reverseZ, + public static void ExtractSpotLightData(float spotAngle, float nearPlane, float shapeWidth, float shapeHeight, VisibleLight visibleLight, Vector2 viewportSize, float normalBiasMax, HDShadowFilteringQuality filteringQuality, bool reverseZ, out Matrix4x4 view, out Matrix4x4 invViewProjection, out Matrix4x4 projection, out Vector4 deviceProjection, out Matrix4x4 deviceProjectionYFlip, out ShadowSplitData splitData) { Vector4 lightDir; + float aspectRatio = 1.0f; // There is no aspect ratio for non pyramid spot lights - if (visibleLight.lightType != LightType.Pyramid) - aspectRatio = 1.0f; + if (visibleLight.lightType == LightType.Pyramid) + { + aspectRatio = Mathf.Tan(visibleLight.innerSpotAngle * Mathf.PI / 360f) / Mathf.Tan(visibleLight.spotAngle * Mathf.PI / 360f); + } if (visibleLight.lightType != LightType.Box) nearPlane = Mathf.Max(HDShadowUtils.k_MinShadowNearPlane, nearPlane); diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/VolumetricClouds/HDRenderPipeline.VolumetricClouds.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/VolumetricClouds/HDRenderPipeline.VolumetricClouds.cs index e9b32a04a78..64f3effead6 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/VolumetricClouds/HDRenderPipeline.VolumetricClouds.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/VolumetricClouds/HDRenderPipeline.VolumetricClouds.cs @@ -564,7 +564,7 @@ internal void CombineVolumetricClouds(RenderGraph renderGraph, HDCamera hdCamera if (!transparentPrepass.clouds.valid) return; - using (var builder = renderGraph.AddRenderPass("Volumetric Clouds Combine", out var passData, ProfilingSampler.Get(HDProfileId.VolumetricCloudsCombine))) + using (var builder = renderGraph.AddUnsafePass("Volumetric Clouds Combine", out var passData, ProfilingSampler.Get(HDProfileId.VolumetricCloudsCombine))) { // Parameters passData.cloudsCombineMaterial = m_CloudCombinePass; @@ -572,28 +572,36 @@ internal void CombineVolumetricClouds(RenderGraph renderGraph, HDCamera hdCamera passData.pixelCoordToViewDir = hdCamera.mainViewConstants.pixelCoordToViewDirWS; // Input buffers - passData.volumetricCloudsLightingTexture = builder.ReadTexture(transparentPrepass.clouds.lightingBuffer); - passData.volumetricCloudsDepthTexture = builder.ReadTexture(transparentPrepass.clouds.depthBuffer); + passData.volumetricCloudsLightingTexture = transparentPrepass.clouds.lightingBuffer; + builder.UseTexture(passData.volumetricCloudsLightingTexture, AccessFlags.Read); + passData.volumetricCloudsDepthTexture = transparentPrepass.clouds.depthBuffer; + builder.UseTexture(passData.volumetricCloudsDepthTexture, AccessFlags.Read); if (passData.perPixelSorting) { - passData.depthAndStencil = builder.ReadTexture(resolvedDepthBuffer); - - passData.waterLine = builder.ReadBuffer(transparentPrepass.waterLine); - passData.cameraHeightBuffer = builder.ReadBuffer(transparentPrepass.waterGBuffer.cameraHeight); - passData.waterSurfaceProfiles = builder.ReadBuffer(transparentPrepass.waterSurfaceProfiles); - passData.waterGBuffer3 = builder.ReadTexture(transparentPrepass.waterGBuffer.waterGBuffer3); + passData.depthAndStencil = resolvedDepthBuffer; + builder.UseTexture(passData.depthAndStencil, AccessFlags.Read); + + passData.waterLine = transparentPrepass.waterLine; + builder.UseBuffer(passData.waterLine, AccessFlags.Read); + passData.cameraHeightBuffer = transparentPrepass.waterGBuffer.cameraHeight; + builder.UseBuffer(passData.cameraHeightBuffer, AccessFlags.Read); + passData.waterSurfaceProfiles = transparentPrepass.waterSurfaceProfiles; + builder.UseBuffer(passData.waterSurfaceProfiles, AccessFlags.Read); + passData.waterGBuffer3 = transparentPrepass.waterGBuffer.waterGBuffer3; + builder.UseTexture(passData.waterGBuffer3, AccessFlags.Read); } // Output buffers - builder.UseColorBuffer(colorBuffer, 0); + builder.SetRenderAttachment(colorBuffer, 0); + int opticalFogBufferIndex = 1; if (passData.perPixelSorting) { - builder.UseDepthBuffer(transparentPrepass.depthBufferPreRefraction, DepthAccess.Read); // Dummy buffer to avoid 'Setting MRT without a depth buffer is not supported' - builder.UseColorBuffer(transparentPrepass.beforeRefraction, 1); - builder.UseColorBuffer(transparentPrepass.beforeRefractionAlpha, 2); + builder.SetRenderAttachmentDepth(transparentPrepass.depthBufferPreRefraction, AccessFlags.Read); // Dummy buffer to avoid 'Setting MRT without a depth buffer is not supported' + builder.SetRenderAttachment(transparentPrepass.beforeRefraction, 1); + builder.SetRenderAttachment(transparentPrepass.beforeRefractionAlpha, 2); opticalFogBufferIndex = 3; } @@ -604,13 +612,14 @@ internal void CombineVolumetricClouds(RenderGraph renderGraph, HDCamera hdCamera { if (!opticalFogTransmittance.IsValid()) opticalFogTransmittance = renderGraph.CreateTexture(HDRenderPipeline.GetOpticalFogTransmittanceDesc(hdCamera)); - builder.UseDepthBuffer(transparentPrepass.depthBufferPreRefraction, DepthAccess.Read); // Dummy buffer to avoid 'Setting MRT without a depth buffer is not supported' - builder.UseColorBuffer(opticalFogTransmittance, opticalFogBufferIndex); + builder.SetRenderAttachmentDepth(transparentPrepass.depthBufferPreRefraction, AccessFlags.Read); // Dummy buffer to avoid 'Setting MRT without a depth buffer is not supported' + builder.SetRenderAttachment(opticalFogTransmittance, opticalFogBufferIndex); } builder.SetRenderFunc( - (VolumetricCloudsCombineOpaqueData data, RenderGraphContext ctx) => + (VolumetricCloudsCombineOpaqueData data, UnsafeGraphContext ctx) => { + var natCmd = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); data.cloudsCombineMaterial.SetTexture(HDShaderIDs._VolumetricCloudsLightingTexture, data.volumetricCloudsLightingTexture); data.cloudsCombineMaterial.SetTexture(HDShaderIDs._VolumetricCloudsDepthTexture, data.volumetricCloudsDepthTexture); data.cloudsCombineMaterial.SetMatrix(HDShaderIDs._PixelCoordToViewDirWS, data.pixelCoordToViewDir); @@ -625,9 +634,9 @@ internal void CombineVolumetricClouds(RenderGraph renderGraph, HDCamera hdCamera data.cloudsCombineMaterial.SetBuffer(HDShaderIDs._WaterLineBuffer, data.waterLine); } - ctx.cmd.SetKeyword(data.cloudsCombineMaterial, data.outputFogTransmittanceKeyword, data.needOpticalFogTransmittance); + natCmd.SetKeyword(data.cloudsCombineMaterial, data.outputFogTransmittanceKeyword, data.needOpticalFogTransmittance); - ctx.cmd.DrawProcedural(Matrix4x4.identity, data.cloudsCombineMaterial, data.perPixelSorting ? 7 : 0, MeshTopology.Triangles, 3); + natCmd.DrawProcedural(Matrix4x4.identity, data.cloudsCombineMaterial, data.perPixelSorting ? 7 : 0, MeshTopology.Triangles, 3); }); } } @@ -708,7 +717,7 @@ GraphicsFormat GetCloudsColorFormat(VolumetricClouds settings, bool isHistoryBuf return (GraphicsFormat)m_RenderPipeline.asset.currentPlatformRenderPipelineSettings.colorBufferFormat; } - void CreateTracingTextures(RenderGraph renderGraph, RenderGraphBuilder builder, VolumetricClouds settings, float scale, out TextureHandle cloudsLighting, out TextureHandle cloudsDepth) + void CreateTracingTextures(RenderGraph renderGraph, IUnsafeRenderGraphBuilder builder, VolumetricClouds settings, float scale, out TextureHandle cloudsLighting, out TextureHandle cloudsDepth) { cloudsLighting = builder.CreateTransientTexture(new TextureDesc(Vector2.one * scale, true, true) { format = GetCloudsColorFormat(settings, false), enableRandomWrite = true, name = "Traced Clouds Lighting" }); @@ -717,7 +726,7 @@ void CreateTracingTextures(RenderGraph renderGraph, RenderGraphBuilder builder, { format = GraphicsFormat.R16G16_SFloat, enableRandomWrite = true, name = "Traced Clouds Depth" }); } - void CreateIntermediateTextures(RenderGraph renderGraph, RenderGraphBuilder builder, VolumetricClouds settings, out TextureHandle intermediate1, out TextureHandle intermediate2) + void CreateIntermediateTextures(RenderGraph renderGraph, IUnsafeRenderGraphBuilder builder, VolumetricClouds settings, out TextureHandle intermediate1, out TextureHandle intermediate2) { intermediate1 = builder.CreateTransientTexture(new TextureDesc(Vector2.one * 0.5f, true, true) { format = GetCloudsColorFormat(settings, false), enableRandomWrite = true, name = "Temporary Clouds Lighting Buffer 1" }); @@ -726,13 +735,15 @@ void CreateIntermediateTextures(RenderGraph renderGraph, RenderGraphBuilder buil { format = GraphicsFormat.R16G16B16A16_SFloat, enableRandomWrite = true, name = "Temporary Clouds Lighting Buffer 2" }); } - void CreateOutputTextures(RenderGraph renderGraph, RenderGraphBuilder builder, VolumetricClouds settings, out TextureHandle cloudsLighting, out TextureHandle cloudsDepth) + void CreateOutputTextures(RenderGraph renderGraph, IUnsafeRenderGraphBuilder builder, VolumetricClouds settings, out TextureHandle cloudsLighting, out TextureHandle cloudsDepth) { - cloudsLighting = builder.WriteTexture(renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) - { format = GetCloudsColorFormat(settings, false), enableRandomWrite = true, name = "Volumetric Clouds Lighting Texture" })); + cloudsLighting = renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) + { format = GetCloudsColorFormat(settings, false), enableRandomWrite = true, name = "Volumetric Clouds Lighting Texture" }); + builder.UseTexture(cloudsLighting, AccessFlags.Write); - cloudsDepth = builder.WriteTexture(renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) - { format = GraphicsFormat.R16G16_SFloat, enableRandomWrite = true, name = "Volumetric Clouds Depth Texture" })); + cloudsDepth = renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) + { format = GraphicsFormat.R16G16_SFloat, enableRandomWrite = true, name = "Volumetric Clouds Depth Texture" }); + builder.UseTexture(cloudsDepth, AccessFlags.Write); } static void DoVolumetricCloudsTrace(CommandBuffer cmd, int traceTX, int traceTY, int viewCount, in VolumetricCloudCommonData commonData, diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/VolumetricClouds/HDRenderPipeline.VolumetricCloudsAccumulation.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/VolumetricClouds/HDRenderPipeline.VolumetricCloudsAccumulation.cs index e9b6b44a292..5c88eb71356 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/VolumetricClouds/HDRenderPipeline.VolumetricCloudsAccumulation.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/VolumetricClouds/HDRenderPipeline.VolumetricCloudsAccumulation.cs @@ -197,9 +197,8 @@ class VolumetricCloudsAccumulationData VolumetricCloudsOutput RenderVolumetricClouds_Accumulation(RenderGraph renderGraph, HDCamera hdCamera, TVolumetricCloudsCameraType cameraType, TextureHandle colorBuffer, TextureHandle depthPyramid) { - using (var builder = renderGraph.AddRenderPass("Volumetric Clouds", out var passData, ProfilingSampler.Get(HDProfileId.VolumetricClouds))) + using (var builder = renderGraph.AddUnsafePass("Volumetric Clouds", out var passData, ProfilingSampler.Get(HDProfileId.VolumetricClouds))) { - builder.EnableAsyncCompute(false); VolumetricClouds settings = hdCamera.volumeStack.GetComponent(); // When DRS scale is lower than threshold, trace in half res instead of quarter res @@ -223,9 +222,12 @@ VolumetricCloudsOutput RenderVolumetricClouds_Accumulation(RenderGraph renderGra passData.parameters = PrepareVolumetricCloudsParameters_Accumulation(hdCamera, settings, cameraType, historyValidity, downscaling); // Input buffers - passData.colorBuffer = builder.ReadTexture(colorBuffer); - passData.depthPyramid = builder.ReadTexture(depthPyramid); - passData.ambientProbeBuffer = builder.ReadBuffer(renderGraph.ImportBuffer(m_CloudsDynamicProbeBuffer)); + passData.colorBuffer = colorBuffer; + builder.UseTexture(passData.colorBuffer, AccessFlags.Read); + passData.depthPyramid = depthPyramid; + builder.UseTexture(passData.depthPyramid, AccessFlags.Read); + passData.ambientProbeBuffer = renderGraph.ImportBuffer(m_CloudsDynamicProbeBuffer); + builder.UseBuffer(passData.ambientProbeBuffer, AccessFlags.Read); // History and pass output hdCamera.intermediateDownscaling = downscaling; @@ -238,9 +240,9 @@ VolumetricCloudsOutput RenderVolumetricClouds_Accumulation(RenderGraph renderGra CreateOutputTextures(renderGraph, builder, settings, out passData.cloudsLighting, out passData.cloudsDepth); builder.SetRenderFunc( - (VolumetricCloudsAccumulationData data, RenderGraphContext ctx) => + (VolumetricCloudsAccumulationData data, UnsafeGraphContext ctx) => { - TraceVolumetricClouds_Accumulation(ctx.cmd, data.parameters, + TraceVolumetricClouds_Accumulation(CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd), data.parameters, data.ambientProbeBuffer, data.colorBuffer, data.depthPyramid, data.tracedCloudsLighting, data.tracedCloudsDepth, data.currentHistoryBuffer0, data.previousHistoryBuffer0, diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/VolumetricClouds/HDRenderPipeline.VolumetricCloudsFullResolution.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/VolumetricClouds/HDRenderPipeline.VolumetricCloudsFullResolution.cs index 8633f2affc8..c7e610e97e4 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/VolumetricClouds/HDRenderPipeline.VolumetricCloudsFullResolution.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/VolumetricClouds/HDRenderPipeline.VolumetricCloudsFullResolution.cs @@ -92,25 +92,27 @@ class VolumetricCloudsFullResolutionData VolumetricCloudsOutput RenderVolumetricClouds_FullResolution(RenderGraph renderGraph, HDCamera hdCamera, TVolumetricCloudsCameraType cameraType, TextureHandle colorBuffer, TextureHandle depthPyramid) { - using (var builder = renderGraph.AddRenderPass("Volumetric Clouds Full Resolution", out var passData, ProfilingSampler.Get(HDProfileId.VolumetricClouds))) + using (var builder = renderGraph.AddUnsafePass("Volumetric Clouds Full Resolution", out var passData, ProfilingSampler.Get(HDProfileId.VolumetricClouds))) { - builder.EnableAsyncCompute(false); VolumetricClouds settings = hdCamera.volumeStack.GetComponent(); // Parameters passData.parameters = PrepareVolumetricCloudsParameters_FullResolution(hdCamera, hdCamera.actualWidth, hdCamera.actualHeight, hdCamera.viewCount, hdCamera.exposureControlFS, settings, cameraType); // Input buffers - passData.colorBuffer = builder.ReadTexture(colorBuffer); - passData.depthPyramid = builder.ReadTexture(depthPyramid); - passData.ambientProbeBuffer = builder.ReadBuffer(renderGraph.ImportBuffer(m_CloudsDynamicProbeBuffer)); + passData.colorBuffer = colorBuffer; + builder.UseTexture(passData.colorBuffer, AccessFlags.Read); + passData.depthPyramid = depthPyramid; + builder.UseTexture(passData.depthPyramid, AccessFlags.Read); + passData.ambientProbeBuffer = renderGraph.ImportBuffer(m_CloudsDynamicProbeBuffer); + builder.UseBuffer(passData.ambientProbeBuffer, AccessFlags.Read); CreateOutputTextures(renderGraph, builder, settings, out passData.cloudsLighting, out passData.cloudsDepth); builder.SetRenderFunc( - (VolumetricCloudsFullResolutionData data, RenderGraphContext ctx) => + (VolumetricCloudsFullResolutionData data, UnsafeGraphContext ctx) => { - TraceVolumetricClouds_FullResolution(ctx.cmd, data.parameters, + TraceVolumetricClouds_FullResolution(CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd), data.parameters, data.ambientProbeBuffer, data.colorBuffer, data.depthPyramid, data.cloudsLighting, data.cloudsDepth); }); diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/VolumetricClouds/HDRenderPipeline.VolumetricCloudsLowResolution.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/VolumetricClouds/HDRenderPipeline.VolumetricCloudsLowResolution.cs index c882b803b15..d54d6e9ed87 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/VolumetricClouds/HDRenderPipeline.VolumetricCloudsLowResolution.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/VolumetricClouds/HDRenderPipeline.VolumetricCloudsLowResolution.cs @@ -134,27 +134,29 @@ class VolumetricCloudsLowResolutionData VolumetricCloudsOutput RenderVolumetricClouds_LowResolution(RenderGraph renderGraph, HDCamera hdCamera, TVolumetricCloudsCameraType cameraType, TextureHandle colorBuffer, TextureHandle depthPyramid) { - using (var builder = renderGraph.AddRenderPass("Volumetric Clouds Low Resolution", out var passData, ProfilingSampler.Get(HDProfileId.VolumetricClouds))) + using (var builder = renderGraph.AddUnsafePass("Volumetric Clouds Low Resolution", out var passData, ProfilingSampler.Get(HDProfileId.VolumetricClouds))) { - builder.EnableAsyncCompute(false); VolumetricClouds settings = hdCamera.volumeStack.GetComponent(); // Parameters passData.parameters = PrepareVolumetricCloudsParameters_LowResolution(hdCamera, hdCamera.actualWidth, hdCamera.actualHeight, hdCamera.viewCount, hdCamera.exposureControlFS, settings, cameraType); // Input buffers - passData.colorBuffer = builder.ReadTexture(colorBuffer); - passData.depthPyramid = builder.ReadTexture(depthPyramid); - passData.ambientProbeBuffer = builder.ReadBuffer(renderGraph.ImportBuffer(m_CloudsDynamicProbeBuffer)); + passData.colorBuffer = colorBuffer; + builder.UseTexture(passData.colorBuffer, AccessFlags.Read); + passData.depthPyramid = depthPyramid; + builder.UseTexture(passData.depthPyramid, AccessFlags.Read); + passData.ambientProbeBuffer = renderGraph.ImportBuffer(m_CloudsDynamicProbeBuffer); + builder.UseBuffer(passData.ambientProbeBuffer, AccessFlags.Read); CreateTracingTextures(renderGraph, builder, settings, 0.25f, out passData.tracedCloudsLighting, out passData.tracedCloudsDepth); CreateIntermediateTextures(renderGraph, builder, settings, out passData.intermediateLightingBuffer1, out passData.intermediateLightingBuffer2); CreateOutputTextures(renderGraph, builder, settings, out passData.cloudsLighting, out passData.cloudsDepth); builder.SetRenderFunc( - (VolumetricCloudsLowResolutionData data, RenderGraphContext ctx) => + (VolumetricCloudsLowResolutionData data, UnsafeGraphContext ctx) => { - TraceVolumetricClouds_LowResolution(ctx.cmd, data.parameters, + TraceVolumetricClouds_LowResolution(CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd), data.parameters, data.ambientProbeBuffer, data.colorBuffer, data.depthPyramid, data.tracedCloudsLighting, data.tracedCloudsDepth, data.intermediateLightingBuffer1, data.intermediateLightingBuffer2, diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/VolumetricClouds/HDRenderPipeline.VolumetricCloudsMap.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/VolumetricClouds/HDRenderPipeline.VolumetricCloudsMap.cs index 7148f7031f9..d5a6a27e800 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/VolumetricClouds/HDRenderPipeline.VolumetricCloudsMap.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/VolumetricClouds/HDRenderPipeline.VolumetricCloudsMap.cs @@ -119,7 +119,7 @@ CloudMapGenerationParameters PrepareCloudMapGenerationParameters(in VolumetricCl return parameters; } - static void EvaluateVolumetricCLoudMap(CommandBuffer cmd, CloudMapGenerationParameters parameters, RTHandle outputCloudMap) + static void EvaluateVolumetricCloudMap(CommandBuffer cmd, CloudMapGenerationParameters parameters, RTHandle outputCloudMap) { using (new ProfilingScope(cmd, ProfilingSampler.Get(HDProfileId.VolumetricCloudMapGeneration))) { @@ -158,17 +158,17 @@ void PreRenderVolumetricCloudMap(RenderGraph renderGraph, HDCamera hdCamera, in // Make sure the cloud map is at the right size AdjustCloudMapTextureSize(in settings); - using (var builder = renderGraph.AddRenderPass("Volumetric cloud map generation", out var passData, ProfilingSampler.Get(HDProfileId.VolumetricCloudMapGeneration))) + using (var builder = renderGraph.AddUnsafePass("Volumetric cloud map generation", out var passData, ProfilingSampler.Get(HDProfileId.VolumetricCloudMapGeneration))) { - builder.EnableAsyncCompute(false); + builder.AllowPassCulling(false); passData.parameters = PrepareCloudMapGenerationParameters(in settings); passData.cloudMapTexture = renderGraph.ImportTexture(m_AdvancedCloudMap); builder.SetRenderFunc( - (VolumetricCloudsMapData data, RenderGraphContext ctx) => + (VolumetricCloudsMapData data, UnsafeGraphContext ctx) => { - EvaluateVolumetricCLoudMap(ctx.cmd, data.parameters, data.cloudMapTexture); + EvaluateVolumetricCloudMap(CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd), data.parameters, data.cloudMapTexture); }); } } diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/VolumetricClouds/HDRenderPipeline.VolumetricCloudsShadows.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/VolumetricClouds/HDRenderPipeline.VolumetricCloudsShadows.cs index 8e734b8f1cf..53dd6a62320 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/VolumetricClouds/HDRenderPipeline.VolumetricCloudsShadows.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/VolumetricClouds/HDRenderPipeline.VolumetricCloudsShadows.cs @@ -241,7 +241,7 @@ internal void RenderVolumetricCloudsShadows(RenderGraph renderGraph, HDCamera hd TextureHandle shadowTexture = renderGraph.CreateTexture(new TextureDesc(shadowResolution, shadowResolution, false, false) { format = GraphicsFormat.R16G16B16A16_SFloat, enableRandomWrite = true, name = "Volumetric Clouds Shadow Texture" }); - using (var builder = renderGraph.AddRenderPass("Volumetric Clouds Shadows", out var passData, ProfilingSampler.Get(HDProfileId.VolumetricCloudsShadow))) + using (var builder = renderGraph.AddUnsafePass("Volumetric Clouds Shadows", out var passData, ProfilingSampler.Get(HDProfileId.VolumetricCloudsShadow))) { // Disable pass culling builder.AllowPassCulling(false); @@ -252,15 +252,18 @@ internal void RenderVolumetricCloudsShadows(RenderGraph renderGraph, HDCamera hd // Manage the resources passData.intermediateShadowTexture = builder.CreateTransientTexture(new TextureDesc(shadowResolution, shadowResolution, false, false) { format = GraphicsFormat.R16G16B16A16_SFloat, enableRandomWrite = true, name = "Volumetric Clouds Shadow Temp Texture" }); - passData.shadowTexture = builder.ReadWriteTexture(shadowTexture); + passData.shadowTexture = shadowTexture; + builder.UseTexture(passData.shadowTexture, AccessFlags.ReadWrite); // Evaluate the shadow - builder.SetRenderFunc((VolumetricCloudsShadowsData data, RenderGraphContext ctx) => + builder.SetRenderFunc((VolumetricCloudsShadowsData data, UnsafeGraphContext ctx) => { - TraceVolumetricCloudShadow(ctx.cmd, data.parameters, data.intermediateShadowTexture, data.shadowTexture); + var natCmd = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); + + TraceVolumetricCloudShadow(natCmd, data.parameters, data.intermediateShadowTexture, data.shadowTexture); // Bind the volumetric clouds shadow - ctx.cmd.SetGlobalTexture(HDShaderIDs._VolumetricCloudsShadowsTexture, data.shadowTexture); + natCmd.SetGlobalTexture(HDShaderIDs._VolumetricCloudsShadowsTexture, data.shadowTexture); }); } diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/VolumetricClouds/HDRenderPipeline.VolumetricCloudsSky.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/VolumetricClouds/HDRenderPipeline.VolumetricCloudsSky.cs index 4554d80a976..e9da48813a7 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/VolumetricClouds/HDRenderPipeline.VolumetricCloudsSky.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/VolumetricClouds/HDRenderPipeline.VolumetricCloudsSky.cs @@ -56,7 +56,7 @@ class VolumetricCloudsSkyLowPassData public BufferHandle ambientProbeBuffer; } - void PrepareVolumetricCloudsSkyLowPassData(RenderGraph renderGraph, RenderGraphBuilder builder, + void PrepareVolumetricCloudsSkyLowPassData(RenderGraph renderGraph, IUnsafeRenderGraphBuilder builder, HDCamera hdCamera, int width, int height, Matrix4x4[] pixelCoordToViewDir, CubemapFace cubemapFace, VolumetricClouds settings, GraphicsBuffer ambientProbeBuffer, VolumetricCloudsSkyLowPassData data) { @@ -101,8 +101,10 @@ void PrepareVolumetricCloudsSkyLowPassData(RenderGraph renderGraph, RenderGraphB data.intermediateLightingBuffer = builder.CreateTransientTexture(GetVolumetricCloudsIntermediateLightingBufferDesc()); data.intermediateDepthBuffer = builder.CreateTransientTexture(GetVolumetricCloudsIntermediateDepthBufferDesc()); - data.output = builder.WriteTexture(renderGraph.CreateTexture(GetVolumetricCloudsIntermediateCubeTextureDesc())); - data.ambientProbeBuffer = builder.ReadBuffer(renderGraph.ImportBuffer(ambientProbeBuffer)); + data.output = renderGraph.CreateTexture(GetVolumetricCloudsIntermediateCubeTextureDesc()); + builder.UseTexture(data.output, AccessFlags.Write); + data.ambientProbeBuffer = renderGraph.ImportBuffer(ambientProbeBuffer); + builder.UseBuffer(data.ambientProbeBuffer, AccessFlags.Read); } static void TraceVolumetricClouds_Sky_Low(CommandBuffer cmd, VolumetricCloudsSkyLowPassData passData, MaterialPropertyBlock mpb) @@ -153,7 +155,7 @@ class VolumetricCloudsSkyHighPassData public BufferHandle ambientProbeBuffer; } - void PrepareVolumetricCloudsSkyHighPassData(RenderGraph renderGraph, RenderGraphBuilder builder, + void PrepareVolumetricCloudsSkyHighPassData(RenderGraph renderGraph, IUnsafeRenderGraphBuilder builder, HDCamera hdCamera, int width, int height, Matrix4x4[] pixelCoordToViewDir, CubemapFace cubemapFace, VolumetricClouds settings, GraphicsBuffer ambientProbeBuffer, TextureHandle output, VolumetricCloudsSkyHighPassData data) @@ -193,13 +195,16 @@ void PrepareVolumetricCloudsSkyHighPassData(RenderGraph renderGraph, RenderGraph if (SystemInfo.graphicsDeviceType == GraphicsDeviceType.Metal) { data.cameraColorCopy = builder.CreateTransientTexture(GetVolumetricCloudsMetalCopyBufferDesc()); - data.output = builder.ReadWriteTexture(output); + data.output = output; + builder.UseTexture(data.output, AccessFlags.ReadWrite); } else { - data.output = builder.WriteTexture(output); + data.output = output; + builder.UseTexture(data.output, AccessFlags.Write); } - data.ambientProbeBuffer = builder.ReadBuffer(renderGraph.ImportBuffer(ambientProbeBuffer)); + data.ambientProbeBuffer = renderGraph.ImportBuffer(ambientProbeBuffer); + builder.UseBuffer(data.ambientProbeBuffer, AccessFlags.Read); } static void RenderVolumetricClouds_Sky_High(CommandBuffer cmd, VolumetricCloudsSkyHighPassData passData, MaterialPropertyBlock mpb) @@ -275,13 +280,14 @@ internal void RenderVolumetricClouds_Sky(RenderGraph renderGraph, HDCamera hdCam if (hdCamera.frameSettings.IsEnabled(FrameSettingsField.FullResolutionCloudsForSky)) { - using (var builder = renderGraph.AddRenderPass("FullResolutionCloudsForSky", out var passData, ProfilingSampler.Get(HDProfileId.VolumetricCloudsTrace))) + using (var builder = renderGraph.AddUnsafePass("FullResolutionCloudsForSky", out var passData, ProfilingSampler.Get(HDProfileId.VolumetricCloudsTrace))) { PrepareVolumetricCloudsSkyHighPassData(renderGraph, builder, hdCamera, width, height, pixelCoordToViewDir, CubemapFace.Unknown, settings, probeBuffer, skyboxCubemap, passData); builder.SetRenderFunc( - (VolumetricCloudsSkyHighPassData data, RenderGraphContext ctx) => + (VolumetricCloudsSkyHighPassData data, UnsafeGraphContext ctx) => { + var natCmd = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); for (int faceIdx = 0; faceIdx < 6; ++faceIdx) { // Update the cubemap face and the inverse projection matrix @@ -289,7 +295,7 @@ internal void RenderVolumetricClouds_Sky(RenderGraph renderGraph, HDCamera hdCam UpdatePixelCoordToViewDir(ref data.commonData.cloudsCB, data.pixelCoordToViewDir[faceIdx]); // Render the face straight to the output cubemap - RenderVolumetricClouds_Sky_High(ctx.cmd, data, ctx.renderGraphPool.GetTempMaterialPropertyBlock()); + RenderVolumetricClouds_Sky_High(natCmd, data, ctx.renderGraphPool.GetTempMaterialPropertyBlock()); } }); } @@ -298,13 +304,14 @@ internal void RenderVolumetricClouds_Sky(RenderGraph renderGraph, HDCamera hdCam { TextureHandle intermediateCubemap; - using (var builder = renderGraph.AddRenderPass("LowResolutionCloudsForSky", out var passData, ProfilingSampler.Get(HDProfileId.VolumetricCloudsTrace))) + using (var builder = renderGraph.AddUnsafePass("LowResolutionCloudsForSky", out var passData, ProfilingSampler.Get(HDProfileId.VolumetricCloudsTrace))) { PrepareVolumetricCloudsSkyLowPassData(renderGraph, builder, hdCamera, width, height, pixelCoordToViewDir, CubemapFace.Unknown, settings, probeBuffer, passData); builder.SetRenderFunc( - (VolumetricCloudsSkyLowPassData data, RenderGraphContext ctx) => + (VolumetricCloudsSkyLowPassData data, UnsafeGraphContext ctx) => { + var natCmd = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); for (int faceIdx = 0; faceIdx < 6; ++faceIdx) { // Update the cubemap face and the inverse projection matrix @@ -312,23 +319,26 @@ internal void RenderVolumetricClouds_Sky(RenderGraph renderGraph, HDCamera hdCam UpdatePixelCoordToViewDir(ref data.commonData.cloudsCB, data.pixelCoordToViewDir[faceIdx]); // Render the face straight to the output cubemap - TraceVolumetricClouds_Sky_Low(ctx.cmd, data, ctx.renderGraphPool.GetTempMaterialPropertyBlock()); + TraceVolumetricClouds_Sky_Low(natCmd, data, ctx.renderGraphPool.GetTempMaterialPropertyBlock()); } }); intermediateCubemap = passData.output; } - using (var builder = renderGraph.AddRenderPass("VolumetricCloudsPreUpscale", out var passData, ProfilingSampler.Get(HDProfileId.VolumetricCloudsPreUpscale))) + using (var builder = renderGraph.AddUnsafePass("VolumetricCloudsPreUpscale", out var passData, ProfilingSampler.Get(HDProfileId.VolumetricCloudsPreUpscale))) { passData.cloudCombinePass = m_CloudCombinePass; passData.pixelCoordToViewDir = pixelCoordToViewDir; - passData.input = builder.ReadTexture(intermediateCubemap); - passData.output = builder.WriteTexture(renderGraph.CreateTexture(GetVolumetricCloudsIntermediateCubeTextureDesc())); + passData.input = intermediateCubemap; + builder.UseTexture(passData.input, AccessFlags.Read); + passData.output = renderGraph.CreateTexture(GetVolumetricCloudsIntermediateCubeTextureDesc()); + builder.UseTexture(passData.output, AccessFlags.Write); builder.SetRenderFunc( - (VolumetricCloudsPreUpscalePassData data, RenderGraphContext ctx) => + (VolumetricCloudsPreUpscalePassData data, UnsafeGraphContext ctx) => { + var natCmd = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); for (int faceIdx = 0; faceIdx < 6; ++faceIdx) { var mpb = ctx.renderGraphPool.GetTempMaterialPropertyBlock(); @@ -336,32 +346,36 @@ internal void RenderVolumetricClouds_Sky(RenderGraph renderGraph, HDCamera hdCam mpb.SetTexture(HDShaderIDs._VolumetricCloudsTexture, data.input); mpb.SetMatrix(HDShaderIDs._PixelCoordToViewDirWS, data.pixelCoordToViewDir[faceIdx]); mpb.SetInt(HDShaderIDs._Mipmap, 2); - CoreUtils.SetRenderTarget(ctx.cmd, data.output, ClearFlag.None, 1, (CubemapFace)faceIdx); - CoreUtils.DrawFullScreen(ctx.cmd, data.cloudCombinePass, mpb, 4); + CoreUtils.SetRenderTarget(natCmd, data.output, ClearFlag.None, 1, (CubemapFace)faceIdx); + CoreUtils.DrawFullScreen(natCmd, data.cloudCombinePass, mpb, 4); } }); intermediateCubemap = passData.output; } - using (var builder = renderGraph.AddRenderPass("VolumetricCloudsUpscale", out var passData, ProfilingSampler.Get(HDProfileId.VolumetricCloudsUpscale))) + using (var builder = renderGraph.AddUnsafePass("VolumetricCloudsUpscale", out var passData, ProfilingSampler.Get(HDProfileId.VolumetricCloudsUpscale))) { passData.cloudCombinePass = m_CloudCombinePass; passData.pixelCoordToViewDir = pixelCoordToViewDir; - passData.input = builder.ReadTexture(intermediateCubemap); + passData.input = intermediateCubemap; + builder.UseTexture(passData.input, AccessFlags.Read); if (SystemInfo.graphicsDeviceType == GraphicsDeviceType.Metal) { passData.intermediateBuffer = builder.CreateTransientTexture(GetVolumetricCloudsMetalCopyBufferDesc()); - passData.output = builder.ReadWriteTexture(skyboxCubemap); + passData.output = skyboxCubemap; + builder.UseTexture(passData.output, AccessFlags.ReadWrite); } else { - passData.output = builder.WriteTexture(skyboxCubemap); + passData.output = skyboxCubemap; + builder.UseTexture(passData.output, AccessFlags.Write); } builder.SetRenderFunc( - (VolumetricCloudsUpscalePassData data, RenderGraphContext ctx) => + (VolumetricCloudsUpscalePassData data, UnsafeGraphContext ctx) => { + var natCmd = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); for (int faceIdx = 0; faceIdx < 6; ++faceIdx) { var mpb = ctx.renderGraphPool.GetTempMaterialPropertyBlock(); @@ -371,15 +385,15 @@ internal void RenderVolumetricClouds_Sky(RenderGraph renderGraph, HDCamera hdCam // On Intel GPUs on OSX, due to the fact that we cannot always rely on pre-exposure the hardware blending fails and turns into Nans when // the values are close to the max fp16 value. We do the blending manually on metal to avoid that behavior. // Copy the target face of the cubemap into a temporary texture - ctx.cmd.CopyTexture(data.output, faceIdx, 0, data.intermediateBuffer, 0, 0); + natCmd.CopyTexture(data.output, faceIdx, 0, data.intermediateBuffer, 0, 0); mpb.Clear(); mpb.SetTexture(HDShaderIDs._CameraColorTexture, data.intermediateBuffer); mpb.SetTexture(HDShaderIDs._VolumetricCloudsTexture, data.input); mpb.SetMatrix(HDShaderIDs._PixelCoordToViewDirWS, data.pixelCoordToViewDir[faceIdx]); mpb.SetInt(HDShaderIDs._Mipmap, 1); - CoreUtils.SetRenderTarget(ctx.cmd, data.output, ClearFlag.None, 0, (CubemapFace)faceIdx); - CoreUtils.DrawFullScreen(ctx.cmd, data.cloudCombinePass, mpb, 5); + CoreUtils.SetRenderTarget(natCmd, data.output, ClearFlag.None, 0, (CubemapFace)faceIdx); + CoreUtils.DrawFullScreen(natCmd, data.cloudCombinePass, mpb, 5); } else { @@ -387,8 +401,8 @@ internal void RenderVolumetricClouds_Sky(RenderGraph renderGraph, HDCamera hdCam mpb.SetTexture(HDShaderIDs._VolumetricCloudsTexture, data.input); mpb.SetMatrix(HDShaderIDs._PixelCoordToViewDirWS, data.pixelCoordToViewDir[faceIdx]); mpb.SetInt(HDShaderIDs._Mipmap, 1); - CoreUtils.SetRenderTarget(ctx.cmd, data.output, ClearFlag.None, 0, (CubemapFace)faceIdx); - CoreUtils.DrawFullScreen(ctx.cmd, data.cloudCombinePass, mpb, 6); + CoreUtils.SetRenderTarget(natCmd, data.output, ClearFlag.None, 0, (CubemapFace)faceIdx); + CoreUtils.DrawFullScreen(natCmd, data.cloudCombinePass, mpb, 6); } } }); diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/VolumetricClouds/VolumetricClouds.Migration.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/VolumetricClouds/VolumetricClouds.Migration.cs index d41f006e54b..8117759e2f4 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/VolumetricClouds/VolumetricClouds.Migration.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/VolumetricClouds/VolumetricClouds.Migration.cs @@ -98,19 +98,19 @@ void Awake() Version IVersionable.version { get => m_Version; set => m_Version = value; } - [SerializeField, Obsolete("For Data Migration")] + [SerializeField, Obsolete("For Data Migration. #from(2023.3)")] internal BoolParameter localClouds = new(false); - [SerializeField, FormerlySerializedAs("globalWindSpeed"), Obsolete("For Data Migration")] + [SerializeField, FormerlySerializedAs("globalWindSpeed"), Obsolete("For Data Migration. #from(2022.1)")] MinFloatParameter m_ObsoleteWindSpeed = new MinFloatParameter(1.0f, 0.0f); - [SerializeField, FormerlySerializedAs("orientation"), Obsolete("For Data Migration")] + [SerializeField, FormerlySerializedAs("orientation"), Obsolete("For Data Migration. #from(2022.1)")] ClampedFloatParameter m_ObsoleteOrientation = new ClampedFloatParameter(0.0f, 0.0f, 360.0f); - [SerializeField, FormerlySerializedAs("shapeOffsetX"), Obsolete("For Data Migration")] + [SerializeField, FormerlySerializedAs("shapeOffsetX"), Obsolete("For Data Migration. #from(2022.1)")] FloatParameter m_ObsoleteShapeOffsetX = new FloatParameter(0.0f); - [SerializeField, FormerlySerializedAs("shapeOffsetY"), Obsolete("For Data Migration")] + [SerializeField, FormerlySerializedAs("shapeOffsetY"), Obsolete("For Data Migration. #from(2022.1)")] FloatParameter m_ObsoleteShapeOffsetY = new FloatParameter(0.0f); - [SerializeField, FormerlySerializedAs("shapeOffsetZ"), Obsolete("For Data Migration")] + [SerializeField, FormerlySerializedAs("shapeOffsetZ"), Obsolete("For Data Migration. #from(2022.1)")] FloatParameter m_ObsoleteShapeOffsetZ = new FloatParameter(0.0f); } } diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/VolumetricLighting/HDRenderPipeline.VolumetricLighting.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/VolumetricLighting/HDRenderPipeline.VolumetricLighting.cs index a9144beadd8..46d4ed3e989 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/VolumetricLighting/HDRenderPipeline.VolumetricLighting.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/VolumetricLighting/HDRenderPipeline.VolumetricLighting.cs @@ -534,7 +534,7 @@ TextureHandle GenerateMaxZPass(RenderGraph renderGraph, HDCamera hdCamera, Textu { if (Fog.IsVolumetricFogEnabled(hdCamera)) { - using (var builder = renderGraph.AddRenderPass("Generate Max Z Mask for Volumetric", out var passData)) + using (var builder = renderGraph.AddUnsafePass("Generate Max Z Mask for Volumetric", out var passData)) { //TODO: move the entire vbuffer to hardware DRS mode. When Hardware DRS is enabled we will save performance // on these buffers, however the final vbuffer will be wasting resolution. This requires a bit of more work to optimize. @@ -573,16 +573,18 @@ TextureHandle GenerateMaxZPass(RenderGraph renderGraph, HDCamera hdCamera, Textu passData.viewCount = hdCamera.viewCount; - passData.depthTexture = builder.ReadTexture(depthTexture); + passData.depthTexture = depthTexture; + builder.UseTexture(passData.depthTexture, AccessFlags.Read); passData.maxZ8xBuffer = builder.CreateTransientTexture(new TextureDesc(Vector2.one * 0.125f, true, true) { format = GraphicsFormat.R32_SFloat, enableRandomWrite = true, name = "MaxZ mask 8x" }); passData.maxZBuffer = builder.CreateTransientTexture(new TextureDesc(Vector2.one * 0.125f, true, true) { format = GraphicsFormat.R32_SFloat, enableRandomWrite = true, name = "MaxZ mask" }); - passData.dilatedMaxZBuffer = builder.ReadWriteTexture(renderGraph.CreateTexture(new TextureDesc(Vector2.one / 16.0f, true, true) - { format = GraphicsFormat.R32_SFloat, enableRandomWrite = true, name = "Dilated MaxZ mask" })); + passData.dilatedMaxZBuffer = renderGraph.CreateTexture(new TextureDesc(Vector2.one / 16.0f, true, true) + { format = GraphicsFormat.R32_SFloat, enableRandomWrite = true, name = "Dilated MaxZ mask" }); + builder.UseTexture(passData.dilatedMaxZBuffer, AccessFlags.ReadWrite); builder.SetRenderFunc( - (GenerateMaxZMaskPassData data, RenderGraphContext ctx) => + (GenerateMaxZMaskPassData data, UnsafeGraphContext ctx) => { // Downsample 8x8 with max operator @@ -1069,7 +1071,7 @@ unsafe TextureHandle ClearAndHeightFogVoxelizationPass(RenderGraph renderGraph, var currIdx = (frameIndex + 0) & 1; var currParams = hdCamera.vBufferParams[currIdx]; - using (var builder = renderGraph.AddRenderPass("Clear and Height Fog Voxelization", out var passData)) + using (var builder = renderGraph.AddComputePass("Clear and Height Fog Voxelization", out var passData)) { passData.viewCount = hdCamera.viewCount; @@ -1083,24 +1085,28 @@ unsafe TextureHandle ClearAndHeightFogVoxelizationPass(RenderGraph renderGraph, UpdateShaderVariableslVolumetrics(ref m_ShaderVariablesVolumetricCB, hdCamera, passData.resolution, maxSliceCount, true); passData.volumetricCB = m_ShaderVariablesVolumetricCB; - passData.densityBuffer = builder.WriteTexture(renderGraph.CreateTexture(new TextureDesc(s_CurrentVolumetricBufferSize.x, s_CurrentVolumetricBufferSize.y, false, false) - { slices = s_CurrentVolumetricBufferSize.z, format = GraphicsFormat.R16G16B16A16_SFloat, dimension = TextureDimension.Tex3D, enableRandomWrite = true, name = "VBufferDensity" })); + passData.densityBuffer = renderGraph.CreateTexture(new TextureDesc(s_CurrentVolumetricBufferSize.x, s_CurrentVolumetricBufferSize.y, false, false) + { slices = s_CurrentVolumetricBufferSize.z, format = GraphicsFormat.R16G16B16A16_SFloat, dimension = TextureDimension.Tex3D, enableRandomWrite = true, name = "VBufferDensity" }); + builder.UseTexture(passData.densityBuffer, AccessFlags.Write); passData.volumetricAmbientProbeBuffer = m_SkyManager.GetVolumetricAmbientProbeBuffer(hdCamera); passData.water = transparentPrepass.waterGBuffer.valid && transparentPrepass.underWaterSurface != null; if (passData.water) { - passData.waterLine = builder.ReadBuffer(transparentPrepass.waterLine); - passData.waterCameraHeight = builder.ReadBuffer(transparentPrepass.waterGBuffer.cameraHeight); - passData.waterStencil = builder.ReadTexture(depthBuffer); + passData.waterLine = transparentPrepass.waterLine; + builder.UseBuffer(passData.waterLine, AccessFlags.Read); + passData.waterCameraHeight = transparentPrepass.waterGBuffer.cameraHeight; + builder.UseBuffer(passData.waterCameraHeight, AccessFlags.Read); + passData.waterStencil = depthBuffer; + builder.UseTexture(passData.waterStencil, AccessFlags.Read); } CoreUtils.SetKeyword(passData.voxelizationCS, "SUPPORT_WATER_ABSORPTION", passData.water); builder.EnableAsyncCompute(hdCamera.frameSettings.VolumeVoxelizationRunsAsync() && !passData.water); builder.SetRenderFunc( - (HeightFogVoxelizationPassData data, RenderGraphContext ctx) => + (HeightFogVoxelizationPassData data, ComputeGraphContext ctx) => { ctx.cmd.SetComputeTextureParam(data.voxelizationCS, data.voxelizationKernel, HDShaderIDs._VBufferDensity, data.densityBuffer); ctx.cmd.SetComputeBufferParam(data.voxelizationCS, data.voxelizationKernel, HDShaderIDs._VolumeAmbientProbeBuffer, data.volumetricAmbientProbeBuffer); @@ -1160,7 +1166,7 @@ unsafe TextureHandle FogVolumeAndVFXVoxelizationPass(RenderGraph renderGraph, clearBuffer = true, clearColor = Color.black }); - using (var builder = renderGraph.AddRenderPass("Fog Volume And VFX Voxelization", out var passData)) + using (var builder = renderGraph.AddUnsafePass("Fog Volume And VFX Voxelization", out var passData)) { builder.AllowPassCulling(true); @@ -1172,8 +1178,12 @@ unsafe TextureHandle FogVolumeAndVFXVoxelizationPass(RenderGraph renderGraph, excludeObjectMotionVectors = false }; - passData.vfxRendererList = builder.UseRendererList(renderGraph.CreateRendererList(vfxFogVolumeRendererListDesc)); - passData.densityBuffer = builder.WriteTexture(densityBuffer); + passData.vfxRendererList = renderGraph.CreateRendererList(vfxFogVolumeRendererListDesc); + builder.UseRendererList(passData.vfxRendererList); + + passData.densityBuffer = densityBuffer; + builder.UseTexture(passData.densityBuffer, AccessFlags.Write); + passData.viewportSize = currParams.viewportSize; var cvp = currParams.viewportSize; var res = new Vector4(cvp.x, cvp.y, 1.0f / cvp.x, 1.0f / cvp.y);; @@ -1181,7 +1191,10 @@ unsafe TextureHandle FogVolumeAndVFXVoxelizationPass(RenderGraph renderGraph, passData.volumetricCB = m_ShaderVariablesVolumetricCB; passData.fogOverdrawDebugEnabled = fogOverdrawDebugEnabled; if (fogOverdrawDebugEnabled) - passData.fogOverdrawOutput = debugOverdrawTexture = builder.UseColorBuffer(debugOverdrawTexture, 0); + { + passData.fogOverdrawOutput = debugOverdrawTexture; + builder.SetRenderAttachment(debugOverdrawTexture, 0); + } if (fogOverdrawDebugEnabled) { @@ -1193,7 +1206,8 @@ unsafe TextureHandle FogVolumeAndVFXVoxelizationPass(RenderGraph renderGraph, excludeObjectMotionVectors = false }; - passData.vfxDebugRendererList = builder.UseRendererList(renderGraph.CreateRendererList(vfxDebugFogRenderListDesc)); + passData.vfxDebugRendererList = renderGraph.CreateRendererList(vfxDebugFogRenderListDesc); + builder.UseRendererList(passData.vfxDebugRendererList); } passData.volumetricMaterialCS = runtimeShaders.volumetricMaterialCS; passData.computeRenderingParametersKernel = passData.volumetricMaterialCS.FindKernel("ComputeVolumetricMaterialRenderingParameters"); @@ -1207,35 +1221,37 @@ unsafe TextureHandle FogVolumeAndVFXVoxelizationPass(RenderGraph renderGraph, passData.visibleVolumeGlobalIndices = m_VisibleVolumeGlobalIndices; builder.SetRenderFunc( - (VolumetricFogVoxelizationPassData data, RenderGraphContext ctx) => + (VolumetricFogVoxelizationPassData data, UnsafeGraphContext ctx) => { + var natCmd = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); + // Prepare draw indirect command for the draw int volumeCount = data.volumetricFogs.Count; // Compute the indirect arguments to render volumetric materials - ctx.cmd.SetComputeBufferParam(data.volumetricMaterialCS, data.computeRenderingParametersKernel, HDShaderIDs._VolumeBounds, data.visibleVolumeBoundsBuffer); - ctx.cmd.SetComputeBufferParam(data.volumetricMaterialCS, data.computeRenderingParametersKernel, HDShaderIDs._VolumetricGlobalIndirectArgsBuffer, data.globalIndirectBuffer); - ctx.cmd.SetComputeBufferParam(data.volumetricMaterialCS, data.computeRenderingParametersKernel, HDShaderIDs._VolumetricGlobalIndirectionBuffer, data.globalIndirectionBuffer); - ctx.cmd.SetComputeBufferParam(data.volumetricMaterialCS, data.computeRenderingParametersKernel, HDShaderIDs._VolumetricVisibleGlobalIndicesBuffer, data.visibleVolumeGlobalIndices); - ctx.cmd.SetComputeBufferParam(data.volumetricMaterialCS, data.computeRenderingParametersKernel, HDShaderIDs._VolumetricMaterialData, data.materialDataBuffer); - ctx.cmd.SetComputeIntParam(data.volumetricMaterialCS, HDShaderIDs._VolumeCount, volumeCount); - ctx.cmd.SetComputeIntParam(data.volumetricMaterialCS, HDShaderIDs._MaxSliceCount, data.maxSliceCount); - ctx.cmd.SetComputeIntParam(data.volumetricMaterialCS, HDShaderIDs._VolumetricViewCount, data.hdCamera.viewCount); - ConstantBuffer.PushGlobal(ctx.cmd, data.volumetricCB, HDShaderIDs._ShaderVariablesVolumetric); + natCmd.SetComputeBufferParam(data.volumetricMaterialCS, data.computeRenderingParametersKernel, HDShaderIDs._VolumeBounds, data.visibleVolumeBoundsBuffer); + natCmd.SetComputeBufferParam(data.volumetricMaterialCS, data.computeRenderingParametersKernel, HDShaderIDs._VolumetricGlobalIndirectArgsBuffer, data.globalIndirectBuffer); + natCmd.SetComputeBufferParam(data.volumetricMaterialCS, data.computeRenderingParametersKernel, HDShaderIDs._VolumetricGlobalIndirectionBuffer, data.globalIndirectionBuffer); + natCmd.SetComputeBufferParam(data.volumetricMaterialCS, data.computeRenderingParametersKernel, HDShaderIDs._VolumetricVisibleGlobalIndicesBuffer, data.visibleVolumeGlobalIndices); + natCmd.SetComputeBufferParam(data.volumetricMaterialCS, data.computeRenderingParametersKernel, HDShaderIDs._VolumetricMaterialData, data.materialDataBuffer); + natCmd.SetComputeIntParam(data.volumetricMaterialCS, HDShaderIDs._VolumeCount, volumeCount); + natCmd.SetComputeIntParam(data.volumetricMaterialCS, HDShaderIDs._MaxSliceCount, data.maxSliceCount); + natCmd.SetComputeIntParam(data.volumetricMaterialCS, HDShaderIDs._VolumetricViewCount, data.hdCamera.viewCount); + ConstantBuffer.PushGlobal(natCmd, data.volumetricCB, HDShaderIDs._ShaderVariablesVolumetric); int dispatchXCount = Mathf.Max(1, Mathf.CeilToInt((float)(volumeCount * data.hdCamera.viewCount) / 32.0f)); - ctx.cmd.DispatchCompute(data.volumetricMaterialCS, data.computeRenderingParametersKernel, dispatchXCount, 1, 1); + natCmd.DispatchCompute(data.volumetricMaterialCS, data.computeRenderingParametersKernel, dispatchXCount, 1, 1); - ctx.cmd.SetGlobalBuffer(HDShaderIDs._VolumetricGlobalIndirectionBuffer, data.globalIndirectionBuffer); + natCmd.SetGlobalBuffer(HDShaderIDs._VolumetricGlobalIndirectionBuffer, data.globalIndirectionBuffer); - CoreUtils.SetRenderTarget(ctx.cmd, data.densityBuffer); - ctx.cmd.SetViewport(new Rect(0, 0, data.viewportSize.x, data.viewportSize.y)); - CoreUtils.DrawRendererList(ctx.renderContext, ctx.cmd, data.vfxRendererList); + CoreUtils.SetRenderTarget(natCmd, data.densityBuffer); + natCmd.SetViewport(new Rect(0, 0, data.viewportSize.x, data.viewportSize.y)); + natCmd.DrawRendererList(data.vfxRendererList); if (data.fogOverdrawDebugEnabled) { - CoreUtils.SetRenderTarget(ctx.cmd, data.fogOverdrawOutput); - CoreUtils.DrawRendererList(ctx.renderContext, ctx.cmd, data.vfxDebugRendererList); + CoreUtils.SetRenderTarget(natCmd, data.fogOverdrawOutput); + natCmd.DrawRendererList(data.vfxDebugRendererList); } }); } @@ -1322,7 +1338,7 @@ TextureHandle VolumetricLightingPass(RenderGraph renderGraph, HDCamera hdCamera, { if (Fog.IsVolumetricFogEnabled(hdCamera)) { - using (var builder = renderGraph.AddRenderPass("Volumetric Lighting", out var passData)) + using (var builder = renderGraph.AddUnsafePass("Volumetric Lighting", out var passData)) { int frameIndex = (int)VolumetricFrameIndex(hdCamera); var currIdx = (frameIndex + 0) & 1; @@ -1372,25 +1388,35 @@ TextureHandle VolumetricLightingPass(RenderGraph renderGraph, HDCamera hdCamera, passData.lightListCB = m_ShaderVariablesLightListCB; if (passData.tiledLighting) - passData.bigTileVolumetricLightListBuffer = builder.ReadBuffer(bigTileVolumetricLightListBuffer); - passData.densityBuffer = builder.ReadTexture(densityBuffer); - passData.depthTexture = builder.ReadTexture(depthTexture); - passData.maxZBuffer = builder.ReadTexture(maxZBuffer); - passData.lightingBuffer = builder.WriteTexture(renderGraph.CreateTexture(new TextureDesc(s_CurrentVolumetricBufferSize.x, s_CurrentVolumetricBufferSize.y, false, false) - { slices = s_CurrentVolumetricBufferSize.z, format = GraphicsFormat.R16G16B16A16_SFloat, dimension = TextureDimension.Tex3D, enableRandomWrite = true, name = "VBufferLighting" })); + { + passData.bigTileVolumetricLightListBuffer = bigTileVolumetricLightListBuffer; + builder.UseBuffer(passData.bigTileVolumetricLightListBuffer, AccessFlags.Read); + } + passData.densityBuffer = densityBuffer; + builder.UseTexture(passData.densityBuffer, AccessFlags.Read); + passData.depthTexture = depthTexture; + builder.UseTexture(passData.depthTexture, AccessFlags.Read); + passData.maxZBuffer = maxZBuffer; + builder.UseTexture(passData.maxZBuffer, AccessFlags.Read); + passData.lightingBuffer = renderGraph.CreateTexture(new TextureDesc(s_CurrentVolumetricBufferSize.x, s_CurrentVolumetricBufferSize.y, false, false) + { slices = s_CurrentVolumetricBufferSize.z, format = GraphicsFormat.R16G16B16A16_SFloat, dimension = TextureDimension.Tex3D, enableRandomWrite = true, name = "VBufferLighting" }); + builder.UseTexture(passData.lightingBuffer, AccessFlags.Write); if (passData.filterVolume && passData.filteringNeedsExtraBuffer) { - passData.filteringOutputBuffer = builder.WriteTexture(renderGraph.CreateTexture(new TextureDesc(s_CurrentVolumetricBufferSize.x, s_CurrentVolumetricBufferSize.y, false, false) - { slices = s_CurrentVolumetricBufferSize.z, format = GraphicsFormat.R16G16B16A16_SFloat, dimension = TextureDimension.Tex3D, enableRandomWrite = true, name = "VBufferLightingFiltered" })); + passData.filteringOutputBuffer = renderGraph.CreateTexture(new TextureDesc(s_CurrentVolumetricBufferSize.x, s_CurrentVolumetricBufferSize.y, false, false) + { slices = s_CurrentVolumetricBufferSize.z, format = GraphicsFormat.R16G16B16A16_SFloat, dimension = TextureDimension.Tex3D, enableRandomWrite = true, name = "VBufferLightingFiltered" }); + builder.UseTexture(passData.filteringOutputBuffer, AccessFlags.Write); CoreUtils.SetKeyword(passData.volumetricLightingFilteringCS, "NEED_SEPARATE_OUTPUT", passData.filteringNeedsExtraBuffer); } if (passData.enableReprojection) { - passData.feedbackBuffer = builder.WriteTexture(renderGraph.ImportTexture(hdCamera.volumetricHistoryBuffers[currIdx])); - passData.historyBuffer = builder.ReadTexture(renderGraph.ImportTexture(hdCamera.volumetricHistoryBuffers[prevIdx])); + passData.feedbackBuffer = renderGraph.ImportTexture(hdCamera.volumetricHistoryBuffers[currIdx]); + builder.UseTexture(passData.feedbackBuffer, AccessFlags.Write); + passData.historyBuffer = renderGraph.ImportTexture(hdCamera.volumetricHistoryBuffers[prevIdx]); + builder.UseTexture(passData.historyBuffer, AccessFlags.Read); } passData.volumetricAmbientProbeBuffer = m_SkyManager.GetVolumetricAmbientProbeBuffer(hdCamera); @@ -1398,9 +1424,12 @@ TextureHandle VolumetricLightingPass(RenderGraph renderGraph, HDCamera hdCamera, // Water stuff if (passData.water) { - passData.waterLine = builder.ReadBuffer(transparentPrepass.waterLine); - passData.waterCameraHeight = builder.ReadBuffer(transparentPrepass.waterGBuffer.cameraHeight); - passData.waterStencil = builder.ReadTexture(depthBuffer); + passData.waterLine = transparentPrepass.waterLine; + builder.UseBuffer(passData.waterLine, AccessFlags.Read); + passData.waterCameraHeight = transparentPrepass.waterGBuffer.cameraHeight; + builder.UseBuffer(passData.waterCameraHeight, AccessFlags.Read); + passData.waterStencil = depthBuffer; + builder.UseTexture(passData.waterStencil, AccessFlags.Read); if (transparentPrepass.underWaterSurface.caustics) passData.causticsBuffer = waterSystem.GetUnderWaterSurfaceCaustics(); } @@ -1408,7 +1437,7 @@ TextureHandle VolumetricLightingPass(RenderGraph renderGraph, HDCamera hdCamera, HDShadowManager.ReadShadowResult(shadowResult, builder); builder.SetRenderFunc( - (VolumetricLightingPassData data, RenderGraphContext ctx) => + (VolumetricLightingPassData data, UnsafeGraphContext ctx) => { if (data.tiledLighting) ctx.cmd.SetComputeBufferParam(data.volumetricLightingCS, data.volumetricLightingKernel, HDShaderIDs.g_vBigTileLightList, data.bigTileVolumetricLightListBuffer); diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/VolumetricLighting/VolumetricLightingController.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/VolumetricLighting/VolumetricLightingController.cs index 547859c8cec..f9f09d7b3b7 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/VolumetricLighting/VolumetricLightingController.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/VolumetricLighting/VolumetricLightingController.cs @@ -3,7 +3,7 @@ namespace UnityEngine.Rendering.HighDefinition { - [Obsolete()] + [Obsolete("#from(2021.2)")] [SupportedOnRenderPipeline(typeof(HDRenderPipelineAsset))] class VolumetricLightingController : VolumeComponent { diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Decal/DecalSystem.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Decal/DecalSystem.cs index 60665d6eee5..6e7bff2d27b 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Decal/DecalSystem.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Decal/DecalSystem.cs @@ -1493,9 +1493,10 @@ public void UpdateShaderGraphAtlasTextures(RenderGraph renderGraph) m_ShaderGraphVertexCount.Clear(); UpdateShaderGraphTexturePassData updatePassData; - using (var builder = renderGraph.AddRenderPass("UpdateShaderGraphDecalTexture", out updatePassData, ProfilingSampler.Get(HDProfileId.UpdateShaderGraphDecalTexture))) + using (var builder = renderGraph.AddUnsafePass("UpdateShaderGraphDecalTexture", out updatePassData, ProfilingSampler.Get(HDProfileId.UpdateShaderGraphDecalTexture))) { - updatePassData.atlasTexture = builder.WriteTexture(renderGraph.ImportTexture(Atlas.AtlasTexture)); + updatePassData.atlasTexture = renderGraph.ImportTexture(Atlas.AtlasTexture); + builder.UseTexture(updatePassData.atlasTexture, AccessFlags.Write); updatePassData.shaderGraphData = m_ShaderGraphList; updatePassData.updateMipmaps = false; @@ -1543,9 +1544,9 @@ public void UpdateShaderGraphAtlasTextures(RenderGraph renderGraph) updatePassData.shaderGraphVertexCount = m_ShaderGraphVertexCount; - builder.SetRenderFunc((UpdateShaderGraphTexturePassData data, RenderGraphContext context) => + builder.SetRenderFunc((UpdateShaderGraphTexturePassData data, UnsafeGraphContext ctx) => { - context.cmd.SetRenderTarget(data.atlasTexture); + ctx.cmd.SetRenderTarget(data.atlasTexture); for (int i = 0; i < data.shaderGraphData.Count; i++) { @@ -1554,7 +1555,7 @@ public void UpdateShaderGraphAtlasTextures(RenderGraph renderGraph) continue; ShaderGraphData shaderGraphData = data.shaderGraphData[i]; - context.cmd.DrawProcedural(Matrix4x4.identity, shaderGraphData.material, shaderGraphData.passIndex, MeshTopology.Quads, vertexCount, 1, shaderGraphData.propertyBlock); + ctx.cmd.DrawProcedural(Matrix4x4.identity, shaderGraphData.material, shaderGraphData.passIndex, MeshTopology.Quads, vertexCount, 1, shaderGraphData.propertyBlock); } }); } @@ -1562,13 +1563,14 @@ public void UpdateShaderGraphAtlasTextures(RenderGraph renderGraph) // Create the mipmaps for the texture atlas if (updatePassData.updateMipmaps) { - using (var builder = renderGraph.AddRenderPass("UpdateDecalAtlasMipmaps", out var passData, ProfilingSampler.Get(HDProfileId.UpdateDecalAtlasMipmaps))) + using (var builder = renderGraph.AddUnsafePass("UpdateDecalAtlasMipmaps", out var passData, ProfilingSampler.Get(HDProfileId.UpdateDecalAtlasMipmaps))) { - passData.atlasTexture = builder.WriteTexture(renderGraph.ImportTexture(Atlas.AtlasTexture)); + passData.atlasTexture = renderGraph.ImportTexture(Atlas.AtlasTexture); + builder.UseTexture(passData.atlasTexture, AccessFlags.Write); - builder.SetRenderFunc((UpdateAtlasMipmapsPassData data, RenderGraphContext context) => + builder.SetRenderFunc((UpdateAtlasMipmapsPassData data, UnsafeGraphContext ctx) => { - context.cmd.GenerateMips(data.atlasTexture); + CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd).GenerateMips(data.atlasTexture); }); } } @@ -1673,7 +1675,8 @@ public void Cleanup() public void RenderDebugOverlay(HDCamera hdCamera, CommandBuffer cmd, int mipLevel, Rendering.DebugOverlay debugOverlay) { cmd.SetViewport(debugOverlay.Next()); - HDUtils.BlitQuad(cmd, Atlas.AtlasTexture, new Vector4(1, 1, 0, 0), new Vector4(1, 1, 0, 0), mipLevel, true); + HDUtils.BlitQuad(cmd, Atlas.AtlasTexture, + new Vector4(1, 1, 0, 0), new Vector4(1, 1, 0, 0), mipLevel, true); } public void LoadCullResults(CullResult cullResult) diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/DiffusionProfile/DiffusionProfileSettings.Migration.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/DiffusionProfile/DiffusionProfileSettings.Migration.cs index 04a79a31a92..ca4298a9e41 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/DiffusionProfile/DiffusionProfileSettings.Migration.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/DiffusionProfile/DiffusionProfileSettings.Migration.cs @@ -17,7 +17,7 @@ enum Version SplitScatteringDistance,// scattering color + mean free path } - [Obsolete("Profiles are obsolete, only one diffusion profile per asset is allowed.")] + [Obsolete("Profiles are obsolete, only one diffusion profile per asset is allowed. #from(2021.3)")] internal DiffusionProfile this[int index] { get => profile; @@ -27,7 +27,7 @@ internal DiffusionProfile this[int index] Version m_Version = MigrationDescription.LastVersion(); Version IVersionable.version { get => m_Version; set => m_Version = value; } - [Obsolete("Profiles are obsolete, only one diffusion profile per asset is allowed.")] + [Obsolete("Profiles are obsolete, only one diffusion profile per asset is allowed. #from(2021.3)")] internal DiffusionProfile[] profiles; static readonly MigrationDescription k_Migration = MigrationDescription.New( diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/GGXConvolution/IBLFilterGGX.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/GGXConvolution/IBLFilterGGX.cs index 5301698c1e2..4f42ab88293 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/GGXConvolution/IBLFilterGGX.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/GGXConvolution/IBLFilterGGX.cs @@ -122,7 +122,7 @@ private static void CreateIntermediateTextures(CommandBuffer cmd, int texWidth, cmd.GetTemporaryRT(k_PlanarReflectionFilterDepthTex1ID, MakeRenderTextureDescriptor(texWidth, texHeight, GraphicsFormat.R32_SFloat, false)); } - private static void ReleaseItrermediateTextures(CommandBuffer cmd) + private static void ReleaseIntermediateTextures(CommandBuffer cmd) { cmd.ReleaseTemporaryRT(k_PlanarReflectionFilterTex0ID); cmd.ReleaseTemporaryRT(k_PlanarReflectionFilterTex1ID); @@ -349,7 +349,7 @@ override public void FilterPlanarTexture(CommandBuffer cmd, RenderTexture source mipIndex++; } - ReleaseItrermediateTextures(cmd); + ReleaseIntermediateTextures(cmd); } } } diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/VTBufferManager.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/VTBufferManager.cs index e996402a77c..c7d57dc92a5 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/VTBufferManager.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/VTBufferManager.cs @@ -106,7 +106,7 @@ public void Resolve(RenderGraph renderGraph, HDCamera hdCamera, TextureHandle in m_DownsampleKernelMSAA = m_DownSampleCS.FindKernel("KMainMSAA"); } - using (var builder = renderGraph.AddRenderPass("Resolve VT", out var passData, ProfilingSampler.Get(HDProfileId.VTFeedbackDownsample))) + using (var builder = renderGraph.AddUnsafePass("Resolve VT", out var passData, ProfilingSampler.Get(HDProfileId.VTFeedbackDownsample))) { // The output is never read outside the pass but is still useful for the VT system so we can't cull this pass. builder.AllowPassCulling(false); @@ -121,12 +121,15 @@ public void Resolve(RenderGraph renderGraph, HDCamera hdCamera, TextureHandle in passData.downsampleCS = m_DownSampleCS; passData.downsampleKernel = msaa ? m_DownsampleKernelMSAA : m_DownsampleKernel; - passData.input = builder.ReadTexture(input); - passData.lowres = builder.WriteTexture(renderGraph.ImportTexture(m_LowresResolver)); + passData.input = input; + builder.UseTexture(passData.input, AccessFlags.Read); + passData.lowres = renderGraph.ImportTexture(m_LowresResolver); + builder.UseTexture(passData.lowres, AccessFlags.Write); builder.SetRenderFunc( - (ResolveVTData data, RenderGraphContext ctx) => + (ResolveVTData data, UnsafeGraphContext ctx) => { + var natCmd = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); RTHandle lowresBuffer = data.lowres; RTHandle buffer = data.input; @@ -135,17 +138,17 @@ public void Resolve(RenderGraph renderGraph, HDCamera hdCamera, TextureHandle in int inputID = (buffer.isMSAAEnabled) ? HDShaderIDs._InputTextureMSAA : HDShaderIDs._InputTexture; - ctx.cmd.SetComputeTextureParam(data.downsampleCS, data.downsampleKernel, inputID, buffer); - ctx.cmd.SetComputeTextureParam(data.downsampleCS, data.downsampleKernel, HDShaderIDs._OutputTexture, lowresBuffer); + natCmd.SetComputeTextureParam(data.downsampleCS, data.downsampleKernel, inputID, buffer); + natCmd.SetComputeTextureParam(data.downsampleCS, data.downsampleKernel, HDShaderIDs._OutputTexture, lowresBuffer); var resolveCounter = 0; var startOffsetX = (resolveCounter % kResolveScaleFactor); var startOffsetY = (resolveCounter / kResolveScaleFactor) % kResolveScaleFactor; - ctx.cmd.SetComputeVectorParam(data.downsampleCS, HDShaderIDs._Params, new Vector4(kResolveScaleFactor, startOffsetX, startOffsetY, /*unused*/ -1)); - ctx.cmd.SetComputeVectorParam(data.downsampleCS, HDShaderIDs._Params1, new Vector4(data.width, data.height, data.lowresWidth, data.lowresHeight)); + natCmd.SetComputeVectorParam(data.downsampleCS, HDShaderIDs._Params, new Vector4(kResolveScaleFactor, startOffsetX, startOffsetY, /*unused*/ -1)); + natCmd.SetComputeVectorParam(data.downsampleCS, HDShaderIDs._Params1, new Vector4(data.width, data.height, data.lowresWidth, data.lowresHeight)); var TGSize = 8; //Match shader - ctx.cmd.DispatchCompute(data.downsampleCS, data.downsampleKernel, ((int)data.lowresWidth + (TGSize - 1)) / TGSize, ((int)data.lowresHeight + (TGSize - 1)) / TGSize, 1); + natCmd.DispatchCompute(data.downsampleCS, data.downsampleKernel, ((int)data.lowresWidth + (TGSize - 1)) / TGSize, ((int)data.lowresHeight + (TGSize - 1)) / TGSize, 1); - data.resolver.Process(ctx.cmd, lowresBuffer, 0, data.lowresWidth, 0, data.lowresHeight, 0, 0); + data.resolver.Process(natCmd, lowresBuffer, 0, data.lowresWidth, 0, data.lowresHeight, 0, 0); VirtualTexturing.System.Update(); }); diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Accumulation/DenoisePass.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Accumulation/DenoisePass.cs index 7302e4cda8a..c23a10fc6bc 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Accumulation/DenoisePass.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Accumulation/DenoisePass.cs @@ -28,6 +28,7 @@ class RenderDenoisePassData public TextureHandle denoisedHistory; public TextureHandle denoisedVolumetricFogHistory; public SubFrameManager subFrameManager; + public ScriptableRenderContext renderContext; public int camID; public bool useAOV; @@ -40,7 +41,7 @@ class RenderDenoisePassData public int slices; } - void RenderDenoisePass(RenderGraph renderGraph, HDCamera hdCamera, TextureHandle outputTexture) + void RenderDenoisePass(RenderGraph renderGraph, ScriptableRenderContext renderContext, HDCamera hdCamera, TextureHandle outputTexture) { #if UNITY_64 && ENABLE_UNITY_DENOISING_PLUGIN && (UNITY_STANDALONE_WIN || UNITY_EDITOR_WIN) // Early exit if there is no denoising @@ -49,7 +50,7 @@ void RenderDenoisePass(RenderGraph renderGraph, HDCamera hdCamera, TextureHandle return; } - using (var builder = renderGraph.AddRenderPass("Denoise Pass", out var passData)) + using (var builder = renderGraph.AddUnsafePass("Denoise Pass", out var passData)) { passData.blitAndExposeCS = runtimeShaders.blitAndExposeCS; passData.blitAndExposeKernel = passData.blitAndExposeCS.FindKernel("KMain"); @@ -71,28 +72,36 @@ void RenderDenoisePass(RenderGraph renderGraph, HDCamera hdCamera, TextureHandle passData.height = hdCamera.actualHeight; passData.slices = hdCamera.viewCount; + passData.renderContext = renderContext; + // Grab the history buffer TextureHandle ptAccumulation = renderGraph.ImportTexture(hdCamera.GetCurrentFrameRT((int)HDCameraFrameHistoryType.PathTracingOutput)); TextureHandle denoisedHistory = renderGraph.ImportTexture(hdCamera.GetCurrentFrameRT((int)HDCameraFrameHistoryType.PathTracingDenoised) ?? hdCamera.AllocHistoryFrameRT((int)HDCameraFrameHistoryType.PathTracingDenoised, PathTracingHistoryBufferAllocatorFunction, 1)); - passData.color = builder.ReadWriteTexture(ptAccumulation); - passData.outputTexture = builder.WriteTexture(outputTexture); - passData.denoisedHistory = builder.ReadTexture(denoisedHistory); + passData.color = ptAccumulation; + builder.UseTexture(passData.color, AccessFlags.ReadWrite); + passData.outputTexture = outputTexture; + builder.UseTexture(passData.outputTexture, AccessFlags.Write); + passData.denoisedHistory = denoisedHistory; + builder.UseTexture(passData.denoisedHistory, AccessFlags.Read); if (passData.useAOV) { TextureHandle albedoHistory = renderGraph.ImportTexture(hdCamera.GetCurrentFrameRT((int)HDCameraFrameHistoryType.PathTracingAlbedo)); TextureHandle normalHistory = renderGraph.ImportTexture(hdCamera.GetCurrentFrameRT((int)HDCameraFrameHistoryType.PathTracingNormal)); - passData.albedoAOV = builder.ReadTexture(albedoHistory); - passData.normalAOV = builder.ReadTexture(normalHistory); + passData.albedoAOV = albedoHistory; + builder.UseTexture(passData.albedoAOV, AccessFlags.Read); + passData.normalAOV = normalHistory; + builder.UseTexture(passData.normalAOV, AccessFlags.Read); } if (passData.temporal) { TextureHandle motionVectorHistory = renderGraph.ImportTexture(hdCamera.GetCurrentFrameRT((int)HDCameraFrameHistoryType.PathTracingMotionVector)); - passData.motionVectorAOV = builder.ReadTexture(motionVectorHistory); + passData.motionVectorAOV = motionVectorHistory; + builder.UseTexture(passData.motionVectorAOV, AccessFlags.Read); } if (passData.denoiseVolumetricFog) @@ -100,13 +109,16 @@ void RenderDenoisePass(RenderGraph renderGraph, HDCamera hdCamera, TextureHandle TextureHandle volumetricFogHistory = renderGraph.ImportTexture(hdCamera.GetCurrentFrameRT((int)HDCameraFrameHistoryType.PathTracingVolumetricFog)); TextureHandle denoisedVolumetricFogHistory = renderGraph.ImportTexture(hdCamera.GetCurrentFrameRT((int)HDCameraFrameHistoryType.PathTracingVolumetricFogDenoised) ?? hdCamera.AllocHistoryFrameRT((int)HDCameraFrameHistoryType.PathTracingVolumetricFogDenoised, PathTracingHistoryBufferAllocatorFunction, 1)); - passData.volumetricFogHistory = builder.ReadTexture(volumetricFogHistory); - passData.denoisedVolumetricFogHistory = builder.ReadTexture(denoisedVolumetricFogHistory); + passData.volumetricFogHistory = volumetricFogHistory; + builder.UseTexture(passData.volumetricFogHistory, AccessFlags.Read); + passData.denoisedVolumetricFogHistory = denoisedVolumetricFogHistory; + builder.UseTexture(passData.denoisedVolumetricFogHistory, AccessFlags.Read); } builder.SetRenderFunc( - (RenderDenoisePassData data, RenderGraphContext ctx) => + (RenderDenoisePassData data, UnsafeGraphContext ctx) => { + var natCmd = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); CameraData camData = data.subFrameManager.GetCameraData(data.camID); bool wasDenoisedResultRendered = false; @@ -135,17 +147,17 @@ void RenderDenoisePass(RenderGraph renderGraph, HDCamera hdCamera, TextureHandle { if (!camData.colorDenoiserData.activeRequest) { - camData.colorDenoiserData.denoiser.DenoiseRequest(ctx.cmd, "color", data.color); + camData.colorDenoiserData.denoiser.DenoiseRequest(natCmd, "color", data.color); if (data.useAOV) { - camData.colorDenoiserData.denoiser.DenoiseRequest(ctx.cmd, "albedo", data.albedoAOV); - camData.colorDenoiserData.denoiser.DenoiseRequest(ctx.cmd, "normal", data.normalAOV); + camData.colorDenoiserData.denoiser.DenoiseRequest(natCmd, "albedo", data.albedoAOV); + camData.colorDenoiserData.denoiser.DenoiseRequest(natCmd, "normal", data.normalAOV); } if (data.temporal) { - camData.colorDenoiserData.denoiser.DenoiseRequest(ctx.cmd, "flow", data.motionVectorAOV); + camData.colorDenoiserData.denoiser.DenoiseRequest(natCmd, "flow", data.motionVectorAOV); } camData.colorDenoiserData.InitRequest(); @@ -153,16 +165,16 @@ void RenderDenoisePass(RenderGraph renderGraph, HDCamera hdCamera, TextureHandle if (!data.async) { - camData.colorDenoiserData.denoiser.WaitForCompletion(ctx.renderContext, ctx.cmd); + camData.colorDenoiserData.denoiser.WaitForCompletion(data.renderContext, natCmd); - Denoiser.State ret = camData.colorDenoiserData.denoiser.GetResults(ctx.cmd, data.denoisedHistory); + Denoiser.State ret = camData.colorDenoiserData.denoiser.GetResults(natCmd, data.denoisedHistory); camData.colorDenoiserData.EndRequest(ret == Denoiser.State.Success); } else { if (camData.colorDenoiserData.activeRequest && camData.colorDenoiserData.denoiser.QueryCompletion() != Denoiser.State.Executing) { - Denoiser.State ret = camData.colorDenoiserData.denoiser.GetResults(ctx.cmd, data.denoisedHistory); + Denoiser.State ret = camData.colorDenoiserData.denoiser.GetResults(natCmd, data.denoisedHistory); camData.colorDenoiserData.EndRequest(ret == Denoiser.State.Success && camData.colorDenoiserData.discardRequest == false); } } @@ -175,22 +187,23 @@ void RenderDenoisePass(RenderGraph renderGraph, HDCamera hdCamera, TextureHandle { if (!camData.volumetricFogDenoiserData.activeRequest) { - camData.volumetricFogDenoiserData.denoiser.DenoiseRequest(ctx.cmd, "color", data.volumetricFogHistory); + camData.volumetricFogDenoiserData.denoiser.DenoiseRequest(natCmd, "color", data.volumetricFogHistory); camData.volumetricFogDenoiserData.InitRequest(); } if (!data.async) { - camData.volumetricFogDenoiserData.denoiser.WaitForCompletion(ctx.renderContext, ctx.cmd); + camData.volumetricFogDenoiserData.denoiser.WaitForCompletion(data.renderContext, natCmd); + - Denoiser.State ret = camData.volumetricFogDenoiserData.denoiser.GetResults(ctx.cmd, data.denoisedVolumetricFogHistory); + Denoiser.State ret = camData.volumetricFogDenoiserData.denoiser.GetResults(natCmd, data.denoisedVolumetricFogHistory); camData.volumetricFogDenoiserData.EndRequest(ret == Denoiser.State.Success); } else { if (camData.volumetricFogDenoiserData.activeRequest && camData.volumetricFogDenoiserData.denoiser.QueryCompletion() != Denoiser.State.Executing) { - Denoiser.State ret = camData.volumetricFogDenoiserData.denoiser.GetResults(ctx.cmd, data.denoisedVolumetricFogHistory); + Denoiser.State ret = camData.volumetricFogDenoiserData.denoiser.GetResults(natCmd, data.denoisedVolumetricFogHistory); camData.volumetricFogDenoiserData.EndRequest(ret == Denoiser.State.Success && camData.volumetricFogDenoiserData.discardRequest == false); } } @@ -206,11 +219,11 @@ void RenderDenoisePass(RenderGraph renderGraph, HDCamera hdCamera, TextureHandle if (camData.volumetricFogDenoiserData.validHistory && data.denoiseVolumetricFog) { kernel = data.blitAddAndExposeKernel; - ctx.cmd.SetComputeTextureParam(data.blitAndExposeCS, kernel, HDShaderIDs._InputTexture2, data.denoisedVolumetricFogHistory); + natCmd.SetComputeTextureParam(data.blitAndExposeCS, kernel, HDShaderIDs._InputTexture2, data.denoisedVolumetricFogHistory); } - ctx.cmd.SetComputeTextureParam(data.blitAndExposeCS, kernel, HDShaderIDs._InputTexture, data.denoisedHistory); - ctx.cmd.SetComputeTextureParam(data.blitAndExposeCS, kernel, HDShaderIDs._OutputTexture, data.outputTexture); - ctx.cmd.DispatchCompute(data.blitAndExposeCS, kernel, (data.width + 7) / 8, (data.height + 7) / 8, data.slices); + natCmd.SetComputeTextureParam(data.blitAndExposeCS, kernel, HDShaderIDs._InputTexture, data.denoisedHistory); + natCmd.SetComputeTextureParam(data.blitAndExposeCS, kernel, HDShaderIDs._OutputTexture, data.outputTexture); + natCmd.DispatchCompute(data.blitAndExposeCS, kernel, (data.width + 7) / 8, (data.height + 7) / 8, data.slices); wasDenoisedResultRendered = true; } } @@ -218,9 +231,9 @@ void RenderDenoisePass(RenderGraph renderGraph, HDCamera hdCamera, TextureHandle if (data.denoiseVolumetricFog && !wasDenoisedResultRendered) { // Just add the volumetrics output on top of the color output to show a full picture to the user while the final denoising is ready to display - ctx.cmd.SetComputeTextureParam(data.blitAndExposeCS, data.accumAndExposeKernel, HDShaderIDs._InputTexture, data.volumetricFogHistory); - ctx.cmd.SetComputeTextureParam(data.blitAndExposeCS, data.accumAndExposeKernel, HDShaderIDs._OutputTexture, data.outputTexture); - ctx.cmd.DispatchCompute(data.blitAndExposeCS, data.accumAndExposeKernel, (data.width + 7) / 8, (data.height + 7) / 8, data.slices); + natCmd.SetComputeTextureParam(data.blitAndExposeCS, data.accumAndExposeKernel, HDShaderIDs._InputTexture, data.volumetricFogHistory); + natCmd.SetComputeTextureParam(data.blitAndExposeCS, data.accumAndExposeKernel, HDShaderIDs._OutputTexture, data.outputTexture); + natCmd.DispatchCompute(data.blitAndExposeCS, data.accumAndExposeKernel, (data.width + 7) / 8, (data.height + 7) / 8, data.slices); } }); } diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Accumulation/SubFrameManager.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Accumulation/SubFrameManager.cs index 3f53c674652..59701ab2598 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Accumulation/SubFrameManager.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Accumulation/SubFrameManager.cs @@ -456,7 +456,7 @@ void RenderAccumulation(RenderGraph renderGraph, HDCamera hdCamera, TextureHandl void RenderAccumulation(RenderGraph renderGraph, HDCamera hdCamera, TextureHandle inputTexture, TextureHandle outputTexture, HDCameraFrameHistoryType historyType, Vector4 frameWeights, bool needExposure) { - using (var builder = renderGraph.AddRenderPass("Render Accumulation", out var passData)) + using (var builder = renderGraph.AddUnsafePass("Render Accumulation", out var passData)) { bool useInputTexture = !inputTexture.Equals(outputTexture); passData.accumulationCS = runtimeShaders.accumulationCS; @@ -471,17 +471,23 @@ void RenderAccumulation(RenderGraph renderGraph, HDCamera hdCamera, TextureHandl TextureHandle history = renderGraph.ImportTexture(hdCamera.GetCurrentFrameRT((int)historyType) ?? hdCamera.AllocHistoryFrameRT((int)historyType, PathTracingHistoryBufferAllocatorFunction, 1)); - passData.input = builder.ReadTexture(inputTexture); - passData.history = builder.ReadWriteTexture(history); + passData.input = inputTexture; + builder.UseTexture(passData.input, AccessFlags.Read); + passData.history = history; + builder.UseTexture(passData.history, AccessFlags.ReadWrite); passData.useOutputTexture = outputTexture.IsValid(); passData.useInputTexture = useInputTexture; if (outputTexture.IsValid()) - passData.output = builder.ReadWriteTexture(outputTexture); + { + passData.output = outputTexture; + builder.UseTexture(passData.output, AccessFlags.ReadWrite); + } builder.SetRenderFunc( - (RenderAccumulationPassData data, RenderGraphContext ctx) => + (RenderAccumulationPassData data, UnsafeGraphContext ctx) => { + var natCmd = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); ComputeShader accumulationShader = data.accumulationCS; // Check the validity of the state before moving on with the computation @@ -490,33 +496,33 @@ void RenderAccumulation(RenderGraph renderGraph, HDCamera hdCamera, TextureHandl accumulationShader.shaderKeywords = null; if (data.useInputTexture) - ctx.cmd.EnableKeyword(accumulationShader, passData.inputKeyword); + natCmd.EnableKeyword(accumulationShader, passData.inputKeyword); else - ctx.cmd.DisableKeyword(accumulationShader, passData.inputKeyword); + natCmd.DisableKeyword(accumulationShader, passData.inputKeyword); if (data.useOutputTexture) - ctx.cmd.EnableKeyword(accumulationShader, passData.outputKeyword); + natCmd.EnableKeyword(accumulationShader, passData.outputKeyword); else - ctx.cmd.DisableKeyword(accumulationShader, passData.outputKeyword); + natCmd.DisableKeyword(accumulationShader, passData.outputKeyword); // Get the per-camera data int camID = data.hdCamera.camera.GetInstanceID(); CameraData camData = data.subFrameManager.GetCameraData(camID); // Accumulate the path tracing results - ctx.cmd.SetComputeIntParam(accumulationShader, HDShaderIDs._AccumulationFrameIndex, (int)camData.currentIteration); - ctx.cmd.SetComputeIntParam(accumulationShader, HDShaderIDs._AccumulationNumSamples, (int)data.subFrameManager.subFrameCount); - ctx.cmd.SetComputeTextureParam(accumulationShader, data.accumulationKernel, HDShaderIDs._AccumulatedFrameTexture, data.history); + natCmd.SetComputeIntParam(accumulationShader, HDShaderIDs._AccumulationFrameIndex, (int)camData.currentIteration); + natCmd.SetComputeIntParam(accumulationShader, HDShaderIDs._AccumulationNumSamples, (int)data.subFrameManager.subFrameCount); + natCmd.SetComputeTextureParam(accumulationShader, data.accumulationKernel, HDShaderIDs._AccumulatedFrameTexture, data.history); if (data.useOutputTexture) - ctx.cmd.SetComputeTextureParam(accumulationShader, data.accumulationKernel, HDShaderIDs._CameraColorTextureRW, data.output); + natCmd.SetComputeTextureParam(accumulationShader, data.accumulationKernel, HDShaderIDs._CameraColorTextureRW, data.output); if (data.useInputTexture) - ctx.cmd.SetComputeTextureParam(accumulationShader, data.accumulationKernel, HDShaderIDs._FrameTexture, data.input); + natCmd.SetComputeTextureParam(accumulationShader, data.accumulationKernel, HDShaderIDs._FrameTexture, data.input); - ctx.cmd.SetComputeVectorParam(accumulationShader, HDShaderIDs._AccumulationWeights, data.frameWeights); - ctx.cmd.SetComputeIntParam(accumulationShader, HDShaderIDs._AccumulationNeedsExposure, data.needExposure ? 1 : 0); - ctx.cmd.DispatchCompute(accumulationShader, data.accumulationKernel, (data.hdCamera.actualWidth + 7) / 8, (data.hdCamera.actualHeight + 7) / 8, data.hdCamera.viewCount); + natCmd.SetComputeVectorParam(accumulationShader, HDShaderIDs._AccumulationWeights, data.frameWeights); + natCmd.SetComputeIntParam(accumulationShader, HDShaderIDs._AccumulationNeedsExposure, data.needExposure ? 1 : 0); + natCmd.DispatchCompute(accumulationShader, data.accumulationKernel, (data.hdCamera.actualWidth + 7) / 8, (data.hdCamera.actualHeight + 7) / 8, data.hdCamera.viewCount); // Increment the iteration counter, if we haven't converged yet if (data.useOutputTexture && camData.currentIteration < data.subFrameManager.subFrameCount) diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Camera/HDAdditionalCameraData.Migration.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Camera/HDAdditionalCameraData.Migration.cs index 3c51b042f9d..df9378a7b0e 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Camera/HDAdditionalCameraData.Migration.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Camera/HDAdditionalCameraData.Migration.cs @@ -104,15 +104,13 @@ protected enum Version void Awake() => k_Migration.Migrate(this); #pragma warning disable 649 // Field never assigned - [SerializeField, FormerlySerializedAs("renderingPath"), Obsolete("For Data Migration")] + [SerializeField, FormerlySerializedAs("renderingPath"), Obsolete("For Data Migration. #from(2021.1)")] [ExcludeCopy] int m_ObsoleteRenderingPath; [SerializeField] - [FormerlySerializedAs("serializedFrameSettings"), FormerlySerializedAs("m_FrameSettings")] + [FormerlySerializedAs("serializedFrameSettings"), FormerlySerializedAs("m_FrameSettings"), Obsolete("For Data Migration. #from(2021.1)")] [ExcludeCopy] -#pragma warning disable 618 // Type or member is obsolete ObsoleteFrameSettings m_ObsoleteFrameSettings; -#pragma warning restore 618 #pragma warning restore 649 } } diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Camera/HDAdditionalCameraData.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Camera/HDAdditionalCameraData.cs index 3272cba7eee..43333cb629d 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Camera/HDAdditionalCameraData.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Camera/HDAdditionalCameraData.cs @@ -8,7 +8,7 @@ namespace UnityEngine.Rendering.HighDefinition /// Holds the physical settings set on cameras. /// [Serializable] - [Obsolete("Properties have been migrated to Camera class", false)] + [Obsolete("Properties have been migrated to Camera class. #from(2022.2)")] public struct HDPhysicalCamera { /// @@ -127,7 +127,7 @@ public float anamorphism /// Copies the settings of this instance to another instance. /// /// The instance to copy the settings to. - [Obsolete("The CopyTo method is obsolete and does not work anymore. Use the assignement operator instead to get a copy of the HDPhysicalCamera parameters.", true)] + [Obsolete("The CopyTo method is obsolete and does not work anymore. Use the assignement operator instead to get a copy of the HDPhysicalCamera parameters. #from(2021.2) #breakingFrom(2021.2)", true)] public void CopyTo(HDPhysicalCamera c) { } @@ -355,7 +355,7 @@ public enum TAASharpenMode /// Physical camera parameters. [ValueCopy] // reference should not be same. only content. - [Obsolete("Physical camera properties have been migrated to Camera.", false)] + [Obsolete("Physical camera properties have been migrated to Camera. #from(2022.2)")] #pragma warning disable CS0618 public HDPhysicalCamera physicalParameters = HDPhysicalCamera.GetDefaults(); #pragma warning restore CS0618 diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Camera/HDCamera.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Camera/HDCamera.cs index 82614920cd4..f9ea495e583 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Camera/HDCamera.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Camera/HDCamera.cs @@ -1753,7 +1753,7 @@ internal void ExecuteCaptureActions(RenderGraph renderGraph, TextureHandle input if (m_RecorderCaptureActions == null || !m_RecorderCaptureActions.MoveNext()) return; - using (var builder = renderGraph.AddRenderPass("Execute Capture Actions", out var passData)) + using (var builder = renderGraph.AddUnsafePass("Execute Capture Actions", out var passData)) { var inputDesc = renderGraph.GetTextureDesc(input); var targetSize = RTHandles.rtHandleProperties.currentRenderTargetSize; @@ -1762,26 +1762,30 @@ internal void ExecuteCaptureActions(RenderGraph renderGraph, TextureHandle input passData.blitMaterial = HDUtils.GetBlitMaterial(inputDesc.dimension); passData.recorderCaptureActions = m_RecorderCaptureActions; - passData.input = builder.ReadTexture(input); + passData.input = input; + builder.UseTexture(passData.input, AccessFlags.Read); passData.viewportSize = finalViewport; // We need to blit to an intermediate texture because input resolution can be bigger than the camera resolution // Since recorder does not know about this, we need to send a texture of the right size. passData.tempTexture = builder.CreateTransientTexture(new TextureDesc((int)finalViewport.width, (int)finalViewport.height) { format = inputDesc.format, name = "TempCaptureActions" }); + builder.AllowPassCulling(false); + builder.SetRenderFunc( - (ExecuteCaptureActionsPassData data, RenderGraphContext ctx) => + (ExecuteCaptureActionsPassData data, UnsafeGraphContext ctx) => { + var natCmd = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); var mpb = ctx.renderGraphPool.GetTempMaterialPropertyBlock(); mpb.SetTexture(HDShaderIDs._BlitTexture, data.input); mpb.SetVector(HDShaderIDs._BlitScaleBias, data.viewportScale); mpb.SetFloat(HDShaderIDs._BlitMipLevel, 0); - ctx.cmd.SetRenderTarget(data.tempTexture); - ctx.cmd.SetViewport(data.viewportSize); - ctx.cmd.DrawProcedural(Matrix4x4.identity, data.blitMaterial, 0, MeshTopology.Triangles, 3, 1, mpb); + natCmd.SetRenderTarget(data.tempTexture); + natCmd.SetViewport(data.viewportSize); + natCmd.DrawProcedural(Matrix4x4.identity, data.blitMaterial, 0, MeshTopology.Triangles, 3, 1, mpb); for (data.recorderCaptureActions.Reset(); data.recorderCaptureActions.MoveNext();) - data.recorderCaptureActions.Current(data.tempTexture, ctx.cmd); + data.recorderCaptureActions.Current(data.tempTexture, natCmd); }); } } diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Camera/HDCameraFrameHistoryType.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Camera/HDCameraFrameHistoryType.cs index 8f534c238cb..7c1ba31fe50 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Camera/HDCameraFrameHistoryType.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Camera/HDCameraFrameHistoryType.cs @@ -72,19 +72,19 @@ public enum HDCameraFrameHistoryType // For retro compatibility /// Main path tracing output buffer. It is recommended to use the PathTracingOutput enum value instead. - [Obsolete] + [Obsolete("#from(2023.3)")] PathTracing = PathTracingOutput, /// Path-traced Albedo AOV. It is recommended to use the PathTracingAlbedo enum value instead. - [Obsolete] + [Obsolete("#from(2023.3)")] AlbedoAOV = PathTracingAlbedo, /// Path-traced Normal AOV. It is recommended to use the PathTracingNormal enum value instead. - [Obsolete] + [Obsolete("#from(2023.3)")] NormalAOV = PathTracingNormal, /// Path-traced motion vector AOV. It is recommended to use the PathTracingMotionVector enum value instead. - [Obsolete] + [Obsolete("#from(2023.3)")] MotionVectorAOV = PathTracingMotionVector, /// Denoised path-traced frame history. It is recommended to use the PathTracingDenoised enum value instead. - [Obsolete] + [Obsolete("#from(2023.3)")] DenoiseHistory = PathTracingDenoised } } diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDRenderPipeline.Debug.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDRenderPipeline.Debug.cs index f7885a7e8f8..1116721b2bf 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDRenderPipeline.Debug.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDRenderPipeline.Debug.cs @@ -310,15 +310,16 @@ void RenderMonitorsOverlay(RenderGraph renderGraph, TextureHandle colorBuffer, H if (!settings.vectorscopeToggle && !settings.waveformToggle) return; - using RenderGraphBuilder builder = renderGraph.AddRenderPass("Monitors overlay", out MonitorsPassData data); + using IUnsafeRenderGraphBuilder builder = renderGraph.AddUnsafePass("Monitors overlay", out MonitorsPassData data); // Filling in pass data data.runtimeDebugPannelWidth = HDUtils.GetRuntimeDebugPanelWidth(hdCamera); data.blitMaterial = m_DebugBlitMaterial; data.sizeRatio = settings.monitorsSize; - data.colorTexture = builder.ReadWriteTexture(colorBuffer); + data.colorTexture = colorBuffer; data.settings = m_CurrentDebugDisplaySettings.data.monitorsDebugSettings; data.inputSize = new Vector2Int(hdCamera.actualWidth, hdCamera.actualHeight); + builder.UseTexture(data.colorTexture, AccessFlags.ReadWrite); // Downsampled input data.downsampledSize = new Vector2Int(hdCamera.actualWidth / 2, hdCamera.actualHeight / 2); @@ -330,10 +331,12 @@ void RenderMonitorsOverlay(RenderGraph renderGraph, TextureHandle colorBuffer, H FillWaveformData (data, builder); FillVectorscopeData(data, (int)(hdCamera.actualHeight * data.sizeRatio), builder); - builder.SetRenderFunc(static (MonitorsPassData passData, RenderGraphContext ctx) => + builder.SetRenderFunc(static (MonitorsPassData passData, UnsafeGraphContext ctx) => { + var natCmd = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); + // Down-sampling the input - HDUtils.BlitCameraTexture(ctx.cmd, passData.colorTexture, passData.downsampledInput, 0f, true); + Blitter.BlitCameraTexture(natCmd, passData.colorTexture, passData.downsampledInput, 0f, true); if (passData.settings.waveformToggle) RenderWaveformDebug(passData, ctx); @@ -346,25 +349,25 @@ void RenderMonitorsOverlay(RenderGraph renderGraph, TextureHandle colorBuffer, H if (passData.settings.vectorscopeToggle) { - ctx.cmd.SetGlobalTexture(HDShaderIDs._InputTexture, passData.vectorscopeTexture); - ctx.cmd.SetRenderTarget (passData.colorTexture); - ctx.cmd.SetViewport (new Rect(horizontalOffset, spacing, passData.vectorscopeSize.x, passData.vectorscopeSize.y)); - ctx.cmd.DrawProcedural (Matrix4x4.identity, passData.blitMaterial, 0, MeshTopology.Triangles, 3, 1, null); + natCmd.SetGlobalTexture(HDShaderIDs._InputTexture, passData.vectorscopeTexture); + natCmd.SetRenderTarget (passData.colorTexture); + natCmd.SetViewport (new Rect(horizontalOffset, spacing, passData.vectorscopeSize.x, passData.vectorscopeSize.y)); + natCmd.DrawProcedural (Matrix4x4.identity, passData.blitMaterial, 0, MeshTopology.Triangles, 3, 1, null); horizontalOffset += passData.vectorscopeSize.x + spacing; } if (passData.settings.waveformToggle) { - ctx.cmd.SetGlobalTexture(HDShaderIDs._InputTexture, passData.waveformTexture); - ctx.cmd.SetRenderTarget (passData.colorTexture); - ctx.cmd.SetViewport (new Rect(horizontalOffset, spacing, passData.inputSize.x * passData.sizeRatio, passData.inputSize.y * passData.sizeRatio)); - ctx.cmd.DrawProcedural (Matrix4x4.identity, passData.blitMaterial, 0, MeshTopology.Triangles, 3, 1, null); + natCmd.SetGlobalTexture(HDShaderIDs._InputTexture, passData.waveformTexture); + natCmd.SetRenderTarget (passData.colorTexture); + natCmd.SetViewport (new Rect(horizontalOffset, spacing, passData.inputSize.x * passData.sizeRatio, passData.inputSize.y * passData.sizeRatio)); + natCmd.DrawProcedural (Matrix4x4.identity, passData.blitMaterial, 0, MeshTopology.Triangles, 3, 1, null); } }); } - void FillWaveformData(MonitorsPassData data, RenderGraphBuilder builder) + void FillWaveformData(MonitorsPassData data, IUnsafeRenderGraphBuilder builder) { data.waveformCS = runtimeShaders.debugWaveformCS; data.waveformMaterial = m_DebugWaveform; @@ -386,7 +389,7 @@ void FillWaveformData(MonitorsPassData data, RenderGraphBuilder builder) ); } - void FillVectorscopeData(MonitorsPassData data, int size, RenderGraphBuilder builder) + void FillVectorscopeData(MonitorsPassData data, int size, IUnsafeRenderGraphBuilder builder) { data.vectorscopeCS = runtimeShaders.debugVectorscopeCS; data.vectorscopeSize = new Vector2Int(size, size); @@ -406,7 +409,7 @@ void FillVectorscopeData(MonitorsPassData data, int size, RenderGraphBuilder bui }); } - static void RenderVectorScopeDebug(MonitorsPassData data, RenderGraphContext ctx) + static void RenderVectorScopeDebug(MonitorsPassData data, UnsafeGraphContext ctx) { const float kThreadGroupSizeX = 16f; const float kThreadGroupSizeY = 16f; @@ -434,7 +437,7 @@ static void RenderVectorScopeDebug(MonitorsPassData data, RenderGraphContext ctx ctx.cmd.DrawProcedural(Matrix4x4.identity, data.vectorscopeMaterial, 0, MeshTopology.Triangles, 3, 1, null); } - static void RenderWaveformDebug(MonitorsPassData data, RenderGraphContext ctx) + static void RenderWaveformDebug(MonitorsPassData data, UnsafeGraphContext ctx) { const float kThreadGroupSizeX = 16f; const float kThreadGroupSizeY = 16f; @@ -477,7 +480,7 @@ void RenderTransparencyOverdraw(RenderGraph renderGraph, TextureHandle depthBuff if (m_CurrentDebugDisplaySettings.IsDebugDisplayEnabled() && m_CurrentDebugDisplaySettings.data.fullScreenDebugMode == FullScreenDebugMode.TransparencyOverdraw) { TextureHandle transparencyOverdrawOutput = TextureHandle.nullHandle; - using (var builder = renderGraph.AddRenderPass("Transparency Overdraw", out var passData)) + using (var builder = renderGraph.AddUnsafePass("Transparency Overdraw", out var passData)) { var passNames = m_Asset.currentPlatformRenderPipelineSettings.supportTransparentBackface ? m_AllTransparentPassNames : m_TransparentNoBackfaceNames; var stateBlock = new RenderStateBlock @@ -500,28 +503,31 @@ void RenderTransparencyOverdraw(RenderGraph renderGraph, TextureHandle depthBuff passData.frameSettings = hdCamera.frameSettings; passData.constantBuffer = m_ShaderVariablesDebugDisplayCB; - builder.UseDepthBuffer(depthBuffer, DepthAccess.Read); - passData.transparencyRL = builder.UseRendererList(renderGraph.CreateRendererList( - CreateTransparentRendererListDesc(cull, hdCamera.camera, passNames, stateBlock: stateBlock))); - passData.transparencyAfterPostRL = builder.UseRendererList( - renderGraph.CreateRendererList(CreateTransparentRendererListDesc(cull, hdCamera.camera, passNames, renderQueueRange: HDRenderQueue.k_RenderQueue_AfterPostProcessTransparent, stateBlock: stateBlock))); - passData.transparencyLowResRL = builder.UseRendererList( - renderGraph.CreateRendererList(CreateTransparentRendererListDesc(cull, hdCamera.camera, passNames, renderQueueRange: HDRenderQueue.k_RenderQueue_LowTransparent, stateBlock: stateBlock))); + builder.SetRenderAttachmentDepth(depthBuffer, AccessFlags.Read); + + passData.transparencyRL = renderGraph.CreateRendererList(CreateTransparentRendererListDesc(cull, hdCamera.camera, passNames, stateBlock: stateBlock)); + passData.transparencyAfterPostRL = renderGraph.CreateRendererList(CreateTransparentRendererListDesc(cull, hdCamera.camera, passNames, renderQueueRange: HDRenderQueue.k_RenderQueue_AfterPostProcessTransparent, stateBlock: stateBlock)); + passData.transparencyLowResRL = renderGraph.CreateRendererList(CreateTransparentRendererListDesc(cull, hdCamera.camera, passNames, renderQueueRange: HDRenderQueue.k_RenderQueue_LowTransparent, stateBlock: stateBlock)); - transparencyOverdrawOutput = builder.UseColorBuffer(renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) { name = "Transparency Overdraw", format = GetColorBufferFormat(), clearBuffer = true, clearColor = Color.black }), 0); + builder.UseRendererList(passData.transparencyRL); + builder.UseRendererList(passData.transparencyAfterPostRL); + builder.UseRendererList(passData.transparencyLowResRL); + + transparencyOverdrawOutput = renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) { name = "Transparency Overdraw", format = GetColorBufferFormat(), clearBuffer = true, clearColor = Color.black }); + builder.SetRenderAttachment(transparencyOverdrawOutput, 0); builder.SetRenderFunc( - (TransparencyOverdrawPassData data, RenderGraphContext ctx) => + (TransparencyOverdrawPassData data, UnsafeGraphContext ctx) => { data.constantBuffer._DebugTransparencyOverdrawWeight = 1.0f; ConstantBuffer.PushGlobal(ctx.cmd, data.constantBuffer, HDShaderIDs._ShaderVariablesDebugDisplay); - DrawTransparentRendererList(ctx.renderContext, ctx.cmd, data.frameSettings, data.transparencyRL); - DrawTransparentRendererList(ctx.renderContext, ctx.cmd, data.frameSettings, data.transparencyAfterPostRL); + DrawTransparentRendererList(ctx, data.frameSettings, data.transparencyRL); + DrawTransparentRendererList(ctx, data.frameSettings, data.transparencyAfterPostRL); data.constantBuffer._DebugTransparencyOverdrawWeight = 0.25f; ConstantBuffer.PushGlobal(ctx.cmd, data.constantBuffer, HDShaderIDs._ShaderVariablesDebugDisplay); - DrawTransparentRendererList(ctx.renderContext, ctx.cmd, data.frameSettings, data.transparencyLowResRL); + DrawTransparentRendererList(ctx, data.frameSettings, data.transparencyLowResRL); }); } @@ -543,16 +549,21 @@ class FullScreenDebugPassData void RenderFullScreenDebug(RenderGraph renderGraph, TextureHandle colorBuffer, TextureHandle depthBuffer, CullingResults cull, HDCamera hdCamera) { - using (var builder = renderGraph.AddRenderPass("FullScreen Debug", out var passData)) + using (var builder = renderGraph.AddUnsafePass("FullScreen Debug", out var passData)) { - builder.UseColorBuffer(colorBuffer, 0); - builder.UseDepthBuffer(depthBuffer, DepthAccess.Read); + builder.SetRenderAttachment(colorBuffer, 0); + builder.SetRenderAttachmentDepth(depthBuffer, AccessFlags.Read); m_DebugFullScreenComputeBuffer = renderGraph.CreateBuffer(new BufferDesc(hdCamera.actualWidth * hdCamera.actualHeight * hdCamera.viewCount, sizeof(uint))); passData.frameSettings = hdCamera.frameSettings; - passData.debugBuffer = builder.WriteBuffer(m_DebugFullScreenComputeBuffer); - passData.rendererList = builder.UseRendererList(renderGraph.CreateRendererList(CreateOpaqueRendererListDesc(cull, hdCamera.camera, m_FullScreenDebugPassNames, renderQueueRange: RenderQueueRange.all))); + + passData.debugBuffer = m_DebugFullScreenComputeBuffer; + builder.UseBuffer(passData.debugBuffer, AccessFlags.Write); + + passData.rendererList = renderGraph.CreateRendererList(CreateOpaqueRendererListDesc(cull, hdCamera.camera, m_FullScreenDebugPassNames, renderQueueRange: RenderQueueRange.all)); + builder.UseRendererList(passData.rendererList); + passData.clearBufferCS = m_ClearFullScreenBufferCS; passData.clearBufferCSKernel = m_ClearFullScreenBufferKernel; passData.width = hdCamera.actualWidth; @@ -560,14 +571,14 @@ void RenderFullScreenDebug(RenderGraph renderGraph, TextureHandle colorBuffer, T passData.viewCount = hdCamera.viewCount; builder.SetRenderFunc( - (FullScreenDebugPassData data, RenderGraphContext ctx) => + (FullScreenDebugPassData data, UnsafeGraphContext ctx) => { ctx.cmd.SetComputeVectorParam(data.clearBufferCS, HDShaderIDs._QuadOverdrawClearBuffParams, new Vector4(data.width, data.height, 0.0f, 0.0f)); ctx.cmd.SetComputeBufferParam(data.clearBufferCS, data.clearBufferCSKernel, HDShaderIDs._FullScreenDebugBuffer, data.debugBuffer); ctx.cmd.DispatchCompute(data.clearBufferCS, data.clearBufferCSKernel, HDUtils.DivRoundUp(data.width, 16), HDUtils.DivRoundUp(data.height, 16), data.viewCount); ctx.cmd.SetRandomWriteTarget(1, data.debugBuffer); - CoreUtils.DrawRendererList(ctx.renderContext, ctx.cmd, data.rendererList); + ctx.cmd.DrawRendererList(data.rendererList); ctx.cmd.ClearRandomWriteTargets(); }); } @@ -592,13 +603,15 @@ class ResolveFullScreenDebugPassData TextureHandle ResolveFullScreenDebug(RenderGraph renderGraph, TextureHandle inputFullScreenDebug, TextureHandle depthPyramid, HDCamera hdCamera, GraphicsFormat rtFormat = GraphicsFormat.R16G16B16A16_SFloat) { - using (var builder = renderGraph.AddRenderPass("ResolveFullScreenDebug", out var passData)) + using (var builder = renderGraph.AddUnsafePass("ResolveFullScreenDebug", out var passData)) { passData.hdCamera = hdCamera; passData.debugDisplaySettings = m_CurrentDebugDisplaySettings; passData.debugFullScreenMaterial = m_DebugFullScreen; - passData.input = builder.ReadTexture(inputFullScreenDebug); - passData.depthPyramid = builder.ReadTexture(depthPyramid); + passData.input = inputFullScreenDebug; + builder.UseTexture(passData.input, AccessFlags.Read); + passData.depthPyramid = depthPyramid; + builder.UseTexture(passData.depthPyramid, AccessFlags.Read); { int mipCount = hdCamera.depthBufferMipChainInfo.mipLevelCount; int mipIndex = Mathf.Min(Mathf.FloorToInt(m_CurrentDebugDisplaySettings.data.fullscreenDebugMip * mipCount), mipCount - 1); @@ -612,27 +625,36 @@ TextureHandle ResolveFullScreenDebug(RenderGraph renderGraph, TextureHandle inpu } if (IsComputeThicknessNeeded(hdCamera)) - passData.thickness = builder.ReadTexture(HDComputeThickness.Instance.GetThicknessTextureArray()); + passData.thickness = HDComputeThickness.Instance.GetThicknessTextureArray(); else - passData.thickness = builder.ReadTexture(renderGraph.defaultResources.blackTextureArrayXR); - passData.thicknessReindex = builder.ReadBuffer(renderGraph.ImportBuffer(HDComputeThickness.Instance.GetReindexMap())); + passData.thickness = renderGraph.defaultResources.blackTextureArrayXR; + builder.UseTexture(passData.thickness, AccessFlags.Read); + + passData.thicknessReindex = renderGraph.ImportBuffer(HDComputeThickness.Instance.GetReindexMap()); + builder.UseBuffer(passData.thicknessReindex, AccessFlags.Read); // On Vulkan, not binding the Random Write Target will result in an invalid drawcall. // To avoid that, if the compute buffer is invalid, we bind a dummy compute buffer anyway. if (m_DebugFullScreenComputeBuffer.IsValid()) - passData.fullscreenBuffer = builder.ReadBuffer(m_DebugFullScreenComputeBuffer); + { + passData.fullscreenBuffer = m_DebugFullScreenComputeBuffer; + builder.UseBuffer(passData.fullscreenBuffer, AccessFlags.Read); + } else passData.fullscreenBuffer = builder.CreateTransientBuffer(new BufferDesc(4, sizeof(uint))); - passData.output = builder.WriteTexture(renderGraph.CreateTexture(new TextureDesc(Vector2.one, false /* we dont want DRS on this output target*/, true /*We want XR support on this output target*/) - { format = rtFormat, name = "ResolveFullScreenDebug" })); + + passData.output = renderGraph.CreateTexture(new TextureDesc(Vector2.one, false /* we dont want DRS on this output target*/, true /*We want XR support on this output target*/) + { format = rtFormat, name = "ResolveFullScreenDebug" }); + builder.UseTexture(passData.output, AccessFlags.Write); builder.SetRenderFunc( - (ResolveFullScreenDebugPassData data, RenderGraphContext ctx) => + (ResolveFullScreenDebugPassData data, UnsafeGraphContext ctx) => { + var natCmd = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); var mpb = ctx.renderGraphPool.GetTempMaterialPropertyBlock(); ComputeVolumetricFogSliceCountAndScreenFraction(data.hdCamera.volumeStack.GetComponent(), out var volumetricSliceCount, out _); - BindGlobalThicknessBuffers(data.thickness, data.thicknessReindex, ctx.cmd); + BindGlobalThicknessBuffers(data.thickness, data.thicknessReindex, natCmd); mpb.SetTexture(HDShaderIDs._DebugFullScreenTexture, data.input); mpb.SetTexture(HDShaderIDs._CameraDepthTexture, data.depthPyramid); @@ -655,9 +677,9 @@ TextureHandle ResolveFullScreenDebug(RenderGraph renderGraph, TextureHandle inpu mpb.SetFloat(HDShaderIDs._ComputeThicknessScale, data.debugDisplaySettings.data.computeThicknessScale); mpb.SetInt(HDShaderIDs._VolumetricCloudsDebugMode, (int)data.debugDisplaySettings.data.volumetricCloudDebug); - ctx.cmd.SetRandomWriteTarget(1, data.fullscreenBuffer); - HDUtils.DrawFullScreen(ctx.cmd, data.debugFullScreenMaterial, data.output, mpb, 0); - ctx.cmd.ClearRandomWriteTargets(); + natCmd.SetRandomWriteTarget(1, data.fullscreenBuffer); + HDUtils.DrawFullScreen(natCmd, data.debugFullScreenMaterial, data.output, mpb, 0); + natCmd.ClearRandomWriteTargets(); }); return passData.output; @@ -675,17 +697,19 @@ class ResolveColorPickerDebugPassData TextureHandle ResolveColorPickerDebug(RenderGraph renderGraph, TextureHandle inputColorPickerDebug, HDCamera hdCamera, GraphicsFormat rtFormat = GraphicsFormat.R16G16B16A16_SFloat) { - using (var builder = renderGraph.AddRenderPass("ResolveColorPickerDebug", out var passData)) + using (var builder = renderGraph.AddUnsafePass("ResolveColorPickerDebug", out var passData)) { passData.hdCamera = hdCamera; passData.debugDisplaySettings = m_CurrentDebugDisplaySettings; passData.colorPickerMaterial = m_DebugColorPicker; - passData.input = builder.ReadTexture(inputColorPickerDebug); - passData.output = builder.WriteTexture(renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) - { format = rtFormat, name = "ResolveColorPickerDebug" })); + passData.input = inputColorPickerDebug; + builder.UseTexture(passData.input, AccessFlags.Read); + passData.output = renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) + { format = rtFormat, name = "ResolveColorPickerDebug" }); + builder.UseTexture(passData.output, AccessFlags.Write); builder.SetRenderFunc( - (ResolveColorPickerDebugPassData data, RenderGraphContext ctx) => + (ResolveColorPickerDebugPassData data, UnsafeGraphContext ctx) => { var falseColorDebugSettings = data.debugDisplaySettings.data.falseColorDebugSettings; var colorPickerDebugSettings = data.debugDisplaySettings.data.colorPickerDebugSettings; @@ -706,7 +730,7 @@ TextureHandle ResolveColorPickerDebug(RenderGraph renderGraph, TextureHandle inp // we perform it inside the color picker shader. But we shouldn't do it for HDR buffer. data.colorPickerMaterial.SetFloat(HDShaderIDs._ApplyLinearToSRGB, data.debugDisplaySettings.IsDebugMaterialDisplayEnabled() ? 1.0f : 0.0f); - HDUtils.DrawFullScreen(ctx.cmd, data.colorPickerMaterial, data.output); + HDUtils.DrawFullScreen(CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd), data.colorPickerMaterial, data.output); }); return passData.output; @@ -733,17 +757,19 @@ void RenderSkyReflectionOverlay(RenderGraph renderGraph, TextureHandle colorBuff if (!m_CurrentDebugDisplaySettings.data.lightingDebugSettings.displaySkyReflection) return; - using (var builder = renderGraph.AddRenderPass("SkyReflectionOverlay", out var passData)) + using (var builder = renderGraph.AddUnsafePass("SkyReflectionOverlay", out var passData)) { passData.debugOverlay = m_DebugOverlay; - passData.colorBuffer = builder.UseColorBuffer(colorBuffer, 0); - passData.depthBuffer = builder.UseDepthBuffer(depthBuffer, DepthAccess.ReadWrite); + passData.colorBuffer = colorBuffer; + builder.SetRenderAttachment(colorBuffer, 0); + passData.depthBuffer = depthBuffer; + builder.SetRenderAttachmentDepth(depthBuffer, AccessFlags.ReadWrite); passData.lightingDebugSettings = m_CurrentDebugDisplaySettings.data.lightingDebugSettings; passData.skyReflectionTexture = m_SkyManager.GetSkyReflection(hdCamera); passData.debugLatlongMaterial = m_DebugDisplayLatlong; builder.SetRenderFunc( - (SkyReflectionOverlayPassData data, RenderGraphContext ctx) => + (SkyReflectionOverlayPassData data, UnsafeGraphContext ctx) => { var mpb = ctx.renderGraphPool.GetTempMaterialPropertyBlock(); @@ -775,17 +801,19 @@ class RenderAtlasDebugOverlayPassData void RenderAtlasDebugOverlay(RenderGraph renderGraph, TextureHandle colorBuffer, TextureHandle depthBuffer, Texture atlas, int slice, int mipLevel, bool applyExposure, string passName, HDProfileId profileID) { - using (var builder = renderGraph.AddRenderPass(passName, out var passData, ProfilingSampler.Get(profileID))) + using (var builder = renderGraph.AddUnsafePass(passName, out var passData, ProfilingSampler.Get(profileID))) { passData.debugOverlay = m_DebugOverlay; - passData.colorBuffer = builder.UseColorBuffer(colorBuffer, 0); - passData.depthBuffer = builder.UseDepthBuffer(depthBuffer, DepthAccess.ReadWrite); + passData.colorBuffer = colorBuffer; + builder.SetRenderAttachment(colorBuffer, 0); + passData.depthBuffer = depthBuffer; + builder.SetRenderAttachmentDepth(depthBuffer, AccessFlags.ReadWrite); passData.debugBlitMaterial = m_DebugBlitMaterial; passData.mipLevel = mipLevel; passData.atlasTexture = atlas; builder.SetRenderFunc( - (RenderAtlasDebugOverlayPassData data, RenderGraphContext ctx) => + (RenderAtlasDebugOverlayPassData data, UnsafeGraphContext ctx) => { Debug.Assert(data.atlasTexture.dimension == TextureDimension.Tex2D || data.atlasTexture.dimension == TextureDimension.Tex2DArray); @@ -835,23 +863,30 @@ void RenderTileClusterDebugOverlay(RenderGraph renderGraph, TextureHandle colorB if (m_CurrentDebugDisplaySettings.data.lightingDebugSettings.tileClusterDebug == TileClusterDebug.None) return; - using (var builder = renderGraph.AddRenderPass("RenderTileAndClusterDebugOverlay", out var passData, ProfilingSampler.Get(HDProfileId.TileClusterLightingDebug))) + using (var builder = renderGraph.AddUnsafePass("RenderTileAndClusterDebugOverlay", out var passData, ProfilingSampler.Get(HDProfileId.TileClusterLightingDebug))) { passData.hdCamera = hdCamera; passData.debugOverlay = m_DebugOverlay; - passData.colorBuffer = builder.UseColorBuffer(colorBuffer, 0); - passData.depthPyramidTexture = builder.ReadTexture(depthPyramidTexture); - passData.tileList = builder.ReadBuffer(lightLists.tileList); - passData.lightList = builder.ReadBuffer(lightLists.lightList); - passData.perVoxelLightList = builder.ReadBuffer(lightLists.perVoxelLightLists); - passData.dispatchIndirect = builder.ReadBuffer(lightLists.dispatchIndirectBuffer); + passData.colorBuffer = colorBuffer; + builder.SetRenderAttachment(colorBuffer, 0); + passData.depthPyramidTexture = depthPyramidTexture; + builder.UseTexture(passData.depthPyramidTexture, AccessFlags.Read); + passData.tileList = lightLists.tileList; + builder.UseBuffer(passData.tileList, AccessFlags.Read); + passData.lightList = lightLists.lightList; + builder.UseBuffer(passData.lightList, AccessFlags.Read); + passData.perVoxelLightList = lightLists.perVoxelLightLists; + builder.UseBuffer(passData.perVoxelLightList, AccessFlags.Read); + passData.dispatchIndirect = lightLists.dispatchIndirectBuffer; + builder.UseBuffer(passData.dispatchIndirect, AccessFlags.Read); passData.debugViewTilesMaterial = m_DebugViewTilesMaterial; passData.lightingDebugSettings = m_CurrentDebugDisplaySettings.data.lightingDebugSettings; passData.lightingViewportSize = new Vector4(hdCamera.actualWidth, hdCamera.actualHeight, 1.0f / (float)hdCamera.actualWidth, 1.0f / (float)hdCamera.actualHeight); builder.SetRenderFunc( - (RenderTileClusterDebugOverlayPassData data, RenderGraphContext ctx) => + (RenderTileClusterDebugOverlayPassData data, UnsafeGraphContext ctx) => { + var natCmd = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); int w = data.hdCamera.actualWidth; int h = data.hdCamera.actualHeight; int numTilesX = (w + 15) / 16; @@ -878,7 +913,7 @@ void RenderTileClusterDebugOverlay(RenderGraph renderGraph, TextureHandle colorB data.debugViewTilesMaterial.DisableKeyword("SHOW_LIGHT_CATEGORIES"); data.debugViewTilesMaterial.EnableKeyword("SHOW_FEATURE_VARIANTS"); - ctx.cmd.DrawProcedural(Matrix4x4.identity, data.debugViewTilesMaterial, 0, MeshTopology.Triangles, numTiles * 6); + natCmd.DrawProcedural(Matrix4x4.identity, data.debugViewTilesMaterial, 0, MeshTopology.Triangles, numTiles * 6); } } else // tile or cluster @@ -896,8 +931,8 @@ void RenderTileClusterDebugOverlay(RenderGraph renderGraph, TextureHandle colorB data.debugViewTilesMaterial.SetBuffer(HDShaderIDs.g_vLightListCluster, data.perVoxelLightList); data.debugViewTilesMaterial.SetTexture(HDShaderIDs._CameraDepthTexture, data.depthPyramidTexture); - CoreUtils.SetKeyword(ctx.cmd, "USE_FPTL_LIGHTLIST", !bUseClustered); - CoreUtils.SetKeyword(ctx.cmd, "USE_CLUSTERED_LIGHTLIST", bUseClustered); + CoreUtils.SetKeyword(natCmd, "USE_FPTL_LIGHTLIST", !bUseClustered); + CoreUtils.SetKeyword(natCmd, "USE_CLUSTERED_LIGHTLIST", bUseClustered); data.debugViewTilesMaterial.EnableKeyword("SHOW_LIGHT_CATEGORIES"); data.debugViewTilesMaterial.DisableKeyword("SHOW_FEATURE_VARIANTS"); @@ -906,7 +941,7 @@ void RenderTileClusterDebugOverlay(RenderGraph renderGraph, TextureHandle colorB else data.debugViewTilesMaterial.DisableKeyword("DISABLE_TILE_MODE"); - HDUtils.DrawFullScreen(ctx.cmd, data.debugViewTilesMaterial, data.colorBuffer); + HDUtils.DrawFullScreen(natCmd, data.debugViewTilesMaterial, data.colorBuffer); } }); } @@ -929,11 +964,13 @@ void RenderShadowsDebugOverlay(RenderGraph renderGraph, TextureHandle colorBuffe || m_CurrentDebugDisplaySettings.data.lightingDebugSettings.shadowDebugMode == ShadowMapDebugMode.None) return; - using (var builder = renderGraph.AddRenderPass("RenderShadowsDebugOverlay", out var passData, ProfilingSampler.Get(HDProfileId.DisplayShadows))) + using (var builder = renderGraph.AddUnsafePass("RenderShadowsDebugOverlay", out var passData, ProfilingSampler.Get(HDProfileId.DisplayShadows))) { passData.debugOverlay = m_DebugOverlay; - passData.colorBuffer = builder.UseColorBuffer(colorBuffer, 0); - passData.depthBuffer = builder.UseDepthBuffer(depthBuffer, DepthAccess.Write); + passData.colorBuffer = colorBuffer; + builder.SetRenderAttachment(colorBuffer, 0); + passData.depthBuffer = depthBuffer; + builder.SetRenderAttachmentDepth(depthBuffer, AccessFlags.Write); passData.lightingDebugSettings = m_CurrentDebugDisplaySettings.data.lightingDebugSettings; passData.shadowTextures = HDShadowManager.ReadShadowResult(shadowResult, builder); passData.shadowManager = m_ShadowManager; @@ -942,8 +979,9 @@ void RenderShadowsDebugOverlay(RenderGraph renderGraph, TextureHandle colorBuffe passData.debugShadowMapMaterial = m_DebugHDShadowMapMaterial; builder.SetRenderFunc( - (RenderShadowsDebugOverlayPassData data, RenderGraphContext ctx) => + (RenderShadowsDebugOverlayPassData data, UnsafeGraphContext ctx) => { + var natCmd = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); var lightingDebug = data.lightingDebugSettings; var mpb = ctx.renderGraphPool.GetTempMaterialPropertyBlock(); @@ -973,28 +1011,28 @@ void RenderShadowsDebugOverlay(RenderGraph renderGraph, TextureHandle colorBuffe for (int shadowIndex = startShadowIndex; shadowIndex < startShadowIndex + shadowRequestCount; shadowIndex++) { rect = data.debugOverlay.Next(); - data.shadowManager.DisplayShadowMap(data.shadowTextures, shadowIndex, ctx.cmd, data.debugShadowMapMaterial, rect.x, rect.y, rect.width, rect.height, lightingDebug.shadowMinValue, lightingDebug.shadowMaxValue, mpb); + data.shadowManager.DisplayShadowMap(data.shadowTextures, shadowIndex, natCmd, data.debugShadowMapMaterial, rect.x, rect.y, rect.width, rect.height, lightingDebug.shadowMinValue, lightingDebug.shadowMaxValue, mpb); } break; case ShadowMapDebugMode.VisualizePunctualLightAtlas: rect = data.debugOverlay.Next(); - data.shadowManager.DisplayShadowAtlas(data.shadowTextures.punctualShadowResult, ctx.cmd, data.debugShadowMapMaterial, rect.x, rect.y, rect.width, rect.height, lightingDebug.shadowMinValue, lightingDebug.shadowMaxValue, mpb); + data.shadowManager.DisplayShadowAtlas(data.shadowTextures.punctualShadowResult, natCmd, data.debugShadowMapMaterial, rect.x, rect.y, rect.width, rect.height, lightingDebug.shadowMinValue, lightingDebug.shadowMaxValue, mpb); break; case ShadowMapDebugMode.VisualizeCachedPunctualLightAtlas: rect = data.debugOverlay.Next(); - data.shadowManager.DisplayCachedPunctualShadowAtlas(data.shadowTextures.cachedPunctualShadowResult, ctx.cmd, data.debugShadowMapMaterial, rect.x, rect.y, rect.width, rect.height, lightingDebug.shadowMinValue, lightingDebug.shadowMaxValue, mpb); + data.shadowManager.DisplayCachedPunctualShadowAtlas(data.shadowTextures.cachedPunctualShadowResult, natCmd, data.debugShadowMapMaterial, rect.x, rect.y, rect.width, rect.height, lightingDebug.shadowMinValue, lightingDebug.shadowMaxValue, mpb); break; case ShadowMapDebugMode.VisualizeDirectionalLightAtlas: rect = data.debugOverlay.Next(); - data.shadowManager.DisplayShadowCascadeAtlas(data.shadowTextures.directionalShadowResult, ctx.cmd, data.debugShadowMapMaterial, rect.x, rect.y, rect.width, rect.height, lightingDebug.shadowMinValue, lightingDebug.shadowMaxValue, mpb); + data.shadowManager.DisplayShadowCascadeAtlas(data.shadowTextures.directionalShadowResult, natCmd, data.debugShadowMapMaterial, rect.x, rect.y, rect.width, rect.height, lightingDebug.shadowMinValue, lightingDebug.shadowMaxValue, mpb); break; case ShadowMapDebugMode.VisualizeAreaLightAtlas: rect = data.debugOverlay.Next(); - data.shadowManager.DisplayAreaLightShadowAtlas(data.shadowTextures.areaShadowResult, ctx.cmd, data.debugShadowMapMaterial, rect.x, rect.y, rect.width, rect.height, lightingDebug.shadowMinValue, lightingDebug.shadowMaxValue, mpb); + data.shadowManager.DisplayAreaLightShadowAtlas(data.shadowTextures.areaShadowResult, natCmd, data.debugShadowMapMaterial, rect.x, rect.y, rect.width, rect.height, lightingDebug.shadowMinValue, lightingDebug.shadowMaxValue, mpb); break; case ShadowMapDebugMode.VisualizeCachedAreaLightAtlas: rect = data.debugOverlay.Next(); - data.shadowManager.DisplayCachedAreaShadowAtlas(data.shadowTextures.cachedAreaShadowResult, ctx.cmd, data.debugShadowMapMaterial, rect.x, rect.y, rect.width, rect.height, lightingDebug.shadowMinValue, lightingDebug.shadowMaxValue, mpb); + data.shadowManager.DisplayCachedAreaShadowAtlas(data.shadowTextures.cachedAreaShadowResult, natCmd, data.debugShadowMapMaterial, rect.x, rect.y, rect.width, rect.height, lightingDebug.shadowMinValue, lightingDebug.shadowMaxValue, mpb); break; default: break; @@ -1015,18 +1053,20 @@ void RenderDecalOverlay(RenderGraph renderGraph, TextureHandle colorBuffer, Text if (!HDDebugDisplaySettings.Instance.decalSettings.displayAtlas) return; - using (var builder = renderGraph.AddRenderPass("DecalOverlay", out var passData, ProfilingSampler.Get(HDProfileId.DisplayDebugDecalsAtlas))) + using (var builder = renderGraph.AddUnsafePass("DecalOverlay", out var passData, ProfilingSampler.Get(HDProfileId.DisplayDebugDecalsAtlas))) { passData.debugOverlay = m_DebugOverlay; - passData.colorBuffer = builder.UseColorBuffer(colorBuffer, 0); - passData.depthBuffer = builder.UseDepthBuffer(depthBuffer, DepthAccess.ReadWrite); + passData.colorBuffer = colorBuffer; + builder.SetRenderAttachment(colorBuffer, 0); + passData.depthBuffer = depthBuffer; + builder.SetRenderAttachmentDepth(depthBuffer, AccessFlags.ReadWrite); passData.mipLevel = (int)HDDebugDisplaySettings.Instance.decalSettings.mipLevel; passData.hdCamera = hdCamera; builder.SetRenderFunc( - (RenderDecalOverlayPassData data, RenderGraphContext ctx) => + (RenderDecalOverlayPassData data, UnsafeGraphContext ctx) => { - DecalSystem.instance.RenderDebugOverlay(data.hdCamera, ctx.cmd, data.mipLevel, data.debugOverlay); + DecalSystem.instance.RenderDebugOverlay(data.hdCamera, CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd), data.mipLevel, data.debugOverlay); }); } } @@ -1115,7 +1155,7 @@ void GenerateDebugImageHistogram(RenderGraph renderGraph, HDCamera hdCamera, Tex if (m_CurrentDebugDisplaySettings.data.lightingDebugSettings.exposureDebugMode != ExposureDebugMode.FinalImageHistogramView) return; - using (var builder = renderGraph.AddRenderPass("Generate Debug Image Histogram", out var passData, ProfilingSampler.Get(HDProfileId.FinalImageHistogram))) + using (var builder = renderGraph.AddUnsafePass("Generate Debug Image Histogram", out var passData, ProfilingSampler.Get(HDProfileId.FinalImageHistogram))) { ValidateComputeBuffer(ref m_DebugImageHistogramBuffer, k_DebugImageHistogramBins, 4 * sizeof(uint)); m_DebugImageHistogramBuffer.SetData(m_EmptyDebugImageHistogram); // Clear the histogram @@ -1125,10 +1165,11 @@ void GenerateDebugImageHistogram(RenderGraph renderGraph, HDCamera hdCamera, Tex passData.imageHistogram = m_DebugImageHistogramBuffer; passData.cameraWidth = postProcessViewportSize.x; passData.cameraHeight = postProcessViewportSize.y; - passData.source = builder.ReadTexture(source); + passData.source = source; + builder.UseTexture(passData.source, AccessFlags.Read); builder.SetRenderFunc( - (DebugImageHistogramData data, RenderGraphContext ctx) => + (DebugImageHistogramData data, UnsafeGraphContext ctx) => { ctx.cmd.SetComputeTextureParam(data.debugImageHistogramCS, data.debugImageHistogramKernel, HDShaderIDs._SourceTexture, data.source); ctx.cmd.SetComputeBufferParam(data.debugImageHistogramCS, data.debugImageHistogramKernel, HDShaderIDs._HistogramBuffer, data.imageHistogram); @@ -1161,23 +1202,25 @@ TextureHandle GenerateDebugHDRxyMapping(RenderGraph renderGraph, HDCamera hdCame if (m_CurrentDebugDisplaySettings.data.lightingDebugSettings.hdrDebugMode == HDRDebugMode.None) return TextureHandle.nullHandle; - using (var builder = renderGraph.AddRenderPass("Generate HDR debug data", out var passData, ProfilingSampler.Get(HDProfileId.HDRDebugData))) + using (var builder = renderGraph.AddUnsafePass("Generate HDR debug data", out var passData, ProfilingSampler.Get(HDProfileId.HDRDebugData))) { passData.generateXYMappingCS = runtimeShaders.debugHDRxyMappingCS; passData.debugXYGenKernel = passData.generateXYMappingCS.FindKernel("KCIExyGen"); passData.cameraWidth = postProcessViewportSize.x; passData.cameraHeight = postProcessViewportSize.y; - passData.source = builder.ReadTexture(source); + passData.source = source; + builder.UseTexture(passData.source, AccessFlags.Read); - passData.xyBuffer = builder.ReadWriteTexture(renderGraph.CreateTexture(new TextureDesc(k_SizeOfHDRXYMapping, k_SizeOfHDRXYMapping, true, true) - { format = GraphicsFormat.R32_SFloat, enableRandomWrite = true, clearBuffer = true, name = "HDR_xyMapping" })); + passData.xyBuffer = renderGraph.CreateTexture(new TextureDesc(k_SizeOfHDRXYMapping, k_SizeOfHDRXYMapping, true, true) + { format = GraphicsFormat.R32_SFloat, enableRandomWrite = true, clearBuffer = true, name = "HDR_xyMapping" }); + builder.UseTexture(passData.xyBuffer, AccessFlags.ReadWrite); ColorGamut gamut = HDROutputActiveForCameraType(hdCamera) ? HDRDisplayColorGamutForCamera(hdCamera) : ColorGamut.Rec709; HDROutputUtils.ConfigureHDROutput(passData.generateXYMappingCS, gamut, HDROutputUtils.Operation.ColorConversion); passData.debugParameters = new Vector4(k_SizeOfHDRXYMapping, k_SizeOfHDRXYMapping, 0, 0); builder.SetRenderFunc( - (GenerateHDRDebugData data, RenderGraphContext ctx) => + (GenerateHDRDebugData data, UnsafeGraphContext ctx) => { ctx.cmd.SetComputeTextureParam(data.generateXYMappingCS, data.debugXYGenKernel, HDShaderIDs._SourceTexture, data.source); ctx.cmd.SetComputeVectorParam(data.generateXYMappingCS, HDShaderIDs._HDRxyBufferDebugParams, data.debugParameters); @@ -1216,7 +1259,7 @@ class DebugHDRData TextureHandle RenderHDRDebug(RenderGraph renderGraph, HDCamera hdCamera, TextureHandle colorBuffer, TextureHandle xyBuff) { - using (var builder = renderGraph.AddRenderPass("Debug HDR", out var passData)) + using (var builder = renderGraph.AddUnsafePass("Debug HDR", out var passData)) { passData.debugHDRMaterial = m_DebugHDROutput; passData.lightingDebugSettings = m_CurrentDebugDisplaySettings.data.lightingDebugSettings; @@ -1226,13 +1269,17 @@ TextureHandle RenderHDRDebug(RenderGraph renderGraph, HDCamera hdCamera, Texture passData.hdrOutputParams.z = 1.0f; passData.debugPass = (int)m_CurrentDebugDisplaySettings.data.lightingDebugSettings.hdrDebugMode - 1; - passData.colorBuffer = builder.ReadTexture(colorBuffer); - passData.debugFullScreenTexture = builder.ReadTexture(m_DebugFullScreenTexture); - passData.output = builder.WriteTexture(renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) - { format = GraphicsFormat.R16G16B16A16_SFloat, name = "HDRDebug" })); + passData.colorBuffer = colorBuffer; + builder.UseTexture(passData.colorBuffer, AccessFlags.Read); + passData.debugFullScreenTexture = m_DebugFullScreenTexture; + builder.UseTexture(passData.debugFullScreenTexture, AccessFlags.Read); + passData.output = renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) + { format = GraphicsFormat.R16G16B16A16_SFloat, name = "HDRDebug" }); + builder.UseTexture(passData.output, AccessFlags.Write); passData.hdrDebugParams = new Vector4(k_SizeOfHDRXYMapping, k_SizeOfHDRXYMapping, 0, 0); - passData.xyTexture = builder.ReadTexture(xyBuff); + passData.xyTexture = xyBuff; + builder.UseTexture(passData.xyTexture, AccessFlags.Read); passData.debugHDRMaterial.enabledKeywords = null; if (HDROutputActiveForCameraType(hdCamera)) @@ -1241,7 +1288,7 @@ TextureHandle RenderHDRDebug(RenderGraph renderGraph, HDCamera hdCamera, Texture } builder.SetRenderFunc( - (DebugHDRData data, RenderGraphContext ctx) => + (DebugHDRData data, UnsafeGraphContext ctx) => { data.debugHDRMaterial.SetTexture(HDShaderIDs._DebugFullScreenTexture, data.debugFullScreenTexture); data.debugHDRMaterial.SetTexture(HDShaderIDs._xyBuffer, data.xyTexture); @@ -1250,7 +1297,7 @@ TextureHandle RenderHDRDebug(RenderGraph renderGraph, HDCamera hdCamera, Texture data.debugHDRMaterial.SetVector(HDShaderIDs._HDROutputParams2, data.hdrOutputParams2); data.debugHDRMaterial.SetVector(HDShaderIDs._HDRDebugParams, data.hdrDebugParams); - HDUtils.DrawFullScreen(ctx.cmd, data.debugHDRMaterial, data.output, null, data.debugPass); + HDUtils.DrawFullScreen(CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd), data.debugHDRMaterial, data.output, null, data.debugPass); }); return passData.output; @@ -1278,26 +1325,32 @@ class DebugExposureData TextureHandle RenderExposureDebug(RenderGraph renderGraph, HDCamera hdCamera, TextureHandle colorBuffer) { - using (var builder = renderGraph.AddRenderPass("Debug Exposure", out var passData)) + using (var builder = renderGraph.AddUnsafePass("Debug Exposure", out var passData)) { ComputeProceduralMeteringParams(hdCamera, out passData.proceduralMeteringParams1, out passData.proceduralMeteringParams2); passData.lightingDebugSettings = m_CurrentDebugDisplaySettings.data.lightingDebugSettings; passData.hdCamera = hdCamera; passData.debugExposureMaterial = m_DebugExposure; - passData.colorBuffer = builder.ReadTexture(colorBuffer); - passData.debugFullScreenTexture = builder.ReadTexture(m_DebugFullScreenTexture); - passData.output = builder.WriteTexture(renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) - { format = GraphicsFormat.R16G16B16A16_SFloat, name = "ExposureDebug" })); - passData.currentExposure = builder.ReadTexture(renderGraph.ImportTexture(GetExposureTexture(hdCamera))); - passData.previousExposure = builder.ReadTexture(renderGraph.ImportTexture(GetPreviousExposureTexture(hdCamera))); - passData.debugExposureData = builder.ReadTexture(renderGraph.ImportTexture(GetExposureDebugData())); + passData.colorBuffer = colorBuffer; + builder.UseTexture(passData.colorBuffer, AccessFlags.Read); + passData.debugFullScreenTexture = m_DebugFullScreenTexture; + builder.UseTexture(passData.debugFullScreenTexture, AccessFlags.Read); + passData.output = renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) + { format = GraphicsFormat.R16G16B16A16_SFloat, name = "ExposureDebug" }); + builder.UseTexture(passData.output, AccessFlags.Write); + passData.currentExposure = renderGraph.ImportTexture(GetExposureTexture(hdCamera)); + builder.UseTexture(passData.currentExposure, AccessFlags.Read); + passData.previousExposure = renderGraph.ImportTexture(GetPreviousExposureTexture(hdCamera)); + builder.UseTexture(passData.previousExposure, AccessFlags.Read); + passData.debugExposureData = renderGraph.ImportTexture(GetExposureDebugData()); + builder.UseTexture(passData.debugExposureData, AccessFlags.Read); passData.customToneMapCurve = GetCustomToneMapCurve(); passData.lutSize = GetLutSize(); passData.histogramBuffer = passData.lightingDebugSettings.exposureDebugMode == ExposureDebugMode.FinalImageHistogramView ? GetDebugImageHistogramBuffer() : GetHistogramBuffer(); builder.SetRenderFunc( - (DebugExposureData data, RenderGraphContext ctx) => + (DebugExposureData data, UnsafeGraphContext ctx) => { // Grab exposure parameters var exposureSettings = data.hdCamera.volumeStack.GetComponent(); @@ -1378,7 +1431,7 @@ TextureHandle RenderExposureDebug(RenderGraph renderGraph, HDCamera hdCamera, Te } - HDUtils.DrawFullScreen(ctx.cmd, data.debugExposureMaterial, data.output, null, passIndex); + HDUtils.DrawFullScreen(CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd), data.debugExposureMaterial, data.output, null, passIndex); }); return passData.output; @@ -1450,16 +1503,19 @@ class WriteApvData // Compute worldspace position and normal at given screenspace clickCoordinates, and write it into given ResultBuffer. void WriteApvPositionNormalDebugBuffer(RenderGraph renderGraph, GraphicsBuffer resultBuffer, Vector2 clickCoordinates, TextureHandle depthBuffer, TextureHandle normalBuffer) { - using (var builder = renderGraph.AddRenderPass("APV Debug Sampling", out var passData, ProfilingSampler.Get(HDProfileId.APVSamplingDebug))) + using (var builder = renderGraph.AddUnsafePass("APV Debug Sampling", out var passData, ProfilingSampler.Get(HDProfileId.APVSamplingDebug))) { - passData.resultBuffer = builder.WriteBuffer(renderGraph.ImportBuffer(resultBuffer)); + passData.resultBuffer = renderGraph.ImportBuffer(resultBuffer); + builder.UseBuffer(passData.resultBuffer, AccessFlags.Write); passData.clickCoordinates = clickCoordinates; - passData.depthBuffer = builder.ReadTexture(depthBuffer); - passData.normalBuffer = builder.ReadTexture(normalBuffer); + passData.depthBuffer = depthBuffer; + builder.UseTexture(passData.depthBuffer, AccessFlags.Read); + passData.normalBuffer = normalBuffer; + builder.UseTexture(passData.normalBuffer, AccessFlags.Read); passData.computeShader = m_ComputePositionNormal; builder.SetRenderFunc( - (WriteApvData data, RenderGraphContext ctx) => + (WriteApvData data, UnsafeGraphContext ctx) => { int kernelHandle = data.computeShader.FindKernel("ComputePositionNormal"); ctx.cmd.SetComputeTextureParam(data.computeShader, kernelHandle, "_CameraDepthTexture", data.depthBuffer); @@ -1511,15 +1567,17 @@ TextureHandle RenderDebugViewMaterial(RenderGraph renderGraph, CullingResults cu if (m_CurrentDebugDisplaySettings.data.materialDebugSettings.IsDebugGBufferEnabled() && hdCamera.frameSettings.litShaderMode == LitShaderMode.Deferred) { - using (var builder = renderGraph.AddRenderPass("DebugViewMaterialGBuffer", out var passData, ProfilingSampler.Get(HDProfileId.DebugViewMaterialGBuffer))) + using (var builder = renderGraph.AddUnsafePass("DebugViewMaterialGBuffer", out var passData, ProfilingSampler.Get(HDProfileId.DebugViewMaterialGBuffer))) { passData.debugGBufferMaterial = m_currentDebugViewMaterialGBuffer; - passData.outputColor = builder.WriteTexture(output); + passData.outputColor = output; + builder.UseTexture(passData.outputColor, AccessFlags.Write); passData.gbuffer = ReadGBuffer(gbuffer, builder); - passData.depthBuffer = builder.ReadTexture(depthBuffer); + passData.depthBuffer = depthBuffer; + builder.UseTexture(passData.depthBuffer, AccessFlags.Read); builder.SetRenderFunc( - (DebugViewMaterialData data, RenderGraphContext context) => + (DebugViewMaterialData data, UnsafeGraphContext ctx) => { var gbufferHandles = data.gbuffer; for (int i = 0; i < gbufferHandles.gBufferCount; ++i) @@ -1528,7 +1586,7 @@ TextureHandle RenderDebugViewMaterial(RenderGraph renderGraph, CullingResults cu } data.debugGBufferMaterial.SetTexture(HDShaderIDs._CameraDepthTexture, data.depthBuffer); - HDUtils.DrawFullScreen(context.cmd, data.debugGBufferMaterial, data.outputColor); + HDUtils.DrawFullScreen(CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd), data.debugGBufferMaterial, data.outputColor); }); } } @@ -1544,30 +1602,32 @@ TextureHandle RenderDebugViewMaterial(RenderGraph renderGraph, CullingResults cu RenderLines(renderGraph, depthBuffer, hdCamera, lightLists); ComposeLines(renderGraph, hdCamera, output, depth, TextureHandle.nullHandle, -1); - using (var builder = renderGraph.AddRenderPass("DisplayDebug ViewMaterial", out var passData, ProfilingSampler.Get(HDProfileId.DisplayDebugViewMaterial))) + using (var builder = renderGraph.AddUnsafePass("DisplayDebug ViewMaterial", out var passData, ProfilingSampler.Get(HDProfileId.DisplayDebugViewMaterial))) { passData.frameSettings = hdCamera.frameSettings; - passData.outputColor = builder.UseColorBuffer(output, 0); + passData.outputColor = output; + builder.SetRenderAttachment(output, 0); #if ENABLE_VIRTUALTEXTURES - builder.UseColorBuffer(vtFeedbackBuffer, 1); + builder.SetRenderAttachment(vtFeedbackBuffer, 1); #endif - passData.outputDepth = builder.UseDepthBuffer(depth, DepthAccess.ReadWrite); + passData.outputDepth = depth; + builder.SetRenderAttachmentDepth(depth, AccessFlags.ReadWrite); + + builder.AllowGlobalStateModification(true); // When rendering debug material we shouldn't rely on a depth prepass for optimizing the alpha clip test. As it is control on the material inspector side // we must override the state here. - passData.opaqueRendererList = builder.UseRendererList( - renderGraph.CreateRendererList(CreateOpaqueRendererListDesc(cull, hdCamera.camera, m_AllForwardOpaquePassNames, - rendererConfiguration: m_CurrentRendererConfigurationBakedLighting, - stateBlock: m_DepthStateOpaque))); - passData.transparentRendererList = builder.UseRendererList( - renderGraph.CreateRendererList(CreateTransparentRendererListDesc(cull, hdCamera.camera, m_AllTransparentPassNames, - rendererConfiguration: m_CurrentRendererConfigurationBakedLighting, - stateBlock: m_DepthStateNoWrite))); + passData.opaqueRendererList = renderGraph.CreateRendererList(CreateOpaqueRendererListDesc(cull, hdCamera.camera, m_AllForwardOpaquePassNames, rendererConfiguration: m_CurrentRendererConfigurationBakedLighting, stateBlock: m_DepthStateOpaque)); + builder.UseRendererList(passData.opaqueRendererList); - passData.decalsEnabled = (hdCamera.frameSettings.IsEnabled(FrameSettingsField.Decals)) && (DecalSystem.m_DecalDatasCount > 0); - passData.perVoxelOffset = builder.ReadBuffer(lightLists.perVoxelOffset); + passData.transparentRendererList = renderGraph.CreateRendererList(CreateTransparentRendererListDesc(cull, hdCamera.camera, m_AllTransparentPassNames, rendererConfiguration: m_CurrentRendererConfigurationBakedLighting, stateBlock: m_DepthStateNoWrite)); + builder.UseRendererList(passData.transparentRendererList); - passData.lightList = builder.ReadBuffer(lightLists.lightList); + passData.decalsEnabled = (hdCamera.frameSettings.IsEnabled(FrameSettingsField.Decals)) && (DecalSystem.m_DecalDatasCount > 0); + passData.perVoxelOffset = lightLists.perVoxelOffset; + builder.UseBuffer(passData.perVoxelOffset, AccessFlags.Read); + passData.lightList = lightLists.lightList; + builder.UseBuffer(passData.lightList, AccessFlags.Read); passData.dbuffer = ReadDBuffer(dbuffer, builder); passData.clearColorTexture = Compositor.CompositionManager.GetClearTextureForStackedCamera(hdCamera); // returns null if is not a stacked camera @@ -1575,29 +1635,30 @@ TextureHandle RenderDebugViewMaterial(RenderGraph renderGraph, CullingResults cu passData.clearDepth = hdCamera.clearDepth; builder.SetRenderFunc( - (DebugViewMaterialData data, RenderGraphContext context) => + (DebugViewMaterialData data, UnsafeGraphContext ctx) => { + var natCmd = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); // If we are doing camera stacking, then we want to clear the debug color and depth buffer using the data from the previous camera on the stack // Note: Ideally here we would like to draw directly on the same buffers as the previous camera, but currently the compositor is not using // Texture Arrays so this would not work. We might need to revise this in the future. if (data.clearColorTexture != null) { - HDUtils.BlitColorAndDepth(context.cmd, data.clearColorTexture, data.clearDepthTexture, new Vector4(1, 1, 0, 0), 0, !data.clearDepth); + Blitter.BlitColorAndDepth(natCmd, data.clearColorTexture, data.clearDepthTexture, new Vector4(1, 1, 0, 0), 0, !data.clearDepth); } - BindDefaultTexturesLightingBuffers(context.defaultResources, context.cmd); + BindDefaultTexturesLightingBuffers(ctx.defaultResources, natCmd); if (data.lightList.IsValid()) - context.cmd.SetGlobalBuffer(HDShaderIDs.g_vLightListTile, data.lightList); + natCmd.SetGlobalBuffer(HDShaderIDs.g_vLightListTile, data.lightList); - BindDBufferGlobalData(data.dbuffer, context); - DrawOpaqueRendererList(context, data.frameSettings, data.opaqueRendererList); + BindDBufferGlobalData(data.dbuffer, ctx); + DrawOpaqueRendererList(ctx, data.frameSettings, data.opaqueRendererList); if (data.decalsEnabled) - DecalSystem.instance.SetAtlas(context.cmd); // for clustered decals + DecalSystem.instance.SetAtlas(natCmd); // for clustered decals if (data.perVoxelOffset.IsValid()) - context.cmd.SetGlobalBuffer(HDShaderIDs.g_vLayeredOffsetsBuffer, data.perVoxelOffset); - DrawTransparentRendererList(context, data.frameSettings, data.transparentRendererList); + natCmd.SetGlobalBuffer(HDShaderIDs.g_vLayeredOffsetsBuffer, data.perVoxelOffset); + DrawTransparentRendererList(ctx, data.frameSettings, data.transparentRendererList); }); } } @@ -1663,11 +1724,12 @@ void PushFullScreenDebugTexture(RenderGraph renderGraph, TextureHandle input, Gr void PushFullScreenDebugTexture(RenderGraph renderGraph, TextureHandle input, bool useCustomScaleBias, Vector2 customScales, GraphicsFormat rtFormat = GraphicsFormat.R16G16B16A16_SFloat, int mipIndex = -1, bool xrTexture = true) { - using (var builder = renderGraph.AddRenderPass("Push Full Screen Debug", out var passData)) + using (var builder = renderGraph.AddUnsafePass("Push Full Screen Debug", out var passData)) { passData.mipIndex = mipIndex; passData.xrTexture = xrTexture; - passData.input = builder.ReadTexture(input); + passData.input = input; + builder.UseTexture(passData.input, AccessFlags.Read); passData.useCustomScaleBias = false; if (useCustomScaleBias) { @@ -1675,28 +1737,30 @@ void PushFullScreenDebugTexture(RenderGraph renderGraph, TextureHandle input, bo passData.customScaleBias = new Vector4(customScales.x, customScales.y, 0.0f, 0.0f); } - passData.output = builder.UseColorBuffer(renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) - { format = rtFormat, name = "DebugFullScreen" }), 0); + passData.output = renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) + { format = rtFormat, name = "DebugFullScreen" }); + builder.SetRenderAttachment(passData.output, 0); builder.SetRenderFunc( - (PushFullScreenDebugPassData data, RenderGraphContext ctx) => + (PushFullScreenDebugPassData data, UnsafeGraphContext ctx) => { + var natCmd = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); if (data.useCustomScaleBias) { if (data.xrTexture) { if (data.mipIndex != -1) - HDUtils.BlitCameraTexture(ctx.cmd, data.input, data.output, data.customScaleBias, data.mipIndex); + Blitter.BlitCameraTexture(natCmd, data.input, data.output, data.customScaleBias, data.mipIndex); else - HDUtils.BlitCameraTexture(ctx.cmd, data.input, data.output, data.customScaleBias); + Blitter.BlitCameraTexture(natCmd, data.input, data.output, data.customScaleBias); } else { - CoreUtils.SetRenderTarget(ctx.cmd, data.output); + CoreUtils.SetRenderTarget(natCmd, data.output); if (data.mipIndex != -1) - HDUtils.BlitTexture2D(ctx.cmd, data.input, data.customScaleBias, data.mipIndex, false); + Blitter.BlitTexture2D(natCmd, data.input, data.customScaleBias, data.mipIndex, false); else - HDUtils.BlitTexture2D(ctx.cmd, data.input, data.customScaleBias, 0.0f, false); + Blitter.BlitTexture2D(natCmd, data.input, data.customScaleBias, 0.0f, false); } } else @@ -1704,16 +1768,16 @@ void PushFullScreenDebugTexture(RenderGraph renderGraph, TextureHandle input, bo if (data.xrTexture) { if (data.mipIndex != -1) - HDUtils.BlitCameraTexture(ctx.cmd, data.input, data.output, data.mipIndex); + Blitter.BlitCameraTexture(natCmd, data.input, data.output, data.mipIndex); else - HDUtils.BlitCameraTexture(ctx.cmd, data.input, data.output); + Blitter.BlitCameraTexture(natCmd, data.input, data.output); } else { if (data.mipIndex != -1) - HDUtils.BlitCameraTexture2D(ctx.cmd, data.input, data.output, data.mipIndex); + Blitter.BlitCameraTexture2D(natCmd, data.input, data.output, data.mipIndex); else - HDUtils.BlitCameraTexture2D(ctx.cmd, data.input, data.output); + Blitter.BlitCameraTexture2D(natCmd, data.input, data.output); } } }); @@ -1754,20 +1818,22 @@ void PushFullScreenVTFeedbackDebugTexture(RenderGraph renderGraph, TextureHandle { if (FullScreenDebugMode.RequestedVirtualTextureTiles == m_CurrentDebugDisplaySettings.data.fullScreenDebugMode) { - using (var builder = renderGraph.AddRenderPass("Push Full Screen Debug", out var passData)) + using (var builder = renderGraph.AddUnsafePass("Push Full Screen Debug", out var passData)) { passData.material = m_VTDebugBlit; passData.msaa = msaa; - passData.input = builder.ReadTexture(input); - passData.output = builder.UseColorBuffer(renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) - { colorFormat = GraphicsFormat.R16G16B16A16_SFloat, name = "DebugFullScreen" }), 0); + passData.input = input; + builder.UseTexture(passData.input, AccessFlags.Read); + passData.output = renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) { colorFormat = GraphicsFormat.R16G16B16A16_SFloat, name = "DebugFullScreen" }); + builder.SetRenderAttachment(passData.output, 0); builder.SetRenderFunc( - (PushFullScreenVTDebugPassData data, RenderGraphContext ctx) => + (PushFullScreenVTDebugPassData data, UnsafeGraphContext ctx) => { - CoreUtils.SetRenderTarget(ctx.cmd, data.output); + var natCmd = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); + CoreUtils.SetRenderTarget(natCmd, data.output); data.material.SetTexture(data.msaa ? HDShaderIDs._BlitTextureMSAA : HDShaderIDs._BlitTexture, data.input); - ctx.cmd.DrawProcedural(Matrix4x4.identity, data.material, data.msaa ? 1 : 0, MeshTopology.Triangles, 3, 1); + natCmd.DrawProcedural(Matrix4x4.identity, data.material, data.msaa ? 1 : 0, MeshTopology.Triangles, 3, 1); }); m_DebugFullScreenTexture = passData.output; @@ -1781,16 +1847,18 @@ void PushFullScreenVTFeedbackDebugTexture(RenderGraph renderGraph, TextureHandle TextureHandle PushColorPickerDebugTexture(RenderGraph renderGraph, TextureHandle input) { - using (var builder = renderGraph.AddRenderPass("Push To Color Picker", out var passData)) + using (var builder = renderGraph.AddUnsafePass("Push To Color Picker", out var passData)) { - passData.input = builder.ReadTexture(input); - passData.output = builder.UseColorBuffer(renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) - { format = GraphicsFormat.R16G16B16A16_SFloat, name = "DebugColorPicker" }), 0); + passData.input = input; + builder.UseTexture(passData.input, AccessFlags.Read); + passData.output = renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) + { format = GraphicsFormat.R16G16B16A16_SFloat, name = "DebugColorPicker" }); + builder.SetRenderAttachment(passData.output, 0); builder.SetRenderFunc( - (PushFullScreenDebugPassData data, RenderGraphContext ctx) => + (PushFullScreenDebugPassData data, UnsafeGraphContext ctx) => { - HDUtils.BlitCameraTexture(ctx.cmd, data.input, data.output); + Blitter.BlitCameraTexture(CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd), data.input, data.output); }); return passData.output; diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDRenderPipeline.LightLoop.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDRenderPipeline.LightLoop.cs index 9ec8fb4f9dc..6ddac5a62e6 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDRenderPipeline.LightLoop.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDRenderPipeline.LightLoop.cs @@ -20,15 +20,20 @@ struct LightingBuffers public TextureHandle screenspaceShadowBuffer; } - static LightingBuffers ReadLightingBuffers(in LightingBuffers buffers, RenderGraphBuilder builder) + static LightingBuffers ReadLightingBuffers(in LightingBuffers buffers, IUnsafeRenderGraphBuilder builder) { var result = new LightingBuffers(); // We only read those buffers because sssBuffer and diffuseLightingBuffer our just output of the lighting process, not inputs. - result.ambientOcclusionBuffer = builder.ReadTexture(buffers.ambientOcclusionBuffer); - result.ssrLightingBuffer = builder.ReadTexture(buffers.ssrLightingBuffer); - result.ssgiLightingBuffer = builder.ReadTexture(buffers.ssgiLightingBuffer); - result.contactShadowsBuffer = builder.ReadTexture(buffers.contactShadowsBuffer); - result.screenspaceShadowBuffer = builder.ReadTexture(buffers.screenspaceShadowBuffer); + result.ambientOcclusionBuffer = buffers.ambientOcclusionBuffer; + builder.UseTexture(result.ambientOcclusionBuffer, AccessFlags.Read); + result.ssrLightingBuffer = buffers.ssrLightingBuffer; + builder.UseTexture(result.ssrLightingBuffer, AccessFlags.Read); + result.ssgiLightingBuffer = buffers.ssgiLightingBuffer; + builder.UseTexture(result.ssgiLightingBuffer, AccessFlags.Read); + result.contactShadowsBuffer = buffers.contactShadowsBuffer; + builder.UseTexture(result.contactShadowsBuffer, AccessFlags.Read); + result.screenspaceShadowBuffer = buffers.screenspaceShadowBuffer; + builder.UseTexture(result.screenspaceShadowBuffer, AccessFlags.Read); return result; } @@ -144,7 +149,7 @@ internal struct BuildGPULightListOutput public BufferHandle perTileLogBaseTweak; } - static void ClearLightList(BuildGPULightListPassData data, CommandBuffer cmd, GraphicsBuffer bufferToClear) + static void ClearLightList(BuildGPULightListPassData data, ComputeCommandBuffer cmd, GraphicsBuffer bufferToClear) { cmd.SetComputeBufferParam(data.clearLightListCS, data.clearLightListKernel, HDShaderIDs._LightListToClear, bufferToClear); Vector2 countAndOffset = new Vector2Int(bufferToClear.count, 0); @@ -169,7 +174,7 @@ static void ClearLightList(BuildGPULightListPassData data, CommandBuffer cmd, Gr } } - static void ClearLightLists(BuildGPULightListPassData data, CommandBuffer cmd) + static void ClearLightLists(BuildGPULightListPassData data, ComputeCommandBuffer cmd) { if (data.clearLightLists) { @@ -189,7 +194,7 @@ static void ClearLightLists(BuildGPULightListPassData data, CommandBuffer cmd) } // generate screen-space AABBs (used for both fptl and clustered). - static void GenerateLightsScreenSpaceAABBs(BuildGPULightListPassData data, CommandBuffer cmd) + static void GenerateLightsScreenSpaceAABBs(BuildGPULightListPassData data, ComputeCommandBuffer cmd) { if (data.totalLightCount != 0) { @@ -212,7 +217,7 @@ static void GenerateLightsScreenSpaceAABBs(BuildGPULightListPassData data, Comma } // enable coarse 2D pass on 64x64 tiles (used for both fptl and clustered). - static void BigTilePrepass(BuildGPULightListPassData data, CommandBuffer cmd) + static void BigTilePrepass(BuildGPULightListPassData data, ComputeCommandBuffer cmd) { if (data.runLightList && data.runBigTilePrepass) { @@ -230,7 +235,7 @@ static void BigTilePrepass(BuildGPULightListPassData data, CommandBuffer cmd) } } - static void BuildPerTileLightList(BuildGPULightListPassData data, ref bool tileFlagsWritten, CommandBuffer cmd) + static void BuildPerTileLightList(BuildGPULightListPassData data, ref bool tileFlagsWritten, ComputeCommandBuffer cmd) { // optimized for opaques only if (data.runLightList && data.runFPTL) @@ -274,7 +279,7 @@ static void BuildPerTileLightList(BuildGPULightListPassData data, ref bool tileF } } - static void VoxelLightListGeneration(BuildGPULightListPassData data, CommandBuffer cmd) + static void VoxelLightListGeneration(BuildGPULightListPassData data, ComputeCommandBuffer cmd) { if (data.runLightList) { @@ -306,7 +311,7 @@ static void VoxelLightListGeneration(BuildGPULightListPassData data, CommandBuff } } - static void BuildDispatchIndirectArguments(BuildGPULightListPassData data, bool tileFlagsWritten, CommandBuffer cmd) + static void BuildDispatchIndirectArguments(BuildGPULightListPassData data, bool tileFlagsWritten, ComputeCommandBuffer cmd) { if (data.enableFeatureVariants) { @@ -384,7 +389,7 @@ static void BuildDispatchIndirectArguments(BuildGPULightListPassData data, bool unsafe void PrepareBuildGPULightListPassData( RenderGraph renderGraph, - RenderGraphBuilder builder, + IComputeRenderGraphBuilder builder, HDCamera hdCamera, TileAndClusterData tileAndClusterData, ref ShaderVariablesLightList constantBuffer, @@ -555,23 +560,30 @@ unsafe void PrepareBuildGPULightListPassData( // Depending on frame setting configurations we might not have written to a depth buffer yet so when executing the pass it might not be valid. if (hdCamera.frameSettings.IsEnabled(FrameSettingsField.OpaqueObjects)) { - passData.depthBuffer = builder.ReadTexture(depthStencilBuffer); - passData.stencilTexture = builder.ReadTexture(stencilBufferCopy); + passData.depthBuffer = depthStencilBuffer; + passData.stencilTexture = stencilBufferCopy; } else { - passData.depthBuffer = builder.ReadTexture(renderGraph.defaultResources.blackTextureXR); - passData.stencilTexture = builder.ReadTexture(renderGraph.defaultResources.blackTextureXR); + passData.depthBuffer = renderGraph.defaultResources.blackTextureXR; + passData.stencilTexture = renderGraph.defaultResources.blackTextureXR; } + builder.UseTexture(passData.depthBuffer, AccessFlags.Read); + builder.UseTexture(passData.stencilTexture, AccessFlags.Read); if (passData.computeMaterialVariants && passData.enableFeatureVariants) { // When opaques are disabled, gbuffer count is zero. // Unfortunately, compute shader will then complains some textures aren't bound, so we need to use black textures instead. for (int i = 0; i < gBuffer.gBufferCount; ++i) - passData.gBuffer[i] = builder.ReadTexture(gBuffer.mrt[i]); - for (int i = gBuffer.gBufferCount; i < 7; ++i) + { + passData.gBuffer[i] = gBuffer.mrt[i]; + builder.UseTexture(passData.gBuffer[i], AccessFlags.Read); + } + for (int i = gBuffer.gBufferCount; i < 7; ++i) { passData.gBuffer[i] = renderGraph.defaultResources.blackTextureXR; + builder.UseTexture(passData.gBuffer[i], AccessFlags.Read); + } passData.gBufferCount = 7; } @@ -579,8 +591,10 @@ unsafe void PrepareBuildGPULightListPassData( // This way we'll be reusing them more often. // Those buffer are filled with the CPU outside of the render graph. - passData.convexBoundsBuffer = builder.ReadBuffer(renderGraph.ImportBuffer(tileAndClusterData.convexBoundsBuffer)); - passData.lightVolumeDataBuffer = builder.ReadBuffer(renderGraph.ImportBuffer(tileAndClusterData.lightVolumeDataBuffer)); + passData.convexBoundsBuffer = renderGraph.ImportBuffer(tileAndClusterData.convexBoundsBuffer); + builder.UseBuffer(passData.convexBoundsBuffer, AccessFlags.Read); + passData.lightVolumeDataBuffer = renderGraph.ImportBuffer(tileAndClusterData.lightVolumeDataBuffer); + builder.UseBuffer(passData.lightVolumeDataBuffer, AccessFlags.Read); passData.globalLightListAtomic = builder.CreateTransientBuffer(new BufferDesc(1, sizeof(uint)) { name = "LightListAtomic" }); passData.AABBBoundsBuffer = builder.CreateTransientBuffer(new BufferDesc(m_MaxViewCount * 2 * tileAndClusterData.maxLightCount, 4 * sizeof(float)) { name = "AABBBoundBuffer" }); @@ -593,17 +607,17 @@ unsafe void PrepareBuildGPULightListPassData( { // note that nrTiles include the viewCount in allocation below // Tile buffers - passData.output.lightList = builder.WriteBuffer( - renderGraph.CreateBuffer(new BufferDesc((int)LightCategory.Count * InternalLightCullingDefs.s_LightDwordPerFptlTile * nrTiles, sizeof(uint)) { name = "LightList" })); - passData.output.tileList = builder.WriteBuffer( - renderGraph.CreateBuffer(new BufferDesc(LightDefinitions.s_NumFeatureVariants * nrTiles, sizeof(uint)) { name = "TileList" })); - passData.output.tileFeatureFlags = builder.WriteBuffer( - renderGraph.CreateBuffer(new BufferDesc(nrTiles, sizeof(uint)) { name = "TileFeatureFlags" })); + passData.output.lightList = renderGraph.CreateBuffer(new BufferDesc((int)LightCategory.Count * InternalLightCullingDefs.s_LightDwordPerFptlTile * nrTiles, sizeof(uint)) { name = "LightList" }); + builder.UseBuffer(passData.output.lightList, AccessFlags.Write); + passData.output.tileList = renderGraph.CreateBuffer(new BufferDesc(LightDefinitions.s_NumFeatureVariants * nrTiles, sizeof(uint)) { name = "TileList" }); + builder.UseBuffer(passData.output.tileList, AccessFlags.Write); + passData.output.tileFeatureFlags = renderGraph.CreateBuffer(new BufferDesc(nrTiles, sizeof(uint)) { name = "TileFeatureFlags" }); + builder.UseBuffer(passData.output.tileFeatureFlags, AccessFlags.Write); // DispatchIndirect: Buffer with arguments has to have three integer numbers at given argsOffset offset: number of work groups in X dimension, number of work groups in Y dimension, number of work groups in Z dimension. // DrawProceduralIndirect: Buffer with arguments has to have four integer numbers at given argsOffset offset: vertex count per instance, instance count, start vertex location, and start instance location // Use use max size of 4 unit for allocation - passData.output.dispatchIndirectBuffer = builder.WriteBuffer( - renderGraph.CreateBuffer(new BufferDesc(m_MaxViewCount * LightDefinitions.s_NumFeatureVariants * 4, sizeof(uint), GraphicsBuffer.Target.IndirectArguments) { name = "DispatchIndirectBuffer" })); + passData.output.dispatchIndirectBuffer = renderGraph.CreateBuffer(new BufferDesc(m_MaxViewCount * LightDefinitions.s_NumFeatureVariants * 4, sizeof(uint), GraphicsBuffer.Target.IndirectArguments) { name = "DispatchIndirectBuffer" }); + builder.UseBuffer(passData.output.dispatchIndirectBuffer, AccessFlags.Write); } // Big Tile buffer @@ -612,12 +626,12 @@ unsafe void PrepareBuildGPULightListPassData( var nrBigTilesX = (m_MaxCameraWidth + 63) / 64; var nrBigTilesY = (m_MaxCameraHeight + 63) / 64; var nrBigTiles = nrBigTilesX * nrBigTilesY * m_MaxViewCount; - passData.output.bigTileLightList = builder.WriteBuffer( - renderGraph.CreateBuffer(new BufferDesc(InternalLightCullingDefs.s_MaxNrBigTileLightsPlusOne * nrBigTiles / 2, sizeof(uint)) { name = "BigTiles" })); + passData.output.bigTileLightList = renderGraph.CreateBuffer(new BufferDesc(InternalLightCullingDefs.s_MaxNrBigTileLightsPlusOne * nrBigTiles / 2, sizeof(uint)) { name = "BigTiles" }); + builder.UseBuffer(passData.output.bigTileLightList, AccessFlags.Write); if (passData.supportsVolumetric) { - passData.output.bigTileVolumetricLightList = builder.WriteBuffer( - renderGraph.CreateBuffer(new BufferDesc(InternalLightCullingDefs.s_MaxNrBigTileLightsPlusOne * nrBigTiles / 2, sizeof(uint)) { name = "BigTiles For Volumetric" })); + passData.output.bigTileVolumetricLightList = renderGraph.CreateBuffer(new BufferDesc(InternalLightCullingDefs.s_MaxNrBigTileLightsPlusOne * nrBigTiles / 2, sizeof(uint)) { name = "BigTiles For Volumetric" }); + builder.UseBuffer(passData.output.bigTileVolumetricLightList, AccessFlags.Write); } } @@ -626,14 +640,14 @@ unsafe void PrepareBuildGPULightListPassData( var nrClustersY = (m_MaxCameraHeight + LightDefinitions.s_TileSizeClustered - 1) / LightDefinitions.s_TileSizeClustered; var nrClusterTiles = nrClustersX * nrClustersY * m_MaxViewCount; - passData.output.perVoxelOffset = builder.WriteBuffer( - renderGraph.CreateBuffer(new BufferDesc((int)LightCategory.Count * (1 << k_Log2NumClusters) * nrClusterTiles, sizeof(uint)) { name = "PerVoxelOffset" })); - passData.output.perVoxelLightLists = builder.WriteBuffer( - renderGraph.CreateBuffer(new BufferDesc(NumLightIndicesPerClusteredTile() * nrClusterTiles, sizeof(uint)) { name = "PerVoxelLightList" })); + passData.output.perVoxelOffset = renderGraph.CreateBuffer(new BufferDesc((int)LightCategory.Count * (1 << k_Log2NumClusters) * nrClusterTiles, sizeof(uint)) { name = "PerVoxelOffset" }); + builder.UseBuffer(passData.output.perVoxelOffset, AccessFlags.Write); + passData.output.perVoxelLightLists = renderGraph.CreateBuffer(new BufferDesc(NumLightIndicesPerClusteredTile() * nrClusterTiles, sizeof(uint)) { name = "PerVoxelLightList" }); + builder.UseBuffer(passData.output.perVoxelLightLists, AccessFlags.Write); if (tileAndClusterData.clusterNeedsDepth) { - passData.output.perTileLogBaseTweak = builder.WriteBuffer( - renderGraph.CreateBuffer(new BufferDesc(nrClusterTiles, sizeof(float)) { name = "PerTileLogBaseTweak" })); + passData.output.perTileLogBaseTweak = renderGraph.CreateBuffer(new BufferDesc(nrClusterTiles, sizeof(float)) { name = "PerTileLogBaseTweak" }); + builder.UseBuffer(passData.output.perTileLogBaseTweak, AccessFlags.Write); } } @@ -647,14 +661,15 @@ BuildGPULightListOutput BuildGPULightList( TextureHandle stencilBufferCopy, GBufferOutput gBuffer) { - using (var builder = renderGraph.AddRenderPass("Build Light List", out var passData, ProfilingSampler.Get(HDProfileId.BuildLightList))) + using (var builder = renderGraph.AddComputePass("Build Light List", out var passData, ProfilingSampler.Get(HDProfileId.BuildLightList))) { builder.EnableAsyncCompute(hdCamera.frameSettings.BuildLightListRunsAsync()); + builder.AllowGlobalStateModification(true); PrepareBuildGPULightListPassData(renderGraph, builder, hdCamera, tileAndClusterData, ref constantBuffer, totalLightCount, depthStencilBuffer, stencilBufferCopy, gBuffer, passData); builder.SetRenderFunc( - (BuildGPULightListPassData data, RenderGraphContext context) => + (BuildGPULightListPassData data, ComputeGraphContext context) => { bool tileFlagsWritten = false; @@ -679,23 +694,25 @@ class PushGlobalCameraParamPassData void PushGlobalCameraParams(RenderGraph renderGraph, HDCamera hdCamera) { - using (var builder = renderGraph.AddRenderPass("Push Global Camera Parameters", out var passData)) + using (var builder = renderGraph.AddUnsafePass("Push Global Camera Parameters", out var passData)) { + builder.AllowGlobalStateModification(true); + passData.globalCB = m_ShaderVariablesGlobalCB; passData.xrCB = m_ShaderVariablesXRCB; builder.SetRenderFunc( - (PushGlobalCameraParamPassData data, RenderGraphContext context) => + (PushGlobalCameraParamPassData data, UnsafeGraphContext ctx) => { - ConstantBuffer.PushGlobal(context.cmd, data.globalCB, HDShaderIDs._ShaderVariablesGlobal); - ConstantBuffer.PushGlobal(context.cmd, data.xrCB, HDShaderIDs._ShaderVariablesXR); + ConstantBuffer.PushGlobal(ctx.cmd, data.globalCB, HDShaderIDs._ShaderVariablesGlobal); + ConstantBuffer.PushGlobal(ctx.cmd, data.xrCB, HDShaderIDs._ShaderVariablesXR); }); } } - internal ShadowResult RenderShadows(RenderGraph renderGraph, HDCamera hdCamera, CullingResults cullResults, ref ShadowResult result) + internal ShadowResult RenderShadows(RenderGraph renderGraph, ScriptableRenderContext renderContext, HDCamera hdCamera, CullingResults cullResults, ref ShadowResult result) { - m_ShadowManager.RenderShadows(m_RenderGraph, m_ShaderVariablesGlobalCB, hdCamera, cullResults, ref result); + m_ShadowManager.RenderShadows(m_RenderGraph, renderContext, m_ShaderVariablesGlobalCB, hdCamera, cullResults, ref result); // Need to restore global camera parameters. PushGlobalCameraParams(renderGraph, hdCamera); return result; @@ -866,7 +883,7 @@ LightingOutput RenderDeferredLighting( !hdCamera.frameSettings.IsEnabled(FrameSettingsField.OpaqueObjects)) return new LightingOutput(); - using (var builder = renderGraph.AddRenderPass("Deferred Lighting", out var passData)) + using (var builder = renderGraph.AddUnsafePass("Deferred Lighting", out var passData)) { bool debugDisplayOrSceneLightOff = CoreUtils.IsSceneLightingDisabled(hdCamera.camera) || m_CurrentDebugDisplaySettings.IsDebugDisplayEnabled(); @@ -885,10 +902,12 @@ LightingOutput RenderDeferredLighting( passData.deferredComputeShader = deferredComputeShader; passData.viewCount = hdCamera.viewCount; - passData.colorBuffer = builder.WriteTexture(colorBuffer); + passData.colorBuffer = colorBuffer; + builder.UseTexture(passData.colorBuffer, AccessFlags.Write); if (passData.outputSplitLighting) { - passData.sssDiffuseLightingBuffer = builder.WriteTexture(lightingBuffers.diffuseLightingBuffer); + passData.sssDiffuseLightingBuffer = lightingBuffers.diffuseLightingBuffer; + builder.UseTexture(passData.sssDiffuseLightingBuffer, AccessFlags.Write); } else { @@ -897,8 +916,10 @@ LightingOutput RenderDeferredLighting( // we need to create a small dummy texture. passData.sssDiffuseLightingBuffer = builder.CreateTransientTexture(new TextureDesc(1, 1, true, true) { format = GraphicsFormat.B10G11R11_UFloatPack32, enableRandomWrite = true }); } - passData.depthBuffer = builder.ReadTexture(depthStencilBuffer); - passData.depthTexture = builder.ReadTexture(depthPyramidTexture); + passData.depthBuffer = depthStencilBuffer; + builder.UseTexture(passData.depthBuffer, AccessFlags.Read); + passData.depthTexture = depthPyramidTexture; + builder.UseTexture(passData.depthTexture, AccessFlags.Read); passData.lightingBuffers = ReadLightingBuffers(lightingBuffers, builder); @@ -906,42 +927,52 @@ LightingOutput RenderDeferredLighting( passData.shadowMaskTextureIndex = gbuffer.shadowMaskTextureIndex; passData.gbufferCount = gbuffer.gBufferCount; for (int i = 0; i < gbuffer.gBufferCount; ++i) - passData.gbuffer[i] = builder.ReadTexture(gbuffer.mrt[i]); + { + passData.gbuffer[i] = gbuffer.mrt[i]; + builder.UseTexture(passData.gbuffer[i], AccessFlags.Read); + } HDShadowManager.ReadShadowResult(shadowResult, builder); - passData.lightListBuffer = builder.ReadBuffer(lightLists.lightList); - passData.tileFeatureFlagsBuffer = builder.ReadBuffer(lightLists.tileFeatureFlags); - passData.tileListBuffer = builder.ReadBuffer(lightLists.tileList); - passData.dispatchIndirectBuffer = builder.ReadBuffer(lightLists.dispatchIndirectBuffer); + passData.lightListBuffer = lightLists.lightList; + builder.UseBuffer(passData.lightListBuffer, AccessFlags.Read); + passData.tileFeatureFlagsBuffer = lightLists.tileFeatureFlags; + builder.UseBuffer(passData.tileFeatureFlagsBuffer, AccessFlags.Read); + passData.tileListBuffer = lightLists.tileList; + builder.UseBuffer(passData.tileListBuffer, AccessFlags.Read); + passData.dispatchIndirectBuffer = lightLists.dispatchIndirectBuffer; + builder.UseBuffer(passData.dispatchIndirectBuffer, AccessFlags.Read); + + builder.AllowGlobalStateModification(true); var output = new LightingOutput(); output.colorBuffer = passData.colorBuffer; builder.SetRenderFunc( - (DeferredLightingPassData data, RenderGraphContext context) => + (DeferredLightingPassData data, UnsafeGraphContext ctx) => { - var colorBuffers = context.renderGraphPool.GetTempArray(2); + var natCmd = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); + var colorBuffers = ctx.renderGraphPool.GetTempArray(2); colorBuffers[0] = data.colorBuffer; colorBuffers[1] = data.sssDiffuseLightingBuffer; // TODO RENDERGRAPH: Remove these SetGlobal and properly send these textures to the deferred passes and bind them directly to compute shaders. // This can wait that we remove the old code path. for (int i = 0; i < data.gbufferCount; ++i) - context.cmd.SetGlobalTexture(HDShaderIDs._GBufferTexture[i], data.gbuffer[i]); + natCmd.SetGlobalTexture(HDShaderIDs._GBufferTexture[i], data.gbuffer[i]); if (data.lightLayersTextureIndex != -1) - context.cmd.SetGlobalTexture(HDShaderIDs._RenderingLayersTexture, data.gbuffer[data.lightLayersTextureIndex]); + natCmd.SetGlobalTexture(HDShaderIDs._RenderingLayersTexture, data.gbuffer[data.lightLayersTextureIndex]); else - context.cmd.SetGlobalTexture(HDShaderIDs._RenderingLayersTexture, TextureXR.GetWhiteTexture()); + natCmd.SetGlobalTexture(HDShaderIDs._RenderingLayersTexture, TextureXR.GetWhiteTexture()); if (data.shadowMaskTextureIndex != -1) - context.cmd.SetGlobalTexture(HDShaderIDs._ShadowMaskTexture, data.gbuffer[data.shadowMaskTextureIndex]); + natCmd.SetGlobalTexture(HDShaderIDs._ShadowMaskTexture, data.gbuffer[data.shadowMaskTextureIndex]); else - context.cmd.SetGlobalTexture(HDShaderIDs._ShadowMaskTexture, TextureXR.GetWhiteTexture()); + natCmd.SetGlobalTexture(HDShaderIDs._ShadowMaskTexture, TextureXR.GetWhiteTexture()); - BindGlobalLightingBuffers(data.lightingBuffers, context.cmd); - RenderComputeDeferredLighting(data, colorBuffers, context.cmd); + BindGlobalLightingBuffers(data.lightingBuffers, natCmd); + RenderComputeDeferredLighting(data, colorBuffers, natCmd); }); return output; @@ -997,7 +1028,7 @@ class RenderSSRPassData public BufferHandle coarseStencilBuffer; - public BlueNoise blueNoise; + public BlueNoise.DitheredTextureHandleSet blueNoiseResources; public HDCamera hdCamera; public ComputeShader clearBuffer2DCS; @@ -1017,7 +1048,7 @@ class RenderSSRPassData public bool motionVectorFromHit; } - static void ClearColorBuffer2D(RenderSSRPassData data, CommandBuffer cmd, TextureHandle rt, Color clearColor, bool async) + static void ClearColorBuffer2D(RenderSSRPassData data, ComputeCommandBuffer cmd, TextureHandle rt, Color clearColor, bool async) { if (!async) { @@ -1108,13 +1139,19 @@ TextureHandle RenderSSR(RenderGraph renderGraph, if (colorPyramidRT == null) return renderGraph.defaultResources.blackTextureXR; - using (var builder = renderGraph.AddRenderPass("Render SSR", out var passData)) + var blueNoise = GetBlueNoiseManager(); + var blueNoiseResources = BlueNoise.ImportSetToRenderGraph(renderGraph, blueNoise.DitheredTextureSet1SPP()); + + bool usePBRAlgo = !transparent && settings.usedAlgorithm.value == ScreenSpaceReflectionAlgorithm.PBRAccumulation; + TextureHandle ssrAccum = TextureHandle.nullHandle; + TextureHandle ssrAccumPrev = TextureHandle.nullHandle; + + using (var builder = renderGraph.AddComputePass("Render SSR", out var passData)) { // We disable async for transparent SSR as it would cause direct sync to the graphics pipe and would compete with other heavy passes for GPU resource. bool useAsync = hdCamera.frameSettings.SSRRunsAsync() && !transparent; builder.EnableAsyncCompute(useAsync); - bool usePBRAlgo = !transparent && settings.usedAlgorithm.value == ScreenSpaceReflectionAlgorithm.PBRAccumulation; var colorPyramid = renderGraph.ImportTexture(colorPyramidRT); var volumeSettings = hdCamera.volumeStack.GetComponent(); @@ -1124,7 +1161,6 @@ TextureHandle RenderSSR(RenderGraph renderGraph, UpdateSSRConstantBuffer(hdCamera, volumeSettings, transparent, ref passData.cb); passData.hdCamera = hdCamera; - passData.blueNoise = GetBlueNoiseManager(); passData.ssrCS = m_ScreenSpaceReflectionsCS; passData.tracingKernel = m_SsrTracingKernel; passData.reprojectionKernel = m_SsrReprojectionKernel; @@ -1158,14 +1194,26 @@ TextureHandle RenderSSR(RenderGraph renderGraph, hdCamera.currentSSRAlgorithm = volumeSettings.usedAlgorithm.value; // Store for next frame comparison passData.validColorPyramid = hdCamera.colorPyramidHistoryValidFrames > 1; - passData.depthBuffer = builder.ReadTexture(prepassOutput.depthBuffer); - passData.depthPyramid = builder.ReadTexture(prepassOutput.depthPyramidTexture); - passData.colorPyramid = builder.ReadTexture(colorPyramid); - passData.stencilBuffer = builder.ReadTexture(prepassOutput.stencilBuffer); - passData.clearCoatMask = builder.ReadTexture(clearCoatMask); - //passData.coarseStencilBuffer = builder.ReadBuffer(prepassOutput.coarseStencilBuffer); - passData.normalBuffer = builder.ReadTexture(prepassOutput.resolvedNormalBuffer); - passData.motionVectorsBuffer = builder.ReadTexture(prepassOutput.resolvedMotionVectorsBuffer); + passData.blueNoiseResources = blueNoiseResources; + builder.UseTexture(passData.blueNoiseResources.owenScrambled256Tex, AccessFlags.Read); + builder.UseTexture(passData.blueNoiseResources.rankingTile, AccessFlags.Read); + builder.UseTexture(passData.blueNoiseResources.scramblingTile, AccessFlags.Read); + builder.UseTexture(passData.blueNoiseResources.scramblingTex, AccessFlags.Read); + + passData.depthBuffer = prepassOutput.depthBuffer; + builder.UseTexture(passData.depthBuffer, AccessFlags.Read); + passData.depthPyramid = prepassOutput.depthPyramidTexture; + builder.UseTexture(passData.depthPyramid, AccessFlags.Read); + passData.colorPyramid = colorPyramid; + builder.UseTexture(passData.colorPyramid, AccessFlags.Read); + passData.stencilBuffer = prepassOutput.stencilBuffer; + builder.UseTexture(passData.stencilBuffer, AccessFlags.Read); + passData.clearCoatMask = clearCoatMask; + builder.UseTexture(passData.clearCoatMask, AccessFlags.Read); + passData.normalBuffer = prepassOutput.resolvedNormalBuffer; + builder.UseTexture(passData.normalBuffer, AccessFlags.Read); + passData.motionVectorsBuffer = prepassOutput.resolvedMotionVectorsBuffer; + builder.UseTexture(passData.motionVectorsBuffer, AccessFlags.Read); if (hdCamera.isFirstFrame || hdCamera.cameraFrameCount <= 2) { passData.frameIndex = 1.0f; @@ -1194,21 +1242,27 @@ TextureHandle RenderSSR(RenderGraph renderGraph, if (usePBRAlgo) { - passData.ssrAccum = builder.WriteTexture(renderGraph.ImportTexture(hdCamera.GetCurrentFrameRT((int)HDCameraFrameHistoryType.ScreenSpaceReflectionAccumulation))); - passData.ssrAccumPrev = builder.WriteTexture(renderGraph.ImportTexture(hdCamera.GetPreviousFrameRT((int)HDCameraFrameHistoryType.ScreenSpaceReflectionAccumulation))); + ssrAccum = passData.ssrAccum = renderGraph.ImportTexture(hdCamera.GetCurrentFrameRT((int)HDCameraFrameHistoryType.ScreenSpaceReflectionAccumulation)); + builder.UseTexture(passData.ssrAccum, AccessFlags.Write); + ssrAccumPrev = passData.ssrAccumPrev = renderGraph.ImportTexture(hdCamera.GetPreviousFrameRT((int)HDCameraFrameHistoryType.ScreenSpaceReflectionAccumulation)); + builder.UseTexture(passData.ssrAccumPrev, AccessFlags.Write); } else { - passData.ssrAccum = builder.WriteTexture(renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) - { format = GraphicsFormat.R16G16B16A16_SFloat, clearBuffer = !useAsync, clearColor = Color.clear, enableRandomWrite = true, name = "SSR_Lighting_Texture" })); + passData.ssrAccum = renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) + { format = GraphicsFormat.R16G16B16A16_SFloat, clearBuffer = !useAsync, clearColor = Color.clear, enableRandomWrite = true, name = "SSR_Lighting_Texture" }); + builder.UseTexture(passData.ssrAccum, AccessFlags.Write); } + builder.AllowGlobalStateModification(true); + builder.SetRenderFunc( - (RenderSSRPassData data, RenderGraphContext ctx) => + (RenderSSRPassData data, ComputeGraphContext ctx) => { var cs = data.ssrCS; ConstantBuffer.Push(ctx.cmd, data.cb, cs, HDShaderIDs._ShaderVariablesScreenSpaceReflection); - BlueNoise.BindDitheredTextureSet(ctx.cmd, data.blueNoise.DitheredTextureSet1SPP()); + + BlueNoise.BindDitheredTextureSet(ctx.cmd, data.blueNoiseResources); CoreUtils.SetKeyword(ctx.cmd, "SSR_APPROX", !data.usePBRAlgo); CoreUtils.SetKeyword(ctx.cmd, "DEPTH_SOURCE_NOT_FROM_MIP_CHAIN", data.transparentSSR); @@ -1241,9 +1295,9 @@ TextureHandle RenderSSR(RenderGraph renderGraph, RTHandle stencilBuffer = data.stencilBuffer; if (stencilBuffer.rt.stencilFormat == GraphicsFormat.None) // We are accessing MSAA resolved version and not the depth stencil buffer directly. - ctx.cmd.SetComputeTextureParam(cs, data.tracingKernel, HDShaderIDs._StencilTexture, stencilBuffer); + ctx.cmd.SetComputeTextureParam(cs, data.tracingKernel, HDShaderIDs._StencilTexture, data.stencilBuffer); else - ctx.cmd.SetComputeTextureParam(cs, data.tracingKernel, HDShaderIDs._StencilTexture, stencilBuffer, 0, RenderTextureSubElement.Stencil); + ctx.cmd.SetComputeTextureParam(cs, data.tracingKernel, HDShaderIDs._StencilTexture, data.stencilBuffer, 0, RenderTextureSubElement.Stencil); //ctx.cmd.SetComputeBufferParam(cs, data.tracingKernel, HDShaderIDs._CoarseStencilBuffer, data.coarseStencilBuffer); ctx.cmd.SetComputeBufferParam(cs, data.tracingKernel, HDShaderIDs._DepthPyramidMipLevelOffsets, data.offsetBufferData); @@ -1361,17 +1415,19 @@ TextureHandle RenderSSR(RenderGraph renderGraph, } }); - if (usePBRAlgo) - { - PushFullScreenDebugTexture(renderGraph, passData.ssrAccum, FullScreenDebugMode.ScreenSpaceReflectionsAccum); - PushFullScreenDebugTexture(renderGraph, passData.ssrAccumPrev, FullScreenDebugMode.ScreenSpaceReflectionsPrev); - } + result = passData.ssrAccum; - PushFullScreenDebugTexture(renderGraph, passData.ssrAccum, FullScreenDebugMode.ScreenSpaceReflectionSpeedRejection); + } - result = passData.ssrAccum; + if (usePBRAlgo) + { + PushFullScreenDebugTexture(renderGraph, ssrAccum, FullScreenDebugMode.ScreenSpaceReflectionsAccum); + PushFullScreenDebugTexture(renderGraph, ssrAccumPrev, FullScreenDebugMode.ScreenSpaceReflectionsPrev); } + if (ssrAccum.IsValid()) + PushFullScreenDebugTexture(renderGraph, ssrAccum, FullScreenDebugMode.ScreenSpaceReflectionSpeedRejection); + if (!hdCamera.colorPyramidHistoryIsValid) { result = renderGraph.defaultResources.blackTextureXR; @@ -1415,7 +1471,7 @@ TextureHandle RenderContactShadows(RenderGraph renderGraph, HDCamera hdCamera, T return renderGraph.defaultResources.blackUIntTextureXR; TextureHandle result; - using (var builder = renderGraph.AddRenderPass("Contact Shadows", out var passData)) + using (var builder = renderGraph.AddComputePass("Contact Shadows", out var passData)) { builder.EnableAsyncCompute(hdCamera.frameSettings.ContactShadowsRunsAsync()); @@ -1461,15 +1517,18 @@ TextureHandle RenderContactShadows(RenderGraph renderGraph, HDCamera hdCamera, T passData.depthTextureParameterName = msaa ? HDShaderIDs._CameraDepthValuesTexture : HDShaderIDs._CameraDepthTexture; passData.lightLoopLightData = m_LightLoopLightData; - passData.lightList = builder.ReadBuffer(lightLists.lightList); - passData.depthTexture = builder.ReadTexture(depthTexture); - passData.contactShadowsTexture = builder.WriteTexture(renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) - { format = GraphicsFormat.R32_UInt, enableRandomWrite = true, clearBuffer = clearBuffer, clearColor = Color.clear, name = "ContactShadowsBuffer" })); + passData.lightList = lightLists.lightList; + builder.UseBuffer(passData.lightList, AccessFlags.Read); + passData.depthTexture = depthTexture; + builder.UseTexture(passData.depthTexture, AccessFlags.Read); + passData.contactShadowsTexture = renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) + { format = GraphicsFormat.R32_UInt, enableRandomWrite = true, clearBuffer = clearBuffer, clearColor = Color.clear, name = "ContactShadowsBuffer" }); + builder.UseTexture(passData.contactShadowsTexture, AccessFlags.Write); result = passData.contactShadowsTexture; builder.SetRenderFunc( - (RenderContactShadowPassData data, RenderGraphContext ctx) => + (RenderContactShadowPassData data, ComputeGraphContext ctx) => { ctx.cmd.SetComputeVectorParam(data.contactShadowsCS, HDShaderIDs._ContactShadowParamsParameters, data.params1); ctx.cmd.SetComputeVectorParam(data.contactShadowsCS, HDShaderIDs._ContactShadowParamsParameters2, data.params2); @@ -1501,7 +1560,7 @@ TextureHandle RenderContactShadows(RenderGraph renderGraph, HDCamera hdCamera, T ctx.cmd.SetRayTracingTextureParam(data.contactShadowsRTS, HDShaderIDs._DepthTexture, data.depthTexture); ctx.cmd.SetRayTracingTextureParam(data.contactShadowsRTS, HDShaderIDs._ContactShadowTextureUAV, data.contactShadowsTexture); - ctx.cmd.DispatchRays(data.contactShadowsRTS, "RayGenContactShadows", (uint)data.actualWidth, (uint)data.actualHeight, (uint)data.viewCount); + ctx.cmd.DispatchRays(data.contactShadowsRTS, "RayGenContactShadows", (uint)data.actualWidth, (uint)data.actualHeight, (uint)data.viewCount, null); } }); } diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDRenderPipeline.PostProcess.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDRenderPipeline.PostProcess.cs index 9cbf08dfde1..dd290abf7ca 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDRenderPipeline.PostProcess.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDRenderPipeline.PostProcess.cs @@ -811,7 +811,7 @@ class RestoreNonJitteredPassData void RestoreNonjitteredMatrices(RenderGraph renderGraph, HDCamera hdCamera) { - using (var builder = renderGraph.AddRenderPass("Restore Non-Jittered Camera Matrices", out var passData)) + using (var builder = renderGraph.AddUnsafePass("Restore Non-Jittered Camera Matrices", out var passData)) { // Note about AfterPostProcess and TAA: // When TAA is enabled rendering is jittered and then resolved during the post processing pass. @@ -823,7 +823,9 @@ void RestoreNonjitteredMatrices(RenderGraph renderGraph, HDCamera hdCamera) passData.globalCB = m_ShaderVariablesGlobalCB; - builder.SetRenderFunc((RestoreNonJitteredPassData data, RenderGraphContext ctx) => + builder.AllowGlobalStateModification(true); + + builder.SetRenderFunc((RestoreNonJitteredPassData data, UnsafeGraphContext ctx) => { ConstantBuffer.PushGlobal(ctx.cmd, data.globalCB, HDShaderIDs._ShaderVariablesGlobal); }); @@ -841,17 +843,18 @@ class UpscalerColorMaskPassData TextureHandle UpscalerColorMaskPass(RenderGraph renderGraph, HDCamera hdCamera, TextureHandle inputDepth) { TextureHandle output = TextureHandle.nullHandle; - using (var builder = renderGraph.AddRenderPass("Upscaler Color Mask", out var passData, ProfilingSampler.Get(HDProfileId.UpscalerColorMask))) + using (var builder = renderGraph.AddUnsafePass("Upscaler Color Mask", out var passData, ProfilingSampler.Get(HDProfileId.UpscalerColorMask))) { - output = builder.UseColorBuffer(renderGraph.CreateTexture( + output = renderGraph.CreateTexture( new TextureDesc(Vector2.one, true, true) { format = GraphicsFormat.R8G8B8A8_UNorm, clearBuffer = true, clearColor = Color.black, name = "Upscaler Color Mask" - }), 0); - builder.UseDepthBuffer(inputDepth, DepthAccess.Read); + }); + builder.SetRenderAttachment(output, 0); + builder.SetRenderAttachmentDepth(inputDepth, AccessFlags.Read); passData.colorMaskMaterial = m_UpscalerBiasColorMaskMaterial; @@ -859,7 +862,7 @@ TextureHandle UpscalerColorMaskPass(RenderGraph renderGraph, HDCamera hdCamera, passData.destHeight = hdCamera.actualHeight; builder.SetRenderFunc( - (UpscalerColorMaskPassData data, RenderGraphContext ctx) => + (UpscalerColorMaskPassData data, UnsafeGraphContext ctx) => { Rect targetViewport = new Rect(0.0f, 0.0f, data.destWidth, data.destHeight); data.colorMaskMaterial.SetInt(HDShaderIDs._StencilMask, (int)StencilUsage.ExcludeFromTUAndAA); @@ -905,7 +908,7 @@ TextureHandle DoDLSSPass( RenderGraph renderGraph, HDCamera hdCamera, TextureHandle source, TextureHandle depthBuffer, TextureHandle motionVectors, TextureHandle biasColorMask) { - using (var builder = renderGraph.AddRenderPass("Deep Learning Super Sampling", out var passData, ProfilingSampler.Get(HDProfileId.DeepLearningSuperSampling))) + using (var builder = renderGraph.AddUnsafePass("Deep Learning Super Sampling", out var passData, ProfilingSampler.Get(HDProfileId.DeepLearningSuperSampling))) { hdCamera.RequestGpuExposureValue(GetExposureTexture(hdCamera)); passData.parameters = new DLSSPass.Parameters(); @@ -917,10 +920,14 @@ TextureHandle DoDLSSPass( passData.parameters.preExposure = Mathf.Clamp(hdCamera.GpuExposureValue(), 0.20f, 2.0f); var viewHandles = new UpscalerResources.ViewResourceHandles(); - viewHandles.source = builder.ReadTexture(source); - viewHandles.output = builder.WriteTexture(GetPostprocessUpsampledOutputHandle(hdCamera, renderGraph, "DLSS destination")); - viewHandles.depth = builder.ReadTexture(depthBuffer); - viewHandles.motionVectors = builder.ReadTexture(motionVectors); + viewHandles.source = source; + builder.UseTexture(viewHandles.source, AccessFlags.Read); + viewHandles.output = GetPostprocessUpsampledOutputHandle(hdCamera, renderGraph, "DLSS destination"); + builder.UseTexture(viewHandles.output, AccessFlags.Write); + viewHandles.depth = depthBuffer; + builder.UseTexture(viewHandles.depth, AccessFlags.Read); + viewHandles.motionVectors = motionVectors; + builder.UseTexture(viewHandles.motionVectors, AccessFlags.Read); // Note: exposure texture input // We skip providing exposureTexture since HDRP pre-applies exposure in GBuffer pass / light accumulation buffer, // and doesn't use it later on in tonemapping. DLSS docs mention this texture is needed if used in tonemapping later on. @@ -928,7 +935,10 @@ TextureHandle DoDLSSPass( // it usually exacerbates ghosting within the HDRP use context. if (biasColorMask.IsValid()) - viewHandles.biasColorMask = builder.ReadTexture(biasColorMask); + { + viewHandles.biasColorMask = biasColorMask; + builder.UseTexture(viewHandles.biasColorMask, AccessFlags.Read); + } else viewHandles.biasColorMask = TextureHandle.nullHandle; @@ -938,9 +948,9 @@ TextureHandle DoDLSSPass( passData.pass = m_DLSSPass; builder.SetRenderFunc( - (DLSSData data, RenderGraphContext ctx) => + (DLSSData data, UnsafeGraphContext ctx) => { - data.pass.Render(data.parameters, UpscalerResources.GetCameraResources(data.resourceHandles), ctx.cmd); + data.pass.Render(data.parameters, UpscalerResources.GetCameraResources(data.resourceHandles), CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd)); }); } return source; @@ -980,20 +990,27 @@ TextureHandle DoFSR2Pass( RenderGraph renderGraph, HDCamera hdCamera, TextureHandle source, TextureHandle depthBuffer, TextureHandle motionVectors, TextureHandle biasColorMask) { - using (var builder = renderGraph.AddRenderPass("Fidelity FX 2 Super Resolution", out var passData, ProfilingSampler.Get(HDProfileId.FSR2))) + using (var builder = renderGraph.AddUnsafePass("Fidelity FX 2 Super Resolution", out var passData, ProfilingSampler.Get(HDProfileId.FSR2))) { passData.parameters = new FSR2Pass.Parameters(); passData.parameters.hdCamera = hdCamera; passData.parameters.drsSettings = currentAsset.currentPlatformRenderPipelineSettings.dynamicResolutionSettings; var viewHandles = new UpscalerResources.ViewResourceHandles(); - viewHandles.source = builder.ReadTexture(source); - viewHandles.output = builder.WriteTexture(GetPostprocessUpsampledOutputHandle(hdCamera, renderGraph, "FSR2 destination")); - viewHandles.depth = builder.ReadTexture(depthBuffer); - viewHandles.motionVectors = builder.ReadTexture(motionVectors); + viewHandles.source = source; + builder.UseTexture(viewHandles.source, AccessFlags.Read); + viewHandles.output = GetPostprocessUpsampledOutputHandle(hdCamera, renderGraph, "FSR2 destination"); + builder.UseTexture(viewHandles.output, AccessFlags.Write); + viewHandles.depth = depthBuffer; + builder.UseTexture(viewHandles.depth, AccessFlags.Read); + viewHandles.motionVectors = motionVectors; + builder.UseTexture(viewHandles.motionVectors, AccessFlags.Read); if (biasColorMask.IsValid()) - viewHandles.biasColorMask = builder.ReadTexture(biasColorMask); + { + viewHandles.biasColorMask = biasColorMask; + builder.UseTexture(viewHandles.biasColorMask, AccessFlags.Read); + } else viewHandles.biasColorMask = TextureHandle.nullHandle; @@ -1003,9 +1020,9 @@ TextureHandle DoFSR2Pass( passData.pass = m_FSR2Pass; builder.SetRenderFunc( - (FSR2Data data, RenderGraphContext ctx) => + (FSR2Data data, UnsafeGraphContext ctx) => { - data.pass.Render(data.parameters, UpscalerResources.GetCameraResources(data.resourceHandles), ctx.cmd); + data.pass.Render(data.parameters, UpscalerResources.GetCameraResources(data.resourceHandles), CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd)); }); } return source; @@ -1029,17 +1046,19 @@ TextureHandle DoCopyAlpha(RenderGraph renderGraph, HDCamera hdCamera, TextureHan // Save the alpha and apply it back into the final pass if rendering in fp16 and post-processing in r11g11b10 if (m_KeepAlpha) { - using (var builder = renderGraph.AddRenderPass("Alpha Copy", out var passData, ProfilingSampler.Get(HDProfileId.AlphaCopy))) + using (var builder = renderGraph.AddUnsafePass("Alpha Copy", out var passData, ProfilingSampler.Get(HDProfileId.AlphaCopy))) { passData.hdCamera = hdCamera; passData.copyAlphaCS = runtimeShaders.copyAlphaCS; passData.copyAlphaKernel = passData.copyAlphaCS.FindKernel("KMain"); - passData.source = builder.ReadTexture(source); - passData.outputAlpha = builder.WriteTexture(renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) - { name = "Alpha Channel Copy", format = GraphicsFormat.R16_SFloat, enableRandomWrite = true })); + passData.source = source; + builder.UseTexture(passData.source, AccessFlags.Read); + passData.outputAlpha = renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) + { name = "Alpha Channel Copy", format = GraphicsFormat.R16_SFloat, enableRandomWrite = true }); + builder.UseTexture(passData.outputAlpha, AccessFlags.Write); builder.SetRenderFunc( - (AlphaCopyPassData data, RenderGraphContext ctx) => + (AlphaCopyPassData data, UnsafeGraphContext ctx) => { ctx.cmd.SetComputeTextureParam(data.copyAlphaCS, data.copyAlphaKernel, HDShaderIDs._InputTexture, data.source); ctx.cmd.SetComputeTextureParam(data.copyAlphaCS, data.copyAlphaKernel, HDShaderIDs._OutputTexture, data.outputAlpha); @@ -1081,7 +1100,7 @@ TextureHandle StopNaNsPass(RenderGraph renderGraph, HDCamera hdCamera, TextureHa #endif if (stopNaNs) { - using (var builder = renderGraph.AddRenderPass("Stop NaNs", out var passData, ProfilingSampler.Get(HDProfileId.StopNaNs))) + using (var builder = renderGraph.AddUnsafePass("Stop NaNs", out var passData, ProfilingSampler.Get(HDProfileId.StopNaNs))) { passData.nanKillerCS = runtimeShaders.nanKillerCS; passData.nanKillerKernel = passData.nanKillerCS.FindKernel("KMain"); @@ -1091,11 +1110,13 @@ TextureHandle StopNaNsPass(RenderGraph renderGraph, HDCamera hdCamera, TextureHa passData.nanKillerCS.shaderKeywords = null; if (PostProcessEnableAlpha(hdCamera)) passData.nanKillerCS.EnableKeyword("ENABLE_ALPHA"); - passData.source = builder.ReadTexture(source); - passData.destination = builder.WriteTexture(GetPostprocessOutputHandle(hdCamera, renderGraph, "Stop NaNs Destination")); + passData.source = source; + builder.UseTexture(passData.source, AccessFlags.Read); + passData.destination = GetPostprocessOutputHandle(hdCamera, renderGraph, "Stop NaNs Destination"); + builder.UseTexture(passData.destination, AccessFlags.Write); builder.SetRenderFunc( - (StopNaNPassData data, RenderGraphContext ctx) => + (StopNaNPassData data, UnsafeGraphContext ctx) => { ctx.cmd.SetComputeTextureParam(data.nanKillerCS, data.nanKillerKernel, HDShaderIDs._InputTexture, data.source); ctx.cmd.SetComputeTextureParam(data.nanKillerCS, data.nanKillerKernel, HDShaderIDs._OutputTexture, data.destination); @@ -1311,7 +1332,7 @@ void PrepareExposureCurveData(out float min, out float max) m_ExposureCurveTexture.Apply(); } - void PrepareExposurePassData(RenderGraph renderGraph, RenderGraphBuilder builder, HDCamera hdCamera, TextureHandle source, DynamicExposureData passData) + void PrepareExposurePassData(RenderGraph renderGraph, IUnsafeRenderGraphBuilder builder, HDCamera hdCamera, TextureHandle source, DynamicExposureData passData) { passData.exposureCS = runtimeShaders.exposureCS; passData.histogramExposureCS = runtimeShaders.histogramExposureCS; @@ -1395,9 +1416,12 @@ void PrepareExposurePassData(RenderGraph renderGraph, RenderGraphBuilder builder GrabExposureRequiredTextures(hdCamera, out var prevExposure, out var nextExposure); - passData.source = builder.ReadTexture(source); - passData.prevExposure = builder.ReadTexture(renderGraph.ImportTexture(prevExposure)); - passData.nextExposure = builder.WriteTexture(renderGraph.ImportTexture(nextExposure)); + passData.source = source; + builder.UseTexture(passData.source, AccessFlags.Read); + passData.prevExposure = renderGraph.ImportTexture(prevExposure); + builder.UseTexture(passData.prevExposure, AccessFlags.Read); + passData.nextExposure = renderGraph.ImportTexture(nextExposure); + builder.UseTexture(passData.nextExposure, AccessFlags.Write); } void GrabExposureRequiredTextures(HDCamera camera, out RTHandle prevExposure, out RTHandle nextExposure) @@ -1567,17 +1591,18 @@ TextureHandle DynamicExposurePass(RenderGraph renderGraph, HDCamera hdCamera, Te TextureHandle exposureForImmediateApplication = TextureHandle.nullHandle; if (!IsExposureFixed(hdCamera) && hdCamera.exposureControlFS) { - using (var builder = renderGraph.AddRenderPass("Dynamic Exposure", out var passData, ProfilingSampler.Get(HDProfileId.DynamicExposure))) + using (var builder = renderGraph.AddUnsafePass("Dynamic Exposure", out var passData, ProfilingSampler.Get(HDProfileId.DynamicExposure))) { PrepareExposurePassData(renderGraph, builder, hdCamera, source, passData); if (m_Exposure.mode.value == ExposureMode.AutomaticHistogram) { - passData.exposureDebugData = builder.WriteTexture(renderGraph.ImportTexture(m_DebugExposureData)); + passData.exposureDebugData = renderGraph.ImportTexture(m_DebugExposureData); + builder.UseTexture(passData.exposureDebugData, AccessFlags.Write); builder.SetRenderFunc( - (DynamicExposureData data, RenderGraphContext ctx) => + (DynamicExposureData data, UnsafeGraphContext ctx) => { - DoHistogramBasedExposure(data, ctx.cmd); + DoHistogramBasedExposure(data, CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd)); }); exposureForImmediateApplication = passData.nextExposure; } @@ -1589,9 +1614,9 @@ TextureHandle DynamicExposurePass(RenderGraph renderGraph, HDCamera hdCamera, Te { format = GraphicsFormat.R16G16_SFloat, enableRandomWrite = true, name = "Average Luminance Temp 32" }); builder.SetRenderFunc( - (DynamicExposureData data, RenderGraphContext ctx) => + (DynamicExposureData data, UnsafeGraphContext ctx) => { - DoDynamicExposure(data, ctx.cmd); + DoDynamicExposure(data, CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd)); }); exposureForImmediateApplication = passData.nextExposure; } @@ -1599,7 +1624,7 @@ TextureHandle DynamicExposurePass(RenderGraph renderGraph, HDCamera hdCamera, Te if (hdCamera.resetPostProcessingHistory) { - using (var builder = renderGraph.AddRenderPass("Apply Exposure", out var passData, ProfilingSampler.Get(HDProfileId.ApplyExposure))) + using (var builder = renderGraph.AddUnsafePass("Apply Exposure", out var passData, ProfilingSampler.Get(HDProfileId.ApplyExposure))) { passData.applyExposureCS = runtimeShaders.applyExposureCS; passData.applyExposureCS.shaderKeywords = null; @@ -1613,14 +1638,16 @@ TextureHandle DynamicExposurePass(RenderGraph renderGraph, HDCamera hdCamera, Te passData.width = hdCamera.actualWidth; passData.height = hdCamera.actualHeight; passData.viewCount = hdCamera.viewCount; - passData.source = builder.ReadTexture(source); + passData.source = source; passData.prevExposure = exposureForImmediateApplication; + passData.destination = GetPostprocessOutputHandle(hdCamera, renderGraph, "Apply Exposure Destination"); - TextureHandle dest = GetPostprocessOutputHandle(hdCamera, renderGraph, "Apply Exposure Destination"); - passData.destination = builder.WriteTexture(dest); + builder.UseTexture(passData.source, AccessFlags.Read); + builder.UseTexture(passData.prevExposure, AccessFlags.Read); + builder.UseTexture(passData.destination, AccessFlags.Write); builder.SetRenderFunc( - (ApplyExposureData data, RenderGraphContext ctx) => + (ApplyExposureData data, UnsafeGraphContext ctx) => { ctx.cmd.SetComputeTextureParam(data.applyExposureCS, data.applyExposureKernel, HDShaderIDs._ExposureTexture, data.prevExposure); ctx.cmd.SetComputeTextureParam(data.applyExposureCS, data.applyExposureKernel, HDShaderIDs._InputTexture, data.source); @@ -1690,26 +1717,32 @@ bool DoCustomPostProcess(RenderGraph renderGraph, HDCamera hdCamera, ref Texture if (hdCamera.camera.cameraType != CameraType.SceneView || customPP.visibleInSceneView) { - using (var builder = renderGraph.AddRenderPass(customPP.passName, out var passData)) + using (var builder = renderGraph.AddUnsafePass(customPP.passName, out var passData)) { // TODO RENDERGRAPH // These buffer are always bound in custom post process for now. // We don't have the information that they are being used or not. // Until we can upgrade CustomPP to be full render graph, we'll always read and bind them globally. - passData.depthBuffer = builder.ReadTexture(depthBuffer); - passData.normalBuffer = builder.ReadTexture(normalBuffer); - passData.motionVecTexture = builder.ReadTexture(motionVectors); - - passData.source = builder.ReadTexture(source); - passData.destination = builder.UseColorBuffer(renderGraph.CreateTexture(new TextureDesc(Vector2.one, IsDynamicResUpscaleTargetEnabled(), true) - { format = GetPostprocessTextureFormat(hdCamera), enableRandomWrite = true, name = "CustomPostProcesDestination" }), 0); + passData.depthBuffer = depthBuffer; + builder.UseTexture(passData.depthBuffer, AccessFlags.Read); + passData.normalBuffer = normalBuffer; + builder.UseTexture(passData.normalBuffer, AccessFlags.Read); + passData.motionVecTexture = motionVectors; + builder.UseTexture(passData.motionVecTexture, AccessFlags.Read); + + passData.source = source; + builder.UseTexture(passData.source, AccessFlags.Read); + passData.destination = renderGraph.CreateTexture(new TextureDesc(Vector2.one, IsDynamicResUpscaleTargetEnabled(), true) + { format = GetPostprocessTextureFormat(hdCamera), enableRandomWrite = true, name = "CustomPostProcesDestination" }); + builder.SetRenderAttachment(passData.destination, 0); passData.hdCamera = hdCamera; passData.customPostProcess = customPP; passData.postProcessScales = new Vector4(hdCamera.postProcessRTScales.x, hdCamera.postProcessRTScales.y, hdCamera.postProcessRTScalesHistory.z, hdCamera.postProcessRTScalesHistory.w); passData.postProcessViewportSize = postProcessViewportSize; builder.SetRenderFunc( - (CustomPostProcessData data, RenderGraphContext ctx) => + (CustomPostProcessData data, UnsafeGraphContext ctx) => { + var natCmd = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); var srcRt = (RTHandle)data.source; var dstRt = (RTHandle)data.destination; @@ -1726,12 +1759,12 @@ bool DoCustomPostProcess(RenderGraph renderGraph, HDCamera hdCamera, ref Texture dstRt.SetCustomHandleProperties(newProps); // Temporary: see comment above - ctx.cmd.SetGlobalTexture(HDShaderIDs._CameraDepthTexture, data.depthBuffer); - ctx.cmd.SetGlobalTexture(HDShaderIDs._NormalBufferTexture, data.normalBuffer); - ctx.cmd.SetGlobalTexture(HDShaderIDs._CameraMotionVectorsTexture, data.motionVecTexture); - ctx.cmd.SetGlobalTexture(HDShaderIDs._CustomPostProcessInput, data.source); + natCmd.SetGlobalTexture(HDShaderIDs._CameraDepthTexture, data.depthBuffer); + natCmd.SetGlobalTexture(HDShaderIDs._NormalBufferTexture, data.normalBuffer); + natCmd.SetGlobalTexture(HDShaderIDs._CameraMotionVectorsTexture, data.motionVecTexture); + natCmd.SetGlobalTexture(HDShaderIDs._CustomPostProcessInput, data.source); - data.customPostProcess.Render(ctx.cmd, data.hdCamera, data.source, data.destination); + data.customPostProcess.Render(natCmd, data.hdCamera, data.source, data.destination); srcRt.ClearCustomHandleProperties(); dstRt.ClearCustomHandleProperties(); @@ -1876,7 +1909,7 @@ static void GetNeighbourOffsets(ref Vector4[] neighbourOffsets) } } - void PrepareTAAPassData(RenderGraph renderGraph, RenderGraphBuilder builder, TemporalAntiAliasingData passData, HDCamera camera, + void PrepareTAAPassData(RenderGraph renderGraph, IUnsafeRenderGraphBuilder builder, TemporalAntiAliasingData passData, HDCamera camera, TextureHandle depthBuffer, TextureHandle motionVectors, TextureHandle depthBufferMipChain, TextureHandle sourceTexture, TextureHandle stencilTexture, bool postDoF, string outputName) { passData.resetPostProcessingHistory = camera.resetPostProcessingHistory; @@ -1995,24 +2028,36 @@ void PrepareTAAPassData(RenderGraph renderGraph, RenderGraphBuilder builder, Tem if (TAAU || runsAfterUpscale) passData.previousScreenSize = new Vector4(camera.finalViewport.width, camera.finalViewport.height, 1.0f / camera.finalViewport.width, 1.0f / camera.finalViewport.height); - passData.source = builder.ReadTexture(sourceTexture); - passData.depthBuffer = builder.ReadTexture(depthBuffer); - passData.motionVecTexture = builder.ReadTexture(motionVectors); - passData.depthMipChain = builder.ReadTexture(depthBufferMipChain); - passData.prevHistory = builder.ReadTexture(renderGraph.ImportTexture(prevHistory)); + passData.source = sourceTexture; + builder.UseTexture(passData.source, AccessFlags.Read); + passData.depthBuffer = depthBuffer; + builder.UseTexture(passData.depthBuffer, AccessFlags.Read); + passData.motionVecTexture = motionVectors; + builder.UseTexture(passData.motionVecTexture, AccessFlags.Read); + passData.depthMipChain = depthBufferMipChain; + builder.UseTexture(passData.depthMipChain, AccessFlags.Read); + passData.prevHistory = renderGraph.ImportTexture(prevHistory); + builder.UseTexture(passData.prevHistory, AccessFlags.Read); passData.resetPostProcessingHistory = passData.resetPostProcessingHistory || !validHistory; if (passData.resetPostProcessingHistory) { - passData.prevHistory = builder.WriteTexture(passData.prevHistory); + builder.UseTexture(passData.prevHistory, AccessFlags.Write); } - passData.nextHistory = builder.WriteTexture(renderGraph.ImportTexture(nextHistory)); + passData.nextHistory = renderGraph.ImportTexture(nextHistory); + builder.UseTexture(passData.nextHistory, AccessFlags.Write); // Note: In case we run TAA for a second time (post-dof), we can use the same velocity history (and not write the output) RTHandle prevMVLen, nextMVLen; GrabVelocityMagnitudeHistoryTextures(camera, out prevMVLen, out nextMVLen); - passData.prevMVLen = builder.ReadTexture(renderGraph.ImportTexture(prevMVLen)); - passData.nextMVLen = (!postDoF) ? builder.WriteTexture(renderGraph.ImportTexture(nextMVLen)) : TextureHandle.nullHandle; + passData.prevMVLen = renderGraph.ImportTexture(prevMVLen); + builder.UseTexture(passData.prevMVLen, AccessFlags.Read); + passData.nextMVLen = TextureHandle.nullHandle; + if(!postDoF) + { + passData.nextMVLen = renderGraph.ImportTexture(nextMVLen); + builder.UseTexture(passData.nextMVLen, AccessFlags.Write); + } TextureHandle dest; if (TAAU && DynamicResolutionHandler.instance.HardwareDynamicResIsEnabled()) @@ -2023,7 +2068,8 @@ void PrepareTAAPassData(RenderGraph renderGraph, RenderGraphBuilder builder, Tem { dest = GetPostprocessOutputHandle(camera, renderGraph, outputName); } - passData.destination = builder.WriteTexture(dest); + passData.destination = dest; + builder.UseTexture(passData.destination, AccessFlags.Write); bool needToUseCurrFrameSizeForHistory = camera.resetPostProcessingHistory || TAAU != camera.previousFrameWasTAAUpsampled; @@ -2047,7 +2093,8 @@ void PrepareTAAPassData(RenderGraph renderGraph, RenderGraphBuilder builder, Tem float stdDev = 0.4f; passData.taauParams = new Vector4(1.0f / (stdDev * stdDev), 1.0f / resScale, 0.5f / resScale, resScale); - passData.stencilBuffer = builder.ReadTexture(stencilTexture); + passData.stencilBuffer = stencilTexture; + builder.UseTexture(passData.stencilBuffer, AccessFlags.Read); // With MSAA enabled we really don't support TAA (see docs), it should mostly work but stuff like stencil tests won't when manually sampled. // As a result we just set stencil to black. This flag can be used in the future to make proper support for the MSAA+TAA combo. passData.msaaIsEnabled = camera.msaaEnabled; @@ -2055,13 +2102,14 @@ void PrepareTAAPassData(RenderGraph renderGraph, RenderGraphBuilder builder, Tem TextureHandle DoTemporalAntialiasing(RenderGraph renderGraph, HDCamera hdCamera, TextureHandle depthBuffer, TextureHandle motionVectors, TextureHandle depthBufferMipChain, TextureHandle sourceTexture, TextureHandle stencilBuffer, bool postDoF, string outputName) { - using (var builder = renderGraph.AddRenderPass("Temporal Anti-Aliasing", out var passData, ProfilingSampler.Get(HDProfileId.TemporalAntialiasing))) + using (var builder = renderGraph.AddUnsafePass("Temporal Anti-Aliasing", out var passData, ProfilingSampler.Get(HDProfileId.TemporalAntialiasing))) { PrepareTAAPassData(renderGraph, builder, passData, hdCamera, depthBuffer, motionVectors, depthBufferMipChain, sourceTexture, stencilBuffer, postDoF, outputName); builder.SetRenderFunc( - (TemporalAntiAliasingData data, RenderGraphContext ctx) => + (TemporalAntiAliasingData data, UnsafeGraphContext ctx) => { + var natCmd = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); RTHandle source = data.source; RTHandle nextMVLenTexture = data.nextMVLen; RTHandle prevMVLenTexture = data.prevMVLen; @@ -2081,13 +2129,13 @@ TextureHandle DoTemporalAntialiasing(RenderGraph renderGraph, HDCamera hdCamera, if (data.runsTAAU || data.runsAfterUpscale) { Rect r = data.finalViewport; - HDUtils.DrawFullScreen(ctx.cmd, r, data.temporalAAMaterial, data.prevHistory, historyMpb, copyHistoryPass); - HDUtils.DrawFullScreen(ctx.cmd, r, data.temporalAAMaterial, data.nextHistory, historyMpb, copyHistoryPass); + HDUtils.DrawFullScreen(natCmd, r, data.temporalAAMaterial, data.prevHistory, historyMpb, copyHistoryPass); + HDUtils.DrawFullScreen(natCmd, r, data.temporalAAMaterial, data.nextHistory, historyMpb, copyHistoryPass); } else { - HDUtils.DrawFullScreen(ctx.cmd, data.temporalAAMaterial, data.prevHistory, historyMpb, copyHistoryPass); - HDUtils.DrawFullScreen(ctx.cmd, data.temporalAAMaterial, data.nextHistory, historyMpb, copyHistoryPass); + HDUtils.DrawFullScreen(natCmd, data.temporalAAMaterial, data.prevHistory, historyMpb, copyHistoryPass); + HDUtils.DrawFullScreen(natCmd, data.temporalAAMaterial, data.nextHistory, historyMpb, copyHistoryPass); } } @@ -2117,17 +2165,17 @@ TextureHandle DoTemporalAntialiasing(RenderGraph renderGraph, HDCamera hdCamera, if (data.runsTAAU || data.runsAfterUpscale) { - CoreUtils.SetRenderTarget(ctx.cmd, data.destination); + CoreUtils.SetRenderTarget(natCmd, data.destination); } else { - CoreUtils.SetRenderTarget(ctx.cmd, data.destination, data.depthBuffer); + CoreUtils.SetRenderTarget(natCmd, data.destination, data.depthBuffer); } - ctx.cmd.SetRandomWriteTarget(1, data.nextHistory); + natCmd.SetRandomWriteTarget(1, data.nextHistory); if (nextMVLenTexture != null && data.motionVectorRejection) { - ctx.cmd.SetRandomWriteTarget(2, nextMVLenTexture); + natCmd.SetRandomWriteTarget(2, nextMVLenTexture); } Rect rect = data.finalViewport; @@ -2141,15 +2189,15 @@ TextureHandle DoTemporalAntialiasing(RenderGraph renderGraph, HDCamera hdCamera, else mpb.SetTexture(HDShaderIDs._StencilTexture, data.stencilBuffer, RenderTextureSubElement.Stencil); - HDUtils.DrawFullScreen(ctx.cmd, rect, data.temporalAAMaterial, data.destination, mpb, taauPass); + HDUtils.DrawFullScreen(natCmd, rect, data.temporalAAMaterial, data.destination, mpb, taauPass); } else { - ctx.cmd.SetViewport(rect); - ctx.cmd.DrawProcedural(Matrix4x4.identity, data.temporalAAMaterial, taaPass, MeshTopology.Triangles, 3, 1, mpb); - ctx.cmd.DrawProcedural(Matrix4x4.identity, data.temporalAAMaterial, excludeTaaPass, MeshTopology.Triangles, 3, 1, mpb); + natCmd.SetViewport(rect); + natCmd.DrawProcedural(Matrix4x4.identity, data.temporalAAMaterial, taaPass, MeshTopology.Triangles, 3, 1, mpb); + natCmd.DrawProcedural(Matrix4x4.identity, data.temporalAAMaterial, excludeTaaPass, MeshTopology.Triangles, 3, 1, mpb); } - ctx.cmd.ClearRandomWriteTargets(); + natCmd.ClearRandomWriteTargets(); }); return passData.destination; @@ -2175,7 +2223,7 @@ class SMAAData TextureHandle SMAAPass(RenderGraph renderGraph, HDCamera hdCamera, TextureHandle depthBuffer, TextureHandle source) { - using (var builder = renderGraph.AddRenderPass("Subpixel Morphological Anti-Aliasing", out var passData, ProfilingSampler.Get(HDProfileId.SMAA))) + using (var builder = renderGraph.AddUnsafePass("Subpixel Morphological Anti-Aliasing", out var passData, ProfilingSampler.Get(HDProfileId.SMAA))) { passData.smaaMaterial = m_SMAAMaterial; passData.smaaAreaTex = runtimeTextures.SMAAAreaTex; @@ -2199,19 +2247,24 @@ TextureHandle SMAAPass(RenderGraph renderGraph, HDCamera hdCamera, TextureHandle break; } - passData.source = builder.ReadTexture(source); - passData.depthBuffer = builder.ReadWriteTexture(depthBuffer); + passData.source = source; + builder.UseTexture(passData.source, AccessFlags.Read); + passData.depthBuffer = depthBuffer; + builder.UseTexture(passData.depthBuffer, AccessFlags.ReadWrite); passData.smaaEdgeTex = builder.CreateTransientTexture(new TextureDesc(Vector2.one, true, true) { format = GraphicsFormat.R8G8B8A8_UNorm, enableRandomWrite = true, clearBuffer = true, name = "SMAA Edge Texture" }); passData.smaaBlendTex = builder.CreateTransientTexture(new TextureDesc(Vector2.one, true, true) { format = GraphicsFormat.R8G8B8A8_UNorm, enableRandomWrite = true, clearBuffer = true, name = "SMAA Blend Texture" }); - TextureHandle dest = GetPostprocessOutputHandle(hdCamera, renderGraph, "SMAA Destination"); - passData.destination = builder.WriteTexture(dest); ; + passData.destination = GetPostprocessOutputHandle(hdCamera, renderGraph, "SMAA Destination"); + builder.UseTexture(passData.destination, AccessFlags.Write); + + builder.AllowGlobalStateModification(true); builder.SetRenderFunc( - (SMAAData data, RenderGraphContext ctx) => + (SMAAData data, UnsafeGraphContext ctx) => { + var natCmd = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); data.smaaMaterial.SetVector(HDShaderIDs._SMAARTMetrics, data.smaaRTMetrics); data.smaaMaterial.SetTexture(HDShaderIDs._SMAAAreaTex, data.smaaAreaTex); data.smaaMaterial.SetTexture(HDShaderIDs._SMAASearchTex, data.smaaSearchTex); @@ -2223,19 +2276,19 @@ TextureHandle SMAAPass(RenderGraph renderGraph, HDCamera hdCamera, TextureHandle // ----------------------------------------------------------------------------- // EdgeDetection stage - ctx.cmd.SetGlobalTexture(HDShaderIDs._InputTexture, data.source); - HDUtils.DrawFullScreen(ctx.cmd, data.smaaMaterial, data.smaaEdgeTex, data.depthBuffer, null, edgeDetectionPassIndex); + natCmd.SetGlobalTexture(HDShaderIDs._InputTexture, data.source); + HDUtils.DrawFullScreen(natCmd, data.smaaMaterial, data.smaaEdgeTex, data.depthBuffer, null, edgeDetectionPassIndex); // ----------------------------------------------------------------------------- // BlendWeights stage - ctx.cmd.SetGlobalTexture(HDShaderIDs._InputTexture, data.smaaEdgeTex); - HDUtils.DrawFullScreen(ctx.cmd, data.smaaMaterial, data.smaaBlendTex, data.depthBuffer, null, blendWeightsPassIndex); + natCmd.SetGlobalTexture(HDShaderIDs._InputTexture, data.smaaEdgeTex); + HDUtils.DrawFullScreen(natCmd, data.smaaMaterial, data.smaaBlendTex, data.depthBuffer, null, blendWeightsPassIndex); // ----------------------------------------------------------------------------- // NeighborhoodBlending stage - ctx.cmd.SetGlobalTexture(HDShaderIDs._InputTexture, data.source); + natCmd.SetGlobalTexture(HDShaderIDs._InputTexture, data.source); data.smaaMaterial.SetTexture(HDShaderIDs._SMAABlendTex, data.smaaBlendTex); - HDUtils.DrawFullScreen(ctx.cmd, data.smaaMaterial, data.destination, null, neighborhoodBlendingPassIndex); + HDUtils.DrawFullScreen(natCmd, data.smaaMaterial, data.destination, null, neighborhoodBlendingPassIndex); }); return passData.destination; @@ -3369,23 +3422,32 @@ TextureHandle DepthOfFieldPass(RenderGraph renderGraph, HDCamera hdCamera, Textu var prevCoCHandle = renderGraph.ImportTexture(prevCoC); var nextCoCHandle = renderGraph.ImportTexture(nextCoC); - using (var builder = renderGraph.AddRenderPass("Depth of Field", out var passData, ProfilingSampler.Get(HDProfileId.DepthOfField))) + using (var builder = renderGraph.AddUnsafePass("Depth of Field", out var passData, ProfilingSampler.Get(HDProfileId.DepthOfField))) { - passData.source = builder.ReadTexture(source); - passData.depthBuffer = builder.ReadTexture(depthBuffer); + passData.source = source; + builder.UseTexture(passData.source, AccessFlags.Read); + passData.depthBuffer = depthBuffer; + builder.UseTexture(passData.depthBuffer, AccessFlags.Read); passData.parameters = dofParameters; - passData.prevCoC = builder.ReadTexture(prevCoCHandle); - passData.nextCoC = builder.ReadWriteTexture(nextCoCHandle); + passData.prevCoC = prevCoCHandle; + builder.UseTexture(passData.prevCoC, AccessFlags.Read); + passData.nextCoC = nextCoCHandle; + builder.UseTexture(passData.nextCoC, AccessFlags.ReadWrite); if (hdCamera.msaaEnabled) - passData.depthMinMaxAvgMSAA = builder.ReadTexture(depthMinMaxAvgMSAA); + { + passData.depthMinMaxAvgMSAA = depthMinMaxAvgMSAA; + builder.UseTexture(passData.depthMinMaxAvgMSAA, AccessFlags.Read); + } GetDoFResolutionScale(passData.parameters, out float scale, out float resolutionScale); var screenScale = new Vector2(scale, scale); passData.parameters.resetPostProcessingHistory = passData.parameters.resetPostProcessingHistory || !cocHistoryValid; TextureHandle dest = GetPostprocessOutputHandle(hdCamera, renderGraph, "DoF Destination"); - passData.destination = builder.WriteTexture(dest); - passData.motionVecTexture = builder.ReadTexture(motionVectors); + passData.destination = dest; + builder.UseTexture(passData.destination, AccessFlags.Write); + passData.motionVecTexture = motionVectors; + builder.UseTexture(passData.motionVecTexture, AccessFlags.Read); passData.taaEnabled = stabilizeCoC; if (!m_DepthOfField.physicallyBased) @@ -3434,8 +3496,9 @@ TextureHandle DepthOfFieldPass(RenderGraph renderGraph, HDCamera hdCamera, Textu passData.farCoC = TextureHandle.nullHandle; } - passData.fullresCoC = builder.ReadWriteTexture(renderGraph.CreateTexture(new TextureDesc(Vector2.one, IsDynamicResUpscaleTargetEnabled(), true) - { format = k_CoCFormat, enableRandomWrite = true, name = "Full res CoC" })); + passData.fullresCoC = renderGraph.CreateTexture(new TextureDesc(Vector2.one, IsDynamicResUpscaleTargetEnabled(), true) + { format = k_CoCFormat, enableRandomWrite = true, name = "Full res CoC" }); + builder.UseTexture(passData.fullresCoC, AccessFlags.ReadWrite); var debugCocTexture = passData.fullresCoC; var debugCocTextureScales = hdCamera.postProcessRTScales; @@ -3476,7 +3539,7 @@ TextureHandle DepthOfFieldPass(RenderGraph renderGraph, HDCamera hdCamera, Textu passData.farBokehTileList = builder.CreateTransientBuffer(new BufferDesc(dofParameters.threadGroup8.x * dofParameters.threadGroup8.y, sizeof(uint), GraphicsBuffer.Target.Append) { name = "Bokeh Far Tile List" }); builder.SetRenderFunc( - (DepthofFieldData data, RenderGraphContext ctx) => + (DepthofFieldData data, UnsafeGraphContext ctx) => { var mipsHandles = ctx.renderGraphPool.GetTempArray(4); @@ -3488,7 +3551,7 @@ TextureHandle DepthOfFieldPass(RenderGraph renderGraph, HDCamera hdCamera, Textu ((GraphicsBuffer)data.nearBokehTileList).SetCounterValue(0u); ((GraphicsBuffer)data.farBokehTileList).SetCounterValue(0u); - DoDepthOfField(data.parameters, ctx.cmd, data.source, data.destination, data.depthBuffer, data.pingNearRGB, data.pongNearRGB, data.nearCoC, data.nearAlpha, + DoDepthOfField(data.parameters, CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd), data.source, data.destination, data.depthBuffer, data.pingNearRGB, data.pongNearRGB, data.nearCoC, data.nearAlpha, data.dilatedNearCoC, data.pingFarRGB, data.pongFarRGB, data.farCoC, data.fullresCoC, mipsHandles, data.dilationPingPongRT, data.prevCoC, data.nextCoC, data.motionVecTexture, data.bokehNearKernel, data.bokehFarKernel, data.bokehIndirectCmd, data.nearBokehTileList, data.farBokehTileList, data.taaEnabled, data.depthMinMaxAvgMSAA); }); @@ -3499,7 +3562,8 @@ TextureHandle DepthOfFieldPass(RenderGraph renderGraph, HDCamera hdCamera, Textu } else { - passData.fullresCoC = builder.ReadWriteTexture(GetPostprocessOutputHandle(renderGraph, "Full res CoC", k_CoCFormat, false)); + passData.fullresCoC = GetPostprocessOutputHandle(renderGraph, "Full res CoC", k_CoCFormat, false); + builder.UseTexture(passData.fullresCoC, AccessFlags.ReadWrite); var debugCocTexture = passData.fullresCoC; var debugCocTextureScales = hdCamera.postProcessRTScales; @@ -3530,9 +3594,9 @@ TextureHandle DepthOfFieldPass(RenderGraph renderGraph, HDCamera hdCamera, Textu passData.debugTileClassification = m_CurrentDebugDisplaySettings.data.fullScreenDebugMode == FullScreenDebugMode.DepthOfFieldTileClassification; builder.SetRenderFunc( - (DepthofFieldData data, RenderGraphContext ctx) => + (DepthofFieldData data, UnsafeGraphContext ctx) => { - DoPhysicallyBasedDepthOfField(data.parameters, ctx.cmd, data.source, data.destination, data.fullresCoC, data.prevCoC, data.nextCoC, data.motionVecTexture, data.pingFarRGB, data.depthBuffer, data.pingNearRGB, data.pongNearRGB, data.pongFarRGB, data.taaEnabled, data.depthMinMaxAvgMSAA, data.apertureShapeTable, data.debugTileClassification); + DoPhysicallyBasedDepthOfField(data.parameters, CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd), data.source, data.destination, data.fullresCoC, data.prevCoC, data.nextCoC, data.motionVecTexture, data.pingFarRGB, data.depthBuffer, data.pingNearRGB, data.pongNearRGB, data.pongFarRGB, data.taaEnabled, data.depthMinMaxAvgMSAA, data.apertureShapeTable, data.debugTileClassification); }); source = passData.destination; @@ -3594,23 +3658,29 @@ void LensFlareComputeOcclusionDataDrivenPass(RenderGraph renderGraph, HDCamera h if (m_LensFlareDataDataDrivenFS && !LensFlareCommonSRP.Instance.IsEmpty()) { - using (var builder = renderGraph.AddRenderPass("Lens Flare Compute Occlusion", out var passData, ProfilingSampler.Get(HDProfileId.LensFlareComputeOcclusionDataDriven))) + using (var builder = renderGraph.AddUnsafePass("Lens Flare Compute Occlusion", out var passData, ProfilingSampler.Get(HDProfileId.LensFlareComputeOcclusionDataDriven))) { TextureHandle occlusionHandle = renderGraph.ImportTexture(LensFlareCommonSRP.occlusionRT); - passData.source = builder.WriteTexture(occlusionHandle); + passData.source = occlusionHandle; + builder.UseTexture(passData.source, AccessFlags.Write); passData.parameters = PrepareLensFlareParameters(hdCamera); passData.viewport = postProcessViewportSize; passData.hdCamera = hdCamera; - passData.depthBuffer = builder.ReadTexture(depthBuffer); - passData.stencilBuffer = builder.ReadTexture(stencilBuffer); + passData.depthBuffer = depthBuffer; + builder.UseTexture(passData.depthBuffer, AccessFlags.Read); + passData.stencilBuffer = stencilBuffer; + builder.UseTexture(passData.stencilBuffer, AccessFlags.Read); if (opticalFogTransmittance.IsValid()) - passData.sunOcclusion = builder.ReadTexture(opticalFogTransmittance); + { + passData.sunOcclusion = opticalFogTransmittance; + builder.UseTexture(passData.sunOcclusion, AccessFlags.Read); + } else passData.sunOcclusion = TextureHandle.nullHandle; passData.taaEnabled = taaEnabled; builder.SetRenderFunc( - (LensFlareData data, RenderGraphContext ctx) => + (LensFlareData data, UnsafeGraphContext ctx) => { float width = (float)data.viewport.x; float height = (float)data.viewport.y; @@ -3683,15 +3753,16 @@ void LensFlareMergeOcclusionDataDrivenPass(RenderGraph renderGraph, HDCamera hdC { TextureHandle occlusionHandle = renderGraph.ImportTexture(LensFlareCommonSRP.occlusionRT); - using (var builder = renderGraph.AddRenderPass("Lens Flare Merge Occlusion", out var passData, ProfilingSampler.Get(HDProfileId.LensFlareMergeOcclusionDataDriven))) + using (var builder = renderGraph.AddUnsafePass("Lens Flare Merge Occlusion", out var passData, ProfilingSampler.Get(HDProfileId.LensFlareMergeOcclusionDataDriven))) { - passData.source = builder.WriteTexture(occlusionHandle); + passData.source = occlusionHandle; + builder.UseTexture(passData.source, AccessFlags.Write); passData.hdCamera = hdCamera; passData.parameters = PrepareLensFlareParameters(hdCamera); passData.viewport = new Vector2Int(LensFlareCommonSRP.maxLensFlareWithOcclusion, 1); builder.SetRenderFunc( - (LensFlareData data, RenderGraphContext ctx) => + (LensFlareData data, UnsafeGraphContext ctx) => { ctx.cmd.SetComputeTextureParam(data.parameters.lensFlareMergeOcclusion, data.parameters.mergeOcclusionKernel, HDShaderIDs._LensFlareOcclusion, LensFlareCommonSRP.occlusionRT); if (data.hdCamera.xr.enabled && data.hdCamera.xr.singlePassEnabled) @@ -3712,21 +3783,23 @@ TextureHandle LensFlareDataDrivenPass(RenderGraph renderGraph, HDCamera hdCamera { if (m_LensFlareDataDataDrivenFS && !LensFlareCommonSRP.Instance.IsEmpty()) { - using (var builder = renderGraph.AddRenderPass("Lens Flare", out var passData, ProfilingSampler.Get(HDProfileId.LensFlareDataDriven))) + using (var builder = renderGraph.AddUnsafePass("Lens Flare", out var passData, ProfilingSampler.Get(HDProfileId.LensFlareDataDriven))) { TextureHandle occlusionHandle = renderGraph.ImportTexture(LensFlareCommonSRP.occlusionRT); - passData.source = builder.WriteTexture(source); + passData.source = source; + builder.UseTexture(passData.source, AccessFlags.Write); passData.parameters = PrepareLensFlareParameters(hdCamera); passData.viewport = postProcessViewportSize; passData.hdCamera = hdCamera; passData.taaEnabled = taaEnabled; - passData.occlusion = builder.ReadTexture(occlusionHandle); + passData.occlusion = occlusionHandle; + builder.UseTexture(passData.occlusion, AccessFlags.Read); TextureHandle dest = GetPostprocessUpsampledOutputHandle(hdCamera, renderGraph, "Lens Flare Destination"); builder.SetRenderFunc( - (LensFlareData data, RenderGraphContext ctx) => + (LensFlareData data, UnsafeGraphContext ctx) => { float width = (float)data.viewport.x; float height = (float)data.viewport.y; @@ -3828,7 +3901,7 @@ static float GetLensFlareLightAttenuation(Light light, Camera cam, Vector3 wo) // Do nothing point are omnidirectional for the Lens Flare return LensFlareCommonSRP.ShapeAttenuationPointLight(); case LightType.Spot: - return LensFlareCommonSRP.ShapeAttenuationSpotConeLight(hdLightData.transform.forward, wo, light.spotAngle, hdLightData.innerSpotPercent01); + return LensFlareCommonSRP.ShapeAttenuationSpotConeLight(hdLightData.transform.forward, wo, light.spotAngle, light.innerSpotAngle / light.spotAngle); case LightType.Pyramid: return LensFlareCommonSRP.ShapeAttenuationSpotPyramidLight(hdLightData.transform.forward, wo); case LightType.Box: @@ -3836,7 +3909,7 @@ static float GetLensFlareLightAttenuation(Light light, Camera cam, Vector3 wo) case LightType.Rectangle: return LensFlareCommonSRP.ShapeAttenuationAreaRectangleLight(hdLightData.transform.forward, wo); case LightType.Tube: - return LensFlareCommonSRP.ShapeAttenuationAreaTubeLight(hdLightData.transform.position, hdLightData.transform.right, hdLightData.shapeWidth, cam); + return LensFlareCommonSRP.ShapeAttenuationAreaTubeLight(hdLightData.transform.position, hdLightData.transform.right, light.areaSize.x, cam); case LightType.Disc: return LensFlareCommonSRP.ShapeAttenuationAreaDiscLight(hdLightData.transform.forward, wo); default: throw new Exception($"GetLensFlareLightAttenuation HDLightType Unknown {typeof(LightType)}: {hdLightData.legacyLight.type}"); @@ -3926,20 +3999,24 @@ TextureHandle LensFlareScreenSpacePass(RenderGraph renderGraph, HDCamera hdCamer int ratio = (int)m_LensFlareScreenSpace.resolution.value; Color tintColor = m_LensFlareScreenSpace.tintColor.value; - using (var builder = renderGraph.AddRenderPass("Lens Flare Screen Space", out var passData, ProfilingSampler.Get(HDProfileId.LensFlareScreenSpace))) + using (var builder = renderGraph.AddUnsafePass("Lens Flare Screen Space", out var passData, ProfilingSampler.Get(HDProfileId.LensFlareScreenSpace))) { - passData.source = builder.WriteTexture(source); + passData.source = source; + builder.UseTexture(passData.source, AccessFlags.Write); passData.parameters = PrepareLensFlareScreenSpaceParameters(ratio, tintColor); passData.viewport = postProcessViewportSize; passData.hdCamera = hdCamera; - passData.screenSpaceLensFlareBloomMipTexture = builder.ReadWriteTexture(screenSpaceLensFlareBloomMipTexture); - passData.originalBloomTexture = builder.ReadWriteTexture(originalBloomTexture); + passData.screenSpaceLensFlareBloomMipTexture = screenSpaceLensFlareBloomMipTexture; + builder.UseTexture(passData.screenSpaceLensFlareBloomMipTexture, AccessFlags.ReadWrite); + passData.originalBloomTexture = originalBloomTexture; + builder.UseTexture(passData.originalBloomTexture, AccessFlags.ReadWrite); int width = Mathf.Max(1, passData.viewport.x / ratio); int height = Mathf.Max(1, passData.viewport.y / ratio); - passData.result = builder.WriteTexture(renderGraph.CreateTexture(new TextureDesc(width, height, IsDynamicResUpscaleTargetEnabled(), true) - { format = GetPostprocessTextureFormat(hdCamera), enableRandomWrite = true, useMipMap = false, name = "Lens Flare Screen Space Result" })); + passData.result = renderGraph.CreateTexture(new TextureDesc(width, height, IsDynamicResUpscaleTargetEnabled(), true) + { format = GetPostprocessTextureFormat(hdCamera), enableRandomWrite = true, useMipMap = false, name = "Lens Flare Screen Space Result" }); + builder.UseTexture(passData.result, AccessFlags.Write); // We don't allocate transient texture if streaksIntensity is zero. if (m_LensFlareScreenSpace.IsStreaksActive()) @@ -3952,7 +4029,7 @@ TextureHandle LensFlareScreenSpacePass(RenderGraph renderGraph, HDCamera hdCamer } builder.SetRenderFunc( - (LensFlareScreenSpaceData data, RenderGraphContext ctx) => + (LensFlareScreenSpaceData data, UnsafeGraphContext ctx) => { float width = (float)data.viewport.x; float height = (float)data.viewport.y; @@ -4024,7 +4101,7 @@ class MotionBlurData public TextureHandle tileToScatterMin; } - void PrepareMotionBlurPassData(RenderGraph renderGraph, in RenderGraphBuilder builder, MotionBlurData data, HDCamera hdCamera, TextureHandle source, TextureHandle motionVectors, TextureHandle depthTexture) + void PrepareMotionBlurPassData(RenderGraph renderGraph, in IUnsafeRenderGraphBuilder builder, MotionBlurData data, HDCamera hdCamera, TextureHandle source, TextureHandle motionVectors, TextureHandle depthTexture) { data.camera = hdCamera; data.viewportSize = postProcessViewportSize; @@ -4118,9 +4195,12 @@ void PrepareMotionBlurPassData(RenderGraph renderGraph, in RenderGraphBuilder bu data.motionblurSupportScattering = m_MotionBlurSupportsScattering; - data.source = builder.ReadTexture(source); - data.motionVecTexture = builder.ReadTexture(motionVectors); - data.depthBuffer = builder.ReadTexture(depthTexture); + data.source = source; + builder.UseTexture(data.source, AccessFlags.Read); + data.motionVecTexture = motionVectors; + builder.UseTexture(data.motionVecTexture, AccessFlags.Read); + data.depthBuffer = depthTexture; + builder.UseTexture(data.depthBuffer, AccessFlags.Read); Vector2 tileTexScale = new Vector2((float)data.tileTargetSize.x / (float)postProcessViewportSize.x, (float)data.tileTargetSize.y / (float)postProcessViewportSize.y); @@ -4145,7 +4225,8 @@ void PrepareMotionBlurPassData(RenderGraph renderGraph, in RenderGraphBuilder bu { format = GraphicsFormat.R16_SFloat, enableRandomWrite = true, name = "Tile to Scatter Min" }); } - data.destination = builder.WriteTexture(GetPostprocessOutputHandle(hdCamera, renderGraph, "Motion Blur Destination")); + data.destination = GetPostprocessOutputHandle(hdCamera, renderGraph, "Motion Blur Destination"); + builder.UseTexture(data.destination, AccessFlags.Write); } static void DoMotionBlur(MotionBlurData data, CommandBuffer cmd) @@ -4225,7 +4306,6 @@ static void DoMotionBlur(MotionBlurData data, CommandBuffer cmd) cs = data.tileNeighbourhoodCS; kernel = data.tileNeighbourhoodKernel; - cmd.SetComputeVectorParam(cs, HDShaderIDs._TileTargetSize, data.tileTargetSize); cmd.SetComputeTextureParam(cs, kernel, HDShaderIDs._TileMinMaxMotionVec, data.minMaxTileVel); cmd.SetComputeTextureParam(cs, kernel, HDShaderIDs._TileMaxNeighbourhood, data.maxTileNeigbourhood); @@ -4298,14 +4378,14 @@ TextureHandle MotionBlurPass(RenderGraph renderGraph, HDCamera hdCamera, Texture return source; } - using (var builder = renderGraph.AddRenderPass("Motion Blur", out var passData, ProfilingSampler.Get(HDProfileId.MotionBlur))) + using (var builder = renderGraph.AddUnsafePass("Motion Blur", out var passData, ProfilingSampler.Get(HDProfileId.MotionBlur))) { PrepareMotionBlurPassData(renderGraph, builder, passData, hdCamera, source, motionVectors, depthTexture); builder.SetRenderFunc( - (MotionBlurData data, RenderGraphContext ctx) => + (MotionBlurData data, UnsafeGraphContext ctx) => { - DoMotionBlur(data, ctx.cmd); + DoMotionBlur(data, CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd)); }); source = passData.destination; @@ -4401,7 +4481,7 @@ TextureHandle PaniniProjectionPass(RenderGraph renderGraph, HDCamera hdCamera, T bool isSceneView = hdCamera.camera.cameraType == CameraType.SceneView; if (m_PaniniProjection.IsActive() && !isSceneView && m_PaniniProjectionFS) { - using (var builder = renderGraph.AddRenderPass("Panini Projection", out var passData, ProfilingSampler.Get(HDProfileId.PaniniProjection))) + using (var builder = renderGraph.AddUnsafePass("Panini Projection", out var passData, ProfilingSampler.Get(HDProfileId.PaniniProjection))) { passData.width = postProcessViewportSize.x; passData.height = postProcessViewportSize.y; @@ -4431,11 +4511,13 @@ TextureHandle PaniniProjectionPass(RenderGraph renderGraph, HDCamera hdCamera, T passData.paniniParams = new Vector4(viewExtents.x, viewExtents.y, paniniD, paniniS); passData.paniniProjectionKernel = passData.paniniProjectionCS.FindKernel("KMain"); - passData.source = builder.ReadTexture(source); - passData.destination = builder.WriteTexture(GetPostprocessOutputHandle(hdCamera, renderGraph, "Panini Projection Destination")); + passData.source = source; + builder.UseTexture(passData.source, AccessFlags.Read); + passData.destination = GetPostprocessOutputHandle(hdCamera, renderGraph, "Panini Projection Destination"); + builder.UseTexture(passData.destination, AccessFlags.Write); builder.SetRenderFunc( - (PaniniProjectionData data, RenderGraphContext ctx) => + (PaniniProjectionData data, UnsafeGraphContext ctx) => { var cs = data.paniniProjectionCS; int kernel = data.paniniProjectionKernel; @@ -4480,7 +4562,7 @@ class BloomData public TextureHandle[] mipsUp = new TextureHandle[k_MaxBloomMipCount + 1]; } - void PrepareBloomData(RenderGraph renderGraph, in RenderGraphBuilder builder, BloomData passData, HDCamera camera, TextureHandle source, int screenSpaceLensFlareBloomMipBias) + void PrepareBloomData(RenderGraph renderGraph, in IUnsafeRenderGraphBuilder builder, BloomData passData, HDCamera camera, TextureHandle source, int screenSpaceLensFlareBloomMipBias) { bool lensFlareScreenSpaceActive = m_LensFlareScreenSpace.IsActive() && m_LensFlareScreenSpaceFS; @@ -4589,27 +4671,30 @@ void PrepareBloomData(RenderGraph renderGraph, in RenderGraphBuilder builder, Bl m_BloomBicubicParams.z *= RTHandles.rtHandleProperties.rtHandleScale.x; m_BloomBicubicParams.w *= RTHandles.rtHandleProperties.rtHandleScale.y; - passData.mipsUp[0] = builder.WriteTexture(renderGraph.CreateTexture(new TextureDesc(mip0Scale, IsDynamicResUpscaleTargetEnabled(), true) + passData.mipsUp[0] = renderGraph.CreateTexture(new TextureDesc(mip0Scale, IsDynamicResUpscaleTargetEnabled(), true) { name = "Bloom final mip up", format = GetPostprocessTextureFormat(camera), useMipMap = false, enableRandomWrite = true - })); + }); + builder.UseTexture(passData.mipsUp[0], AccessFlags.Write); if (lensFlareScreenSpaceActive) { Vector2 mipScale = mip0Scale / Mathf.Pow(2, screenSpaceLensFlareBloomMipBias); - passData.mipsUp[screenSpaceLensFlareBloomMipBias] = builder.WriteTexture(renderGraph.CreateTexture(new TextureDesc(mipScale, IsDynamicResUpscaleTargetEnabled(), true) + passData.mipsUp[screenSpaceLensFlareBloomMipBias] = renderGraph.CreateTexture(new TextureDesc(mipScale, IsDynamicResUpscaleTargetEnabled(), true) { name = "Bloom mip for SSLF", format = GetPostprocessTextureFormat(camera), useMipMap = false, enableRandomWrite = true - })); + }); + builder.UseTexture(passData.mipsUp[screenSpaceLensFlareBloomMipBias], AccessFlags.Write); } - passData.source = builder.ReadTexture(source); + passData.source = source; + builder.UseTexture(passData.source, AccessFlags.Read); } TextureHandle BloomPass(RenderGraph renderGraph, HDCamera hdCamera, TextureHandle source, int screenSpaceLensFlareBloomMipBias, out TextureHandle screenSpaceLensFlareBloomMipTexture) @@ -4625,13 +4710,14 @@ TextureHandle BloomPass(RenderGraph renderGraph, HDCamera hdCamera, TextureHandl screenSpaceLensFlareBloomMipTexture = renderGraph.defaultResources.blackTextureXR; if (bloomActive || lensFlareScreenSpaceActive) { - using (var builder = renderGraph.AddRenderPass("Bloom", out var passData, ProfilingSampler.Get(HDProfileId.Bloom))) + using (var builder = renderGraph.AddUnsafePass("Bloom", out var passData, ProfilingSampler.Get(HDProfileId.Bloom))) { PrepareBloomData(renderGraph, builder, passData, hdCamera, source, screenSpaceLensFlareBloomMipBias); builder.SetRenderFunc( - (BloomData data, RenderGraphContext ctx) => + (BloomData data, UnsafeGraphContext ctx) => { + var natCmd = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); RTHandle sourceRT = data.source; // All the computes for this effect use the same group size so let's use a local @@ -4650,6 +4736,7 @@ void DispatchWithGuardBands(CommandBuffer cmd, ComputeShader shader, int kernelI cmd.DispatchCompute(shader, kernelId, (w + 7) / 8, (h + 7) / 8, viewCount); } + // Pre-filtering ComputeShader cs; int kernel; @@ -4658,19 +4745,19 @@ void DispatchWithGuardBands(CommandBuffer cmd, ComputeShader shader, int kernelI cs = data.bloomPrefilterCS; kernel = data.bloomPrefilterKernel; - ctx.cmd.SetComputeTextureParam(cs, kernel, HDShaderIDs._InputTexture, sourceRT); - ctx.cmd.SetComputeTextureParam(cs, kernel, HDShaderIDs._OutputTexture, data.mipsUp[0]); // Use m_BloomMipsUp as temp target - ctx.cmd.SetComputeVectorParam(cs, HDShaderIDs._TexelSize, new Vector4(size.x, size.y, 1f / size.x, 1f / size.y)); - ctx.cmd.SetComputeVectorParam(cs, HDShaderIDs._BloomThreshold, data.thresholdParams); - DispatchWithGuardBands(ctx.cmd, cs, kernel, size, data.viewCount); + natCmd.SetComputeTextureParam(cs, kernel, HDShaderIDs._InputTexture, sourceRT); + natCmd.SetComputeTextureParam(cs, kernel, HDShaderIDs._OutputTexture, data.mipsUp[0]); // Use m_BloomMipsUp as temp target + natCmd.SetComputeVectorParam(cs, HDShaderIDs._TexelSize, new Vector4(size.x, size.y, 1f / size.x, 1f / size.y)); + natCmd.SetComputeVectorParam(cs, HDShaderIDs._BloomThreshold, data.thresholdParams); + DispatchWithGuardBands(natCmd, cs, kernel, size, data.viewCount); cs = data.bloomBlurCS; kernel = data.bloomBlurKernel; - ctx.cmd.SetComputeTextureParam(cs, kernel, HDShaderIDs._InputTexture, data.mipsUp[0]); - ctx.cmd.SetComputeTextureParam(cs, kernel, HDShaderIDs._OutputTexture, data.mipsDown[0]); - ctx.cmd.SetComputeVectorParam(cs, HDShaderIDs._TexelSize, new Vector4(size.x, size.y, 1f / size.x, 1f / size.y)); - DispatchWithGuardBands(ctx.cmd, cs, kernel, size, data.viewCount); + natCmd.SetComputeTextureParam(cs, kernel, HDShaderIDs._InputTexture, data.mipsUp[0]); + natCmd.SetComputeTextureParam(cs, kernel, HDShaderIDs._OutputTexture, data.mipsDown[0]); + natCmd.SetComputeVectorParam(cs, HDShaderIDs._TexelSize, new Vector4(size.x, size.y, 1f / size.x, 1f / size.y)); + DispatchWithGuardBands(natCmd, cs, kernel, size, data.viewCount); } // Blur pyramid @@ -4682,10 +4769,10 @@ void DispatchWithGuardBands(CommandBuffer cmd, ComputeShader shader, int kernelI var dst = data.mipsDown[i + 1]; var size = new Vector2Int((int)data.bloomMipInfo[i + 1].x, (int)data.bloomMipInfo[i + 1].y); - ctx.cmd.SetComputeTextureParam(cs, kernel, HDShaderIDs._InputTexture, src); - ctx.cmd.SetComputeTextureParam(cs, kernel, HDShaderIDs._OutputTexture, dst); - ctx.cmd.SetComputeVectorParam(cs, HDShaderIDs._TexelSize, new Vector4(size.x, size.y, 1f / size.x, 1f / size.y)); - DispatchWithGuardBands(ctx.cmd, cs, kernel, size, data.viewCount); + natCmd.SetComputeTextureParam(cs, kernel, HDShaderIDs._InputTexture, src); + natCmd.SetComputeTextureParam(cs, kernel, HDShaderIDs._OutputTexture, dst); + natCmd.SetComputeVectorParam(cs, HDShaderIDs._TexelSize, new Vector4(size.x, size.y, 1f / size.x, 1f / size.y)); + DispatchWithGuardBands(natCmd, cs, kernel, size, data.viewCount); } // Upsample & combine @@ -4701,13 +4788,13 @@ void DispatchWithGuardBands(CommandBuffer cmd, ComputeShader shader, int kernelI var highSize = new Vector2Int((int)data.bloomMipInfo[i].x, (int)data.bloomMipInfo[i].y); var lowSize = new Vector2Int((int)data.bloomMipInfo[i + 1].x, (int)data.bloomMipInfo[i + 1].y); - ctx.cmd.SetComputeTextureParam(cs, kernel, HDShaderIDs._InputLowTexture, srcLow); - ctx.cmd.SetComputeTextureParam(cs, kernel, HDShaderIDs._InputHighTexture, srcHigh); - ctx.cmd.SetComputeTextureParam(cs, kernel, HDShaderIDs._OutputTexture, dst); - ctx.cmd.SetComputeVectorParam(cs, HDShaderIDs._Params, new Vector4(data.bloomScatterParam, 0f, 0f, 0f)); - ctx.cmd.SetComputeVectorParam(cs, HDShaderIDs._BloomBicubicParams, new Vector4(lowSize.x, lowSize.y, 1f / lowSize.x, 1f / lowSize.y)); - ctx.cmd.SetComputeVectorParam(cs, HDShaderIDs._TexelSize, new Vector4(highSize.x, highSize.y, 1f / highSize.x, 1f / highSize.y)); - DispatchWithGuardBands(ctx.cmd, cs, kernel, highSize, data.viewCount); + natCmd.SetComputeTextureParam(cs, kernel, HDShaderIDs._InputLowTexture, srcLow); + natCmd.SetComputeTextureParam(cs, kernel, HDShaderIDs._InputHighTexture, srcHigh); + natCmd.SetComputeTextureParam(cs, kernel, HDShaderIDs._OutputTexture, dst); + natCmd.SetComputeVectorParam(cs, HDShaderIDs._Params, new Vector4(data.bloomScatterParam, 0f, 0f, 0f)); + natCmd.SetComputeVectorParam(cs, HDShaderIDs._BloomBicubicParams, new Vector4(lowSize.x, lowSize.y, 1f / lowSize.x, 1f / lowSize.y)); + natCmd.SetComputeVectorParam(cs, HDShaderIDs._TexelSize, new Vector4(highSize.x, highSize.y, 1f / highSize.x, 1f / highSize.y)); + DispatchWithGuardBands(natCmd, cs, kernel, highSize, data.viewCount); } }); @@ -5033,71 +5120,73 @@ TextureHandle ColorGradingPass(RenderGraph renderGraph, HDCamera hdCamera) // Else we update the hash and we recompute the LUT. m_LutHash = currentGradingHash; - using (var builder = renderGraph.AddRenderPass("Color Grading", out var passData, ProfilingSampler.Get(HDProfileId.ColorGradingLUTBuilder))) + using (var builder = renderGraph.AddUnsafePass("Color Grading", out var passData, ProfilingSampler.Get(HDProfileId.ColorGradingLUTBuilder))) { PrepareColorGradingParameters(passData, hdCamera); - passData.logLut = builder.WriteTexture(logLut); + passData.logLut = logLut; + builder.UseTexture(passData.logLut, AccessFlags.Write); builder.SetRenderFunc( - (ColorGradingPassData data, RenderGraphContext ctx) => + (ColorGradingPassData data, UnsafeGraphContext ctx) => { + var natCmd = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); var builderCS = data.builderCS; var builderKernel = data.builderKernel; // Fill-in constant buffers & textures. // TODO: replace with a real constant buffers - ctx.cmd.SetComputeTextureParam(builderCS, builderKernel, HDShaderIDs._OutputTexture, data.logLut); - ctx.cmd.SetComputeVectorParam(builderCS, HDShaderIDs._Size, new Vector4(data.lutSize, 1f / (data.lutSize - 1f), 0f, 0f)); - ctx.cmd.SetComputeVectorParam(builderCS, HDShaderIDs._ColorBalance, data.lmsColorBalance); - ctx.cmd.SetComputeVectorParam(builderCS, HDShaderIDs._ColorFilter, data.colorFilter); - ctx.cmd.SetComputeVectorParam(builderCS, HDShaderIDs._ChannelMixerRed, data.channelMixerR); - ctx.cmd.SetComputeVectorParam(builderCS, HDShaderIDs._ChannelMixerGreen, data.channelMixerG); - ctx.cmd.SetComputeVectorParam(builderCS, HDShaderIDs._ChannelMixerBlue, data.channelMixerB); - ctx.cmd.SetComputeVectorParam(builderCS, HDShaderIDs._HueSatCon, data.hueSatCon); - ctx.cmd.SetComputeVectorParam(builderCS, HDShaderIDs._Lift, data.lift); - ctx.cmd.SetComputeVectorParam(builderCS, HDShaderIDs._Gamma, data.gamma); - ctx.cmd.SetComputeVectorParam(builderCS, HDShaderIDs._Gain, data.gain); - ctx.cmd.SetComputeVectorParam(builderCS, HDShaderIDs._Shadows, data.shadows); - ctx.cmd.SetComputeVectorParam(builderCS, HDShaderIDs._Midtones, data.midtones); - ctx.cmd.SetComputeVectorParam(builderCS, HDShaderIDs._Highlights, data.highlights); - ctx.cmd.SetComputeVectorParam(builderCS, HDShaderIDs._ShaHiLimits, data.shadowsHighlightsLimits); - ctx.cmd.SetComputeVectorParam(builderCS, HDShaderIDs._SplitShadows, data.splitShadows); - ctx.cmd.SetComputeVectorParam(builderCS, HDShaderIDs._SplitHighlights, data.splitHighlights); + natCmd.SetComputeTextureParam(builderCS, builderKernel, HDShaderIDs._OutputTexture, data.logLut); + natCmd.SetComputeVectorParam(builderCS, HDShaderIDs._Size, new Vector4(data.lutSize, 1f / (data.lutSize - 1f), 0f, 0f)); + natCmd.SetComputeVectorParam(builderCS, HDShaderIDs._ColorBalance, data.lmsColorBalance); + natCmd.SetComputeVectorParam(builderCS, HDShaderIDs._ColorFilter, data.colorFilter); + natCmd.SetComputeVectorParam(builderCS, HDShaderIDs._ChannelMixerRed, data.channelMixerR); + natCmd.SetComputeVectorParam(builderCS, HDShaderIDs._ChannelMixerGreen, data.channelMixerG); + natCmd.SetComputeVectorParam(builderCS, HDShaderIDs._ChannelMixerBlue, data.channelMixerB); + natCmd.SetComputeVectorParam(builderCS, HDShaderIDs._HueSatCon, data.hueSatCon); + natCmd.SetComputeVectorParam(builderCS, HDShaderIDs._Lift, data.lift); + natCmd.SetComputeVectorParam(builderCS, HDShaderIDs._Gamma, data.gamma); + natCmd.SetComputeVectorParam(builderCS, HDShaderIDs._Gain, data.gain); + natCmd.SetComputeVectorParam(builderCS, HDShaderIDs._Shadows, data.shadows); + natCmd.SetComputeVectorParam(builderCS, HDShaderIDs._Midtones, data.midtones); + natCmd.SetComputeVectorParam(builderCS, HDShaderIDs._Highlights, data.highlights); + natCmd.SetComputeVectorParam(builderCS, HDShaderIDs._ShaHiLimits, data.shadowsHighlightsLimits); + natCmd.SetComputeVectorParam(builderCS, HDShaderIDs._SplitShadows, data.splitShadows); + natCmd.SetComputeVectorParam(builderCS, HDShaderIDs._SplitHighlights, data.splitHighlights); // YRGB - ctx.cmd.SetComputeTextureParam(builderCS, builderKernel, HDShaderIDs._CurveMaster, data.curves.master.value.GetTexture()); - ctx.cmd.SetComputeTextureParam(builderCS, builderKernel, HDShaderIDs._CurveRed, data.curves.red.value.GetTexture()); - ctx.cmd.SetComputeTextureParam(builderCS, builderKernel, HDShaderIDs._CurveGreen, data.curves.green.value.GetTexture()); - ctx.cmd.SetComputeTextureParam(builderCS, builderKernel, HDShaderIDs._CurveBlue, data.curves.blue.value.GetTexture()); + natCmd.SetComputeTextureParam(builderCS, builderKernel, HDShaderIDs._CurveMaster, data.curves.master.value.GetTexture()); + natCmd.SetComputeTextureParam(builderCS, builderKernel, HDShaderIDs._CurveRed, data.curves.red.value.GetTexture()); + natCmd.SetComputeTextureParam(builderCS, builderKernel, HDShaderIDs._CurveGreen, data.curves.green.value.GetTexture()); + natCmd.SetComputeTextureParam(builderCS, builderKernel, HDShaderIDs._CurveBlue, data.curves.blue.value.GetTexture()); // Secondary curves - ctx.cmd.SetComputeTextureParam(builderCS, builderKernel, HDShaderIDs._CurveHueVsHue, data.curves.hueVsHue.value.GetTexture()); - ctx.cmd.SetComputeTextureParam(builderCS, builderKernel, HDShaderIDs._CurveHueVsSat, data.curves.hueVsSat.value.GetTexture()); - ctx.cmd.SetComputeTextureParam(builderCS, builderKernel, HDShaderIDs._CurveLumVsSat, data.curves.lumVsSat.value.GetTexture()); - ctx.cmd.SetComputeTextureParam(builderCS, builderKernel, HDShaderIDs._CurveSatVsSat, data.curves.satVsSat.value.GetTexture()); + natCmd.SetComputeTextureParam(builderCS, builderKernel, HDShaderIDs._CurveHueVsHue, data.curves.hueVsHue.value.GetTexture()); + natCmd.SetComputeTextureParam(builderCS, builderKernel, HDShaderIDs._CurveHueVsSat, data.curves.hueVsSat.value.GetTexture()); + natCmd.SetComputeTextureParam(builderCS, builderKernel, HDShaderIDs._CurveLumVsSat, data.curves.lumVsSat.value.GetTexture()); + natCmd.SetComputeTextureParam(builderCS, builderKernel, HDShaderIDs._CurveSatVsSat, data.curves.satVsSat.value.GetTexture()); // Artist-driven tonemap curve if (data.tonemappingMode == TonemappingMode.Custom) { - ctx.cmd.SetComputeVectorParam(builderCS, HDShaderIDs._CustomToneCurve, data.hableCurve.uniforms.curve); - ctx.cmd.SetComputeVectorParam(builderCS, HDShaderIDs._ToeSegmentA, data.hableCurve.uniforms.toeSegmentA); - ctx.cmd.SetComputeVectorParam(builderCS, HDShaderIDs._ToeSegmentB, data.hableCurve.uniforms.toeSegmentB); - ctx.cmd.SetComputeVectorParam(builderCS, HDShaderIDs._MidSegmentA, data.hableCurve.uniforms.midSegmentA); - ctx.cmd.SetComputeVectorParam(builderCS, HDShaderIDs._MidSegmentB, data.hableCurve.uniforms.midSegmentB); - ctx.cmd.SetComputeVectorParam(builderCS, HDShaderIDs._ShoSegmentA, data.hableCurve.uniforms.shoSegmentA); - ctx.cmd.SetComputeVectorParam(builderCS, HDShaderIDs._ShoSegmentB, data.hableCurve.uniforms.shoSegmentB); + natCmd.SetComputeVectorParam(builderCS, HDShaderIDs._CustomToneCurve, data.hableCurve.uniforms.curve); + natCmd.SetComputeVectorParam(builderCS, HDShaderIDs._ToeSegmentA, data.hableCurve.uniforms.toeSegmentA); + natCmd.SetComputeVectorParam(builderCS, HDShaderIDs._ToeSegmentB, data.hableCurve.uniforms.toeSegmentB); + natCmd.SetComputeVectorParam(builderCS, HDShaderIDs._MidSegmentA, data.hableCurve.uniforms.midSegmentA); + natCmd.SetComputeVectorParam(builderCS, HDShaderIDs._MidSegmentB, data.hableCurve.uniforms.midSegmentB); + natCmd.SetComputeVectorParam(builderCS, HDShaderIDs._ShoSegmentA, data.hableCurve.uniforms.shoSegmentA); + natCmd.SetComputeVectorParam(builderCS, HDShaderIDs._ShoSegmentB, data.hableCurve.uniforms.shoSegmentB); } else if (data.tonemappingMode == TonemappingMode.External) { - ctx.cmd.SetComputeTextureParam(builderCS, builderKernel, HDShaderIDs._LogLut3D, data.externalLuT); - ctx.cmd.SetComputeVectorParam(builderCS, HDShaderIDs._LogLut3D_Params, new Vector4(1f / data.lutSize, data.lutSize - 1f, data.lutContribution, 0f)); + natCmd.SetComputeTextureParam(builderCS, builderKernel, HDShaderIDs._LogLut3D, data.externalLuT); + natCmd.SetComputeVectorParam(builderCS, HDShaderIDs._LogLut3D_Params, new Vector4(1f / data.lutSize, data.lutSize - 1f, data.lutContribution, 0f)); } - ctx.cmd.SetComputeVectorParam(builderCS, HDShaderIDs._HDROutputParams, data.hdroutParameters); - ctx.cmd.SetComputeVectorParam(builderCS, HDShaderIDs._HDROutputParams2, data.hdroutParameters2); + natCmd.SetComputeVectorParam(builderCS, HDShaderIDs._HDROutputParams, data.hdroutParameters); + natCmd.SetComputeVectorParam(builderCS, HDShaderIDs._HDROutputParams2, data.hdroutParameters2); // Misc parameters - ctx.cmd.SetComputeVectorParam(builderCS, HDShaderIDs._Params, data.miscParams); + natCmd.SetComputeVectorParam(builderCS, HDShaderIDs._Params, data.miscParams); // Generate the lut // See the note about Metal & Intel in LutBuilder3D.compute @@ -5106,7 +5195,7 @@ TextureHandle ColorGradingPass(RenderGraph renderGraph, HDCamera hdCamera) uint threadX = 4; uint threadY = 4; uint threadZ = 4; - ctx.cmd.DispatchCompute(builderCS, builderKernel, + natCmd.DispatchCompute(builderCS, builderKernel, (int)((data.lutSize + threadX - 1u) / threadX), (int)((data.lutSize + threadY - 1u) / threadY), (int)((data.lutSize + threadZ - 1u) / threadZ) @@ -5335,7 +5424,7 @@ TextureHandle UberPass(RenderGraph renderGraph, HDCamera hdCamera, TextureHandle return source; } - using (var builder = renderGraph.AddRenderPass("Uber Post", out var passData, ProfilingSampler.Get(HDProfileId.UberPost))) + using (var builder = renderGraph.AddUnsafePass("Uber Post", out var passData, ProfilingSampler.Get(HDProfileId.UberPost))) { TextureHandle dest = GetPostprocessOutputHandle(hdCamera, renderGraph, "Uber Post Destination"); @@ -5385,49 +5474,54 @@ TextureHandle UberPass(RenderGraph renderGraph, HDCamera hdCamera, TextureHandle PrepareUberBloomParameters(passData, hdCamera); PrepareAlphaScaleParameters(passData, hdCamera); - passData.source = builder.ReadTexture(source); - passData.bloomTexture = builder.ReadTexture(bloomTexture); - passData.logLut = builder.ReadTexture(logLut); - passData.destination = builder.WriteTexture(dest); + passData.source = source; + builder.UseTexture(passData.source, AccessFlags.Read); + passData.bloomTexture = bloomTexture; + builder.UseTexture(passData.bloomTexture, AccessFlags.Read); + passData.logLut = logLut; + builder.UseTexture(passData.logLut, AccessFlags.Read); + passData.destination = dest; + builder.UseTexture(passData.destination, AccessFlags.Write); builder.SetRenderFunc( - (UberPostPassData data, RenderGraphContext ctx) => + (UberPostPassData data, UnsafeGraphContext ctx) => { + var natCmd = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); // Color grading - ctx.cmd.SetComputeTextureParam(data.uberPostCS, data.uberPostKernel, HDShaderIDs._LogLut3D, data.logLut); - ctx.cmd.SetComputeVectorParam(data.uberPostCS, HDShaderIDs._LogLut3D_Params, data.logLutSettings); + natCmd.SetComputeTextureParam(data.uberPostCS, data.uberPostKernel, HDShaderIDs._LogLut3D, data.logLut); + natCmd.SetComputeVectorParam(data.uberPostCS, HDShaderIDs._LogLut3D_Params, data.logLutSettings); // Lens distortion - ctx.cmd.SetComputeVectorParam(data.uberPostCS, HDShaderIDs._DistortionParams1, data.lensDistortionParams1); - ctx.cmd.SetComputeVectorParam(data.uberPostCS, HDShaderIDs._DistortionParams2, data.lensDistortionParams2); + natCmd.SetComputeVectorParam(data.uberPostCS, HDShaderIDs._DistortionParams1, data.lensDistortionParams1); + natCmd.SetComputeVectorParam(data.uberPostCS, HDShaderIDs._DistortionParams2, data.lensDistortionParams2); // Chromatic aberration - ctx.cmd.SetComputeTextureParam(data.uberPostCS, data.uberPostKernel, HDShaderIDs._ChromaSpectralLut, data.spectralLut); - ctx.cmd.SetComputeVectorParam(data.uberPostCS, HDShaderIDs._ChromaParams, data.chromaticAberrationParameters); + natCmd.SetComputeTextureParam(data.uberPostCS, data.uberPostKernel, HDShaderIDs._ChromaSpectralLut, data.spectralLut); + natCmd.SetComputeVectorParam(data.uberPostCS, HDShaderIDs._ChromaParams, data.chromaticAberrationParameters); // Vignette - ctx.cmd.SetComputeVectorParam(data.uberPostCS, HDShaderIDs._VignetteParams1, data.vignetteParams1); - ctx.cmd.SetComputeVectorParam(data.uberPostCS, HDShaderIDs._VignetteParams2, data.vignetteParams2); - ctx.cmd.SetComputeVectorParam(data.uberPostCS, HDShaderIDs._VignetteColor, data.vignetteColor); - ctx.cmd.SetComputeTextureParam(data.uberPostCS, data.uberPostKernel, HDShaderIDs._VignetteMask, data.vignetteMask); + natCmd.SetComputeVectorParam(data.uberPostCS, HDShaderIDs._VignetteParams1, data.vignetteParams1); + natCmd.SetComputeVectorParam(data.uberPostCS, HDShaderIDs._VignetteParams2, data.vignetteParams2); + natCmd.SetComputeVectorParam(data.uberPostCS, HDShaderIDs._VignetteColor, data.vignetteColor); + natCmd.SetComputeTextureParam(data.uberPostCS, data.uberPostKernel, HDShaderIDs._VignetteMask, data.vignetteMask); // Bloom - ctx.cmd.SetComputeTextureParam(data.uberPostCS, data.uberPostKernel, HDShaderIDs._BloomTexture, data.bloomTexture); - ctx.cmd.SetComputeTextureParam(data.uberPostCS, data.uberPostKernel, HDShaderIDs._BloomDirtTexture, data.bloomDirtTexture); - ctx.cmd.SetComputeVectorParam(data.uberPostCS, HDShaderIDs._BloomParams, data.bloomParams); - ctx.cmd.SetComputeVectorParam(data.uberPostCS, HDShaderIDs._BloomTint, data.bloomTint); - ctx.cmd.SetComputeVectorParam(data.uberPostCS, HDShaderIDs._BloomBicubicParams, data.bloomBicubicParams); - ctx.cmd.SetComputeVectorParam(data.uberPostCS, HDShaderIDs._BloomDirtScaleOffset, data.bloomDirtTileOffset); - ctx.cmd.SetComputeVectorParam(data.uberPostCS, HDShaderIDs._BloomThreshold, data.bloomThreshold); + natCmd.SetComputeTextureParam(data.uberPostCS, data.uberPostKernel, HDShaderIDs._BloomTexture, data.bloomTexture); + natCmd.SetComputeTextureParam(data.uberPostCS, data.uberPostKernel, HDShaderIDs._BloomDirtTexture, data.bloomDirtTexture); + natCmd.SetComputeVectorParam(data.uberPostCS, HDShaderIDs._BloomParams, data.bloomParams); + natCmd.SetComputeVectorParam(data.uberPostCS, HDShaderIDs._BloomTint, data.bloomTint); + natCmd.SetComputeVectorParam(data.uberPostCS, HDShaderIDs._BloomBicubicParams, data.bloomBicubicParams); + natCmd.SetComputeVectorParam(data.uberPostCS, HDShaderIDs._BloomDirtScaleOffset, data.bloomDirtTileOffset); + natCmd.SetComputeVectorParam(data.uberPostCS, HDShaderIDs._BloomThreshold, data.bloomThreshold); // Alpha scale and bias (only used when alpha is enabled) - ctx.cmd.SetComputeVectorParam(data.uberPostCS, HDShaderIDs._AlphaScaleBias, data.alphaScaleBias); + natCmd.SetComputeVectorParam(data.uberPostCS, HDShaderIDs._AlphaScaleBias, data.alphaScaleBias); // Dispatch uber post - ctx.cmd.SetComputeVectorParam(data.uberPostCS, "_DebugFlags", new Vector4(data.outputColorLog ? 1 : 0, 0, 0, data.isSearchingInHierarchy ? 1 : 0)); - ctx.cmd.SetComputeTextureParam(data.uberPostCS, data.uberPostKernel, HDShaderIDs._InputTexture, data.source); - ctx.cmd.SetComputeTextureParam(data.uberPostCS, data.uberPostKernel, HDShaderIDs._OutputTexture, data.destination); - ctx.cmd.DispatchCompute(data.uberPostCS, data.uberPostKernel, (data.width + 7) / 8, (data.height + 7) / 8, data.viewCount); + natCmd.SetComputeVectorParam(data.uberPostCS, "_DebugFlags", new Vector4(data.outputColorLog ? 1 : 0, 0, 0, data.isSearchingInHierarchy ? 1 : 0)); + natCmd.SetComputeTextureParam(data.uberPostCS, data.uberPostKernel, HDShaderIDs._InputTexture, data.source); + natCmd.SetComputeTextureParam(data.uberPostCS, data.uberPostKernel, HDShaderIDs._OutputTexture, data.destination); + natCmd.DispatchCompute(data.uberPostCS, data.uberPostKernel, (data.width + 7) / 8, (data.height + 7) / 8, data.viewCount); }); source = passData.destination; @@ -5458,7 +5552,7 @@ TextureHandle FXAAPass(RenderGraph renderGraph, HDCamera hdCamera, TextureHandle hdCamera.antialiasing == HDAdditionalCameraData.AntialiasingMode.FastApproximateAntialiasing && m_AntialiasingFS) { - using (var builder = renderGraph.AddRenderPass("FXAA", out var passData, ProfilingSampler.Get(HDProfileId.FXAA))) + using (var builder = renderGraph.AddUnsafePass("FXAA", out var passData, ProfilingSampler.Get(HDProfileId.FXAA))) { passData.fxaaCS = runtimeShaders.FXAACS; passData.fxaaKernel = passData.fxaaCS.FindKernel("FXAA"); @@ -5466,8 +5560,10 @@ TextureHandle FXAAPass(RenderGraph renderGraph, HDCamera hdCamera, TextureHandle passData.height = postProcessViewportSize.y; passData.viewCount = hdCamera.viewCount; - passData.source = builder.ReadTexture(source); - passData.destination = builder.WriteTexture(GetPostprocessOutputHandle(hdCamera, renderGraph, "FXAA Destination")); ; + passData.source = source; + builder.UseTexture(passData.source, AccessFlags.Read); + passData.destination = GetPostprocessOutputHandle(hdCamera, renderGraph, "FXAA Destination"); + builder.UseTexture(passData.destination, AccessFlags.Write); if (HDROutputActiveForCameraType(hdCamera)) { @@ -5482,7 +5578,7 @@ TextureHandle FXAAPass(RenderGraph renderGraph, HDCamera hdCamera, TextureHandle passData.fxaaCS.EnableKeyword("HDR_INPUT"); builder.SetRenderFunc( - (FXAAData data, RenderGraphContext ctx) => + (FXAAData data, UnsafeGraphContext ctx) => { ctx.cmd.SetComputeTextureParam(data.fxaaCS, data.fxaaKernel, HDShaderIDs._InputTexture, data.source); ctx.cmd.SetComputeTextureParam(data.fxaaCS, data.fxaaKernel, HDShaderIDs._OutputTexture, data.destination); @@ -5513,27 +5609,30 @@ class SharpenData TextureHandle SharpeningPass(RenderGraph renderGraph, HDCamera hdCamera, TextureHandle source) { - using (var builder = renderGraph.AddRenderPass("Sharpening", out var passData, ProfilingSampler.Get(HDProfileId.ContrastAdaptiveSharpen))) + using (var builder = renderGraph.AddUnsafePass("Sharpening", out var passData, ProfilingSampler.Get(HDProfileId.ContrastAdaptiveSharpen))) { passData.sharpenCS = runtimeShaders.sharpeningCS; passData.sharpenKernel = passData.sharpenCS.FindKernel("SharpenCS"); passData.sharpenParam = new Vector4(hdCamera.taaSharpenStrength, hdCamera.taaRingingReduction, 0, 0); passData.dispatchSize = new Vector3Int(HDUtils.DivRoundUp(postProcessViewportSize.x, 8), HDUtils.DivRoundUp(postProcessViewportSize.y, 8), hdCamera.viewCount); - passData.source = builder.ReadTexture(source); + passData.source = source; + builder.UseTexture(passData.source, AccessFlags.Read); var dstTex = GetPostprocessOutputHandle(hdCamera, renderGraph, "Sharpening Destination"); - passData.destination = builder.WriteTexture(dstTex); + passData.destination = dstTex; + builder.UseTexture(passData.destination, AccessFlags.Write); passData.sharpenCS.shaderKeywords = null; CoreUtils.SetKeyword(passData.sharpenCS, "ENABLE_ALPHA", PostProcessEnableAlpha(hdCamera)); CoreUtils.SetKeyword(passData.sharpenCS, "CLAMP_RINGING", hdCamera.taaRingingReduction > 0); builder.SetRenderFunc( - (SharpenData data, RenderGraphContext ctx) => + (SharpenData data, UnsafeGraphContext ctx) => { - ctx.cmd.SetComputeVectorParam(data.sharpenCS, "_SharpenParams", data.sharpenParam); - ctx.cmd.SetComputeTextureParam(data.sharpenCS, data.sharpenKernel, HDShaderIDs._InputTexture, data.source); - ctx.cmd.SetComputeTextureParam(data.sharpenCS, data.sharpenKernel, HDShaderIDs._OutputTexture, data.destination); - ctx.cmd.DispatchCompute(data.sharpenCS, data.sharpenKernel, data.dispatchSize.x, data.dispatchSize.y, data.dispatchSize.z); + var natCmd = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); + natCmd.SetComputeVectorParam(data.sharpenCS, "_SharpenParams", data.sharpenParam); + natCmd.SetComputeTextureParam(data.sharpenCS, data.sharpenKernel, HDShaderIDs._InputTexture, data.source); + natCmd.SetComputeTextureParam(data.sharpenCS, data.sharpenKernel, HDShaderIDs._OutputTexture, data.destination); + natCmd.DispatchCompute(data.sharpenCS, data.sharpenKernel, data.dispatchSize.x, data.dispatchSize.y, data.dispatchSize.z); }); source = passData.destination; @@ -5571,7 +5670,7 @@ TextureHandle ContrastAdaptiveSharpeningPass(RenderGraph renderGraph, HDCamera h if ((runsAsUpscale || runsAsAfterTAA)) { - using (var builder = renderGraph.AddRenderPass("Contrast Adaptive Sharpen", out var passData, ProfilingSampler.Get(HDProfileId.ContrastAdaptiveSharpen))) + using (var builder = renderGraph.AddUnsafePass("Contrast Adaptive Sharpen", out var passData, ProfilingSampler.Get(HDProfileId.ContrastAdaptiveSharpen))) { passData.casCS = runtimeShaders.contrastAdaptiveSharpenCS; passData.casCS.shaderKeywords = null; @@ -5587,10 +5686,12 @@ TextureHandle ContrastAdaptiveSharpeningPass(RenderGraph renderGraph, HDCamera h passData.inputHeight = postProcessViewportSize.y; passData.outputWidth = runsAsUpscale ? Mathf.RoundToInt(hdCamera.finalViewport.width) : passData.inputWidth; passData.outputHeight = runsAsUpscale ? Mathf.RoundToInt(hdCamera.finalViewport.height) : passData.inputHeight; - passData.source = builder.ReadTexture(source); + passData.source = source; + builder.UseTexture(passData.source, AccessFlags.Read); var dstTex = runsAsUpscale ? GetPostprocessUpsampledOutputHandle(hdCamera, renderGraph, "Contrast Adaptive Sharpen Destination") : GetPostprocessOutputHandle(hdCamera, renderGraph, "Contrast Adaptive Sharpen Destination"); - passData.destination = builder.WriteTexture(dstTex); + passData.destination = dstTex; + builder.UseTexture(passData.destination, AccessFlags.Write); passData.casParametersBuffer = builder.CreateTransientBuffer(new BufferDesc(2, sizeof(uint) * 4) { name = "Cas Parameters" }); if (HDROutputActiveForCameraType(hdCamera)) @@ -5600,7 +5701,7 @@ TextureHandle ContrastAdaptiveSharpeningPass(RenderGraph renderGraph, HDCamera h } builder.SetRenderFunc( - (CASData data, RenderGraphContext ctx) => + (CASData data, UnsafeGraphContext ctx) => { ctx.cmd.SetComputeFloatParam(data.casCS, HDShaderIDs._Sharpness, 1); ctx.cmd.SetComputeTextureParam(data.casCS, data.mainKernel, HDShaderIDs._InputTexture, data.source); @@ -5647,7 +5748,7 @@ class EASUData TextureHandle EdgeAdaptiveSpatialUpsampling(RenderGraph renderGraph, HDCamera hdCamera, TextureHandle source) { - using (var builder = renderGraph.AddRenderPass("Edge Adaptive Spatial Upsampling", out var passData, ProfilingSampler.Get(HDProfileId.EdgeAdaptiveSpatialUpsampling))) + using (var builder = renderGraph.AddUnsafePass("Edge Adaptive Spatial Upsampling", out var passData, ProfilingSampler.Get(HDProfileId.EdgeAdaptiveSpatialUpsampling))) { passData.easuCS = runtimeShaders.edgeAdaptiveSpatialUpsamplingCS; passData.easuCS.shaderKeywords = null; @@ -5663,8 +5764,10 @@ TextureHandle EdgeAdaptiveSpatialUpsampling(RenderGraph renderGraph, HDCamera hd passData.inputHeight = hdCamera.actualHeight; passData.outputWidth = Mathf.RoundToInt(hdCamera.finalViewport.width); passData.outputHeight = Mathf.RoundToInt(hdCamera.finalViewport.height); - passData.source = builder.ReadTexture(source); - passData.destination = builder.WriteTexture(GetPostprocessUpsampledOutputHandle(hdCamera, renderGraph, "Edge Adaptive Spatial Upsampling")); + passData.source = source; + builder.UseTexture(passData.source, AccessFlags.Read); + passData.destination = GetPostprocessUpsampledOutputHandle(hdCamera, renderGraph, "Edge Adaptive Spatial Upsampling"); + builder.UseTexture(passData.destination, AccessFlags.Write); if (HDROutputActiveForCameraType(hdCamera)) { @@ -5673,8 +5776,9 @@ TextureHandle EdgeAdaptiveSpatialUpsampling(RenderGraph renderGraph, HDCamera hd } builder.SetRenderFunc( - (EASUData data, RenderGraphContext ctx) => + (EASUData data, UnsafeGraphContext ctx) => { + var natCmd = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); var sourceTexture = (RenderTexture)data.source; var inputTextureSize = new Vector4(sourceTexture.width, sourceTexture.height); if (DynamicResolutionHandler.instance.HardwareDynamicResIsEnabled()) @@ -5682,16 +5786,16 @@ TextureHandle EdgeAdaptiveSpatialUpsampling(RenderGraph renderGraph, HDCamera hd var maxScaledSz = DynamicResolutionHandler.instance.ApplyScalesOnSize(new Vector2Int(RTHandles.maxWidth, RTHandles.maxHeight)); inputTextureSize = new Vector4(maxScaledSz.x, maxScaledSz.y); } - ctx.cmd.SetComputeTextureParam(data.easuCS, data.mainKernel, HDShaderIDs._InputTexture, data.source); - FSRUtils.SetEasuConstants(ctx.cmd, new Vector2(data.inputWidth, data.inputHeight), inputTextureSize, new Vector2(data.outputWidth, data.outputHeight)); - ctx.cmd.SetComputeTextureParam(data.easuCS, data.mainKernel, HDShaderIDs._OutputTexture, data.destination); - ctx.cmd.SetComputeVectorParam(data.easuCS, HDShaderIDs._EASUOutputSize, new Vector4(data.outputWidth, data.outputHeight, 1.0f / data.outputWidth, 1.0f / data.outputHeight)); - ctx.cmd.SetComputeVectorParam(data.easuCS, HDShaderIDs._HDROutputParams, data.hdroutParams); + natCmd.SetComputeTextureParam(data.easuCS, data.mainKernel, HDShaderIDs._InputTexture, data.source); + FSRUtils.SetEasuConstants(natCmd, new Vector2(data.inputWidth, data.inputHeight), inputTextureSize, new Vector2(data.outputWidth, data.outputHeight)); + natCmd.SetComputeTextureParam(data.easuCS, data.mainKernel, HDShaderIDs._OutputTexture, data.destination); + natCmd.SetComputeVectorParam(data.easuCS, HDShaderIDs._EASUOutputSize, new Vector4(data.outputWidth, data.outputHeight, 1.0f / data.outputWidth, 1.0f / data.outputHeight)); + natCmd.SetComputeVectorParam(data.easuCS, HDShaderIDs._HDROutputParams, data.hdroutParams); int dispatchX = HDUtils.DivRoundUp(data.outputWidth, 8); int dispatchY = HDUtils.DivRoundUp(data.outputHeight, 8); - ctx.cmd.DispatchCompute(data.easuCS, data.mainKernel, dispatchX, dispatchY, data.viewCount); + natCmd.DispatchCompute(data.easuCS, data.mainKernel, dispatchX, dispatchY, data.viewCount); }); source = passData.destination; @@ -5744,7 +5848,7 @@ class FinalPassData void FinalPass(RenderGraph renderGraph, HDCamera hdCamera, TextureHandle afterPostProcessTexture, TextureHandle alphaTexture, TextureHandle finalRT, TextureHandle source, TextureHandle uiBuffer, BlueNoise blueNoise, bool flipY, CubemapFace cubemapFace, bool postProcessIsFinalPass) { - using (var builder = renderGraph.AddRenderPass("Final Pass", out var passData, ProfilingSampler.Get(HDProfileId.FinalPost))) + using (var builder = renderGraph.AddUnsafePass("Final Pass", out var passData, ProfilingSampler.Get(HDProfileId.FinalPost))) { // General passData.postProcessEnabled = m_PostProcessEnabled; @@ -5775,14 +5879,22 @@ void FinalPass(RenderGraph renderGraph, HDCamera hdCamera, TextureHandle afterPo // Dithering passData.ditheringEnabled = hdCamera.dithering && m_DitheringFS; - passData.source = builder.ReadTexture(source); - passData.afterPostProcessTexture = builder.ReadTexture(afterPostProcessTexture); - passData.alphaTexture = builder.ReadTexture(alphaTexture); - passData.destination = builder.WriteTexture(finalRT); - passData.uiBuffer = builder.ReadTexture(uiBuffer); + passData.source = source; + builder.UseTexture(passData.source, AccessFlags.Read); + passData.afterPostProcessTexture = afterPostProcessTexture; + builder.UseTexture(passData.afterPostProcessTexture, AccessFlags.Read); + passData.alphaTexture = alphaTexture; + builder.UseTexture(passData.alphaTexture, AccessFlags.Read); + passData.destination = finalRT; + builder.UseTexture(passData.destination, AccessFlags.Write); + passData.uiBuffer = uiBuffer; + builder.UseTexture(passData.uiBuffer, AccessFlags.Read); passData.cubemapFace = cubemapFace; passData.postProcessIsFinalPass = postProcessIsFinalPass; + builder.AllowPassCulling(false); // TODO RG P2 - remove it + // - something is wrong with intermediate postprocess buffer not used anywhere + // -> whole dependency chain being culled - check RG Viewer if (passData.hdrOutputIsActive) { @@ -5790,8 +5902,9 @@ void FinalPass(RenderGraph renderGraph, HDCamera hdCamera, TextureHandle afterPo } builder.SetRenderFunc( - (FinalPassData data, RenderGraphContext ctx) => + (FinalPassData data, UnsafeGraphContext ctx) => { + var natCmd = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); // Final pass has to be done in a pixel shader as it will be the one writing straight // to the backbuffer eventually Material finalPassMaterial = data.finalPassMaterial; @@ -5826,7 +5939,7 @@ void FinalPass(RenderGraph renderGraph, HDCamera hdCamera, TextureHandle afterPo if (sharpness > 0.0) { finalPassMaterial.EnableKeyword("RCAS"); - FSRUtils.SetRcasConstantsLinear(ctx.cmd, sharpness); + FSRUtils.SetRcasConstantsLinear(natCmd, sharpness); } else { @@ -5951,7 +6064,7 @@ void FinalPass(RenderGraph renderGraph, HDCamera hdCamera, TextureHandle afterPo finalPassMaterial.SetTexture(HDShaderIDs._AfterPostProcessTexture, TextureXR.GetBlackTexture()); } - HDUtils.DrawFullScreen(ctx.cmd, backBufferRect, finalPassMaterial, data.destination, cubemapFace: data.cubemapFace); + HDUtils.DrawFullScreen(natCmd, backBufferRect, finalPassMaterial, data.destination, cubemapFace: data.cubemapFace); }); } } diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDRenderPipeline.Prepass.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDRenderPipeline.Prepass.cs index 4e3cb5b839d..9daa44b5a19 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDRenderPipeline.Prepass.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDRenderPipeline.Prepass.cs @@ -198,7 +198,7 @@ TextureHandle CreateMotionVectorBuffer(RenderGraph renderGraph, bool clear, MSAA return renderGraph.CreateTexture(motionVectorDesc); } - void BindMotionVectorPassColorBuffers(in RenderGraphBuilder builder, in PrepassOutput prepassOutput, HDCamera hdCamera) + void BindMotionVectorPassColorBuffers(in IUnsafeRenderGraphBuilder builder, in PrepassOutput prepassOutput, HDCamera hdCamera) { bool msaa = hdCamera.msaaSamples != MSAASamples.None; bool outputLayerMask = hdCamera.frameSettings.IsEnabled(FrameSettingsField.DecalLayers) || @@ -206,11 +206,11 @@ void BindMotionVectorPassColorBuffers(in RenderGraphBuilder builder, in PrepassO int index = 0; if (msaa) - builder.UseColorBuffer(prepassOutput.depthAsColor, index++); - builder.UseColorBuffer(prepassOutput.motionVectorsBuffer, index++); + builder.SetRenderAttachment(prepassOutput.depthAsColor, index++); + builder.SetRenderAttachment(prepassOutput.motionVectorsBuffer, index++); if (outputLayerMask) - builder.UseColorBuffer(prepassOutput.renderingLayersBuffer, index++); - builder.UseColorBuffer(prepassOutput.normalBuffer, index++); + builder.SetRenderAttachment(prepassOutput.renderingLayersBuffer, index++); + builder.SetRenderAttachment(prepassOutput.normalBuffer, index++); } enum OccluderPass @@ -281,6 +281,7 @@ void InstanceOcclusionTest(RenderGraph renderGraph, HDCamera hdCamera, Occlusion } PrepassOutput RenderPrepass(RenderGraph renderGraph, + ScriptableRenderContext renderContext, TextureHandle colorBuffer, TextureHandle sssBuffer, TextureHandle thicknessTexture, @@ -313,7 +314,7 @@ PrepassOutput RenderPrepass(RenderGraph renderGraph, using (new XRSinglePassScope(renderGraph, hdCamera)) { - RenderCustomPass(renderGraph, hdCamera, colorBuffer, result, customPassCullingResults, cullingResults, CustomPassInjectionPoint.BeforeRendering, aovRequest, aovBuffers); + RenderCustomPass(renderGraph, hdCamera, renderContext, colorBuffer, result, customPassCullingResults, cullingResults, CustomPassInjectionPoint.BeforeRendering, aovRequest, aovBuffers); RenderRayTracingDepthPrepass(renderGraph, cullingResults, hdCamera, result.depthBuffer); @@ -409,7 +410,7 @@ PrepassOutput RenderPrepass(RenderGraph renderGraph, DecalNormalPatch(renderGraph, hdCamera, ref result); // After Depth and Normals/roughness including decals - bool depthBufferModified = RenderCustomPass(renderGraph, hdCamera, colorBuffer, result, customPassCullingResults, cullingResults, CustomPassInjectionPoint.AfterOpaqueDepthAndNormal, aovRequest, aovBuffers); + bool depthBufferModified = RenderCustomPass(renderGraph, hdCamera, renderContext, colorBuffer, result, customPassCullingResults, cullingResults, CustomPassInjectionPoint.AfterOpaqueDepthAndNormal, aovRequest, aovBuffers); // If the depth was already copied in RenderDBuffer, we force the copy again because the custom pass modified the depth. if (depthBufferModified) @@ -456,22 +457,28 @@ void RenderRayTracingDepthPrepass(RenderGraph renderGraph, CullingResults cull, // The goal of this pass is to fill the depth buffer with object flagged for recursive rendering. // This will save performance because we reduce overdraw of non recursive rendering objects. // This is also required to avoid marking the pixels for various effects like motion blur and such. - using (var builder = renderGraph.AddRenderPass("RayTracing Depth Prepass", out var passData, ProfilingSampler.Get(HDProfileId.RayTracingDepthPrepass))) + using (var builder = renderGraph.AddUnsafePass("RayTracing Depth Prepass", out var passData, ProfilingSampler.Get(HDProfileId.RayTracingDepthPrepass))) { passData.frameSettings = hdCamera.frameSettings; - passData.depthBuffer = builder.UseDepthBuffer(depthBuffer, DepthAccess.ReadWrite); - passData.opaqueRenderList = builder.UseRendererList(renderGraph.CreateRendererList(CreateOpaqueRendererListDesc(cull, hdCamera.camera, m_RayTracingPrepassNames))); - passData.transparentRenderList = builder.UseRendererList(renderGraph.CreateRendererList(CreateTransparentRendererListDesc(cull, hdCamera.camera, m_RayTracingPrepassNames))); + passData.depthBuffer = depthBuffer; + builder.SetRenderAttachmentDepth(depthBuffer, AccessFlags.ReadWrite); + + passData.opaqueRenderList = renderGraph.CreateRendererList(CreateOpaqueRendererListDesc(cull, hdCamera.camera, m_RayTracingPrepassNames)); + builder.UseRendererList(passData.opaqueRenderList); + + passData.transparentRenderList = renderGraph.CreateRendererList(CreateTransparentRendererListDesc(cull, hdCamera.camera, m_RayTracingPrepassNames)); + builder.UseRendererList(passData.transparentRenderList); builder.SetRenderFunc( - (RayTracingDepthPrepassData data, RenderGraphContext context) => + (RayTracingDepthPrepassData data, UnsafeGraphContext ctx) => { - DrawOpaqueRendererList(context.renderContext, context.cmd, data.frameSettings, data.opaqueRenderList); - DrawTransparentRendererList(context.renderContext, context.cmd, data.frameSettings, data.transparentRenderList); + DrawOpaqueRendererList(ctx, data.frameSettings, data.opaqueRenderList); + DrawTransparentRendererList(ctx, data.frameSettings, data.transparentRenderList); }); } } + class DrawRendererListPassData { public FrameSettings frameSettings; @@ -575,67 +582,71 @@ bool RenderDepthPrepass(RenderGraph renderGraph, CullingResults cull, uint batch string deferredPassName = fullDeferredPrepass ? "Full Depth Prepass (Deferred)" : (decalsEnabled ? "Partial Depth Prepass (Deferred - Decal + AlphaTest)" : "Partial Depth Prepass (Deferred - AlphaTest)"); - using (var builder = renderGraph.AddRenderPass(deferredPassName, out var passData, ProfilingSampler.Get(HDProfileId.DeferredDepthPrepass))) + using (var builder = renderGraph.AddUnsafePass(deferredPassName, out var passData, ProfilingSampler.Get(HDProfileId.DeferredDepthPrepass))) { - builder.AllowRendererListCulling(false); - passData.frameSettings = hdCamera.frameSettings; - passData.rendererList = builder.UseRendererList(renderGraph.CreateRendererList(CreateOpaqueRendererListDesc( + + passData.rendererList = renderGraph.CreateRendererList(CreateOpaqueRendererListDesc( cull, hdCamera.camera, m_DepthOnlyPassNames, renderQueueRange: fullDeferredPrepass ? HDRenderQueue.k_RenderQueue_AllOpaque : (decalsEnabled ? HDRenderQueue.k_RenderQueue_OpaqueDecalAndAlphaTest : HDRenderQueue.k_RenderQueue_OpaqueAlphaTest), stateBlock: m_AlphaToMaskBlock, excludeObjectMotionVectors: excludeMotion, - batchLayerMask: batchLayerMask))); + batchLayerMask: batchLayerMask)); - output.depthBuffer = builder.UseDepthBuffer(output.depthBuffer, DepthAccess.ReadWrite); + builder.UseRendererList(passData.rendererList); + + builder.SetRenderAttachmentDepth(output.depthBuffer, AccessFlags.ReadWrite); if (outputLayerMask) - builder.UseColorBuffer(output.renderingLayersBuffer, 0); + builder.SetRenderAttachment(output.renderingLayersBuffer, 0); builder.SetRenderFunc( - (DrawRendererListPassData data, RenderGraphContext context) => + (DrawRendererListPassData data, UnsafeGraphContext ctx) => { - DrawOpaqueRendererList(context.renderContext, context.cmd, data.frameSettings, data.rendererList); + DrawOpaqueRendererList(ctx, data.frameSettings, data.rendererList); }); } } string forwardPassName = hdCamera.frameSettings.litShaderMode == LitShaderMode.Deferred ? "Forward Depth Prepass (Deferred ForwardOnly)" : "Forward Depth Prepass"; // Then prepass for forward materials. - using (var builder = renderGraph.AddRenderPass(forwardPassName, out var passData, ProfilingSampler.Get(HDProfileId.ForwardDepthPrepass))) + using (var builder = renderGraph.AddUnsafePass(forwardPassName, out var passData, ProfilingSampler.Get(HDProfileId.ForwardDepthPrepass))) { passData.frameSettings = hdCamera.frameSettings; - builder.AllowRendererListCulling(false); - output.depthBuffer = builder.UseDepthBuffer(output.depthBuffer, DepthAccess.ReadWrite); + builder.SetRenderAttachmentDepth(output.depthBuffer, AccessFlags.ReadWrite); int mrtIndex = 0; if (msaa) - builder.UseColorBuffer(output.depthAsColor, mrtIndex++); - builder.UseColorBuffer(output.normalBuffer, mrtIndex++); + builder.SetRenderAttachment(output.depthAsColor, mrtIndex++); + builder.SetRenderAttachment(output.normalBuffer, mrtIndex++); if (outputLayerMask) - builder.UseColorBuffer(output.renderingLayersBuffer, mrtIndex++); + builder.SetRenderAttachment(output.renderingLayersBuffer, mrtIndex++); if (hdCamera.frameSettings.litShaderMode == LitShaderMode.Forward) { RenderStateBlock? stateBlock = hdCamera.msaaEnabled ? null : m_AlphaToMaskBlock; - passData.rendererList = builder.UseRendererList(renderGraph.CreateRendererList( + passData.rendererList = renderGraph.CreateRendererList( CreateOpaqueRendererListDesc(cull, hdCamera.camera, m_DepthOnlyAndDepthForwardOnlyPassNames, stateBlock: stateBlock, excludeObjectMotionVectors: objectMotionEnabled, - batchLayerMask: batchLayerMask))); + batchLayerMask: batchLayerMask)); + + builder.UseRendererList(passData.rendererList); } else if (hdCamera.frameSettings.litShaderMode == LitShaderMode.Deferred) { // Forward only material that output normal buffer - passData.rendererList = builder.UseRendererList(renderGraph.CreateRendererList( + passData.rendererList = renderGraph.CreateRendererList( CreateOpaqueRendererListDesc(cull, hdCamera.camera, m_DepthForwardOnlyPassNames, stateBlock: m_AlphaToMaskBlock, excludeObjectMotionVectors: objectMotionEnabled, - batchLayerMask: batchLayerMask))); + batchLayerMask: batchLayerMask)); + + builder.UseRendererList(passData.rendererList); } builder.SetRenderFunc( - (DrawRendererListPassData data, RenderGraphContext context) => + (DrawRendererListPassData data, UnsafeGraphContext ctx) => { - DrawOpaqueRendererList(context.renderContext, context.cmd, data.frameSettings, data.rendererList); + DrawOpaqueRendererList(ctx, data.frameSettings, data.rendererList); }); } @@ -648,7 +659,7 @@ void RenderObjectsMotionVectors(RenderGraph renderGraph, CullingResults cull, ui !hdCamera.frameSettings.IsEnabled(FrameSettingsField.OpaqueObjects)) return; - using (var builder = renderGraph.AddRenderPass("Objects Motion Vectors Rendering", out var passData, ProfilingSampler.Get(HDProfileId.ObjectsMotionVector))) + using (var builder = renderGraph.AddUnsafePass("Objects Motion Vectors Rendering", out var passData, ProfilingSampler.Get(HDProfileId.ObjectsMotionVector))) { // With all this variant we have the following scenario of render target binding // decalsEnabled @@ -682,19 +693,20 @@ void RenderObjectsMotionVectors(RenderGraph renderGraph, CullingResults cull, ui hdCamera.camera.depthTextureMode |= DepthTextureMode.MotionVectors | DepthTextureMode.Depth; passData.frameSettings = hdCamera.frameSettings; - builder.UseDepthBuffer(output.depthBuffer, DepthAccess.ReadWrite); + builder.SetRenderAttachmentDepth(output.depthBuffer, AccessFlags.ReadWrite); BindMotionVectorPassColorBuffers(builder, output, hdCamera); RenderStateBlock? stateBlock = null; if (hdCamera.frameSettings.litShaderMode == LitShaderMode.Deferred || !hdCamera.msaaEnabled) stateBlock = m_AlphaToMaskBlock; - passData.rendererList = builder.UseRendererList( - renderGraph.CreateRendererList(CreateOpaqueRendererListDesc(cull, hdCamera.camera, HDShaderPassNames.s_MotionVectorsName, PerObjectData.MotionVectors, stateBlock: stateBlock, batchLayerMask: batchLayerMask))); + + passData.rendererList = renderGraph.CreateRendererList(CreateOpaqueRendererListDesc(cull, hdCamera.camera, HDShaderPassNames.s_MotionVectorsName, PerObjectData.MotionVectors, stateBlock: stateBlock, batchLayerMask: batchLayerMask)); + builder.UseRendererList(passData.rendererList); builder.SetRenderFunc( - (DrawRendererListPassData data, RenderGraphContext context) => + (DrawRendererListPassData data, UnsafeGraphContext ctx) => { - DrawOpaqueRendererList(context, data.frameSettings, data.rendererList); + DrawOpaqueRendererList(ctx, data.frameSettings, data.rendererList); }); } } @@ -714,9 +726,9 @@ internal struct GBufferOutput public int shadowMaskTextureIndex; } - void SetupGBufferTargets(RenderGraph renderGraph, HDCamera hdCamera, TextureHandle sssBuffer, TextureHandle vtFeedbackBuffer, ref PrepassOutput prepassOutput, FrameSettings frameSettings, RenderGraphBuilder builder) + void SetupGBufferTargets(RenderGraph renderGraph, HDCamera hdCamera, TextureHandle sssBuffer, TextureHandle vtFeedbackBuffer, ref PrepassOutput prepassOutput, FrameSettings frameSettings, IUnsafeRenderGraphBuilder builder) { - prepassOutput.depthBuffer = builder.UseDepthBuffer(prepassOutput.depthBuffer, DepthAccess.ReadWrite); + builder.SetRenderAttachmentDepth(prepassOutput.depthBuffer, AccessFlags.ReadWrite); // If the gbuffer targets are already set up, then assume we are setting up for the second gbuffer pass when doing two-pass occlusion culling. // We want to continue to render to the same targets as the first pass in this case, so just mark them as used for this pass and early out. @@ -731,8 +743,10 @@ void SetupGBufferTargets(RenderGraph renderGraph, HDCamera hdCamera, TextureHand bool shadowMasks = frameSettings.IsEnabled(FrameSettingsField.Shadowmask); int currentIndex = 0; - prepassOutput.gbuffer.mrt[currentIndex] = builder.UseColorBuffer(sssBuffer, currentIndex++); - prepassOutput.gbuffer.mrt[currentIndex] = builder.UseColorBuffer(prepassOutput.normalBuffer, currentIndex++); + prepassOutput.gbuffer.mrt[currentIndex] = sssBuffer; + builder.SetRenderAttachment(sssBuffer, currentIndex++); + prepassOutput.gbuffer.mrt[currentIndex] = prepassOutput.normalBuffer; + builder.SetRenderAttachment(prepassOutput.normalBuffer, currentIndex++); #if UNITY_2020_2_OR_NEWER FastMemoryDesc gbufferFastMemDesc; @@ -743,7 +757,7 @@ void SetupGBufferTargets(RenderGraph renderGraph, HDCamera hdCamera, TextureHand // If we are in deferred mode and the SSR is enabled, we need to make sure that the second gbuffer is cleared given that we are using that information for clear coat selection bool clearGBuffer2 = clearGBuffer || hdCamera.IsSSREnabled(); - prepassOutput.gbuffer.mrt[currentIndex] = builder.UseColorBuffer(renderGraph.CreateTexture( + prepassOutput.gbuffer.mrt[currentIndex] = renderGraph.CreateTexture( new TextureDesc(Vector2.one, true, true) { format = GraphicsFormat.R8G8B8A8_UNorm, @@ -752,9 +766,10 @@ void SetupGBufferTargets(RenderGraph renderGraph, HDCamera hdCamera, TextureHand name = "GBuffer2" #if UNITY_2020_2_OR_NEWER , fastMemoryDesc = gbufferFastMemDesc -#endif - }), currentIndex++); - prepassOutput.gbuffer.mrt[currentIndex] = builder.UseColorBuffer(renderGraph.CreateTexture( +#endif + }); + builder.SetRenderAttachment(prepassOutput.gbuffer.mrt[currentIndex], currentIndex++); + prepassOutput.gbuffer.mrt[currentIndex] = renderGraph.CreateTexture( new TextureDesc(Vector2.one, true, true) { format = Builtin.GetLightingBufferFormat(), @@ -764,23 +779,27 @@ void SetupGBufferTargets(RenderGraph renderGraph, HDCamera hdCamera, TextureHand #if UNITY_2020_2_OR_NEWER , fastMemoryDesc = gbufferFastMemDesc #endif - }), currentIndex++); + }); + builder.SetRenderAttachment(prepassOutput.gbuffer.mrt[currentIndex], currentIndex++); #if ENABLE_VIRTUALTEXTURES - prepassOutput.gbuffer.mrt[currentIndex] = builder.UseColorBuffer(vtFeedbackBuffer, currentIndex++); + prepassOutput.gbuffer.mrt[currentIndex] = vtFeedbackBuffer; + builder.SetRenderAttachment(vtFeedbackBuffer, currentIndex++); #endif prepassOutput.gbuffer.lightLayersTextureIndex = -1; prepassOutput.gbuffer.shadowMaskTextureIndex = -1; if (renderingLayers) { - prepassOutput.gbuffer.mrt[currentIndex] = builder.UseColorBuffer(prepassOutput.renderingLayersBuffer, currentIndex); + prepassOutput.gbuffer.mrt[currentIndex] = prepassOutput.renderingLayersBuffer; + builder.SetRenderAttachment(prepassOutput.renderingLayersBuffer, currentIndex); prepassOutput.gbuffer.lightLayersTextureIndex = currentIndex++; } if (shadowMasks) { - prepassOutput.gbuffer.mrt[currentIndex] = builder.UseColorBuffer(renderGraph.CreateTexture( - new TextureDesc(Vector2.one, true, true) { format = Builtin.GetShadowMaskBufferFormat(), clearBuffer = clearGBuffer, clearColor = Color.clear, name = "ShadowMasks" }), currentIndex); + prepassOutput.gbuffer.mrt[currentIndex] = renderGraph.CreateTexture( + new TextureDesc(Vector2.one, true, true) { format = Builtin.GetShadowMaskBufferFormat(), clearBuffer = clearGBuffer, clearColor = Color.clear, name = "ShadowMasks" }); + builder.SetRenderAttachment(prepassOutput.gbuffer.mrt[currentIndex], currentIndex); prepassOutput.gbuffer.shadowMaskTextureIndex = currentIndex++; } @@ -789,26 +808,30 @@ void SetupGBufferTargets(RenderGraph renderGraph, HDCamera hdCamera, TextureHand // TODO RENDERGRAPH: For now we just bind globally for GBuffer/Forward passes. // We need to find a nice way to invalidate this kind of buffers when they should not be used anymore (after the last read). - static void BindDBufferGlobalData(in DBufferOutput dBufferOutput, in RenderGraphContext ctx) + static void BindDBufferGlobalData(in DBufferOutput dBufferOutput, in UnsafeGraphContext ctx) { for (int i = 0; i < dBufferOutput.dBufferCount; ++i) ctx.cmd.SetGlobalTexture(HDShaderIDs._DBufferTexture[i], dBufferOutput.mrt[i]); } - static GBufferOutput ReadGBuffer(GBufferOutput gBufferOutput, RenderGraphBuilder builder) + static GBufferOutput ReadGBuffer(GBufferOutput gBufferOutput, IUnsafeRenderGraphBuilder builder) { // We do the reads "in place" because we don't want to allocate a struct with dynamic arrays each time we do that and we want to keep loops for code sanity. - for (int i = 0; i < gBufferOutput.gBufferCount; ++i) - gBufferOutput.mrt[i] = builder.ReadTexture(gBufferOutput.mrt[i]); + for (int i = 0; i < gBufferOutput.gBufferCount; ++i) { + gBufferOutput.mrt[i] = gBufferOutput.mrt[i]; + builder.UseTexture(gBufferOutput.mrt[i], AccessFlags.Read); + } return gBufferOutput; } - static GBufferOutput WriteGBuffer(GBufferOutput gBufferOutput, RenderGraphBuilder builder) + static GBufferOutput WriteGBuffer(GBufferOutput gBufferOutput, IUnsafeRenderGraphBuilder builder) { // We do the reads "in place" because we don't want to allocate a struct with dynamic arrays each time we do that and we want to keep loops for code sanity. for (int i = 0; i < gBufferOutput.gBufferCount; ++i) - gBufferOutput.mrt[i] = builder.UseColorBuffer(gBufferOutput.mrt[i], i); + { + builder.SetRenderAttachment(gBufferOutput.mrt[i], i); + } return gBufferOutput; } @@ -824,25 +847,23 @@ void RenderGBuffer(RenderGraph renderGraph, TextureHandle sssBuffer, TextureHand return; } - using (var builder = renderGraph.AddRenderPass("GBuffer", out var passData, ProfilingSampler.Get(HDProfileId.GBuffer))) + using (var builder = renderGraph.AddUnsafePass("GBuffer", out var passData, ProfilingSampler.Get(HDProfileId.GBuffer))) { - builder.AllowRendererListCulling(false); - FrameSettings frameSettings = hdCamera.frameSettings; passData.frameSettings = frameSettings; SetupGBufferTargets(renderGraph, hdCamera, sssBuffer, vtFeedbackBuffer, ref prepassOutput, frameSettings, builder); - passData.rendererList = builder.UseRendererList( - renderGraph.CreateRendererList(CreateOpaqueRendererListDesc(cull, hdCamera.camera, HDShaderPassNames.s_GBufferName, m_CurrentRendererConfigurationBakedLighting, - batchLayerMask: batchLayerMask))); + + passData.rendererList = renderGraph.CreateRendererList(CreateOpaqueRendererListDesc(cull, hdCamera.camera, HDShaderPassNames.s_GBufferName, m_CurrentRendererConfigurationBakedLighting, batchLayerMask: batchLayerMask)); + builder.UseRendererList(passData.rendererList); passData.dBuffer = ReadDBuffer(prepassOutput.dbuffer, builder); builder.SetRenderFunc( - (GBufferPassData data, RenderGraphContext context) => + (GBufferPassData data, UnsafeGraphContext ctx) => { - BindDBufferGlobalData(data.dBuffer, context); - DrawOpaqueRendererList(context, data.frameSettings, data.rendererList); + BindDBufferGlobalData(data.dBuffer, ctx); + DrawOpaqueRendererList(ctx, data.frameSettings, data.rendererList); }); } } @@ -963,10 +984,9 @@ void RenderThickness(RenderGraph renderGraph, CullingResults cullingResults, Tex uint requestedLayerMask = (uint)(int)currentAsset.currentPlatformRenderPipelineSettings.computeThicknessLayerMask; bool isXR = hdCamera.xr.enabled; - using (var builder = renderGraph.AddRenderPass("ComputeThickness", out var passData, ProfilingSampler.Get(HDProfileId.ComputeThickness))) + using (var builder = renderGraph.AddUnsafePass("ComputeThickness", out var passData, ProfilingSampler.Get(HDProfileId.ComputeThickness))) { builder.AllowPassCulling(false); - builder.AllowRendererListCulling(false); float downsizeScale; if (currentAsset.currentPlatformRenderPipelineSettings.computeThicknessResolution == ComputeThicknessResolution.Half) @@ -990,9 +1010,11 @@ void RenderThickness(RenderGraph renderGraph, CullingResults cullingResults, Tex passData.readDepthBuffer = readDepthBuffer; if (readDepthBuffer) { - passData.depthBuffer = builder.ReadTexture(depthBuffer); + passData.depthBuffer = depthBuffer; + builder.UseTexture(passData.depthBuffer, AccessFlags.Read); } - passData.finalTextureArrayRT = builder.WriteTexture(thicknessTexture); + passData.finalTextureArrayRT = thicknessTexture; + builder.UseTexture(passData.finalTextureArrayRT, AccessFlags.Write); passData.reindexMap = renderGraph.ImportBuffer(m_ComputeThicknessReindexMap); passData.rendererLists = ListPool.Get(); @@ -1020,13 +1042,16 @@ void RenderThickness(RenderGraph renderGraph, CullingResults cullingResults, Tex layerMask = (1 << k) }; - passData.rendererLists.Add(builder.UseRendererList(renderGraph.CreateRendererList(rendererListOpaque))); + var rendererList = renderGraph.CreateRendererList(rendererListOpaque); + builder.UseRendererList(rendererList); + passData.rendererLists.Add(rendererList); } } builder.SetRenderFunc( - (ThicknessPassData data, RenderGraphContext ctx) => + (ThicknessPassData data, UnsafeGraphContext ctx) => { + var natCmd = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); int idx = 0; foreach (RendererListHandle rl in data.rendererLists) { @@ -1049,22 +1074,22 @@ void RenderThickness(RenderGraph renderGraph, CullingResults cullingResults, Tex RTHandle rtHandle = (RTHandle)data.finalTextureArrayRT; if (!data.isXR) { - CoreUtils.SetRenderTarget(ctx.cmd, rtHandle, ClearFlag.None, Color.black, 0, CubemapFace.Unknown, sliceIdx); + CoreUtils.SetRenderTarget(natCmd, rtHandle, ClearFlag.None, Color.black, 0, CubemapFace.Unknown, sliceIdx); } else { if (data.isXRSinglePass) { int viewId = idx % data.xrViewCount; - CoreUtils.SetRenderTarget(ctx.cmd, rtHandle, ClearFlag.None, Color.black, 0, CubemapFace.Unknown, sliceIdx * data.xrViewCount + viewId); + CoreUtils.SetRenderTarget(natCmd, rtHandle, ClearFlag.None, Color.black, 0, CubemapFace.Unknown, sliceIdx * data.xrViewCount + viewId); } else { - CoreUtils.SetRenderTarget(ctx.cmd, rtHandle, ClearFlag.None, Color.black, 0, CubemapFace.Unknown, sliceIdx); + CoreUtils.SetRenderTarget(natCmd, rtHandle, ClearFlag.None, Color.black, 0, CubemapFace.Unknown, sliceIdx); } } - CoreUtils.DrawRendererList(ctx.renderContext, ctx.cmd, rl); + natCmd.DrawRendererList(rl); ++idx; } @@ -1094,7 +1119,7 @@ void ResolvePrepassBuffers(RenderGraph renderGraph, HDCamera hdCamera, ref Prepa return; } - using (var builder = renderGraph.AddRenderPass("Resolve Prepass MSAA", out var passData)) + using (var builder = renderGraph.AddUnsafePass("Resolve Prepass MSAA", out var passData)) { // This texture stores a set of depth values that are required for evaluating a bunch of effects in MSAA mode (R = Samples Max Depth, G = Samples Min Depth, G = Samples Average Depth) TextureHandle depthValuesBuffer = renderGraph.CreateTexture( @@ -1105,23 +1130,35 @@ void ResolvePrepassBuffers(RenderGraph renderGraph, HDCamera hdCamera, ref Prepa passData.depthResolveMaterial = m_MSAAResolveMaterial; passData.depthResolvePassIndex = SampleCountToPassIndex(hdCamera.msaaSamples); - output.resolvedDepthBuffer = builder.UseDepthBuffer(CreateDepthBuffer(renderGraph, true, MSAASamples.None), DepthAccess.Write); - output.depthValuesMSAA = builder.UseColorBuffer(depthValuesBuffer, 0); - output.resolvedNormalBuffer = builder.UseColorBuffer(CreateNormalBuffer(renderGraph, hdCamera, MSAASamples.None), 1); + output.resolvedDepthBuffer = CreateDepthBuffer(renderGraph, true, MSAASamples.None); + builder.SetRenderAttachmentDepth(output.resolvedDepthBuffer , AccessFlags.Write); + output.depthValuesMSAA = depthValuesBuffer; + builder.SetRenderAttachment(depthValuesBuffer, 0); + output.resolvedNormalBuffer = CreateNormalBuffer(renderGraph, hdCamera, MSAASamples.None); + builder.SetRenderAttachment(output.resolvedNormalBuffer, 1); if (passData.needMotionVectors) - output.resolvedMotionVectorsBuffer = builder.UseColorBuffer(CreateMotionVectorBuffer(renderGraph, false, MSAASamples.None), 2); + { + output.resolvedMotionVectorsBuffer = CreateMotionVectorBuffer(renderGraph, false, MSAASamples.None); + builder.SetRenderAttachment(output.resolvedMotionVectorsBuffer, 2); + } else output.resolvedMotionVectorsBuffer = TextureHandle.nullHandle; - passData.normalBufferMSAA = builder.ReadTexture(output.normalBuffer); - passData.depthAsColorBufferMSAA = builder.ReadTexture(output.depthAsColor); + passData.normalBufferMSAA = output.normalBuffer; + builder.UseTexture(passData.normalBufferMSAA, AccessFlags.Read); + passData.depthAsColorBufferMSAA = output.depthAsColor; + builder.UseTexture(passData.depthAsColorBufferMSAA, AccessFlags.Read); if (passData.needMotionVectors) - passData.motionVectorBufferMSAA = builder.ReadTexture(output.motionVectorsBuffer); + { + passData.motionVectorBufferMSAA = output.motionVectorsBuffer; + builder.UseTexture(passData.motionVectorBufferMSAA, AccessFlags.Read); + } builder.SetRenderFunc( - (ResolvePrepassData data, RenderGraphContext context) => + (ResolvePrepassData data, UnsafeGraphContext ctx) => { + var natCmd = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); data.depthResolveMaterial.SetTexture(HDShaderIDs._NormalTextureMS, data.normalBufferMSAA); data.depthResolveMaterial.SetTexture(HDShaderIDs._DepthTextureMS, data.depthAsColorBufferMSAA); if (data.needMotionVectors) @@ -1129,9 +1166,9 @@ void ResolvePrepassBuffers(RenderGraph renderGraph, HDCamera hdCamera, ref Prepa data.depthResolveMaterial.SetTexture(HDShaderIDs._MotionVectorTextureMS, data.motionVectorBufferMSAA); } - CoreUtils.SetKeyword(context.cmd, "_HAS_MOTION_VECTORS", data.needMotionVectors); + CoreUtils.SetKeyword(natCmd, "_HAS_MOTION_VECTORS", data.needMotionVectors); - context.cmd.DrawProcedural(Matrix4x4.identity, data.depthResolveMaterial, data.depthResolvePassIndex, MeshTopology.Triangles, 3, 1); + natCmd.DrawProcedural(Matrix4x4.identity, data.depthResolveMaterial, data.depthResolvePassIndex, MeshTopology.Triangles, 3, 1); }); } } @@ -1155,7 +1192,7 @@ void CopyDepthBufferIfNeeded(RenderGraph renderGraph, HDCamera hdCamera, ref Pre if (!m_IsDepthBufferCopyValid) { - using (var builder = renderGraph.AddRenderPass("Copy depth buffer", out var passData, ProfilingSampler.Get(HDProfileId.CopyDepthBuffer))) + using (var builder = renderGraph.AddUnsafePass("Copy depth buffer", out var passData, ProfilingSampler.Get(HDProfileId.CopyDepthBuffer))) { var depthMipchainSize = hdCamera.depthMipChainSize; @@ -1165,11 +1202,12 @@ void CopyDepthBufferIfNeeded(RenderGraph renderGraph, HDCamera hdCamera, ref Pre // (in vulkan is seen as a vk event, in dx12 as a barrier, and in gnm as a straight up depth decompress compute job). // Unfortunately, the current render graph implementation only see's the current texture as a read since the abstraction doesnt go too low. // The GfxDevice has no context of passes so it can't put the barrier in the right spot... so for now hacking this by *assuming* this is the first read. :( - passData.inputDepth = builder.ReadWriteTexture(output.resolvedDepthBuffer); - //passData.inputDepth = builder.ReadTexture(output.resolvedDepthBuffer); + passData.inputDepth = output.resolvedDepthBuffer; + builder.UseTexture(passData.inputDepth, AccessFlags.ReadWrite); - passData.outputDepth = builder.WriteTexture(renderGraph.CreateTexture(new TextureDesc(depthMipchainSize.x, depthMipchainSize.y, true, true) - { format = GraphicsFormat.R32_SFloat, enableRandomWrite = true, name = "CameraDepthBufferMipChain" })); + passData.outputDepth = renderGraph.CreateTexture(new TextureDesc(depthMipchainSize.x, depthMipchainSize.y, true, true) + { format = GraphicsFormat.R32_SFloat, enableRandomWrite = true, name = "CameraDepthBufferMipChain" }); + builder.UseTexture(passData.outputDepth, AccessFlags.Write); passData.GPUCopy = m_GPUCopy; passData.width = hdCamera.actualWidth; @@ -1178,7 +1216,7 @@ void CopyDepthBufferIfNeeded(RenderGraph renderGraph, HDCamera hdCamera, ref Pre output.depthPyramidTexture = passData.outputDepth; builder.SetRenderFunc( - (CopyDepthPassData data, RenderGraphContext context) => + (CopyDepthPassData data, UnsafeGraphContext ctx) => { // TODO: maybe we don't actually need the top MIP level? // That way we could avoid making the copy, and build the MIP hierarchy directly. @@ -1188,7 +1226,7 @@ void CopyDepthBufferIfNeeded(RenderGraph renderGraph, HDCamera hdCamera, ref Pre // TODO: reading the depth buffer with a compute shader will cause it to decompress in place. // On console, to preserve the depth test performance, we must NOT decompress the 'm_CameraDepthStencilBuffer' in place. // We should call decompressDepthSurfaceToCopy() and decompress it to 'm_CameraDepthBufferMipChain'. - data.GPUCopy.SampleCopyChannel_xyzw2x(context.cmd, data.inputDepth, data.outputDepth, new RectInt(0, 0, data.width, data.height)); + data.GPUCopy.SampleCopyChannel_xyzw2x(CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd), data.inputDepth, data.outputDepth, new RectInt(0, 0, data.width, data.height)); }); } @@ -1212,7 +1250,7 @@ class ResolveStencilPassData // full res stencil buffer if needed (a pass requires it and MSAA is on). void BuildCoarseStencilAndResolveIfNeeded(RenderGraph renderGraph, HDCamera hdCamera, bool resolveOnly, ref PrepassOutput output) { - using (var builder = renderGraph.AddRenderPass("Resolve Stencil", out var passData, ProfilingSampler.Get(HDProfileId.BuildCoarseStencilAndResolveIfNeeded))) + using (var builder = renderGraph.AddUnsafePass("Resolve Stencil", out var passData, ProfilingSampler.Get(HDProfileId.BuildCoarseStencilAndResolveIfNeeded))) { bool MSAAEnabled = hdCamera.msaaEnabled; @@ -1221,49 +1259,55 @@ void BuildCoarseStencilAndResolveIfNeeded(RenderGraph renderGraph, HDCamera hdCa // With MSAA, the following features require a copy of the stencil, if none are active, no need to do the resolve. passData.resolveIsNecessary = (GetFeatureVariantsEnabled(hdCamera.frameSettings) || hdCamera.IsSSREnabled() || hdCamera.IsSSREnabled(transparent: true)) && MSAAEnabled; passData.resolveStencilCS = runtimeShaders.resolveStencilCS; - passData.inputDepth = builder.ReadTexture(output.depthBuffer); - passData.coarseStencilBuffer = builder.WriteBuffer( - renderGraph.CreateBuffer(new BufferDesc(HDUtils.DivRoundUp(m_MaxCameraWidth, 8) * HDUtils.DivRoundUp(m_MaxCameraHeight, 8) * m_MaxViewCount, sizeof(uint)) { name = "CoarseStencilBuffer" })); + passData.inputDepth = output.depthBuffer; + builder.UseTexture(passData.inputDepth, AccessFlags.Read); + passData.coarseStencilBuffer = + renderGraph.CreateBuffer(new BufferDesc(HDUtils.DivRoundUp(m_MaxCameraWidth, 8) * HDUtils.DivRoundUp(m_MaxCameraHeight, 8) * m_MaxViewCount, sizeof(uint)) { name = "CoarseStencilBuffer" }); + builder.UseBuffer(passData.coarseStencilBuffer, AccessFlags.Write); if (passData.resolveIsNecessary) - passData.resolvedStencil = builder.WriteTexture(renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) { format = GraphicsFormat.R8G8_UInt, enableRandomWrite = true, name = "StencilBufferResolved" })); + { + passData.resolvedStencil = renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) { format = GraphicsFormat.R8G8_UInt, enableRandomWrite = true, name = "StencilBufferResolved" }); + builder.UseTexture(passData.resolvedStencil, AccessFlags.Write); + } else passData.resolvedStencil = output.stencilBuffer; builder.SetRenderFunc( - (ResolveStencilPassData data, RenderGraphContext context) => + (ResolveStencilPassData data, UnsafeGraphContext ctx) => { + var natCmd = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); if (data.resolveOnly && !data.resolveIsNecessary) return; ComputeShader cs = data.resolveStencilCS; - context.cmd.SetComputeBufferParam(cs, 0, HDShaderIDs._CoarseStencilBuffer, data.coarseStencilBuffer); - context.cmd.SetComputeTextureParam(cs, 0, HDShaderIDs._StencilTexture, data.inputDepth, 0, RenderTextureSubElement.Stencil); + natCmd.SetComputeBufferParam(cs, 0, HDShaderIDs._CoarseStencilBuffer, data.coarseStencilBuffer); + natCmd.SetComputeTextureParam(cs, 0, HDShaderIDs._StencilTexture, data.inputDepth, 0, RenderTextureSubElement.Stencil); if (data.resolveIsNecessary) - context.cmd.SetComputeTextureParam(cs, 0, HDShaderIDs._OutputStencilBuffer, data.resolvedStencil); + natCmd.SetComputeTextureParam(cs, 0, HDShaderIDs._OutputStencilBuffer, data.resolvedStencil); - context.cmd.DisableKeyword(cs, new(cs, "MSAA2X")); - context.cmd.DisableKeyword(cs, new(cs, "MSAA4X")); - context.cmd.DisableKeyword(cs, new(cs, "MSAA8X")); + natCmd.DisableKeyword(cs, new(cs, "MSAA2X")); + natCmd.DisableKeyword(cs, new(cs, "MSAA4X")); + natCmd.DisableKeyword(cs, new(cs, "MSAA8X")); switch (data.hdCamera.msaaSamples) { case MSAASamples.MSAA2x: - context.cmd.EnableKeyword(cs, new(cs, "MSAA2X")); + natCmd.EnableKeyword(cs, new(cs, "MSAA2X")); break; case MSAASamples.MSAA4x: - context.cmd.EnableKeyword(cs, new(cs, "MSAA4X")); + natCmd.EnableKeyword(cs, new(cs, "MSAA4X")); break; case MSAASamples.MSAA8x: - context.cmd.EnableKeyword(cs, new(cs, "MSAA8X")); + natCmd.EnableKeyword(cs, new(cs, "MSAA8X")); break; } - context.cmd.SetKeyword(cs, new(cs, "COARSE_STENCIL"), !data.resolveIsNecessary || !data.resolveOnly); - context.cmd.SetKeyword(cs, new(cs, "RESOLVE"), data.resolveIsNecessary); + natCmd.SetKeyword(cs, new(cs, "COARSE_STENCIL"), !data.resolveIsNecessary || !data.resolveOnly); + natCmd.SetKeyword(cs, new(cs, "RESOLVE"), data.resolveIsNecessary); int coarseStencilWidth = HDUtils.DivRoundUp(data.hdCamera.actualWidth, 8); int coarseStencilHeight = HDUtils.DivRoundUp(data.hdCamera.actualHeight, 8); - context.cmd.DispatchCompute(cs, 0, coarseStencilWidth, coarseStencilHeight, data.hdCamera.viewCount); + natCmd.DispatchCompute(cs, 0, coarseStencilWidth, coarseStencilHeight, data.hdCamera.viewCount); }); if (MSAAEnabled) @@ -1293,7 +1337,7 @@ internal struct DBufferOutput static Color s_DBufferClearColorAOSBlend = new Color(1.0f, 1.0f, 1.0f, 1.0f); static Color[] s_DBufferClearColors = { s_DBufferClearColor, s_DBufferClearColorNormal, s_DBufferClearColor, s_DBufferClearColorAOSBlend }; - void SetupDBufferTargets(RenderGraph renderGraph, bool use4RTs, ref PrepassOutput output, RenderGraphBuilder builder) + void SetupDBufferTargets(RenderGraph renderGraph, bool use4RTs, ref PrepassOutput output, IUnsafeRenderGraphBuilder builder, bool canReadBoundDepthBuffer) { GraphicsFormat[] rtFormat; Decal.GetMaterialDBufferDescription(out rtFormat); @@ -1303,18 +1347,22 @@ void SetupDBufferTargets(RenderGraph renderGraph, bool use4RTs, ref PrepassOutpu // https://developer.nvidia.com/gpugems/GPUGems3/gpugems3_ch23.html for (int dbufferIndex = 0; dbufferIndex < output.dbuffer.dBufferCount; ++dbufferIndex) { - output.dbuffer.mrt[dbufferIndex] = builder.UseColorBuffer(renderGraph.CreateTexture( - new TextureDesc(Vector2.one, true, true) { format = rtFormat[dbufferIndex], name = s_DBufferNames[dbufferIndex], clearBuffer = true, clearColor = s_DBufferClearColors[dbufferIndex] }), dbufferIndex); + output.dbuffer.mrt[dbufferIndex] = renderGraph.CreateTexture( + new TextureDesc(Vector2.one, true, true) { format = rtFormat[dbufferIndex], name = s_DBufferNames[dbufferIndex], clearBuffer = true, clearColor = s_DBufferClearColors[dbufferIndex] }); + builder.SetRenderAttachment(output.dbuffer.mrt[dbufferIndex], dbufferIndex); } - builder.UseDepthBuffer(output.resolvedDepthBuffer, DepthAccess.Write); + builder.SetRenderAttachmentDepth(output.resolvedDepthBuffer, canReadBoundDepthBuffer ? AccessFlags.ReadWrite : AccessFlags.Write); } - static DBufferOutput ReadDBuffer(DBufferOutput dBufferOutput, RenderGraphBuilder builder) + static DBufferOutput ReadDBuffer(DBufferOutput dBufferOutput, IUnsafeRenderGraphBuilder builder) { // We do the reads "in place" because we don't want to allocate a struct with dynamic arrays each time we do that and we want to keep loops for code sanity. for (int i = 0; i < dBufferOutput.dBufferCount; ++i) - dBufferOutput.mrt[i] = builder.ReadTexture(dBufferOutput.mrt[i]); + { + dBufferOutput.mrt[i] = dBufferOutput.mrt[i]; + builder.UseTexture(dBufferOutput.mrt[i], AccessFlags.Read); + } return dBufferOutput; } @@ -1339,6 +1387,7 @@ void RenderDBuffer(RenderGraph renderGraph, HDCamera hdCamera, ref PrepassOutput SystemInfo.graphicsDeviceType == GraphicsDeviceType.PlayStation5 || SystemInfo.graphicsDeviceType == GraphicsDeviceType.PlayStation5NGGC || SystemInfo.graphicsDeviceType == GraphicsDeviceType.XboxOne || + SystemInfo.graphicsDeviceType == GraphicsDeviceType.Switch || SystemInfo.graphicsDeviceType == GraphicsDeviceType.XboxOneD3D12 || SystemInfo.graphicsDeviceType == GraphicsDeviceType.GameCoreXboxOne || SystemInfo.graphicsDeviceType == GraphicsDeviceType.GameCoreXboxSeries; @@ -1355,40 +1404,58 @@ void RenderDBuffer(RenderGraph renderGraph, HDCamera hdCamera, ref PrepassOutput !hdCamera.frameSettings.IsEnabled(FrameSettingsField.DepthPrepassWithDeferredRendering)) m_IsDepthBufferCopyValid = false; - using (var builder = renderGraph.AddRenderPass("DBufferRender", out var passData, ProfilingSampler.Get(HDProfileId.DBufferRender))) + using (var builder = renderGraph.AddUnsafePass("DBufferRender", out var passData, ProfilingSampler.Get(HDProfileId.DBufferRender))) { - builder.AllowRendererListCulling(false); - - passData.meshDecalsRendererList = builder.UseRendererList(renderGraph.CreateRendererList(new RendererUtils.RendererListDesc(m_MeshDecalsPassNames, cullingResults, hdCamera.camera) + passData.meshDecalsRendererList = renderGraph.CreateRendererList(new RendererUtils.RendererListDesc(m_MeshDecalsPassNames, cullingResults, hdCamera.camera) { sortingCriteria = HDUtils.k_OpaqueSortingCriteria | SortingCriteria.RendererPriority, rendererConfiguration = PerObjectData.None, renderQueueRange = HDRenderQueue.k_RenderQueue_AllOpaque - })); + }); - passData.vfxDecalsRendererList = builder.UseRendererList(renderGraph.CreateRendererList( - new RendererUtils.RendererListDesc(m_VfxDecalsPassNames, cullingResults, hdCamera.camera) - { - sortingCriteria = HDUtils.k_OpaqueSortingCriteria & ~SortingCriteria.OptimizeStateChanges, - rendererConfiguration = PerObjectData.None, - renderQueueRange = HDRenderQueue.k_RenderQueue_AllOpaque, - })); + builder.UseRendererList(passData.meshDecalsRendererList); + + passData.vfxDecalsRendererList = renderGraph.CreateRendererList(new RendererUtils.RendererListDesc(m_VfxDecalsPassNames, cullingResults, hdCamera.camera) + { + sortingCriteria = HDUtils.k_OpaqueSortingCriteria & ~SortingCriteria.OptimizeStateChanges, + rendererConfiguration = PerObjectData.None, + renderQueueRange = HDRenderQueue.k_RenderQueue_AllOpaque, + }); + + builder.UseRendererList(passData.vfxDecalsRendererList); - SetupDBufferTargets(renderGraph, use4RTs, ref output, builder); - passData.decalBuffer = hdCamera.frameSettings.IsEnabled(FrameSettingsField.DecalLayers) ? builder.ReadTexture(output.renderingLayersBuffer) : renderGraph.defaultResources.blackTextureXR; - passData.depthTexture = canReadBoundDepthBuffer ? builder.ReadTexture(output.resolvedDepthBuffer) : builder.ReadTexture(output.depthPyramidTexture); + SetupDBufferTargets(renderGraph, use4RTs, ref output, builder, canReadBoundDepthBuffer); + if (hdCamera.frameSettings.IsEnabled(FrameSettingsField.DecalLayers)) + passData.decalBuffer = output.renderingLayersBuffer; + else + passData.decalBuffer = renderGraph.defaultResources.blackTextureXR; + builder.UseTexture(passData.decalBuffer, AccessFlags.Read); + + if (canReadBoundDepthBuffer) + passData.depthTexture = output.resolvedDepthBuffer; + else + { + passData.depthTexture = output.depthPyramidTexture; + // only for the pyramid texture, + // resolvedDepthBuffer is already used as a render attachment, no need to connect it to the builder twice + builder.UseTexture(passData.depthTexture, AccessFlags.Read); + } + + builder.AllowGlobalStateModification(true); builder.SetRenderFunc( - (RenderDBufferPassData data, RenderGraphContext context) => + (RenderDBufferPassData data, UnsafeGraphContext ctx) => { - context.cmd.SetGlobalTexture(HDShaderIDs._DecalPrepassTexture, data.decalBuffer); - context.cmd.SetGlobalTexture(HDShaderIDs._CameraDepthTexture, data.depthTexture); + var natCmd = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); + natCmd.SetGlobalTexture(HDShaderIDs._DecalPrepassTexture, data.decalBuffer); + natCmd.SetGlobalTexture(HDShaderIDs._CameraDepthTexture, data.depthTexture); + + natCmd.DrawRendererList(data.meshDecalsRendererList); + natCmd.DrawRendererList(data.vfxDecalsRendererList); - CoreUtils.DrawRendererList(context.renderContext, context.cmd, data.meshDecalsRendererList); - CoreUtils.DrawRendererList(context.renderContext, context.cmd, data.vfxDecalsRendererList); - DecalSystem.instance.RenderIntoDBuffer(context.cmd); + DecalSystem.instance.RenderIntoDBuffer(natCmd); - context.cmd.ClearRandomWriteTargets(); + natCmd.ClearRandomWriteTargets(); }); } } @@ -1418,7 +1485,7 @@ void DecalNormalPatch(RenderGraph renderGraph, HDCamera hdCamera, ref PrepassOut hdCamera.msaaSamples == MSAASamples.None && // MSAA not supported hdCamera.frameSettings.IsEnabled(FrameSettingsField.OpaqueObjects)) { - using (var builder = renderGraph.AddRenderPass("DBuffer Normal (forward)", out var passData, ProfilingSampler.Get(HDProfileId.DBufferNormal))) + using (var builder = renderGraph.AddUnsafePass("DBuffer Normal (forward)", out var passData, ProfilingSampler.Get(HDProfileId.DBufferNormal))) { passData.dBufferCount = m_Asset.currentPlatformRenderPipelineSettings.decalSettings.perChannelMask ? 4 : 3; passData.decalNormalBufferMaterial = m_DecalNormalBufferMaterial; @@ -1437,18 +1504,19 @@ void DecalNormalPatch(RenderGraph renderGraph, HDCamera hdCamera, ref PrepassOut } passData.dBuffer = ReadDBuffer(output.dbuffer, builder); - passData.normalBuffer = builder.WriteTexture(output.resolvedNormalBuffer); - passData.depthStencilBuffer = builder.ReadTexture(output.resolvedDepthBuffer); + passData.normalBuffer = output.resolvedNormalBuffer; + builder.UseTexture(passData.normalBuffer, AccessFlags.Write); + passData.depthStencilBuffer = output.resolvedDepthBuffer; + builder.SetRenderAttachmentDepth(passData.depthStencilBuffer, AccessFlags.ReadWrite); builder.SetRenderFunc( - (DBufferNormalPatchData data, RenderGraphContext ctx) => + (DBufferNormalPatchData data, UnsafeGraphContext ctx) => { data.decalNormalBufferMaterial.SetInt(HDShaderIDs._DecalNormalBufferStencilReadMask, data.stencilMask); data.decalNormalBufferMaterial.SetInt(HDShaderIDs._DecalNormalBufferStencilRef, data.stencilRef); for (int i = 0; i < data.dBufferCount; ++i) data.decalNormalBufferMaterial.SetTexture(HDShaderIDs._DBufferTexture[i], data.dBuffer.mrt[i]); - CoreUtils.SetRenderTarget(ctx.cmd, data.depthStencilBuffer); ctx.cmd.SetRandomWriteTarget(1, data.normalBuffer); ctx.cmd.DrawProcedural(Matrix4x4.identity, data.decalNormalBufferMaterial, 0, MeshTopology.Triangles, 3, 1); ctx.cmd.ClearRandomWriteTargets(); @@ -1494,7 +1562,7 @@ void DownsampleDepthForLowResTransparency(RenderGraph renderGraph, HDCamera hdCa // If the depth buffer hasn't been already copied by the decal depth buffer pass, then we do the copy here. CopyDepthBufferIfNeeded(renderGraph, hdCamera, ref output); - using (var builder = renderGraph.AddRenderPass("Downsample Depth Buffer for Low Res Transparency", out var passData, ProfilingSampler.Get(HDProfileId.DownsampleDepth))) + using (var builder = renderGraph.AddUnsafePass("Downsample Depth Buffer for Low Res Transparency", out var passData, ProfilingSampler.Get(HDProfileId.DownsampleDepth))) { passData.useGatherDownsample = false; if (hdCamera.isLowResScaleHalf) @@ -1511,14 +1579,17 @@ void DownsampleDepthForLowResTransparency(RenderGraph renderGraph, HDCamera hdCa } passData.downsampleScale = hdCamera.lowResScale; passData.viewport = hdCamera.lowResViewport; - passData.depthTexture = builder.ReadTexture(output.depthPyramidTexture); + passData.depthTexture = output.depthPyramidTexture; + builder.UseTexture(passData.depthTexture, AccessFlags.Read); - passData.downsampledDepthBuffer = builder.UseDepthBuffer(renderGraph.CreateTexture( - new TextureDesc(Vector2.one * hdCamera.lowResScale, true, true) { format = CoreUtils.GetDefaultDepthStencilFormat(), name = "LowResDepthBuffer" }), DepthAccess.Write); + passData.downsampledDepthBuffer = renderGraph.CreateTexture( + new TextureDesc(Vector2.one * hdCamera.lowResScale, true, true) { format = CoreUtils.GetDefaultDepthStencilFormat(), name = "LowResDepthBuffer" }); + builder.SetRenderAttachmentDepth(passData.downsampledDepthBuffer, AccessFlags.Write); builder.SetRenderFunc( - (DownsampleDepthForLowResPassData data, RenderGraphContext context) => + (DownsampleDepthForLowResPassData data, UnsafeGraphContext ctx) => { + var natCmd = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); Vector4 scaleBias = Vector4.zero; if (data.useGatherDownsample) { @@ -1533,10 +1604,10 @@ void DownsampleDepthForLowResTransparency(RenderGraph renderGraph, HDCamera hdCa scaleBias.z = data.loadOffset.x; scaleBias.w = data.loadOffset.y; } - context.cmd.SetGlobalVector(HDShaderIDs._ScaleBias, scaleBias); + natCmd.SetGlobalVector(HDShaderIDs._ScaleBias, scaleBias); - context.cmd.SetViewport(data.viewport); - context.cmd.DrawProcedural(Matrix4x4.identity, data.downsampleDepthMaterial, 0, MeshTopology.Triangles, 3, 1, null); + natCmd.SetViewport(data.viewport); + natCmd.DrawProcedural(Matrix4x4.identity, data.downsampleDepthMaterial, 0, MeshTopology.Triangles, 3, 1, null); }); output.downsampledDepthBuffer = passData.downsampledDepthBuffer; @@ -1561,16 +1632,17 @@ void GenerateDepthPyramid(RenderGraph renderGraph, HDCamera hdCamera, ref Prepas // If the depth buffer hasn't been already copied by the decal or low res depth buffer pass, then we do the copy here. CopyDepthBufferIfNeeded(renderGraph, hdCamera, ref output); - using (var builder = renderGraph.AddRenderPass("Generate Depth Buffer MIP Chain", out var passData, ProfilingSampler.Get(HDProfileId.DepthPyramid))) + using (var builder = renderGraph.AddUnsafePass("Generate Depth Buffer MIP Chain", out var passData, ProfilingSampler.Get(HDProfileId.DepthPyramid))) { - passData.depthTexture = builder.WriteTexture(output.depthPyramidTexture); + passData.depthTexture = output.depthPyramidTexture; + builder.UseTexture(passData.depthTexture, AccessFlags.Write); passData.mipInfo = hdCamera.depthBufferMipChainInfo; passData.mipGenerator = m_MipGenerator; builder.SetRenderFunc( - (GenerateDepthPyramidPassData data, RenderGraphContext context) => + (GenerateDepthPyramidPassData data, UnsafeGraphContext ctx) => { - data.mipGenerator.RenderMinDepthPyramid(context.cmd, data.depthTexture, data.mipInfo); + data.mipGenerator.RenderMinDepthPyramid(CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd), data.depthTexture, data.mipInfo); }); output.depthPyramidTexture = passData.depthTexture; @@ -1594,22 +1666,24 @@ void RenderCameraMotionVectors(RenderGraph renderGraph, HDCamera hdCamera, Textu if (!hdCamera.frameSettings.IsEnabled(FrameSettingsField.MotionVectors)) return; - using (var builder = renderGraph.AddRenderPass("Camera Motion Vectors Rendering", out var passData, ProfilingSampler.Get(HDProfileId.CameraMotionVectors))) + using (var builder = renderGraph.AddUnsafePass("Camera Motion Vectors Rendering", out var passData, ProfilingSampler.Get(HDProfileId.CameraMotionVectors))) { // These flags are still required in SRP or the engine won't compute previous model matrices... // If the flag hasn't been set yet on this camera, motion vectors will skip a frame. hdCamera.camera.depthTextureMode |= DepthTextureMode.MotionVectors | DepthTextureMode.Depth; passData.cameraMotionVectorsMaterial = m_CameraMotionVectorsMaterial; - passData.depthBuffer = builder.UseDepthBuffer(depthBuffer, DepthAccess.Read); - passData.motionVectorsBuffer = builder.WriteTexture(motionVectorsBuffer); + passData.depthBuffer = depthBuffer; + builder.SetRenderAttachmentDepth(depthBuffer, AccessFlags.Read); + passData.motionVectorsBuffer = motionVectorsBuffer; + builder.SetRenderAttachment(passData.motionVectorsBuffer, 0); builder.SetRenderFunc( - (CameraMotionVectorsPassData data, RenderGraphContext context) => + (CameraMotionVectorsPassData data, UnsafeGraphContext ctx) => { data.cameraMotionVectorsMaterial.SetInt(HDShaderIDs._StencilMask, (int)StencilUsage.ObjectMotionVector); data.cameraMotionVectorsMaterial.SetInt(HDShaderIDs._StencilRef, (int)StencilUsage.ObjectMotionVector); - HDUtils.DrawFullScreen(context.cmd, data.cameraMotionVectorsMaterial, data.motionVectorsBuffer, data.depthBuffer, null, 0); + HDUtils.DrawFullScreen(CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd), data.cameraMotionVectorsMaterial, data.motionVectorsBuffer, data.depthBuffer, null, 0); }); } } diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDRenderPipeline.RenderGraph.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDRenderPipeline.RenderGraph.cs index d59484b693e..11bc093edb7 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDRenderPipeline.RenderGraph.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDRenderPipeline.RenderGraph.cs @@ -45,8 +45,7 @@ void RecordRenderGraph(RenderRequest renderRequest, // Caution: We require sun light here as some skies use the sun light to render, it means that UpdateSkyEnvironment must be called after PrepareLightsForGPU. // TODO: Try to arrange code so we can trigger this call earlier and use async compute here to run sky convolution during other passes (once we move convolution shader to compute). - if (!m_CurrentDebugDisplaySettings.IsMatcapViewEnabled(hdCamera)) - m_SkyManager.UpdateEnvironment(m_RenderGraph, hdCamera, GetMainLight(), m_CurrentDebugDisplaySettings); + m_SkyManager.UpdateEnvironment(m_RenderGraph, hdCamera, GetMainLight(), m_CurrentDebugDisplaySettings); // We need to initialize the MipChainInfo here, so it will be available to any render graph pass that wants to use it during setup // Be careful, ComputePackedMipChainInfo needs the render texture size and not the viewport size. Otherwise it would compute the wrong size. @@ -106,7 +105,7 @@ void RecordRenderGraph(RenderRequest renderRequest, TextureHandle thicknessTexture = CreateThicknessTexture(m_RenderGraph, hdCamera); - var prepassOutput = RenderPrepass(m_RenderGraph, colorBuffer, lightingBuffers.sssBuffer, thicknessTexture, vtFeedbackBuffer, cullingResults, customPassCullingResults, hdCamera, aovRequest, aovBuffers); + var prepassOutput = RenderPrepass(m_RenderGraph, renderContext, colorBuffer, lightingBuffers.sssBuffer, thicknessTexture, vtFeedbackBuffer, cullingResults, customPassCullingResults, hdCamera, aovRequest, aovBuffers); // Need this during debug render at the end outside of the main loop scope. // Once render graph move is implemented, we can probably remove the branch and this. @@ -135,7 +134,7 @@ void RecordRenderGraph(RenderRequest renderRequest, // For alpha output in AOVs or debug views, in case we have a shadow matte material, we need to render the shadow maps if (m_CurrentDebugDisplaySettings.data.materialDebugSettings.debugViewMaterialCommonValue == Attributes.MaterialSharedProperty.Alpha) - RenderShadows(m_RenderGraph, hdCamera, cullingResults, ref shadowResult); + RenderShadows(m_RenderGraph, renderContext, hdCamera, cullingResults, ref shadowResult); else HDShadowManager.BindDefaultShadowGlobalResources(m_RenderGraph); @@ -158,7 +157,7 @@ void RecordRenderGraph(RenderRequest renderRequest, if (hdCamera.viewCount == 1) { - colorBuffer = RenderPathTracing(m_RenderGraph, hdCamera, colorBuffer); + colorBuffer = RenderPathTracing(m_RenderGraph, renderContext, hdCamera, colorBuffer); } else { @@ -193,7 +192,7 @@ void RecordRenderGraph(RenderRequest renderRequest, if (!rtReflections) lightingBuffers.ssrLightingBuffer = RenderSSR(m_RenderGraph, hdCamera, ref prepassOutput, clearCoatMask, rayCountTexture, historyValidationTexture, m_SkyManager.GetSkyReflection(hdCamera), transparent: false); - RenderShadows(m_RenderGraph, hdCamera, cullingResults, ref shadowResult); + RenderShadows(m_RenderGraph, renderContext, hdCamera, cullingResults, ref shadowResult); StartXRSinglePass(m_RenderGraph, hdCamera); @@ -215,7 +214,7 @@ void RecordRenderGraph(RenderRequest renderRequest, RenderForwardOpaque(m_RenderGraph, hdCamera, colorBuffer, lightingBuffers, gpuLightListOutput, prepassOutput, vtFeedbackBuffer, shadowResult, cullingResults); - RenderCustomPass(m_RenderGraph, hdCamera, colorBuffer, prepassOutput, customPassCullingResults, cullingResults, CustomPassInjectionPoint.AfterOpaqueColor, aovRequest, aovCustomPassBuffers, lightingBuffers); + RenderCustomPass(m_RenderGraph, hdCamera, renderContext, colorBuffer, prepassOutput, customPassCullingResults, cullingResults, CustomPassInjectionPoint.AfterOpaqueColor, aovRequest, aovCustomPassBuffers, lightingBuffers); if (IsComputeThicknessNeeded(hdCamera)) // Compute the thickness for All Transparent which can be occluded by opaque written on the DepthBuffer (which includes the Forward Opaques). @@ -231,7 +230,7 @@ void RecordRenderGraph(RenderRequest renderRequest, // Send all the geometry graphics buffer to client systems if required (must be done after the pyramid and before the transparent depth pre-pass) SendGeometryGraphicsBuffers(m_RenderGraph, prepassOutput.normalBuffer, prepassOutput.depthPyramidTexture, hdCamera); - RenderCustomPass(m_RenderGraph, hdCamera, colorBuffer, prepassOutput, customPassCullingResults, cullingResults, CustomPassInjectionPoint.AfterOpaqueAndSky, aovRequest, aovCustomPassBuffers, lightingBuffers); + RenderCustomPass(m_RenderGraph, hdCamera, renderContext, colorBuffer, prepassOutput, customPassCullingResults, cullingResults, CustomPassInjectionPoint.AfterOpaqueAndSky, aovRequest, aovCustomPassBuffers, lightingBuffers); DoUserAfterOpaqueAndSky(m_RenderGraph, hdCamera, colorBuffer, prepassOutput.resolvedDepthBuffer, prepassOutput.resolvedNormalBuffer, prepassOutput.resolvedMotionVectorsBuffer); @@ -254,10 +253,10 @@ void RecordRenderGraph(RenderRequest renderRequest, RenderClouds(m_RenderGraph, hdCamera, colorBuffer, transparentPrepass.depthBufferPreRefraction, in prepassOutput, ref transparentPrepass, ref opticalFogTransmittance); - colorBuffer = RenderTransparency(m_RenderGraph, hdCamera, colorBuffer, prepassOutput.resolvedNormalBuffer, vtFeedbackBuffer, currentColorPyramid, volumetricLighting, rayCountTexture, opticalFogTransmittance, + colorBuffer = RenderTransparency(m_RenderGraph, hdCamera, renderContext, colorBuffer, prepassOutput.resolvedNormalBuffer, vtFeedbackBuffer, currentColorPyramid, volumetricLighting, rayCountTexture, opticalFogTransmittance, m_SkyManager.GetSkyReflection(hdCamera), gpuLightListOutput, transparentPrepass, ref prepassOutput, shadowResult, cullingResults, customPassCullingResults, aovRequest, aovCustomPassBuffers); - uiBuffer = RenderTransparentUI(m_RenderGraph, hdCamera); + uiBuffer = RenderTransparentUI(m_RenderGraph, hdCamera, renderContext); if (NeedMotionVectorForTransparent(hdCamera.frameSettings)) { @@ -340,7 +339,7 @@ void RecordRenderGraph(RenderRequest renderRequest, // At this point, the color buffer has been filled by either debug views are regular rendering so we can push it here. var colorPickerTexture = PushColorPickerDebugTexture(m_RenderGraph, colorBuffer); - RenderCustomPass(m_RenderGraph, hdCamera, colorBuffer, prepassOutput, customPassCullingResults, cullingResults, CustomPassInjectionPoint.BeforePostProcess, aovRequest, aovCustomPassBuffers, lightingBuffers); + RenderCustomPass(m_RenderGraph, hdCamera, renderContext, colorBuffer, prepassOutput, customPassCullingResults, cullingResults, CustomPassInjectionPoint.BeforePostProcess, aovRequest, aovCustomPassBuffers, lightingBuffers); if (aovRequest.isValid) { @@ -369,7 +368,7 @@ void RecordRenderGraph(RenderRequest renderRequest, ResetCameraDataAfterPostProcess(m_RenderGraph, hdCamera, commandBuffer); - RenderCustomPass(m_RenderGraph, hdCamera, postProcessDest, prepassOutput, customPassCullingResults, cullingResults, CustomPassInjectionPoint.AfterPostProcess, aovRequest, aovCustomPassBuffers); + RenderCustomPass(m_RenderGraph, hdCamera, renderContext, postProcessDest, prepassOutput, customPassCullingResults, cullingResults, CustomPassInjectionPoint.AfterPostProcess, aovRequest, aovCustomPassBuffers); // Copy and rescale depth buffer for XR devices if (hdCamera.xr.enabled && hdCamera.xr.copyDepth && depthBackBuffer.IsValid()) @@ -450,7 +449,7 @@ void ExecuteWithRenderGraph(RenderRequest renderRequest, ScriptableRenderContext renderContext, CommandBuffer commandBuffer) { - var hdCamera = renderRequest.hdCamera;; + var hdCamera = renderRequest.hdCamera; var camera = hdCamera.camera; var parameters = new RenderGraphParameters { @@ -462,6 +461,8 @@ void ExecuteWithRenderGraph(RenderRequest renderRequest, commandBuffer = commandBuffer }; + m_RenderGraph.nativeRenderPassesEnabled = true; + try { m_RenderGraph.BeginRecording(parameters); @@ -506,7 +507,7 @@ class FinalBlitPassData void BlitFinalCameraTexture(RenderGraph renderGraph, HDCamera hdCamera, TextureHandle source, TextureHandle destination, TextureHandle uiTexture, TextureHandle afterPostProcessTexture, int viewIndex, bool outputsToHDR, CubemapFace cubemapFace) { - using (var builder = renderGraph.AddRenderPass("Final Blit (Dev Build Only)", out var passData)) + using (var builder = renderGraph.AddUnsafePass("Final Blit (Dev Build Only)", out var passData)) { if (hdCamera.xr.enabled) { @@ -522,9 +523,12 @@ void BlitFinalCameraTexture(RenderGraph renderGraph, HDCamera hdCamera, TextureH } passData.flip = hdCamera.flipYMode == HDAdditionalCameraData.FlipYMode.ForceFlipY || hdCamera.isMainGameView; passData.blitMaterial = HDUtils.GetBlitMaterial(TextureXR.useTexArray ? TextureDimension.Tex2DArray : TextureDimension.Tex2D, singleSlice: passData.srcTexArraySlice >= 0); - passData.source = builder.ReadTexture(source); - passData.afterPostProcessTexture = builder.ReadTexture(afterPostProcessTexture); - passData.destination = builder.WriteTexture(destination); + passData.source = source; + builder.UseTexture(passData.source, AccessFlags.Read); + passData.afterPostProcessTexture = afterPostProcessTexture; + builder.UseTexture(passData.afterPostProcessTexture, AccessFlags.Read); + passData.destination = destination; + builder.UseTexture(passData.destination, AccessFlags.Write); passData.applyAfterPP = false; passData.cubemapFace = cubemapFace; passData.colorGamut = outputsToHDR ? HDRDisplayColorGamutForCamera(hdCamera) : ColorGamut.sRGB; @@ -534,7 +538,8 @@ void BlitFinalCameraTexture(RenderGraph renderGraph, HDCamera hdCamera, TextureH // Pick the right material based off XR rendering using texture arrays and if we are dealing with a single slice at the moment or processing all slices automatically. passData.blitMaterial = (TextureXR.useTexArray && passData.srcTexArraySlice >= 0) ? m_FinalBlitWithOETFTexArraySingleSlice : m_FinalBlitWithOETF; GetHDROutputParameters(HDRDisplayInformationForCamera(hdCamera), HDRDisplayColorGamutForCamera(hdCamera), m_Tonemapping, out passData.hdrOutputParmeters, out var unused); - passData.uiTexture = builder.ReadTexture(uiTexture); + passData.uiTexture = uiTexture; + builder.UseTexture(passData.uiTexture, AccessFlags.Read); passData.applyAfterPP = hdCamera.frameSettings.IsEnabled(FrameSettingsField.AfterPostprocess) && !NeedHDRDebugMode(m_CurrentDebugDisplaySettings); } else @@ -543,9 +548,9 @@ void BlitFinalCameraTexture(RenderGraph renderGraph, HDCamera hdCamera, TextureH } builder.SetRenderFunc( - (FinalBlitPassData data, RenderGraphContext context) => + (FinalBlitPassData data, UnsafeGraphContext ctx) => { - var propertyBlock = context.renderGraphPool.GetTempMaterialPropertyBlock(); + var propertyBlock = ctx.renderGraphPool.GetTempMaterialPropertyBlock(); RTHandle sourceTexture = data.source; // We are in HDR mode so the final blit is different @@ -590,7 +595,8 @@ void BlitFinalCameraTexture(RenderGraph renderGraph, HDCamera hdCamera, TextureH propertyBlock.SetInt(HDShaderIDs._BlitTexArraySlice, data.srcTexArraySlice); } - HDUtils.DrawFullScreen(context.cmd, data.viewport, data.blitMaterial, data.destination, data.cubemapFace, propertyBlock, 0, data.dstTexArraySlice); + + HDUtils.DrawFullScreen(CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd), data.viewport, data.blitMaterial, data.destination, data.cubemapFace, propertyBlock, 0, data.dstTexArraySlice); }); } } @@ -606,22 +612,25 @@ void UpdateParentExposure(RenderGraph renderGraph, HDCamera hdCamera) if (exposures.useCurrentCamera) return; - using (var builder = renderGraph.AddRenderPass("UpdateParentExposures", out var passData)) + using (var builder = renderGraph.AddUnsafePass("UpdateParentExposures", out var passData)) { passData.textures = exposures; + builder.AllowPassCulling(false); + builder.SetRenderFunc( - (UpdateParentExposureData data, RenderGraphContext context) => + (UpdateParentExposureData data, UnsafeGraphContext ctx) => { + var natCmd = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); if (data.textures.useFetchedExposure) { Color clearCol = new Color(data.textures.fetchedGpuExposure, ColorUtils.ConvertExposureToEV100(data.textures.fetchedGpuExposure), 0.0f, 0.0f); - context.cmd.SetRenderTarget(data.textures.current); - context.cmd.ClearRenderTarget(false, true, clearCol); + natCmd.SetRenderTarget(data.textures.current); + natCmd.ClearRenderTarget(false, true, clearCol); } else { - context.cmd.CopyTexture(data.textures.parent, data.textures.current); + natCmd.CopyTexture(data.textures.parent, data.textures.current); } }); } @@ -652,7 +661,7 @@ class SetFinalTargetPassData void SetFinalTarget(RenderGraph renderGraph, HDCamera hdCamera, TextureHandle depthBuffer, TextureHandle finalTarget, CubemapFace finalTargetFace) { - using (var builder = renderGraph.AddRenderPass("Set Final Target", out var passData)) + using (var builder = renderGraph.AddUnsafePass("Set Final Target", out var passData)) { // Due to our RT handle system we don't write into the backbuffer depth buffer (as our depth buffer can be bigger than the one provided) // So we need to do a copy of the corresponding part of RT depth buffer in the target depth buffer in various situation: @@ -666,24 +675,27 @@ void SetFinalTarget(RenderGraph renderGraph, HDCamera hdCamera, TextureHandle de passData.copyDepth = passData.copyDepth || hdCamera.isMainGameView; // Specific case of Debug.DrawLine and Debug.Ray #endif passData.copyDepth = passData.copyDepth && !hdCamera.xr.enabled; - passData.finalTarget = builder.WriteTexture(finalTarget); + passData.finalTarget = finalTarget; + builder.UseTexture(passData.finalTarget, AccessFlags.Write); passData.finalTargetFace = finalTargetFace; passData.finalViewport = hdCamera.finalViewport; if (passData.copyDepth) { - passData.depthBuffer = builder.ReadTexture(depthBuffer); + passData.depthBuffer = depthBuffer; + builder.UseTexture(passData.depthBuffer, AccessFlags.Read); passData.blitScaleBias = RTHandles.rtHandleProperties.rtHandleScale; passData.flipY = hdCamera.isMainGameView || hdCamera.flipYMode == HDAdditionalCameraData.FlipYMode.ForceFlipY; passData.copyDepthMaterial = m_CopyDepth; } builder.SetRenderFunc( - (SetFinalTargetPassData data, RenderGraphContext ctx) => + (SetFinalTargetPassData data, UnsafeGraphContext ctx) => { + var natCmd = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); // We need to make sure the viewport is correctly set for the editor rendering. It might have been changed by debug overlay rendering just before. - ctx.cmd.SetRenderTarget(data.finalTarget, 0, data.finalTargetFace); - ctx.cmd.SetViewport(data.finalViewport); + natCmd.SetRenderTarget(data.finalTarget, 0, data.finalTargetFace); + natCmd.SetViewport(data.finalViewport); if (data.copyDepth) { @@ -698,7 +710,7 @@ void SetFinalTarget(RenderGraph renderGraph, HDCamera hdCamera, TextureHandle de // When we are Main Game View we need to flip the depth buffer ourselves as we are after postprocess / blit that have already flipped the screen mpb.SetInt("_FlipY", data.flipY ? 1 : 0); mpb.SetVector(HDShaderIDs._BlitScaleBias, data.blitScaleBias); - CoreUtils.DrawFullScreen(ctx.cmd, data.copyDepthMaterial, mpb); + CoreUtils.DrawFullScreen(natCmd, data.copyDepthMaterial, mpb); } } } @@ -719,17 +731,19 @@ void CopyDepth(RenderGraph renderGraph, HDCamera hdCamera, TextureHandle depthBu { string name = copyForXR ? "Copy XR Depth" : "Copy Depth"; var profileID = copyForXR ? HDProfileId.XRDepthCopy : HDProfileId.DuplicateDepthBuffer; - using (var builder = renderGraph.AddRenderPass(name, out var passData, ProfilingSampler.Get(profileID))) + using (var builder = renderGraph.AddUnsafePass(name, out var passData, ProfilingSampler.Get(profileID))) { passData.copyDepth = m_CopyDepth; - passData.depthBuffer = builder.ReadTexture(depthBuffer); - passData.output = builder.UseDepthBuffer(output, DepthAccess.Write); + passData.depthBuffer = depthBuffer; + builder.UseTexture(passData.depthBuffer, AccessFlags.Read); + passData.output = output; + builder.SetRenderAttachmentDepth(output, AccessFlags.Write); passData.blitScaleBias = copyForXR ? new Vector2(hdCamera.actualWidth / hdCamera.finalViewport.width, hdCamera.actualHeight / hdCamera.finalViewport.height) : RTHandles.rtHandleProperties.rtHandleScale; passData.flipY = copyForXR; builder.SetRenderFunc( - (CopyXRDepthPassData data, RenderGraphContext ctx) => + (CopyXRDepthPassData data, UnsafeGraphContext ctx) => { var mpb = ctx.renderGraphPool.GetTempMaterialPropertyBlock(); @@ -737,7 +751,7 @@ void CopyDepth(RenderGraph renderGraph, HDCamera hdCamera, TextureHandle depthBu mpb.SetVector(HDShaderIDs._BlitScaleBias, data.blitScaleBias); mpb.SetInt(HDShaderIDs._FlipY, data.flipY ? 1 : 0); - CoreUtils.DrawFullScreen(ctx.cmd, data.copyDepth, mpb); + CoreUtils.DrawFullScreen(CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd), data.copyDepth, mpb); }); } } @@ -784,7 +798,7 @@ class ForwardTransparentPassData : ForwardPassData void PrepareCommonForwardPassData( RenderGraph renderGraph, - RenderGraphBuilder builder, + IUnsafeRenderGraphBuilder builder, ForwardPassData data, bool opaque, HDCamera hdCamera, @@ -796,36 +810,49 @@ void PrepareCommonForwardPassData( bool useFptl = frameSettings.IsEnabled(FrameSettingsField.FPTLForForwardOpaque) && opaque; data.frameSettings = frameSettings; - data.lightListTile = builder.ReadBuffer(lightLists.lightList); - data.lightListCluster = builder.ReadBuffer(lightLists.perVoxelLightLists); + data.lightListTile = lightLists.lightList; + builder.UseBuffer(data.lightListTile, AccessFlags.Read); + data.lightListCluster = lightLists.perVoxelLightLists; + builder.UseBuffer(data.lightListCluster, AccessFlags.Read); if (!useFptl) { - data.perVoxelOffset = builder.ReadBuffer(lightLists.perVoxelOffset); + data.perVoxelOffset = lightLists.perVoxelOffset; + builder.UseBuffer(data.perVoxelOffset, AccessFlags.Read); if (lightLists.perTileLogBaseTweak.IsValid()) - data.perTileLogBaseTweak = builder.ReadBuffer(lightLists.perTileLogBaseTweak); + { + data.perTileLogBaseTweak = lightLists.perTileLogBaseTweak; + builder.UseBuffer(data.perTileLogBaseTweak, AccessFlags.Read); + } } else { data.perVoxelOffset = BufferHandle.nullHandle; data.perTileLogBaseTweak = BufferHandle.nullHandle; } - data.rendererList = builder.UseRendererList(rendererList); + + builder.UseRendererList(rendererList); + data.rendererList = rendererList; + if (IsComputeThicknessNeeded(hdCamera)) { - data.thicknessTextureArray = builder.ReadTexture(HDComputeThickness.Instance.GetThicknessTextureArray()); - data.thicknessReindexMap = builder.ReadBuffer(renderGraph.ImportBuffer(HDComputeThickness.Instance.GetReindexMap())); + data.thicknessTextureArray = HDComputeThickness.Instance.GetThicknessTextureArray(); + builder.UseTexture(data.thicknessTextureArray, AccessFlags.Read); + data.thicknessReindexMap = renderGraph.ImportBuffer(HDComputeThickness.Instance.GetReindexMap()); + builder.UseBuffer(data.thicknessReindexMap, AccessFlags.Read); } else { - data.thicknessTextureArray = builder.ReadTexture(renderGraph.defaultResources.blackTextureArrayXR); - data.thicknessReindexMap = builder.ReadBuffer(renderGraph.ImportBuffer(m_ComputeThicknessReindexMap)); + data.thicknessTextureArray = renderGraph.defaultResources.blackTextureArrayXR; + builder.UseTexture(data.thicknessTextureArray, AccessFlags.Read); + data.thicknessReindexMap = renderGraph.ImportBuffer(m_ComputeThicknessReindexMap); + builder.UseBuffer(data.thicknessReindexMap, AccessFlags.Read); } HDShadowManager.ReadShadowResult(shadowResult, builder); } - static void BindGlobalLightListBuffers(ForwardPassData data, RenderGraphContext ctx) + static void BindGlobalLightListBuffers(ForwardPassData data, UnsafeGraphContext ctx) { ctx.cmd.SetGlobalBuffer(HDShaderIDs.g_vLightListTile, data.lightListTile); ctx.cmd.SetGlobalBuffer(HDShaderIDs.g_vLightListCluster, data.lightListCluster); @@ -888,7 +915,6 @@ RendererListDesc PrepareForwardTransparentRendererList(CullingResults cullResult static internal void RenderForwardRendererList(FrameSettings frameSettings, RendererList rendererList, bool opaque, - ScriptableRenderContext renderContext, CommandBuffer cmd) { // Note: SHADOWS_SHADOWMASK keyword is enabled in HDRenderPipeline.cs ConfigureForShadowMask @@ -899,9 +925,9 @@ static internal void RenderForwardRendererList(FrameSettings frameSettings, CoreUtils.SetKeyword(cmd, "USE_CLUSTERED_LIGHTLIST", !useFptl); if (opaque) - DrawOpaqueRendererList(renderContext, cmd, frameSettings, rendererList); + DrawOpaqueRendererList(cmd, frameSettings, rendererList); else - DrawTransparentRendererList(renderContext, cmd, frameSettings, rendererList); + DrawTransparentRendererList(cmd, frameSettings, rendererList); } // Guidelines: In deferred by default there is no opaque in forward. However it is possible to force an opaque material to render in forward @@ -925,7 +951,7 @@ void RenderForwardOpaque(RenderGraph renderGraph, bool debugDisplay = m_CurrentDebugDisplaySettings.IsDebugDisplayEnabled(); - using (var builder = renderGraph.AddRenderPass(debugDisplay ? "Forward (+ Emissive) Opaque Debug" : "Forward (+ Emissive) Opaque", + using (var builder = renderGraph.AddUnsafePass(debugDisplay ? "Forward (+ Emissive) Opaque Debug" : "Forward (+ Emissive) Opaque", out var passData, debugDisplay ? ProfilingSampler.Get(HDProfileId.ForwardOpaqueDebug) : ProfilingSampler.Get(HDProfileId.ForwardOpaque))) { @@ -933,18 +959,17 @@ void RenderForwardOpaque(RenderGraph renderGraph, PrepareCommonForwardPassData(renderGraph, builder, passData, true, hdCamera, rendererList, lightLists, shadowResult); int index = 0; - builder.UseColorBuffer(colorBuffer, index++); + builder.SetRenderAttachment(colorBuffer, index++); #if ENABLE_VIRTUALTEXTURES - builder.UseColorBuffer(vtFeedbackBuffer, index++); + builder.SetRenderAttachment(vtFeedbackBuffer, index++); #endif // In case of forward SSS we will bind all the required target. It is up to the shader to write into it or not. if (hdCamera.frameSettings.IsEnabled(FrameSettingsField.SubsurfaceScattering)) { - builder.UseColorBuffer(lightingBuffers.diffuseLightingBuffer, index++); - builder.UseColorBuffer(lightingBuffers.sssBuffer, index++); + builder.SetRenderAttachment(lightingBuffers.diffuseLightingBuffer, index++); + builder.SetRenderAttachment(lightingBuffers.sssBuffer, index++); } - builder.UseDepthBuffer(prepassOutput.depthBuffer, DepthAccess.ReadWrite); - builder.AllowRendererListCulling(false); + builder.SetRenderAttachmentDepth(prepassOutput.depthBuffer, AccessFlags.ReadWrite); passData.enableDecals = hdCamera.frameSettings.IsEnabled(FrameSettingsField.Decals) && DecalSystem.instance.HasAnyForwardEmissive(); passData.dbuffer = ReadDBuffer(prepassOutput.dbuffer, builder); @@ -952,22 +977,23 @@ void RenderForwardOpaque(RenderGraph renderGraph, // Texture has been bound globally during prepass, warn rendergraph that we may use it here if (passData.enableDecals && hdCamera.frameSettings.IsEnabled(FrameSettingsField.DecalLayers)) - builder.ReadTexture(prepassOutput.renderingLayersBuffer); + builder.UseTexture(prepassOutput.renderingLayersBuffer, AccessFlags.Read); builder.SetRenderFunc( - (ForwardOpaquePassData data, RenderGraphContext context) => + (ForwardOpaquePassData data, UnsafeGraphContext ctx) => { - BindGlobalLightListBuffers(data, context); - BindDBufferGlobalData(data.dbuffer, context); - BindGlobalLightingBuffers(data.lightingBuffers, context.cmd); - BindGlobalThicknessBuffers(data.thicknessTextureArray, data.thicknessReindexMap, context.cmd); + var natCmd = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); + BindGlobalLightListBuffers(data, ctx); + BindDBufferGlobalData(data.dbuffer, ctx); + BindGlobalLightingBuffers(data.lightingBuffers, natCmd); + BindGlobalThicknessBuffers(data.thicknessTextureArray, data.thicknessReindexMap, natCmd); - RenderForwardRendererList(data.frameSettings, data.rendererList, true, context.renderContext, context.cmd); + RenderForwardRendererList(data.frameSettings, data.rendererList, true, natCmd); // TODO : what will happen with render list? maybe we will not be able to skip this pass because of decal emissive projector, in this case // we may need to move this part out? if (data.enableDecals) - DecalSystem.instance.RenderForwardEmissive(context.cmd); + DecalSystem.instance.RenderForwardEmissive(natCmd); }); } } @@ -986,18 +1012,18 @@ void RenderForwardError(RenderGraph renderGraph, return; } - using (var builder = renderGraph.AddRenderPass("Forward Error", out var passData, ProfilingSampler.Get(HDProfileId.RenderForwardError))) + using (var builder = renderGraph.AddUnsafePass("Forward Error", out var passData, ProfilingSampler.Get(HDProfileId.RenderForwardError))) { - builder.UseColorBuffer(colorBuffer, 0); - builder.UseDepthBuffer(depthStencilBuffer, DepthAccess.ReadWrite); + builder.SetRenderAttachment(colorBuffer, 0); + builder.SetRenderAttachmentDepth(depthStencilBuffer, AccessFlags.ReadWrite); - passData.rendererList = builder.UseRendererList(renderGraph.CreateRendererList( - CreateOpaqueRendererListDesc(cullResults, hdCamera.camera, m_ForwardErrorPassNames, renderQueueRange: RenderQueueRange.all, overrideMaterial: m_ErrorMaterial))); + passData.rendererList = renderGraph.CreateRendererList(CreateOpaqueRendererListDesc(cullResults, hdCamera.camera, m_ForwardErrorPassNames, renderQueueRange: RenderQueueRange.all, overrideMaterial: m_ErrorMaterial)); + builder.UseRendererList(passData.rendererList); builder.SetRenderFunc( - (ForwardPassData data, RenderGraphContext context) => + (ForwardPassData data, UnsafeGraphContext ctx) => { - CoreUtils.DrawRendererList(context.renderContext, context.cmd, data.rendererList); + ctx.cmd.DrawRendererList(data.rendererList); }); } } @@ -1005,7 +1031,7 @@ void RenderForwardError(RenderGraph renderGraph, class RenderOffscreenUIData { public Camera camera; - public FrameSettings frameSettings; + public RendererListHandle rendererList; public Rect viewport; } @@ -1021,30 +1047,29 @@ TextureHandle CreateOffscreenUIDepthBuffer(RenderGraph renderGraph, MSAASamples { format = CoreUtils.GetDefaultDepthStencilFormat(), clearBuffer = true, msaaSamples = msaaSamples, name = "UI Depth Buffer" }); } - - TextureHandle RenderTransparentUI(RenderGraph renderGraph, HDCamera hdCamera) + TextureHandle RenderTransparentUI(RenderGraph renderGraph, HDCamera hdCamera, ScriptableRenderContext renderContext) { var output = renderGraph.defaultResources.blackTextureXR; if (HDROutputActiveForCameraType(hdCamera) && SupportedRenderingFeatures.active.rendersUIOverlay && !NeedHDRDebugMode(m_CurrentDebugDisplaySettings)) { - using (var builder = renderGraph.AddRenderPass("UI Rendering", out var passData, ProfilingSampler.Get(HDProfileId.OffscreenUIRendering))) + using (var builder = renderGraph.AddUnsafePass("UI Rendering", out var passData, ProfilingSampler.Get(HDProfileId.OffscreenUIRendering))) { - // We cannot use rendererlist here because of the path tracing denoiser which will make it invalid due to multiple rendering per frame - output = builder.UseColorBuffer(CreateOffscreenUIBuffer(renderGraph, hdCamera.msaaSamples, hdCamera.finalViewport), 0); - builder.UseDepthBuffer(CreateOffscreenUIDepthBuffer(renderGraph, hdCamera.msaaSamples, hdCamera.finalViewport), DepthAccess.Write); + output = CreateOffscreenUIBuffer(renderGraph, hdCamera.msaaSamples, hdCamera.finalViewport); + builder.SetRenderAttachment(output, 0); + var depthBuffer = CreateOffscreenUIDepthBuffer(renderGraph, hdCamera.msaaSamples, hdCamera.finalViewport); + builder.SetRenderAttachmentDepth(depthBuffer); passData.camera = hdCamera.camera; - passData.frameSettings = hdCamera.frameSettings; + passData.rendererList = renderGraph.CreateUIOverlayRendererList(hdCamera.camera); + builder.UseRendererList(passData.rendererList); passData.viewport = new Rect(0.0f, 0.0f, hdCamera.finalViewport.width, hdCamera.finalViewport.height); - builder.SetRenderFunc((RenderOffscreenUIData data, RenderGraphContext context) => + builder.SetRenderFunc((RenderOffscreenUIData data, UnsafeGraphContext ctx) => { - context.cmd.SetViewport(data.viewport); - context.cmd.ClearRenderTarget(false, true, Color.clear); - context.renderContext.ExecuteCommandBuffer(context.cmd); - context.cmd.Clear(); + ctx.cmd.SetViewport(data.viewport); + ctx.cmd.ClearRenderTarget(false, true, Color.clear); if (data.camera.targetTexture == null) - context.renderContext.DrawUIOverlay(data.camera); + ctx.cmd.DrawRendererList(passData.rendererList); }); } } @@ -1078,24 +1103,27 @@ TextureHandle RenderAfterPostProcessObjects(RenderGraph renderGraph, HDCamera hd #endif // We render AfterPostProcess objects first into a separate buffer that will be composited in the final post process pass - using (var builder = renderGraph.AddRenderPass("After Post-Process Objects", out var passData, ProfilingSampler.Get(HDProfileId.AfterPostProcessingObjects))) + using (var builder = renderGraph.AddUnsafePass("After Post-Process Objects", out var passData, ProfilingSampler.Get(HDProfileId.AfterPostProcessingObjects))) { bool useDepthBuffer = !hdCamera.RequiresCameraJitter() && hdCamera.frameSettings.IsEnabled(FrameSettingsField.ZTestAfterPostProcessTAA); passData.globalCB = m_ShaderVariablesGlobalCB; passData.hdCamera = hdCamera; - passData.opaqueAfterPostprocessRL = builder.UseRendererList(renderGraph.CreateRendererList( - CreateOpaqueRendererListDesc(cullResults, hdCamera.camera, HDShaderPassNames.s_ForwardOnlyName, renderQueueRange: HDRenderQueue.k_RenderQueue_AfterPostProcessOpaque))); - passData.transparentAfterPostprocessRL = builder.UseRendererList(renderGraph.CreateRendererList( - CreateTransparentRendererListDesc(cullResults, hdCamera.camera, HDShaderPassNames.s_ForwardOnlyName, renderQueueRange: HDRenderQueue.k_RenderQueue_AfterPostProcessTransparent))); - var output = builder.UseColorBuffer(renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) - { format = GraphicsFormat.R8G8B8A8_SRGB, clearBuffer = true, clearColor = Color.black, name = "OffScreen AfterPostProcess" }), 0); + passData.opaqueAfterPostprocessRL = renderGraph.CreateRendererList(CreateOpaqueRendererListDesc(cullResults, hdCamera.camera, HDShaderPassNames.s_ForwardOnlyName, renderQueueRange: HDRenderQueue.k_RenderQueue_AfterPostProcessOpaque)); + builder.UseRendererList(passData.opaqueAfterPostprocessRL); + + passData.transparentAfterPostprocessRL = renderGraph.CreateRendererList(CreateTransparentRendererListDesc(cullResults, hdCamera.camera, HDShaderPassNames.s_ForwardOnlyName, renderQueueRange: HDRenderQueue.k_RenderQueue_AfterPostProcessTransparent)); + builder.UseRendererList(passData.transparentAfterPostprocessRL); + + var output = renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) + { format = GraphicsFormat.R8G8B8A8_SRGB, clearBuffer = true, clearColor = Color.black, name = "OffScreen AfterPostProcess" }); + builder.SetRenderAttachment(output, 0); if (useDepthBuffer) - builder.UseDepthBuffer(prepassOutput.resolvedDepthBuffer, DepthAccess.ReadWrite); + builder.SetRenderAttachmentDepth(prepassOutput.resolvedDepthBuffer, AccessFlags.ReadWrite); builder.SetRenderFunc( - (AfterPostProcessPassData data, RenderGraphContext ctx) => + (AfterPostProcessPassData data, UnsafeGraphContext ctx) => { // Disable camera jitter. See coment in RestoreNonjitteredMatrices if (data.hdCamera.RequiresCameraJitter()) @@ -1107,9 +1135,9 @@ TextureHandle RenderAfterPostProcessObjects(RenderGraph renderGraph, HDCamera hd UpdateOffscreenRenderingConstants(ref data.globalCB, true, 1.0f); ConstantBuffer.PushGlobal(ctx.cmd, data.globalCB, HDShaderIDs._ShaderVariablesGlobal); - DrawOpaqueRendererList(ctx.renderContext, ctx.cmd, data.hdCamera.frameSettings, data.opaqueAfterPostprocessRL); + DrawOpaqueRendererList(ctx, data.hdCamera.frameSettings, data.opaqueAfterPostprocessRL); // Setup off-screen transparency here - DrawTransparentRendererList(ctx.renderContext, ctx.cmd, data.hdCamera.frameSettings, data.transparentAfterPostprocessRL); + DrawTransparentRendererList(ctx, data.hdCamera.frameSettings, data.transparentAfterPostprocessRL); // Reenable camera jitter for CustomPostProcessBeforeTAA injection point if (data.hdCamera.RequiresCameraJitter()) @@ -1165,7 +1193,7 @@ void RenderForwardTransparent(RenderGraph renderGraph, profilingId = preRefractionPass ? HDProfileId.ForwardPreRefraction : HDProfileId.ForwardTransparent; } - using (var builder = renderGraph.AddRenderPass(passName, out var passData, ProfilingSampler.Get(profilingId))) + using (var builder = renderGraph.AddUnsafePass(passName, out var passData, ProfilingSampler.Get(profilingId))) { PrepareCommonForwardPassData(renderGraph, builder, passData, false, hdCamera, rendererList, lightLists, shadowResult); @@ -1175,7 +1203,8 @@ void RenderForwardTransparent(RenderGraph renderGraph, { usedDepthBuffer = transparentPrepass.depthBufferPreRefraction; - passData.depthAndStencil = builder.ReadTexture(prepassOutput.resolvedDepthBuffer); + passData.depthAndStencil = prepassOutput.resolvedDepthBuffer; + builder.UseTexture(passData.depthAndStencil, AccessFlags.Read); } else if (!refractionEnabled) { @@ -1185,7 +1214,8 @@ void RenderForwardTransparent(RenderGraph renderGraph, } else { - passData.depthAndStencil = builder.ReadTexture(transparentPrepass.resolvedDepthBufferPreRefraction); + passData.depthAndStencil = transparentPrepass.resolvedDepthBufferPreRefraction; + builder.UseTexture(passData.depthAndStencil, AccessFlags.Read); } @@ -1194,92 +1224,102 @@ void RenderForwardTransparent(RenderGraph renderGraph, passData.decalsEnabled = (hdCamera.frameSettings.IsEnabled(FrameSettingsField.Decals)) && (DecalSystem.m_DecalDatasCount > 0); passData.renderMotionVecForTransparent = NeedMotionVectorForTransparent(hdCamera.frameSettings); passData.colorMaskTransparentVel = colorMaskTransparentVel; - passData.volumetricLighting = builder.ReadTexture(volumetricLighting); - passData.transparentSSRLighting = builder.ReadTexture(ssrLighting); - passData.depthPyramidTexture = builder.ReadTexture(prepassOutput.depthPyramidTexture); // We need to bind this for transparent materials doing stuff like soft particles etc. + passData.volumetricLighting = volumetricLighting; + builder.UseTexture(passData.volumetricLighting, AccessFlags.Read); + passData.transparentSSRLighting = ssrLighting; + builder.UseTexture(passData.transparentSSRLighting, AccessFlags.Read); + passData.depthPyramidTexture = prepassOutput.depthPyramidTexture; + builder.UseTexture(passData.depthPyramidTexture, AccessFlags.Read); // We need to bind this for transparent materials doing stuff like soft particles etc. // Water absorption buffers - passData.waterSurfaceProfiles = builder.ReadBuffer(transparentPrepass.waterSurfaceProfiles); - passData.waterGBuffer3 = builder.ReadTexture(transparentPrepass.waterGBuffer.waterGBuffer3); - passData.cameraHeightBuffer = builder.ReadBuffer(transparentPrepass.waterGBuffer.cameraHeight); - passData.waterLine = builder.ReadBuffer(transparentPrepass.waterLine); + passData.waterSurfaceProfiles = transparentPrepass.waterSurfaceProfiles; + builder.UseBuffer(passData.waterSurfaceProfiles, AccessFlags.Read); + passData.waterGBuffer3 = transparentPrepass.waterGBuffer.waterGBuffer3; + builder.UseTexture(passData.waterGBuffer3, AccessFlags.Read); + passData.cameraHeightBuffer = transparentPrepass.waterGBuffer.cameraHeight; + builder.UseBuffer(passData.cameraHeightBuffer, AccessFlags.Read); + passData.waterLine = transparentPrepass.waterLine; + builder.UseBuffer(passData.waterLine, AccessFlags.Read); passData.globalCB = m_ShaderVariablesGlobalCB; passData.preRefractionPass = preRefractionPass; - builder.UseDepthBuffer(usedDepthBuffer, DepthAccess.ReadWrite); + builder.SetRenderAttachmentDepth(usedDepthBuffer, AccessFlags.ReadWrite); int index = 0; bool msaa = hdCamera.msaaEnabled; - builder.UseColorBuffer(colorBuffer, index++); + builder.SetRenderAttachment(colorBuffer, index++); #if ENABLE_VIRTUALTEXTURES - builder.UseColorBuffer(vtFeedbackBuffer, index++); + builder.SetRenderAttachment(vtFeedbackBuffer, index++); #endif if (passData.renderMotionVecForTransparent) { - builder.UseColorBuffer(prepassOutput.motionVectorsBuffer, index++); + builder.SetRenderAttachment(prepassOutput.motionVectorsBuffer, index++); } else { // It doesn't really matter what gets bound here since the color mask state set will prevent this from ever being written to. However, we still need to bind something // to avoid warnings about unbound render targets. The following rendertarget could really be anything if renderVelocitiesForTransparent // Create a new target here should reuse existing already released one - builder.UseColorBuffer(builder.CreateTransientTexture(new TextureDesc(Vector2.one, true, true) + builder.SetRenderAttachment(builder.CreateTransientTexture(new TextureDesc(Vector2.one, true, true) { format = GraphicsFormat.R8G8B8A8_SRGB, bindTextureMS = msaa, msaaSamples = hdCamera.msaaSamples, name = "Transparency Velocity Dummy" }), index++); } if (transparentPrepass.enablePerPixelSorting) { - builder.UseColorBuffer(transparentPrepass.beforeRefraction, index++); - builder.UseColorBuffer(transparentPrepass.beforeRefractionAlpha, index++); + builder.SetRenderAttachment(transparentPrepass.beforeRefraction, index++); + builder.SetRenderAttachment(transparentPrepass.beforeRefractionAlpha, index++); } else { - builder.UseColorBuffer(builder.CreateTransientTexture(new TextureDesc(Vector2.one, true, true) + builder.SetRenderAttachment(builder.CreateTransientTexture(new TextureDesc(Vector2.one, true, true) { format = GraphicsFormat.R8G8B8A8_SRGB, bindTextureMS = msaa, msaaSamples = hdCamera.msaaSamples, name = "Before Water Color Dummy" }), index++); - builder.UseColorBuffer(builder.CreateTransientTexture(new TextureDesc(Vector2.one, true, true) + builder.SetRenderAttachment(builder.CreateTransientTexture(new TextureDesc(Vector2.one, true, true) { format = GraphicsFormat.R8G8B8A8_SRGB, bindTextureMS = msaa, msaaSamples = hdCamera.msaaSamples, name = "Before Water Alpha Dummy" }), index++); } if (colorPyramid != null && hdCamera.frameSettings.IsEnabled(FrameSettingsField.Refraction) && !preRefractionPass) - passData.colorPyramid = builder.ReadTexture(colorPyramid.Value); + passData.colorPyramid = colorPyramid.Value; else passData.colorPyramid = renderGraph.defaultResources.blackTextureXR; + builder.UseTexture(passData.colorPyramid, AccessFlags.Read); // TODO RENDERGRAPH // Since in the old code path we bound this as global, it was available here so we need to bind it as well in order not to break existing projects... // This is not good because it will extend its lifetime even when it's not actually used by a shader (we can't have that info). // TODO: Make this explicit? - passData.normalBuffer = builder.ReadTexture(normalBuffer); + passData.normalBuffer = normalBuffer; + builder.UseTexture(passData.normalBuffer, AccessFlags.Read); builder.SetRenderFunc( - (ForwardTransparentPassData data, RenderGraphContext context) => + (ForwardTransparentPassData data, UnsafeGraphContext ctx) => { + var natCmd = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); // Bind all global data/parameters for transparent forward pass - context.cmd.SetGlobalInt(data.colorMaskTransparentVel, data.renderMotionVecForTransparent ? (int)ColorWriteMask.All : 0); + natCmd.SetGlobalInt(data.colorMaskTransparentVel, data.renderMotionVecForTransparent ? (int)ColorWriteMask.All : 0); if (data.decalsEnabled) - DecalSystem.instance.SetAtlas(context.cmd); // for clustered decals + DecalSystem.instance.SetAtlas(natCmd); // for clustered decals data.globalCB._PreRefractionPass = data.preRefractionPass ? 1 : 0; - ConstantBuffer.UpdateData(context.cmd, data.globalCB); + ConstantBuffer.UpdateData(natCmd, data.globalCB); - BindGlobalLightListBuffers(data, context); - BindGlobalThicknessBuffers(data.thicknessTextureArray, data.thicknessReindexMap, context.cmd); + BindGlobalLightListBuffers(data, ctx); + BindGlobalThicknessBuffers(data.thicknessTextureArray, data.thicknessReindexMap, natCmd); - context.cmd.SetGlobalTexture(HDShaderIDs._ColorPyramidTexture, data.colorPyramid); - context.cmd.SetGlobalTexture(HDShaderIDs._SsrLightingTexture, data.transparentSSRLighting); - context.cmd.SetGlobalTexture(HDShaderIDs._VBufferLighting, data.volumetricLighting); - context.cmd.SetGlobalTexture(HDShaderIDs._CameraDepthTexture, data.depthPyramidTexture); - context.cmd.SetGlobalTexture(HDShaderIDs._NormalBufferTexture, data.normalBuffer); + natCmd.SetGlobalTexture(HDShaderIDs._ColorPyramidTexture, data.colorPyramid); + natCmd.SetGlobalTexture(HDShaderIDs._SsrLightingTexture, data.transparentSSRLighting); + natCmd.SetGlobalTexture(HDShaderIDs._VBufferLighting, data.volumetricLighting); + natCmd.SetGlobalTexture(HDShaderIDs._CameraDepthTexture, data.depthPyramidTexture); - context.cmd.SetGlobalTexture(HDShaderIDs._StencilTexture, data.depthAndStencil, RenderTextureSubElement.Stencil); - context.cmd.SetGlobalTexture(HDShaderIDs._RefractiveDepthBuffer, data.depthAndStencil, RenderTextureSubElement.Depth); - context.cmd.SetGlobalBuffer(HDShaderIDs._WaterCameraHeightBuffer, data.cameraHeightBuffer); - context.cmd.SetGlobalBuffer(HDShaderIDs._WaterSurfaceProfiles, data.waterSurfaceProfiles); - context.cmd.SetGlobalTexture(HDShaderIDs._WaterGBufferTexture3, data.waterGBuffer3); - context.cmd.SetGlobalBuffer(HDShaderIDs._WaterLineBuffer, data.waterLine); + natCmd.SetGlobalTexture(HDShaderIDs._NormalBufferTexture, data.normalBuffer); + natCmd.SetGlobalTexture(HDShaderIDs._StencilTexture, data.depthAndStencil, RenderTextureSubElement.Stencil); + natCmd.SetGlobalTexture(HDShaderIDs._RefractiveDepthBuffer, data.depthAndStencil, RenderTextureSubElement.Depth); + natCmd.SetGlobalBuffer(HDShaderIDs._WaterCameraHeightBuffer, data.cameraHeightBuffer); + natCmd.SetGlobalBuffer(HDShaderIDs._WaterSurfaceProfiles, data.waterSurfaceProfiles); + natCmd.SetGlobalTexture(HDShaderIDs._WaterGBufferTexture3, data.waterGBuffer3); + natCmd.SetGlobalBuffer(HDShaderIDs._WaterLineBuffer, data.waterLine); - RenderForwardRendererList(data.frameSettings, data.rendererList, false, context.renderContext, context.cmd); + RenderForwardRendererList(data.frameSettings, data.rendererList, false, natCmd); }); } } @@ -1292,24 +1332,26 @@ void RenderTransparentDepthPrepass(RenderGraph renderGraph, HDCamera hdCamera, i var passName = preRefractionPass ? "Forward PreRefraction Prepass" : "Forward Transparent Prepass"; var profilingId = preRefractionPass ? HDProfileId.PreRefractionDepthPrepass : HDProfileId.TransparentDepthPrepass; - using (var builder = renderGraph.AddRenderPass(passName, out var passData, ProfilingSampler.Get(profilingId))) + using (var builder = renderGraph.AddUnsafePass(passName, out var passData, ProfilingSampler.Get(profilingId))) { - builder.UseDepthBuffer(prepassOutput.depthBuffer, DepthAccess.ReadWrite); - passData.rendererList = builder.UseRendererList(rendererList); + builder.SetRenderAttachmentDepth(prepassOutput.depthBuffer, AccessFlags.ReadWrite); + builder.UseRendererList(rendererList); + + passData.rendererList = rendererList; passData.frameSettings = hdCamera.frameSettings; if (hdCamera.IsSSREnabled(transparent: true)) { int index = 0; if (hdCamera.msaaEnabled) - builder.UseColorBuffer(prepassOutput.depthAsColor, index++); - builder.UseColorBuffer(prepassOutput.normalBuffer, index++); + builder.SetRenderAttachment(prepassOutput.depthAsColor, index++); + builder.SetRenderAttachment(prepassOutput.normalBuffer, index++); } builder.SetRenderFunc( - (ForwardPassData data, RenderGraphContext context) => + (ForwardPassData data, UnsafeGraphContext ctx) => { - DrawTransparentRendererList(context.renderContext, context.cmd, data.frameSettings, data.rendererList); + DrawTransparentRendererList(ctx, data.frameSettings, data.rendererList); }); } } @@ -1319,17 +1361,18 @@ void RenderTransparentDepthPostpass(RenderGraph renderGraph, HDCamera hdCamera, if (!hdCamera.frameSettings.IsEnabled(FrameSettingsField.TransparentPostpass)) return; - using (var builder = renderGraph.AddRenderPass("Transparent Depth Postpass", out var passData, ProfilingSampler.Get(HDProfileId.TransparentDepthPostpass))) + using (var builder = renderGraph.AddUnsafePass("Transparent Depth Postpass", out var passData, ProfilingSampler.Get(HDProfileId.TransparentDepthPostpass))) { passData.frameSettings = hdCamera.frameSettings; - builder.UseDepthBuffer(depthStencilBuffer, DepthAccess.ReadWrite); - passData.rendererList = builder.UseRendererList(renderGraph.CreateRendererList( - CreateTransparentRendererListDesc(cull, hdCamera.camera, m_TransparentDepthPostpassNames))); + builder.SetRenderAttachmentDepth(depthStencilBuffer, AccessFlags.ReadWrite); + + passData.rendererList = renderGraph.CreateRendererList(CreateTransparentRendererListDesc(cull, hdCamera.camera, m_TransparentDepthPostpassNames)); + builder.UseRendererList(passData.rendererList); builder.SetRenderFunc( - (ForwardPassData data, RenderGraphContext context) => + (ForwardPassData data, UnsafeGraphContext ctx) => { - DrawTransparentRendererList(context.renderContext, context.cmd, data.frameSettings, data.rendererList); + DrawTransparentRendererList(ctx, data.frameSettings, data.rendererList); }); } } @@ -1345,29 +1388,31 @@ class RenderLowResTransparentPassData TextureHandle RenderLowResTransparent(RenderGraph renderGraph, HDCamera hdCamera, TextureHandle downsampledDepth, CullingResults cullingResults, RendererListHandle rendererList) { - using (var builder = renderGraph.AddRenderPass("Low Res Transparent", out var passData, ProfilingSampler.Get(HDProfileId.LowResTransparent))) + using (var builder = renderGraph.AddUnsafePass("Low Res Transparent", out var passData, ProfilingSampler.Get(HDProfileId.LowResTransparent))) { passData.globalCB = m_ShaderVariablesGlobalCB; passData.lowResScale = hdCamera.lowResScale; passData.frameSettings = hdCamera.frameSettings; - passData.rendererList = builder.UseRendererList(rendererList); + passData.rendererList = rendererList; passData.viewport = hdCamera.lowResViewport; - builder.UseDepthBuffer(downsampledDepth, DepthAccess.ReadWrite); + + builder.UseRendererList(rendererList); + builder.SetRenderAttachmentDepth(downsampledDepth, AccessFlags.ReadWrite); // We need R16G16B16A16_SFloat as we need a proper alpha channel for compositing. - var output = builder.UseColorBuffer(renderGraph.CreateTexture(new TextureDesc(Vector2.one * hdCamera.lowResScale, true, true) - { format = GraphicsFormat.R16G16B16A16_SFloat, enableRandomWrite = true, clearBuffer = true, clearColor = Color.black, name = "Low res transparent" }), 0); + var output = renderGraph.CreateTexture(new TextureDesc(Vector2.one * hdCamera.lowResScale, true, true) + { format = GraphicsFormat.R16G16B16A16_SFloat, enableRandomWrite = true, clearBuffer = true, clearColor = Color.black, name = "Low res transparent" }); + builder.SetRenderAttachment(output, 0); builder.SetRenderFunc( - (RenderLowResTransparentPassData data, RenderGraphContext context) => + (RenderLowResTransparentPassData data, UnsafeGraphContext ctx) => { + var natCmd = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); UpdateOffscreenRenderingConstants(ref data.globalCB, true, 1.0f / data.lowResScale); - ConstantBuffer.PushGlobal(context.cmd, data.globalCB, HDShaderIDs._ShaderVariablesGlobal); - - context.cmd.SetViewport(data.viewport); - DrawTransparentRendererList(context.renderContext, context.cmd, data.frameSettings, data.rendererList); - + ConstantBuffer.PushGlobal(natCmd, data.globalCB, HDShaderIDs._ShaderVariablesGlobal); + natCmd.SetViewport(data.viewport); + DrawTransparentRendererList(ctx, data.frameSettings, data.rendererList); UpdateOffscreenRenderingConstants(ref data.globalCB, false, 1.0f); - ConstantBuffer.PushGlobal(context.cmd, data.globalCB, HDShaderIDs._ShaderVariablesGlobal); + ConstantBuffer.PushGlobal(natCmd, data.globalCB, HDShaderIDs._ShaderVariablesGlobal); }); return output; @@ -1387,35 +1432,39 @@ class CombineTransparentPassData public TextureHandle beforeRefractionAlpha; } - void PrepareCombineTransparentData(RenderGraphBuilder builder, in TransparentPrepassOutput refractionOutput, ref CombineTransparentPassData passData) + void PrepareCombineTransparentData(IUnsafeRenderGraphBuilder builder, in TransparentPrepassOutput refractionOutput, ref CombineTransparentPassData passData) { passData.passIndex = 0; passData.upsampleMaterial = m_UpsampleTransparency; - passData.beforeRefraction = builder.ReadTexture(refractionOutput.beforeRefraction); - passData.beforeRefractionAlpha = builder.ReadTexture(refractionOutput.beforeRefractionAlpha); + passData.beforeRefraction = refractionOutput.beforeRefraction; + builder.UseTexture(passData.beforeRefraction, AccessFlags.Read); + passData.beforeRefractionAlpha = refractionOutput.beforeRefractionAlpha; + builder.UseTexture(passData.beforeRefractionAlpha, AccessFlags.Read); } void CombineTransparents(RenderGraph renderGraph, HDCamera hdCamera, TextureHandle colorBuffer, in TransparentPrepassOutput refractionOutput, RendererListHandle preRefractionList) { - using (var builder = renderGraph.AddRenderPass("Transparents (Combine)", out var passData, ProfilingSampler.Get(HDProfileId.CombineTransparents))) + using (var builder = renderGraph.AddUnsafePass("Transparents (Combine)", out var passData, ProfilingSampler.Get(HDProfileId.CombineTransparents))) { // If we have clouds, we must combine even if pre refraction list is empty - if (!refractionOutput.clouds.valid) builder.DependsOn(preRefractionList); + if (!refractionOutput.clouds.valid) builder.UseRendererList(preRefractionList); passData.passIndex = 0; passData.upsampleMaterial = m_UpsampleTransparency; - passData.beforeRefraction = builder.ReadTexture(refractionOutput.beforeRefraction); - passData.beforeRefractionAlpha = builder.ReadTexture(refractionOutput.beforeRefractionAlpha); - builder.UseColorBuffer(colorBuffer, 0); + passData.beforeRefraction = refractionOutput.beforeRefraction; + builder.UseTexture(passData.beforeRefraction, AccessFlags.Read); + passData.beforeRefractionAlpha = refractionOutput.beforeRefractionAlpha; + builder.UseTexture(passData.beforeRefractionAlpha, AccessFlags.Read); + builder.SetRenderAttachment(colorBuffer, 0); builder.SetRenderFunc( - (CombineTransparentPassData data, RenderGraphContext context) => + (CombineTransparentPassData data, UnsafeGraphContext ctx) => { data.upsampleMaterial.SetTexture(HDShaderIDs._BeforeRefraction, data.beforeRefraction); data.upsampleMaterial.SetTexture(HDShaderIDs._BeforeRefractionAlpha, data.beforeRefractionAlpha); - context.cmd.DrawProcedural(Matrix4x4.identity, data.upsampleMaterial, data.passIndex, MeshTopology.Triangles, 3, 1, null); + CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd).DrawProcedural(Matrix4x4.identity, data.upsampleMaterial, data.passIndex, MeshTopology.Triangles, 3, 1, null); }); } } @@ -1423,14 +1472,14 @@ void CombineTransparents(RenderGraph renderGraph, HDCamera hdCamera, TextureHand void CombineAndUpsampleTransparent(RenderGraph renderGraph, HDCamera hdCamera, TextureHandle colorBuffer, TextureHandle lowResTransparentBuffer, TextureHandle downsampledDepthBuffer, in TransparentPrepassOutput refractionOutput, RendererListHandle preRefractionList, RendererListHandle lowResList) { // Combine & upsample - using (var builder = renderGraph.AddRenderPass("Transparents (Combine and Upsample)", out var passData, ProfilingSampler.Get(HDProfileId.CombineAndUpsampleTransparent))) + using (var builder = renderGraph.AddUnsafePass("Transparents (Combine and Upsample)", out var passData, ProfilingSampler.Get(HDProfileId.CombineAndUpsampleTransparent))) { // We need to execute this if we have prerefraction objects (combine) or low res transparents (upsample) // Warning: clouds are prerefraction objects if (!refractionOutput.clouds.valid) { - builder.DependsOn(preRefractionList); - builder.DependsOn(lowResList); + builder.UseRendererList(preRefractionList); + builder.UseRendererList(lowResList); } passData.passIndex = 1; @@ -1439,15 +1488,19 @@ void CombineAndUpsampleTransparent(RenderGraph renderGraph, HDCamera hdCamera, T Vector2 lowResDrsFactor = hdCamera.lowResDrsFactor; passData.shaderParams = new Vector4(hdCamera.lowResScale, 1.0f / hdCamera.lowResScale, lowResDrsFactor.x, lowResDrsFactor.y); - passData.lowResTransparentBuffer = builder.ReadTexture(lowResTransparentBuffer); - passData.downsampledDepthBuffer = builder.ReadTexture(downsampledDepthBuffer); - builder.UseColorBuffer(colorBuffer, 0); + passData.lowResTransparentBuffer = lowResTransparentBuffer; + builder.UseTexture(passData.lowResTransparentBuffer, AccessFlags.Read); + passData.downsampledDepthBuffer = downsampledDepthBuffer; + builder.UseTexture(passData.downsampledDepthBuffer, AccessFlags.Read); + builder.SetRenderAttachment(colorBuffer, 0); if (hdCamera.frameSettings.IsEnabled(FrameSettingsField.Refraction)) { passData.passIndex = 2; - passData.beforeRefraction = builder.ReadTexture(refractionOutput.beforeRefraction); - passData.beforeRefractionAlpha = builder.ReadTexture(refractionOutput.beforeRefractionAlpha); + passData.beforeRefraction = refractionOutput.beforeRefraction; + builder.UseTexture(passData.beforeRefraction, AccessFlags.Read); + passData.beforeRefractionAlpha = refractionOutput.beforeRefractionAlpha; + builder.UseTexture(passData.beforeRefractionAlpha, AccessFlags.Read); } var settings = m_Asset.currentPlatformRenderPipelineSettings.lowresTransparentSettings; @@ -1461,8 +1514,9 @@ void CombineAndUpsampleTransparent(RenderGraph renderGraph, HDCamera hdCamera, T } builder.SetRenderFunc( - (CombineTransparentPassData data, RenderGraphContext context) => + (CombineTransparentPassData data, UnsafeGraphContext ctx) => { + var natCmd = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); data.upsampleMaterial.SetVector(HDShaderIDs._Params, data.shaderParams); data.upsampleMaterial.SetTexture(HDShaderIDs._LowResTransparent, data.lowResTransparentBuffer); data.upsampleMaterial.SetTexture(HDShaderIDs._LowResDepthTexture, data.downsampledDepthBuffer); @@ -1471,7 +1525,7 @@ void CombineAndUpsampleTransparent(RenderGraph renderGraph, HDCamera hdCamera, T data.upsampleMaterial.SetTexture(HDShaderIDs._BeforeRefraction, data.beforeRefraction); data.upsampleMaterial.SetTexture(HDShaderIDs._BeforeRefractionAlpha, data.beforeRefractionAlpha); } - context.cmd.DrawProcedural(Matrix4x4.identity, data.upsampleMaterial, data.passIndex, MeshTopology.Triangles, 3, 1, null); + natCmd.DrawProcedural(Matrix4x4.identity, data.upsampleMaterial, data.passIndex, MeshTopology.Triangles, 3, 1, null); }); } } @@ -1483,14 +1537,16 @@ class SetGlobalColorPassData void SetGlobalColorForCustomPass(RenderGraph renderGraph, TextureHandle colorBuffer) { - using (var builder = renderGraph.AddRenderPass("SetGlobalColorForCustomPass", out var passData)) + using (var builder = renderGraph.AddUnsafePass("SetGlobalColorForCustomPass", out var passData)) { - passData.colorBuffer = builder.ReadTexture(colorBuffer); - builder.SetRenderFunc((SetGlobalColorPassData data, RenderGraphContext context) => + passData.colorBuffer = colorBuffer; + builder.AllowGlobalStateModification(true); + builder.UseTexture(passData.colorBuffer, AccessFlags.Read); + builder.SetRenderFunc((SetGlobalColorPassData data, UnsafeGraphContext ctx) => { RTHandle colorPyramid = data.colorBuffer; if (colorPyramid != null) - context.cmd.SetGlobalTexture(HDShaderIDs._ColorPyramidTexture, data.colorBuffer); + ctx.cmd.SetGlobalTexture(HDShaderIDs._ColorPyramidTexture, data.colorBuffer); }); } } @@ -1516,21 +1572,26 @@ TextureHandle RenderRayTracingFlagMask(RenderGraph renderGraph, CullingResults c // This pass will fill the flag mask texture. This will only tag pixels for recursive rendering for now. // TODO: evaluate the usage of a stencil bit in the stencil buffer to save a render target (But it require various headaches to work correctly). - using (var builder = renderGraph.AddRenderPass("RayTracing Flag Mask", out var passData, ProfilingSampler.Get(HDProfileId.RayTracingFlagMask))) + using (var builder = renderGraph.AddUnsafePass("RayTracing Flag Mask", out var passData, ProfilingSampler.Get(HDProfileId.RayTracingFlagMask))) { passData.frameSettings = hdCamera.frameSettings; - passData.depthBuffer = builder.UseDepthBuffer(depthBuffer, DepthAccess.Read); - passData.flagMask = builder.UseColorBuffer(CreateFlagMaskTexture(renderGraph), 0); - passData.opaqueRenderList = builder.UseRendererList(renderGraph.CreateRendererList( - CreateOpaqueRendererListDesc(cull, hdCamera.camera, m_RayTracingPrepassNames, stateBlock: m_DepthStateNoWrite))); - passData.transparentRenderList = builder.UseRendererList(renderGraph.CreateRendererList( - CreateTransparentRendererListDesc(cull, hdCamera.camera, m_RayTracingPrepassNames, renderQueueRange: HDRenderQueue.k_RenderQueue_AllTransparentWithLowRes, stateBlock: m_DepthStateNoWrite))); + passData.depthBuffer = depthBuffer; + builder.SetRenderAttachmentDepth(depthBuffer, AccessFlags.Read); + passData.flagMask = CreateFlagMaskTexture(renderGraph); + builder.SetRenderAttachment(passData.flagMask, 0); + + passData.opaqueRenderList = renderGraph.CreateRendererList(CreateOpaqueRendererListDesc(cull, hdCamera.camera, m_RayTracingPrepassNames, stateBlock: m_DepthStateNoWrite)); + builder.UseRendererList(passData.opaqueRenderList); + + passData.transparentRenderList = renderGraph.CreateRendererList( + CreateTransparentRendererListDesc(cull, hdCamera.camera, m_RayTracingPrepassNames, renderQueueRange: HDRenderQueue.k_RenderQueue_AllTransparentWithLowRes, stateBlock: m_DepthStateNoWrite)); + builder.UseRendererList(passData.transparentRenderList); builder.SetRenderFunc( - (RayTracingFlagMaskPassData data, RenderGraphContext context) => + (RayTracingFlagMaskPassData data, UnsafeGraphContext ctx) => { - DrawOpaqueRendererList(context.renderContext, context.cmd, data.frameSettings, data.opaqueRenderList); - DrawTransparentRendererList(context.renderContext, context.cmd, data.frameSettings, data.transparentRenderList); + DrawOpaqueRendererList(ctx, data.frameSettings, data.opaqueRenderList); + DrawTransparentRendererList(ctx, data.frameSettings, data.transparentRenderList); }); return passData.flagMask; @@ -1618,20 +1679,22 @@ TransparentPrepassOutput RenderTransparentPrepass(RenderGraph renderGraph, Culli // Resolve depth buffer if (hdCamera.msaaSamples != MSAASamples.None) { - using (var builder = renderGraph.AddRenderPass("Resolve Transparent Prepass MSAA", out var passData)) + using (var builder = renderGraph.AddUnsafePass("Resolve Transparent Prepass MSAA", out var passData)) { passData.depthResolveMaterial = m_MSAAResolveMaterialDepthOnly; passData.depthResolvePassIndex = SampleCountToPassIndex(hdCamera.msaaSamples); - passData.depthAsColorBufferMSAA = builder.ReadTexture(output.depthBufferPreRefraction); + passData.depthAsColorBufferMSAA = output.depthBufferPreRefraction; + builder.UseTexture(passData.depthAsColorBufferMSAA, AccessFlags.Read); - output.resolvedDepthBufferPreRefraction = builder.UseDepthBuffer(CreateDepthBuffer(renderGraph, true, MSAASamples.None), DepthAccess.Write); + output.resolvedDepthBufferPreRefraction = CreateDepthBuffer(renderGraph, true, MSAASamples.None); + builder.SetRenderAttachmentDepth(output.resolvedDepthBufferPreRefraction , AccessFlags.Write); builder.SetRenderFunc( - (ResolvePrepassData data, RenderGraphContext context) => + (ResolvePrepassData data, UnsafeGraphContext ctx) => { - CoreUtils.SetKeyword(context.cmd, "_HAS_MOTION_VECTORS", false); + CoreUtils.SetKeyword(ctx.cmd, "_HAS_MOTION_VECTORS", false); data.depthResolveMaterial.SetTexture(HDShaderIDs._DepthTextureMS, data.depthAsColorBufferMSAA); - context.cmd.DrawProcedural(Matrix4x4.identity, data.depthResolveMaterial, data.depthResolvePassIndex, MeshTopology.Triangles, 3, 1); + ctx.cmd.DrawProcedural(Matrix4x4.identity, data.depthResolveMaterial, data.depthResolvePassIndex, MeshTopology.Triangles, 3, 1); }); } } @@ -1643,6 +1706,7 @@ TransparentPrepassOutput RenderTransparentPrepass(RenderGraph renderGraph, Culli TextureHandle RenderTransparency(RenderGraph renderGraph, HDCamera hdCamera, + ScriptableRenderContext renderContext, TextureHandle colorBuffer, TextureHandle normalBuffer, TextureHandle vtFeedbackBuffer, @@ -1677,7 +1741,7 @@ TextureHandle RenderTransparency(RenderGraph renderGraph, // TODO RENDERGRAPH: Remove this when we properly convert custom passes to full render graph with explicit color buffer reads. // To allow users to fetch the current color buffer, we temporarily bind the camera color buffer SetGlobalColorForCustomPass(renderGraph, colorBuffer); - RenderCustomPass(m_RenderGraph, hdCamera, colorBuffer, prepassOutput, customPassCullingResults, cullingResults, CustomPassInjectionPoint.BeforePreRefraction, aovRequest, aovCustomPassBuffers); + RenderCustomPass(m_RenderGraph, hdCamera, renderContext, colorBuffer, prepassOutput, customPassCullingResults, cullingResults, CustomPassInjectionPoint.BeforePreRefraction, aovRequest, aovCustomPassBuffers); SetGlobalColorForCustomPass(renderGraph, currentColorPyramid); // Combine volumetric clouds with prerefraction transparents @@ -1713,7 +1777,7 @@ TextureHandle RenderTransparency(RenderGraph renderGraph, ScreenSpaceFogMultipleScattering(renderGraph, hdCamera, colorBuffer, opticalFogTransmittance, currentColorPyramid, fogMultipleScatteringIntensity); // We don't have access to the color pyramid with transparent if rough refraction is disabled - RenderCustomPass(renderGraph, hdCamera, colorBuffer, prepassOutput, customPassCullingResults, cullingResults, CustomPassInjectionPoint.BeforeTransparent, aovRequest, aovCustomPassBuffers); + RenderCustomPass(renderGraph, hdCamera, renderContext, colorBuffer, prepassOutput, customPassCullingResults, cullingResults, CustomPassInjectionPoint.BeforeTransparent, aovRequest, aovCustomPassBuffers); // Render all type of transparent forward (unlit, lit, complex (hair...)) to keep the sorting between transparent objects. RenderForwardTransparent(renderGraph, hdCamera, colorBuffer, normalBuffer, prepassOutput, transparentPrepass, vtFeedbackBuffer, volumetricLighting, ssrLightingBuffer, currentColorPyramid, lightLists, shadowResult, cullingResults, false, refractionList); @@ -1801,7 +1865,7 @@ void SendGeometryGraphicsBuffers(RenderGraph renderGraph, TextureHandle inputNor if (!parameters.NeedSendBuffers()) return; - using (var builder = renderGraph.AddRenderPass("Send Geometry Buffers", out var passData)) + using (var builder = renderGraph.AddUnsafePass("Send Geometry Buffers", out var passData)) { builder.AllowPassCulling(false); @@ -1814,12 +1878,14 @@ void SendGeometryGraphicsBuffers(RenderGraph renderGraph, TextureHandle inputNor } else { - passData.normalBuffer = builder.ReadTexture(inputNormalBuffer); - passData.depthBuffer = builder.ReadTexture(inputDepthBuffer); + passData.normalBuffer = inputNormalBuffer; + passData.depthBuffer = inputDepthBuffer; } + builder.UseTexture(passData.normalBuffer, AccessFlags.Read); + builder.UseTexture(passData.depthBuffer, AccessFlags.Read); builder.SetRenderFunc( - (SendGeometryBuffersPassData data, RenderGraphContext ctx) => + (SendGeometryBuffersPassData data, UnsafeGraphContext ctx) => { var hdCamera = data.parameters.hdCamera; @@ -1894,14 +1960,14 @@ class SendColorGraphicsBufferPassData void SendColorGraphicsBuffer(RenderGraph renderGraph, HDCamera hdCamera) { - using (var builder = renderGraph.AddRenderPass("Send Color Buffers", out var passData)) + using (var builder = renderGraph.AddUnsafePass("Send Color Buffers", out var passData)) { builder.AllowPassCulling(false); passData.hdCamera = hdCamera; builder.SetRenderFunc( - (SendColorGraphicsBufferPassData data, RenderGraphContext ctx) => + (SendColorGraphicsBufferPassData data, UnsafeGraphContext ctx) => { // Figure out which client systems need which buffers VFXCameraBufferTypes neededVFXBuffers = VFXManager.IsCameraBufferNeeded(data.hdCamera.camera); @@ -1927,17 +1993,17 @@ void ClearStencilBuffer(RenderGraph renderGraph, HDCamera hdCamera, TextureHandl if (!hdCamera.frameSettings.IsEnabled(FrameSettingsField.OpaqueObjects)) // If we don't have opaque objects there is no need to clear. return; - using (var builder = renderGraph.AddRenderPass("Clear Stencil Buffer", out var passData, ProfilingSampler.Get(HDProfileId.ClearStencil))) + using (var builder = renderGraph.AddUnsafePass("Clear Stencil Buffer", out var passData, ProfilingSampler.Get(HDProfileId.ClearStencil))) { passData.clearStencilMaterial = m_ClearStencilBufferMaterial; - //passData.colorBuffer = builder.ReadTexture(colorBuffer); - passData.depthBuffer = builder.WriteTexture(depthBuffer); + passData.depthBuffer = depthBuffer; + builder.UseTexture(passData.depthBuffer, AccessFlags.Write); builder.SetRenderFunc( - (ClearStencilPassData data, RenderGraphContext ctx) => + (ClearStencilPassData data, UnsafeGraphContext ctx) => { data.clearStencilMaterial.SetInt(HDShaderIDs._StencilMask, (int)StencilUsage.HDRPReservedBits); - HDUtils.DrawFullScreen(ctx.cmd, data.clearStencilMaterial, data.depthBuffer); + HDUtils.DrawFullScreen(CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd), data.clearStencilMaterial, data.depthBuffer); }); } } @@ -1986,11 +2052,11 @@ class GenerateColorPyramidData void GenerateColorPyramid(RenderGraph renderGraph, HDCamera hdCamera, TextureHandle inputColor, TextureHandle output, FullScreenDebugMode fsDebugMode, RendererListHandle? depedency = null) { - using (var builder = renderGraph.AddRenderPass("Color Gaussian MIP Chain", out var passData, ProfilingSampler.Get(HDProfileId.ColorPyramid))) + using (var builder = renderGraph.AddUnsafePass("Color Gaussian MIP Chain", out var passData, ProfilingSampler.Get(HDProfileId.ColorPyramid))) { if (depedency != null) { - builder.DependsOn(depedency.Value); + builder.UseRendererList(depedency.Value); } if (!hdCamera.colorPyramidHistoryIsValid) @@ -2004,19 +2070,22 @@ void GenerateColorPyramid(RenderGraph renderGraph, HDCamera hdCamera, TextureHan } - passData.colorPyramid = builder.WriteTexture(output); - passData.inputColor = builder.ReadTexture(inputColor); + passData.colorPyramid = output; + builder.UseTexture(passData.colorPyramid, AccessFlags.Write); + passData.inputColor = inputColor; + builder.UseTexture(passData.inputColor, AccessFlags.Read); passData.hdCamera = hdCamera; passData.mipGenerator = m_MipGenerator; builder.SetRenderFunc( - (GenerateColorPyramidData data, RenderGraphContext context) => + (GenerateColorPyramidData data, UnsafeGraphContext ctx) => { + var natCmd = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); Vector2Int pyramidSize = new Vector2Int(data.hdCamera.actualWidth, data.hdCamera.actualHeight); - data.hdCamera.colorPyramidHistoryMipCount = data.mipGenerator.RenderColorGaussianPyramid(context.cmd, pyramidSize, data.inputColor, data.colorPyramid); + data.hdCamera.colorPyramidHistoryMipCount = data.mipGenerator.RenderColorGaussianPyramid(natCmd, pyramidSize, data.inputColor, data.colorPyramid); // TODO RENDERGRAPH: We'd like to avoid SetGlobals like this but it's required by custom passes currently. // We will probably be able to remove those once we push custom passes fully to render graph. - context.cmd.SetGlobalTexture(HDShaderIDs._ColorPyramidTexture, data.colorPyramid); + natCmd.SetGlobalTexture(HDShaderIDs._ColorPyramidTexture, data.colorPyramid); }); } @@ -2039,18 +2108,22 @@ TextureHandle AccumulateDistortion(RenderGraph renderGraph, TextureHandle depthStencilBuffer, RendererListHandle distortionRendererList) { - using (var builder = renderGraph.AddRenderPass("Accumulate Distortion", out var passData, ProfilingSampler.Get(HDProfileId.AccumulateDistortion))) + using (var builder = renderGraph.AddUnsafePass("Accumulate Distortion", out var passData, ProfilingSampler.Get(HDProfileId.AccumulateDistortion))) { passData.frameSettings = hdCamera.frameSettings; - passData.distortionBuffer = builder.UseColorBuffer(renderGraph.CreateTexture( - new TextureDesc(Vector2.one, true, true) { format = Builtin.GetDistortionBufferFormat(), clearBuffer = true, clearColor = Color.clear, name = "Distortion" }), 0); - passData.depthStencilBuffer = builder.UseDepthBuffer(depthStencilBuffer, DepthAccess.Read); - passData.distortionRendererList = builder.UseRendererList(distortionRendererList); + passData.distortionBuffer = renderGraph.CreateTexture( + new TextureDesc(Vector2.one, true, true) { format = Builtin.GetDistortionBufferFormat(), clearBuffer = true, clearColor = Color.clear, name = "Distortion" }); + builder.SetRenderAttachment(passData.distortionBuffer, 0); + passData.depthStencilBuffer = depthStencilBuffer; + builder.SetRenderAttachmentDepth(depthStencilBuffer, AccessFlags.Read); + + builder.UseRendererList(distortionRendererList); + passData.distortionRendererList = distortionRendererList; builder.SetRenderFunc( - (AccumulateDistortionPassData data, RenderGraphContext context) => + (AccumulateDistortionPassData data, UnsafeGraphContext ctx) => { - DrawTransparentRendererList(context.renderContext, context.cmd, data.frameSettings, data.distortionRendererList); + DrawTransparentRendererList(ctx, data.frameSettings, data.distortionRendererList); }); return passData.distortionBuffer; @@ -2079,23 +2152,35 @@ void RenderDistortion(RenderGraph renderGraph, if (!hdCamera.frameSettings.IsEnabled(FrameSettingsField.Distortion)) return; - using (var builder = renderGraph.AddRenderPass("Apply Distortion", out var passData, ProfilingSampler.Get(HDProfileId.ApplyDistortion))) + using (var builder = renderGraph.AddUnsafePass("Apply Distortion", out var passData, ProfilingSampler.Get(HDProfileId.ApplyDistortion))) { - builder.DependsOn(distortionRendererList); + builder.UseRendererList(distortionRendererList); passData.applyDistortionMaterial = m_ApplyDistortionMaterial; passData.roughDistortion = hdCamera.frameSettings.IsEnabled(FrameSettingsField.RoughDistortion); - passData.sourceColorBuffer = passData.roughDistortion ? builder.ReadTexture(colorPyramidBuffer) : builder.CreateTransientTexture(new TextureDesc(Vector2.one, true, true) { format = GetColorBufferFormat(), name = "DistortionIntermediateBuffer" }); - passData.distortionBuffer = builder.ReadTexture(distortionBuffer); - passData.colorBuffer = builder.UseColorBuffer(colorBuffer, 0); - passData.depthStencilBuffer = builder.UseDepthBuffer(depthStencilBuffer, DepthAccess.Read); + if (passData.roughDistortion) + { + passData.sourceColorBuffer = colorPyramidBuffer; + builder.UseTexture(passData.sourceColorBuffer, AccessFlags.Read); + } + else + { + passData.sourceColorBuffer = builder.CreateTransientTexture(new TextureDesc(Vector2.one, true, true) { format = GetColorBufferFormat(), name = "DistortionIntermediateBuffer" }); + } + passData.distortionBuffer = distortionBuffer; + builder.UseTexture(passData.distortionBuffer, AccessFlags.Read); + passData.colorBuffer = colorBuffer; + builder.SetRenderAttachment(colorBuffer, 0); + passData.depthStencilBuffer = depthStencilBuffer; + builder.SetRenderAttachmentDepth(depthStencilBuffer, AccessFlags.Read); passData.size = new Vector4(hdCamera.actualWidth, hdCamera.actualHeight, 1f / hdCamera.actualWidth, 1f / hdCamera.actualHeight); builder.SetRenderFunc( - (RenderDistortionPassData data, RenderGraphContext context) => + (RenderDistortionPassData data, UnsafeGraphContext ctx) => { + var natCmd = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); if (!data.roughDistortion) - HDUtils.BlitCameraTexture(context.cmd, data.colorBuffer, data.sourceColorBuffer); + Blitter.BlitCameraTexture(natCmd, data.colorBuffer, data.sourceColorBuffer); // TODO: Set stencil stuff via parameters rather than hard-coding it in shader. data.applyDistortionMaterial.SetTexture(HDShaderIDs._DistortionTexture, data.distortionBuffer); @@ -2105,7 +2190,7 @@ void RenderDistortion(RenderGraph renderGraph, data.applyDistortionMaterial.SetInt(HDShaderIDs._StencilRef, (int)StencilUsage.DistortionVectors); data.applyDistortionMaterial.SetInt(HDShaderIDs._RoughDistortion, data.roughDistortion ? 1 : 0); - HDUtils.DrawFullScreen(context.cmd, data.applyDistortionMaterial, data.colorBuffer, data.depthStencilBuffer, null, 0); + HDUtils.DrawFullScreen(natCmd, data.applyDistortionMaterial, data.colorBuffer, data.depthStencilBuffer, null, 0); }); } } @@ -2215,19 +2300,21 @@ TextureHandle ResolveMSAAColor(RenderGraph renderGraph, HDCamera hdCamera, Textu { if (hdCamera.msaaEnabled) { - using (var builder = renderGraph.AddRenderPass("ResolveColor", out var passData)) + using (var builder = renderGraph.AddUnsafePass("ResolveColor", out var passData)) { - passData.input = builder.ReadTexture(input); - passData.output = builder.UseColorBuffer(output, 0); + passData.input = input; + builder.UseTexture(passData.input, AccessFlags.Read); + passData.output = output; + builder.SetRenderAttachment(output, 0); passData.resolveMaterial = m_ColorResolveMaterial; passData.passIndex = SampleCountToPassIndex(hdCamera.msaaSamples); builder.SetRenderFunc( - (ResolveColorData data, RenderGraphContext context) => + (ResolveColorData data, UnsafeGraphContext ctx) => { - var mpb = context.renderGraphPool.GetTempMaterialPropertyBlock(); + var mpb = ctx.renderGraphPool.GetTempMaterialPropertyBlock(); mpb.SetTexture(HDShaderIDs._ColorTextureMS, data.input); - context.cmd.DrawProcedural(Matrix4x4.identity, data.resolveMaterial, data.passIndex, MeshTopology.Triangles, 3, 1, mpb); + ctx.cmd.DrawProcedural(Matrix4x4.identity, data.resolveMaterial, data.passIndex, MeshTopology.Triangles, 3, 1, mpb); }); return passData.output; @@ -2251,19 +2338,21 @@ TextureHandle ResolveMotionVector(RenderGraph renderGraph, HDCamera hdCamera, Te { if (hdCamera.msaaEnabled) { - using (var builder = renderGraph.AddRenderPass("ResolveMotionVector", out var passData)) + using (var builder = renderGraph.AddUnsafePass("ResolveMotionVector", out var passData)) { - passData.input = builder.ReadTexture(input); - passData.output = builder.UseColorBuffer(CreateMotionVectorBuffer(renderGraph, false, MSAASamples.None), 0); + passData.input = input; + builder.UseTexture(passData.input, AccessFlags.Read); + passData.output = CreateMotionVectorBuffer(renderGraph, false, MSAASamples.None); + builder.SetRenderAttachment(passData.output, 0); passData.resolveMaterial = m_MotionVectorResolve; passData.passIndex = SampleCountToPassIndex(hdCamera.msaaSamples); builder.SetRenderFunc( - (ResolveMotionVectorData data, RenderGraphContext context) => + (ResolveMotionVectorData data, UnsafeGraphContext ctx) => { - var mpb = context.renderGraphPool.GetTempMaterialPropertyBlock(); + var mpb = ctx.renderGraphPool.GetTempMaterialPropertyBlock(); mpb.SetTexture(HDShaderIDs._MotionVectorTextureMS, data.input); - context.cmd.DrawProcedural(Matrix4x4.identity, data.resolveMaterial, data.passIndex, MeshTopology.Triangles, 3, 1, mpb); + ctx.cmd.DrawProcedural(Matrix4x4.identity, data.resolveMaterial, data.passIndex, MeshTopology.Triangles, 3, 1, mpb); }); return passData.output; @@ -2279,6 +2368,7 @@ TextureHandle ResolveMotionVector(RenderGraph renderGraph, HDCamera hdCamera, Te class RenderGizmosPassData { public GizmoSubset gizmoSubset; + public RendererListHandle gizmoRendererList; public Camera camera; public Texture exposureTexture; } @@ -2291,22 +2381,23 @@ void RenderGizmos(RenderGraph renderGraph, HDCamera hdCamera, GizmoSubset gizmoS (hdCamera.camera.cameraType == CameraType.Game || hdCamera.camera.cameraType == CameraType.SceneView)) { bool renderPrePostprocessGizmos = (gizmoSubset == GizmoSubset.PreImageEffects); - using (var builder = renderGraph.AddRenderPass(renderPrePostprocessGizmos ? "PrePostprocessGizmos" : "Gizmos", out var passData)) + using (var builder = renderGraph.AddUnsafePass(renderPrePostprocessGizmos ? "PrePostprocessGizmos" : "Gizmos", out var passData)) { bool isMatCapView = m_CurrentDebugDisplaySettings.GetDebugLightingMode() == DebugLightingMode.MatcapView; passData.gizmoSubset = gizmoSubset; passData.camera = hdCamera.camera; passData.exposureTexture = isMatCapView ? (Texture)Texture2D.blackTexture : GetExposureTexture(hdCamera).rt; + passData.gizmoRendererList = renderGraph.CreateGizmoRendererList(hdCamera.camera, gizmoSubset); + + builder.UseRendererList(passData.gizmoRendererList); + builder.AllowPassCulling(false); builder.SetRenderFunc( - (RenderGizmosPassData data, RenderGraphContext ctx) => + (RenderGizmosPassData data, UnsafeGraphContext ctx) => { Gizmos.exposure = data.exposureTexture; - - ctx.renderContext.ExecuteCommandBuffer(ctx.cmd); - ctx.cmd.Clear(); - ctx.renderContext.DrawGizmos(data.camera, data.gizmoSubset); + ctx.cmd.DrawRendererList(data.gizmoRendererList); }); } } @@ -2315,6 +2406,7 @@ void RenderGizmos(RenderGraph renderGraph, HDCamera hdCamera, GizmoSubset gizmoS bool RenderCustomPass(RenderGraph renderGraph, HDCamera hdCamera, + ScriptableRenderContext renderContext, TextureHandle colorBuffer, in PrepassOutput prepassOutput, CullingResults cullingResults, @@ -2350,7 +2442,7 @@ bool RenderCustomPass(RenderGraph renderGraph, waterLineRG = prepassOutput.waterLine, }; - bool executed = CustomPassVolume.ExecuteAllCustomPasses(renderGraph, hdCamera, cullingResults, cameraCullingResults, injectionPoint, customPassTargets); + bool executed = CustomPassVolume.ExecuteAllCustomPasses(renderGraph, hdCamera, renderContext, cullingResults, cameraCullingResults, injectionPoint, customPassTargets); // Push the custom pass buffer, in case it was requested in the AOVs aovRequest.PushCustomPassTexture(renderGraph, injectionPoint, colorBuffer, m_CustomPassColorBuffer, aovCustomPassBuffers); @@ -2368,7 +2460,7 @@ private class UpdatePostProcessScreenSizePassData internal void UpdatePostProcessScreenSize(RenderGraph renderGraph, HDCamera hdCamera, int postProcessWidth, int postProcessHeight) { - using (var builder = renderGraph.AddRenderPass("Update RT Handle Scales CB", out var passData)) + using (var builder = renderGraph.AddUnsafePass("Update RT Handle Scales CB", out var passData)) { passData.hdCamera = hdCamera; passData.shaderVariablesGlobal = m_ShaderVariablesGlobalCB; @@ -2376,7 +2468,7 @@ internal void UpdatePostProcessScreenSize(RenderGraph renderGraph, HDCamera hdCa passData.postProcessHeight = postProcessHeight; builder.SetRenderFunc( - (UpdatePostProcessScreenSizePassData data, RenderGraphContext ctx) => + (UpdatePostProcessScreenSizePassData data, UnsafeGraphContext ctx) => { data.hdCamera.SetPostProcessScreenSize(data.postProcessWidth, data.postProcessHeight); data.hdCamera.UpdateScalesAndScreenSizesCB(ref data.shaderVariablesGlobal); @@ -2395,14 +2487,14 @@ void ResetCameraDataAfterPostProcess(RenderGraph renderGraph, HDCamera hdCamera, { if (DynamicResolutionHandler.instance.DynamicResolutionEnabled()) { - using (var builder = renderGraph.AddRenderPass("Reset Camera Size After Post Process", out var passData)) + using (var builder = renderGraph.AddUnsafePass("Reset Camera Size After Post Process", out var passData)) { passData.hdCamera = hdCamera; passData.shaderVariablesGlobal = m_ShaderVariablesGlobalCB; builder.AllowPassCulling(false); builder.SetRenderFunc( - (ResetCameraSizeForAfterPostProcessPassData data, RenderGraphContext ctx) => + (ResetCameraSizeForAfterPostProcessPassData data, UnsafeGraphContext ctx) => { var screenSize = new Vector4(data.hdCamera.finalViewport.width, data.hdCamera.finalViewport.height, 1.0f / data.hdCamera.finalViewport.width, 1.0f / data.hdCamera.finalViewport.height); data.shaderVariablesGlobal._ScreenSize = screenSize; @@ -2419,7 +2511,7 @@ void ResetCameraDataAfterPostProcess(RenderGraph renderGraph, HDCamera hdCamera, #if UNITY_EDITOR class RenderWireOverlayPassData { - public HDCamera hdCamera; + public RendererListHandle wireOverlayRendererList; } #endif @@ -2428,17 +2520,16 @@ void RenderWireOverlay(RenderGraph renderGraph, HDCamera hdCamera, TextureHandle #if UNITY_EDITOR if (hdCamera.camera.cameraType == CameraType.SceneView) { - using (var builder = renderGraph.AddRenderPass("Wire Overlay", out var passData)) + using (var builder = renderGraph.AddUnsafePass("Wire Overlay", out var passData)) { - builder.WriteTexture(colorBuffer); - passData.hdCamera = hdCamera; + builder.UseTexture(colorBuffer, AccessFlags.Write); + passData.wireOverlayRendererList = renderGraph.CreateWireOverlayRendererList(hdCamera.camera); + builder.UseRendererList(passData.wireOverlayRendererList); builder.SetRenderFunc( - (RenderWireOverlayPassData data, RenderGraphContext ctx) => + (RenderWireOverlayPassData data, UnsafeGraphContext ctx) => { - ctx.renderContext.ExecuteCommandBuffer(ctx.cmd); - ctx.cmd.Clear(); - ctx.renderContext.DrawWireOverlay(data.hdCamera.camera); + ctx.cmd.DrawRendererList(data.wireOverlayRendererList); }); } } @@ -2454,15 +2545,17 @@ void RenderScreenSpaceOverlayUI(RenderGraph renderGraph, HDCamera hdCamera, Text { if (!HDROutputActiveForCameraType(hdCamera) && SupportedRenderingFeatures.active.rendersUIOverlay && hdCamera.isMainGameView) { - using (var builder = renderGraph.AddRenderPass("Screen Space Overlay UI", out var passData)) + using (var builder = renderGraph.AddUnsafePass("Screen Space Overlay UI", out var passData)) { - builder.UseColorBuffer(colorBuffer, 0); - passData.rendererList = builder.UseRendererList(renderGraph.CreateUIOverlayRendererList(hdCamera.camera, UISubset.All)); + builder.SetRenderAttachment(colorBuffer, 0); + + passData.rendererList = renderGraph.CreateUIOverlayRendererList(hdCamera.camera, UISubset.All); + builder.UseRendererList(passData.rendererList); builder.SetRenderFunc( - (RenderScreenSpaceOverlayData data, RenderGraphContext ctx) => + (RenderScreenSpaceOverlayData data, UnsafeGraphContext ctx) => { - CoreUtils.DrawRendererList(ctx.renderContext, ctx.cmd, data.rendererList); + ctx.cmd.DrawRendererList(data.rendererList); }); } } @@ -2483,12 +2576,15 @@ class ScreenSpaceFogMultipleScatteringData void ScreenSpaceFogMultipleScattering(RenderGraph renderGraph, HDCamera hdCamera, TextureHandle colorBuffer, TextureHandle opticalFogTransmittance, TextureHandle colorPyramid, float intensity) { - using (var builder = renderGraph.AddRenderPass("Screen Space Fog Multiple Scattering", out var passData)) + using (var builder = renderGraph.AddUnsafePass("Screen Space Fog Multiple Scattering", out var passData)) { passData.multipleScatteringCompute = runtimeShaders.screenSpaceMultipleScatteringCS; - passData.colorBuffer = builder.ReadWriteTexture(colorBuffer); - passData.colorPyramid = builder.ReadTexture(colorPyramid); - passData.opticalFogTransmittance = builder.ReadTexture(opticalFogTransmittance); + passData.colorBuffer = colorBuffer; + builder.UseTexture(passData.colorBuffer, AccessFlags.ReadWrite); + passData.colorPyramid = colorPyramid; + builder.UseTexture(passData.colorPyramid, AccessFlags.Read); + passData.opticalFogTransmittance = opticalFogTransmittance; + builder.UseTexture(passData.opticalFogTransmittance, AccessFlags.Read); passData.outputWidth = hdCamera.actualWidth; passData.outputHeight = hdCamera.actualHeight; passData.viewCount = hdCamera.viewCount; @@ -2497,15 +2593,16 @@ void ScreenSpaceFogMultipleScattering(RenderGraph renderGraph, HDCamera hdCamera float finalIntensity = intensity * Mathf.Clamp01(hdCamera.actualHeight / 1080f); passData.intensity = finalIntensity; builder.SetRenderFunc( - (ScreenSpaceFogMultipleScatteringData data, RenderGraphContext ctx) => + (ScreenSpaceFogMultipleScatteringData data, UnsafeGraphContext ctx) => { + var natCmd = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); // lerp the color buffer and color pyramid using fog opacity factor - ctx.cmd.SetComputeTextureParam(data.multipleScatteringCompute, 0, HDShaderIDs._OpticalFogTransmittance, data.opticalFogTransmittance); - ctx.cmd.SetComputeTextureParam(data.multipleScatteringCompute, 0, HDShaderIDs._ColorPyramidTexture, data.colorPyramid); - ctx.cmd.SetComputeTextureParam(data.multipleScatteringCompute, 0, HDShaderIDs._Destination, data.colorBuffer); - ctx.cmd.SetComputeFloatParam(data.multipleScatteringCompute, HDShaderIDs._MultipleScatteringIntensity, data.intensity); - ctx.cmd.SetComputeFloatParam(data.multipleScatteringCompute, HDShaderIDs._OpticalFogTextureChannel, data.channel); - ctx.cmd.DispatchCompute(data.multipleScatteringCompute, 0, HDUtils.DivRoundUp(data.outputWidth, 8), HDUtils.DivRoundUp(data.outputHeight, 8), data.viewCount); + natCmd.SetComputeTextureParam(data.multipleScatteringCompute, 0, HDShaderIDs._OpticalFogTransmittance, data.opticalFogTransmittance); + natCmd.SetComputeTextureParam(data.multipleScatteringCompute, 0, HDShaderIDs._ColorPyramidTexture, data.colorPyramid); + natCmd.SetComputeTextureParam(data.multipleScatteringCompute, 0, HDShaderIDs._Destination, data.colorBuffer); + natCmd.SetComputeFloatParam(data.multipleScatteringCompute, HDShaderIDs._MultipleScatteringIntensity, data.intensity); + natCmd.SetComputeFloatParam(data.multipleScatteringCompute, HDShaderIDs._OpticalFogTextureChannel, data.channel); + natCmd.DispatchCompute(data.multipleScatteringCompute, 0, HDUtils.DivRoundUp(data.outputWidth, 8), HDUtils.DivRoundUp(data.outputHeight, 8), data.viewCount); }); } } diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDRenderPipeline.RenderGraphUtils.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDRenderPipeline.RenderGraphUtils.cs index 6886ab04992..49d117b0f71 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDRenderPipeline.RenderGraphUtils.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDRenderPipeline.RenderGraphUtils.cs @@ -17,16 +17,17 @@ class GenerateMipmapsPassData internal static void GenerateMipmaps(RenderGraph renderGraph, TextureHandle texture) { - using (var builder = renderGraph.AddRenderPass("Generate Mipmaps", out var passData)) + using (var builder = renderGraph.AddUnsafePass("Generate Mipmaps", out var passData)) { - passData.texture = builder.ReadWriteTexture(texture); + passData.texture = texture; + builder.UseTexture(passData.texture, AccessFlags.ReadWrite); builder.SetRenderFunc( - (GenerateMipmapsPassData data, RenderGraphContext context) => + (GenerateMipmapsPassData data, UnsafeGraphContext ctx) => { RTHandle tex = data.texture; Debug.Assert(tex.rt.autoGenerateMips == false); - context.cmd.GenerateMips(tex); + ctx.cmd.GenerateMips(tex); }); } } @@ -39,17 +40,17 @@ class SetGlobalTexturePassData internal static void SetGlobalTexture(RenderGraph renderGraph, int shaderID, Texture texture) { - using (var builder = renderGraph.AddRenderPass("SetGlobalTexture", out var passData)) + using (var builder = renderGraph.AddUnsafePass("SetGlobalTexture", out var passData)) { - builder.AllowPassCulling(false); + builder.AllowGlobalStateModification(true); passData.shaderID = shaderID; passData.texture = texture; builder.SetRenderFunc( - (SetGlobalTexturePassData data, RenderGraphContext context) => + (SetGlobalTexturePassData data, UnsafeGraphContext ctx) => { - context.cmd.SetGlobalTexture(data.shaderID, data.texture); + ctx.cmd.SetGlobalTexture(data.shaderID, data.texture); }); } } @@ -62,29 +63,29 @@ class SetGlobalBufferPassData internal static void SetGlobalBuffer(RenderGraph renderGraph, int shaderID, GraphicsBuffer buffer) { - using (var builder = renderGraph.AddRenderPass("SetGlobalBuffer", out var passData)) + using (var builder = renderGraph.AddUnsafePass("SetGlobalBuffer", out var passData)) { - builder.AllowPassCulling(false); + builder.AllowGlobalStateModification(true); passData.shaderID = shaderID; passData.buffer = buffer; builder.SetRenderFunc( - (SetGlobalBufferPassData data, RenderGraphContext context) => + (SetGlobalBufferPassData data, UnsafeGraphContext ctx) => { - context.cmd.SetGlobalBuffer(data.shaderID, data.buffer); + ctx.cmd.SetGlobalBuffer(data.shaderID, data.buffer); }); } } - static internal void DrawOpaqueRendererList(in RenderGraphContext context, in FrameSettings frameSettings, in RendererList rendererList) + static internal void DrawOpaqueRendererList(in UnsafeGraphContext ctx, in FrameSettings frameSettings, in RendererList rendererList) { - DrawOpaqueRendererList(context.renderContext, context.cmd, frameSettings, rendererList); + DrawOpaqueRendererList(CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd), frameSettings, rendererList); } - static void DrawTransparentRendererList(in RenderGraphContext context, in FrameSettings frameSettings, RendererList rendererList) + static void DrawTransparentRendererList(in UnsafeGraphContext ctx, in FrameSettings frameSettings, RendererList rendererList) { - DrawTransparentRendererList(context.renderContext, context.cmd, frameSettings, rendererList); + DrawTransparentRendererList(CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd), frameSettings, rendererList); } internal static int SampleCountToPassIndex(MSAASamples samples) @@ -157,14 +158,16 @@ internal static void StartXRSinglePass(RenderGraph renderGraph, HDCamera hdCamer { if (hdCamera.xr.enabled) { - using (var builder = renderGraph.AddRenderPass("Start XR single-pass", out var passData)) + using (var builder = renderGraph.AddUnsafePass("Start XR single-pass", out var passData)) { passData.xr = hdCamera.xr; + builder.AllowPassCulling(false); + builder.SetRenderFunc( - (XRRenderingPassData data, RenderGraphContext context) => + (XRRenderingPassData data, UnsafeGraphContext ctx) => { - data.xr.StartSinglePass(context.cmd); + data.xr.StartSinglePass(ctx.cmd); }); } } @@ -174,14 +177,16 @@ internal static void StopXRSinglePass(RenderGraph renderGraph, HDCamera hdCamera { if (hdCamera.xr.enabled) { - using (var builder = renderGraph.AddRenderPass("Stop XR single-pass", out var passData)) + using (var builder = renderGraph.AddUnsafePass("Stop XR single-pass", out var passData)) { passData.xr = hdCamera.xr; + builder.AllowPassCulling(false); + builder.SetRenderFunc( - (XRRenderingPassData data, RenderGraphContext context) => + (XRRenderingPassData data, UnsafeGraphContext ctx) => { - data.xr.StopSinglePass(context.cmd); + data.xr.StopSinglePass(ctx.cmd); }); } } @@ -199,21 +204,27 @@ void RenderXROcclusionMeshes(RenderGraph renderGraph, HDCamera hdCamera, Texture { if (hdCamera.xr.hasValidOcclusionMesh && m_Asset.currentPlatformRenderPipelineSettings.xrSettings.occlusionMesh) { - using (var builder = renderGraph.AddRenderPass("XR Occlusion Meshes", out var passData)) + using (var builder = renderGraph.AddUnsafePass("XR Occlusion Meshes", out var passData)) { passData.hdCamera = hdCamera; - passData.colorBuffer = builder.WriteTexture(colorBuffer); - passData.depthBuffer = builder.UseDepthBuffer(depthBuffer, DepthAccess.Write); + passData.colorBuffer = colorBuffer; + passData.depthBuffer = depthBuffer; passData.clearColor = GetColorBufferClearColor(hdCamera); + builder.UseTexture(passData.colorBuffer, AccessFlags.Write); + builder.SetRenderAttachmentDepth(passData.depthBuffer, AccessFlags.Write); + builder.AllowPassCulling(false); + builder.SetRenderFunc( - (RenderOcclusionMeshesPassData data, RenderGraphContext ctx) => + (RenderOcclusionMeshesPassData data, UnsafeGraphContext ctx) => { - CoreUtils.SetRenderTarget(ctx.cmd, data.colorBuffer, data.depthBuffer, ClearFlag.None, data.clearColor, 0, CubemapFace.Unknown, -1); + var natCmd = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); + + CoreUtils.SetRenderTarget(natCmd, data.colorBuffer, data.depthBuffer, ClearFlag.None, data.clearColor, 0, CubemapFace.Unknown, -1); ctx.cmd.SetGlobalVector(HDShaderIDs._ClearColor, data.clearColor); - data.hdCamera.xr.RenderOcclusionMesh(ctx.cmd); + data.hdCamera.xr.RenderOcclusionMesh(natCmd); }); } } @@ -229,16 +240,18 @@ class BlitCameraTextureData static internal void BlitCameraTexture(RenderGraph renderGraph, TextureHandle source, TextureHandle destination, float mipLevel = 0.0f, bool bilinear = false) { - using (var builder = renderGraph.AddRenderPass("Blit Camera Texture", out var passData)) + using (var builder = renderGraph.AddUnsafePass("Blit Camera Texture", out var passData)) { - passData.source = builder.ReadTexture(source); - passData.destination = builder.WriteTexture(destination); + passData.source = source; + builder.UseTexture(passData.source, AccessFlags.Read); + passData.destination = destination; + builder.UseTexture(passData.destination, AccessFlags.Write); passData.mipLevel = mipLevel; passData.bilinear = bilinear; builder.SetRenderFunc( - (BlitCameraTextureData data, RenderGraphContext ctx) => + (BlitCameraTextureData data, UnsafeGraphContext ctx) => { - HDUtils.BlitCameraTexture(ctx.cmd, data.source, data.destination, data.mipLevel, data.bilinear); + Blitter.BlitCameraTexture(CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd), data.source, data.destination, data.mipLevel, data.bilinear); }); } } diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDRenderPipeline.SubsurfaceScattering.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDRenderPipeline.SubsurfaceScattering.cs index 81d881bd977..08dd11fd5d0 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDRenderPipeline.SubsurfaceScattering.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDRenderPipeline.SubsurfaceScattering.cs @@ -231,7 +231,7 @@ TextureHandle RenderSubsurfaceScatteringScreenSpace(RenderGraph renderGraph, HDC TextureHandle depthStencilBuffer = prepassOutput.depthBuffer; TextureHandle depthTexture = prepassOutput.depthPyramidTexture; - using (var builder = renderGraph.AddRenderPass("Subsurface Scattering", out var passData, ProfilingSampler.Get(HDProfileId.SubsurfaceScattering))) + using (var builder = renderGraph.AddUnsafePass("Subsurface Scattering", out var passData, ProfilingSampler.Get(HDProfileId.SubsurfaceScattering))) { passData.useOcclusion = currentAsset.currentPlatformRenderPipelineSettings.subsurfaceScatteringAttenuation; @@ -252,12 +252,18 @@ TextureHandle RenderSubsurfaceScatteringScreenSpace(RenderGraph renderGraph, HDC passData.sampleBudget = hdCamera.frameSettings.sssResolvedSampleBudget; passData.downsampleSteps = hdCamera.frameSettings.sssResolvedDownsampleSteps; - passData.colorBuffer = builder.WriteTexture(colorBuffer); - passData.diffuseBuffer = builder.ReadTexture(lightingBuffers.diffuseLightingBuffer); - passData.depthStencilBuffer = builder.ReadTexture(depthStencilBuffer); - passData.depthTexture = builder.ReadTexture(depthTexture); - passData.sssBuffer = builder.ReadTexture(lightingBuffers.sssBuffer); - passData.coarseStencilBuffer = builder.ReadBuffer(prepassOutput.coarseStencilBuffer); + passData.colorBuffer = colorBuffer; + builder.UseTexture(passData.colorBuffer, AccessFlags.Write); + passData.diffuseBuffer = lightingBuffers.diffuseLightingBuffer; + builder.UseTexture(passData.diffuseBuffer, AccessFlags.Read); + passData.depthStencilBuffer = depthStencilBuffer; + builder.UseTexture(passData.depthStencilBuffer, AccessFlags.Read); + passData.depthTexture = depthTexture; + builder.UseTexture(passData.depthTexture, AccessFlags.Read); + passData.sssBuffer = lightingBuffers.sssBuffer; + builder.UseTexture(passData.sssBuffer, AccessFlags.Read); + passData.coarseStencilBuffer = prepassOutput.coarseStencilBuffer; + builder.UseBuffer(passData.coarseStencilBuffer, AccessFlags.Read); if (passData.useOcclusion) { @@ -294,69 +300,70 @@ TextureHandle RenderSubsurfaceScatteringScreenSpace(RenderGraph renderGraph, HDC } builder.SetRenderFunc( - (SubsurfaceScaterringPassData data, RenderGraphContext ctx) => + (SubsurfaceScaterringPassData data, UnsafeGraphContext ctx) => { - CoreUtils.SetKeyword(ctx.cmd, "USE_DOWNSAMPLE", data.downsampleSteps > 0); + var natCmd = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); + CoreUtils.SetKeyword(natCmd, "USE_DOWNSAMPLE", data.downsampleSteps > 0); if (data.downsampleSteps > 0) { // The downsample workgroup size is half of the subsurface scattering main pass int shift = data.downsampleSteps - 1; - ctx.cmd.SetComputeIntParam(data.subsurfaceScatteringDownsampleCS, HDShaderIDs._SssDownsampleSteps, data.downsampleSteps); - ctx.cmd.SetComputeTextureParam(data.subsurfaceScatteringDownsampleCS, data.subsurfaceScatteringDownsampleCSKernel, HDShaderIDs._SourceTexture, data.diffuseBuffer); - ctx.cmd.SetComputeTextureParam(data.subsurfaceScatteringDownsampleCS, data.subsurfaceScatteringDownsampleCSKernel, HDShaderIDs._OutputTexture, data.downsampleBuffer); - ctx.cmd.DispatchCompute(data.subsurfaceScatteringDownsampleCS, data.subsurfaceScatteringDownsampleCSKernel, data.numTilesX >> shift, data.numTilesY >> shift, data.numTilesZ); + natCmd.SetComputeIntParam(data.subsurfaceScatteringDownsampleCS, HDShaderIDs._SssDownsampleSteps, data.downsampleSteps); + natCmd.SetComputeTextureParam(data.subsurfaceScatteringDownsampleCS, data.subsurfaceScatteringDownsampleCSKernel, HDShaderIDs._SourceTexture, data.diffuseBuffer); + natCmd.SetComputeTextureParam(data.subsurfaceScatteringDownsampleCS, data.subsurfaceScatteringDownsampleCSKernel, HDShaderIDs._OutputTexture, data.downsampleBuffer); + natCmd.DispatchCompute(data.subsurfaceScatteringDownsampleCS, data.subsurfaceScatteringDownsampleCSKernel, data.numTilesX >> shift, data.numTilesY >> shift, data.numTilesZ); } // Combines specular lighting and diffuse lighting with subsurface scattering. // In the case our frame is MSAA, for the moment given the fact that we do not have read/write access to the stencil buffer of the MSAA target; we need to keep this pass MSAA // However, the compute can't output and MSAA target so we blend the non-MSAA target into the MSAA one. - ctx.cmd.SetComputeIntParam(data.subsurfaceScatteringCS, HDShaderIDs._SssSampleBudget, data.sampleBudget); - ctx.cmd.SetComputeIntParam(data.subsurfaceScatteringCS, HDShaderIDs._SssDownsampleSteps, data.downsampleSteps); + natCmd.SetComputeIntParam(data.subsurfaceScatteringCS, HDShaderIDs._SssSampleBudget, data.sampleBudget); + natCmd.SetComputeIntParam(data.subsurfaceScatteringCS, HDShaderIDs._SssDownsampleSteps, data.downsampleSteps); - ctx.cmd.SetComputeTextureParam(data.subsurfaceScatteringCS, data.subsurfaceScatteringCSKernel, HDShaderIDs._DepthTexture, data.depthTexture); - ctx.cmd.SetComputeTextureParam(data.subsurfaceScatteringCS, data.subsurfaceScatteringCSKernel, HDShaderIDs._IrradianceSource, data.diffuseBuffer); + natCmd.SetComputeTextureParam(data.subsurfaceScatteringCS, data.subsurfaceScatteringCSKernel, HDShaderIDs._DepthTexture, data.depthTexture); + natCmd.SetComputeTextureParam(data.subsurfaceScatteringCS, data.subsurfaceScatteringCSKernel, HDShaderIDs._IrradianceSource, data.diffuseBuffer); if (data.downsampleSteps > 0) - ctx.cmd.SetComputeTextureParam(data.subsurfaceScatteringCS, data.subsurfaceScatteringCSKernel, HDShaderIDs._IrradianceSourceDownsampled, data.downsampleBuffer); - ctx.cmd.SetComputeTextureParam(data.subsurfaceScatteringCS, data.subsurfaceScatteringCSKernel, HDShaderIDs._SSSBufferTexture, data.sssBuffer); + natCmd.SetComputeTextureParam(data.subsurfaceScatteringCS, data.subsurfaceScatteringCSKernel, HDShaderIDs._IrradianceSourceDownsampled, data.downsampleBuffer); + natCmd.SetComputeTextureParam(data.subsurfaceScatteringCS, data.subsurfaceScatteringCSKernel, HDShaderIDs._SSSBufferTexture, data.sssBuffer); - ctx.cmd.SetComputeBufferParam(data.subsurfaceScatteringCS, data.subsurfaceScatteringCSKernel, HDShaderIDs._CoarseStencilBuffer, data.coarseStencilBuffer); + natCmd.SetComputeBufferParam(data.subsurfaceScatteringCS, data.subsurfaceScatteringCSKernel, HDShaderIDs._CoarseStencilBuffer, data.coarseStencilBuffer); // When occlusion is enabled, we pack the 2 diffusion profile indices into a single 8bit texel to improve the bandwidth when fetching the buffer. // We couldn't pack this data into the lighting buffer because of the MSAA resolve and the precision loss. if (data.useOcclusion) { - ctx.cmd.SetComputeTextureParam(data.subsurfaceScatteringCS, data.packDiffusionProfileKernel, HDShaderIDs._DiffusionProfileIndexTexture, data.diffusionProfileIndex); - ctx.cmd.SetComputeTextureParam(data.subsurfaceScatteringCS, data.packDiffusionProfileKernel, HDShaderIDs._SSSBufferTexture, data.sssBuffer); + natCmd.SetComputeTextureParam(data.subsurfaceScatteringCS, data.packDiffusionProfileKernel, HDShaderIDs._DiffusionProfileIndexTexture, data.diffusionProfileIndex); + natCmd.SetComputeTextureParam(data.subsurfaceScatteringCS, data.packDiffusionProfileKernel, HDShaderIDs._SSSBufferTexture, data.sssBuffer); int xGroupCount = HDUtils.DivRoundUp(Mathf.CeilToInt(data.viewportSize.x / 2.0f), 8); - ctx.cmd.DispatchCompute(data.subsurfaceScatteringCS, data.packDiffusionProfileKernel, xGroupCount, HDUtils.DivRoundUp((int)data.viewportSize.y, 8), data.numTilesZ); + natCmd.DispatchCompute(data.subsurfaceScatteringCS, data.packDiffusionProfileKernel, xGroupCount, HDUtils.DivRoundUp((int)data.viewportSize.y, 8), data.numTilesZ); - ctx.cmd.SetComputeTextureParam(data.subsurfaceScatteringCS, data.subsurfaceScatteringCSKernel, HDShaderIDs._DiffusionProfileIndexTexture, data.diffusionProfileIndex); + natCmd.SetComputeTextureParam(data.subsurfaceScatteringCS, data.subsurfaceScatteringCSKernel, HDShaderIDs._DiffusionProfileIndexTexture, data.diffusionProfileIndex); } else { - ctx.cmd.SetComputeTextureParam(data.subsurfaceScatteringCS, data.subsurfaceScatteringCSKernel, HDShaderIDs._DiffusionProfileIndexTexture, TextureXR.GetBlackTexture()); + natCmd.SetComputeTextureParam(data.subsurfaceScatteringCS, data.subsurfaceScatteringCSKernel, HDShaderIDs._DiffusionProfileIndexTexture, TextureXR.GetBlackTexture()); } if (data.needTemporaryBuffer) { - ctx.cmd.SetComputeTextureParam(data.subsurfaceScatteringCS, data.subsurfaceScatteringCSKernel, HDShaderIDs._CameraFilteringBuffer, data.cameraFilteringBuffer); + natCmd.SetComputeTextureParam(data.subsurfaceScatteringCS, data.subsurfaceScatteringCSKernel, HDShaderIDs._CameraFilteringBuffer, data.cameraFilteringBuffer); // Perform the SSS filtering pass - ctx.cmd.DispatchCompute(data.subsurfaceScatteringCS, data.subsurfaceScatteringCSKernel, data.numTilesX, data.numTilesY, data.numTilesZ); + natCmd.DispatchCompute(data.subsurfaceScatteringCS, data.subsurfaceScatteringCSKernel, data.numTilesX, data.numTilesY, data.numTilesZ); data.combineLighting.SetTexture(HDShaderIDs._IrradianceSource, data.cameraFilteringBuffer); // Additively blend diffuse and specular lighting into the color buffer. - HDUtils.DrawFullScreen(ctx.cmd, data.combineLighting, data.colorBuffer, data.depthStencilBuffer); + HDUtils.DrawFullScreen(natCmd, data.combineLighting, data.colorBuffer, data.depthStencilBuffer); } else { - ctx.cmd.SetComputeTextureParam(data.subsurfaceScatteringCS, data.subsurfaceScatteringCSKernel, HDShaderIDs._CameraColorTexture, data.colorBuffer); + natCmd.SetComputeTextureParam(data.subsurfaceScatteringCS, data.subsurfaceScatteringCSKernel, HDShaderIDs._CameraColorTexture, data.colorBuffer); // Perform the SSS filtering pass which performs an in-place update of 'colorBuffer'. - ctx.cmd.DispatchCompute(data.subsurfaceScatteringCS, data.subsurfaceScatteringCSKernel, data.numTilesX, data.numTilesY, data.numTilesZ); + natCmd.DispatchCompute(data.subsurfaceScatteringCS, data.subsurfaceScatteringCSKernel, data.numTilesX, data.numTilesY, data.numTilesZ); } }); diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDRenderPipeline.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDRenderPipeline.cs index 1f77688faa5..87e60dafdbb 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDRenderPipeline.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDRenderPipeline.cs @@ -1742,74 +1742,11 @@ ScriptableRenderContext renderContext referenceAspect: referenceAspect ); - var probeFormat = (GraphicsFormat)m_Asset.currentPlatformRenderPipelineSettings.lightLoopSettings.reflectionProbeFormat; - - var isPlanarReflectionProbe = false; - switch (visibleProbe.type) - { - case ProbeSettings.ProbeType.ReflectionProbe: - int desiredProbeSize = (int)visibleProbe.cubeResolution; - - var desiredProbeFormat = ((HDRenderPipeline)RenderPipelineManager.currentPipeline).currentPlatformRenderPipelineSettings.lightLoopSettings.reflectionProbeFormat; - - if (visibleProbe.realtimeTextureRTH == null || visibleProbe.realtimeTextureRTH.rt.width != desiredProbeSize || - visibleProbe.realtimeTextureRTH.rt.graphicsFormat != probeFormat) - { - visibleProbe.SetTexture(ProbeSettings.Mode.Realtime, HDRenderUtilities.CreateReflectionProbeRenderTarget(desiredProbeSize, probeFormat)); - } - break; - case ProbeSettings.ProbeType.PlanarProbe: - isPlanarReflectionProbe = true; - - if (visibleProbe.IsTurnedOff()) - { - RenderTexture rt = new RenderTexture(1, 1, 1, probeFormat) - { - dimension = TextureDimension.Tex2D, - enableRandomWrite = false, - useMipMap = true, - autoGenerateMips = false, - depth = 0 - }; - rt.Create(); - visibleProbe.SetTexture(ProbeSettings.Mode.Realtime, rt); - } - else - { - - int desiredPlanarProbeSize = (int) visibleProbe.resolution; - - if (visibleProbe.realtimeTextureRTH == null || - visibleProbe.realtimeTextureRTH.rt.width != desiredPlanarProbeSize || - visibleProbe.realtimeTextureRTH.rt.graphicsFormat != probeFormat) - { - visibleProbe.SetTexture(ProbeSettings.Mode.Realtime, - HDRenderUtilities.CreatePlanarProbeRenderTarget(desiredPlanarProbeSize, probeFormat)); - } - - if (visibleProbe.realtimeDepthTextureRTH == null || - visibleProbe.realtimeDepthTextureRTH.rt.width != desiredPlanarProbeSize) - { - visibleProbe.SetDepthTexture(ProbeSettings.Mode.Realtime, - HDRenderUtilities.CreatePlanarProbeDepthRenderTarget(desiredPlanarProbeSize)); - } - - // Set the viewer's camera as the default camera anchor - for (var i = 0; i < cameraSettings.Count; ++i) - { - var v = cameraSettings[i]; - if (v.volumes.anchorOverride == null) - { - v.volumes.anchorOverride = viewerTransform; - cameraSettings[i] = v; - } - } - } - - break; - } - + visibleProbe.AllocTexture(probeFormat); + visibleProbe.SetCameraAnchor(cameraSettings, viewerTransform); + var isPlanarReflectionProbe = visibleProbe.type == ProbeSettings.ProbeType.PlanarProbe; + ProbeRenderSteps skippedRenderSteps = ProbeRenderSteps.None; for (int j = 0; j < cameraSettings.Count; ++j) { @@ -3287,20 +3224,20 @@ static RendererListDesc CreateTransparentRendererListDesc( return result; } - static void DrawOpaqueRendererList(in ScriptableRenderContext renderContext, CommandBuffer cmd, in FrameSettings frameSettings, RendererList rendererList) + static void DrawOpaqueRendererList(CommandBuffer cmd, in FrameSettings frameSettings, RendererList rendererList) { if (!frameSettings.IsEnabled(FrameSettingsField.OpaqueObjects)) return; - CoreUtils.DrawRendererList(renderContext, cmd, rendererList); + CoreUtils.DrawRendererList(cmd, rendererList); } - static void DrawTransparentRendererList(in ScriptableRenderContext renderContext, CommandBuffer cmd, in FrameSettings frameSettings, RendererList rendererList) + static void DrawTransparentRendererList(CommandBuffer cmd, in FrameSettings frameSettings, RendererList rendererList) { if (!frameSettings.IsEnabled(FrameSettingsField.TransparentObjects)) return; - CoreUtils.DrawRendererList(renderContext, cmd, rendererList); + CoreUtils.DrawRendererList(cmd, rendererList); } void UpdateShaderVariablesGlobalDecal(ref ShaderVariablesGlobal cb, HDCamera hdCamera) @@ -3338,11 +3275,11 @@ void RenderWireFrame(CullingResults cull, HDCamera hdCamera, RenderTargetIdentif m_WaterSystem.RenderWaterAsWireFrame(cmd, hdCamera); var rendererListOpaque = renderContext.CreateRendererList(CreateOpaqueRendererListDesc(cull, hdCamera.camera, m_AllForwardOpaquePassNames)); - DrawOpaqueRendererList(renderContext, cmd, hdCamera.frameSettings, rendererListOpaque); + DrawOpaqueRendererList(cmd, hdCamera.frameSettings, rendererListOpaque); // Render forward transparent var rendererListTransparent = renderContext.CreateRendererList(CreateTransparentRendererListDesc(cull, hdCamera.camera, m_AllTransparentPassNames)); - DrawTransparentRendererList(renderContext, cmd, hdCamera.frameSettings, rendererListTransparent); + DrawTransparentRendererList(cmd, hdCamera.frameSettings, rendererListTransparent); renderContext.ExecuteCommandBuffer(cmd); cmd.Clear(); diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDRenderPipelineAsset.Migration.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDRenderPipelineAsset.Migration.cs index 2ae570388ed..3d7ea903445 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDRenderPipelineAsset.Migration.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDRenderPipelineAsset.Migration.cs @@ -316,54 +316,54 @@ internal enum Version #pragma warning disable 618 // Type or member is obsolete #region FrameSettings Moved [SerializeField] - [FormerlySerializedAs("serializedFrameSettings"), FormerlySerializedAs("m_FrameSettings"), Obsolete("For data migration")] + [FormerlySerializedAs("serializedFrameSettings"), FormerlySerializedAs("m_FrameSettings"), Obsolete("For data migration. #rom(2021.1)")] ObsoleteFrameSettings m_ObsoleteFrameSettings; [SerializeField] - [FormerlySerializedAs("m_BakedOrCustomReflectionFrameSettings"), Obsolete("For data migration")] + [FormerlySerializedAs("m_BakedOrCustomReflectionFrameSettings"), Obsolete("For data migration. #rom(2021.1)")] ObsoleteFrameSettings m_ObsoleteBakedOrCustomReflectionFrameSettings; [SerializeField] - [FormerlySerializedAs("m_RealtimeReflectionFrameSettings"), Obsolete("For data migration")] + [FormerlySerializedAs("m_RealtimeReflectionFrameSettings"), Obsolete("For data migration. #rom(2021.1)")] ObsoleteFrameSettings m_ObsoleteRealtimeReflectionFrameSettings; #endregion #region Settings Moved from the HDRP Asset to HDRenderPipelineGlobalSettings [SerializeField] - [FormerlySerializedAs("m_DefaultVolumeProfile"), Obsolete("Moved from HDRPAsset to HDGlobal Settings")] + [FormerlySerializedAs("m_DefaultVolumeProfile"), Obsolete("Moved from HDRPAsset to HDGlobal Settings. #from(2021.2)")] internal VolumeProfile m_ObsoleteDefaultVolumeProfile; [SerializeField] - [FormerlySerializedAs("m_DefaultLookDevProfile"), Obsolete("Moved from HDRPAsset to HDGlobal Settings")] + [FormerlySerializedAs("m_DefaultLookDevProfile"), Obsolete("Moved from HDRPAsset to HDGlobal Settings. #from(2021.2)")] internal VolumeProfile m_ObsoleteDefaultLookDevProfile; [SerializeField] - [FormerlySerializedAs("m_RenderingPathDefaultCameraFrameSettings"), Obsolete("Moved from HDRPAsset to HDGlobal Settings")] + [FormerlySerializedAs("m_RenderingPathDefaultCameraFrameSettings"), Obsolete("Moved from HDRPAsset to HDGlobal Settings. #from(2021.2)")] internal FrameSettings m_ObsoleteFrameSettingsMovedToDefaultSettings; [SerializeField] - [FormerlySerializedAs("m_RenderingPathDefaultBakedOrCustomReflectionFrameSettings"), Obsolete("Moved from HDRPAsset to HDGlobal Settings")] + [FormerlySerializedAs("m_RenderingPathDefaultBakedOrCustomReflectionFrameSettings"), Obsolete("Moved from HDRPAsset to HDGlobal Settings. #from(2021.2)")] internal FrameSettings m_ObsoleteBakedOrCustomReflectionFrameSettingsMovedToDefaultSettings; [SerializeField] - [FormerlySerializedAs("m_RenderingPathDefaultRealtimeReflectionFrameSettings"), Obsolete("Moved from HDRPAsset to HDGlobal Settings")] + [FormerlySerializedAs("m_RenderingPathDefaultRealtimeReflectionFrameSettings"), Obsolete("Moved from HDRPAsset to HDGlobal Settings. #from(2021.2)")] internal FrameSettings m_ObsoleteRealtimeReflectionFrameSettingsMovedToDefaultSettings; [SerializeField] - [FormerlySerializedAs("beforeTransparentCustomPostProcesses"), Obsolete("Moved from HDRPAsset to HDGlobal Settings")] + [FormerlySerializedAs("beforeTransparentCustomPostProcesses"), Obsolete("Moved from HDRPAsset to HDGlobal Settings. #from(2021.2)")] internal List m_ObsoleteBeforeTransparentCustomPostProcesses; [SerializeField] - [FormerlySerializedAs("beforePostProcessCustomPostProcesses"), Obsolete("Moved from HDRPAsset to HDGlobal Settings")] + [FormerlySerializedAs("beforePostProcessCustomPostProcesses"), Obsolete("Moved from HDRPAsset to HDGlobal Settings. #from(2021.2)")] internal List m_ObsoleteBeforePostProcessCustomPostProcesses; [SerializeField] - [FormerlySerializedAs("afterPostProcessCustomPostProcesses"), Obsolete("Moved from HDRPAsset to HDGlobal Settings")] + [FormerlySerializedAs("afterPostProcessCustomPostProcesses"), Obsolete("Moved from HDRPAsset to HDGlobal Settings. #from(2021.2)")] internal List m_ObsoleteAfterPostProcessCustomPostProcesses; [SerializeField] - [FormerlySerializedAs("beforeTAACustomPostProcesses"), Obsolete("Moved from HDRPAsset to HDGlobal Settings")] + [FormerlySerializedAs("beforeTAACustomPostProcesses"), Obsolete("Moved from HDRPAsset to HDGlobal Settings. #from(2021.2)")] internal List m_ObsoleteBeforeTAACustomPostProcesses; [SerializeField] - [FormerlySerializedAs("shaderVariantLogLevel"), Obsolete("Moved from HDRPAsset to HDGlobal Settings")] + [FormerlySerializedAs("shaderVariantLogLevel"), Obsolete("Moved from HDRPAsset to HDGlobal Settings. #from(2021.2)")] internal int m_ObsoleteShaderVariantLogLevel; [SerializeField] - [FormerlySerializedAs("m_LensAttenuation"), Obsolete("Moved from HDRPAsset to HDGlobal Settings")] + [FormerlySerializedAs("m_LensAttenuation"), Obsolete("Moved from HDRPAsset to HDGlobal Settings. #from(2021.2)")] internal LensAttenuationMode m_ObsoleteLensAttenuation; [SerializeField] - [FormerlySerializedAs("diffusionProfileSettingsList"), Obsolete("Moved from HDRPAsset to HDGlobal Settings")] + [FormerlySerializedAs("diffusionProfileSettingsList"), Obsolete("Moved from HDRPAsset to HDGlobal Settings. #from(2021.2)")] internal DiffusionProfileSettings[] m_ObsoleteDiffusionProfileSettingsList; #endregion #pragma warning restore 618 diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDRenderPipelineAsset.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDRenderPipelineAsset.cs index 023d66b8d6a..e24dcb29a48 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDRenderPipelineAsset.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDRenderPipelineAsset.cs @@ -150,7 +150,7 @@ internal void TurnOffRayTracing() public MaterialQuality defaultMaterialQualityLevel { get => m_DefaultMaterialQualityLevel; } [SerializeField] - [Obsolete("Use HDRP Global Settings' diffusionProfileSettingsList instead")] + [Obsolete("Use HDRP Global Settings' diffusionProfileSettingsList instead. #from(2021.1)")] internal DiffusionProfileSettings diffusionProfileSettings; [SerializeField] @@ -170,30 +170,30 @@ public VolumeProfile volumeProfile static int[] s_Values; /// Names used for display of rendering layer masks. - [Obsolete("This property is obsolete. Use RenderingLayerMask API and Tags & Layers project settings instead. #from(23.3)", false)] + [Obsolete("This property is obsolete. Use RenderingLayerMask API and Tags & Layers project settings instead. #from(2023.3)")] public override string[] renderingLayerMaskNames => UnityEngine.RenderingLayerMask.GetDefinedRenderingLayerNames(); /// Names used for display of rendering layer masks with a prefix. - [Obsolete("This property is obsolete. Use RenderingLayerMask API and Tags & Layers project settings instead. #from(23.3)", false)] + [Obsolete("This property is obsolete. Use RenderingLayerMask API and Tags & Layers project settings instead. #from(2023.3)")] public override string[] prefixedRenderingLayerMaskNames => Array.Empty(); /// /// Names used for display of light layers. /// - [Obsolete("Use renderingLayerNames")] + [Obsolete("Use renderingLayerNames. #from(2023.1)")] public string[] lightLayerNames => renderingLayerNames; /// /// Names used for display of decal layers. /// - [Obsolete("Use renderingLayerNames")] + [Obsolete("Use renderingLayerNames. #from(2023.1)")] public string[] decalLayerNames => renderingLayerNames; /// /// Names used for display of light layers. /// - [Obsolete("This property is obsolete. Use RenderingLayerMask API and Tags & Layers project settings instead. #from(23.3)", false)] + [Obsolete("This property is obsolete. Use RenderingLayerMask API and Tags & Layers project settings instead. #from(2023.3)")] public string[] renderingLayerNames => UnityEngine.RenderingLayerMask.GetDefinedRenderingLayerNames(); [SerializeField] @@ -280,7 +280,7 @@ public GPUResidentDrawerMode gpuResidentDrawerMode /// /// Returns the projects global ProbeVolumeSceneData instance. /// - [Obsolete("This property is no longer necessary.")] + [Obsolete("This property is no longer necessary. #from(2023.3)")] public ProbeVolumeSceneData probeVolumeSceneData => null; /// diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDRenderPipelineGlobalSettings.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDRenderPipelineGlobalSettings.cs index 178eb7f4663..7568959746d 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDRenderPipelineGlobalSettings.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDRenderPipelineGlobalSettings.cs @@ -135,25 +135,25 @@ void SetUpRPAssetIncluded() #region Rendering Layer Mask [SerializeField] - [Obsolete ("Kept For Migration")] + [Obsolete ("Kept For Migration. #from(2023.3)")] internal string[] renderingLayerNames = { "Default" }; - [SerializeField, Obsolete("Kept For Migration")] string lightLayerName0; - [SerializeField, Obsolete("Kept For Migration")] string lightLayerName1; - [SerializeField, Obsolete("Kept For Migration")] string lightLayerName2; - [SerializeField, Obsolete("Kept For Migration")] string lightLayerName3; - [SerializeField, Obsolete("Kept For Migration")] string lightLayerName4; - [SerializeField, Obsolete("Kept For Migration")] string lightLayerName5; - [SerializeField, Obsolete("Kept For Migration")] string lightLayerName6; - [SerializeField, Obsolete("Kept For Migration")] string lightLayerName7; - [SerializeField, Obsolete("Kept For Migration")] string decalLayerName0; - [SerializeField, Obsolete("Kept For Migration")] string decalLayerName1; - [SerializeField, Obsolete("Kept For Migration")] string decalLayerName2; - [SerializeField, Obsolete("Kept For Migration")] string decalLayerName3; - [SerializeField, Obsolete("Kept For Migration")] string decalLayerName4; - [SerializeField, Obsolete("Kept For Migration")] string decalLayerName5; - [SerializeField, Obsolete("Kept For Migration")] string decalLayerName6; - [SerializeField, Obsolete("Kept For Migration")] string decalLayerName7; + [SerializeField, Obsolete("Kept For Migration. #from(2023.1)")] string lightLayerName0; + [SerializeField, Obsolete("Kept For Migration. #from(2023.1)")] string lightLayerName1; + [SerializeField, Obsolete("Kept For Migration. #from(2023.1)")] string lightLayerName2; + [SerializeField, Obsolete("Kept For Migration. #from(2023.1)")] string lightLayerName3; + [SerializeField, Obsolete("Kept For Migration. #from(2023.1)")] string lightLayerName4; + [SerializeField, Obsolete("Kept For Migration. #from(2023.1)")] string lightLayerName5; + [SerializeField, Obsolete("Kept For Migration. #from(2023.1)")] string lightLayerName6; + [SerializeField, Obsolete("Kept For Migration. #from(2023.1)")] string lightLayerName7; + [SerializeField, Obsolete("Kept For Migration. #from(2023.1)")] string decalLayerName0; + [SerializeField, Obsolete("Kept For Migration. #from(2023.1)")] string decalLayerName1; + [SerializeField, Obsolete("Kept For Migration. #from(2023.1)")] string decalLayerName2; + [SerializeField, Obsolete("Kept For Migration. #from(2023.1)")] string decalLayerName3; + [SerializeField, Obsolete("Kept For Migration. #from(2023.1)")] string decalLayerName4; + [SerializeField, Obsolete("Kept For Migration. #from(2023.1)")] string decalLayerName5; + [SerializeField, Obsolete("Kept For Migration. #from(2023.1)")] string decalLayerName6; + [SerializeField, Obsolete("Kept For Migration. #from(2023.1)")] string decalLayerName7; #endregion diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/LineRendering/Core/LineRendering.Data.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/LineRendering/Core/LineRendering.Data.cs index e01f3304c55..0342391c6d0 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/LineRendering/Core/LineRendering.Data.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/LineRendering/Core/LineRendering.Data.cs @@ -397,7 +397,7 @@ internal struct AllocationParameters } - public static Buffers Allocate(RenderGraph renderGraph, RenderGraphBuilder builder, AllocationParameters parameters) + public static Buffers Allocate(RenderGraph renderGraph, IBaseRenderGraphBuilder builder, AllocationParameters parameters) { BufferHandle CreateBuffer(int elementCount, int stride, GraphicsBuffer.Target target, string name) { @@ -468,7 +468,7 @@ internal struct AllocationParameters public int countWorkQUeue; } - public static Buffers Allocate(RenderGraph renderGraph, RenderGraphBuilder builder, AllocationParameters parameters) + public static Buffers Allocate(RenderGraph renderGraph, IComputeRenderGraphBuilder builder, AllocationParameters parameters) { BufferHandle CreateBuffer(int elementCount, int stride, GraphicsBuffer.Target target, string name) { diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/LineRendering/Core/LineRendering.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/LineRendering/Core/LineRendering.cs index abbfedf47e6..767f1b9bbc1 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/LineRendering/Core/LineRendering.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/LineRendering/Core/LineRendering.cs @@ -160,20 +160,20 @@ void DrawInternal(RendererData[] renderDatas, ref Arguments args) #endif // Utility for binding the common buffers between passes one and two. - void UseSharedBuffers(RenderGraphBuilder builder, SharedPassData.Buffers buff) + void UseSharedBuffers(IBaseRenderGraphBuilder builder, SharedPassData.Buffers buff) { - builder.WriteBuffer(buff.counterBuffer); - builder.WriteBuffer(buff.vertexStream0); - builder.WriteBuffer(buff.vertexStream1); - builder.WriteBuffer(buff.vertexStream2); - builder.WriteBuffer(buff.vertexStream3); - builder.WriteBuffer(buff.recordBufferSegment); - builder.WriteBuffer(buff.viewSpaceDepthRange); - builder.ReadWriteTexture(buff.groupShadingSampleAtlas); + builder.UseBuffer(buff.counterBuffer, AccessFlags.Write); + builder.UseBuffer(buff.vertexStream0, AccessFlags.Write); + builder.UseBuffer(buff.vertexStream1, AccessFlags.Write); + builder.UseBuffer(buff.vertexStream2, AccessFlags.Write); + builder.UseBuffer(buff.vertexStream3, AccessFlags.Write); + builder.UseBuffer(buff.recordBufferSegment, AccessFlags.Write); + builder.UseBuffer(buff.viewSpaceDepthRange, AccessFlags.Write); + builder.UseTexture(buff.groupShadingSampleAtlas, AccessFlags.ReadWrite); } // Pass 1: Geometry Processing and Shading - using (var builder = args.renderGraph.AddRenderPass("Geometry Processing", out var passData, k_LineRenderingGeometrySampler)) + using (var builder = args.renderGraph.AddUnsafePass("Geometry Processing", out var passData, k_LineRenderingGeometrySampler)) { // TODO: Get rid of this... // Unfortunately we currently need this utility to "reimport" some buffers. @@ -183,8 +183,10 @@ RendererData[] ImportRenderDatas() for (uint i = 0; i < importedRenderers.Length; ++i) { - importedRenderers[i].indexBuffer = builder.ReadBuffer(renderDatas[i].indexBuffer); - importedRenderers[i].lodBuffer = builder.ReadBuffer(renderDatas[i].lodBuffer); + importedRenderers[i].indexBuffer = renderDatas[i].indexBuffer; + builder.UseBuffer(importedRenderers[i].indexBuffer, AccessFlags.Read); + importedRenderers[i].lodBuffer = renderDatas[i].lodBuffer; + builder.UseBuffer(importedRenderers[i].lodBuffer, AccessFlags.Read); } return importedRenderers; @@ -203,7 +205,8 @@ RendererData[] ImportRenderDatas() // Set up the shared resources. passData.sharedBuffers = sharedBuffers; - passData.depthRT = builder.ReadTexture(args.depthTexture); + passData.depthRT = args.depthTexture; + builder.UseTexture(passData.depthRT, AccessFlags.Read); UseSharedBuffers(builder, sharedBuffers); // Then set up the resources specific to this pass. @@ -213,24 +216,28 @@ RendererData[] ImportRenderDatas() countVertexMaxPerRenderer = renderDatas.Max(o => o.mesh.vertexCount), }); - builder.SetRenderFunc((GeometryPassData data, RenderGraphContext context) => + builder.SetRenderFunc((GeometryPassData data, UnsafeGraphContext ctx) => { + var natCmd = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); + // Upload the constants to device. - data.shaderVariablesBuffer.UpdateData(context.cmd, data.shaderVariables); + data.shaderVariablesBuffer.UpdateData(ctx.cmd, data.shaderVariables); // Render-graph provides a scratch MPB for our needs. - data.materialPropertyBlock = context.renderGraphPool.GetTempMaterialPropertyBlock(); + data.materialPropertyBlock = ctx.renderGraphPool.GetTempMaterialPropertyBlock(); - ExecuteGeometryPass(context.cmd, data); + ExecuteGeometryPass(natCmd, data); }); } // Pass 2: Rasterization - using (var builder = args.renderGraph.AddRenderPass("Rasterization", out var passData, k_LineRenderingRasterizationSampler)) + using (var builder = args.renderGraph.AddComputePass("Rasterization", out var passData, k_LineRenderingRasterizationSampler)) { // Optionally schedule this pass in async. (This is actually the whole reason we split this process into two passes). builder.EnableAsyncCompute(args.settings.executeAsync); + builder.AllowGlobalStateModification(true); + // Set up other various dependent data. passData.shaderVariables = shaderVariables; passData.shaderVariablesBuffer = m_ShaderVariablesBuffer; @@ -247,14 +254,19 @@ RendererData[] ImportRenderDatas() // Configure the render targets that the rasterizer will draw to. passData.renderTargets = new RenderTargets { - color = builder.WriteTexture(args.targets.color), - depth = builder.WriteTexture(args.targets.depth), - motion = builder.WriteTexture(args.targets.motion) + color = args.targets.color, + depth = args.targets.depth, + motion = args.targets.motion }; + builder.UseTexture(passData.renderTargets.color, AccessFlags.Write); + builder.UseTexture(passData.renderTargets.depth, AccessFlags.Write); + builder.UseTexture(passData.renderTargets.motion, AccessFlags.Write); + // Set up the shared resources. passData.sharedBuffers = sharedBuffers; - passData.depthRT = builder.ReadTexture(args.depthTexture); + passData.depthRT = args.depthTexture; + builder.UseTexture(passData.depthRT, AccessFlags.Read); UseSharedBuffers(builder, sharedBuffers); // Then set up the resources specific to this pass. @@ -268,9 +280,9 @@ RendererData[] ImportRenderDatas() countWorkQUeue = ComputeWorkQueueCapacity(args.settings.memoryBudget) }); - builder.SetRenderFunc((RasterizationPassData data, RenderGraphContext context) => + builder.SetRenderFunc((RasterizationPassData data, ComputeGraphContext ctx) => { - ExecuteRasterizationPass(context.cmd, data); + ExecuteRasterizationPass(ctx.cmd, data); }); } } diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/LineRendering/Core/RenderPass/LineRendering.Pass.Geometry.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/LineRendering/Core/RenderPass/LineRendering.Pass.Geometry.cs index 200f9bbc86a..a7a7d1746ad 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/LineRendering/Core/RenderPass/LineRendering.Pass.Geometry.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/LineRendering/Core/RenderPass/LineRendering.Pass.Geometry.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Linq; using Unity.Collections; using UnityEngine.Rendering.RenderGraphModule; diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/LineRendering/Core/RenderPass/LineRendering.Pass.Rasterization.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/LineRendering/Core/RenderPass/LineRendering.Pass.Rasterization.cs index 475ec678a17..89d603f73df 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/LineRendering/Core/RenderPass/LineRendering.Pass.Rasterization.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/LineRendering/Core/RenderPass/LineRendering.Pass.Rasterization.cs @@ -11,7 +11,7 @@ namespace UnityEngine.Rendering partial class LineRendering { - private static void ExecuteRasterizationPass(CommandBuffer cmd, RasterizationPassData resources) + private static void ExecuteRasterizationPass(ComputeCommandBuffer cmd, RasterizationPassData resources) { var buffers = resources.sharedBuffers; var transientBuffers = resources.transientBuffers; diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/LineRendering/HDRenderPipeline.LineRendering.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/LineRendering/HDRenderPipeline.LineRendering.cs index 99d48e420eb..30564490ba4 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/LineRendering/HDRenderPipeline.LineRendering.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/LineRendering/HDRenderPipeline.LineRendering.cs @@ -159,36 +159,44 @@ void RenderLines(RenderGraph renderGraph, TextureHandle depthPrepassTexture, HDC ImportLineRenderingTargetsToRenderGraphIfNeeded(); // Here we need to bind some SRP-specific buffers and clear the internal targets. - using (var builder = renderGraph.AddRenderPass("Setup Line Rendering", out var passData, ProfilingSampler.Get(HDProfileId.LineRenderingSetup))) + using (var builder = renderGraph.AddUnsafePass("Setup Line Rendering", out var passData, ProfilingSampler.Get(HDProfileId.LineRenderingSetup))) { - passData.lightListCluster = builder.ReadBuffer(lightLists.perVoxelLightLists); - passData.perVoxelOffset = builder.ReadBuffer(lightLists.perVoxelOffset); - passData.perTileLogBaseTweak = builder.ReadBuffer(lightLists.perTileLogBaseTweak); - - passData.targetColor = builder.WriteTexture(m_LineColorBuffer); - passData.targetDepth = builder.WriteTexture(m_LineDepthBuffer); - passData.targetMV = builder.WriteTexture(m_LineMVBuffer); - - builder.SetRenderFunc((LineRendererSetupData data, RenderGraphContext context) => + passData.lightListCluster = lightLists.perVoxelLightLists; + builder.UseBuffer(passData.lightListCluster, AccessFlags.Read); + passData.perVoxelOffset = lightLists.perVoxelOffset; + builder.UseBuffer(passData.perVoxelOffset, AccessFlags.Read); + passData.perTileLogBaseTweak = lightLists.perTileLogBaseTweak; + builder.UseBuffer(passData.perTileLogBaseTweak, AccessFlags.Read); + + passData.targetColor = m_LineColorBuffer; + builder.UseTexture(passData.targetColor, AccessFlags.Write); + passData.targetDepth = m_LineDepthBuffer; + builder.UseTexture(passData.targetDepth, AccessFlags.Write); + passData.targetMV = m_LineMVBuffer; + builder.UseTexture(passData.targetMV, AccessFlags.Write); + + builder.SetRenderFunc((LineRendererSetupData data, UnsafeGraphContext ctx) => { + var natCmd = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); + // Bind the light lists (required for the light loop to work with offscreen shading). { - context.cmd.SetGlobalBuffer(HDShaderIDs.g_vLightListCluster, data.lightListCluster); + natCmd.SetGlobalBuffer(HDShaderIDs.g_vLightListCluster, data.lightListCluster); // Next two are only for cluster rendering. PerTileLogBaseTweak is only when using depth buffer so can be invalid as well. if (data.perVoxelOffset.IsValid()) - context.cmd.SetGlobalBuffer(HDShaderIDs.g_vLayeredOffsetsBuffer, data.perVoxelOffset); + natCmd.SetGlobalBuffer(HDShaderIDs.g_vLayeredOffsetsBuffer, data.perVoxelOffset); if (data.perTileLogBaseTweak.IsValid()) - context.cmd.SetGlobalBuffer(HDShaderIDs.g_logBaseBuffer, data.perTileLogBaseTweak); + natCmd.SetGlobalBuffer(HDShaderIDs.g_logBaseBuffer, data.perTileLogBaseTweak); - CoreUtils.SetKeyword(context.cmd, "USE_FPTL_LIGHTLIST", false); - CoreUtils.SetKeyword(context.cmd, "USE_CLUSTERED_LIGHTLIST", true); + CoreUtils.SetKeyword(natCmd, "USE_FPTL_LIGHTLIST", false); + CoreUtils.SetKeyword(natCmd, "USE_CLUSTERED_LIGHTLIST", true); } // Clear the internal targets. - CoreUtils.SetRenderTarget(context.cmd, data.targetColor, ClearFlag.Color, Color.black); - CoreUtils.SetRenderTarget(context.cmd, data.targetDepth, ClearFlag.Color, Color.black); - CoreUtils.SetRenderTarget(context.cmd, data.targetMV, ClearFlag.Color, Color.clear); + CoreUtils.SetRenderTarget(natCmd, data.targetColor, ClearFlag.Color, Color.black); + CoreUtils.SetRenderTarget(natCmd, data.targetDepth, ClearFlag.Color, Color.black); + CoreUtils.SetRenderTarget(natCmd, data.targetMV, ClearFlag.Color, Color.clear); }); } @@ -240,40 +248,47 @@ void ComposeLines(RenderGraph renderGraph, HDCamera hdCamera, TextureHandle colo ImportLineRenderingTargetsToRenderGraphIfNeeded(); - using (var builder = renderGraph.AddRenderPass("Composite Hair", out var passData, ProfilingSampler.Get(HDProfileId.LineRenderingComposite))) + using (var builder = renderGraph.AddUnsafePass("Composite Hair", out var passData, ProfilingSampler.Get(HDProfileId.LineRenderingComposite))) { passData.compositePass = m_LineCompositePass; - passData.mainTargetColor = builder.UseColorBuffer(colorBuffer, 0); - passData.mainTargetDepth = builder.UseDepthBuffer(depthBuffer, DepthAccess.ReadWrite); + passData.mainTargetColor = colorBuffer; + builder.SetRenderAttachment(colorBuffer, 0); + passData.mainTargetDepth = depthBuffer; + builder.SetRenderAttachmentDepth(depthBuffer, AccessFlags.ReadWrite); if (motionVectorBuffer.IsValid() && hdCamera.frameSettings.IsEnabled(FrameSettingsField.MotionVectors)) { // The motion vectors may be invalid in case of material debug view. So don't bind it in that case. - passData.mainTargetMV = builder.UseColorBuffer(motionVectorBuffer, 1); + passData.mainTargetMV = motionVectorBuffer; + builder.SetRenderAttachment(motionVectorBuffer, 1); } else passData.mainTargetMV = TextureHandle.nullHandle; - passData.lineTargetColor = builder.ReadTexture(m_LineColorBuffer); - passData.lineTargetDepth = builder.ReadTexture(m_LineDepthBuffer); - passData.lineTargetMV = builder.ReadTexture(m_LineMVBuffer); + passData.lineTargetColor = m_LineColorBuffer; + builder.UseTexture(passData.lineTargetColor, AccessFlags.Read); + passData.lineTargetDepth = m_LineDepthBuffer; + builder.UseTexture(passData.lineTargetDepth, AccessFlags.Read); + passData.lineTargetMV = m_LineMVBuffer; + builder.UseTexture(passData.lineTargetMV, AccessFlags.Read); passData.writeDepthAndMovecAlphaTreshold = settings.writeDepthAlphaThreshold.value; - builder.SetRenderFunc((LineRendererCompositeData passData, RenderGraphContext context) => + builder.SetRenderFunc((LineRendererCompositeData passData, UnsafeGraphContext ctx) => { + var natCmd = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); passData.compositePass.SetTexture(HDShaderIDs._LineColorTexture, passData.lineTargetColor); passData.compositePass.SetTexture(HDShaderIDs._LineDepthTexture, passData.lineTargetDepth); passData.compositePass.SetTexture(HDShaderIDs._LineMotionTexture, passData.lineTargetMV); passData.compositePass.SetFloat(HDShaderIDs._LineAlphaDepthWriteThreshold, passData.writeDepthAndMovecAlphaTreshold ); if (passData.writeDepthAndMovecAlphaTreshold > 0) { - HDUtils.DrawFullScreen(context.cmd, passData.compositePass, new RenderTargetIdentifier[] { passData.mainTargetColor}, passData.mainTargetDepth, null, m_LineCompositePassColorIndex); //color composite - HDUtils.DrawFullScreen(context.cmd, passData.compositePass, new RenderTargetIdentifier[] { passData.mainTargetMV }, passData.mainTargetDepth, null, m_LineCompositePassDepthMovecIndex); //depth & movec composite + HDUtils.DrawFullScreen(natCmd, passData.compositePass, new RenderTargetIdentifier[] { passData.mainTargetColor}, passData.mainTargetDepth, null, m_LineCompositePassColorIndex); //color composite + HDUtils.DrawFullScreen(natCmd, passData.compositePass, new RenderTargetIdentifier[] { passData.mainTargetMV }, passData.mainTargetDepth, null, m_LineCompositePassDepthMovecIndex); //depth & movec composite } else { - HDUtils.DrawFullScreen(context.cmd, passData.compositePass, new RenderTargetIdentifier[] { passData.mainTargetColor, passData.mainTargetMV }, passData.mainTargetDepth, null, m_LineCompositePassAllIndex); //composite all + HDUtils.DrawFullScreen(natCmd, passData.compositePass, new RenderTargetIdentifier[] { passData.mainTargetColor, passData.mainTargetMV }, passData.mainTargetDepth, null, m_LineCompositePassAllIndex); //composite all } }); } diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/PathTracing/PathTracing.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/PathTracing/PathTracing.cs index 67fbc0e2837..8190d838ee6 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/PathTracing/PathTracing.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/PathTracing/PathTracing.cs @@ -581,7 +581,7 @@ class RenderPathTracingData void RenderPathTracingFrame(RenderGraph renderGraph, HDCamera hdCamera, in CameraData cameraData, TextureHandle pathTracingBuffer, TextureHandle albedo, TextureHandle normal, TextureHandle motionVector, TextureHandle volumetricScattering) { - using (var builder = renderGraph.AddRenderPass("Render Path Tracing Frame", out var passData)) + using (var builder = renderGraph.AddUnsafePass("Render Path Tracing Frame", out var passData)) { #if ENABLE_SENSOR_SDK passData.shader = hdCamera.pathTracingShaderOverride ? hdCamera.pathTracingShaderOverride : rayTracingResources.pathTracingRT; @@ -615,90 +615,99 @@ void RenderPathTracingFrame(RenderGraph renderGraph, HDCamera hdCamera, in Camer passData.shaderVariablesRaytracingCB._RaytracingSampleIndex = m_PathTracingSettings.seedMode == SeedMode.Custom ? m_PathTracingSettings.customSeed.value : seed; passData.skyReflection = m_SkyManager.GetSkyReflection(hdCamera); - passData.skyBG = builder.ReadTexture(m_SkyBGTexture); - passData.skyCDF = builder.ReadTexture(m_SkyCDFTexture); - passData.skyMarginal = builder.ReadTexture(m_SkyMarginalTexture); + passData.skyBG = m_SkyBGTexture; + builder.UseTexture(passData.skyBG, AccessFlags.Read); + passData.skyCDF = m_SkyCDFTexture; + builder.UseTexture(passData.skyCDF, AccessFlags.Read); + passData.skyMarginal = m_SkyMarginalTexture; + builder.UseTexture(passData.skyMarginal, AccessFlags.Read); - passData.output = builder.WriteTexture(pathTracingBuffer); + passData.output = pathTracingBuffer; + builder.UseTexture(passData.output, AccessFlags.Write); // AOVs passData.enableAOVs = albedo.IsValid() && normal.IsValid() && motionVector.IsValid(); if (passData.enableAOVs) { - passData.albedoAOV = builder.WriteTexture(albedo); - passData.normalAOV = builder.WriteTexture(normal); - passData.motionVectorAOV = builder.WriteTexture(motionVector); + passData.albedoAOV = albedo; + builder.UseTexture(passData.albedoAOV, AccessFlags.Write); + passData.normalAOV = normal; + builder.UseTexture(passData.normalAOV, AccessFlags.Write); + passData.motionVectorAOV = motionVector; + builder.UseTexture(passData.motionVectorAOV, AccessFlags.Write); } passData.enableVolumetricScattering = volumetricScattering.IsValid(); if (passData.enableVolumetricScattering) { - passData.volumetricScatteringAOV = builder.WriteTexture(volumetricScattering); + passData.volumetricScatteringAOV = volumetricScattering; + builder.UseTexture(passData.volumetricScatteringAOV, AccessFlags.Write); } passData.enableDecals = hdCamera.frameSettings.IsEnabled(FrameSettingsField.Decals); builder.SetRenderFunc( - (RenderPathTracingData data, RenderGraphContext ctx) => + (RenderPathTracingData data, UnsafeGraphContext ctx) => { + var natCmd = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); // Define the shader pass to use for the path tracing pass - ctx.cmd.SetRayTracingShaderPass(data.shader, "PathTracingDXR"); + natCmd.SetRayTracingShaderPass(data.shader, "PathTracingDXR"); // Set the acceleration structure for the pass - ctx.cmd.SetRayTracingAccelerationStructure(data.shader, HDShaderIDs._RaytracingAccelerationStructureName, data.accelerationStructure); + natCmd.SetRayTracingAccelerationStructure(data.shader, HDShaderIDs._RaytracingAccelerationStructureName, data.accelerationStructure); // Inject the ray-tracing sampling data - BlueNoise.BindDitheredTextureSet(ctx.cmd, data.ditheredTextureSet); + BlueNoise.BindDitheredTextureSet(natCmd, data.ditheredTextureSet); // Update the global constant buffer - ConstantBuffer.PushGlobal(ctx.cmd, data.shaderVariablesRaytracingCB, HDShaderIDs._ShaderVariablesRaytracing); + ConstantBuffer.PushGlobal(natCmd, data.shaderVariablesRaytracingCB, HDShaderIDs._ShaderVariablesRaytracing); // LightLoop data - ctx.cmd.SetGlobalBuffer(HDShaderIDs._RaytracingLightCluster, data.lightCluster.GetCluster()); + natCmd.SetGlobalBuffer(HDShaderIDs._RaytracingLightCluster, data.lightCluster.GetCluster()); // Global sky data - ctx.cmd.SetGlobalInt(HDShaderIDs._PathTracingCameraSkyEnabled, data.cameraData.skyEnabled ? 1 : 0); - ctx.cmd.SetGlobalInt(HDShaderIDs._PathTracingSkyTextureWidth, 2 * data.skySize); - ctx.cmd.SetGlobalInt(HDShaderIDs._PathTracingSkyTextureHeight, data.skySize); - ctx.cmd.SetGlobalTexture(HDShaderIDs._SkyTexture, data.skyReflection); - ctx.cmd.SetGlobalTexture(HDShaderIDs._SkyCameraTexture, data.skyBG); - ctx.cmd.SetGlobalTexture(HDShaderIDs._PathTracingSkyCDFTexture, data.skyCDF); - ctx.cmd.SetGlobalTexture(HDShaderIDs._PathTracingSkyMarginalTexture, data.skyMarginal); + natCmd.SetGlobalInt(HDShaderIDs._PathTracingCameraSkyEnabled, data.cameraData.skyEnabled ? 1 : 0); + natCmd.SetGlobalInt(HDShaderIDs._PathTracingSkyTextureWidth, 2 * data.skySize); + natCmd.SetGlobalInt(HDShaderIDs._PathTracingSkyTextureHeight, data.skySize); + natCmd.SetGlobalTexture(HDShaderIDs._SkyTexture, data.skyReflection); + natCmd.SetGlobalTexture(HDShaderIDs._SkyCameraTexture, data.skyBG); + natCmd.SetGlobalTexture(HDShaderIDs._PathTracingSkyCDFTexture, data.skyCDF); + natCmd.SetGlobalTexture(HDShaderIDs._PathTracingSkyMarginalTexture, data.skyMarginal); // Further sky-related data for the ray miss - ctx.cmd.SetRayTracingVectorParam(data.shader, HDShaderIDs._PathTracingCameraClearColor, data.backgroundColor); + natCmd.SetRayTracingVectorParam(data.shader, HDShaderIDs._PathTracingCameraClearColor, data.backgroundColor); // Data used in the camera rays generation - ctx.cmd.SetRayTracingTextureParam(data.shader, HDShaderIDs._FrameTexture, data.output); - ctx.cmd.SetRayTracingMatrixParam(data.shader, HDShaderIDs._PixelCoordToViewDirWS, data.pixelCoordToViewDirWS); - ctx.cmd.SetRayTracingVectorParam(data.shader, HDShaderIDs._PathTracingDoFParameters, data.dofParameters); - ctx.cmd.SetRayTracingVectorParam(data.shader, HDShaderIDs._PathTracingTilingParameters, data.tilingParameters); + natCmd.SetRayTracingTextureParam(data.shader, HDShaderIDs._FrameTexture, data.output); + natCmd.SetRayTracingMatrixParam(data.shader, HDShaderIDs._PixelCoordToViewDirWS, data.pixelCoordToViewDirWS); + natCmd.SetRayTracingVectorParam(data.shader, HDShaderIDs._PathTracingDoFParameters, data.dofParameters); + natCmd.SetRayTracingVectorParam(data.shader, HDShaderIDs._PathTracingTilingParameters, data.tilingParameters); if (data.enableDecals) - DecalSystem.instance.SetAtlas(ctx.cmd); // for clustered decals + DecalSystem.instance.SetAtlas(natCmd); // for clustered decals #if ENABLE_SENSOR_SDK // SensorSDK can do its own camera rays generation - data.prepareDispatchRays?.Invoke(ctx.cmd); + data.prepareDispatchRays?.Invoke(natCmd); #endif // AOVs if (data.enableAOVs) { - ctx.cmd.SetRayTracingTextureParam(data.shader, HDShaderIDs._AlbedoAOV, data.albedoAOV); - ctx.cmd.SetRayTracingTextureParam(data.shader, HDShaderIDs._NormalAOV, data.normalAOV); - ctx.cmd.SetRayTracingTextureParam(data.shader, HDShaderIDs._MotionVectorAOV, data.motionVectorAOV); + natCmd.SetRayTracingTextureParam(data.shader, HDShaderIDs._AlbedoAOV, data.albedoAOV); + natCmd.SetRayTracingTextureParam(data.shader, HDShaderIDs._NormalAOV, data.normalAOV); + natCmd.SetRayTracingTextureParam(data.shader, HDShaderIDs._MotionVectorAOV, data.motionVectorAOV); } if (data.enableVolumetricScattering) { - ctx.cmd.SetRayTracingTextureParam(data.shader, HDShaderIDs._VolumetricScatteringAOV, data.volumetricScatteringAOV); + natCmd.SetRayTracingTextureParam(data.shader, HDShaderIDs._VolumetricScatteringAOV, data.volumetricScatteringAOV); } // Run the computation var shaderName = data.enableAOVs ? (data.enableVolumetricScattering ? "RayGenVolScatteringAOV" : "RayGenAOV") : (data.enableVolumetricScattering ? "RayGenVolScattering" : "RayGen"); - ctx.cmd.DispatchRays(data.shader, shaderName, (uint)data.width, (uint)data.height, 1); + natCmd.DispatchRays(data.shader, shaderName, (uint)data.width, (uint)data.height, 1, null); }); } } @@ -734,33 +743,36 @@ void RenderSkySamplingData(RenderGraph renderGraph, HDCamera hdCamera) if (!rayTracingResources.pathTracingSkySamplingDataCS) return; - using (var builder = renderGraph.AddRenderPass("Render Sky Sampling Data for Path Tracing", out var passData)) + using (var builder = renderGraph.AddUnsafePass("Render Sky Sampling Data for Path Tracing", out var passData)) { passData.shader = rayTracingResources.pathTracingSkySamplingDataCS; passData.k0 = passData.shader.FindKernel("ComputeCDF"); passData.k1 = passData.shader.FindKernel("ComputeMarginal"); passData.size = m_skySamplingSize; - passData.outputCDF = builder.WriteTexture(m_SkyCDFTexture); - passData.outputMarginal = builder.WriteTexture(m_SkyMarginalTexture); + passData.outputCDF = m_SkyCDFTexture; + builder.UseTexture(passData.outputCDF, AccessFlags.Write); + passData.outputMarginal = m_SkyMarginalTexture; + builder.UseTexture(passData.outputMarginal, AccessFlags.Write); builder.SetRenderFunc( - (RenderSkySamplingPassData data, RenderGraphContext ctx) => + (RenderSkySamplingPassData data, UnsafeGraphContext ctx) => { - ctx.cmd.SetComputeIntParam(data.shader, HDShaderIDs._PathTracingSkyTextureWidth, data.size * 2); - ctx.cmd.SetComputeIntParam(data.shader, HDShaderIDs._PathTracingSkyTextureHeight, data.size); + var natCmd = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); + natCmd.SetComputeIntParam(data.shader, HDShaderIDs._PathTracingSkyTextureWidth, data.size * 2); + natCmd.SetComputeIntParam(data.shader, HDShaderIDs._PathTracingSkyTextureHeight, data.size); - ctx.cmd.SetComputeTextureParam(data.shader, data.k0, HDShaderIDs._PathTracingSkyCDFTexture, data.outputCDF); - ctx.cmd.SetComputeTextureParam(data.shader, data.k0, HDShaderIDs._PathTracingSkyMarginalTexture, data.outputMarginal); - ctx.cmd.DispatchCompute(data.shader, data.k0, 1, data.size, 1); + natCmd.SetComputeTextureParam(data.shader, data.k0, HDShaderIDs._PathTracingSkyCDFTexture, data.outputCDF); + natCmd.SetComputeTextureParam(data.shader, data.k0, HDShaderIDs._PathTracingSkyMarginalTexture, data.outputMarginal); + natCmd.DispatchCompute(data.shader, data.k0, 1, data.size, 1); - ctx.cmd.SetComputeTextureParam(data.shader, data.k1, HDShaderIDs._PathTracingSkyMarginalTexture, data.outputMarginal); - ctx.cmd.DispatchCompute(data.shader, data.k1, 1, 1, 1); + natCmd.SetComputeTextureParam(data.shader, data.k1, HDShaderIDs._PathTracingSkyMarginalTexture, data.outputMarginal); + natCmd.DispatchCompute(data.shader, data.k1, 1, 1, 1); }); } } // This is the method to call from the main render loop - TextureHandle RenderPathTracing(RenderGraph renderGraph, HDCamera hdCamera, TextureHandle colorBuffer) + TextureHandle RenderPathTracing(RenderGraph renderGraph, ScriptableRenderContext renderContext, HDCamera hdCamera, TextureHandle colorBuffer) { #if UNITY_EDITOR if (m_PathTracingSettings == null) @@ -895,7 +907,7 @@ TextureHandle RenderPathTracing(RenderGraph renderGraph, HDCamera hdCamera, Text RenderAccumulation(m_RenderGraph, hdCamera, m_FrameTexture, colorBuffer, pathTracedAOVs, true); - RenderDenoisePass(m_RenderGraph, hdCamera, colorBuffer); + RenderDenoisePass(m_RenderGraph, renderContext, hdCamera, colorBuffer); return colorBuffer; } diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/HDDiffuseDenoiser.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/HDDiffuseDenoiser.cs index 9928493049a..a9d590c6d4d 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/HDDiffuseDenoiser.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/HDDiffuseDenoiser.cs @@ -86,11 +86,8 @@ internal struct DiffuseDenoiserParameters public TextureHandle Denoise(RenderGraph renderGraph, HDCamera hdCamera, DiffuseDenoiserParameters denoiserParams, TextureHandle noisyBuffer, TextureHandle depthBuffer, TextureHandle normalBuffer, TextureHandle outputBuffer) { - using (var builder = renderGraph.AddRenderPass("DiffuseDenoiser", out var passData, ProfilingSampler.Get(HDProfileId.DiffuseFilter))) + using (var builder = renderGraph.AddUnsafePass("DiffuseDenoiser", out var passData, ProfilingSampler.Get(HDProfileId.DiffuseFilter))) { - // Cannot run in async - builder.EnableAsyncCompute(false); - // Initialization data passData.needInit = !m_DenoiserInitialized; m_DenoiserInitialized = true; @@ -116,15 +113,20 @@ public TextureHandle Denoise(RenderGraph renderGraph, HDCamera hdCamera, Diffuse // Other parameters passData.diffuseDenoiserCS = m_DiffuseDenoiser; - passData.pointDistribution = builder.ReadBuffer(renderGraph.ImportBuffer(m_PointDistribution)); - passData.depthStencilBuffer = builder.ReadTexture(depthBuffer); - passData.normalBuffer = builder.ReadTexture(normalBuffer); - passData.noisyBuffer = builder.ReadTexture(noisyBuffer); + passData.pointDistribution = renderGraph.ImportBuffer(m_PointDistribution); + builder.UseBuffer(passData.pointDistribution, AccessFlags.Read); + passData.depthStencilBuffer = depthBuffer; + builder.UseTexture(passData.depthStencilBuffer, AccessFlags.Read); + passData.normalBuffer = normalBuffer; + builder.UseTexture(passData.normalBuffer, AccessFlags.Read); + passData.noisyBuffer = noisyBuffer; + builder.UseTexture(passData.noisyBuffer, AccessFlags.Read); passData.intermediateBuffer = builder.CreateTransientTexture(new TextureDesc(Vector2.one, true, true) { format = GraphicsFormat.B10G11R11_UFloatPack32, enableRandomWrite = true, name = "DiffuseDenoiserIntermediate" }); - passData.outputBuffer = builder.WriteTexture(outputBuffer); + passData.outputBuffer = outputBuffer; + builder.UseTexture(passData.outputBuffer, AccessFlags.Write); builder.SetRenderFunc( - (DiffuseDenoiserPassData data, RenderGraphContext ctx) => + (DiffuseDenoiserPassData data, UnsafeGraphContext ctx) => { // Generate the point distribution if needed (this is only ran once) if (data.needInit) diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/HDDiffuseShadowDenoiser.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/HDDiffuseShadowDenoiser.cs index cc9244601ed..3ebb08448d9 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/HDDiffuseShadowDenoiser.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/HDDiffuseShadowDenoiser.cs @@ -90,11 +90,8 @@ public TextureHandle DenoiseBufferDirectional(RenderGraph renderGraph, HDCamera TextureHandle noisyBuffer, TextureHandle distanceBuffer, int kernelSize, float angularDiameter, bool singleChannel = true) { - using (var builder = renderGraph.AddRenderPass("TemporalDenoiser", out var passData, ProfilingSampler.Get(HDProfileId.DiffuseFilter))) + using (var builder = renderGraph.AddUnsafePass("TemporalDenoiser", out var passData, ProfilingSampler.Get(HDProfileId.DiffuseFilter))) { - // Cannot run in async - builder.EnableAsyncCompute(false); - // Fetch all the resources // Set the camera parameters passData.texWidth = hdCamera.actualWidth; @@ -115,22 +112,27 @@ public TextureHandle DenoiseBufferDirectional(RenderGraph renderGraph, HDCamera passData.diffuseShadowDenoiserCS = m_ShadowDenoiser; // Input buffers - passData.depthStencilBuffer = builder.UseDepthBuffer(depthBuffer, DepthAccess.Read); - passData.normalBuffer = builder.ReadTexture(normalBuffer); - passData.distanceBuffer = builder.ReadTexture(distanceBuffer); - passData.noisyBuffer = builder.ReadTexture(noisyBuffer); + passData.depthStencilBuffer = depthBuffer; + builder.UseTexture(depthBuffer, AccessFlags.Read); + passData.normalBuffer = normalBuffer; + builder.UseTexture(passData.normalBuffer, AccessFlags.Read); + passData.distanceBuffer = distanceBuffer; + builder.UseTexture(passData.distanceBuffer, AccessFlags.Read); + passData.noisyBuffer = noisyBuffer; + builder.UseTexture(passData.noisyBuffer, AccessFlags.Read); // Temporary buffers passData.intermediateBuffer = builder.CreateTransientTexture(new TextureDesc(Vector2.one, true, true) { format = GraphicsFormat.R16G16B16A16_SFloat, enableRandomWrite = true, name = "Intermediate buffer" }); // Output buffer - passData.outputBuffer = builder.ReadWriteTexture(renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) - { format = GraphicsFormat.R16G16B16A16_SFloat, enableRandomWrite = true, name = "Denoised Buffer" })); + passData.outputBuffer = renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) + { format = GraphicsFormat.R16G16B16A16_SFloat, enableRandomWrite = true, name = "Denoised Buffer" }); + builder.UseTexture(passData.outputBuffer, AccessFlags.ReadWrite); builder.SetRenderFunc( - (DiffuseShadowDenoiserDirectionalPassData data, RenderGraphContext ctx) => + (DiffuseShadowDenoiserDirectionalPassData data, UnsafeGraphContext ctx) => { // Raise the distance based denoiser keyword CoreUtils.SetKeyword(ctx.cmd, "DISTANCE_BASED_DENOISER", true); @@ -208,11 +210,8 @@ public TextureHandle DenoiseBufferSphere(RenderGraph renderGraph, HDCamera hdCam TextureHandle noisyBuffer, TextureHandle distanceBuffer, PunctualShadowProperties properties) { - using (var builder = renderGraph.AddRenderPass("DiffuseDenoiser", out var passData, ProfilingSampler.Get(HDProfileId.DiffuseFilter))) + using (var builder = renderGraph.AddUnsafePass("DiffuseDenoiser", out var passData, ProfilingSampler.Get(HDProfileId.DiffuseFilter))) { - // Cannot run in async - builder.EnableAsyncCompute(false); - // Set the camera parameters passData.texWidth = hdCamera.actualWidth; passData.texHeight = hdCamera.actualHeight; @@ -261,23 +260,30 @@ public TextureHandle DenoiseBufferSphere(RenderGraph renderGraph, HDCamera hdCam passData.diffuseShadowDenoiserCS = m_ShadowDenoiser; // Input buffers - passData.depthStencilBuffer = builder.UseDepthBuffer(depthBuffer, DepthAccess.Read); - passData.normalBuffer = builder.ReadTexture(normalBuffer); + passData.depthStencilBuffer = depthBuffer; + builder.UseTexture(passData.depthStencilBuffer, AccessFlags.Read); + passData.normalBuffer = normalBuffer; + builder.UseTexture(passData.normalBuffer, AccessFlags.Read); if (properties.distanceBasedDenoiser) - passData.distanceBuffer = builder.ReadTexture(distanceBuffer); - passData.noisyBuffer = builder.ReadTexture(noisyBuffer); + { + passData.distanceBuffer = distanceBuffer; + builder.UseTexture(passData.distanceBuffer, AccessFlags.Read); + } + passData.noisyBuffer = noisyBuffer; + builder.UseTexture(passData.noisyBuffer, AccessFlags.Read); // Temporary buffers passData.intermediateBuffer = builder.CreateTransientTexture(new TextureDesc(Vector2.one, true, true) { format = GraphicsFormat.R16G16B16A16_SFloat, enableRandomWrite = true, name = "Intermediate buffer" }); // Output buffer - passData.outputBuffer = builder.ReadWriteTexture(renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) - { format = GraphicsFormat.R16G16B16A16_SFloat, enableRandomWrite = true, name = "Denoised Buffer" })); + passData.outputBuffer = renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) + { format = GraphicsFormat.R16G16B16A16_SFloat, enableRandomWrite = true, name = "Denoised Buffer" }); + builder.UseTexture(passData.outputBuffer, AccessFlags.ReadWrite); builder.SetRenderFunc( - (DiffuseShadowDenoiserSpherePassData data, RenderGraphContext ctx) => + (DiffuseShadowDenoiserSpherePassData data, UnsafeGraphContext ctx) => { // Evaluate the dispatch parameters int shadowTileSize = 8; diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/HDRaytracingLightCluster.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/HDRaytracingLightCluster.cs index 3099760de1b..22a8992cce0 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/HDRaytracingLightCluster.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/HDRaytracingLightCluster.cs @@ -233,31 +233,32 @@ public void EvaluateClusterDebugView(RenderGraph renderGraph, HDCamera hdCamera, return; TextureHandle debugTexture; - using (var builder = renderGraph.AddRenderPass("Debug Texture for the Light Cluster", out var passData, ProfilingSampler.Get(HDProfileId.RaytracingDebugCluster))) + using (var builder = renderGraph.AddUnsafePass("Debug Texture for the Light Cluster", out var passData, ProfilingSampler.Get(HDProfileId.RaytracingDebugCluster))) { - builder.EnableAsyncCompute(false); - passData.texWidth = hdCamera.actualWidth; passData.texHeight = hdCamera.actualHeight; passData.clusterCellSize = clusterCellSize; - passData.lightCluster = builder.ReadBuffer(renderGraph.ImportBuffer(m_LightCluster)); + passData.lightCluster = renderGraph.ImportBuffer(m_LightCluster); + builder.UseBuffer(passData.lightCluster, AccessFlags.Read); passData.lightClusterDebugCS = m_RenderPipeline.rayTracingResources.lightClusterDebugCS; passData.lightClusterDebugKernel = passData.lightClusterDebugCS.FindKernel("DebugLightCluster"); passData.debugMaterial = m_DebugMaterial; - passData.depthStencilBuffer = builder.UseDepthBuffer(depthStencilBuffer, DepthAccess.Read); - passData.depthPyramid = builder.ReadTexture(depthStencilBuffer); - passData.outputBuffer = builder.WriteTexture(renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) - { format = GraphicsFormat.R16G16B16A16_SFloat, enableRandomWrite = true, name = "Light Cluster Debug Texture" })); + passData.depthStencilBuffer = depthStencilBuffer; + passData.depthPyramid = depthStencilBuffer; + builder.UseTexture(passData.depthPyramid, AccessFlags.Read); + passData.outputBuffer = renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) + { format = GraphicsFormat.R16G16B16A16_SFloat, enableRandomWrite = true, name = "Light Cluster Debug Texture" }); + builder.UseTexture(passData.outputBuffer, AccessFlags.Write); passData.clusterLightCategory = m_RenderPipeline.m_CurrentDebugDisplaySettings.data.lightClusterCategoryDebug; builder.SetRenderFunc( - (LightClusterDebugPassData data, RenderGraphContext ctx) => + (LightClusterDebugPassData data, UnsafeGraphContext ctx) => { var debugMaterialProperties = ctx.renderGraphPool.GetTempMaterialPropertyBlock(); // Bind the output texture - CoreUtils.SetRenderTarget(ctx.cmd, data.outputBuffer, data.depthStencilBuffer, clearFlag: ClearFlag.Color, clearColor: Color.black); + CoreUtils.SetRenderTarget(CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd), data.outputBuffer, data.depthStencilBuffer, clearFlag: ClearFlag.Color, clearColor: Color.black); // Inject all the parameters to the debug compute ctx.cmd.SetComputeBufferParam(data.lightClusterDebugCS, data.lightClusterDebugKernel, HDShaderIDs._RaytracingLightCluster, data.lightCluster); diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/HDRaytracingManager.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/HDRaytracingManager.cs index 819a2a260db..694898524bf 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/HDRaytracingManager.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/HDRaytracingManager.cs @@ -748,10 +748,8 @@ internal void EvaluateRTASDebugView(RenderGraph renderGraph, HDCamera hdCamera) RTASDebugPassData passData; - using (var builder = renderGraph.AddRenderPass("Debug view of the RTAS", out passData, ProfilingSampler.Get(HDProfileId.RaytracingBuildAccelerationStructureDebug))) + using (var builder = renderGraph.AddUnsafePass("Debug view of the RTAS", out passData, ProfilingSampler.Get(HDProfileId.RaytracingBuildAccelerationStructureDebug))) { - builder.EnableAsyncCompute(false); - // Camera data passData.actualWidth = hdCamera.actualWidth; passData.actualHeight = hdCamera.actualHeight; @@ -767,11 +765,12 @@ internal void EvaluateRTASDebugView(RenderGraph renderGraph, HDCamera hdCamera) passData.rayTracingAccelerationStructure = RequestAccelerationStructure(hdCamera); // Depending of if we will have to denoise (or not), we need to allocate the final format, or a bigger texture - passData.outputTexture = builder.WriteTexture(renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) - { format = GraphicsFormat.R16G16B16A16_SFloat, enableRandomWrite = true, name = "RTAS Debug" })); + passData.outputTexture = renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) + { format = GraphicsFormat.R16G16B16A16_SFloat, enableRandomWrite = true, name = "RTAS Debug" }); + builder.UseTexture(passData.outputTexture, AccessFlags.Write); builder.SetRenderFunc( - (RTASDebugPassData data, RenderGraphContext ctx) => + (RTASDebugPassData data, UnsafeGraphContext ctx) => { // Define the shader pass to use for the reflection pass ctx.cmd.SetRayTracingShaderPass(data.debugRTASRT, "DebugDXR"); @@ -788,7 +787,7 @@ internal void EvaluateRTASDebugView(RenderGraph renderGraph, HDCamera hdCamera) ctx.cmd.SetRayTracingTextureParam(data.debugRTASRT, "_OutputDebugBuffer", data.outputTexture); // Evaluate the debug view - ctx.cmd.DispatchRays(data.debugRTASRT, m_RTASDebugRTKernel, (uint)data.actualWidth, (uint)data.actualHeight, (uint)data.viewCount); + ctx.cmd.DispatchRays(data.debugRTASRT, m_RTASDebugRTKernel, (uint)data.actualWidth, (uint)data.actualHeight, (uint)data.viewCount, null); }); } diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/HDReflectionDenoiser.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/HDReflectionDenoiser.cs index a9522dc4709..9b97397cff3 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/HDReflectionDenoiser.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/HDReflectionDenoiser.cs @@ -79,10 +79,8 @@ class ReflectionDenoiserPassData public TextureHandle DenoiseRTR(RenderGraph renderGraph, HDCamera hdCamera, float historyValidity, int maxKernelSize, bool fullResolution, bool singleReflectionBounce, bool affectSmoothSurfaces, TextureHandle depthPyramid, TextureHandle normalBuffer, TextureHandle motionVectorBuffer, TextureHandle clearCoatTexture, TextureHandle lightingTexture, RTHandle historyBuffer) { - using (var builder = renderGraph.AddRenderPass("Denoise ray traced reflections", out var passData, ProfilingSampler.Get(HDProfileId.RaytracingReflectionFilter))) + using (var builder = renderGraph.AddUnsafePass("Denoise ray traced reflections", out var passData, ProfilingSampler.Get(HDProfileId.RaytracingReflectionFilter))) { - builder.EnableAsyncCompute(false); - // Camera parameters passData.texWidth = fullResolution ? hdCamera.actualWidth : (hdCamera.actualWidth / 2); passData.texHeight = fullResolution ? hdCamera.actualHeight : (hdCamera.actualHeight / 2); @@ -107,9 +105,12 @@ public TextureHandle DenoiseRTR(RenderGraph renderGraph, HDCamera hdCamera, floa passData.bilateralFilterVKernel = fullResolution ? s_BilateralFilterV_FRKernel : s_BilateralFilterV_HRKernel; passData.reflectionFilterMapping = m_ReflectionFilterMapping; - passData.depthBuffer = builder.ReadTexture(depthPyramid); - passData.normalBuffer = builder.ReadTexture(normalBuffer); - passData.motionVectorBuffer = builder.ReadTexture(motionVectorBuffer); + passData.depthBuffer = depthPyramid; + builder.UseTexture(passData.depthBuffer, AccessFlags.Read); + passData.normalBuffer = normalBuffer; + builder.UseTexture(passData.normalBuffer, AccessFlags.Read); + passData.motionVectorBuffer = motionVectorBuffer; + builder.UseTexture(passData.motionVectorBuffer, AccessFlags.Read); RTHandle depthT = hdCamera.GetCurrentFrameRT((int)HDCameraFrameHistoryType.Depth); passData.historyDepth = depthT != null ? renderGraph.ImportTexture(hdCamera.GetCurrentFrameRT((int)HDCameraFrameHistoryType.Depth)) : renderGraph.defaultResources.blackTextureXR; @@ -117,10 +118,12 @@ public TextureHandle DenoiseRTR(RenderGraph renderGraph, HDCamera hdCamera, floa { format = GraphicsFormat.R16G16B16A16_SFloat, enableRandomWrite = true, name = "IntermediateTexture0" }); passData.intermediateBuffer1 = builder.CreateTransientTexture(new TextureDesc(Vector2.one, true, true) { format = GraphicsFormat.R16G16B16A16_SFloat, enableRandomWrite = true, name = "IntermediateTexture1" }); - passData.historySignal = builder.ReadWriteTexture(renderGraph.ImportTexture(historyBuffer)); - passData.noisyToOutputSignal = builder.ReadWriteTexture(lightingTexture); + passData.historySignal = renderGraph.ImportTexture(historyBuffer); + builder.UseTexture(passData.historySignal, AccessFlags.ReadWrite); + passData.noisyToOutputSignal = lightingTexture; + builder.UseTexture(passData.noisyToOutputSignal, AccessFlags.ReadWrite); - builder.SetRenderFunc((ReflectionDenoiserPassData data, RenderGraphContext ctx) => + builder.SetRenderFunc((ReflectionDenoiserPassData data, UnsafeGraphContext ctx) => { // Evaluate the dispatch parameters int tileSize = 8; diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/HDRenderPipeline.RaytracingAmbientOcclusion.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/HDRenderPipeline.RaytracingAmbientOcclusion.cs index faeacaeeaf4..4c8f076dfc4 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/HDRenderPipeline.RaytracingAmbientOcclusion.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/HDRenderPipeline.RaytracingAmbientOcclusion.cs @@ -90,12 +90,10 @@ class TraceRTAOPassData TraceAmbientOcclusionResult TraceAO(RenderGraph renderGraph, HDCamera hdCamera, TextureHandle depthBuffer, TextureHandle normalBuffer, TextureHandle rayCountTexture, in ShaderVariablesRaytracing shaderVariablesRaytracing) { - using (var builder = renderGraph.AddRenderPass("Tracing the rays for RTAO", out var passData, ProfilingSampler.Get(HDProfileId.RaytracingAmbientOcclusion))) + using (var builder = renderGraph.AddUnsafePass("Tracing the rays for RTAO", out var passData, ProfilingSampler.Get(HDProfileId.RaytracingAmbientOcclusion))) { TraceAmbientOcclusionResult traceOutput = new TraceAmbientOcclusionResult(); - builder.EnableAsyncCompute(false); - var aoSettings = hdCamera.volumeStack.GetComponent(); // Camera data @@ -116,44 +114,51 @@ TraceAmbientOcclusionResult TraceAO(RenderGraph renderGraph, HDCamera hdCamera, passData.rayTracingAccelerationStructure = RequestAccelerationStructure(hdCamera); passData.ditheredTextureSet = GetBlueNoiseManager().DitheredTextureSet8SPP(); - passData.depthBuffer = builder.ReadTexture(depthBuffer); - passData.normalBuffer = builder.ReadTexture(normalBuffer); - passData.rayCountTexture = builder.ReadWriteTexture(rayCountTexture); + passData.depthBuffer = depthBuffer; + builder.UseTexture(passData.depthBuffer, AccessFlags.Read); + passData.normalBuffer = normalBuffer; + builder.UseTexture(passData.normalBuffer, AccessFlags.Read); + passData.rayCountTexture = rayCountTexture; + builder.UseTexture(passData.rayCountTexture, AccessFlags.ReadWrite); // Depending of if we will have to denoise (or not), we need to allocate the final format, or a bigger texture - passData.outputTexture = builder.WriteTexture(renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) - { format = GraphicsFormat.R8_UNorm, enableRandomWrite = true, name = "Ray Traced Ambient Occlusion" })); - passData.velocityBuffer = builder.ReadWriteTexture(renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) - { format = GraphicsFormat.R8_SNorm, enableRandomWrite = true, name = "Velocity Buffer" })); + passData.outputTexture = renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) + { format = GraphicsFormat.R8_UNorm, enableRandomWrite = true, name = "Ray Traced Ambient Occlusion" }); + builder.UseTexture(passData.outputTexture, AccessFlags.Write); + passData.velocityBuffer = renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) + { format = GraphicsFormat.R8_SNorm, enableRandomWrite = true, name = "Velocity Buffer" }); + builder.UseTexture(passData.velocityBuffer, AccessFlags.ReadWrite); builder.SetRenderFunc( - (TraceRTAOPassData data, RenderGraphContext ctx) => + (TraceRTAOPassData data, UnsafeGraphContext ctx) => { + var natCmd = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); + // Define the shader pass to use for the reflection pass - ctx.cmd.SetRayTracingShaderPass(data.aoShaderRT, "VisibilityDXR"); + natCmd.SetRayTracingShaderPass(data.aoShaderRT, "VisibilityDXR"); // Set the acceleration structure for the pass - ctx.cmd.SetRayTracingAccelerationStructure(data.aoShaderRT, HDShaderIDs._RaytracingAccelerationStructureName, data.rayTracingAccelerationStructure); + natCmd.SetRayTracingAccelerationStructure(data.aoShaderRT, HDShaderIDs._RaytracingAccelerationStructureName, data.rayTracingAccelerationStructure); // Inject the ray generation data (be careful of the global constant buffer limitation) data.raytracingCB._RaytracingRayMaxLength = data.rayLength; data.raytracingCB._RaytracingNumSamples = data.sampleCount; - ConstantBuffer.PushGlobal(ctx.cmd, data.raytracingCB, HDShaderIDs._ShaderVariablesRaytracing); + ConstantBuffer.PushGlobal(natCmd, data.raytracingCB, HDShaderIDs._ShaderVariablesRaytracing); // Set the data for the ray generation - ctx.cmd.SetRayTracingTextureParam(data.aoShaderRT, HDShaderIDs._DepthTexture, data.depthBuffer); - ctx.cmd.SetGlobalTexture(HDShaderIDs._StencilTexture, data.depthBuffer, RenderTextureSubElement.Stencil); - ctx.cmd.SetRayTracingTextureParam(data.aoShaderRT, HDShaderIDs._NormalBufferTexture, data.normalBuffer); + natCmd.SetRayTracingTextureParam(data.aoShaderRT, HDShaderIDs._DepthTexture, data.depthBuffer); + natCmd.SetGlobalTexture(HDShaderIDs._StencilTexture, data.depthBuffer, RenderTextureSubElement.Stencil); + natCmd.SetRayTracingTextureParam(data.aoShaderRT, HDShaderIDs._NormalBufferTexture, data.normalBuffer); // Inject the ray-tracing sampling data - BlueNoise.BindDitheredTextureSet(ctx.cmd, data.ditheredTextureSet); + BlueNoise.BindDitheredTextureSet(natCmd, data.ditheredTextureSet); // Set the output textures - ctx.cmd.SetRayTracingTextureParam(data.aoShaderRT, HDShaderIDs._RayCountTexture, data.rayCountTexture); - ctx.cmd.SetRayTracingTextureParam(data.aoShaderRT, HDShaderIDs._AmbientOcclusionTextureRW, data.outputTexture); - ctx.cmd.SetRayTracingTextureParam(data.aoShaderRT, HDShaderIDs._VelocityBuffer, data.velocityBuffer); + natCmd.SetRayTracingTextureParam(data.aoShaderRT, HDShaderIDs._RayCountTexture, data.rayCountTexture); + natCmd.SetRayTracingTextureParam(data.aoShaderRT, HDShaderIDs._AmbientOcclusionTextureRW, data.outputTexture); + natCmd.SetRayTracingTextureParam(data.aoShaderRT, HDShaderIDs._VelocityBuffer, data.velocityBuffer); // Run the computation - ctx.cmd.DispatchRays(data.aoShaderRT, m_AORayGenShaderName, (uint)data.actualWidth, (uint)data.actualHeight, (uint)data.viewCount); + natCmd.DispatchRays(data.aoShaderRT, m_AORayGenShaderName, (uint)data.actualWidth, (uint)data.actualHeight, (uint)data.viewCount, null); }); traceOutput.signalBuffer = passData.outputTexture; @@ -222,10 +227,8 @@ class ComposeRTAOPassData TextureHandle ComposeAO(RenderGraph renderGraph, HDCamera hdCamera, TextureHandle aoTexture) { - using (var builder = renderGraph.AddRenderPass("Composing the result of RTAO", out var passData, ProfilingSampler.Get(HDProfileId.RaytracingComposeAmbientOcclusion))) + using (var builder = renderGraph.AddUnsafePass("Composing the result of RTAO", out var passData, ProfilingSampler.Get(HDProfileId.RaytracingComposeAmbientOcclusion))) { - builder.EnableAsyncCompute(false); - var aoSettings = hdCamera.volumeStack.GetComponent(); passData.intensity = aoSettings.intensity.value; @@ -234,10 +237,11 @@ TextureHandle ComposeAO(RenderGraph renderGraph, HDCamera hdCamera, TextureHandl passData.viewCount = hdCamera.viewCount; passData.aoShaderCS = rayTracingResources.aoRayTracingCS; passData.intensityKernel = m_RTAOApplyIntensityKernel; - passData.outputTexture = builder.ReadWriteTexture(aoTexture); + passData.outputTexture = aoTexture; + builder.UseTexture(passData.outputTexture, AccessFlags.ReadWrite); builder.SetRenderFunc( - (ComposeRTAOPassData data, RenderGraphContext ctx) => + (ComposeRTAOPassData data, UnsafeGraphContext ctx) => { ctx.cmd.SetComputeFloatParam(data.aoShaderCS, HDShaderIDs._RaytracingAOIntensity, data.intensity); ctx.cmd.SetComputeTextureParam(data.aoShaderCS, data.intensityKernel, HDShaderIDs._AmbientOcclusionTextureRW, data.outputTexture); @@ -264,15 +268,15 @@ static RTHandle RequestAmbientOcclusionHistoryTexture(RenderGraph renderGraph, H if (aoHistoryTex == null) { var newHistoryTexture = hdCamera.AllocHistoryFrameRT((int)HDCameraFrameHistoryType.RaytracedAmbientOcclusion, AmbientOcclusionHistoryBufferAllocatorFunction, 1); - using (var builder = renderGraph.AddRenderPass("Clearing the AO History Texture", out var passData, ProfilingSampler.Get(HDProfileId.RaytracingClearHistoryAmbientOcclusion))) + using (var builder = renderGraph.AddUnsafePass("Clearing the AO History Texture", out var passData, ProfilingSampler.Get(HDProfileId.RaytracingClearHistoryAmbientOcclusion))) { - builder.EnableAsyncCompute(false); - passData.aoTexture = builder.ReadWriteTexture(renderGraph.ImportTexture(newHistoryTexture)); + passData.aoTexture = renderGraph.ImportTexture(newHistoryTexture); + builder.UseTexture(passData.aoTexture, AccessFlags.ReadWrite); builder.SetRenderFunc( - (ClearRTAOHistoryData data, RenderGraphContext ctx) => + (ClearRTAOHistoryData data, UnsafeGraphContext ctx) => { - CoreUtils.SetRenderTarget(ctx.cmd, data.aoTexture, clearFlag: ClearFlag.Color, Color.black); + CoreUtils.SetRenderTarget(CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd), data.aoTexture, clearFlag: ClearFlag.Color, Color.black); }); return newHistoryTexture; diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/HDRenderPipeline.RaytracingDeferredLightLoop.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/HDRenderPipeline.RaytracingDeferredLightLoop.cs index 97f0e2104cd..fd6e2a76634 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/HDRenderPipeline.RaytracingDeferredLightLoop.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/HDRenderPipeline.RaytracingDeferredLightLoop.cs @@ -123,6 +123,7 @@ class DeferredLightingRTRPassData // Input textures public TextureHandle directionBuffer; + public TextureHandle renderingLayersTexture; // Intermediate textures public TextureHandle gbuffer0; @@ -236,23 +237,28 @@ RayTracingDefferedLightLoopOutput DeferredLightingRT(RenderGraph renderGraph, TextureHandle rayCountTexture) { RayTracingDefferedLightLoopOutput output = new RayTracingDefferedLightLoopOutput(); - using (var builder = renderGraph.AddRenderPass("Deferred Lighting Ray Tracing", out var passData, ProfilingSampler.Get(HDProfileId.RaytracingDeferredLighting))) + using (var builder = renderGraph.AddUnsafePass("Deferred Lighting Ray Tracing", out var passData, ProfilingSampler.Get(HDProfileId.RaytracingDeferredLighting))) { - builder.EnableAsyncCompute(false); - passData.parameters = parameters; + // Input Buffers - passData.directionBuffer = builder.ReadTexture(directionBuffer); - passData.depthStencilBuffer = builder.ReadTexture(prepassOutput.depthBuffer); - passData.depthPyramid = builder.ReadTexture(prepassOutput.depthPyramidTexture); - passData.normalBuffer = builder.ReadTexture(prepassOutput.normalBuffer); + passData.directionBuffer = directionBuffer; + builder.UseTexture(passData.directionBuffer, AccessFlags.Read); + passData.depthStencilBuffer = prepassOutput.depthBuffer; + builder.UseTexture(passData.depthStencilBuffer, AccessFlags.Read); + passData.depthPyramid = prepassOutput.depthPyramidTexture; + builder.UseTexture(passData.depthPyramid, AccessFlags.Read); + passData.normalBuffer = prepassOutput.normalBuffer; + builder.UseTexture(passData.normalBuffer, AccessFlags.Read); + passData.renderingLayersTexture = renderGraph.defaultResources.whiteTextureXR; + builder.UseTexture(passData.renderingLayersTexture, AccessFlags.Read); if (passData.parameters.mixedTracing) { - passData.ssgbuffer0 = builder.ReadTexture(prepassOutput.gbuffer.mrt[0]); - passData.ssgbuffer1 = builder.ReadTexture(prepassOutput.gbuffer.mrt[1]); - passData.ssgbuffer2 = builder.ReadTexture(prepassOutput.gbuffer.mrt[2]); - passData.ssgbuffer3 = builder.ReadTexture(prepassOutput.gbuffer.mrt[3]); + passData.ssgbuffer0 = prepassOutput.gbuffer.mrt[0]; + passData.ssgbuffer1 = prepassOutput.gbuffer.mrt[1]; + passData.ssgbuffer2 = prepassOutput.gbuffer.mrt[2]; + passData.ssgbuffer3 = prepassOutput.gbuffer.mrt[3]; } else { @@ -261,6 +267,10 @@ RayTracingDefferedLightLoopOutput DeferredLightingRT(RenderGraph renderGraph, passData.ssgbuffer2 = renderGraph.defaultResources.blackTextureXR; passData.ssgbuffer3 = renderGraph.defaultResources.blackTextureXR; } + builder.UseTexture(passData.ssgbuffer0, AccessFlags.Read); + builder.UseTexture(passData.ssgbuffer1, AccessFlags.Read); + builder.UseTexture(passData.ssgbuffer2, AccessFlags.Read); + builder.UseTexture(passData.ssgbuffer3, AccessFlags.Read); passData.skyTexture = skyTexture; @@ -277,17 +287,21 @@ RayTracingDefferedLightLoopOutput DeferredLightingRT(RenderGraph renderGraph, { format = GraphicsFormat.R32_SFloat, enableRandomWrite = true, name = "TMP Distance Buffer" }); // Output buffers - passData.rayCountTexture = builder.ReadWriteTexture(rayCountTexture); - passData.litBuffer = builder.WriteTexture(renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) - { format = GraphicsFormat.R16G16B16A16_SFloat, enableRandomWrite = true, name = "Deferred Lighting Result" })); - passData.distanceBuffer = builder.WriteTexture(renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) - { format = GraphicsFormat.R32_SFloat, enableRandomWrite = true, name = "Distance Buffer" })); + passData.rayCountTexture = rayCountTexture; + builder.UseTexture(passData.rayCountTexture, AccessFlags.ReadWrite); + passData.litBuffer = renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) + { format = GraphicsFormat.R16G16B16A16_SFloat, enableRandomWrite = true, name = "Deferred Lighting Result" }); + builder.UseTexture(passData.litBuffer, AccessFlags.Write); + passData.distanceBuffer = renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) + { format = GraphicsFormat.R32_SFloat, enableRandomWrite = true, name = "Distance Buffer" }); + builder.UseTexture(passData.distanceBuffer, AccessFlags.Write); passData.enableDecals = hdCamera.frameSettings.IsEnabled(FrameSettingsField.Decals); builder.SetRenderFunc( - (DeferredLightingRTRPassData data, RenderGraphContext ctx) => + (DeferredLightingRTRPassData data, UnsafeGraphContext ctx) => { + var natCmd = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); // Compute the input texture dimension int texWidth = data.parameters.width; int texHeight = data.parameters.height; @@ -300,70 +314,70 @@ RayTracingDefferedLightLoopOutput DeferredLightingRT(RenderGraph renderGraph, } // Inject the global parameters - ConstantBuffer.PushGlobal(ctx.cmd, data.parameters.raytracingCB, HDShaderIDs._ShaderVariablesRaytracing); + ConstantBuffer.PushGlobal(natCmd, data.parameters.raytracingCB, HDShaderIDs._ShaderVariablesRaytracing); // If mixed ray tracing was enabled for this pass, we need to try to resolve as many pixels as possible // using the depth buffer ray marching if (data.parameters.mixedTracing) { - RayMarchGBuffer(ctx.cmd, data, texWidth, texHeight); + RayMarchGBuffer(natCmd, data, texWidth, texHeight); } if (data.parameters.rayBinning) { - BinRays(ctx.cmd, data.parameters, data.directionBuffer, texWidth, texHeight); + BinRays(natCmd, data.parameters, data.directionBuffer, texWidth, texHeight); } // Inject the global parameters data.parameters.raytracingCB._RayTracingLodBias = data.parameters.lodBias; - ConstantBuffer.PushGlobal(ctx.cmd, data.parameters.raytracingCB, HDShaderIDs._ShaderVariablesRaytracing); + ConstantBuffer.PushGlobal(natCmd, data.parameters.raytracingCB, HDShaderIDs._ShaderVariablesRaytracing); // Define the shader pass to use for the reflection pass - ctx.cmd.SetRayTracingShaderPass(data.parameters.gBufferRaytracingRT, "GBufferDXR"); + natCmd.SetRayTracingShaderPass(data.parameters.gBufferRaytracingRT, "GBufferDXR"); if (data.parameters.rayBinning) { int numTilesRayBinX = (texWidth + (binningTileSize - 1)) / binningTileSize; - ctx.cmd.SetGlobalBuffer(HDShaderIDs._RayBinResult, data.parameters.rayBinResult); - ctx.cmd.SetGlobalBuffer(HDShaderIDs._RayBinSizeResult, data.parameters.rayBinSizeResult); - ctx.cmd.SetRayTracingIntParam(data.parameters.gBufferRaytracingRT, HDShaderIDs._RayBinTileCountX, numTilesRayBinX); + natCmd.SetGlobalBuffer(HDShaderIDs._RayBinResult, data.parameters.rayBinResult); + natCmd.SetGlobalBuffer(HDShaderIDs._RayBinSizeResult, data.parameters.rayBinSizeResult); + natCmd.SetRayTracingIntParam(data.parameters.gBufferRaytracingRT, HDShaderIDs._RayBinTileCountX, numTilesRayBinX); } // Set the acceleration structure for the pass - ctx.cmd.SetRayTracingAccelerationStructure(data.parameters.gBufferRaytracingRT, HDShaderIDs._RaytracingAccelerationStructureName, data.parameters.accelerationStructure); + natCmd.SetRayTracingAccelerationStructure(data.parameters.gBufferRaytracingRT, HDShaderIDs._RaytracingAccelerationStructureName, data.parameters.accelerationStructure); // Set ray count texture - ctx.cmd.SetRayTracingIntParam(data.parameters.gBufferRaytracingRT, HDShaderIDs._RayCountType, data.parameters.rayCountType); - ctx.cmd.SetRayTracingTextureParam(data.parameters.gBufferRaytracingRT, HDShaderIDs._RayCountTexture, data.rayCountTexture); + natCmd.SetRayTracingIntParam(data.parameters.gBufferRaytracingRT, HDShaderIDs._RayCountType, data.parameters.rayCountType); + natCmd.SetRayTracingTextureParam(data.parameters.gBufferRaytracingRT, HDShaderIDs._RayCountTexture, data.rayCountTexture); // Bind all input parameter - ctx.cmd.SetRayTracingIntParam(data.parameters.gBufferRaytracingRT, HDShaderIDs._RayTracingLayerMask, data.parameters.layerMask); - ctx.cmd.SetRayTracingTextureParam(data.parameters.gBufferRaytracingRT, HDShaderIDs._DepthTexture, data.depthStencilBuffer); - ctx.cmd.SetRayTracingTextureParam(data.parameters.gBufferRaytracingRT, HDShaderIDs._NormalBufferTexture, data.normalBuffer); - ctx.cmd.SetRayTracingTextureParam(data.parameters.gBufferRaytracingRT, HDShaderIDs._RaytracingDirectionBuffer, data.directionBuffer); - ctx.cmd.SetRayTracingIntParam(data.parameters.gBufferRaytracingRT, HDShaderIDs._RaytracingHalfResolution, data.parameters.halfResolution ? 1 : 0); + natCmd.SetRayTracingIntParam(data.parameters.gBufferRaytracingRT, HDShaderIDs._RayTracingLayerMask, data.parameters.layerMask); + natCmd.SetRayTracingTextureParam(data.parameters.gBufferRaytracingRT, HDShaderIDs._DepthTexture, data.depthStencilBuffer); + natCmd.SetRayTracingTextureParam(data.parameters.gBufferRaytracingRT, HDShaderIDs._NormalBufferTexture, data.normalBuffer); + natCmd.SetRayTracingTextureParam(data.parameters.gBufferRaytracingRT, HDShaderIDs._RaytracingDirectionBuffer, data.directionBuffer); + natCmd.SetRayTracingIntParam(data.parameters.gBufferRaytracingRT, HDShaderIDs._RaytracingHalfResolution, data.parameters.halfResolution ? 1 : 0); // Bind the output textures - ctx.cmd.SetRayTracingTextureParam(data.parameters.gBufferRaytracingRT, HDShaderIDs._GBufferTextureRW[0], data.gbuffer0); - ctx.cmd.SetRayTracingTextureParam(data.parameters.gBufferRaytracingRT, HDShaderIDs._GBufferTextureRW[1], data.gbuffer1); - ctx.cmd.SetRayTracingTextureParam(data.parameters.gBufferRaytracingRT, HDShaderIDs._GBufferTextureRW[2], data.gbuffer2); - ctx.cmd.SetRayTracingTextureParam(data.parameters.gBufferRaytracingRT, HDShaderIDs._GBufferTextureRW[3], data.gbuffer3); - ctx.cmd.SetRayTracingTextureParam(data.parameters.gBufferRaytracingRT, HDShaderIDs._RaytracingDistanceBuffer, data.tmpDistanceBuffer); + natCmd.SetRayTracingTextureParam(data.parameters.gBufferRaytracingRT, HDShaderIDs._GBufferTextureRW[0], data.gbuffer0); + natCmd.SetRayTracingTextureParam(data.parameters.gBufferRaytracingRT, HDShaderIDs._GBufferTextureRW[1], data.gbuffer1); + natCmd.SetRayTracingTextureParam(data.parameters.gBufferRaytracingRT, HDShaderIDs._GBufferTextureRW[2], data.gbuffer2); + natCmd.SetRayTracingTextureParam(data.parameters.gBufferRaytracingRT, HDShaderIDs._GBufferTextureRW[3], data.gbuffer3); + natCmd.SetRayTracingTextureParam(data.parameters.gBufferRaytracingRT, HDShaderIDs._RaytracingDistanceBuffer, data.tmpDistanceBuffer); // Compute the actual resolution that is needed base on the resolution uint widthResolution = (uint)data.parameters.width; uint heightResolution = (uint)data.parameters.height; // Include the sky if required - ctx.cmd.SetRayTracingTextureParam(data.parameters.gBufferRaytracingRT, HDShaderIDs._SkyTexture, data.skyTexture); + natCmd.SetRayTracingTextureParam(data.parameters.gBufferRaytracingRT, HDShaderIDs._SkyTexture, data.skyTexture); // Only compute diffuse lighting if required - CoreUtils.SetKeyword(ctx.cmd, "MINIMAL_GBUFFER", data.parameters.diffuseLightingOnly); + CoreUtils.SetKeyword(natCmd, "MINIMAL_GBUFFER", data.parameters.diffuseLightingOnly); if (data.enableDecals) { - DecalSystem.instance.SetAtlas(ctx.cmd); - data.parameters.lightCluster.BindLightClusterData(ctx.cmd); + DecalSystem.instance.SetAtlas(natCmd); + data.parameters.lightCluster.BindLightClusterData(natCmd); } if (data.parameters.rayBinning) @@ -373,43 +387,44 @@ RayTracingDefferedLightLoopOutput DeferredLightingRT(RenderGraph renderGraph, int numTilesRayBinY = (texHeight + (binningTileSize - 1)) / binningTileSize; int bufferSizeX = numTilesRayBinX * binningTileSize; int bufferSizeY = numTilesRayBinY * binningTileSize; - ctx.cmd.SetRayTracingIntParam(data.parameters.gBufferRaytracingRT, HDShaderIDs._BufferSizeX, bufferSizeX); + natCmd.SetRayTracingIntParam(data.parameters.gBufferRaytracingRT, HDShaderIDs._BufferSizeX, bufferSizeX); // Inject the data for the additional views - ctx.cmd.SetRayTracingIntParam(data.parameters.gBufferRaytracingRT, HDShaderIDs._RayBinViewOffset, bufferSizeX * bufferSizeY); - ctx.cmd.SetRayTracingIntParam(data.parameters.gBufferRaytracingRT, HDShaderIDs._RayBinTileViewOffset, numTilesRayBinX * numTilesRayBinY); + natCmd.SetRayTracingIntParam(data.parameters.gBufferRaytracingRT, HDShaderIDs._RayBinViewOffset, bufferSizeX * bufferSizeY); + natCmd.SetRayTracingIntParam(data.parameters.gBufferRaytracingRT, HDShaderIDs._RayBinTileViewOffset, numTilesRayBinX * numTilesRayBinY); // A really nice tip is to dispatch the rays as a 1D array instead of 2D, the performance difference has been measured. uint dispatchSize = (uint)(bufferSizeX * bufferSizeY); - ctx.cmd.DispatchRays(data.parameters.gBufferRaytracingRT, m_RayGenGBufferBinned, dispatchSize, 1, (uint)data.parameters.viewCount); + + natCmd.DispatchRays(data.parameters.gBufferRaytracingRT, m_RayGenGBufferBinned, dispatchSize, 1, (uint)data.parameters.viewCount, null); } else { - ctx.cmd.DispatchRays(data.parameters.gBufferRaytracingRT, m_RayGenGBuffer, widthResolution, heightResolution, (uint)data.parameters.viewCount); + natCmd.DispatchRays(data.parameters.gBufferRaytracingRT, m_RayGenGBuffer, widthResolution, heightResolution, (uint)data.parameters.viewCount, null); } - CoreUtils.SetKeyword(ctx.cmd, "MINIMAL_GBUFFER", false); + CoreUtils.SetKeyword(natCmd, "MINIMAL_GBUFFER", false); // Now let's do the deferred shading pass on the samples int currentKernel = data.parameters.deferredRaytracingCS.FindKernel(data.parameters.halfResolution ? "RaytracingDeferredHalf" : "RaytracingDeferred"); // Bind the lightLoop data - data.parameters.lightCluster.BindLightClusterData(ctx.cmd); + data.parameters.lightCluster.BindLightClusterData(natCmd); // Bind the input textures - ctx.cmd.SetComputeTextureParam(data.parameters.deferredRaytracingCS, currentKernel, HDShaderIDs._DepthTexture, data.depthStencilBuffer); - ctx.cmd.SetComputeTextureParam(data.parameters.deferredRaytracingCS, currentKernel, HDShaderIDs._NormalBufferTexture, data.normalBuffer); - ctx.cmd.SetComputeTextureParam(data.parameters.deferredRaytracingCS, currentKernel, HDShaderIDs._RaytracingDirectionBuffer, data.directionBuffer); - ctx.cmd.SetComputeTextureParam(data.parameters.deferredRaytracingCS, currentKernel, HDShaderIDs._RaytracingDistanceBuffer, data.tmpDistanceBuffer); - ctx.cmd.SetComputeTextureParam(data.parameters.deferredRaytracingCS, currentKernel, HDShaderIDs._GBufferTexture[0], data.gbuffer0); - ctx.cmd.SetComputeTextureParam(data.parameters.deferredRaytracingCS, currentKernel, HDShaderIDs._GBufferTexture[1], data.gbuffer1); - ctx.cmd.SetComputeTextureParam(data.parameters.deferredRaytracingCS, currentKernel, HDShaderIDs._GBufferTexture[2], data.gbuffer2); - ctx.cmd.SetComputeTextureParam(data.parameters.deferredRaytracingCS, currentKernel, HDShaderIDs._GBufferTexture[3], data.gbuffer3); - ctx.cmd.SetComputeTextureParam(data.parameters.deferredRaytracingCS, currentKernel, HDShaderIDs._RenderingLayersTexture, TextureXR.GetWhiteTexture()); + natCmd.SetComputeTextureParam(data.parameters.deferredRaytracingCS, currentKernel, HDShaderIDs._DepthTexture, data.depthStencilBuffer); + natCmd.SetComputeTextureParam(data.parameters.deferredRaytracingCS, currentKernel, HDShaderIDs._NormalBufferTexture, data.normalBuffer); + natCmd.SetComputeTextureParam(data.parameters.deferredRaytracingCS, currentKernel, HDShaderIDs._RaytracingDirectionBuffer, data.directionBuffer); + natCmd.SetComputeTextureParam(data.parameters.deferredRaytracingCS, currentKernel, HDShaderIDs._RaytracingDistanceBuffer, data.tmpDistanceBuffer); + natCmd.SetComputeTextureParam(data.parameters.deferredRaytracingCS, currentKernel, HDShaderIDs._GBufferTexture[0], data.gbuffer0); + natCmd.SetComputeTextureParam(data.parameters.deferredRaytracingCS, currentKernel, HDShaderIDs._GBufferTexture[1], data.gbuffer1); + natCmd.SetComputeTextureParam(data.parameters.deferredRaytracingCS, currentKernel, HDShaderIDs._GBufferTexture[2], data.gbuffer2); + natCmd.SetComputeTextureParam(data.parameters.deferredRaytracingCS, currentKernel, HDShaderIDs._GBufferTexture[3], data.gbuffer3); + natCmd.SetComputeTextureParam(data.parameters.deferredRaytracingCS, currentKernel, HDShaderIDs._RenderingLayersTexture, data.renderingLayersTexture); // Bind the output texture - ctx.cmd.SetComputeTextureParam(data.parameters.deferredRaytracingCS, currentKernel, HDShaderIDs._RaytracingLitBufferRW, data.litBuffer); - ctx.cmd.SetComputeTextureParam(data.parameters.deferredRaytracingCS, currentKernel, HDShaderIDs._RaytracingDistanceBufferRW, data.distanceBuffer); + natCmd.SetComputeTextureParam(data.parameters.deferredRaytracingCS, currentKernel, HDShaderIDs._RaytracingLitBufferRW, data.litBuffer); + natCmd.SetComputeTextureParam(data.parameters.deferredRaytracingCS, currentKernel, HDShaderIDs._RaytracingDistanceBufferRW, data.distanceBuffer); // Evaluate the dispatch parameters int areaTileSize = 8; @@ -417,7 +432,7 @@ RayTracingDefferedLightLoopOutput DeferredLightingRT(RenderGraph renderGraph, int numTilesYHR = (texHeight + (areaTileSize - 1)) / areaTileSize; // Compute the texture - ctx.cmd.DispatchCompute(data.parameters.deferredRaytracingCS, currentKernel, numTilesXHR, numTilesYHR, data.parameters.viewCount); + natCmd.DispatchCompute(data.parameters.deferredRaytracingCS, currentKernel, numTilesXHR, numTilesYHR, data.parameters.viewCount); }); // Output the two buffers we need diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/HDRenderPipeline.RaytracingIndirectDiffuse.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/HDRenderPipeline.RaytracingIndirectDiffuse.cs index d7019d4d717..f498e47d2e9 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/HDRenderPipeline.RaytracingIndirectDiffuse.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/HDRenderPipeline.RaytracingIndirectDiffuse.cs @@ -123,10 +123,8 @@ class DirGenRTGIPassData TextureHandle DirGenRTGI(RenderGraph renderGraph, HDCamera hdCamera, GlobalIllumination settings, TextureHandle depthStencilbuffer, TextureHandle normalBuffer, bool fullResolution) { - using (var builder = renderGraph.AddRenderPass("Generating the rays for RTGI", out var passData, ProfilingSampler.Get(HDProfileId.RaytracingIndirectDiffuseDirectionGeneration))) + using (var builder = renderGraph.AddUnsafePass("Generating the rays for RTGI", out var passData, ProfilingSampler.Get(HDProfileId.RaytracingIndirectDiffuseDirectionGeneration))) { - builder.EnableAsyncCompute(false); - // Set the camera parameters passData.texWidth = hdCamera.actualWidth; passData.texHeight = hdCamera.actualHeight; @@ -143,24 +141,28 @@ TextureHandle DirGenRTGI(RenderGraph renderGraph, HDCamera hdCamera, GlobalIllum passData.ditheredTextureSet = GetBlueNoiseManager().DitheredTextureSet8SPP(); passData.shaderVariablesRayTracingCB = m_ShaderVariablesRayTracingCB; - passData.depthStencilBuffer = builder.ReadTexture(depthStencilbuffer); - passData.normalBuffer = builder.ReadTexture(normalBuffer); - passData.outputBuffer = builder.WriteTexture(renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) - { format = GraphicsFormat.R16G16B16A16_SFloat, enableRandomWrite = true, name = "GI Ray Directions" })); + passData.depthStencilBuffer = depthStencilbuffer; + builder.UseTexture(passData.depthStencilBuffer, AccessFlags.Read); + passData.normalBuffer = normalBuffer; + builder.UseTexture(passData.normalBuffer, AccessFlags.Read); + passData.outputBuffer = renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) + { format = GraphicsFormat.R16G16B16A16_SFloat, enableRandomWrite = true, name = "GI Ray Directions" }); + builder.UseTexture(passData.outputBuffer, AccessFlags.Write); builder.SetRenderFunc( - (DirGenRTGIPassData data, RenderGraphContext ctx) => + (DirGenRTGIPassData data, UnsafeGraphContext ctx) => { + var natCmd = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); // Inject the ray-tracing sampling data - BlueNoise.BindDitheredTextureSet(ctx.cmd, data.ditheredTextureSet); + BlueNoise.BindDitheredTextureSet(natCmd, data.ditheredTextureSet); // Bind all the required textures - ctx.cmd.SetComputeTextureParam(data.directionGenCS, data.dirGenKernel, HDShaderIDs._DepthTexture, data.depthStencilBuffer); - ctx.cmd.SetComputeTextureParam(data.directionGenCS, data.dirGenKernel, HDShaderIDs._StencilTexture, data.depthStencilBuffer, 0, RenderTextureSubElement.Stencil); - ctx.cmd.SetComputeTextureParam(data.directionGenCS, data.dirGenKernel, HDShaderIDs._NormalBufferTexture, data.normalBuffer); + natCmd.SetComputeTextureParam(data.directionGenCS, data.dirGenKernel, HDShaderIDs._DepthTexture, data.depthStencilBuffer); + natCmd.SetComputeTextureParam(data.directionGenCS, data.dirGenKernel, HDShaderIDs._StencilTexture, data.depthStencilBuffer, 0, RenderTextureSubElement.Stencil); + natCmd.SetComputeTextureParam(data.directionGenCS, data.dirGenKernel, HDShaderIDs._NormalBufferTexture, data.normalBuffer); // Bind the output buffers - ctx.cmd.SetComputeTextureParam(data.directionGenCS, data.dirGenKernel, HDShaderIDs._RaytracingDirectionBuffer, data.outputBuffer); + natCmd.SetComputeTextureParam(data.directionGenCS, data.dirGenKernel, HDShaderIDs._RaytracingDirectionBuffer, data.outputBuffer); int numTilesXHR, numTilesYHR; if (data.fullResolution) @@ -177,7 +179,7 @@ TextureHandle DirGenRTGI(RenderGraph renderGraph, HDCamera hdCamera, GlobalIllum } // Compute the directions - ctx.cmd.DispatchCompute(data.directionGenCS, data.dirGenKernel, numTilesXHR, numTilesYHR, data.viewCount); + natCmd.DispatchCompute(data.directionGenCS, data.dirGenKernel, numTilesXHR, numTilesYHR, data.viewCount); }); return passData.outputBuffer; @@ -207,10 +209,8 @@ class UpscaleRTGIPassData TextureHandle UpscaleRTGI(RenderGraph renderGraph, HDCamera hdCamera, GlobalIllumination settings, TextureHandle depthPyramid, TextureHandle normalBuffer, TextureHandle indirectDiffuseBuffer, TextureHandle directionBuffer, bool fullResolution) { - using (var builder = renderGraph.AddRenderPass("Upscale the RTGI result", out var passData, ProfilingSampler.Get(HDProfileId.RaytracingIndirectDiffuseUpscale))) + using (var builder = renderGraph.AddUnsafePass("Upscale the RTGI result", out var passData, ProfilingSampler.Get(HDProfileId.RaytracingIndirectDiffuseUpscale))) { - builder.EnableAsyncCompute(false); - // Set the camera parameters passData.texWidth = hdCamera.actualWidth; passData.texHeight = hdCamera.actualHeight; @@ -224,15 +224,20 @@ TextureHandle UpscaleRTGI(RenderGraph renderGraph, HDCamera hdCamera, GlobalIllu passData.blueNoiseTexture = GetBlueNoiseManager().textureArray16RGB; passData.scramblingTexture = runtimeTextures.scramblingTex; - passData.depthBuffer = builder.ReadTexture(depthPyramid); - passData.normalBuffer = builder.ReadTexture(normalBuffer); - passData.indirectDiffuseBuffer = builder.ReadTexture(indirectDiffuseBuffer); - passData.directionBuffer = builder.ReadTexture(directionBuffer); - passData.outputBuffer = builder.WriteTexture(renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) - { format = GraphicsFormat.R16G16B16A16_SFloat, enableRandomWrite = true, name = "Reflection Ray Indirect Diffuse" })); + passData.depthBuffer = depthPyramid; + builder.UseTexture(passData.depthBuffer, AccessFlags.Read); + passData.normalBuffer = normalBuffer; + builder.UseTexture(passData.normalBuffer, AccessFlags.Read); + passData.indirectDiffuseBuffer = indirectDiffuseBuffer; + builder.UseTexture(passData.indirectDiffuseBuffer, AccessFlags.Read); + passData.directionBuffer = directionBuffer; + builder.UseTexture(passData.directionBuffer, AccessFlags.Read); + passData.outputBuffer = renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) + { format = GraphicsFormat.R16G16B16A16_SFloat, enableRandomWrite = true, name = "Reflection Ray Indirect Diffuse" }); + builder.UseTexture(passData.outputBuffer, AccessFlags.Write); builder.SetRenderFunc( - (UpscaleRTGIPassData data, RenderGraphContext ctx) => + (UpscaleRTGIPassData data, UnsafeGraphContext ctx) => { // Inject all the parameters for the compute ctx.cmd.SetComputeTextureParam(data.upscaleCS, data.upscaleKernel, HDShaderIDs._DepthTexture, data.depthBuffer); @@ -334,10 +339,8 @@ class TraceQualityRTGIPassData TextureHandle QualityRTGI(RenderGraph renderGraph, HDCamera hdCamera, TextureHandle depthStencilBuffer, TextureHandle normalBuffer, TextureHandle rayCountTexture) { - using (var builder = renderGraph.AddRenderPass("Quality RT Indirect Diffuse", out var passData, ProfilingSampler.Get(HDProfileId.RaytracingIndirectDiffuseEvaluation))) + using (var builder = renderGraph.AddUnsafePass("Quality RT Indirect Diffuse", out var passData, ProfilingSampler.Get(HDProfileId.RaytracingIndirectDiffuseEvaluation))) { - builder.EnableAsyncCompute(false); - var settings = hdCamera.volumeStack.GetComponent(); // Set the camera parameters @@ -382,40 +385,45 @@ TextureHandle QualityRTGI(RenderGraph renderGraph, HDCamera hdCamera, TextureHan passData.shaderVariablesRayTracingCB = m_ShaderVariablesRayTracingCB; // Set the input and output textures - passData.depthStencilBuffer = builder.ReadTexture(depthStencilBuffer); - passData.normalBuffer = builder.ReadTexture(normalBuffer); - passData.rayCountTexture = builder.ReadWriteTexture(rayCountTexture); - passData.outputBuffer = builder.WriteTexture(renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) - { format = GraphicsFormat.R16G16B16A16_SFloat, enableRandomWrite = true, name = "Ray Traced Indirect Diffuse" })); + passData.depthStencilBuffer = depthStencilBuffer; + builder.UseTexture(passData.depthStencilBuffer, AccessFlags.Read); + passData.normalBuffer = normalBuffer; + builder.UseTexture(passData.normalBuffer, AccessFlags.Read); + passData.rayCountTexture = rayCountTexture; + builder.UseTexture(passData.rayCountTexture, AccessFlags.ReadWrite); + passData.outputBuffer = renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) + { format = GraphicsFormat.R16G16B16A16_SFloat, enableRandomWrite = true, name = "Ray Traced Indirect Diffuse" }); + builder.UseTexture(passData.outputBuffer, AccessFlags.Write); passData.enableDecals = hdCamera.frameSettings.IsEnabled(FrameSettingsField.Decals); builder.SetRenderFunc( - (TraceQualityRTGIPassData data, RenderGraphContext ctx) => + (TraceQualityRTGIPassData data, UnsafeGraphContext ctx) => { + var natCmd = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); // Define the shader pass to use for the indirect diffuse pass - ctx.cmd.SetRayTracingShaderPass(data.indirectDiffuseRT, "IndirectDXR"); + natCmd.SetRayTracingShaderPass(data.indirectDiffuseRT, "IndirectDXR"); // Set the acceleration structure for the pass - ctx.cmd.SetRayTracingAccelerationStructure(data.indirectDiffuseRT, HDShaderIDs._RaytracingAccelerationStructureName, data.accelerationStructure); + natCmd.SetRayTracingAccelerationStructure(data.indirectDiffuseRT, HDShaderIDs._RaytracingAccelerationStructureName, data.accelerationStructure); // Inject the ray-tracing sampling data - BlueNoise.BindDitheredTextureSet(ctx.cmd, data.ditheredTextureSet); + BlueNoise.BindDitheredTextureSet(natCmd, data.ditheredTextureSet); // Set the data for the ray generation - ctx.cmd.SetRayTracingTextureParam(data.indirectDiffuseRT, HDShaderIDs._IndirectDiffuseTextureRW, data.outputBuffer); - ctx.cmd.SetRayTracingTextureParam(data.indirectDiffuseRT, HDShaderIDs._DepthTexture, data.depthStencilBuffer); - ctx.cmd.SetGlobalTexture(HDShaderIDs._StencilTexture, data.depthStencilBuffer, RenderTextureSubElement.Stencil); - ctx.cmd.SetRayTracingTextureParam(data.indirectDiffuseRT, HDShaderIDs._NormalBufferTexture, data.normalBuffer); + natCmd.SetRayTracingTextureParam(data.indirectDiffuseRT, HDShaderIDs._IndirectDiffuseTextureRW, data.outputBuffer); + natCmd.SetRayTracingTextureParam(data.indirectDiffuseRT, HDShaderIDs._DepthTexture, data.depthStencilBuffer); + natCmd.SetGlobalTexture(HDShaderIDs._StencilTexture, data.depthStencilBuffer, RenderTextureSubElement.Stencil); + natCmd.SetRayTracingTextureParam(data.indirectDiffuseRT, HDShaderIDs._NormalBufferTexture, data.normalBuffer); // Set ray count texture - ctx.cmd.SetRayTracingTextureParam(data.indirectDiffuseRT, HDShaderIDs._RayCountTexture, data.rayCountTexture); + natCmd.SetRayTracingTextureParam(data.indirectDiffuseRT, HDShaderIDs._RayCountTexture, data.rayCountTexture); // LightLoop data - data.lightCluster.BindLightClusterData(ctx.cmd); + data.lightCluster.BindLightClusterData(natCmd); // Set the data for the ray miss - ctx.cmd.SetRayTracingTextureParam(data.indirectDiffuseRT, HDShaderIDs._SkyTexture, data.skyTexture); + natCmd.SetRayTracingTextureParam(data.indirectDiffuseRT, HDShaderIDs._SkyTexture, data.skyTexture); // Update global constant buffer data.shaderVariablesRayTracingCB._RayTracingClampingFlag = 1; @@ -434,19 +442,19 @@ TextureHandle QualityRTGI(RenderGraph renderGraph, HDCamera hdCamera, TextureHan data.shaderVariablesRayTracingCB._RayTracingAmbientProbeDimmer = data.ambientProbeDimmer; data.shaderVariablesRayTracingCB._RaytracingAPVLayerMask = data.apvLayerMask; - ConstantBuffer.PushGlobal(ctx.cmd, data.shaderVariablesRayTracingCB, HDShaderIDs._ShaderVariablesRaytracing); + ConstantBuffer.PushGlobal(natCmd, data.shaderVariablesRayTracingCB, HDShaderIDs._ShaderVariablesRaytracing); // Only use the shader variant that has multi bounce if the bounce count > 1 - CoreUtils.SetKeyword(ctx.cmd, "MULTI_BOUNCE_INDIRECT", data.bounceCount > 1); + CoreUtils.SetKeyword(natCmd, "MULTI_BOUNCE_INDIRECT", data.bounceCount > 1); if (data.enableDecals) - DecalSystem.instance.SetAtlas(ctx.cmd); + DecalSystem.instance.SetAtlas(natCmd); // Run the computation - ctx.cmd.DispatchRays(data.indirectDiffuseRT, m_RayGenIndirectDiffuseIntegrationName, (uint)data.texWidth, (uint)data.texHeight, (uint)data.viewCount); + natCmd.DispatchRays(data.indirectDiffuseRT, m_RayGenIndirectDiffuseIntegrationName, (uint)data.texWidth, (uint)data.texHeight, (uint)data.viewCount, null); // Disable the keywords we do not need anymore - CoreUtils.SetKeyword(ctx.cmd, "MULTI_BOUNCE_INDIRECT", false); + CoreUtils.SetKeyword(natCmd, "MULTI_BOUNCE_INDIRECT", false); }); return passData.outputBuffer; diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/HDRenderPipeline.RaytracingRecursiveRenderer.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/HDRenderPipeline.RaytracingRecursiveRenderer.cs index b377d13a890..6b2900008ce 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/HDRenderPipeline.RaytracingRecursiveRenderer.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/HDRenderPipeline.RaytracingRecursiveRenderer.cs @@ -104,10 +104,8 @@ TextureHandle RaytracingRecursiveRender(RenderGraph renderGraph, HDCamera hdCame RecursiveRenderingPassData passData; - using (var builder = renderGraph.AddRenderPass("Recursive Rendering Evaluation", out passData, ProfilingSampler.Get(HDProfileId.RayTracingRecursiveRendering))) + using (var builder = renderGraph.AddUnsafePass("Recursive Rendering Evaluation", out passData, ProfilingSampler.Get(HDProfileId.RayTracingRecursiveRendering))) { - builder.EnableAsyncCompute(false); - // Camera parameters passData.texWidth = hdCamera.actualWidth; passData.texHeight = hdCamera.actualHeight; @@ -129,28 +127,34 @@ TextureHandle RaytracingRecursiveRender(RenderGraph renderGraph, HDCamera hdCame passData.shaderVariablesRayTracingCB = m_ShaderVariablesRayTracingCB; passData.ditheredTextureSet = GetBlueNoiseManager().DitheredTextureSet8SPP(); - passData.depthStencilBuffer = builder.ReadTexture(depthPyramid); - passData.flagMask = builder.ReadTexture(flagMask); - passData.rayCountTexture = builder.ReadWriteTexture(rayCountTexture); - passData.outputBuffer = builder.ReadWriteTexture(colorBuffer); + passData.depthStencilBuffer = depthPyramid; + builder.UseTexture(passData.depthStencilBuffer, AccessFlags.Read); + passData.flagMask = flagMask; + builder.UseTexture(passData.flagMask, AccessFlags.Read); + passData.rayCountTexture = rayCountTexture; + builder.UseTexture(passData.rayCountTexture, AccessFlags.ReadWrite); + passData.outputBuffer = colorBuffer; + builder.UseTexture(passData.outputBuffer, AccessFlags.ReadWrite); // Right now the debug buffer is written to independently of what is happening. This must be changed // TODO RENDERGRAPH - passData.debugBuffer = builder.WriteTexture(renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) - { format = GraphicsFormat.R16G16B16A16_SFloat, enableRandomWrite = true, name = "Recursive Rendering Debug Texture" })); + passData.debugBuffer = renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) + { format = GraphicsFormat.R16G16B16A16_SFloat, enableRandomWrite = true, name = "Recursive Rendering Debug Texture" }); + builder.UseTexture(passData.debugBuffer, AccessFlags.Write); passData.enableDecals = hdCamera.frameSettings.IsEnabled(FrameSettingsField.Decals); builder.SetRenderFunc( - (RecursiveRenderingPassData data, RenderGraphContext ctx) => + (RecursiveRenderingPassData data, UnsafeGraphContext ctx) => { + var natCmd = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); // Define the shader pass to use for the reflection pass - ctx.cmd.SetRayTracingShaderPass(data.recursiveRenderingRT, "ForwardDXR"); + natCmd.SetRayTracingShaderPass(data.recursiveRenderingRT, "ForwardDXR"); // Set the acceleration structure for the pass - ctx.cmd.SetRayTracingAccelerationStructure(data.recursiveRenderingRT, HDShaderIDs._RaytracingAccelerationStructureName, data.accelerationStructure); + natCmd.SetRayTracingAccelerationStructure(data.recursiveRenderingRT, HDShaderIDs._RaytracingAccelerationStructureName, data.accelerationStructure); // Inject the ray-tracing sampling data - BlueNoise.BindDitheredTextureSet(ctx.cmd, data.ditheredTextureSet); + BlueNoise.BindDitheredTextureSet(natCmd, data.ditheredTextureSet); // Update Global Constant Buffer. data.shaderVariablesRayTracingCB._RaytracingRayMaxLength = data.rayLength; @@ -163,32 +167,32 @@ TextureHandle RaytracingRecursiveRender(RenderGraph renderGraph, HDCamera hdCame data.shaderVariablesRayTracingCB._RayTracingRayMissFallbackHierarchy = data.rayMissFallbackHiearchy; data.shaderVariablesRayTracingCB._RayTracingLastBounceFallbackHierarchy = data.lastBounceFallbackHiearchy; data.shaderVariablesRayTracingCB._RayTracingAmbientProbeDimmer = data.ambientProbeDimmer; - ConstantBuffer.PushGlobal(ctx.cmd, data.shaderVariablesRayTracingCB, HDShaderIDs._ShaderVariablesRaytracing); + ConstantBuffer.PushGlobal(natCmd, data.shaderVariablesRayTracingCB, HDShaderIDs._ShaderVariablesRaytracing); // Fecth the temporary buffers we shall be using - ctx.cmd.SetRayTracingTextureParam(data.recursiveRenderingRT, HDShaderIDs._RaytracingFlagMask, data.flagMask); - ctx.cmd.SetRayTracingTextureParam(data.recursiveRenderingRT, HDShaderIDs._DepthTexture, data.depthStencilBuffer); - ctx.cmd.SetRayTracingTextureParam(data.recursiveRenderingRT, HDShaderIDs._CameraColorTextureRW, data.outputBuffer); + natCmd.SetRayTracingTextureParam(data.recursiveRenderingRT, HDShaderIDs._RaytracingFlagMask, data.flagMask); + natCmd.SetRayTracingTextureParam(data.recursiveRenderingRT, HDShaderIDs._DepthTexture, data.depthStencilBuffer); + natCmd.SetRayTracingTextureParam(data.recursiveRenderingRT, HDShaderIDs._CameraColorTextureRW, data.outputBuffer); // Set ray count texture - ctx.cmd.SetRayTracingTextureParam(data.recursiveRenderingRT, HDShaderIDs._RayCountTexture, data.rayCountTexture); + natCmd.SetRayTracingTextureParam(data.recursiveRenderingRT, HDShaderIDs._RayCountTexture, data.rayCountTexture); // LightLoop data - data.lightCluster.BindLightClusterData(ctx.cmd); + data.lightCluster.BindLightClusterData(natCmd); // Set the data for the ray miss - ctx.cmd.SetRayTracingTextureParam(data.recursiveRenderingRT, HDShaderIDs._SkyTexture, data.skyTexture); + natCmd.SetRayTracingTextureParam(data.recursiveRenderingRT, HDShaderIDs._SkyTexture, data.skyTexture); // If this is the right debug mode and we have at least one light, write the first shadow to the de-noised texture - ctx.cmd.SetRayTracingTextureParam(data.recursiveRenderingRT, HDShaderIDs._RaytracingPrimaryDebug, data.debugBuffer); + natCmd.SetRayTracingTextureParam(data.recursiveRenderingRT, HDShaderIDs._RaytracingPrimaryDebug, data.debugBuffer); if (data.enableDecals) { - DecalSystem.instance.SetAtlas(ctx.cmd); + DecalSystem.instance.SetAtlas(natCmd); } // Run the computation - ctx.cmd.DispatchRays(data.recursiveRenderingRT, m_RayGenShaderName, (uint)data.texWidth, (uint)data.texHeight, (uint)data.viewCount); + natCmd.DispatchRays(data.recursiveRenderingRT, m_RayGenShaderName, (uint)data.texWidth, (uint)data.texHeight, (uint)data.viewCount, null); }); } diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/HDRenderPipeline.RaytracingReflection.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/HDRenderPipeline.RaytracingReflection.cs index 78cc3e87db1..75f665ecfae 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/HDRenderPipeline.RaytracingReflection.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/HDRenderPipeline.RaytracingReflection.cs @@ -133,10 +133,8 @@ class DirGenRTRPassData TextureHandle DirGenRTR(RenderGraph renderGraph, HDCamera hdCamera, ScreenSpaceReflection settings, TextureHandle depthBuffer, TextureHandle stencilBuffer, TextureHandle normalBuffer, TextureHandle clearCoatTexture, bool fullResolution, bool transparent) { - using (var builder = renderGraph.AddRenderPass("Generating the rays for RTR", out var passData, ProfilingSampler.Get(HDProfileId.RaytracingReflectionDirectionGeneration))) + using (var builder = renderGraph.AddUnsafePass("Generating the rays for RTR", out var passData, ProfilingSampler.Get(HDProfileId.RaytracingReflectionDirectionGeneration))) { - builder.EnableAsyncCompute(false); - // Set the camera parameters passData.texWidth = fullResolution ? hdCamera.actualWidth : hdCamera.actualWidth / 2; passData.texHeight = fullResolution ? hdCamera.actualHeight : hdCamera.actualHeight / 2; @@ -157,42 +155,48 @@ TextureHandle DirGenRTR(RenderGraph renderGraph, HDCamera hdCamera, ScreenSpaceR passData.ditheredTextureSet = GetBlueNoiseManager().DitheredTextureSet8SPP(); passData.shaderVariablesRayTracingCB = m_ShaderVariablesRayTracingCB; - passData.depthBuffer = builder.ReadTexture(depthBuffer); - passData.stencilBuffer = builder.ReadTexture(stencilBuffer); - passData.normalBuffer = builder.ReadTexture(normalBuffer); - passData.clearCoatMaskTexture = builder.ReadTexture(clearCoatTexture); - passData.outputBuffer = builder.WriteTexture(renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) - { format = GraphicsFormat.R16G16B16A16_SFloat, enableRandomWrite = true, name = "Reflection Ray Directions" })); + passData.depthBuffer = depthBuffer; + builder.UseTexture(passData.depthBuffer, AccessFlags.Read); + passData.stencilBuffer = stencilBuffer; + builder.UseTexture(passData.stencilBuffer, AccessFlags.Read); + passData.normalBuffer = normalBuffer; + builder.UseTexture(passData.normalBuffer, AccessFlags.Read); + passData.clearCoatMaskTexture = clearCoatTexture; + builder.UseTexture(passData.clearCoatMaskTexture, AccessFlags.Read); + passData.outputBuffer = renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) + { format = GraphicsFormat.R16G16B16A16_SFloat, enableRandomWrite = true, name = "Reflection Ray Directions" }); + builder.UseTexture(passData.outputBuffer, AccessFlags.Write); builder.SetRenderFunc( - (DirGenRTRPassData data, RenderGraphContext ctx) => + (DirGenRTRPassData data, UnsafeGraphContext ctx) => { + var natCmd = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); // TODO: check if this is required, i do not think so - CoreUtils.SetRenderTarget(ctx.cmd, data.outputBuffer, ClearFlag.Color, clearColor: Color.black); + CoreUtils.SetRenderTarget(natCmd, data.outputBuffer, ClearFlag.Color, clearColor: Color.black); // Inject the ray-tracing sampling data - BlueNoise.BindDitheredTextureSet(ctx.cmd, data.ditheredTextureSet); + BlueNoise.BindDitheredTextureSet(natCmd, data.ditheredTextureSet); // Bind all the required scalars to the CB data.shaderVariablesRayTracingCB._RaytracingReflectionMinSmoothness = data.minSmoothness; data.shaderVariablesRayTracingCB._RayTracingReflectionFrameIndex = data.frameIndex; - ConstantBuffer.PushGlobal(ctx.cmd, data.shaderVariablesRayTracingCB, HDShaderIDs._ShaderVariablesRaytracing); + ConstantBuffer.PushGlobal(natCmd, data.shaderVariablesRayTracingCB, HDShaderIDs._ShaderVariablesRaytracing); // Bind all the required textures - ctx.cmd.SetComputeTextureParam(data.directionGenCS, data.dirGenKernel, HDShaderIDs._DepthTexture, data.depthBuffer); - ctx.cmd.SetComputeTextureParam(data.directionGenCS, data.dirGenKernel, HDShaderIDs._NormalBufferTexture, data.normalBuffer); - ctx.cmd.SetComputeTextureParam(data.directionGenCS, data.dirGenKernel, HDShaderIDs._SsrClearCoatMaskTexture, data.clearCoatMaskTexture); - ctx.cmd.SetComputeIntParam(data.directionGenCS, HDShaderIDs._SsrStencilBit, (int)StencilUsage.TraceReflectionRay); - ctx.cmd.SetComputeTextureParam(data.directionGenCS, data.dirGenKernel, HDShaderIDs._StencilTexture, data.stencilBuffer, 0, RenderTextureSubElement.Stencil); + natCmd.SetComputeTextureParam(data.directionGenCS, data.dirGenKernel, HDShaderIDs._DepthTexture, data.depthBuffer); + natCmd.SetComputeTextureParam(data.directionGenCS, data.dirGenKernel, HDShaderIDs._NormalBufferTexture, data.normalBuffer); + natCmd.SetComputeTextureParam(data.directionGenCS, data.dirGenKernel, HDShaderIDs._SsrClearCoatMaskTexture, data.clearCoatMaskTexture); + natCmd.SetComputeIntParam(data.directionGenCS, HDShaderIDs._SsrStencilBit, (int)StencilUsage.TraceReflectionRay); + natCmd.SetComputeTextureParam(data.directionGenCS, data.dirGenKernel, HDShaderIDs._StencilTexture, data.stencilBuffer, 0, RenderTextureSubElement.Stencil); // Bind the output buffers - ctx.cmd.SetComputeTextureParam(data.directionGenCS, data.dirGenKernel, HDShaderIDs._RaytracingDirectionBuffer, data.outputBuffer); + natCmd.SetComputeTextureParam(data.directionGenCS, data.dirGenKernel, HDShaderIDs._RaytracingDirectionBuffer, data.outputBuffer); // Evaluate the dispatch parameters int numTilesX = (data.texWidth + (rtReflectionsComputeTileSize - 1)) / rtReflectionsComputeTileSize; int numTilesY = (data.texHeight + (rtReflectionsComputeTileSize - 1)) / rtReflectionsComputeTileSize; // Compute the directions - ctx.cmd.DispatchCompute(data.directionGenCS, data.dirGenKernel, numTilesX, numTilesY, data.viewCount); + natCmd.DispatchCompute(data.directionGenCS, data.dirGenKernel, numTilesX, numTilesY, data.viewCount); }); return passData.outputBuffer; @@ -234,10 +238,8 @@ TextureHandle AdjustWeightRTR(RenderGraph renderGraph, HDCamera hdCamera, Screen TextureHandle depthPyramid, TextureHandle normalBuffer, TextureHandle clearCoatTexture, TextureHandle lightingTexture) { - using (var builder = renderGraph.AddRenderPass("Adjust Weight RTR", out var passData, ProfilingSampler.Get(HDProfileId.RaytracingReflectionAdjustWeight))) + using (var builder = renderGraph.AddUnsafePass("Adjust Weight RTR", out var passData, ProfilingSampler.Get(HDProfileId.RaytracingReflectionAdjustWeight))) { - builder.EnableAsyncCompute(false); - passData.texWidth = hdCamera.actualWidth; passData.texHeight = hdCamera.actualHeight; passData.viewCount = hdCamera.viewCount; @@ -251,15 +253,20 @@ TextureHandle AdjustWeightRTR(RenderGraph renderGraph, HDCamera hdCamera, Screen passData.adjustWeightKernel = m_ReflectionAdjustWeightKernel; passData.shaderVariablesRayTracingCB = m_ShaderVariablesRayTracingCB; - passData.depthStencilBuffer = builder.ReadTexture(depthPyramid); - passData.normalBuffer = builder.ReadTexture(normalBuffer); - passData.clearCoatMaskTexture = builder.ReadTexture(clearCoatTexture); - passData.lightingTexture = builder.ReadTexture(lightingTexture); - passData.outputTexture = builder.WriteTexture(renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) - { format = GraphicsFormat.R16G16B16A16_SFloat, enableRandomWrite = true, name = "Reflection Ray Reflections" })); + passData.depthStencilBuffer = depthPyramid; + builder.UseTexture(passData.depthStencilBuffer, AccessFlags.Read); + passData.normalBuffer = normalBuffer; + builder.UseTexture(passData.normalBuffer, AccessFlags.Read); + passData.clearCoatMaskTexture = clearCoatTexture; + builder.UseTexture(passData.clearCoatMaskTexture, AccessFlags.Read); + passData.lightingTexture = lightingTexture; + builder.UseTexture(passData.lightingTexture, AccessFlags.Read); + passData.outputTexture = renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) + { format = GraphicsFormat.R16G16B16A16_SFloat, enableRandomWrite = true, name = "Reflection Ray Reflections" }); + builder.UseTexture(passData.outputTexture, AccessFlags.Write); builder.SetRenderFunc( - (AdjustWeightRTRPassData data, RenderGraphContext ctx) => + (AdjustWeightRTRPassData data, UnsafeGraphContext ctx) => { // Bind all the required scalars to the CB data.shaderVariablesRayTracingCB._RaytracingReflectionMinSmoothness = data.minSmoothness; @@ -310,23 +317,24 @@ class UpscaleRTRPassData TextureHandle UpscaleRTR(RenderGraph renderGraph, HDCamera hdCamera, TextureHandle depthBuffer, TextureHandle lightingTexture) { - using (var builder = renderGraph.AddRenderPass("Upscale RTR", out var passData, ProfilingSampler.Get(HDProfileId.RaytracingReflectionUpscale))) + using (var builder = renderGraph.AddUnsafePass("Upscale RTR", out var passData, ProfilingSampler.Get(HDProfileId.RaytracingReflectionUpscale))) { - builder.EnableAsyncCompute(false); - passData.texWidth = hdCamera.actualWidth; passData.texHeight = hdCamera.actualHeight; passData.viewCount = hdCamera.viewCount; passData.reflectionFilterCS = rayTracingResources.reflectionBilateralFilterCS; passData.upscaleKernel = m_ReflectionUpscaleKernel; - passData.depthStencilBuffer = builder.ReadTexture(depthBuffer); - passData.lightingTexture = builder.ReadTexture(lightingTexture); - passData.outputTexture = builder.WriteTexture(renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) - { format = GraphicsFormat.R16G16B16A16_SFloat, enableRandomWrite = true, name = "Reflection Ray Reflections" })); + passData.depthStencilBuffer = depthBuffer; + builder.UseTexture(passData.depthStencilBuffer, AccessFlags.Read); + passData.lightingTexture = lightingTexture; + builder.UseTexture(passData.lightingTexture, AccessFlags.Read); + passData.outputTexture = renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) + { format = GraphicsFormat.R16G16B16A16_SFloat, enableRandomWrite = true, name = "Reflection Ray Reflections" }); + builder.UseTexture(passData.outputTexture, AccessFlags.Write); builder.SetRenderFunc( - (UpscaleRTRPassData data, RenderGraphContext ctx) => + (UpscaleRTRPassData data, UnsafeGraphContext ctx) => { // Input textures ctx.cmd.SetComputeTextureParam(data.reflectionFilterCS, data.upscaleKernel, HDShaderIDs._DepthTexture, data.depthStencilBuffer); @@ -461,7 +469,7 @@ TextureHandle RenderReflectionsPerformance(RenderGraph renderGraph, HDCamera hdC // Run the deferred lighting pass DeferredLightingRTParameters deferredParamters = PrepareReflectionDeferredLightingRTParameters(hdCamera, fullResolution, transparent); RayTracingDefferedLightLoopOutput lightloopOutput = DeferredLightingRT(renderGraph, hdCamera, in deferredParamters, directionBuffer, prepassOutput, skyTexture, rayCountTexture); - + // Denoise if required if (settings.denoise && !transparent) { @@ -533,10 +541,8 @@ struct RayTracingReflectionsQualityOutput RayTracingReflectionsQualityOutput QualityRTR(RenderGraph renderGraph, HDCamera hdCamera, ScreenSpaceReflection settings, TextureHandle depthPyramid, TextureHandle stencilBuffer, TextureHandle normalBuffer, TextureHandle clearCoatTexture, TextureHandle rayCountTexture, bool transparent) { - using (var builder = renderGraph.AddRenderPass("Quality RT Reflections", out var passData, ProfilingSampler.Get(HDProfileId.RaytracingReflectionEvaluation))) + using (var builder = renderGraph.AddUnsafePass("Quality RT Reflections", out var passData, ProfilingSampler.Get(HDProfileId.RaytracingReflectionEvaluation))) { - builder.EnableAsyncCompute(false); - // Camera parameters passData.texWidth = hdCamera.actualWidth; passData.texHeight = hdCamera.actualHeight; @@ -566,28 +572,36 @@ RayTracingReflectionsQualityOutput QualityRTR(RenderGraph renderGraph, HDCamera passData.skyTexture = m_SkyManager.GetSkyReflection(hdCamera); passData.reflectionShader = rayTracingResources.reflectionRayTracingRT; - passData.depthBuffer = builder.ReadTexture(depthPyramid); - passData.stencilBuffer = builder.ReadTexture(stencilBuffer); - passData.normalBuffer = builder.ReadTexture(normalBuffer); - passData.clearCoatMaskTexture = builder.ReadTexture(clearCoatTexture); - passData.rayCountTexture = builder.ReadWriteTexture(rayCountTexture); + passData.depthBuffer = depthPyramid; + builder.UseTexture(passData.depthBuffer, AccessFlags.Read); + passData.stencilBuffer = stencilBuffer; + builder.UseTexture(passData.stencilBuffer, AccessFlags.Read); + passData.normalBuffer = normalBuffer; + builder.UseTexture(passData.normalBuffer, AccessFlags.Read); + passData.clearCoatMaskTexture = clearCoatTexture; + builder.UseTexture(passData.clearCoatMaskTexture, AccessFlags.Read); + passData.rayCountTexture = rayCountTexture; + builder.UseTexture(passData.rayCountTexture, AccessFlags.ReadWrite); // Output textures - passData.lightingTexture = builder.WriteTexture(renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) - { format = GraphicsFormat.R16G16B16A16_SFloat, enableRandomWrite = true, name = "Ray Traced Reflections" })); - passData.distanceTexture = builder.WriteTexture(renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) - { format = GraphicsFormat.R16G16B16A16_SFloat, enableRandomWrite = true, name = "Ray Traced Reflections" })); + passData.lightingTexture = renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) + { format = GraphicsFormat.R16G16B16A16_SFloat, enableRandomWrite = true, name = "Ray Traced Reflections" }); + builder.UseTexture(passData.lightingTexture, AccessFlags.Write); + passData.distanceTexture = renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) + { format = GraphicsFormat.R16G16B16A16_SFloat, enableRandomWrite = true, name = "Ray Traced Reflections" }); + builder.UseTexture(passData.distanceTexture, AccessFlags.Write); passData.enableDecals = hdCamera.frameSettings.IsEnabled(FrameSettingsField.Decals); builder.SetRenderFunc( - (TraceQualityRTRPassData data, RenderGraphContext ctx) => + (TraceQualityRTRPassData data, UnsafeGraphContext ctx) => { + var natCmd = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); // Define the shader pass to use for the reflection pass - ctx.cmd.SetRayTracingShaderPass(data.reflectionShader, "IndirectDXR"); + natCmd.SetRayTracingShaderPass(data.reflectionShader, "IndirectDXR"); // Set the acceleration structure for the pass - ctx.cmd.SetRayTracingAccelerationStructure(data.reflectionShader, HDShaderIDs._RaytracingAccelerationStructureName, data.accelerationStructure); + natCmd.SetRayTracingAccelerationStructure(data.reflectionShader, HDShaderIDs._RaytracingAccelerationStructureName, data.accelerationStructure); // Global reflection parameters data.shaderVariablesRayTracingCB._RayTracingClampingFlag = data.transparent ? 0 : 1; @@ -611,44 +625,44 @@ RayTracingReflectionsQualityOutput QualityRTR(RenderGraph renderGraph, HDCamera data.shaderVariablesRayTracingCB._RayTracingAmbientProbeDimmer = data.ambientProbeDimmer; data.shaderVariablesRayTracingCB._RayTracingReflectionFrameIndex = data.frameIndex; data.shaderVariablesRayTracingCB._RaytracingAPVLayerMask = data.adaptiveProbeVolumesLayerMask.value; - ConstantBuffer.PushGlobal(ctx.cmd, data.shaderVariablesRayTracingCB, HDShaderIDs._ShaderVariablesRaytracing); + ConstantBuffer.PushGlobal(natCmd, data.shaderVariablesRayTracingCB, HDShaderIDs._ShaderVariablesRaytracing); // Inject the ray-tracing sampling data - BlueNoise.BindDitheredTextureSet(ctx.cmd, data.ditheredTextureSet); + BlueNoise.BindDitheredTextureSet(natCmd, data.ditheredTextureSet); // Set the data for the ray generation - ctx.cmd.SetRayTracingTextureParam(data.reflectionShader, HDShaderIDs._DepthTexture, data.depthBuffer); - ctx.cmd.SetRayTracingTextureParam(data.reflectionShader, HDShaderIDs._NormalBufferTexture, data.normalBuffer); - ctx.cmd.SetGlobalTexture(HDShaderIDs._StencilTexture, data.stencilBuffer, RenderTextureSubElement.Stencil); - ctx.cmd.SetRayTracingIntParam(data.reflectionShader, HDShaderIDs._SsrStencilBit, (int)StencilUsage.TraceReflectionRay); + natCmd.SetRayTracingTextureParam(data.reflectionShader, HDShaderIDs._DepthTexture, data.depthBuffer); + natCmd.SetRayTracingTextureParam(data.reflectionShader, HDShaderIDs._NormalBufferTexture, data.normalBuffer); + natCmd.SetGlobalTexture(HDShaderIDs._StencilTexture, data.stencilBuffer, RenderTextureSubElement.Stencil); + natCmd.SetRayTracingIntParam(data.reflectionShader, HDShaderIDs._SsrStencilBit, (int)StencilUsage.TraceReflectionRay); // Set ray count texture - ctx.cmd.SetRayTracingTextureParam(data.reflectionShader, HDShaderIDs._RayCountTexture, data.rayCountTexture); + natCmd.SetRayTracingTextureParam(data.reflectionShader, HDShaderIDs._RayCountTexture, data.rayCountTexture); // Bind the lightLoop data - data.lightCluster.BindLightClusterData(ctx.cmd); + data.lightCluster.BindLightClusterData(natCmd); // Evaluate the clear coat mask texture based on the lit shader mode - ctx.cmd.SetRayTracingTextureParam(data.reflectionShader, HDShaderIDs._SsrClearCoatMaskTexture, data.clearCoatMaskTexture); + natCmd.SetRayTracingTextureParam(data.reflectionShader, HDShaderIDs._SsrClearCoatMaskTexture, data.clearCoatMaskTexture); // Set the data for the ray miss - ctx.cmd.SetRayTracingTextureParam(data.reflectionShader, HDShaderIDs._SkyTexture, data.skyTexture); + natCmd.SetRayTracingTextureParam(data.reflectionShader, HDShaderIDs._SkyTexture, data.skyTexture); // Output textures - ctx.cmd.SetRayTracingTextureParam(data.reflectionShader, HDShaderIDs._RayTracingLightingTextureRW, data.lightingTexture); - ctx.cmd.SetRayTracingTextureParam(data.reflectionShader, HDShaderIDs._RayTracingDistanceTextureRW, data.distanceTexture); + natCmd.SetRayTracingTextureParam(data.reflectionShader, HDShaderIDs._RayTracingLightingTextureRW, data.lightingTexture); + natCmd.SetRayTracingTextureParam(data.reflectionShader, HDShaderIDs._RayTracingDistanceTextureRW, data.distanceTexture); // Only use the shader variant that has multi bounce if the bounce count > 1 - CoreUtils.SetKeyword(ctx.cmd, "MULTI_BOUNCE_INDIRECT", data.bounceCount > 1); + CoreUtils.SetKeyword(natCmd, "MULTI_BOUNCE_INDIRECT", data.bounceCount > 1); if (data.enableDecals) - DecalSystem.instance.SetAtlas(ctx.cmd); // for clustered decals + DecalSystem.instance.SetAtlas(natCmd); // for clustered decals // Run the computation - ctx.cmd.DispatchRays(data.reflectionShader, data.transparent ? m_RayGenIntegrationTransparentName : m_RayGenIntegrationName, (uint)data.texWidth, (uint)data.texHeight, (uint)data.viewCount); + natCmd.DispatchRays(data.reflectionShader, data.transparent ? m_RayGenIntegrationTransparentName : m_RayGenIntegrationName, (uint)data.texWidth, (uint)data.texHeight, (uint)data.viewCount, null); // Disable multi-bounce - CoreUtils.SetKeyword(ctx.cmd, "MULTI_BOUNCE_INDIRECT", false); + CoreUtils.SetKeyword(natCmd, "MULTI_BOUNCE_INDIRECT", false); }); RayTracingReflectionsQualityOutput output = new RayTracingReflectionsQualityOutput(); diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/HDRenderPipeline.RaytracingSubsurfaceScattering.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/HDRenderPipeline.RaytracingSubsurfaceScattering.cs index 4004289dce2..e9f66d8e70c 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/HDRenderPipeline.RaytracingSubsurfaceScattering.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/HDRenderPipeline.RaytracingSubsurfaceScattering.cs @@ -80,10 +80,8 @@ class TraceRTSSSPassData TextureHandle TraceRTSSS(RenderGraph renderGraph, HDCamera hdCamera, TextureHandle depthStencilBuffer, TextureHandle normalBuffer, TextureHandle sssColor, TextureHandle ssgiBuffer, TextureHandle colorBuffer) { - using (var builder = renderGraph.AddRenderPass("Composing the result of RTSSS", out var passData, ProfilingSampler.Get(HDProfileId.RaytracingSSSTrace))) + using (var builder = renderGraph.AddUnsafePass("Composing the result of RTSSS", out var passData, ProfilingSampler.Get(HDProfileId.RaytracingSSSTrace))) { - builder.EnableAsyncCompute(false); - // Grab the SSS params var settings = hdCamera.volumeStack.GetComponent(); // Camera parameters @@ -107,9 +105,12 @@ TextureHandle TraceRTSSS(RenderGraph renderGraph, HDCamera hdCamera, TextureHand passData.shaderVariablesRayTracingCB = m_ShaderVariablesRayTracingCB; passData.ditheredTextureSet = GetBlueNoiseManager().DitheredTextureSet8SPP(); - passData.depthStencilBuffer = builder.UseDepthBuffer(depthStencilBuffer, DepthAccess.Read); - passData.normalBuffer = builder.ReadTexture(normalBuffer); - passData.sssColor = builder.ReadTexture(sssColor); + passData.depthStencilBuffer = depthStencilBuffer; + builder.UseTexture(passData.depthStencilBuffer, AccessFlags.Read); + passData.normalBuffer = normalBuffer; + builder.UseTexture(passData.normalBuffer, AccessFlags.Read); + passData.sssColor = sssColor; + builder.UseTexture(passData.sssColor, AccessFlags.Read); passData.intermediateBuffer0 = builder.CreateTransientTexture(new TextureDesc(Vector2.one, true, true) { format = GraphicsFormat.R16G16B16A16_SFloat, enableRandomWrite = true, name = "Intermediate Texture 0" }); passData.intermediateBuffer1 = builder.CreateTransientTexture(new TextureDesc(Vector2.one, true, true) @@ -120,28 +121,30 @@ TextureHandle TraceRTSSS(RenderGraph renderGraph, HDCamera hdCamera, TextureHand { format = GraphicsFormat.R16G16B16A16_SFloat, enableRandomWrite = true, name = "Intermediate Texture 3" }); passData.directionBuffer = builder.CreateTransientTexture(new TextureDesc(Vector2.one, true, true) { format = GraphicsFormat.R16G16B16A16_SFloat, enableRandomWrite = true, name = "Distance buffer" }); - passData.outputBuffer = builder.WriteTexture(renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) - { format = GraphicsFormat.R16G16B16A16_SFloat, enableRandomWrite = true, name = "Ray Traced SSS" })); + passData.outputBuffer = renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) + { format = GraphicsFormat.R16G16B16A16_SFloat, enableRandomWrite = true, name = "Ray Traced SSS" }); + builder.UseTexture(passData.outputBuffer, AccessFlags.Write); builder.SetRenderFunc( - (TraceRTSSSPassData data, RenderGraphContext ctx) => + (TraceRTSSSPassData data, UnsafeGraphContext ctx) => { + var natCmd = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); // Evaluate the dispatch parameters int numTilesXHR = (data.texWidth + (s_sssTileSize - 1)) / s_sssTileSize; int numTilesYHR = (data.texHeight + (s_sssTileSize - 1)) / s_sssTileSize; // Clear the integration texture first - ctx.cmd.SetComputeTextureParam(data.rayTracingSubSurfaceCS, data.clearTextureKernel, HDShaderIDs._DiffuseLightingTextureRW, data.outputBuffer); - ctx.cmd.DispatchCompute(data.rayTracingSubSurfaceCS, data.clearTextureKernel, numTilesXHR, numTilesYHR, data.viewCount); + natCmd.SetComputeTextureParam(data.rayTracingSubSurfaceCS, data.clearTextureKernel, HDShaderIDs._DiffuseLightingTextureRW, data.outputBuffer); + natCmd.DispatchCompute(data.rayTracingSubSurfaceCS, data.clearTextureKernel, numTilesXHR, numTilesYHR, data.viewCount); // Define the shader pass to use for the reflection pass - ctx.cmd.SetRayTracingShaderPass(data.rayTracingSubSurfaceRT, "SubSurfaceDXR"); + natCmd.SetRayTracingShaderPass(data.rayTracingSubSurfaceRT, "SubSurfaceDXR"); // Set the acceleration structure for the pass - ctx.cmd.SetRayTracingAccelerationStructure(data.rayTracingSubSurfaceRT, HDShaderIDs._RaytracingAccelerationStructureName, data.accelerationStructure); + natCmd.SetRayTracingAccelerationStructure(data.rayTracingSubSurfaceRT, HDShaderIDs._RaytracingAccelerationStructureName, data.accelerationStructure); // Inject the ray-tracing sampling data - BlueNoise.BindDitheredTextureSet(ctx.cmd, data.ditheredTextureSet); + BlueNoise.BindDitheredTextureSet(natCmd, data.ditheredTextureSet); // For every sample that we need to process for (int sampleIndex = 0; sampleIndex < data.sampleCount; ++sampleIndex) @@ -150,41 +153,41 @@ TextureHandle TraceRTSSS(RenderGraph renderGraph, HDCamera hdCamera, TextureHand data.shaderVariablesRayTracingCB._RaytracingNumSamples = data.sampleCount; data.shaderVariablesRayTracingCB._RaytracingSampleIndex = sampleIndex; data.shaderVariablesRayTracingCB._RayTracingAmbientProbeDimmer = 1.0f; - ConstantBuffer.PushGlobal(ctx.cmd, data.shaderVariablesRayTracingCB, HDShaderIDs._ShaderVariablesRaytracing); + ConstantBuffer.PushGlobal(natCmd, data.shaderVariablesRayTracingCB, HDShaderIDs._ShaderVariablesRaytracing); // Bind the input textures for ray generation - ctx.cmd.SetRayTracingTextureParam(data.rayTracingSubSurfaceRT, HDShaderIDs._DepthTexture, data.depthStencilBuffer); - ctx.cmd.SetRayTracingTextureParam(data.rayTracingSubSurfaceRT, HDShaderIDs._NormalBufferTexture, data.normalBuffer); - ctx.cmd.SetRayTracingTextureParam(data.rayTracingSubSurfaceRT, HDShaderIDs._SSSBufferTexture, data.sssColor); - ctx.cmd.SetGlobalTexture(HDShaderIDs._StencilTexture, data.depthStencilBuffer, RenderTextureSubElement.Stencil); + natCmd.SetRayTracingTextureParam(data.rayTracingSubSurfaceRT, HDShaderIDs._DepthTexture, data.depthStencilBuffer); + natCmd.SetRayTracingTextureParam(data.rayTracingSubSurfaceRT, HDShaderIDs._NormalBufferTexture, data.normalBuffer); + natCmd.SetRayTracingTextureParam(data.rayTracingSubSurfaceRT, HDShaderIDs._SSSBufferTexture, data.sssColor); + natCmd.SetGlobalTexture(HDShaderIDs._StencilTexture, data.depthStencilBuffer, RenderTextureSubElement.Stencil); // Set the output textures - ctx.cmd.SetRayTracingTextureParam(data.rayTracingSubSurfaceRT, HDShaderIDs._ThroughputTextureRW, data.intermediateBuffer0); - ctx.cmd.SetRayTracingTextureParam(data.rayTracingSubSurfaceRT, HDShaderIDs._NormalTextureRW, data.intermediateBuffer1); - ctx.cmd.SetRayTracingTextureParam(data.rayTracingSubSurfaceRT, HDShaderIDs._PositionTextureRW, data.intermediateBuffer2); - ctx.cmd.SetRayTracingTextureParam(data.rayTracingSubSurfaceRT, HDShaderIDs._DiffuseLightingTextureRW, data.intermediateBuffer3); - ctx.cmd.SetRayTracingTextureParam(data.rayTracingSubSurfaceRT, HDShaderIDs._DirectionTextureRW, data.directionBuffer); + natCmd.SetRayTracingTextureParam(data.rayTracingSubSurfaceRT, HDShaderIDs._ThroughputTextureRW, data.intermediateBuffer0); + natCmd.SetRayTracingTextureParam(data.rayTracingSubSurfaceRT, HDShaderIDs._NormalTextureRW, data.intermediateBuffer1); + natCmd.SetRayTracingTextureParam(data.rayTracingSubSurfaceRT, HDShaderIDs._PositionTextureRW, data.intermediateBuffer2); + natCmd.SetRayTracingTextureParam(data.rayTracingSubSurfaceRT, HDShaderIDs._DiffuseLightingTextureRW, data.intermediateBuffer3); + natCmd.SetRayTracingTextureParam(data.rayTracingSubSurfaceRT, HDShaderIDs._DirectionTextureRW, data.directionBuffer); // Run the computation - ctx.cmd.DispatchRays(data.rayTracingSubSurfaceRT, m_RayGenSubSurfaceShaderName, (uint)data.texWidth, (uint)data.texHeight, (uint)data.viewCount); + natCmd.DispatchRays(data.rayTracingSubSurfaceRT, m_RayGenSubSurfaceShaderName, (uint)data.texWidth, (uint)data.texHeight, (uint)data.viewCount, null); // Now let's do the deferred shading pass on the samples // Bind the lightLoop data - data.lightCluster.BindLightClusterData(ctx.cmd); + data.lightCluster.BindLightClusterData(natCmd); // Bind the input textures - ctx.cmd.SetComputeTextureParam(data.deferredRayTracingCS, data.rtDeferredLightingKernel, HDShaderIDs._DepthTexture, data.depthStencilBuffer); - ctx.cmd.SetComputeTextureParam(data.deferredRayTracingCS, data.rtDeferredLightingKernel, HDShaderIDs._ThroughputTextureRW, data.intermediateBuffer0); - ctx.cmd.SetComputeTextureParam(data.deferredRayTracingCS, data.rtDeferredLightingKernel, HDShaderIDs._NormalTextureRW, data.intermediateBuffer1); - ctx.cmd.SetComputeTextureParam(data.deferredRayTracingCS, data.rtDeferredLightingKernel, HDShaderIDs._PositionTextureRW, data.intermediateBuffer2); - ctx.cmd.SetComputeTextureParam(data.deferredRayTracingCS, data.rtDeferredLightingKernel, HDShaderIDs._DirectionTextureRW, data.directionBuffer); - ctx.cmd.SetComputeTextureParam(data.deferredRayTracingCS, data.rtDeferredLightingKernel, HDShaderIDs._DiffuseLightingTextureRW, data.intermediateBuffer3); + natCmd.SetComputeTextureParam(data.deferredRayTracingCS, data.rtDeferredLightingKernel, HDShaderIDs._DepthTexture, data.depthStencilBuffer); + natCmd.SetComputeTextureParam(data.deferredRayTracingCS, data.rtDeferredLightingKernel, HDShaderIDs._ThroughputTextureRW, data.intermediateBuffer0); + natCmd.SetComputeTextureParam(data.deferredRayTracingCS, data.rtDeferredLightingKernel, HDShaderIDs._NormalTextureRW, data.intermediateBuffer1); + natCmd.SetComputeTextureParam(data.deferredRayTracingCS, data.rtDeferredLightingKernel, HDShaderIDs._PositionTextureRW, data.intermediateBuffer2); + natCmd.SetComputeTextureParam(data.deferredRayTracingCS, data.rtDeferredLightingKernel, HDShaderIDs._DirectionTextureRW, data.directionBuffer); + natCmd.SetComputeTextureParam(data.deferredRayTracingCS, data.rtDeferredLightingKernel, HDShaderIDs._DiffuseLightingTextureRW, data.intermediateBuffer3); // Bind the output texture (it is used for accumulation read and write) - ctx.cmd.SetComputeTextureParam(data.deferredRayTracingCS, data.rtDeferredLightingKernel, HDShaderIDs._RaytracingLitBufferRW, data.outputBuffer); + natCmd.SetComputeTextureParam(data.deferredRayTracingCS, data.rtDeferredLightingKernel, HDShaderIDs._RaytracingLitBufferRW, data.outputBuffer); // Compute the Lighting - ctx.cmd.DispatchCompute(data.deferredRayTracingCS, data.rtDeferredLightingKernel, numTilesXHR, numTilesYHR, data.viewCount); + natCmd.DispatchCompute(data.deferredRayTracingCS, data.rtDeferredLightingKernel, numTilesXHR, numTilesYHR, data.viewCount); } }); @@ -240,10 +243,8 @@ class ComposeRTSSSPassData TextureHandle CombineRTSSS(RenderGraph renderGraph, HDCamera hdCamera, TextureHandle rayTracedSSS, TextureHandle depthStencilBuffer, TextureHandle sssColor, TextureHandle ssgiBuffer, TextureHandle diffuseLightingBuffer, TextureHandle colorBuffer) { - using (var builder = renderGraph.AddRenderPass("Composing the result of RTSSS", out var passData, ProfilingSampler.Get(HDProfileId.RaytracingSSSCompose))) + using (var builder = renderGraph.AddUnsafePass("Composing the result of RTSSS", out var passData, ProfilingSampler.Get(HDProfileId.RaytracingSSSCompose))) { - builder.EnableAsyncCompute(false); - // Camera parameters passData.texWidth = hdCamera.actualWidth; passData.texHeight = hdCamera.actualHeight; @@ -259,30 +260,41 @@ TextureHandle CombineRTSSS(RenderGraph renderGraph, HDCamera hdCamera, TextureHa passData.rayTracingSubSurfaceCS = rayTracingResources.subSurfaceRayTracingCS; passData.combineLightingMat = m_CombineLightingPass; - passData.depthStencilBuffer = builder.UseDepthBuffer(depthStencilBuffer, DepthAccess.Read); - passData.sssColor = builder.ReadTexture(sssColor); - passData.ssgiBuffer = passData.validSSGI ? builder.ReadTexture(ssgiBuffer) : renderGraph.defaultResources.blackTextureXR; - passData.diffuseLightingBuffer = builder.ReadTexture(diffuseLightingBuffer); - passData.subsurfaceBuffer = builder.ReadTexture(rayTracedSSS); - passData.colorBuffer = builder.ReadWriteTexture(colorBuffer); + passData.depthStencilBuffer = depthStencilBuffer; + builder.SetRenderAttachmentDepth(depthStencilBuffer, AccessFlags.Read); + passData.sssColor = sssColor; + builder.UseTexture(passData.sssColor, AccessFlags.Read); + if (passData.validSSGI) + passData.ssgiBuffer = ssgiBuffer; + else + passData.ssgiBuffer = renderGraph.defaultResources.blackTextureXR; + builder.UseTexture(passData.ssgiBuffer, AccessFlags.Read); + + passData.diffuseLightingBuffer = diffuseLightingBuffer; + builder.UseTexture(passData.diffuseLightingBuffer, AccessFlags.Read); + passData.subsurfaceBuffer = rayTracedSSS; + builder.UseTexture(passData.subsurfaceBuffer, AccessFlags.Read); + passData.colorBuffer = colorBuffer; + builder.UseTexture(passData.colorBuffer, AccessFlags.ReadWrite); builder.SetRenderFunc( - (ComposeRTSSSPassData data, RenderGraphContext ctx) => + (ComposeRTSSSPassData data, UnsafeGraphContext ctx) => { + var natCmd = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); // Evaluate the dispatch parameters int numTilesXHR = (data.texWidth + (s_sssTileSize - 1)) / s_sssTileSize; int numTilesYHR = (data.texHeight + (s_sssTileSize - 1)) / s_sssTileSize; - ctx.cmd.SetComputeTextureParam(data.rayTracingSubSurfaceCS, data.combineSSSKernel, HDShaderIDs._SubSurfaceLightingBuffer, data.subsurfaceBuffer); - ctx.cmd.SetComputeTextureParam(data.rayTracingSubSurfaceCS, data.combineSSSKernel, HDShaderIDs._DiffuseLightingTextureRW, data.diffuseLightingBuffer); - ctx.cmd.SetComputeTextureParam(data.rayTracingSubSurfaceCS, data.combineSSSKernel, HDShaderIDs._SSSBufferTexture, data.sssColor); + natCmd.SetComputeTextureParam(data.rayTracingSubSurfaceCS, data.combineSSSKernel, HDShaderIDs._SubSurfaceLightingBuffer, data.subsurfaceBuffer); + natCmd.SetComputeTextureParam(data.rayTracingSubSurfaceCS, data.combineSSSKernel, HDShaderIDs._DiffuseLightingTextureRW, data.diffuseLightingBuffer); + natCmd.SetComputeTextureParam(data.rayTracingSubSurfaceCS, data.combineSSSKernel, HDShaderIDs._SSSBufferTexture, data.sssColor); if (data.validSSGI) - ctx.cmd.SetComputeTextureParam(data.rayTracingSubSurfaceCS, data.combineSSSKernel, HDShaderIDs._IndirectDiffuseLightingBuffer, data.ssgiBuffer); - ctx.cmd.DispatchCompute(data.rayTracingSubSurfaceCS, data.combineSSSKernel, numTilesXHR, numTilesYHR, data.viewCount); + natCmd.SetComputeTextureParam(data.rayTracingSubSurfaceCS, data.combineSSSKernel, HDShaderIDs._IndirectDiffuseLightingBuffer, data.ssgiBuffer); + natCmd.DispatchCompute(data.rayTracingSubSurfaceCS, data.combineSSSKernel, numTilesXHR, numTilesYHR, data.viewCount); // Combine it with the rest of the lighting data.combineLightingMat.SetTexture(HDShaderIDs._IrradianceSource, data.diffuseLightingBuffer); - HDUtils.DrawFullScreen(ctx.cmd, data.combineLightingMat, data.colorBuffer, data.depthStencilBuffer, shaderPassId: 1); + HDUtils.DrawFullScreen(natCmd, data.combineLightingMat, data.colorBuffer, data.depthStencilBuffer, shaderPassId: 1); }); return passData.colorBuffer; diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/HDTemporalFilter.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/HDTemporalFilter.cs index d9717a20e0d..e21db837a37 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/HDTemporalFilter.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/HDTemporalFilter.cs @@ -103,11 +103,8 @@ class HistoryValidityPassData public TextureHandle HistoryValidity(RenderGraph renderGraph, HDCamera hdCamera, float historyValidity, TextureHandle depthBuffer, TextureHandle normalBuffer, TextureHandle motionVectorBuffer) { - using (var builder = renderGraph.AddRenderPass("History Validity Evaluation", out var passData, ProfilingSampler.Get(HDProfileId.HistoryValidity))) + using (var builder = renderGraph.AddUnsafePass("History Validity Evaluation", out var passData, ProfilingSampler.Get(HDProfileId.HistoryValidity))) { - // Cannot run in async - builder.EnableAsyncCompute(false); - passData.texWidth = hdCamera.actualWidth; passData.texHeight = hdCamera.actualHeight; passData.viewCount = hdCamera.viewCount; @@ -123,32 +120,39 @@ public TextureHandle HistoryValidity(RenderGraph renderGraph, HDCamera hdCamera, passData.temporalFilterCS = m_TemporalFilterCS; // Input Buffers - passData.depthStencilBuffer = builder.ReadTexture(depthBuffer); - passData.normalBuffer = builder.ReadTexture(normalBuffer); + passData.depthStencilBuffer = depthBuffer; + builder.UseTexture(passData.depthStencilBuffer, AccessFlags.Read); + passData.normalBuffer = normalBuffer; + builder.UseTexture(passData.normalBuffer, AccessFlags.Read); if (hdCamera.frameSettings.IsEnabled(FrameSettingsField.MotionVectors)) - passData.motionVectorBuffer = builder.ReadTexture(motionVectorBuffer); + passData.motionVectorBuffer = motionVectorBuffer; else - passData.motionVectorBuffer = builder.ReadTexture(renderGraph.defaultResources.blackTextureXR); + passData.motionVectorBuffer = renderGraph.defaultResources.blackTextureXR; + builder.UseTexture(passData.motionVectorBuffer, AccessFlags.Read); // Grab and import the history buffers var historyDepth = hdCamera.GetCurrentFrameRT((int)HDCameraFrameHistoryType.Depth); var historyNormal = hdCamera.GetCurrentFrameRT((int)HDCameraFrameHistoryType.Normal); - passData.historyDepthTexture = builder.ReadTexture(renderGraph.ImportTexture(historyDepth)); - passData.historyNormalTexture = builder.ReadTexture(renderGraph.ImportTexture(historyNormal)); + passData.historyDepthTexture = renderGraph.ImportTexture(historyDepth); + builder.UseTexture(passData.historyDepthTexture, AccessFlags.Read); + passData.historyNormalTexture = renderGraph.ImportTexture(historyNormal); + builder.UseTexture(passData.historyNormalTexture, AccessFlags.Read); passData.historySizeAndScale = (historyDepth != null && historyNormal != null) ? HDRenderPipeline.EvaluateRayTracingHistorySizeAndScale(hdCamera, historyDepth) : Vector4.one; // Output buffers - passData.validationBuffer = builder.WriteTexture(renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) { format = GraphicsFormat.R8_UInt, enableRandomWrite = true, name = "ValidationTexture" })); + passData.validationBuffer = renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) { format = GraphicsFormat.R8_UInt, enableRandomWrite = true, name = "ValidationTexture" }); + builder.UseTexture(passData.validationBuffer, AccessFlags.Write); builder.SetRenderFunc( - (HistoryValidityPassData data, RenderGraphContext ctx) => + (HistoryValidityPassData data, UnsafeGraphContext ctx) => { + var natCmd = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); RTHandle historyDepthTexture = data.historyDepthTexture; RTHandle historyNormalTexture = data.historyNormalTexture; // If we do not have a depth and normal history buffers, we can skip right away if (historyDepthTexture == null || historyNormalTexture == null) { - CoreUtils.SetRenderTarget(ctx.cmd, data.validationBuffer, clearFlag: ClearFlag.Color, Color.black); + CoreUtils.SetRenderTarget(natCmd, data.validationBuffer, clearFlag: ClearFlag.Color, Color.black); return; } @@ -159,24 +163,24 @@ public TextureHandle HistoryValidity(RenderGraph renderGraph, HDCamera hdCamera, // First of all we need to validate the history to know where we can or cannot use the history signal // Bind the input buffers - ctx.cmd.SetComputeTextureParam(data.temporalFilterCS, data.validateHistoryKernel, HDShaderIDs._DepthTexture, data.depthStencilBuffer); - ctx.cmd.SetComputeTextureParam(data.temporalFilterCS, data.validateHistoryKernel, HDShaderIDs._HistoryDepthTexture, data.historyDepthTexture); - ctx.cmd.SetComputeTextureParam(data.temporalFilterCS, data.validateHistoryKernel, HDShaderIDs._NormalBufferTexture, data.normalBuffer); - ctx.cmd.SetComputeTextureParam(data.temporalFilterCS, data.validateHistoryKernel, HDShaderIDs._HistoryNormalTexture, data.historyNormalTexture); - ctx.cmd.SetComputeTextureParam(data.temporalFilterCS, data.validateHistoryKernel, HDShaderIDs._CameraMotionVectorsTexture, data.motionVectorBuffer); - ctx.cmd.SetComputeTextureParam(data.temporalFilterCS, data.validateHistoryKernel, HDShaderIDs._StencilTexture, data.depthStencilBuffer, 0, RenderTextureSubElement.Stencil); + natCmd.SetComputeTextureParam(data.temporalFilterCS, data.validateHistoryKernel, HDShaderIDs._DepthTexture, data.depthStencilBuffer); + natCmd.SetComputeTextureParam(data.temporalFilterCS, data.validateHistoryKernel, HDShaderIDs._HistoryDepthTexture, data.historyDepthTexture); + natCmd.SetComputeTextureParam(data.temporalFilterCS, data.validateHistoryKernel, HDShaderIDs._NormalBufferTexture, data.normalBuffer); + natCmd.SetComputeTextureParam(data.temporalFilterCS, data.validateHistoryKernel, HDShaderIDs._HistoryNormalTexture, data.historyNormalTexture); + natCmd.SetComputeTextureParam(data.temporalFilterCS, data.validateHistoryKernel, HDShaderIDs._CameraMotionVectorsTexture, data.motionVectorBuffer); + natCmd.SetComputeTextureParam(data.temporalFilterCS, data.validateHistoryKernel, HDShaderIDs._StencilTexture, data.depthStencilBuffer, 0, RenderTextureSubElement.Stencil); // Bind the constants - ctx.cmd.SetComputeFloatParam(data.temporalFilterCS, HDShaderIDs._HistoryValidity, data.historyValidity); - ctx.cmd.SetComputeFloatParam(data.temporalFilterCS, HDShaderIDs._PixelSpreadAngleTangent, data.pixelSpreadTangent); - ctx.cmd.SetComputeIntParam(data.temporalFilterCS, HDShaderIDs._ObjectMotionStencilBit, (int)StencilUsage.ObjectMotionVector); - ctx.cmd.SetComputeVectorParam(data.temporalFilterCS, HDShaderIDs._HistorySizeAndScale, data.historySizeAndScale); + natCmd.SetComputeFloatParam(data.temporalFilterCS, HDShaderIDs._HistoryValidity, data.historyValidity); + natCmd.SetComputeFloatParam(data.temporalFilterCS, HDShaderIDs._PixelSpreadAngleTangent, data.pixelSpreadTangent); + natCmd.SetComputeIntParam(data.temporalFilterCS, HDShaderIDs._ObjectMotionStencilBit, (int)StencilUsage.ObjectMotionVector); + natCmd.SetComputeVectorParam(data.temporalFilterCS, HDShaderIDs._HistorySizeAndScale, data.historySizeAndScale); // Bind the output buffer - ctx.cmd.SetComputeTextureParam(data.temporalFilterCS, data.validateHistoryKernel, HDShaderIDs._ValidationBufferRW, data.validationBuffer); + natCmd.SetComputeTextureParam(data.temporalFilterCS, data.validateHistoryKernel, HDShaderIDs._ValidationBufferRW, data.validationBuffer); // Evaluate the validity - ctx.cmd.DispatchCompute(data.temporalFilterCS, data.validateHistoryKernel, numTilesX, numTilesY, data.viewCount); + natCmd.DispatchCompute(data.temporalFilterCS, data.validateHistoryKernel, numTilesX, numTilesY, data.viewCount); }); return passData.validationBuffer; } @@ -221,11 +225,8 @@ internal TextureHandle Denoise(RenderGraph renderGraph, HDCamera hdCamera, Tempo TextureHandle historyBuffer, TextureHandle depthBuffer, TextureHandle normalBuffer, TextureHandle motionVectorBuffer, TextureHandle historyValidationBuffer) { - using (var builder = renderGraph.AddRenderPass("TemporalDenoiser", out var passData, ProfilingSampler.Get(HDProfileId.TemporalFilter))) + using (var builder = renderGraph.AddUnsafePass("TemporalDenoiser", out var passData, ProfilingSampler.Get(HDProfileId.TemporalFilter))) { - // Cannot run in async - builder.EnableAsyncCompute(false); - // Camera parameters passData.texWidth = (int)Mathf.Floor((float)hdCamera.actualWidth * filterParams.resolutionMultiplier); passData.texHeight = (int)Mathf.Floor((float)hdCamera.actualHeight * filterParams.resolutionMultiplier); @@ -248,24 +249,32 @@ internal TextureHandle Denoise(RenderGraph renderGraph, HDCamera hdCamera, Tempo passData.temporalFilterCS = m_TemporalFilterCS; // Prepass Buffers - passData.depthStencilBuffer = builder.ReadTexture(depthBuffer); - passData.normalBuffer = builder.ReadTexture(normalBuffer); - passData.motionVectorBuffer = builder.ReadTexture(motionVectorBuffer); + passData.depthStencilBuffer = depthBuffer; + builder.UseTexture(passData.depthStencilBuffer, AccessFlags.Read); + passData.normalBuffer = normalBuffer; + builder.UseTexture(passData.normalBuffer, AccessFlags.Read); + passData.motionVectorBuffer = motionVectorBuffer; + builder.UseTexture(passData.motionVectorBuffer, AccessFlags.Read); // Effect buffers - passData.velocityBuffer = builder.ReadTexture(velocityBuffer); - passData.noisyBuffer = builder.ReadTexture(noisyBuffer); - passData.validationBuffer = builder.ReadTexture(historyValidationBuffer); + passData.velocityBuffer = velocityBuffer; + builder.UseTexture(passData.velocityBuffer, AccessFlags.Read); + passData.noisyBuffer = noisyBuffer; + builder.UseTexture(passData.noisyBuffer, AccessFlags.Read); + passData.validationBuffer = historyValidationBuffer; + builder.UseTexture(passData.validationBuffer, AccessFlags.Read); // History buffer - passData.historyBuffer = builder.ReadWriteTexture(historyBuffer); + passData.historyBuffer = historyBuffer; + builder.UseTexture(passData.historyBuffer, AccessFlags.ReadWrite); // Output buffers - passData.outputBuffer = builder.ReadWriteTexture(renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) - { format = GraphicsFormat.R16G16B16A16_SFloat, enableRandomWrite = true, name = "Temporal Filter Output" })); + passData.outputBuffer = renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) + { format = GraphicsFormat.R16G16B16A16_SFloat, enableRandomWrite = true, name = "Temporal Filter Output" }); + builder.UseTexture(passData.outputBuffer, AccessFlags.ReadWrite); builder.SetRenderFunc( - (TemporalFilterPassData data, RenderGraphContext ctx) => + (TemporalFilterPassData data, UnsafeGraphContext ctx) => { // Evaluate the dispatch parameters int areaTileSize = 8; @@ -369,11 +378,8 @@ public TemporalDenoiserArrayOutputData DenoiseBuffer(RenderGraph renderGraph, HD bool distanceBased, bool singleChannel, float historyValidity) { TemporalDenoiserArrayOutputData resultData = new TemporalDenoiserArrayOutputData(); - using (var builder = renderGraph.AddRenderPass("TemporalDenoiser", out var passData, ProfilingSampler.Get(HDProfileId.TemporalFilter))) + using (var builder = renderGraph.AddUnsafePass("TemporalDenoiser", out var passData, ProfilingSampler.Get(HDProfileId.TemporalFilter))) { - // Cannot run in async - builder.EnableAsyncCompute(false); - // Set the camera parameters passData.texWidth = hdCamera.actualWidth; passData.texHeight = hdCamera.actualHeight; @@ -398,20 +404,38 @@ public TemporalDenoiserArrayOutputData DenoiseBuffer(RenderGraph renderGraph, HD passData.temporalFilterCS = m_TemporalFilterCS; // Input buffers - passData.depthStencilBuffer = builder.ReadTexture(depthBuffer); - passData.normalBuffer = builder.ReadTexture(normalBuffer); - passData.motionVectorBuffer = builder.ReadTexture(motionVectorBuffer); + passData.depthStencilBuffer = depthBuffer; + builder.UseTexture(passData.depthStencilBuffer, AccessFlags.Read); + passData.normalBuffer = normalBuffer; + builder.UseTexture(passData.normalBuffer, AccessFlags.Read); + passData.motionVectorBuffer = motionVectorBuffer; + builder.UseTexture(passData.motionVectorBuffer, AccessFlags.Read); + + passData.velocityBuffer = velocityBuffer; + builder.UseTexture(passData.velocityBuffer, AccessFlags.Read); + passData.noisyBuffer = noisyBuffer; + builder.UseTexture(passData.noisyBuffer, AccessFlags.Read); + if (distanceBased) + passData.distanceBuffer = distanceBuffer; + else + passData.distanceBuffer = renderGraph.defaultResources.blackTextureXR; + builder.UseTexture(passData.distanceBuffer, AccessFlags.Read); - passData.velocityBuffer = builder.ReadTexture(velocityBuffer); - passData.noisyBuffer = builder.ReadTexture(noisyBuffer); - passData.distanceBuffer = distanceBased ? builder.ReadTexture(distanceBuffer) : renderGraph.defaultResources.blackTextureXR; - passData.validationBuffer = builder.ReadTexture(historyValidationBuffer); + passData.validationBuffer = historyValidationBuffer; + builder.UseTexture(passData.validationBuffer, AccessFlags.Read); // History buffers - passData.outputHistoryBuffer = builder.ReadWriteTexture(renderGraph.ImportTexture(historyBuffer)); + passData.outputHistoryBuffer = renderGraph.ImportTexture(historyBuffer); + builder.UseTexture(passData.outputHistoryBuffer, AccessFlags.ReadWrite); passData.inputHistoryBuffer = passData.outputHistoryBuffer; - passData.validationHistoryBuffer = builder.ReadWriteTexture(renderGraph.ImportTexture(validationHistoryBuffer)); - passData.distanceHistorySignal = distanceBased ? builder.ReadWriteTexture(renderGraph.ImportTexture(distanceHistorySignal)) : renderGraph.defaultResources.blackTextureXR; + passData.validationHistoryBuffer = renderGraph.ImportTexture(validationHistoryBuffer); + builder.UseTexture(passData.validationHistoryBuffer, AccessFlags.ReadWrite); + + if (distanceBased) + passData.distanceHistorySignal = renderGraph.ImportTexture(distanceHistorySignal); + else + passData.distanceHistorySignal = renderGraph.defaultResources.blackTextureXR; + builder.UseTexture(passData.distanceHistorySignal, AccessFlags.ReadWrite); // Intermediate buffers passData.intermediateSignalOutput = builder.CreateTransientTexture(new TextureDesc(Vector2.one, true, true) @@ -420,14 +444,21 @@ public TemporalDenoiserArrayOutputData DenoiseBuffer(RenderGraph renderGraph, HD { format = GraphicsFormat.R16G16B16A16_SFloat, enableRandomWrite = true, name = "Intermediate Validity output" }); // Output textures - passData.outputBuffer = builder.ReadWriteTexture(renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) - { format = GraphicsFormat.R16G16B16A16_SFloat, enableRandomWrite = true, name = "Temporal Filter Output" })); - passData.outputDistanceSignal = distanceBased ? builder.ReadWriteTexture(renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) - { format = GraphicsFormat.R16G16B16A16_SFloat, enableRandomWrite = true, name = "Temporal Filter Distance output" })) : new TextureHandle(); - + passData.outputBuffer = renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) + { format = GraphicsFormat.R16G16B16A16_SFloat, enableRandomWrite = true, name = "Temporal Filter Output" }); + builder.UseTexture(passData.outputBuffer, AccessFlags.ReadWrite); + + if (distanceBased) + { + passData.outputDistanceSignal = renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) + { format = GraphicsFormat.R16G16B16A16_SFloat, enableRandomWrite = true, name = "Temporal Filter Distance output" }); + builder.UseTexture(passData.outputDistanceSignal, AccessFlags.ReadWrite); + } + else + passData.outputDistanceSignal = new TextureHandle(); builder.SetRenderFunc( - (TemporalFilterArrayPassData data, RenderGraphContext ctx) => + (TemporalFilterArrayPassData data, UnsafeGraphContext ctx) => { // Evaluate the dispatch parameters int tfTileSize = 8; diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/ReblurDenoiser.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/ReblurDenoiser.cs index c8c5f25b17c..5b430917e2c 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/ReblurDenoiser.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/ReblurDenoiser.cs @@ -240,10 +240,8 @@ public TextureHandle DenoiseIndirectSpecular(RenderGraph renderGraph, HDCamera h TextureHandle lightingTexture, TextureHandle distanceTexture, RTHandle mainHistory, RTHandle accumulationHistory, RTHandle stabilizationHistory) { - using (var builder = renderGraph.AddRenderPass("ReBlur Indirect Specular", out var passData, ProfilingSampler.Get(HDProfileId.RaytracingReflectionFilter))) + using (var builder = renderGraph.AddUnsafePass("ReBlur Indirect Specular", out var passData, ProfilingSampler.Get(HDProfileId.RaytracingReflectionFilter))) { - builder.EnableAsyncCompute(false); - // Camera parameters passData.texWidth = hdCamera.actualWidth; passData.texHeight = hdCamera.actualHeight; @@ -293,17 +291,31 @@ public TextureHandle DenoiseIndirectSpecular(RenderGraph renderGraph, HDCamera h passData.temporalStabilizationKernel = m_TemporalStabilizationKernel; // Input resources - passData.lightingTexture = builder.ReadTexture(lightingTexture); - passData.distanceTexture = builder.ReadTexture(distanceTexture); - passData.depthBuffer = builder.ReadTexture(prepassOutput.depthBuffer); - passData.depthPyramidBuffer = builder.ReadTexture(prepassOutput.depthPyramidTexture); - passData.stencilBuffer = builder.ReadTexture(prepassOutput.stencilBuffer); - passData.normalBuffer = builder.ReadTexture(prepassOutput.normalBuffer); - passData.motionVectorBuffer = builder.ReadTexture(prepassOutput.resolvedMotionVectorsBuffer); - passData.clearCoatTexture = builder.ReadTexture(clearCoatTexture); - passData.historyValidation = builder.ReadTexture(historyValidation); + passData.lightingTexture = lightingTexture; + builder.UseTexture(passData.lightingTexture, AccessFlags.Read); + passData.distanceTexture = distanceTexture; + builder.UseTexture(passData.distanceTexture, AccessFlags.Read); + passData.depthBuffer = prepassOutput.depthBuffer; + builder.UseTexture(passData.depthBuffer, AccessFlags.Read); + passData.depthPyramidBuffer = prepassOutput.depthPyramidTexture; + builder.UseTexture(passData.depthPyramidBuffer, AccessFlags.Read); + passData.stencilBuffer = prepassOutput.stencilBuffer; + builder.UseTexture(passData.stencilBuffer, AccessFlags.Read); + passData.normalBuffer = prepassOutput.normalBuffer; + builder.UseTexture(passData.normalBuffer, AccessFlags.Read); + passData.motionVectorBuffer = prepassOutput.resolvedMotionVectorsBuffer; + builder.UseTexture(passData.motionVectorBuffer, AccessFlags.Read); + passData.clearCoatTexture = clearCoatTexture; + builder.UseTexture(passData.clearCoatTexture, AccessFlags.Read); + passData.historyValidation = historyValidation; + builder.UseTexture(passData.historyValidation, AccessFlags.Read); var historyDepth = hdCamera.GetCurrentFrameRT((int)HDCameraFrameHistoryType.Depth); - passData.historyDepth = historyDepth != null ? builder.ReadTexture(renderGraph.ImportTexture(historyDepth)) : renderGraph.defaultResources.blackTextureXR; + if (historyDepth != null) + passData.historyDepth = renderGraph.ImportTexture(historyDepth); + else + passData.historyDepth = renderGraph.defaultResources.blackTextureXR; + builder.UseTexture(passData.historyDepth, AccessFlags.Read); + // Temporary textures passData.accTexture = builder.CreateTransientTexture(new TextureDesc(Vector2.one, true, true) @@ -314,12 +326,17 @@ public TextureHandle DenoiseIndirectSpecular(RenderGraph renderGraph, HDCamera h { format = GraphicsFormat.R16G16B16A16_SFloat, enableRandomWrite = true, useMipMap = true, autoGenerateMips = false, name = "ReBlur Color Pyramid Bis" }); // Output resources - passData.mainHistory = builder.ReadWriteTexture(renderGraph.ImportTexture(mainHistory)); - passData.accumulationHistory = builder.ReadWriteTexture(renderGraph.ImportTexture(accumulationHistory)); - passData.stabilizationHistory = builder.ReadWriteTexture(renderGraph.ImportTexture(stabilizationHistory)); - - builder.SetRenderFunc((ReblurIndirectSpecularPassData data, RenderGraphContext ctx) => + passData.mainHistory = renderGraph.ImportTexture(mainHistory); + builder.UseTexture(passData.mainHistory, AccessFlags.ReadWrite); + passData.accumulationHistory = renderGraph.ImportTexture(accumulationHistory); + builder.UseTexture(passData.accumulationHistory, AccessFlags.ReadWrite); + passData.stabilizationHistory = renderGraph.ImportTexture(stabilizationHistory); + builder.UseTexture(passData.stabilizationHistory, AccessFlags.ReadWrite); + + builder.SetRenderFunc((ReblurIndirectSpecularPassData data, UnsafeGraphContext ctx) => { + var natCmd = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); + // Evaluate the dispatch parameters int tileSize = 8; @@ -330,159 +347,159 @@ public TextureHandle DenoiseIndirectSpecular(RenderGraph renderGraph, HDCamera h using (new ProfilingScope(ctx.cmd, ProfilingSampler.Get(HDProfileId.ReBlurPreBlur))) { // Set the half res keyword - CoreUtils.SetKeyword(ctx.cmd, "HALF_RESOLUTION", !data.fullResolution); + CoreUtils.SetKeyword(natCmd, "HALF_RESOLUTION", !data.fullResolution); // Input data - ConstantBuffer.Push(ctx.cmd, data.reblurCB, data.preBlurCS, _ShaderVariablesReBlur); - ctx.cmd.SetComputeTextureParam(data.preBlurCS, data.preBlurKernel, HDShaderIDs._LightingInputTexture, data.lightingTexture); - ctx.cmd.SetComputeTextureParam(data.preBlurCS, data.preBlurKernel, HDShaderIDs._DistanceInputTexture, data.distanceTexture); - ctx.cmd.SetComputeTextureParam(data.preBlurCS, data.preBlurKernel, HDShaderIDs._DepthTexture, data.depthBuffer); - ctx.cmd.SetComputeTextureParam(data.preBlurCS, data.preBlurKernel, HDShaderIDs._StencilTexture, data.stencilBuffer, 0, RenderTextureSubElement.Stencil); - ctx.cmd.SetComputeTextureParam(data.preBlurCS, data.preBlurKernel, HDShaderIDs._NormalBufferTexture, data.normalBuffer); - ctx.cmd.SetComputeTextureParam(data.preBlurCS, data.preBlurKernel, HDShaderIDs._ClearCoatMaskTexture, data.clearCoatTexture); + ConstantBuffer.Push(natCmd, data.reblurCB, data.preBlurCS, _ShaderVariablesReBlur); + natCmd.SetComputeTextureParam(data.preBlurCS, data.preBlurKernel, HDShaderIDs._LightingInputTexture, data.lightingTexture); + natCmd.SetComputeTextureParam(data.preBlurCS, data.preBlurKernel, HDShaderIDs._DistanceInputTexture, data.distanceTexture); + natCmd.SetComputeTextureParam(data.preBlurCS, data.preBlurKernel, HDShaderIDs._DepthTexture, data.depthBuffer); + natCmd.SetComputeTextureParam(data.preBlurCS, data.preBlurKernel, HDShaderIDs._StencilTexture, data.stencilBuffer, 0, RenderTextureSubElement.Stencil); + natCmd.SetComputeTextureParam(data.preBlurCS, data.preBlurKernel, HDShaderIDs._NormalBufferTexture, data.normalBuffer); + natCmd.SetComputeTextureParam(data.preBlurCS, data.preBlurKernel, HDShaderIDs._ClearCoatMaskTexture, data.clearCoatTexture); // Output texture - ctx.cmd.SetComputeTextureParam(data.preBlurCS, data.preBlurKernel, _LightingDistanceTextureRW, data.tmpTexture); + natCmd.SetComputeTextureParam(data.preBlurCS, data.preBlurKernel, _LightingDistanceTextureRW, data.tmpTexture); // Dispatch - ctx.cmd.DispatchCompute(data.preBlurCS, data.preBlurKernel, numTilesX, numTilesY, data.viewCount); + natCmd.DispatchCompute(data.preBlurCS, data.preBlurKernel, numTilesX, numTilesY, data.viewCount); // Reset the half res keyword - CoreUtils.SetKeyword(ctx.cmd, "HALF_RESOLUTION", false); + CoreUtils.SetKeyword(natCmd, "HALF_RESOLUTION", false); } using (new ProfilingScope(ctx.cmd, ProfilingSampler.Get(HDProfileId.ReBlurTemporalAccumulation))) { // Input CB - ConstantBuffer.Push(ctx.cmd, data.reblurCB, data.temporalAccumulationCS, _ShaderVariablesReBlur); + ConstantBuffer.Push(natCmd, data.reblurCB, data.temporalAccumulationCS, _ShaderVariablesReBlur); // Simplified GBuffer + History - ctx.cmd.SetComputeTextureParam(data.temporalAccumulationCS, data.temporalAccumulationKernel, HDShaderIDs._DepthTexture, data.depthBuffer); - ctx.cmd.SetComputeTextureParam(data.temporalAccumulationCS, data.temporalAccumulationKernel, HDShaderIDs._NormalBufferTexture, data.normalBuffer); - ctx.cmd.SetComputeTextureParam(data.temporalAccumulationCS, data.temporalAccumulationKernel, HDShaderIDs._ClearCoatMaskTexture, data.clearCoatTexture); - ctx.cmd.SetComputeTextureParam(data.temporalAccumulationCS, data.temporalAccumulationKernel, HDShaderIDs._CameraMotionVectorsTexture, data.motionVectorBuffer); - ctx.cmd.SetComputeTextureParam(data.temporalAccumulationCS, data.temporalAccumulationKernel, HDShaderIDs._HistoryDepthTexture, data.historyDepth); + natCmd.SetComputeTextureParam(data.temporalAccumulationCS, data.temporalAccumulationKernel, HDShaderIDs._DepthTexture, data.depthBuffer); + natCmd.SetComputeTextureParam(data.temporalAccumulationCS, data.temporalAccumulationKernel, HDShaderIDs._NormalBufferTexture, data.normalBuffer); + natCmd.SetComputeTextureParam(data.temporalAccumulationCS, data.temporalAccumulationKernel, HDShaderIDs._ClearCoatMaskTexture, data.clearCoatTexture); + natCmd.SetComputeTextureParam(data.temporalAccumulationCS, data.temporalAccumulationKernel, HDShaderIDs._CameraMotionVectorsTexture, data.motionVectorBuffer); + natCmd.SetComputeTextureParam(data.temporalAccumulationCS, data.temporalAccumulationKernel, HDShaderIDs._HistoryDepthTexture, data.historyDepth); // Input Data - ctx.cmd.SetComputeTextureParam(data.temporalAccumulationCS, data.temporalAccumulationKernel, _LightingDistanceTexture, data.tmpTexture); - ctx.cmd.SetComputeTextureParam(data.temporalAccumulationCS, data.temporalAccumulationKernel, HDShaderIDs._ValidationBuffer, data.historyValidation); + natCmd.SetComputeTextureParam(data.temporalAccumulationCS, data.temporalAccumulationKernel, _LightingDistanceTexture, data.tmpTexture); + natCmd.SetComputeTextureParam(data.temporalAccumulationCS, data.temporalAccumulationKernel, HDShaderIDs._ValidationBuffer, data.historyValidation); // History buffer - ctx.cmd.SetComputeTextureParam(data.temporalAccumulationCS, data.temporalAccumulationKernel, _LightingDistanceHistoryBuffer, data.mainHistory); - ctx.cmd.SetComputeTextureParam(data.temporalAccumulationCS, data.temporalAccumulationKernel, _AccumulationHistoryBuffer, data.accumulationHistory); + natCmd.SetComputeTextureParam(data.temporalAccumulationCS, data.temporalAccumulationKernel, _LightingDistanceHistoryBuffer, data.mainHistory); + natCmd.SetComputeTextureParam(data.temporalAccumulationCS, data.temporalAccumulationKernel, _AccumulationHistoryBuffer, data.accumulationHistory); // Output texture - ctx.cmd.SetComputeTextureParam(data.temporalAccumulationCS, data.temporalAccumulationKernel, _LightingDistanceTextureRW, data.lightingTexture); - ctx.cmd.SetComputeTextureParam(data.temporalAccumulationCS, data.temporalAccumulationKernel, _AccumulationTextureRW, data.accTexture); + natCmd.SetComputeTextureParam(data.temporalAccumulationCS, data.temporalAccumulationKernel, _LightingDistanceTextureRW, data.lightingTexture); + natCmd.SetComputeTextureParam(data.temporalAccumulationCS, data.temporalAccumulationKernel, _AccumulationTextureRW, data.accTexture); // Dispatch - ctx.cmd.DispatchCompute(data.temporalAccumulationCS, data.temporalAccumulationKernel, numTilesX, numTilesY, data.viewCount); + natCmd.DispatchCompute(data.temporalAccumulationCS, data.temporalAccumulationKernel, numTilesX, numTilesY, data.viewCount); } // Generate the mip levels required for the history fix. - GenerateMipLevels(ctx.cmd, data); + GenerateMipLevels(natCmd, data); using (new ProfilingScope(ctx.cmd, ProfilingSampler.Get(HDProfileId.ReBlurMipHistoryFix))) { // Mini GBuffer - ctx.cmd.SetComputeTextureParam(data.historyFixCS, data.historyFixKernel, HDShaderIDs._DepthTexture, data.depthBuffer); - ctx.cmd.SetComputeTextureParam(data.historyFixCS, data.historyFixKernel, HDShaderIDs._NormalBufferTexture, data.normalBuffer); - ctx.cmd.SetComputeTextureParam(data.historyFixCS, data.historyFixKernel, _ReBlurMipChain, data.mipTexture); + natCmd.SetComputeTextureParam(data.historyFixCS, data.historyFixKernel, HDShaderIDs._DepthTexture, data.depthBuffer); + natCmd.SetComputeTextureParam(data.historyFixCS, data.historyFixKernel, HDShaderIDs._NormalBufferTexture, data.normalBuffer); + natCmd.SetComputeTextureParam(data.historyFixCS, data.historyFixKernel, _ReBlurMipChain, data.mipTexture); // Input Data - ctx.cmd.SetComputeTextureParam(data.historyFixCS, data.historyFixKernel, _LightingDistanceTexture, data.lightingTexture); - ctx.cmd.SetComputeTextureParam(data.historyFixCS, data.historyFixKernel, _AccumulationTexture, data.accTexture); + natCmd.SetComputeTextureParam(data.historyFixCS, data.historyFixKernel, _LightingDistanceTexture, data.lightingTexture); + natCmd.SetComputeTextureParam(data.historyFixCS, data.historyFixKernel, _AccumulationTexture, data.accTexture); // Output texture - ctx.cmd.SetComputeTextureParam(data.historyFixCS, data.historyFixKernel, _LightingDistanceTextureRW, data.tmpTexture); + natCmd.SetComputeTextureParam(data.historyFixCS, data.historyFixKernel, _LightingDistanceTextureRW, data.tmpTexture); // Dispatch - ctx.cmd.DispatchCompute(data.historyFixCS, data.historyFixKernel, numTilesX, numTilesY, data.viewCount); + natCmd.DispatchCompute(data.historyFixCS, data.historyFixKernel, numTilesX, numTilesY, data.viewCount); } using (new ProfilingScope(ctx.cmd, ProfilingSampler.Get(HDProfileId.ReBlurBlur))) { - ConstantBuffer.Push(ctx.cmd, data.reblurCB, data.blurCS, _ShaderVariablesReBlur); + ConstantBuffer.Push(natCmd, data.reblurCB, data.blurCS, _ShaderVariablesReBlur); // Mini GBuffer - ctx.cmd.SetComputeTextureParam(data.blurCS, data.blurKernel, HDShaderIDs._DepthTexture, data.depthBuffer); - ctx.cmd.SetComputeTextureParam(data.blurCS, data.blurKernel, HDShaderIDs._NormalBufferTexture, data.normalBuffer); - ctx.cmd.SetComputeTextureParam(data.blurCS, data.blurKernel, HDShaderIDs._StencilTexture, data.stencilBuffer, 0, RenderTextureSubElement.Stencil); - ctx.cmd.SetComputeTextureParam(data.blurCS, data.blurKernel, HDShaderIDs._ClearCoatMaskTexture, data.clearCoatTexture); + natCmd.SetComputeTextureParam(data.blurCS, data.blurKernel, HDShaderIDs._DepthTexture, data.depthBuffer); + natCmd.SetComputeTextureParam(data.blurCS, data.blurKernel, HDShaderIDs._NormalBufferTexture, data.normalBuffer); + natCmd.SetComputeTextureParam(data.blurCS, data.blurKernel, HDShaderIDs._StencilTexture, data.stencilBuffer, 0, RenderTextureSubElement.Stencil); + natCmd.SetComputeTextureParam(data.blurCS, data.blurKernel, HDShaderIDs._ClearCoatMaskTexture, data.clearCoatTexture); // Input Data - ctx.cmd.SetComputeTextureParam(data.blurCS, data.blurKernel, _LightingDistanceTexture, data.tmpTexture); - ctx.cmd.SetComputeTextureParam(data.blurCS, data.blurKernel, _AccumulationTexture, data.accTexture); + natCmd.SetComputeTextureParam(data.blurCS, data.blurKernel, _LightingDistanceTexture, data.tmpTexture); + natCmd.SetComputeTextureParam(data.blurCS, data.blurKernel, _AccumulationTexture, data.accTexture); // Output Data - ctx.cmd.SetComputeTextureParam(data.blurCS, data.blurKernel, _LightingDistanceTextureRW, data.lightingTexture); + natCmd.SetComputeTextureParam(data.blurCS, data.blurKernel, _LightingDistanceTextureRW, data.lightingTexture); // Dispatch - ctx.cmd.DispatchCompute(data.blurCS, data.blurKernel, numTilesX, numTilesY, data.viewCount); + natCmd.DispatchCompute(data.blurCS, data.blurKernel, numTilesX, numTilesY, data.viewCount); } using (new ProfilingScope(ctx.cmd, ProfilingSampler.Get(HDProfileId.ReBlurCopyHistory))) { // Current Data - ctx.cmd.SetComputeTextureParam(data.copyHistoryCS, data.copyHistoryAccumulationKernel, _LightingDistanceTexture, data.lightingTexture); - ctx.cmd.SetComputeTextureParam(data.copyHistoryCS, data.copyHistoryAccumulationKernel, _AccumulationTexture, data.accTexture); + natCmd.SetComputeTextureParam(data.copyHistoryCS, data.copyHistoryAccumulationKernel, _LightingDistanceTexture, data.lightingTexture); + natCmd.SetComputeTextureParam(data.copyHistoryCS, data.copyHistoryAccumulationKernel, _AccumulationTexture, data.accTexture); // History buffers - ctx.cmd.SetComputeTextureParam(data.copyHistoryCS, data.copyHistoryAccumulationKernel, _LightingDistanceTextureRW, data.mainHistory); - ctx.cmd.SetComputeTextureParam(data.copyHistoryCS, data.copyHistoryAccumulationKernel, _AccumulationTextureRW, data.accumulationHistory); + natCmd.SetComputeTextureParam(data.copyHistoryCS, data.copyHistoryAccumulationKernel, _LightingDistanceTextureRW, data.mainHistory); + natCmd.SetComputeTextureParam(data.copyHistoryCS, data.copyHistoryAccumulationKernel, _AccumulationTextureRW, data.accumulationHistory); // Dispatch - ctx.cmd.DispatchCompute(data.copyHistoryCS, data.copyHistoryAccumulationKernel, numTilesX, numTilesY, data.viewCount); + natCmd.DispatchCompute(data.copyHistoryCS, data.copyHistoryAccumulationKernel, numTilesX, numTilesY, data.viewCount); } using (new ProfilingScope(ctx.cmd, ProfilingSampler.Get(HDProfileId.ReBlurTemporalStabilization))) { - ConstantBuffer.Push(ctx.cmd, data.reblurCB, data.temporalStabilizationCS, _ShaderVariablesReBlur); + ConstantBuffer.Push(natCmd, data.reblurCB, data.temporalStabilizationCS, _ShaderVariablesReBlur); // Mini GBuffer - ctx.cmd.SetComputeTextureParam(data.temporalStabilizationCS, data.temporalStabilizationKernel, HDShaderIDs._DepthTexture, data.depthBuffer); - ctx.cmd.SetComputeTextureParam(data.temporalStabilizationCS, data.temporalStabilizationKernel, HDShaderIDs._NormalBufferTexture, data.normalBuffer); - ctx.cmd.SetComputeTextureParam(data.temporalStabilizationCS, data.temporalStabilizationKernel, HDShaderIDs._CameraMotionVectorsTexture, data.motionVectorBuffer); - ctx.cmd.SetComputeTextureParam(data.temporalStabilizationCS, data.temporalStabilizationKernel, HDShaderIDs._ValidationBuffer, data.historyValidation); - ctx.cmd.SetComputeTextureParam(data.temporalStabilizationCS, data.temporalStabilizationKernel, HDShaderIDs._StencilTexture, data.stencilBuffer, 0, RenderTextureSubElement.Stencil); + natCmd.SetComputeTextureParam(data.temporalStabilizationCS, data.temporalStabilizationKernel, HDShaderIDs._DepthTexture, data.depthBuffer); + natCmd.SetComputeTextureParam(data.temporalStabilizationCS, data.temporalStabilizationKernel, HDShaderIDs._NormalBufferTexture, data.normalBuffer); + natCmd.SetComputeTextureParam(data.temporalStabilizationCS, data.temporalStabilizationKernel, HDShaderIDs._CameraMotionVectorsTexture, data.motionVectorBuffer); + natCmd.SetComputeTextureParam(data.temporalStabilizationCS, data.temporalStabilizationKernel, HDShaderIDs._ValidationBuffer, data.historyValidation); + natCmd.SetComputeTextureParam(data.temporalStabilizationCS, data.temporalStabilizationKernel, HDShaderIDs._StencilTexture, data.stencilBuffer, 0, RenderTextureSubElement.Stencil); // Input - ctx.cmd.SetComputeTextureParam(data.temporalStabilizationCS, data.temporalStabilizationKernel, HDShaderIDs._DenoiseInputTexture, data.lightingTexture); - ctx.cmd.SetComputeTextureParam(data.temporalStabilizationCS, data.temporalStabilizationKernel, _StabilizationHistoryBuffer, data.stabilizationHistory); + natCmd.SetComputeTextureParam(data.temporalStabilizationCS, data.temporalStabilizationKernel, HDShaderIDs._DenoiseInputTexture, data.lightingTexture); + natCmd.SetComputeTextureParam(data.temporalStabilizationCS, data.temporalStabilizationKernel, _StabilizationHistoryBuffer, data.stabilizationHistory); // Output - ctx.cmd.SetComputeTextureParam(data.temporalStabilizationCS, data.temporalStabilizationKernel, HDShaderIDs._DenoiseOutputTextureRW, data.tmpTexture); + natCmd.SetComputeTextureParam(data.temporalStabilizationCS, data.temporalStabilizationKernel, HDShaderIDs._DenoiseOutputTextureRW, data.tmpTexture); // Dispatch - ctx.cmd.DispatchCompute(data.temporalStabilizationCS, data.temporalStabilizationKernel, numTilesX, numTilesY, data.viewCount); + natCmd.DispatchCompute(data.temporalStabilizationCS, data.temporalStabilizationKernel, numTilesX, numTilesY, data.viewCount); } using (new ProfilingScope(ctx.cmd, ProfilingSampler.Get(HDProfileId.ReBlurCopyHistoryStab))) { - ctx.cmd.SetComputeTextureParam(data.copyHistoryCS, data.copyHistoryKernel, _LightingDistanceTexture, data.tmpTexture); - ctx.cmd.SetComputeTextureParam(data.copyHistoryCS, data.copyHistoryKernel, _LightingDistanceTextureRW, data.stabilizationHistory); - ctx.cmd.DispatchCompute(data.copyHistoryCS, data.copyHistoryKernel, numTilesX, numTilesY, data.viewCount); + natCmd.SetComputeTextureParam(data.copyHistoryCS, data.copyHistoryKernel, _LightingDistanceTexture, data.tmpTexture); + natCmd.SetComputeTextureParam(data.copyHistoryCS, data.copyHistoryKernel, _LightingDistanceTextureRW, data.stabilizationHistory); + natCmd.DispatchCompute(data.copyHistoryCS, data.copyHistoryKernel, numTilesX, numTilesY, data.viewCount); } using (new ProfilingScope(ctx.cmd, ProfilingSampler.Get(HDProfileId.ReBlurPostBlur))) { - ConstantBuffer.Push(ctx.cmd, data.reblurCB, data.postBlurCS, _ShaderVariablesReBlur); + ConstantBuffer.Push(natCmd, data.reblurCB, data.postBlurCS, _ShaderVariablesReBlur); // Mini GBuffer - ctx.cmd.SetComputeTextureParam(data.postBlurCS, data.postBlurKernel, HDShaderIDs._DepthTexture, data.depthBuffer); - ctx.cmd.SetComputeTextureParam(data.postBlurCS, data.postBlurKernel, HDShaderIDs._NormalBufferTexture, data.normalBuffer); - ctx.cmd.SetComputeTextureParam(data.postBlurCS, data.postBlurKernel, HDShaderIDs._StencilTexture, data.stencilBuffer, 0, RenderTextureSubElement.Stencil); - ctx.cmd.SetComputeTextureParam(data.postBlurCS, data.postBlurKernel, HDShaderIDs._ClearCoatMaskTexture, data.clearCoatTexture); + natCmd.SetComputeTextureParam(data.postBlurCS, data.postBlurKernel, HDShaderIDs._DepthTexture, data.depthBuffer); + natCmd.SetComputeTextureParam(data.postBlurCS, data.postBlurKernel, HDShaderIDs._NormalBufferTexture, data.normalBuffer); + natCmd.SetComputeTextureParam(data.postBlurCS, data.postBlurKernel, HDShaderIDs._StencilTexture, data.stencilBuffer, 0, RenderTextureSubElement.Stencil); + natCmd.SetComputeTextureParam(data.postBlurCS, data.postBlurKernel, HDShaderIDs._ClearCoatMaskTexture, data.clearCoatTexture); // Input Data - ctx.cmd.SetComputeTextureParam(data.postBlurCS, data.postBlurKernel, _LightingDistanceTexture, data.tmpTexture); - ctx.cmd.SetComputeTextureParam(data.postBlurCS, data.postBlurKernel, _AccumulationTexture, data.accTexture); + natCmd.SetComputeTextureParam(data.postBlurCS, data.postBlurKernel, _LightingDistanceTexture, data.tmpTexture); + natCmd.SetComputeTextureParam(data.postBlurCS, data.postBlurKernel, _AccumulationTexture, data.accTexture); // Output buffer - ctx.cmd.SetComputeTextureParam(data.postBlurCS, data.postBlurKernel, _LightingDistanceTextureRW, data.lightingTexture); + natCmd.SetComputeTextureParam(data.postBlurCS, data.postBlurKernel, _LightingDistanceTextureRW, data.lightingTexture); // Dispatch - ctx.cmd.DispatchCompute(data.postBlurCS, data.postBlurKernel, numTilesX, numTilesY, data.viewCount); + natCmd.DispatchCompute(data.postBlurCS, data.postBlurKernel, numTilesX, numTilesY, data.viewCount); } }); diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/RenderPass/AOV/AOVRequest.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/RenderPass/AOV/AOVRequest.cs index 815c94d9c29..d4bb0b9b5e3 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/RenderPass/AOV/AOVRequest.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/RenderPass/AOV/AOVRequest.cs @@ -47,7 +47,7 @@ public enum DebugFullScreen public unsafe struct AOVRequest { /// Default settings. - [Obsolete("Since 2019.3, use AOVRequest.NewDefault() instead.")] + [Obsolete("Use AOVRequest.NewDefault() instead. #from(2019.3)")] public static readonly AOVRequest @default = default; /// Default settings. /// diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/RenderPass/AOV/AOVRequestData.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/RenderPass/AOV/AOVRequestData.cs index 8c98bb04e77..6714526a69c 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/RenderPass/AOV/AOVRequestData.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/RenderPass/AOV/AOVRequestData.cs @@ -32,7 +32,7 @@ namespace UnityEngine.Rendering.HighDefinition public struct AOVRequestData { /// Default frame pass settings. - [Obsolete("Since 2019.3, use AOVRequestData.NewDefault() instead.")] + [Obsolete("Use AOVRequestData.NewDefault() instead. #from(2019.3)")] public static readonly AOVRequestData @default = default; /// /// Instantiate a new AOV request data with default values. @@ -217,15 +217,18 @@ List targets if (index == -1) return; - using (var builder = renderGraph.AddRenderPass("Push AOV Camera Texture", out var passData, ProfilingSampler.Get(HDProfileId.AOVOutput + (int)aovBufferId))) + using (var builder = renderGraph.AddUnsafePass("Push AOV Camera Texture", out var passData, ProfilingSampler.Get(HDProfileId.AOVOutput + (int)aovBufferId))) { - passData.source = builder.ReadTexture(source); + passData.source = source; passData.target = targets[index]; + builder.UseTexture(passData.source, AccessFlags.Read); + builder.AllowPassCulling(false); + builder.SetRenderFunc( - (PushCameraTexturePassData data, RenderGraphContext ctx) => + (PushCameraTexturePassData data, UnsafeGraphContext ctx) => { - HDUtils.BlitCameraTexture(ctx.cmd, data.source, data.target); + Blitter.BlitCameraTexture(CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd), data.source, data.target); }); } } @@ -264,11 +267,12 @@ List targets if (index == -1) return; - using (var builder = renderGraph.AddRenderPass("Push Custom Pass Texture", out var passData)) + using (var builder = renderGraph.AddUnsafePass("Push Custom Pass Texture", out var passData)) { if (m_CustomPassAOVBuffers[index].outputType == CustomPassAOVBuffers.OutputType.Camera) { - passData.source = builder.ReadTexture(cameraSource); + passData.source = cameraSource; + builder.UseTexture(passData.source, AccessFlags.Read); passData.customPassSource = null; } else @@ -277,13 +281,16 @@ List targets } passData.target = targets[index]; + builder.AllowPassCulling(false); + builder.SetRenderFunc( - (PushCustomPassTexturePassData data, RenderGraphContext ctx) => + (PushCustomPassTexturePassData data, UnsafeGraphContext ctx) => { + var natCmd = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); if (data.customPassSource != null) - HDUtils.BlitCameraTexture(ctx.cmd, data.customPassSource, data.target); + Blitter.BlitCameraTexture(natCmd, data.customPassSource, data.target); else - HDUtils.BlitCameraTexture(ctx.cmd, data.source, data.target); + Blitter.BlitCameraTexture(natCmd, data.source, data.target); }); } } diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/RenderPass/CustomPass/CustomPass.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/RenderPass/CustomPass/CustomPass.cs index 03fa1be1f5c..a0a82bf4cc1 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/RenderPass/CustomPass/CustomPass.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/RenderPass/CustomPass/CustomPass.cs @@ -206,9 +206,10 @@ class ExecutePassData public CullingResults cameraCullingResult; public HDCamera hdCamera; public ShaderVariablesGlobal shaderVariablesGlobal; + public ScriptableRenderContext renderContext; } - RenderTargets ReadRenderTargets(in RenderGraphBuilder builder, in RenderTargets targets, HDCamera hdCamera) + RenderTargets ReadRenderTargets(in IUnsafeRenderGraphBuilder builder, in RenderTargets targets, HDCamera hdCamera) { RenderTargets output = new RenderTargets(); @@ -222,73 +223,105 @@ RenderTargets ReadRenderTargets(in RenderGraphBuilder builder, in RenderTargets // Problem with that is that it will extend the lifetime of any of those textures to the last custom pass that is executed... // Also, we test validity of all handles because depending on where the custom pass is executed, they may not always be. if (targets.colorBufferRG.IsValid()) - output.colorBufferRG = builder.ReadWriteTexture(targets.colorBufferRG); + { + output.colorBufferRG = targets.colorBufferRG; + builder.UseTexture(output.colorBufferRG, AccessFlags.ReadWrite); + } if (targets.nonMSAAColorBufferRG.IsValid()) - output.nonMSAAColorBufferRG = builder.ReadWriteTexture(targets.nonMSAAColorBufferRG); + { + output.nonMSAAColorBufferRG = targets.nonMSAAColorBufferRG; + builder.UseTexture(output.nonMSAAColorBufferRG, AccessFlags.ReadWrite); + } if (targets.depthBufferRG.IsValid()) - output.depthBufferRG = builder.ReadWriteTexture(targets.depthBufferRG); + { + output.depthBufferRG = targets.depthBufferRG; + builder.UseTexture(output.depthBufferRG, AccessFlags.ReadWrite); + } if (targets.normalBufferRG.IsValid()) - output.normalBufferRG = builder.ReadWriteTexture(targets.normalBufferRG); + { + output.normalBufferRG = targets.normalBufferRG; + builder.UseTexture(output.normalBufferRG, AccessFlags.ReadWrite); + } if (targets.motionVectorBufferRG.IsValid()) - output.motionVectorBufferRG = builder.ReadWriteTexture(targets.motionVectorBufferRG); + { + output.motionVectorBufferRG = targets.motionVectorBufferRG; + builder.UseTexture(output.motionVectorBufferRG, AccessFlags.ReadWrite); + } // The rendering layer mask buffer is only accessible through the SG node we expose, and we don't allow writing to it if (targets.renderingLayerMaskRG.IsValid()) - output.renderingLayerMaskRG = builder.ReadTexture(targets.renderingLayerMaskRG); + { + output.renderingLayerMaskRG = targets.renderingLayerMaskRG; + builder.UseTexture(output.renderingLayerMaskRG, AccessFlags.Read); + } if (targets.waterLineRG.IsValid()) - output.waterLineRG = builder.ReadBuffer(targets.waterLineRG); + { + output.waterLineRG = targets.waterLineRG; + builder.UseBuffer(output.waterLineRG, AccessFlags.Read); + } if (targets.shadingRateImageRG.IsValid() && hdCamera.vrsEnabled) - output.shadingRateImageRG = builder.ReadTexture(targets.shadingRateImageRG); + { + output.shadingRateImageRG = targets.shadingRateImageRG; + builder.UseTexture(output.shadingRateImageRG, AccessFlags.Read); + } if (targets.sssBuffer.IsValid()) - output.sssBuffer = builder.ReadWriteTexture(targets.sssBuffer); + { + output.sssBuffer = targets.sssBuffer; + builder.UseTexture(output.sssBuffer, AccessFlags.ReadWrite); + } if (targets.diffuseLightingBuffer.IsValid()) - output.diffuseLightingBuffer = builder.ReadWriteTexture(targets.diffuseLightingBuffer); + { + output.diffuseLightingBuffer = targets.diffuseLightingBuffer; + builder.UseTexture(output.diffuseLightingBuffer, AccessFlags.ReadWrite); + } return output; } - virtual internal void ExecuteInternal(RenderGraph renderGraph, HDCamera hdCamera, CullingResults cullingResult, CullingResults cameraCullingResult, in RenderTargets targets, CustomPassVolume owner) + virtual internal void ExecuteInternal(RenderGraph renderGraph, HDCamera hdCamera, ScriptableRenderContext renderContext, CullingResults cullingResult, CullingResults cameraCullingResult, in RenderTargets targets, CustomPassVolume owner) { this.owner = owner; this.currentRenderTarget = targets; this.currentHDCamera = hdCamera; - using (var builder = renderGraph.AddRenderPass(name, out ExecutePassData passData, profilingSampler)) + using (var builder = renderGraph.AddUnsafePass(name, out ExecutePassData passData, profilingSampler)) { passData.customPass = this; passData.cullingResult = cullingResult; passData.cameraCullingResult = cameraCullingResult; passData.hdCamera = hdCamera; passData.shaderVariablesGlobal = HDRenderPipeline.currentPipeline.GetShaderVariablesGlobalCB(); + passData.renderContext = renderContext; this.currentRenderTarget = ReadRenderTargets(builder, targets, hdCamera); builder.SetRenderFunc( - static (ExecutePassData data, RenderGraphContext ctx) => + static (ExecutePassData data, UnsafeGraphContext ctx) => { + var natCmd = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); var customPass = data.customPass; - ctx.cmd.SetGlobalFloat(HDShaderIDs._CustomPassInjectionPoint, (float)customPass.injectionPoint); + natCmd.SetGlobalFloat(HDShaderIDs._CustomPassInjectionPoint, (float)customPass.injectionPoint); if (customPass.currentRenderTarget.colorBufferRG.IsValid() && customPass.injectionPoint == CustomPassInjectionPoint.AfterPostProcess) { - ctx.cmd.SetGlobalTexture(HDShaderIDs._AfterPostProcessColorBuffer, customPass.currentRenderTarget.colorBufferRG); + natCmd.SetGlobalTexture(HDShaderIDs._AfterPostProcessColorBuffer, customPass.currentRenderTarget.colorBufferRG); } if (customPass.currentRenderTarget.motionVectorBufferRG.IsValid() && (customPass.injectionPoint != CustomPassInjectionPoint.BeforeRendering)) - ctx.cmd.SetGlobalTexture(HDShaderIDs._CameraMotionVectorsTexture, customPass.currentRenderTarget.motionVectorBufferRG); + natCmd.SetGlobalTexture(HDShaderIDs._CameraMotionVectorsTexture, customPass.currentRenderTarget.motionVectorBufferRG); if (customPass.currentRenderTarget.renderingLayerMaskRG.IsValid() && customPass.injectionPoint != CustomPassInjectionPoint.BeforeRendering) - ctx.cmd.SetGlobalTexture(HDShaderIDs._RenderingLayerMaskTexture, customPass.currentRenderTarget.renderingLayerMaskRG); + natCmd.SetGlobalTexture(HDShaderIDs._RenderingLayerMaskTexture, customPass.currentRenderTarget.renderingLayerMaskRG); if (customPass.currentRenderTarget.waterLineRG.IsValid() && customPass.injectionPoint >= CustomPassInjectionPoint.BeforePostProcess) - ctx.cmd.SetGlobalBuffer(HDShaderIDs._WaterLineBuffer, customPass.currentRenderTarget.waterLineRG); + natCmd.SetGlobalBuffer(HDShaderIDs._WaterLineBuffer, customPass.currentRenderTarget.waterLineRG); if (customPass.currentRenderTarget.normalBufferRG.IsValid() && customPass.injectionPoint != CustomPassInjectionPoint.AfterPostProcess) - ctx.cmd.SetGlobalTexture(HDShaderIDs._NormalBufferTexture, customPass.currentRenderTarget.normalBufferRG); + natCmd.SetGlobalTexture(HDShaderIDs._NormalBufferTexture, customPass.currentRenderTarget.normalBufferRG); if (customPass.currentRenderTarget.customColorBuffer.IsValueCreated) - ctx.cmd.SetGlobalTexture(HDShaderIDs._CustomColorTexture, customPass.currentRenderTarget.customColorBuffer.Value); + natCmd.SetGlobalTexture(HDShaderIDs._CustomColorTexture, customPass.currentRenderTarget.customColorBuffer.Value); if (customPass.currentRenderTarget.customDepthBuffer.IsValueCreated) - ctx.cmd.SetGlobalTexture(HDShaderIDs._CustomDepthTexture, customPass.currentRenderTarget.customDepthBuffer.Value); + natCmd.SetGlobalTexture(HDShaderIDs._CustomDepthTexture, customPass.currentRenderTarget.customDepthBuffer.Value); // Imported and allocated in Prepass. RTHandle sriHandle = data.hdCamera.GetCurrentFrameRT((int)HDCameraFrameHistoryType.Vrs); @@ -297,24 +330,24 @@ virtual internal void ExecuteInternal(RenderGraph renderGraph, HDCamera hdCamera if (customPass.enableVariableRateShading && sriHandle != null) { // NOTE: VRS must be set before setting the target. Vulkan VRS is part of a sub-pass which is created on setting the target. - CoreUtils.SetShadingRateImage(ctx.cmd, sriHandle); - CoreUtils.SetShadingRateCombiner(ctx.cmd, ShadingRateCombinerStage.Fragment, ShadingRateCombiner.Override); + CoreUtils.SetShadingRateImage(natCmd, sriHandle); + CoreUtils.SetShadingRateCombiner(natCmd, ShadingRateCombinerStage.Fragment, ShadingRateCombiner.Override); applyVrs = true; } if (!customPass.isSetup) { - customPass.Setup(ctx.renderContext, ctx.cmd); + customPass.Setup(data.renderContext, natCmd); customPass.isSetup = true; } - customPass.SetCustomPassTarget(ctx.cmd); + customPass.SetCustomPassTarget(natCmd); var outputColorBuffer = customPass.currentRenderTarget.colorBufferRG; // Create the custom pass context: CustomPassContext customPassCtx = new CustomPassContext( - ctx.renderContext, ctx.cmd, data.hdCamera, + data.renderContext, natCmd, data.hdCamera, data.cullingResult, data.cameraCullingResult, outputColorBuffer, customPass.currentRenderTarget.depthBufferRG, @@ -337,13 +370,13 @@ virtual internal void ExecuteInternal(RenderGraph renderGraph, HDCamera hdCamera { // Set back default variable shading rate states // NOTE: VRS must be set before setting the target. - CoreUtils.SetShadingRateImage(ctx.cmd, RenderTargetIdentifier.Invalid); - CoreUtils.SetShadingRateCombiner(ctx.cmd, ShadingRateCombinerStage.Fragment, ShadingRateCombiner.Keep); + CoreUtils.SetShadingRateImage(natCmd, RenderTargetIdentifier.Invalid); + CoreUtils.SetShadingRateCombiner(natCmd, ShadingRateCombinerStage.Fragment, ShadingRateCombiner.Keep); } // Set back the camera color buffer if we were using a custom buffer as target if (customPass.getConstrainedDepthBuffer() != TargetBuffer.Camera) - CoreUtils.SetRenderTarget(ctx.cmd, outputColorBuffer); + CoreUtils.SetRenderTarget(natCmd, outputColorBuffer); }); } } @@ -414,7 +447,7 @@ protected virtual void AggregateCullingParameters(ref ScriptableCullingParameter /// /// /// - [Obsolete("This Execute signature is obsolete and will be removed in the future. Please use Execute(CustomPassContext) instead")] + [Obsolete("This Execute signature is obsolete and will be removed in the future. Please use Execute(CustomPassContext) instead. #from(2021.1)")] protected virtual void Execute(ScriptableRenderContext renderContext, CommandBuffer cmd, HDCamera hdCamera, CullingResults cullingResult) { } /// @@ -449,7 +482,7 @@ protected virtual void Cleanup() { } /// /// if true we bind the camera depth buffer in addition to the color /// - [Obsolete("Use directly CoreUtils.SetRenderTarget with the render target of your choice.")] + [Obsolete("Use directly CoreUtils.SetRenderTarget with the render target of your choice. #from(2021.1)")] protected void SetCameraRenderTarget(CommandBuffer cmd, bool bindDepth = true, ClearFlag clearFlags = ClearFlag.None) { if (!isExecuting) @@ -470,7 +503,7 @@ protected void SetCameraRenderTarget(CommandBuffer cmd, bool bindDepth = true, C /// /// if true we bind the custom depth buffer in addition to the color /// - [Obsolete("Use directly CoreUtils.SetRenderTarget with the render target of your choice.")] + [Obsolete("Use directly CoreUtils.SetRenderTarget with the render target of your choice. #from(2021.1)")] protected void SetCustomRenderTarget(CommandBuffer cmd, bool bindDepth = true, ClearFlag clearFlags = ClearFlag.None) { if (!isExecuting) @@ -522,7 +555,7 @@ protected void ResolveMSAAColorBuffer(CommandBuffer cmd, HDCamera hdCamera) /// /// outputs the camera color buffer /// outputs the camera depth buffer - [Obsolete("GetCameraBuffers is obsolete and will be removed in the future. All camera buffers are now avaliable directly in the CustomPassContext in parameter of the Execute function")] + [Obsolete("GetCameraBuffers is obsolete and will be removed in the future. All camera buffers are now avaliable directly in the CustomPassContext in parameter of the Execute function. #from(2021.1)")] protected void GetCameraBuffers(out RTHandle colorBuffer, out RTHandle depthBuffer) { if (!isExecuting) @@ -537,7 +570,7 @@ protected void GetCameraBuffers(out RTHandle colorBuffer, out RTHandle depthBuff /// /// outputs the custom color buffer /// outputs the custom depth buffer - [Obsolete("GetCustomBuffers is obsolete and will be removed in the future. All custom buffers are now avaliable directly in the CustomPassContext in parameter of the Execute function")] + [Obsolete("GetCustomBuffers is obsolete and will be removed in the future. All custom buffers are now avaliable directly in the CustomPassContext in parameter of the Execute function. #from(2021.1)")] protected void GetCustomBuffers(out RTHandle colorBuffer, out RTHandle depthBuffer) { if (!isExecuting) @@ -551,7 +584,7 @@ protected void GetCustomBuffers(out RTHandle colorBuffer, out RTHandle depthBuff /// Get the current normal buffer (can be MSAA) /// /// - [Obsolete("GetNormalBuffer is obsolete and will be removed in the future. Normal buffer is now avaliable directly in the CustomPassContext in parameter of the Execute function")] + [Obsolete("GetNormalBuffer is obsolete and will be removed in the future. Normal buffer is now avaliable directly in the CustomPassContext in parameter of the Execute function. #from(2021.1)")] protected RTHandle GetNormalBuffer() { if (!isExecuting) diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/RenderPass/CustomPass/CustomPassUtils.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/RenderPass/CustomPass/CustomPassUtils.cs index 49df296133d..6e235cb047c 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/RenderPass/CustomPass/CustomPassUtils.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/RenderPass/CustomPass/CustomPassUtils.cs @@ -395,7 +395,7 @@ public void Dispose() }; var renderCtx = ctx.renderContext; - CoreUtils.DrawRendererList(ctx.renderContext, ctx.cmd, renderCtx.CreateRendererList(result)); + CoreUtils.DrawRendererList(ctx.cmd, renderCtx.CreateRendererList(result)); } /// diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/RenderPass/CustomPass/CustomPassVolume.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/RenderPass/CustomPass/CustomPassVolume.cs index 802ceba4822..ac0d531b784 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/RenderPass/CustomPass/CustomPassVolume.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/RenderPass/CustomPass/CustomPassVolume.cs @@ -355,7 +355,7 @@ bool IsVisible(HDCamera hdCamera) return true; } - bool Execute(RenderGraph renderGraph, HDCamera hdCamera, CullingResults cullingResult, CullingResults cameraCullingResult, in CustomPass.RenderTargets targets) + bool Execute(RenderGraph renderGraph, HDCamera hdCamera, ScriptableRenderContext renderContext, CullingResults cullingResult, CullingResults cameraCullingResult, in CustomPass.RenderTargets targets) { bool executed = false; @@ -366,7 +366,7 @@ bool Execute(RenderGraph renderGraph, HDCamera hdCamera, CullingResults cullingR { if (pass != null && pass.WillBeExecuted(hdCamera)) { - pass.ExecuteInternal(renderGraph, hdCamera, cullingResult, cameraCullingResult, targets, this); + pass.ExecuteInternal(renderGraph, hdCamera, renderContext, cullingResult, cameraCullingResult, targets, this); executed = true; } } @@ -374,7 +374,7 @@ bool Execute(RenderGraph renderGraph, HDCamera hdCamera, CullingResults cullingR return executed; } - internal static bool ExecuteAllCustomPasses(RenderGraph renderGraph, HDCamera hdCamera, CullingResults cullingResults, CullingResults cameraCullingResults, CustomPassInjectionPoint injectionPoint, in CustomPass.RenderTargets customPassTargets) + internal static bool ExecuteAllCustomPasses(RenderGraph renderGraph, HDCamera hdCamera, ScriptableRenderContext renderContext, CullingResults cullingResults, CullingResults cameraCullingResults, CustomPassInjectionPoint injectionPoint, in CustomPass.RenderTargets customPassTargets) { bool executed = false; @@ -384,7 +384,7 @@ internal static bool ExecuteAllCustomPasses(RenderGraph renderGraph, HDCamera hd if (customPass == null || !customPass.WillBeExecuted(hdCamera)) continue; executed = true; - customPass.ExecuteInternal(renderGraph, hdCamera, cullingResults, cameraCullingResults, customPassTargets, null); + customPass.ExecuteInternal(renderGraph, hdCamera, renderContext, cullingResults, cameraCullingResults, customPassTargets, null); } GetActivePassVolumes(injectionPoint, m_CurrentInjectionPointList); @@ -392,7 +392,7 @@ internal static bool ExecuteAllCustomPasses(RenderGraph renderGraph, HDCamera hd { if (customPass == null) return false; - executed |= customPass.Execute(renderGraph, hdCamera, cullingResults, cameraCullingResults, customPassTargets); + executed |= customPass.Execute(renderGraph, hdCamera, renderContext, cullingResults, cameraCullingResults, customPassTargets); } return executed; @@ -574,7 +574,7 @@ internal static void Cleanup() /// /// The injection point to get the currently active Custom Pass Volume for. /// Returns the Custom Pass Volume instance associated with the injection point. - [Obsolete("In order to support multiple custom pass volume per injection points, please use GetActivePassVolumes.")] + [Obsolete("In order to support multiple custom pass volume per injection points, please use GetActivePassVolumes. #from(2021.1)")] public static CustomPassVolume GetActivePassVolume(CustomPassInjectionPoint injectionPoint) { var volumes = new List(); diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/RenderPass/DLSSPass.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/RenderPass/DLSSPass.cs index 1e8ecc9282b..9c21adc7bbc 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/RenderPass/DLSSPass.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/RenderPass/DLSSPass.cs @@ -1,8 +1,5 @@ -using System; using System.Collections.Generic; -using UnityEngine; using UnityEngine.Experimental.Rendering; -using UnityEngine.Rendering.RenderGraphModule; namespace UnityEngine.Rendering.HighDefinition { @@ -81,7 +78,7 @@ public void Render( #region private members, nvidia specific code #if ENABLE_NVIDIA && ENABLE_NVIDIA_MODULE - private static uint s_ExpectedDeviceVersion = 0x04; + private static uint s_ExpectedDeviceVersion = 0x05; private UpscalerCameras m_CameraStates = new UpscalerCameras(); @@ -103,6 +100,11 @@ private struct DlssViewData public float jitterX; public float jitterY; public bool reset; + public uint presetQuality; + public uint presetBalanced; + public uint presetPerformance; + public uint presetUltraPerformance; + public uint presetDLAA; public bool CanFitInput(in UpscalerResolution inputRect) { return inputRes.width >= inputRect.width && inputRes.height > inputRect.height; @@ -179,6 +181,22 @@ private bool ShouldUseAutomaticSettings() && IsOptimalSettingsValid(m_OptimalSettingsRequest.optimalSettings); } + static NVIDIA.DLSSPreset Uint2Preset(uint preset) + { + if (preset >= (uint)NVIDIA.DLSSPreset.Preset_Default && preset <= (uint)NVIDIA.DLSSPreset.Preset_K) + return (NVIDIA.DLSSPreset)preset; + Debug.LogWarningFormat("Unknown DLSS Preset value {0}, using default value.", preset); + return NVIDIA.DLSSPreset.Preset_Default; + } + static bool PresetChanged(in DlssViewData prev, in DlssViewData curr) + { + return prev.presetQuality != curr.presetQuality || + prev.presetBalanced != curr.presetBalanced || + prev.presetPerformance != curr.presetPerformance || + prev.presetUltraPerformance != curr.presetUltraPerformance || + prev.presetDLAA != curr.presetDLAA; + } + public void UpdateViewState( in DlssViewData viewData, CommandBuffer cmdBuffer) @@ -193,7 +211,9 @@ public void UpdateViewState( (viewData.inputRes != m_BackbufferRes && !m_OptimalSettingsRequest.CanFit(viewData.inputRes)) || viewData.perfQuality != m_Data.perfQuality || m_DlssContext == null || - shouldUseOptimalSettings != m_UsingOptimalSettings) + shouldUseOptimalSettings != m_UsingOptimalSettings || + PresetChanged(viewData, m_Data) + ) { isNew = true; m_BackbufferRes = viewData.inputRes; @@ -208,12 +228,18 @@ public void UpdateViewState( settings.SetFlag(NVIDIA.DLSSFeatureFlags.IsHDR, true); settings.SetFlag(NVIDIA.DLSSFeatureFlags.MVLowRes, true); settings.SetFlag(NVIDIA.DLSSFeatureFlags.DepthInverted, true); - settings.SetFlag(NVIDIA.DLSSFeatureFlags.DoSharpening, true); settings.inputRTWidth = m_BackbufferRes.width; settings.inputRTHeight = m_BackbufferRes.height; settings.outputRTWidth = viewData.outputRes.width; settings.outputRTHeight = viewData.outputRes.height; settings.quality = viewData.perfQuality; + + settings.presetQualityMode = Uint2Preset(viewData.presetQuality); + settings.presetBalancedMode = Uint2Preset(viewData.presetBalanced); + settings.presetPerformanceMode = Uint2Preset(viewData.presetPerformance); + settings.presetUltraPerformanceMode = Uint2Preset(viewData.presetUltraPerformance); + settings.presetDlaaMode = Uint2Preset(viewData.presetDLAA); + m_UsingOptimalSettings = shouldUseOptimalSettings; m_DlssContext = m_Device.CreateFeature(cmdBuffer, settings); } @@ -521,9 +547,12 @@ private void InternalNVIDIARender(in DLSSPass.Parameters parameters, UpscalerRes ? parameters.hdCamera.deepLearningSuperSamplingQuality : parameters.drsSettings.DLSSPerfQualitySetting); - dlssViewData.sharpness = parameters.hdCamera.deepLearningSuperSamplingUseCustomAttributes - ? parameters.hdCamera.deepLearningSuperSamplingSharpening - : parameters.drsSettings.DLSSSharpness; + // presets are per-project, not per camera. + dlssViewData.presetQuality = parameters.drsSettings.DLSSRenderPresetForQuality; + dlssViewData.presetBalanced = parameters.drsSettings.DLSSRenderPresetForBalanced; + dlssViewData.presetPerformance = parameters.drsSettings.DLSSRenderPresetForPerformance; + dlssViewData.presetUltraPerformance = parameters.drsSettings.DLSSRenderPresetForUltraPerformance; + dlssViewData.presetDLAA = parameters.drsSettings.DLSSRenderPresetForDLAA; dlssViewData.inputRes = new UpscalerResolution() { width = (uint)parameters.hdCamera.actualWidth, height = (uint)parameters.hdCamera.actualHeight }; dlssViewData.outputRes = new UpscalerResolution() { width = (uint)DynamicResolutionHandler.instance.finalViewport.x, height = (uint)DynamicResolutionHandler.instance.finalViewport.y }; diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/RenderPass/DrawRenderersCustomPass.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/RenderPass/DrawRenderersCustomPass.cs index 749acf11449..f85b849f29e 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/RenderPass/DrawRenderersCustomPass.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/RenderPass/DrawRenderersCustomPass.cs @@ -259,10 +259,9 @@ protected override void Execute(CustomPassContext ctx) }; Object.DestroyImmediate(overrideShaderMaterial); - var renderCtx = ctx.renderContext; - var rendererList = renderCtx.CreateRendererList(result); + var rendererList = ctx.renderContext.CreateRendererList(result); bool opaque = renderQueueType == RenderQueueType.AllOpaque || renderQueueType == RenderQueueType.OpaqueAlphaTest || renderQueueType == RenderQueueType.OpaqueNoAlphaTest; - HDRenderPipeline.RenderForwardRendererList(ctx.hdCamera.frameSettings, rendererList, opaque, ctx.renderContext, ctx.cmd); + HDRenderPipeline.RenderForwardRendererList(ctx.hdCamera.frameSettings, rendererList, opaque, ctx.cmd); } /// diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/RenderPass/MipGenerator.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/RenderPass/MipGenerator.cs index f0aea90f924..f93fc4910ef 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/RenderPass/MipGenerator.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/RenderPass/MipGenerator.cs @@ -277,20 +277,15 @@ public int RenderColorGaussianPyramid(CommandBuffer cmd, Vector2Int size, Textur else { // Downsample. - cmd.SetComputeTextureParam(m_ColorPyramidCS, m_ColorDownsampleKernel, HDShaderIDs._Source, - destination, srcMipLevel); - cmd.SetComputeTextureParam(m_ColorPyramidCS, m_ColorDownsampleKernel, HDShaderIDs._Destination, - m_TempDownsamplePyramid[rtIndex]); - cmd.DispatchCompute(m_ColorPyramidCS, m_ColorDownsampleKernel, (dstMipWidth + 7) / 8, - (dstMipHeight + 7) / 8, TextureXR.slices); + cmd.SetComputeTextureParam(m_ColorPyramidCS, m_ColorDownsampleKernel, HDShaderIDs._Source, destination, srcMipLevel); + cmd.SetComputeTextureParam(m_ColorPyramidCS, m_ColorDownsampleKernel, HDShaderIDs._Destination, m_TempDownsamplePyramid[rtIndex]); + cmd.DispatchCompute(m_ColorPyramidCS, m_ColorDownsampleKernel, (dstMipWidth + 7) / 8, (dstMipHeight + 7) / 8, TextureXR.slices); // Single pass blur cmd.SetComputeVectorParam(m_ColorPyramidCS, HDShaderIDs._Size, new Vector4(dstMipWidth, dstMipHeight, 0f, 0f)); - cmd.SetComputeTextureParam(m_ColorPyramidCS, m_ColorGaussianKernel, HDShaderIDs._Source, - m_TempDownsamplePyramid[rtIndex]); - cmd.SetComputeTextureParam(m_ColorPyramidCS, m_ColorGaussianKernel, HDShaderIDs._Destination, - destination, srcMipLevel + 1); + cmd.SetComputeTextureParam(m_ColorPyramidCS, m_ColorGaussianKernel, HDShaderIDs._Source, m_TempDownsamplePyramid[rtIndex]); + cmd.SetComputeTextureParam(m_ColorPyramidCS, m_ColorGaussianKernel, HDShaderIDs._Destination, destination, srcMipLevel + 1); cmd.DispatchCompute(m_ColorPyramidCS, m_ColorGaussianKernel, (dstMipWidth + 7) / 8, (dstMipHeight + 7) / 8, TextureXR.slices); } diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/RenderPass/UpscalerUtils.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/RenderPass/UpscalerUtils.cs index cd75d4eb6e1..1ba70c8bb9d 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/RenderPass/UpscalerUtils.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/RenderPass/UpscalerUtils.cs @@ -174,15 +174,16 @@ public struct ViewResourceHandles public TextureHandle depth; public TextureHandle motionVectors; public TextureHandle biasColorMask; - public void WriteResources(RenderGraphBuilder builder) + public void WriteResources(IUnsafeRenderGraphBuilder builder) { - source = builder.WriteTexture(source); - output = builder.WriteTexture(output); - depth = builder.WriteTexture(depth); - motionVectors = builder.WriteTexture(motionVectors); + builder.UseTexture(source, AccessFlags.Write); + builder.UseTexture(output, AccessFlags.Write); + builder.UseTexture(depth, AccessFlags.Write); + builder.UseTexture(motionVectors, AccessFlags.Write); - if (biasColorMask.IsValid()) - biasColorMask = builder.WriteTexture(biasColorMask); + if (biasColorMask.IsValid()) { + builder.UseTexture(biasColorMask, AccessFlags.Write); + } } } @@ -209,7 +210,7 @@ public static ViewResources GetViewResources(in ViewResourceHandles handles) return resources; } - public static UpscalerResources.CameraResourcesHandles CreateCameraResources(HDCamera camera, RenderGraph renderGraph, RenderGraphBuilder builder, in UpscalerResources.ViewResourceHandles resources) + public static UpscalerResources.CameraResourcesHandles CreateCameraResources(HDCamera camera, RenderGraph renderGraph, IUnsafeRenderGraphBuilder builder, in UpscalerResources.ViewResourceHandles resources) { var camResources = new UpscalerResources.CameraResourcesHandles(); camResources.resources = resources; diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Settings/CaptureSettings.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Settings/CaptureSettings.cs index 188bde52522..631e80ba60a 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Settings/CaptureSettings.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Settings/CaptureSettings.cs @@ -6,7 +6,7 @@ internal enum CameraProjection { Perspective, Orthographic }; /// Obsolete [Flags] - [Obsolete] + [Obsolete("#from(2021.1)")] internal enum ObsoleteCaptureSettingsOverrides { //CubeResolution = 1 << 0, @@ -46,7 +46,7 @@ internal enum ObsoleteCaptureSettingsOverrides /// Obsolete [Serializable] - [Obsolete] + [Obsolete("#from(2021.1)")] internal class ObsoleteCaptureSettings { /// Obsolete diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Settings/FrameSettings.Migration.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Settings/FrameSettings.Migration.cs index 698a7dbaf57..1f0e97f507a 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Settings/FrameSettings.Migration.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Settings/FrameSettings.Migration.cs @@ -3,14 +3,14 @@ namespace UnityEngine.Rendering.HighDefinition { - [Obsolete("For data migration")] + [Obsolete("For data migration. #from(2021.1)")] enum ObsoleteLitShaderMode { Forward, Deferred } - [Flags, Obsolete("For data migration")] + [Flags, Obsolete("For data migration. #from(2021.1)")] enum ObsoleteLightLoopSettingsOverrides { FptlForForwardOpaque = 1 << 0, @@ -22,7 +22,7 @@ enum ObsoleteLightLoopSettingsOverrides //Fptl = 1 << 6, //isFptlEnabled set up by system } - [Flags, Obsolete("For data migration")] + [Flags, Obsolete("For data migration. #from(2021.1)")] enum ObsoleteFrameSettingsOverrides { //lighting settings @@ -65,7 +65,7 @@ enum ObsoleteFrameSettingsOverrides VolumeVoxelizationsAsync = 1 << 31, } - [Serializable, Obsolete("For data migration")] + [Serializable, Obsolete("For data migration. #from(2021.1)")] class ObsoleteLightLoopSettings { public ObsoleteLightLoopSettingsOverrides overrides; @@ -83,7 +83,7 @@ class ObsoleteLightLoopSettings // Each camera must have its own per frame settings [Serializable] [System.Diagnostics.DebuggerDisplay("FrameSettings overriding {overrides.ToString(\"X\")}")] - [Obsolete("For data migration")] + [Obsolete("For data migration. #from(2021.1)")] class ObsoleteFrameSettings { public ObsoleteFrameSettingsOverrides overrides; diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Settings/FrameSettings.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Settings/FrameSettings.cs index 90bda813982..fe9d845477e 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Settings/FrameSettings.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Settings/FrameSettings.cs @@ -120,13 +120,13 @@ public enum FrameSettingsField [FrameSettingsField(0, displayedName: "Clear GBuffers", positiveDependencies: new[] { LitShaderMode }, customOrderInGroup: 0, tooltip: "When enabled, HDRP clear GBuffers for Cameras using these Frame Settings. Set Lit Shader Mode to Deferred to access this option.")] ClearGBuffers = 5, /// When enabled, Cameras using these Frame Settings calculate MSAA when they render the Scene. Set Lit Shader Mode to Forward to access this option. - [Obsolete] + [Obsolete("#from(2021.2)")] MSAA = 31, /// Specify the level of MSAA used when rendering the Scene. Set Lit Shader Mode to Forward to access this option. [FrameSettingsField(0, displayedName: "MSAA Within Forward", type: FrameSettingsFieldAttribute.DisplayType.Others, targetType: typeof(MSAAMode), customOrderInGroup: 1, tooltip: "Specifies the MSAA mode for Cameras using these Frame Settings. Set Lit Shader Mode to Forward to access this option. Note that MSAA is disabled when using ray tracing.")] MSAAMode = 4, /// When enabled, Cameras using these Frame Settings use Alpha To Mask. Activate MSAA to access this option. - [Obsolete] + [Obsolete("#from(2022.1)")] [FrameSettingsField(0, displayedName: "Alpha To Mask", tooltip: "When enabled, Cameras using these Frame Settings use Alpha To Mask. Activate MSAA to access this option.")] AlphaToMask = 56, /// When enabled, Cameras using these Frame Settings render opaque GameObjects. @@ -150,7 +150,7 @@ public enum FrameSettingsField Refraction = 13, //NOTE: Obsoletes must follow the proper enums, otherwise the compiler occludes them. /// When enabled, HDRP processes a refraction render pass for Cameras using these Frame Settings. This add a resolve of ColorBuffer after the drawing of opaque materials to be use for Refraction effect during transparent pass. - [Obsolete] + [Obsolete("#from(2021.1)")] RoughRefraction = 13, /// When enabled, Cameras using these Frame Settings render water surfaces. [FrameSettingsField(0, autoName: Water, positiveDependencies: new[] { TransparentObjects, Refraction }, customOrderInGroup: 4, tooltip: "When enabled, Cameras using these Frame Settings render water surfaces.")] diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Settings/RenderPipelineSettings.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Settings/RenderPipelineSettings.cs index 24fd5afdf8e..d502899e358 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Settings/RenderPipelineSettings.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Settings/RenderPipelineSettings.cs @@ -299,7 +299,7 @@ public ReflectionProbeResolutionScalableSetting(CubeReflectionResolution[] value public LayerMask computeThicknessLayerMask; /// Names for rendering layers. - [Obsolete("This property is obsolete. Use RenderingLayerMask API and Tags & Layers project settings instead. #from(23.3)", false)] + [Obsolete("This property is obsolete. Use RenderingLayerMask API and Tags & Layers project settings instead. #from(2023.3)")] public string[] renderingLayerNames { get { return (string[])HDRenderPipelineGlobalSettings.instance.renderingLayerNames.Clone(); } @@ -364,7 +364,7 @@ public string[] renderingLayerNames /// Default Number of samples when using MSAA. public MSAASamples msaaSampleCount; /// Support MSAA. - [Obsolete] + [Obsolete("#from(2021.2)")] public bool supportMSAA => msaaSampleCount != MSAASamples.None; // Returns true if the output of the rendering passes support an alpha channel @@ -383,7 +383,7 @@ internal bool SupportsAlpha() public bool supportDataDrivenLensFlare; /// Support runtime debug display. - [Obsolete("Use HDRenderPipelineGlobalSettings.instance.stripDebugVariants) instead. #from(23.1)", false)] + [Obsolete("Use HDRenderPipelineGlobalSettings.instance.stripDebugVariants) instead. #from(2023.1)")] public bool supportRuntimeDebugDisplay { get => !HDRenderPipelineGlobalSettings.instance.m_StripDebugVariants; @@ -392,11 +392,11 @@ public bool supportRuntimeDebugDisplay internal bool supportProbeVolume => (lightProbeSystem == LightProbeSystem.AdaptiveProbeVolumes); [FormerlySerializedAs("supportProbeVolume")] - [Obsolete("Use lightProbeSystem instead", false)] + [Obsolete("Use lightProbeSystem instead #from(2023.2)")] internal bool oldSupportProbeVolume; /// Support LOD Dithering Cross-Fade/// - [Obsolete("This setting has no effect, use LOD Quality Setting instead", false)] + [Obsolete("This setting has no effect, use LOD Quality Setting instead #from(2023.2)")] public bool supportDitheringCrossFade; /// Support runtime AOV API. @@ -473,61 +473,61 @@ public bool supportRuntimeDebugDisplay [FormerlySerializedAs("macroBatcherSettings")] public GlobalGPUResidentDrawerSettings gpuResidentDrawerSettings; #pragma warning disable 618 // Type or member is obsolete - [Obsolete("For data migration")] + [Obsolete("For data migration. #from(2021.1)")] internal bool m_ObsoleteincreaseSssSampleCount; [SerializeField] - [FormerlySerializedAs("lightLayerName0"), Obsolete("Moved to HDGlobal Settings")] + [FormerlySerializedAs("lightLayerName0"), Obsolete("Moved to HDGlobal Settings. #from(2021.2)")] internal string m_ObsoleteLightLayerName0; [SerializeField] - [FormerlySerializedAs("lightLayerName1"), Obsolete("Moved to HDGlobal Settings")] + [FormerlySerializedAs("lightLayerName1"), Obsolete("Moved to HDGlobal Settings. #from(2021.2)")] internal string m_ObsoleteLightLayerName1; [SerializeField] - [FormerlySerializedAs("lightLayerName2"), Obsolete("Moved to HDGlobal Settings")] + [FormerlySerializedAs("lightLayerName2"), Obsolete("Moved to HDGlobal Settings. #from(2021.2)")] internal string m_ObsoleteLightLayerName2; [SerializeField] - [FormerlySerializedAs("lightLayerName3"), Obsolete("Moved to HDGlobal Settings")] + [FormerlySerializedAs("lightLayerName3"), Obsolete("Moved to HDGlobal Settings. #from(2021.2)")] internal string m_ObsoleteLightLayerName3; [SerializeField] - [FormerlySerializedAs("lightLayerName4"), Obsolete("Moved to HDGlobal Settings")] + [FormerlySerializedAs("lightLayerName4"), Obsolete("Moved to HDGlobal Settings. #from(2021.2)")] internal string m_ObsoleteLightLayerName4; [SerializeField] - [FormerlySerializedAs("lightLayerName5"), Obsolete("Moved to HDGlobal Settings")] + [FormerlySerializedAs("lightLayerName5"), Obsolete("Moved to HDGlobal Settings. #from(2021.2)")] internal string m_ObsoleteLightLayerName5; [SerializeField] - [FormerlySerializedAs("lightLayerName6"), Obsolete("Moved to HDGlobal Settings")] + [FormerlySerializedAs("lightLayerName6"), Obsolete("Moved to HDGlobal Settings. #from(2021.2)")] internal string m_ObsoleteLightLayerName6; [SerializeField] - [FormerlySerializedAs("lightLayerName7"), Obsolete("Moved to HDGlobal Settings")] + [FormerlySerializedAs("lightLayerName7"), Obsolete("Moved to HDGlobal Settings. #from(2021.2)")] internal string m_ObsoleteLightLayerName7; [SerializeField] - [FormerlySerializedAs("decalLayerName0"), Obsolete("Moved to HDGlobal Settings")] + [FormerlySerializedAs("decalLayerName0"), Obsolete("Moved to HDGlobal Settings. #from(2021.2)")] internal string m_ObsoleteDecalLayerName0; [SerializeField] - [FormerlySerializedAs("decalLayerName1"), Obsolete("Moved to HDGlobal Settings")] + [FormerlySerializedAs("decalLayerName1"), Obsolete("Moved to HDGlobal Settings. #from(2021.2)")] internal string m_ObsoleteDecalLayerName1; [SerializeField] - [FormerlySerializedAs("decalLayerName2"), Obsolete("Moved to HDGlobal Settings")] + [FormerlySerializedAs("decalLayerName2"), Obsolete("Moved to HDGlobal Settings. #from(2021.2)")] internal string m_ObsoleteDecalLayerName2; [SerializeField] - [FormerlySerializedAs("decalLayerName3"), Obsolete("Moved to HDGlobal Settings")] + [FormerlySerializedAs("decalLayerName3"), Obsolete("Moved to HDGlobal Settings. #from(2021.2)")] internal string m_ObsoleteDecalLayerName3; [SerializeField] - [FormerlySerializedAs("decalLayerName4"), Obsolete("Moved to HDGlobal Settings")] + [FormerlySerializedAs("decalLayerName4"), Obsolete("Moved to HDGlobal Settings. #from(2021.2)")] internal string m_ObsoleteDecalLayerName4; [SerializeField] - [FormerlySerializedAs("decalLayerName5"), Obsolete("Moved to HDGlobal Settings")] + [FormerlySerializedAs("decalLayerName5"), Obsolete("Moved to HDGlobal Settings. #from(2021.2)")] internal string m_ObsoleteDecalLayerName5; [SerializeField] - [FormerlySerializedAs("decalLayerName6"), Obsolete("Moved to HDGlobal Settings")] + [FormerlySerializedAs("decalLayerName6"), Obsolete("Moved to HDGlobal Settings. #from(2021.2)")] internal string m_ObsoleteDecalLayerName6; [SerializeField] - [FormerlySerializedAs("decalLayerName7"), Obsolete("Moved to HDGlobal Settings")] + [FormerlySerializedAs("decalLayerName7"), Obsolete("Moved to HDGlobal Settings. #from(2021.2)")] internal string m_ObsoleteDecalLayerName7; [SerializeField] - [FormerlySerializedAs("supportRuntimeDebugDisplay"), Obsolete("Moved to HDGlobal Settings")] + [FormerlySerializedAs("supportRuntimeDebugDisplay"), Obsolete("Moved to HDGlobal Settings. #from(2022.1)")] internal bool m_ObsoleteSupportRuntimeDebugDisplay; #pragma warning restore 618 } diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Utility/BlueNoise.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Utility/BlueNoise.cs index e1bfe04e673..618c7a83e11 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Utility/BlueNoise.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Utility/BlueNoise.cs @@ -1,5 +1,6 @@ using UnityEngine.Assertions; using UnityEngine.Experimental.Rendering; +using UnityEngine.Rendering.RenderGraphModule; namespace UnityEngine.Rendering.HighDefinition { @@ -53,26 +54,26 @@ internal BlueNoise(HDRenderPipeline renderPipeline) m_DitheredTextureSet1SPP = new DitheredTextureSet { - owenScrambled256Tex = textures.owenScrambled256Tex, - scramblingTile = textures.scramblingTile1SPP, - rankingTile = textures.rankingTile1SPP, - scramblingTex = textures.scramblingTex - }; + owenScrambled256Tex = RTHandles.Alloc(textures.owenScrambled256Tex), + scramblingTile = RTHandles.Alloc(textures.scramblingTile1SPP), + rankingTile = RTHandles.Alloc(textures.rankingTile1SPP), + scramblingTex = RTHandles.Alloc(textures.scramblingTex) + }; m_DitheredTextureSet8SPP = new DitheredTextureSet { - owenScrambled256Tex = textures.owenScrambled256Tex, - scramblingTile = textures.scramblingTile8SPP, - rankingTile = textures.rankingTile8SPP, - scramblingTex = textures.scramblingTex + owenScrambled256Tex = RTHandles.Alloc(textures.owenScrambled256Tex), + scramblingTile = RTHandles.Alloc(textures.scramblingTile8SPP), + rankingTile = RTHandles.Alloc(textures.rankingTile8SPP), + scramblingTex = RTHandles.Alloc(textures.scramblingTex) }; m_DitheredTextureSet256SPP = new DitheredTextureSet { - owenScrambled256Tex = textures.owenScrambled256Tex, - scramblingTile = textures.scramblingTile256SPP, - rankingTile = textures.rankingTile256SPP, - scramblingTex = textures.scramblingTex + owenScrambled256Tex = RTHandles.Alloc(textures.owenScrambled256Tex), + scramblingTile = RTHandles.Alloc(textures.scramblingTile256SPP), + rankingTile = RTHandles.Alloc(textures.rankingTile256SPP), + scramblingTex = RTHandles.Alloc(textures.scramblingTex) }; } @@ -139,10 +140,20 @@ static void InitTextures(int size, TextureFormat format, Texture2D[] sourceTextu // Structure that holds all the dithered sampling texture that shall be binded at dispatch time. internal struct DitheredTextureSet { - public Texture2D owenScrambled256Tex; - public Texture2D scramblingTile; - public Texture2D rankingTile; - public Texture2D scramblingTex; + public RTHandle owenScrambled256Tex; + public RTHandle scramblingTile; + public RTHandle rankingTile; + public RTHandle scramblingTex; + } + + // Structure that holds the Render Graph handles to the dithered sampling texture that have been loaded + // at a given Render Graph execution using ImportResources() + internal struct DitheredTextureHandleSet + { + public TextureHandle owenScrambled256Tex; + public TextureHandle scramblingTile; + public TextureHandle rankingTile; + public TextureHandle scramblingTex; } internal DitheredTextureSet DitheredTextureSet1SPP() => m_DitheredTextureSet1SPP; @@ -153,10 +164,31 @@ internal struct DitheredTextureSet internal static void BindDitheredTextureSet(CommandBuffer cmd, DitheredTextureSet ditheredTextureSet) { - cmd.SetGlobalTexture(HDShaderIDs._OwenScrambledTexture,ditheredTextureSet.owenScrambled256Tex); - cmd.SetGlobalTexture(HDShaderIDs._ScramblingTileXSPP, ditheredTextureSet.scramblingTile); - cmd.SetGlobalTexture(HDShaderIDs._RankingTileXSPP, ditheredTextureSet.rankingTile); - cmd.SetGlobalTexture(HDShaderIDs._ScramblingTexture, ditheredTextureSet.scramblingTex); + cmd.SetGlobalTexture(HDShaderIDs._OwenScrambledTexture, ditheredTextureSet.owenScrambled256Tex); + cmd.SetGlobalTexture(HDShaderIDs._ScramblingTileXSPP, ditheredTextureSet.scramblingTile); + cmd.SetGlobalTexture(HDShaderIDs._RankingTileXSPP, ditheredTextureSet.rankingTile); + cmd.SetGlobalTexture(HDShaderIDs._ScramblingTexture, ditheredTextureSet.scramblingTex); + } + + internal static DitheredTextureHandleSet ImportSetToRenderGraph(RenderGraph renderGraph, DitheredTextureSet ditheredTextureSet) + { + var handles = new DitheredTextureHandleSet(); + + handles.owenScrambled256Tex = renderGraph.ImportTexture(ditheredTextureSet.owenScrambled256Tex); + handles.scramblingTile = renderGraph.ImportTexture(ditheredTextureSet.scramblingTile); + handles.rankingTile = renderGraph.ImportTexture(ditheredTextureSet.rankingTile); + handles.scramblingTex = renderGraph.ImportTexture(ditheredTextureSet.scramblingTex); + + return handles; + } + + // ComputeCommandBuffer API is more restrictive than UnsafeCommandBuffer and requires RG texture handles to check if Global state is affected + internal static void BindDitheredTextureSet(ComputeCommandBuffer cmd, DitheredTextureHandleSet ditheredTextureSet) + { + cmd.SetGlobalTexture(HDShaderIDs._OwenScrambledTexture, ditheredTextureSet.owenScrambled256Tex); + cmd.SetGlobalTexture(HDShaderIDs._ScramblingTileXSPP, ditheredTextureSet.scramblingTile); + cmd.SetGlobalTexture(HDShaderIDs._RankingTileXSPP, ditheredTextureSet.rankingTile); + cmd.SetGlobalTexture(HDShaderIDs._ScramblingTexture, ditheredTextureSet.scramblingTex); } } } diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Utility/HDUtils.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Utility/HDUtils.cs index c2f262a1840..9cc312463ba 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Utility/HDUtils.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Utility/HDUtils.cs @@ -23,11 +23,11 @@ public class HDUtils /// Returns the render configuration for baked static lighting, this value can be used in a RendererListDesc call to render Lit objects. /// - [Obsolete("Use GetRendererConfiguration() instead. #from(23.2).")] + [Obsolete("Use GetRendererConfiguration() instead. #from(2023.2).")] public static PerObjectData GetBakedLightingRenderConfig() => PerObjectData.LightProbe | PerObjectData.Lightmaps | PerObjectData.LightProbeProxyVolume; /// Returns the render configuration for baked static lighting with shadow masks, this value can be used in a RendererListDesc call to render Lit objects when shadow masks are enabled. /// - [Obsolete("Use GetRendererConfiguration() instead. #from(23.2).")] + [Obsolete("Use GetRendererConfiguration() instead. #from(2023.2).")] public static PerObjectData GetBakedLightingWithShadowMaskRenderConfig() => GetBakedLightingRenderConfig() | PerObjectData.OcclusionProbe | PerObjectData.OcclusionProbeProxyVolume | PerObjectData.ShadowMask; /// @@ -1078,7 +1078,7 @@ public static Color NormalizeColor(Color color) /// Current Scriptable Render Context. /// Command Buffer used for rendering. /// Renderer List to render. - [Obsolete("Please use CoreUtils.DrawRendererList instead.")] + [Obsolete("Please use CoreUtils.DrawRendererList instead. #from(2021.1)")] public static void DrawRendererList(ScriptableRenderContext renderContext, CommandBuffer cmd, UnityEngine.Rendering.RendererList rendererList) { CoreUtils.DrawRendererList(renderContext, cmd, rendererList); diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/WorldLightManager.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/WorldLightManager.cs index 33934362745..aeb78d02ac9 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/WorldLightManager.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/WorldLightManager.cs @@ -380,7 +380,7 @@ public static void CollectWorldLights(in HDCamera hdCamera, in WorldLightsSettin else { // let's compute the oobb of the light influence volume first - Vector3 oobbDimensions = new Vector3(hdLight.shapeWidth + 2 * lightRange, hdLight.shapeHeight + 2 * lightRange, lightRange); // One-sided + Vector3 oobbDimensions = new Vector3(hdLight.legacyLight.areaSize.x + 2 * lightRange, hdLight.legacyLight.areaSize.y + 2 * lightRange, lightRange); // One-sided Vector3 extents = 0.5f * oobbDimensions; Vector3 oobbCenter = lightPositionRWS; @@ -566,6 +566,8 @@ public static void BuildWorldLightDatas(CommandBuffer cmd, in HDCamera hdCamera, localToWorldMatrix.SetColumn(0, lightComponent.transform.right); visibleLight.localToWorldMatrix = localToWorldMatrix; visibleLight.spotAngle = lightComponent.spotAngle; + visibleLight.innerSpotAngle = lightComponent.innerSpotAngle; + visibleLight.areaSize = lightComponent.areaSize; int shadowIndex = additionalLightData.shadowIndex; diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Sky/HDRISky/HDRISky.Migration.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/Sky/HDRISky/HDRISky.Migration.cs index 164d938d707..4bc26d7a88b 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Sky/HDRISky/HDRISky.Migration.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Sky/HDRISky/HDRISky.Migration.cs @@ -61,15 +61,15 @@ void Awake() Version IVersionable.version { get => m_SkyVersion; set => m_SkyVersion = value; } /// Obsolete field. Use distortionMode - [SerializeField, Obsolete("For Data Migration")] + [SerializeField, Obsolete("For Data Migration. #from(2022.1)")] public BoolParameter enableDistortion = new BoolParameter(false); /// Obsolete field. Use distortionMode - [SerializeField, Obsolete("For Data Migration")] + [SerializeField, Obsolete("For Data Migration. #from(2022.1)")] public BoolParameter procedural = new BoolParameter(true); /// Obsolete field. Use scrollOrientation - [SerializeField, Obsolete("For Data Migration")] + [SerializeField, Obsolete("For Data Migration. #from(2022.1)")] public ClampedFloatParameter scrollDirection = new ClampedFloatParameter(0.0f, 0.0f, 360.0f); - [SerializeField, FormerlySerializedAs("scrollSpeed"), Obsolete("For Data Migration")] + [SerializeField, FormerlySerializedAs("scrollSpeed"), Obsolete("For Data Migration. #from(2022.1)")] MinFloatParameter m_ObsoleteScrollSpeed = new MinFloatParameter(1.0f, 0.0f); } } diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Sky/PhysicallyBasedSky/PhysicallyBasedSky.Migration.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/Sky/PhysicallyBasedSky/PhysicallyBasedSky.Migration.cs index 656b2df1139..11e730c414a 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Sky/PhysicallyBasedSky/PhysicallyBasedSky.Migration.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Sky/PhysicallyBasedSky/PhysicallyBasedSky.Migration.cs @@ -80,15 +80,15 @@ void Awake() Version IVersionable.version { get => m_SkyVersion; set => m_SkyVersion = value; } /// Obsolete field. Simplifies the interface by using parameters suitable to simulate Earth. - [SerializeField, FormerlySerializedAs("earthPreset"), Obsolete("For Data Migration")] + [SerializeField, FormerlySerializedAs("earthPreset"), Obsolete("For Data Migration. #from(2021.1)")] BoolParameter m_ObsoleteEarthPreset = new BoolParameter(true); /// Radius of the planet (distance from the center of the planet to the sea level). Units: meters. - [SerializeField, Obsolete("For Data Migration")] + [SerializeField, Obsolete("For Data Migration. #from(2023.3)")] MinFloatParameter planetaryRadius = new MinFloatParameter(k_DefaultEarthRadius, 0); /// Position of the center of the planet in the world space. Units: meters. Does not affect the precomputation. - [SerializeField, Obsolete("For Data Migration")] + [SerializeField, Obsolete("For Data Migration. #from(2023.3)")] Vector3Parameter planetCenterPosition = new Vector3Parameter(new Vector3(0, -k_DefaultEarthRadius, 0)); } diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Sky/SkyManager.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/Sky/SkyManager.cs index 0ca9f691e11..db0efef880f 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Sky/SkyManager.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Sky/SkyManager.cs @@ -371,7 +371,7 @@ void SetGlobalSkyData(RenderGraph renderGraph, SkyUpdateContext skyContext, Buil { if (IsCachedContextValid(skyContext) && skyContext.skyRenderer != null) { - using (var builder = renderGraph.AddRenderPass("SetGlobalSkyData", out var passData)) + using (var builder = renderGraph.AddUnsafePass("SetGlobalSkyData", out var passData)) { builder.AllowPassCulling(false); @@ -382,10 +382,10 @@ void SetGlobalSkyData(RenderGraph renderGraph, SkyUpdateContext skyContext, Buil passData.skyRenderer = skyContext.skyRenderer; builder.SetRenderFunc( - (SetGlobalSkyDataPassData data, RenderGraphContext ctx) => + (SetGlobalSkyDataPassData data, UnsafeGraphContext ctx) => { - data.builtinParameters.commandBuffer = ctx.cmd; - data.skyRenderer.SetGlobalSkyData(ctx.cmd, data.builtinParameters); + data.builtinParameters.commandBuffer = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); + data.skyRenderer.SetGlobalSkyData(data.builtinParameters.commandBuffer, data.builtinParameters); // TODO: set volumetric clouds shadow texture ? }); } @@ -778,8 +778,10 @@ class RenderSkyToCubemapPassData void RenderSkyToCubemap(RenderGraph renderGraph, SkyUpdateContext skyContext, HDCamera hdCamera, TextureHandle cubemap, Matrix4x4[] pixelCoordToViewDir, bool renderBackgroundClouds, HDProfileId profileId) { - using (var builder = renderGraph.AddRenderPass("RenderSkyToCubemap", out var passData, ProfilingSampler.Get(profileId))) + using (var builder = renderGraph.AddUnsafePass("RenderSkyToCubemap", out var passData, ProfilingSampler.Get(profileId))) { + builder.AllowPassCulling(false); + UpdateBuiltinParameters(ref passData.builtinParameters, skyContext, hdCamera, m_CurrentSunLight, m_CurrentDebugDisplaySettings); ref var cachedContext = ref m_CachedSkyContexts[skyContext.cachedSkyRenderingContextId]; @@ -790,12 +792,13 @@ void RenderSkyToCubemap(RenderGraph renderGraph, SkyUpdateContext skyContext, HD passData.cameraViewMatrices = m_CameraRelativeViewMatrices; passData.facePixelCoordToViewDirMatrices = pixelCoordToViewDir; passData.includeSunInBaking = skyContext.skySettings.includeSunInBaking.value; - passData.output = builder.WriteTexture(cubemap); + passData.output = cubemap; + builder.UseTexture(passData.output, AccessFlags.Write); builder.SetRenderFunc( - (RenderSkyToCubemapPassData data, RenderGraphContext ctx) => + (RenderSkyToCubemapPassData data, UnsafeGraphContext ctx) => { - data.builtinParameters.commandBuffer = ctx.cmd; + data.builtinParameters.commandBuffer = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); for (int i = 0; i < 6; ++i) { @@ -805,7 +808,8 @@ void RenderSkyToCubemap(RenderGraph renderGraph, SkyUpdateContext skyContext, HD data.builtinParameters.depthBuffer = null; data.builtinParameters.cubemapFace = (CubemapFace)i; - CoreUtils.SetRenderTarget(ctx.cmd, data.output, ClearFlag.None, 0, (CubemapFace)i); + CoreUtils.SetRenderTarget(data.builtinParameters.commandBuffer, data.output, ClearFlag.None, 0, (CubemapFace)i); + data.skyRenderer.RenderSky(data.builtinParameters, true, data.includeSunInBaking); if (data.cloudRenderer != null) data.cloudRenderer.RenderClouds(data.builtinParameters, true); @@ -839,15 +843,18 @@ class UpdateAmbientProbePassData internal void UpdateAmbientProbe(RenderGraph renderGraph, TextureHandle skyCubemap, bool outputForClouds, GraphicsBuffer ambientProbeResult, GraphicsBuffer diffuseAmbientProbeResult, GraphicsBuffer volumetricAmbientProbeResult, Vector4 fogParameters, Action callback) { - using (var builder = renderGraph.AddRenderPass("UpdateAmbientProbe", out var passData, ProfilingSampler.Get(HDProfileId.UpdateSkyAmbientProbe))) + using (var builder = renderGraph.AddUnsafePass("UpdateAmbientProbe", out var passData, ProfilingSampler.Get(HDProfileId.UpdateSkyAmbientProbe))) { + builder.AllowPassCulling(false); + passData.computeAmbientProbeCS = m_ComputeAmbientProbeCS; if (outputForClouds) passData.computeAmbientProbeKernel = m_ComputeAmbientProbeCloudsKernel; else passData.computeAmbientProbeKernel = volumetricAmbientProbeResult != null ? m_ComputeAmbientProbeVolumetricKernel : m_ComputeAmbientProbeKernel; - passData.skyCubemap = builder.ReadTexture(skyCubemap); + passData.skyCubemap = skyCubemap; + builder.UseTexture(passData.skyCubemap, AccessFlags.Read); passData.ambientProbeResult = ambientProbeResult; passData.diffuseAmbientProbeResult = diffuseAmbientProbeResult; passData.scratchBuffer = builder.CreateTransientBuffer(new BufferDesc(27, sizeof(uint))); // L2 = 9 channel per component @@ -856,7 +863,7 @@ internal void UpdateAmbientProbe(RenderGraph renderGraph, TextureHandle skyCubem passData.callback = callback; builder.SetRenderFunc( - (UpdateAmbientProbePassData data, RenderGraphContext ctx) => + (UpdateAmbientProbePassData data, UnsafeGraphContext ctx) => { if (data.ambientProbeResult != null) ctx.cmd.SetComputeBufferParam(data.computeAmbientProbeCS, data.computeAmbientProbeKernel, s_AmbientProbeOutputBufferParam, data.ambientProbeResult); @@ -873,6 +880,7 @@ internal void UpdateAmbientProbe(RenderGraph renderGraph, TextureHandle skyCubem Hammersley.BindConstants(ctx.cmd, data.computeAmbientProbeCS); ctx.cmd.DispatchCompute(data.computeAmbientProbeCS, data.computeAmbientProbeKernel, 1, 1, 1); + if (data.ambientProbeResult != null) ctx.cmd.RequestAsyncReadback(data.ambientProbeResult, data.callback); }); @@ -910,25 +918,30 @@ class SkyEnvironmentConvolutionPassData void RenderCubemapGGXConvolution(RenderGraph renderGraph, TextureHandle input, CubemapArray output) { - using (var builder = renderGraph.AddRenderPass("UpdateSkyEnvironmentConvolution", out var passData, ProfilingSampler.Get(HDProfileId.UpdateSkyEnvironmentConvolution))) + using (var builder = renderGraph.AddUnsafePass("UpdateSkyEnvironmentConvolution", out var passData, ProfilingSampler.Get(HDProfileId.UpdateSkyEnvironmentConvolution))) { + builder.AllowPassCulling(false); + passData.bsdfs = m_IBLFilterArray; - passData.input = builder.ReadTexture(input); + passData.input = input; + builder.UseTexture(passData.input, AccessFlags.Read); passData.output = output; passData.intermediateTexture = builder.CreateTransientTexture(new TextureDesc(m_Resolution, m_Resolution) { format = GraphicsFormat.R16G16B16A16_SFloat, dimension = TextureDimension.Cube, useMipMap = true, autoGenerateMips = false, filterMode = FilterMode.Trilinear, name = "SkyboxBSDFIntermediate" }); builder.SetRenderFunc( - (SkyEnvironmentConvolutionPassData data, RenderGraphContext ctx) => + (SkyEnvironmentConvolutionPassData data, UnsafeGraphContext ctx) => { + var natCmd = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); + for (int bsdfIdx = 0; bsdfIdx < data.bsdfs.Length; ++bsdfIdx) { // First of all filter this cubemap using the target filter - data.bsdfs[bsdfIdx].FilterCubemap(ctx.cmd, data.input, data.intermediateTexture); + data.bsdfs[bsdfIdx].FilterCubemap(natCmd, data.input, data.intermediateTexture); // Then copy it to the cubemap array slice for (int i = 0; i < 6; ++i) { - ctx.cmd.CopyTexture(data.intermediateTexture, i, data.output, 6 * bsdfIdx + i); + natCmd.CopyTexture(data.intermediateTexture, i, data.output, 6 * bsdfIdx + i); } } }); @@ -1236,41 +1249,49 @@ public void UpdateEnvironment(RenderGraph renderGraph, HDCamera hdCamera, Light m_CurrentDebugDisplaySettings = debugSettings; m_CurrentSunLight = sunLight; - SkyAmbientMode ambientMode = hdCamera.volumeStack.GetComponent().skyAmbientMode.value; + if (debugSettings.IsMatcapViewEnabled(hdCamera)) + { + HDRenderPipeline.SetGlobalTexture(renderGraph, HDShaderIDs._SkyTexture, m_BlackCubemapArray); + HDRenderPipeline.SetGlobalBuffer(renderGraph, HDShaderIDs._AmbientProbeData, m_BlackAmbientProbeBuffer); + } + else + { + SkyAmbientMode ambientMode = hdCamera.volumeStack.GetComponent().skyAmbientMode.value; - UpdateEnvironment(renderGraph, hdCamera, hdCamera.lightingSky, sunLight, m_UpdateRequired, ambientMode == SkyAmbientMode.Dynamic, false, ambientMode); + UpdateEnvironment(renderGraph, hdCamera, hdCamera.lightingSky, sunLight, m_UpdateRequired, ambientMode == SkyAmbientMode.Dynamic, false, ambientMode); - // Preview camera will have a different sun, therefore the hash for the static lighting sky will change and force a recomputation - // because we only maintain one static sky. Since we don't care that the static lighting may be a bit different in the preview we never recompute - // and we use the one from the main camera. - bool forceStaticUpdate = false; - m_ActiveStaticSky = m_StaticLightingSkies.GetValueOrDefault(SceneManager.GetActiveScene().GetHashCode(), null); + // Preview camera will have a different sun, therefore the hash for the static lighting sky will change and force a recomputation + // because we only maintain one static sky. Since we don't care that the static lighting may be a bit different in the preview we never recompute + // and we use the one from the main camera. + bool forceStaticUpdate = false; + m_ActiveStaticSky = m_StaticLightingSkies.GetValueOrDefault(SceneManager.GetActiveScene().GetHashCode(), null); #if UNITY_EDITOR - // In the editor, we might need the static sky ready for baking lightmaps/lightprobes regardless of the current ambient mode so we force it to update in this case if it's not been computed yet.. - // We always force an update of the static sky when we're in scene view mode. Previous behaviour was to prevent forced updates if the hash of the static sky was non-null, but this was preventing - // the lightmapper from updating in response to changes in environment. See GFXGI-237 for a better description of this issue. + // In the editor, we might need the static sky ready for baking lightmaps/lightprobes regardless of the current ambient mode so we force it to update in this case if it's not been computed yet.. + // We always force an update of the static sky when we're in scene view mode. Previous behaviour was to prevent forced updates if the hash of the static sky was non-null, but this was preventing + // the lightmapper from updating in response to changes in environment. See GFXGI-237 for a better description of this issue. - forceStaticUpdate = hdCamera.camera.cameraType == CameraType.SceneView; + forceStaticUpdate = hdCamera.camera.cameraType == CameraType.SceneView; #endif - if ((ambientMode == SkyAmbientMode.Static || forceStaticUpdate) && hdCamera.camera.cameraType != CameraType.Preview) - { - if (m_ActiveStaticSky != null) + if ((ambientMode == SkyAmbientMode.Static || forceStaticUpdate) && hdCamera.camera.cameraType != CameraType.Preview) { - m_StaticLightingSky.skySettings = m_ActiveStaticSky.skySettings; - m_StaticLightingSky.cloudSettings = m_ActiveStaticSky.cloudSettings; - m_StaticLightingSky.volumetricClouds = m_ActiveStaticSky.volumetricClouds; + if (m_ActiveStaticSky != null) + { + m_StaticLightingSky.skySettings = m_ActiveStaticSky.skySettings; + m_StaticLightingSky.cloudSettings = m_ActiveStaticSky.cloudSettings; + m_StaticLightingSky.volumetricClouds = m_ActiveStaticSky.volumetricClouds; + } + UpdateEnvironment(renderGraph, hdCamera, m_StaticLightingSky, sunLight, m_StaticSkyUpdateRequired || m_UpdateRequired, true, true, SkyAmbientMode.Static); + m_StaticSkyUpdateRequired = false; } - UpdateEnvironment(renderGraph, hdCamera, m_StaticLightingSky, sunLight, m_StaticSkyUpdateRequired || m_UpdateRequired, true, true, SkyAmbientMode.Static); - m_StaticSkyUpdateRequired = false; - } - m_UpdateRequired = false; + m_UpdateRequired = false; - SetGlobalSkyData(renderGraph, hdCamera.lightingSky, m_BuiltinParameters); + SetGlobalSkyData(renderGraph, hdCamera.lightingSky, m_BuiltinParameters); - // Keep global setter for now. We should probably remove it and set it explicitly where needed like any other resource. As is it breaks resource lifetime contract with render graph. - HDRenderPipeline.SetGlobalTexture(renderGraph, HDShaderIDs._SkyTexture, GetReflectionTexture(hdCamera.lightingSky)); - HDRenderPipeline.SetGlobalBuffer(renderGraph, HDShaderIDs._AmbientProbeData, GetDiffuseAmbientProbeBuffer(hdCamera)); + // Keep global setter for now. We should probably remove it and set it explicitly where needed like any other resource. As is it breaks resource lifetime contract with render graph. + HDRenderPipeline.SetGlobalTexture(renderGraph, HDShaderIDs._SkyTexture, GetReflectionTexture(hdCamera.lightingSky)); + HDRenderPipeline.SetGlobalBuffer(renderGraph, HDShaderIDs._AmbientProbeData, GetDiffuseAmbientProbeBuffer(hdCamera)); + } } static void UpdateBuiltinParameters(ref BuiltinSkyParameters builtinParameters, SkyUpdateContext skyContext, HDCamera hdCamera, Light sunLight, DebugDisplaySettings debugSettings) @@ -1315,10 +1336,12 @@ public void PreRenderSky(RenderGraph renderGraph, HDCamera hdCamera, TextureHand var skyContext = hdCamera.visualSky; if (skyContext.IsValid() && RequiresPreRenderSky(hdCamera)) { - using (var builder = renderGraph.AddRenderPass("Pre Render Sky", out var passData, ProfilingSampler.Get(HDProfileId.PreRenderSky))) + using (var builder = renderGraph.AddUnsafePass("Pre Render Sky", out var passData, ProfilingSampler.Get(HDProfileId.PreRenderSky))) { - passData.colorBuffer = builder.WriteTexture(normalBuffer); - passData.depthBuffer = builder.WriteTexture(depthBuffer); + passData.colorBuffer = normalBuffer; + builder.UseTexture(passData.colorBuffer, AccessFlags.Write); + passData.depthBuffer = depthBuffer; + builder.UseTexture(passData.depthBuffer, AccessFlags.Write); passData.skyContext = skyContext; // When rendering the visual sky for reflection probes, we need to remove the sun disk if skySettings.includeSunInBaking is false. passData.renderSunDisk = hdCamera.camera.cameraType != CameraType.Reflection || skyContext.skySettings.includeSunInBaking.value; @@ -1329,13 +1352,13 @@ public void PreRenderSky(RenderGraph renderGraph, HDCamera hdCamera, TextureHand m_CurrentDebugDisplaySettings); builder.SetRenderFunc( - (RenderSkyPassData data, RenderGraphContext ctx) => + (RenderSkyPassData data, UnsafeGraphContext ctx) => { data.builtinParameters.colorBuffer = data.colorBuffer; data.builtinParameters.depthBuffer = data.depthBuffer; - data.builtinParameters.commandBuffer = ctx.cmd; + data.builtinParameters.commandBuffer = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); - CoreUtils.SetRenderTarget(ctx.cmd, data.colorBuffer, data.depthBuffer); + CoreUtils.SetRenderTarget(data.builtinParameters.commandBuffer, data.colorBuffer, data.depthBuffer); if (data.skyContext.skyRenderer.RequiresPreRender(data.skyContext.skySettings)) { @@ -1373,10 +1396,12 @@ public void RenderSky(RenderGraph renderGraph, HDCamera hdCamera, TextureHandle var skyContext = hdCamera.visualSky; if (skyContext.IsValid()) { - using (var builder = renderGraph.AddRenderPass("Render Sky", out var passData, sampler)) + using (var builder = renderGraph.AddUnsafePass("Render Sky", out var passData, sampler)) { - passData.colorBuffer = builder.WriteTexture(colorBuffer); - passData.depthBuffer = builder.WriteTexture(depthBuffer); + passData.colorBuffer = colorBuffer; + builder.UseTexture(passData.colorBuffer, AccessFlags.Write); + passData.depthBuffer = depthBuffer; + builder.UseTexture(passData.depthBuffer, AccessFlags.Write); passData.skyContext = skyContext; // When rendering the visual sky for reflection probes, we need to remove the sun disk if skySettings.includeSunInBaking is false. @@ -1388,13 +1413,13 @@ public void RenderSky(RenderGraph renderGraph, HDCamera hdCamera, TextureHandle m_CurrentDebugDisplaySettings); builder.SetRenderFunc( - (RenderSkyPassData data, RenderGraphContext ctx) => + (RenderSkyPassData data, UnsafeGraphContext ctx) => { data.builtinParameters.colorBuffer = data.colorBuffer; data.builtinParameters.depthBuffer = data.depthBuffer; - data.builtinParameters.commandBuffer = ctx.cmd; + data.builtinParameters.commandBuffer = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); - CoreUtils.SetRenderTarget(ctx.cmd, data.colorBuffer, data.depthBuffer); + CoreUtils.SetRenderTarget(data.builtinParameters.commandBuffer, data.colorBuffer, data.depthBuffer); data.skyContext.skyRenderer.DoUpdate(data.builtinParameters); data.skyContext.skyRenderer.RenderSky(data.builtinParameters, renderForCubemap: false, renderSunDisk: data.renderSunDisk); @@ -1416,18 +1441,21 @@ public void RenderClouds(RenderGraph renderGraph, HDCamera hdCamera, TextureHand if (!skyContext.IsValid() || !skyContext.HasClouds()) return; - using (var builder = renderGraph.AddRenderPass("Render Clouds", out var passData, ProfilingSampler.Get(HDProfileId.RenderClouds))) + using (var builder = renderGraph.AddUnsafePass("Render Clouds", out var passData, ProfilingSampler.Get(HDProfileId.RenderClouds))) { - // Allocate only if LensFalre require it + // Allocate only if LensFlare requires it if (LensFlareCommonSRP.IsCloudLayerOpacityNeeded(hdCamera.camera)) { if (!fogTransmittance.IsValid()) fogTransmittance = renderGraph.CreateTexture(HDRenderPipeline.GetOpticalFogTransmittanceDesc(hdCamera)); - m_CloudOpacity = builder.ReadWriteTexture(fogTransmittance); + m_CloudOpacity = fogTransmittance; + builder.UseTexture(m_CloudOpacity, AccessFlags.ReadWrite); } - passData.colorBuffer = builder.WriteTexture(colorBuffer); - passData.depthBuffer = builder.WriteTexture(depthBuffer); + passData.colorBuffer = colorBuffer; + builder.UseTexture(passData.colorBuffer, AccessFlags.Write); + passData.depthBuffer = depthBuffer; + builder.UseTexture(passData.depthBuffer, AccessFlags.Write); passData.cloudOpacityBuffer = m_CloudOpacity; passData.skyContext = skyContext; @@ -1441,14 +1469,14 @@ public void RenderClouds(RenderGraph renderGraph, HDCamera hdCamera, TextureHand passData.builtinParameters.cloudAmbientProbe = cachedContext.renderingContext.cloudAmbientProbeBuffer; builder.SetRenderFunc( - (RenderSkyPassData data, RenderGraphContext ctx) => + (RenderSkyPassData data, UnsafeGraphContext ctx) => { data.builtinParameters.colorBuffer = data.colorBuffer; data.builtinParameters.depthBuffer = data.depthBuffer; data.builtinParameters.cloudOpacity = data.cloudOpacityBuffer; - data.builtinParameters.commandBuffer = ctx.cmd; + data.builtinParameters.commandBuffer = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); - CoreUtils.SetRenderTarget(ctx.cmd, data.colorBuffer, data.depthBuffer); + CoreUtils.SetRenderTarget(data.builtinParameters.commandBuffer, data.colorBuffer, data.depthBuffer); data.skyContext.cloudRenderer.DoUpdate(data.builtinParameters); data.skyContext.cloudRenderer.RenderClouds(data.builtinParameters, false); @@ -1493,32 +1521,43 @@ public TextureHandle RenderOpaqueAtmosphericScattering(RenderGraph renderGraph, if (!Fog.IsFogEnabled(hdCamera) && !Fog.IsPBRFogEnabled(hdCamera) && !waterEnabled) return colorBuffer; - using (var builder = renderGraph.AddRenderPass("Opaque Atmospheric Scattering", out var passData, ProfilingSampler.Get(HDProfileId.OpaqueAtmosphericScattering))) + using (var builder = renderGraph.AddUnsafePass("Opaque Atmospheric Scattering", out var passData, ProfilingSampler.Get(HDProfileId.OpaqueAtmosphericScattering))) { passData.opaqueAtmosphericalScatteringMaterial = m_OpaqueAtmScatteringMaterial; passData.msaa = hdCamera.msaaEnabled; passData.pixelCoordToViewDirWS = hdCamera.mainViewConstants.pixelCoordToViewDirWS; if (volumetricLighting.IsValid()) - passData.volumetricLighting = builder.ReadTexture(volumetricLighting); + { + passData.volumetricLighting = volumetricLighting; + builder.UseTexture(passData.volumetricLighting, AccessFlags.Read); + } else passData.volumetricLighting = TextureHandle.nullHandle; - passData.depthTexture = builder.ReadTexture(depthTexture); - passData.depthBuffer = builder.ReadTexture(transparentPrepass.depthBufferPreRefraction); + passData.depthTexture = depthTexture; + builder.UseTexture(passData.depthTexture, AccessFlags.Read); + passData.depthBuffer = transparentPrepass.depthBufferPreRefraction; + builder.UseTexture(passData.depthBuffer, AccessFlags.Read); // Water stuff passData.water = waterEnabled; if (waterEnabled) { - passData.waterLine = builder.ReadBuffer(transparentPrepass.waterLine); - passData.waterSurfaceProfiles = builder.ReadBuffer(transparentPrepass.waterSurfaceProfiles); - passData.waterCameraHeight = builder.ReadBuffer(transparentPrepass.waterGBuffer.cameraHeight); - passData.waterStencil = builder.ReadTexture(depthBuffer); - passData.waterGBuffer3 = builder.ReadTexture(transparentPrepass.waterGBuffer.waterGBuffer3); + passData.waterLine = transparentPrepass.waterLine; + builder.UseBuffer(passData.waterLine, AccessFlags.Read); + passData.waterSurfaceProfiles = transparentPrepass.waterSurfaceProfiles; + builder.UseBuffer(passData.waterSurfaceProfiles, AccessFlags.Read); + passData.waterCameraHeight = transparentPrepass.waterGBuffer.cameraHeight; + builder.UseBuffer(passData.waterCameraHeight, AccessFlags.Read); + passData.waterStencil = depthBuffer; + builder.UseTexture(passData.waterStencil, AccessFlags.Read); + passData.waterGBuffer3 = transparentPrepass.waterGBuffer.waterGBuffer3; + builder.UseTexture(passData.waterGBuffer3, AccessFlags.Read); if (transparentPrepass.underWaterSurface != null && transparentPrepass.underWaterSurface.caustics) { passData.causticsData = renderGraph.ImportTexture(transparentPrepass.underWaterSurface.simulation.gpuBuffers.causticsBuffer); - passData.normalBuffer = builder.ReadTexture(normalBuffer); + passData.normalBuffer = normalBuffer; + builder.UseTexture(passData.normalBuffer, AccessFlags.Read); passData.causticsShadow = transparentPrepass.underWaterSurface.causticsDirectionalShadow; } } @@ -1527,13 +1566,16 @@ public TextureHandle RenderOpaqueAtmosphericScattering(RenderGraph renderGraph, if (passData.polychromaticAlpha) { passData.passIndex = m_OpaqueFogPassNames[passData.msaa ? 3 : 2]; - passData.colorBuffer = builder.ReadTexture(colorBuffer); - passData.outputColorBuffer = builder.WriteTexture(renderGraph.CreateTexture(colorBuffer)); + passData.colorBuffer = colorBuffer; + builder.UseTexture(passData.colorBuffer, AccessFlags.Read); + passData.outputColorBuffer = renderGraph.CreateTexture(colorBuffer); + builder.UseTexture(passData.outputColorBuffer, AccessFlags.Write); } else { passData.passIndex = m_OpaqueFogPassNames[passData.msaa ? 1 : 0]; - passData.colorBuffer = builder.WriteTexture(colorBuffer); + passData.colorBuffer = colorBuffer; + builder.UseTexture(passData.colorBuffer, AccessFlags.Write); passData.outputColorBuffer = colorBuffer; } @@ -1541,22 +1583,24 @@ public TextureHandle RenderOpaqueAtmosphericScattering(RenderGraph renderGraph, passData.outputFogTransmittanceKeyword = m_OutputFogTransmittanceKeyword; if (passData.needsFogTransmittance) { - fogTransmittance = passData.fogTransmittance = builder.WriteTexture(renderGraph.CreateTexture(HDRenderPipeline.GetOpticalFogTransmittanceDesc(hdCamera))); + fogTransmittance = passData.fogTransmittance = renderGraph.CreateTexture(HDRenderPipeline.GetOpticalFogTransmittanceDesc(hdCamera)); + builder.UseTexture(fogTransmittance = passData.fogTransmittance, AccessFlags.Write); passData.opaqueAtmosphericFogTargets = m_OpaqueAtmosphericFogTargets; } builder.SetRenderFunc( - (OpaqueAtmosphericScatteringPassData data, RenderGraphContext ctx) => + (OpaqueAtmosphericScatteringPassData data, UnsafeGraphContext ctx) => { + var natCmd = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); var mpb = ctx.renderGraphPool.GetTempMaterialPropertyBlock(); mpb.SetMatrix(HDShaderIDs._PixelCoordToViewDirWS, data.pixelCoordToViewDirWS); mpb.SetTexture(data.msaa ? HDShaderIDs._DepthTextureMS : HDShaderIDs._CameraDepthTexture, data.depthTexture); // The texture can be null when volumetrics are disabled. if (data.volumetricLighting.IsValid()) - ctx.cmd.SetGlobalTexture(HDShaderIDs._VBufferLighting, data.volumetricLighting); + natCmd.SetGlobalTexture(HDShaderIDs._VBufferLighting, data.volumetricLighting); - ctx.cmd.SetKeyword(data.opaqueAtmosphericalScatteringMaterial, data.outputFogTransmittanceKeyword, data.needsFogTransmittance); + natCmd.SetKeyword(data.opaqueAtmosphericalScatteringMaterial, data.outputFogTransmittanceKeyword, data.needsFogTransmittance); if (data.needsFogTransmittance) { @@ -1568,10 +1612,10 @@ public TextureHandle RenderOpaqueAtmosphericScattering(RenderGraph renderGraph, { bool caustics = data.causticsData.IsValid(); - CoreUtils.SetKeyword(ctx.cmd, "NO_WATER", !data.water); - CoreUtils.SetKeyword(ctx.cmd, "SUPPORT_WATER", data.water && !caustics); - CoreUtils.SetKeyword(ctx.cmd, "SUPPORT_WATER_CAUSTICS", data.water && caustics && !data.causticsShadow); - CoreUtils.SetKeyword(ctx.cmd, "SUPPORT_WATER_CAUSTICS_SHADOW", data.water && caustics && data.causticsShadow); + CoreUtils.SetKeyword(natCmd, "NO_WATER", !data.water); + CoreUtils.SetKeyword(natCmd, "SUPPORT_WATER", data.water && !caustics); + CoreUtils.SetKeyword(natCmd, "SUPPORT_WATER_CAUSTICS", data.water && caustics && !data.causticsShadow); + CoreUtils.SetKeyword(natCmd, "SUPPORT_WATER_CAUSTICS_SHADOW", data.water && caustics && data.causticsShadow); if (data.water) { @@ -1595,9 +1639,9 @@ public TextureHandle RenderOpaqueAtmosphericScattering(RenderGraph renderGraph, } if (data.needsFogTransmittance) - HDUtils.DrawFullScreen(ctx.cmd, data.opaqueAtmosphericalScatteringMaterial, data.opaqueAtmosphericFogTargets, data.depthBuffer, mpb, data.passIndex); + HDUtils.DrawFullScreen(natCmd, data.opaqueAtmosphericalScatteringMaterial, data.opaqueAtmosphericFogTargets, data.depthBuffer, mpb, data.passIndex); else - HDUtils.DrawFullScreen(ctx.cmd, data.opaqueAtmosphericalScatteringMaterial, data.outputColorBuffer, data.depthBuffer, mpb, data.passIndex); + HDUtils.DrawFullScreen(natCmd, data.opaqueAtmosphericalScatteringMaterial, data.outputColorBuffer, data.depthBuffer, mpb, data.passIndex); }); return passData.outputColorBuffer; diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Sky/SkyRenderer.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/Sky/SkyRenderer.cs index 1a161401a3d..dbaf3228f33 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Sky/SkyRenderer.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Sky/SkyRenderer.cs @@ -33,7 +33,7 @@ public abstract class SkyRenderer /// Engine parameters that you can use to render the sky. /// Pass in true if you want to render the sky into a cubemap for lighting. This is useful when the sky renderer needs a different implementation in this case. /// If the sky renderer supports the rendering of a sun disk, it must not render it if this is set to false. - [System.Obsolete("Please override PreRenderSky(BuiltinSkyParameters) instead.")] + [System.Obsolete("Please override PreRenderSky(BuiltinSkyParameters) instead. #from(2021.2)")] public virtual void PreRenderSky(BuiltinSkyParameters builtinParams, bool renderForCubemap, bool renderSunDisk) { PreRenderSky(builtinParams); @@ -51,7 +51,7 @@ public virtual void PreRenderSky(BuiltinSkyParameters builtinParams) { } /// /// Engine parameters that you can use to render the sky. /// True if the PreRenderSky step is required. - [System.Obsolete("Please implement RequiresPreRender instead")] + [System.Obsolete("Please implement RequiresPreRender instead. #from(2022.2)")] public virtual bool RequiresPreRenderSky(BuiltinSkyParameters builtinParams) { return false; } /// diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Utilities/CameraPositionSettings.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/Utilities/CameraPositionSettings.cs index ed6b32297cf..dbd87061326 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Utilities/CameraPositionSettings.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Utilities/CameraPositionSettings.cs @@ -7,7 +7,7 @@ namespace UnityEngine.Rendering.HighDefinition public struct CameraPositionSettings { /// Default value. - [Obsolete("Since 2019.3, use CameraPositionSettings.NewDefault() instead.")] + [Obsolete("Use CameraPositionSettings.NewDefault() instead. #from(2019.3)")] public static readonly CameraPositionSettings @default = default; /// Default value. /// The default value. diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Utilities/CameraSettings.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/Utilities/CameraSettings.cs index 287be431e43..c08a0a8c200 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Utilities/CameraSettings.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Utilities/CameraSettings.cs @@ -68,7 +68,7 @@ public struct CameraSettings public struct BufferClearing { /// Default value. - [Obsolete("Since 2019.3, use BufferClearing.NewDefault() instead.")] + [Obsolete("Use BufferClearing.NewDefault() instead. #from(2019.3)")] public static readonly BufferClearing @default = default; /// Default value. /// The default value. @@ -112,7 +112,7 @@ public struct Volumes /// The default value uses a of -1 (which includes all layers) and a null override /// for the anchor (indicating no anchor override). /// - [Obsolete("This field is obsolete use Volumes.NewDefault() instead. #from(2019.3)", true)] + [Obsolete("This field is obsolete use Volumes.NewDefault() instead. #from(2019.3) #breakingFrom(6000.1)", true)] public static readonly Volumes @default = default; /// @@ -171,7 +171,7 @@ public struct Frustum public const float MinFarClipPlane = 1e-4f; /// Default value. - [Obsolete("Since 2019.3, use Frustum.NewDefault() instead.")] + [Obsolete("Use Frustum.NewDefault() instead. #from(2019.3)")] public static readonly Frustum @default = default; /// Default value. /// The default value. @@ -275,7 +275,7 @@ public Matrix4x4 GetUsedProjectionMatrix() public struct Culling { /// Default value. - [Obsolete("Since 2019.3, use Culling.NewDefault() instead.")] + [Obsolete("Use Culling.NewDefault() instead. #from(2019.3)")] public static readonly Culling @default = default; /// Default value. /// The default value. @@ -295,7 +295,7 @@ public struct Culling } /// Default value. - [Obsolete("Since 2019.3, use CameraSettings.defaultCameraSettingsNonAlloc instead.")] + [Obsolete("Use CameraSettings.defaultCameraSettingsNonAlloc instead. #from(2019.3)")] public static readonly CameraSettings @default = default; /// Default value. /// The default value and allocate ~250B of garbage. @@ -397,12 +397,12 @@ public static CameraSettings From(HDCamera hdCamera) [SerializeField] [FormerlySerializedAs("renderingPath")] - [Obsolete("For data migration")] + [Obsolete("For data migration. #from(2022.1)")] internal int m_ObsoleteRenderingPath; #pragma warning disable 618 // Type or member is obsolete [SerializeField] [FormerlySerializedAs("frameSettings")] - [Obsolete("For data migration")] + [Obsolete("For data migration. #from(2022.1)")] internal ObsoleteFrameSettings m_ObsoleteFrameSettings; #pragma warning restore 618 diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Utilities/HDRenderUtilities.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/Utilities/HDRenderUtilities.cs index d33035474e1..8fa3be75f4d 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Utilities/HDRenderUtilities.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Utilities/HDRenderUtilities.cs @@ -366,7 +366,7 @@ public static void Render( /// /// The cubemap size. /// The texture to use as reflection probe target. - [Obsolete("Use CreateReflectionProbeRenderTarget with explicit format instead", true)] + [Obsolete("Use CreateReflectionProbeRenderTarget with explicit format instead #from(2021.1) #breakingFrom(2021.1)", true)] public static RenderTexture CreateReflectionProbeRenderTarget(int cubemapSize) { RenderTexture rt = new RenderTexture(cubemapSize, cubemapSize, 0, GraphicsFormat.R16G16B16A16_SFloat) diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Utilities/ProbeCapturePositionSettings.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/Utilities/ProbeCapturePositionSettings.cs index 03c4bc3f3b9..1b065bbd427 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Utilities/ProbeCapturePositionSettings.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Utilities/ProbeCapturePositionSettings.cs @@ -7,7 +7,7 @@ namespace UnityEngine.Rendering.HighDefinition public struct ProbeCapturePositionSettings { /// Default value. - [Obsolete("Since 2019.3, use ProbeCapturePositionSettings.NewDefault() instead.")] + [Obsolete("Use ProbeCapturePositionSettings.NewDefault() instead. #from(2019.3)")] public static readonly ProbeCapturePositionSettings @default = default; /// Default value. /// The default value. diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Utilities/ProbeSettings.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/Utilities/ProbeSettings.cs index 22617b2e4de..e46718a2421 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Utilities/ProbeSettings.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Utilities/ProbeSettings.cs @@ -119,7 +119,7 @@ public enum RealtimeMode public struct Lighting { /// Default value. - [Obsolete("Since 2019.3, use Lighting.NewDefault() instead.")] + [Obsolete("Use Lighting.NewDefault() instead. #from(2019.3)")] public static readonly Lighting @default = default; /// Default value. /// The default value. @@ -156,7 +156,7 @@ public struct Lighting public struct ProxySettings { /// Default value. - [Obsolete("Since 2019.3, use ProxySettings.NewDefault() instead.")] + [Obsolete("Use ProxySettings.NewDefault() instead. #from(2019.3)")] public static readonly ProxySettings @default = default; /// Default value. /// The default value. @@ -187,7 +187,7 @@ public struct ProxySettings public struct Frustum { /// Obsolete - [Obsolete("Since 2019.3, use Frustum.NewDefault() instead.")] + [Obsolete("Use Frustum.NewDefault() instead. #from(2019.3)")] public static readonly Frustum @default = default; /// Default value. /// The default value. @@ -239,7 +239,7 @@ public class CubeReflectionResolutionScalableSettingValue : ScalableSettingValue internal const CubeReflectionResolution k_DefaultCubeResolution = CubeReflectionResolution.CubeReflectionResolution128; /// Default value. - [Obsolete("Since 2019.3, use ProbeSettings.NewDefault() instead.")] + [Obsolete("Use ProbeSettings.NewDefault() instead. #from(2019.3)")] public static ProbeSettings @default = default; /// Default value. /// The default value. diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Water/HDRenderPipeline.WaterSystem.Debug.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/Water/HDRenderPipeline.WaterSystem.Debug.cs index cd8b7b699d2..60fb26a1165 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Water/HDRenderPipeline.WaterSystem.Debug.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Water/HDRenderPipeline.WaterSystem.Debug.cs @@ -25,7 +25,7 @@ internal void RenderWaterDebug(RenderGraph renderGraph, HDCamera hdCamera, Textu if (!ShouldRenderWater(hdCamera)) return; - using (var builder = renderGraph.AddRenderPass("Render Water Surface Mask Debug", out var passData, ProfilingSampler.Get(HDProfileId.WaterMaskDebug))) + using (var builder = renderGraph.AddUnsafePass("Render Water Surface Mask Debug", out var passData, ProfilingSampler.Get(HDProfileId.WaterMaskDebug))) { WaterRendering settings = hdCamera.volumeStack.GetComponent(); PrepareWaterRenderingData(passData, hdCamera); @@ -60,19 +60,20 @@ internal void RenderWaterDebug(RenderGraph renderGraph, HDCamera hdCamera, Textu } // Output buffers - builder.UseColorBuffer(colorBuffer, 0); - builder.UseDepthBuffer(depthBuffer, DepthAccess.ReadWrite); + builder.SetRenderAttachment(colorBuffer, 0); + builder.SetRenderAttachmentDepth(depthBuffer, AccessFlags.ReadWrite); // Request the output textures builder.SetRenderFunc( - (WaterRenderingMaskData data, RenderGraphContext ctx) => + (WaterRenderingMaskData data, UnsafeGraphContext ctx) => { - ctx.cmd.SetGlobalTexture(HDShaderIDs._WaterSectorData, data.sectorDataBuffer); - ctx.cmd.SetGlobalBuffer(HDShaderIDs._WaterPatchData, data.patchDataBuffer); - ctx.cmd.SetGlobalBuffer(HDShaderIDs._FrustumGPUBuffer, data.frustumBuffer); + var natCmd = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); + natCmd.SetGlobalTexture(HDShaderIDs._WaterSectorData, data.sectorDataBuffer); + natCmd.SetGlobalBuffer(HDShaderIDs._WaterPatchData, data.patchDataBuffer); + natCmd.SetGlobalBuffer(HDShaderIDs._FrustumGPUBuffer, data.frustumBuffer); // Normally we should bind this into the material property block, but on metal there seems to be an issue. This fixes it. - ctx.cmd.SetGlobalFloat(HDShaderIDs._CullWaterMask, (int)CullMode.Off); + natCmd.SetGlobalFloat(HDShaderIDs._CullWaterMask, (int)CullMode.Off); for (int surfaceIdx = 0; surfaceIdx < data.numSurfaces; ++surfaceIdx) { @@ -80,12 +81,11 @@ internal void RenderWaterDebug(RenderGraph renderGraph, HDCamera hdCamera, Textu if (surfaceData.renderDebug) { - ctx.cmd.SetBufferData(data.perCameraCB, data.sharedPerCameraDataArray, surfaceData.surfaceIndex, 0, 1); - ConstantBuffer.Push(ctx.cmd, data.waterDebugCBs[surfaceIdx], surfaceData.waterMaterial, HDShaderIDs._ShaderVariablesWaterDebug); - - SetupWaterShaderKeyword(ctx.cmd, data.decalWorkflow, surfaceData.numActiveBands, surfaceData.activeCurrent); - DrawWaterSurface(ctx.cmd, k_PassesWaterDebug, data, ref surfaceData); - ResetWaterShaderKeyword(ctx.cmd); + natCmd.SetBufferData(data.perCameraCB, data.sharedPerCameraDataArray, surfaceData.surfaceIndex, 0, 1); + ConstantBuffer.Push(natCmd, data.waterDebugCBs[surfaceIdx], surfaceData.waterMaterial, HDShaderIDs._ShaderVariablesWaterDebug); + SetupWaterShaderKeyword(natCmd, data.decalWorkflow, surfaceData.numActiveBands, surfaceData.activeCurrent); + DrawWaterSurface(natCmd, k_PassesWaterDebug, data, ref surfaceData); + ResetWaterShaderKeyword(natCmd); } } diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Water/HDRenderPipeline.WaterSystem.Underwater.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/Water/HDRenderPipeline.WaterSystem.Underwater.cs index 6be6432bca8..910ba5bdba7 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Water/HDRenderPipeline.WaterSystem.Underwater.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Water/HDRenderPipeline.WaterSystem.Underwater.cs @@ -234,7 +234,7 @@ internal void RenderWaterLine(RenderGraph renderGraph, HDCamera hdCamera, Textur // or find values for _BoundsSS & co to make sure the function always returns a negative value // Execute the unique lighting pass - using (var builder = renderGraph.AddRenderPass("Render Water Line", out var passData, ProfilingSampler.Get(HDProfileId.WaterLineRendering))) + using (var builder = renderGraph.AddUnsafePass("Render Water Line", out var passData, ProfilingSampler.Get(HDProfileId.WaterLineRendering))) { // Fetch the water surface we will be using WaterSurface waterSurface = WaterSurface.instancesAsArray[m_UnderWaterSurfaceIndex]; @@ -254,17 +254,20 @@ internal void RenderWaterLine(RenderGraph renderGraph, HDCamera hdCamera, Textur passData.boundsPropagationKernel = m_WaterLineBoundsPropagation; // All the required textures - passData.depthBuffer = builder.ReadTexture(depthBuffer); - passData.cameraHeightBuffer = builder.ReadBuffer(refractionOutput.waterGBuffer.cameraHeight); + passData.depthBuffer = depthBuffer; + builder.UseTexture(passData.depthBuffer, AccessFlags.Read); + passData.cameraHeightBuffer = refractionOutput.waterGBuffer.cameraHeight; + builder.UseBuffer(passData.cameraHeightBuffer, AccessFlags.Read); // Water line data - passData.waterLine = builder.WriteBuffer(refractionOutput.waterLine); + passData.waterLine = refractionOutput.waterLine; + builder.UseBuffer(passData.waterLine, AccessFlags.Write); passData.waterLineBufferWidth = m_WaterLineBufferSize; passData.reductionSize = m_ReductionSize; builder.SetRenderFunc( - (WaterLineRenderingData data, RenderGraphContext ctx) => + (WaterLineRenderingData data, UnsafeGraphContext ctx) => { // Clear water line buffer ctx.cmd.SetComputeBufferParam(data.underWaterCS, data.clearKernel, HDShaderIDs._WaterLineBufferRW, data.waterLine); diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Water/HDRenderPipeline.WaterSystem.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/Water/HDRenderPipeline.WaterSystem.cs index fca853baf57..b372df087cc 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Water/HDRenderPipeline.WaterSystem.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Water/HDRenderPipeline.WaterSystem.cs @@ -839,7 +839,7 @@ class WaterGBufferData : WaterRenderingData public TextureHandle depthPyramid; } - void PrepareWaterGBufferData(RenderGraphBuilder builder, HDCamera hdCamera, TextureHandle normalBuffer, TextureHandle depthPyramid, + void PrepareWaterGBufferData(IUnsafeRenderGraphBuilder builder, HDCamera hdCamera, TextureHandle normalBuffer, TextureHandle depthPyramid, in HDRenderPipeline.BuildGPULightListOutput lightLists, ref WaterGBuffer gbuffer, WaterGBufferData passData) { WaterRendering settings = hdCamera.volumeStack.GetComponent(); @@ -847,13 +847,17 @@ void PrepareWaterGBufferData(RenderGraphBuilder builder, HDCamera hdCamera, Text // Buffers passData.decalsEnabled = (hdCamera.frameSettings.IsEnabled(FrameSettingsField.Decals)) && (DecalSystem.m_DecalDatasCount > 0); - passData.layeredOffsetsBuffer = builder.ReadBuffer(lightLists.perVoxelOffset); - passData.logBaseBuffer = builder.ReadBuffer(lightLists.perTileLogBaseTweak); + passData.layeredOffsetsBuffer = lightLists.perVoxelOffset; + builder.UseBuffer(passData.layeredOffsetsBuffer, AccessFlags.Read); + passData.logBaseBuffer = lightLists.perTileLogBaseTweak; + builder.UseBuffer(passData.logBaseBuffer, AccessFlags.Read); - passData.normalBuffer = builder.ReadTexture(normalBuffer); - passData.depthPyramid = builder.ReadTexture(depthPyramid); + passData.normalBuffer = normalBuffer; + builder.UseTexture(passData.normalBuffer, AccessFlags.Read); + passData.depthPyramid = depthPyramid; + builder.UseTexture(passData.depthPyramid, AccessFlags.Read); - builder.WriteBuffer(gbuffer.cameraHeight); + builder.UseBuffer(gbuffer.cameraHeight, AccessFlags.Write); // Grab all the water surfaces in the scene var waterSurfaces = WaterSurface.instancesAsArray; @@ -1035,40 +1039,43 @@ internal WaterGBuffer RenderWaterGBuffer(RenderGraph renderGraph, CullingResults tileBuffer = renderGraph.CreateBuffer(new BufferDesc((WaterConsts.k_NumWaterVariants + 1) * numTiles * hdCamera.viewCount, sizeof(uint)) { name = "Water Deferred Tiles" }) }; - using (var builder = renderGraph.AddRenderPass("Render Water GBuffer", out var passData, ProfilingSampler.Get(HDProfileId.WaterGBuffer))) + using (var builder = renderGraph.AddUnsafePass("Render Water GBuffer", out var passData, ProfilingSampler.Get(HDProfileId.WaterGBuffer))) { // Prepare data PrepareWaterGBufferData(builder, hdCamera, normalBuffer, depthPyramid, in lightLists, ref outputGBuffer, passData); // Request the output textures - builder.UseColorBuffer(outputGBuffer.waterGBuffer0, 0); - builder.UseColorBuffer(outputGBuffer.waterGBuffer1, 1); - builder.UseColorBuffer(outputGBuffer.waterGBuffer2, 2); - builder.UseColorBuffer(outputGBuffer.waterGBuffer3, 3); - builder.UseDepthBuffer(depthBuffer, DepthAccess.ReadWrite); + builder.SetRenderAttachment(outputGBuffer.waterGBuffer0, 0); + builder.SetRenderAttachment(outputGBuffer.waterGBuffer1, 1); + builder.SetRenderAttachment(outputGBuffer.waterGBuffer2, 2); + builder.SetRenderAttachment(outputGBuffer.waterGBuffer3, 3); + builder.SetRenderAttachmentDepth(depthBuffer, AccessFlags.ReadWrite); builder.SetRenderFunc( - (WaterGBufferData data, RenderGraphContext ctx) => + (WaterGBufferData data, UnsafeGraphContext ctx) => { + var natCmd = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); if (data.decalsEnabled) - DecalSystem.instance.SetAtlas(ctx.cmd); + DecalSystem.instance.SetAtlas(natCmd); if (data.layeredOffsetsBuffer.IsValid()) - ctx.cmd.SetGlobalBuffer(HDShaderIDs.g_vLayeredOffsetsBuffer, data.layeredOffsetsBuffer); + natCmd.SetGlobalBuffer(HDShaderIDs.g_vLayeredOffsetsBuffer, data.layeredOffsetsBuffer); if (data.logBaseBuffer.IsValid()) - ctx.cmd.SetGlobalBuffer(HDShaderIDs.g_logBaseBuffer, data.logBaseBuffer); + natCmd.SetGlobalBuffer(HDShaderIDs.g_logBaseBuffer, data.logBaseBuffer); - ctx.cmd.SetGlobalTexture(HDShaderIDs._NormalBufferTexture, data.normalBuffer); - ctx.cmd.SetGlobalTexture(HDShaderIDs._CameraDepthTexture, data.depthPyramid); + natCmd.SetGlobalTexture(HDShaderIDs._NormalBufferTexture, data.normalBuffer); + natCmd.SetGlobalTexture(HDShaderIDs._CameraDepthTexture, data.depthPyramid); - data.BindGlobal(ctx.cmd); + data.BindGlobal(natCmd); for (int surfaceIdx = 0; surfaceIdx < data.numSurfaces; ++surfaceIdx) { ref var surfaceData = ref data.surfaces[surfaceIdx]; if (surfaceData.render) - RenderWaterSurface(ctx.cmd, data, ref surfaceData); + { + RenderWaterSurface(natCmd, data, ref surfaceData); + } } }); } @@ -1153,7 +1160,7 @@ class WaterPrepareLightingData void PrepareWaterLighting(RenderGraph renderGraph, HDCamera hdCamera, TextureHandle depthBuffer, TextureHandle normalBuffer, in HDRenderPipeline.BuildGPULightListOutput lightLists, ref WaterGBuffer gbuffer) { - using (var builder = renderGraph.AddRenderPass("Prepare water for lighting", out var passData, ProfilingSampler.Get(HDProfileId.WaterPrepareLighting))) + using (var builder = renderGraph.AddUnsafePass("Prepare water for lighting", out var passData, ProfilingSampler.Get(HDProfileId.WaterPrepareLighting))) { // Camera parameters passData.width = hdCamera.actualWidth; @@ -1171,44 +1178,53 @@ void PrepareWaterLighting(RenderGraph renderGraph, HDCamera hdCamera, TextureHan passData.classifyTilesKernel = m_WaterClassifyTilesKernel; // Input resources - passData.gbuffer1 = builder.ReadTexture(gbuffer.waterGBuffer1); - passData.gbuffer3 = builder.ReadTexture(gbuffer.waterGBuffer3); - passData.depthBuffer = builder.UseDepthBuffer(depthBuffer, DepthAccess.Read); - passData.perVoxelOffset = builder.ReadBuffer(lightLists.perVoxelOffset); - passData.perTileLogBaseTweak = builder.ReadBuffer(lightLists.perTileLogBaseTweak); + passData.gbuffer1 = gbuffer.waterGBuffer1; + builder.UseTexture(passData.gbuffer1, AccessFlags.Read); + passData.gbuffer3 = gbuffer.waterGBuffer3; + builder.UseTexture(passData.gbuffer3, AccessFlags.Read); + passData.depthBuffer = depthBuffer; + builder.UseTexture(depthBuffer, AccessFlags.Read); + passData.perVoxelOffset = lightLists.perVoxelOffset; + builder.UseBuffer(passData.perVoxelOffset, AccessFlags.Read); + passData.perTileLogBaseTweak = lightLists.perTileLogBaseTweak; + builder.UseBuffer(passData.perTileLogBaseTweak, AccessFlags.Read); // Output resources - passData.normalBuffer = builder.WriteTexture(normalBuffer); - passData.indirectBuffer = builder.WriteBuffer(gbuffer.indirectBuffer); - passData.tileBuffer = builder.WriteBuffer(gbuffer.tileBuffer); + passData.normalBuffer = normalBuffer; + builder.UseTexture(passData.normalBuffer, AccessFlags.Write); + passData.indirectBuffer = gbuffer.indirectBuffer; + builder.UseBuffer(passData.indirectBuffer, AccessFlags.Write); + passData.tileBuffer = gbuffer.tileBuffer; + builder.UseBuffer(passData.tileBuffer, AccessFlags.Write); builder.SetRenderFunc( - (WaterPrepareLightingData data, RenderGraphContext ctx) => + (WaterPrepareLightingData data, UnsafeGraphContext ctx) => { + var natCmd = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); // Clear indirect args - ctx.cmd.SetComputeBufferParam(data.waterLighting, data.clearIndirectKernel, HDShaderIDs._WaterDispatchIndirectBuffer, data.indirectBuffer); - ctx.cmd.DispatchCompute(data.waterLighting, data.clearIndirectKernel, 1, 1, 1); + natCmd.SetComputeBufferParam(data.waterLighting, data.clearIndirectKernel, HDShaderIDs._WaterDispatchIndirectBuffer, data.indirectBuffer); + natCmd.DispatchCompute(data.waterLighting, data.clearIndirectKernel, 1, 1, 1); // Bind the input gbuffer data int kernel = data.classifyTilesKernel; - ctx.cmd.SetComputeIntParam(data.waterLighting, HDShaderIDs._WaterNumTiles, data.numTiles); - ctx.cmd.SetComputeBufferParam(data.waterLighting, kernel, HDShaderIDs._WaterDispatchIndirectBuffer, data.indirectBuffer); - ctx.cmd.SetComputeBufferParam(data.waterLighting, kernel, HDShaderIDs._WaterTileBufferRW, data.tileBuffer); - ctx.cmd.SetComputeTextureParam(data.waterLighting, kernel, HDShaderIDs._DepthTexture, data.depthBuffer); - ctx.cmd.SetComputeTextureParam(data.waterLighting, kernel, HDShaderIDs._StencilTexture, data.depthBuffer, 0, RenderTextureSubElement.Stencil); - ctx.cmd.SetComputeBufferParam(data.waterLighting, kernel, HDShaderIDs.g_vLayeredOffsetsBuffer, data.perVoxelOffset); - ctx.cmd.SetComputeBufferParam(data.waterLighting, kernel, HDShaderIDs.g_logBaseBuffer, data.perTileLogBaseTweak); - ctx.cmd.DispatchCompute(data.waterLighting, kernel, data.tileX, data.tileY, data.viewCount); + natCmd.SetComputeIntParam(data.waterLighting, HDShaderIDs._WaterNumTiles, data.numTiles); + natCmd.SetComputeBufferParam(data.waterLighting, kernel, HDShaderIDs._WaterDispatchIndirectBuffer, data.indirectBuffer); + natCmd.SetComputeBufferParam(data.waterLighting, kernel, HDShaderIDs._WaterTileBufferRW, data.tileBuffer); + natCmd.SetComputeTextureParam(data.waterLighting, kernel, HDShaderIDs._DepthTexture, data.depthBuffer); + natCmd.SetComputeTextureParam(data.waterLighting, kernel, HDShaderIDs._StencilTexture, data.depthBuffer, 0, RenderTextureSubElement.Stencil); + natCmd.SetComputeBufferParam(data.waterLighting, kernel, HDShaderIDs.g_vLayeredOffsetsBuffer, data.perVoxelOffset); + natCmd.SetComputeBufferParam(data.waterLighting, kernel, HDShaderIDs.g_logBaseBuffer, data.perTileLogBaseTweak); + natCmd.DispatchCompute(data.waterLighting, kernel, data.tileX, data.tileY, data.viewCount); if (data.transparentSSR) { // Prepare the normal buffer for SSR - ctx.cmd.SetComputeTextureParam(data.waterLighting, data.prepareSSRKernel, HDShaderIDs._WaterGBufferTexture1, data.gbuffer1); - ctx.cmd.SetComputeTextureParam(data.waterLighting, data.prepareSSRKernel, HDShaderIDs._WaterGBufferTexture3, data.gbuffer3); - ctx.cmd.SetComputeTextureParam(data.waterLighting, data.prepareSSRKernel, HDShaderIDs._StencilTexture, data.depthBuffer, 0, RenderTextureSubElement.Stencil); - ctx.cmd.SetComputeTextureParam(data.waterLighting, data.prepareSSRKernel, HDShaderIDs._NormalBufferRW, data.normalBuffer); - ctx.cmd.SetComputeBufferParam(data.waterLighting, data.prepareSSRKernel, HDShaderIDs._WaterTileBuffer, data.tileBuffer); - ctx.cmd.DispatchCompute(data.waterLighting, data.prepareSSRKernel, data.indirectBuffer, (uint)WaterConsts.k_NumWaterVariants * 3 * sizeof(uint)); + natCmd.SetComputeTextureParam(data.waterLighting, data.prepareSSRKernel, HDShaderIDs._WaterGBufferTexture1, data.gbuffer1); + natCmd.SetComputeTextureParam(data.waterLighting, data.prepareSSRKernel, HDShaderIDs._WaterGBufferTexture3, data.gbuffer3); + natCmd.SetComputeTextureParam(data.waterLighting, data.prepareSSRKernel, HDShaderIDs._StencilTexture, data.depthBuffer, 0, RenderTextureSubElement.Stencil); + natCmd.SetComputeTextureParam(data.waterLighting, data.prepareSSRKernel, HDShaderIDs._NormalBufferRW, data.normalBuffer); + natCmd.SetComputeBufferParam(data.waterLighting, data.prepareSSRKernel, HDShaderIDs._WaterTileBuffer, data.tileBuffer); + natCmd.DispatchCompute(data.waterLighting, data.prepareSSRKernel, data.indirectBuffer, (uint)WaterConsts.k_NumWaterVariants * 3 * sizeof(uint)); } }); } @@ -1283,14 +1299,15 @@ internal void RenderWaterLighting(RenderGraph renderGraph, HDCamera hdCamera, return; // Execute the unique lighting pass - using (var builder = renderGraph.AddRenderPass("Water Deferred Lighting", out var passData, ProfilingSampler.Get(HDProfileId.WaterDeferredLighting))) + using (var builder = renderGraph.AddUnsafePass("Water Deferred Lighting", out var passData, ProfilingSampler.Get(HDProfileId.WaterDeferredLighting))) { bool needFogTransmittance = LensFlareCommonSRP.IsCloudLayerOpacityNeeded(hdCamera.camera) || Fog.IsMultipleScatteringEnabled(hdCamera, out _); if (needFogTransmittance) { if (!opticalFogTransmittance.IsValid()) opticalFogTransmittance = renderGraph.CreateTexture(HDRenderPipeline.GetOpticalFogTransmittanceDesc(hdCamera)); - passData.transmittanceBuffer = builder.ReadWriteTexture(opticalFogTransmittance); + passData.transmittanceBuffer = opticalFogTransmittance; + builder.UseTexture(passData.transmittanceBuffer, AccessFlags.ReadWrite); } // Prepare all the internal parameters @@ -1298,73 +1315,89 @@ internal void RenderWaterLighting(RenderGraph renderGraph, HDCamera hdCamera, passData.pbrSkyActive = hdCamera.volumeStack.GetComponent().skyType.value == (int)SkyType.PhysicallyBased; // GBuffer data - passData.indirectBuffer = builder.ReadBuffer(prepassOutput.waterGBuffer.indirectBuffer); - passData.tileBuffer = builder.ReadBuffer(prepassOutput.waterGBuffer.tileBuffer); - passData.gbuffer0 = builder.ReadTexture(prepassOutput.waterGBuffer.waterGBuffer0); - passData.gbuffer1 = builder.ReadTexture(prepassOutput.waterGBuffer.waterGBuffer1); - passData.gbuffer2 = builder.ReadTexture(prepassOutput.waterGBuffer.waterGBuffer2); - passData.gbuffer3 = builder.ReadTexture(prepassOutput.waterGBuffer.waterGBuffer3); - - passData.depthBuffer = builder.UseDepthBuffer(depthBuffer, DepthAccess.Read); - passData.depthPyramid = builder.ReadTexture(depthPyramid); - passData.volumetricLightingTexture = builder.ReadTexture(volumetricLightingTexture); - passData.transparentSSRLighting = builder.ReadTexture(ssrLighting); - passData.perVoxelOffset = builder.ReadBuffer(lightLists.perVoxelOffset); - passData.perTileLogBaseTweak = builder.ReadBuffer(lightLists.perTileLogBaseTweak); - passData.cameraHeightBuffer = builder.ReadBuffer(prepassOutput.waterGBuffer.cameraHeight); - passData.waterLine = builder.ReadBuffer(prepassOutput.waterLine); + passData.indirectBuffer = prepassOutput.waterGBuffer.indirectBuffer; + builder.UseBuffer(passData.indirectBuffer, AccessFlags.Read); + passData.tileBuffer = prepassOutput.waterGBuffer.tileBuffer; + builder.UseBuffer(passData.tileBuffer, AccessFlags.Read); + passData.gbuffer0 = prepassOutput.waterGBuffer.waterGBuffer0; + builder.UseTexture(passData.gbuffer0, AccessFlags.Read); + passData.gbuffer1 = prepassOutput.waterGBuffer.waterGBuffer1; + builder.UseTexture(passData.gbuffer1, AccessFlags.Read); + passData.gbuffer2 = prepassOutput.waterGBuffer.waterGBuffer2; + builder.UseTexture(passData.gbuffer2, AccessFlags.Read); + passData.gbuffer3 = prepassOutput.waterGBuffer.waterGBuffer3; + builder.UseTexture(passData.gbuffer3, AccessFlags.Read); + + passData.depthBuffer = depthBuffer; + builder.UseTexture(depthBuffer, AccessFlags.Read); + passData.depthPyramid = depthPyramid; + builder.UseTexture(passData.depthPyramid, AccessFlags.Read); + passData.volumetricLightingTexture = volumetricLightingTexture; + builder.UseTexture(passData.volumetricLightingTexture, AccessFlags.Read); + passData.transparentSSRLighting = ssrLighting; + builder.UseTexture(passData.transparentSSRLighting, AccessFlags.Read); + passData.perVoxelOffset = lightLists.perVoxelOffset; + builder.UseBuffer(passData.perVoxelOffset, AccessFlags.Read); + passData.perTileLogBaseTweak = lightLists.perTileLogBaseTweak; + builder.UseBuffer(passData.perTileLogBaseTweak, AccessFlags.Read); + passData.cameraHeightBuffer = prepassOutput.waterGBuffer.cameraHeight; + builder.UseBuffer(passData.cameraHeightBuffer, AccessFlags.Read); + passData.waterLine = prepassOutput.waterLine; + builder.UseBuffer(passData.waterLine, AccessFlags.Read); // Request the output textures passData.waterLightingBuffer = builder.CreateTransientTexture(colorBuffer); - passData.colorBuffer = builder.WriteTexture(colorBuffer); + passData.colorBuffer = colorBuffer; + builder.UseTexture(passData.colorBuffer, AccessFlags.Write); // Run the deferred lighting builder.SetRenderFunc( - (WaterRenderingDeferredData data, RenderGraphContext ctx) => + (WaterRenderingDeferredData data, UnsafeGraphContext ctx) => { + var natCmd = CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd); for (int variantIdx = 0; variantIdx < data.parameters.numVariants; ++variantIdx) { // Kernel to be used for the target variant int kernel = data.parameters.indirectLightingKernels[variantIdx]; // Bind the input gbuffer data - ctx.cmd.SetComputeBufferParam(data.parameters.waterLighting, kernel, HDShaderIDs._WaterTileBuffer, data.tileBuffer); - ctx.cmd.SetComputeTextureParam(data.parameters.waterLighting, kernel, HDShaderIDs._WaterGBufferTexture0, data.gbuffer0); - ctx.cmd.SetComputeTextureParam(data.parameters.waterLighting, kernel, HDShaderIDs._WaterGBufferTexture1, data.gbuffer1); - ctx.cmd.SetComputeTextureParam(data.parameters.waterLighting, kernel, HDShaderIDs._WaterGBufferTexture2, data.gbuffer2); - ctx.cmd.SetComputeTextureParam(data.parameters.waterLighting, kernel, HDShaderIDs._WaterGBufferTexture3, data.gbuffer3); - ctx.cmd.SetComputeTextureParam(data.parameters.waterLighting, kernel, HDShaderIDs._DepthTexture, data.depthBuffer); - ctx.cmd.SetComputeTextureParam(data.parameters.waterLighting, kernel, HDShaderIDs._StencilTexture, data.depthBuffer, 0, RenderTextureSubElement.Stencil); - ctx.cmd.SetComputeTextureParam(data.parameters.waterLighting, kernel, HDShaderIDs._SsrLightingTexture, data.transparentSSRLighting); - ctx.cmd.SetComputeBufferParam(data.parameters.waterLighting, kernel, HDShaderIDs.g_vLayeredOffsetsBuffer, data.perVoxelOffset); - ctx.cmd.SetComputeBufferParam(data.parameters.waterLighting, kernel, HDShaderIDs.g_logBaseBuffer, data.perTileLogBaseTweak); - ctx.cmd.SetComputeTextureParam(data.parameters.waterLighting, kernel, HDShaderIDs._CameraDepthTexture, data.depthPyramid); - ctx.cmd.SetComputeTextureParam(data.parameters.waterLighting, kernel, HDShaderIDs._ColorPyramidTexture, data.colorBuffer); // caution, this is not a pyramid, we can't access LODs + natCmd.SetComputeBufferParam(data.parameters.waterLighting, kernel, HDShaderIDs._WaterTileBuffer, data.tileBuffer); + natCmd.SetComputeTextureParam(data.parameters.waterLighting, kernel, HDShaderIDs._WaterGBufferTexture0, data.gbuffer0); + natCmd.SetComputeTextureParam(data.parameters.waterLighting, kernel, HDShaderIDs._WaterGBufferTexture1, data.gbuffer1); + natCmd.SetComputeTextureParam(data.parameters.waterLighting, kernel, HDShaderIDs._WaterGBufferTexture2, data.gbuffer2); + natCmd.SetComputeTextureParam(data.parameters.waterLighting, kernel, HDShaderIDs._WaterGBufferTexture3, data.gbuffer3); + natCmd.SetComputeTextureParam(data.parameters.waterLighting, kernel, HDShaderIDs._DepthTexture, data.depthBuffer); + natCmd.SetComputeTextureParam(data.parameters.waterLighting, kernel, HDShaderIDs._StencilTexture, data.depthBuffer, 0, RenderTextureSubElement.Stencil); + natCmd.SetComputeTextureParam(data.parameters.waterLighting, kernel, HDShaderIDs._SsrLightingTexture, data.transparentSSRLighting); + natCmd.SetComputeBufferParam(data.parameters.waterLighting, kernel, HDShaderIDs.g_vLayeredOffsetsBuffer, data.perVoxelOffset); + natCmd.SetComputeBufferParam(data.parameters.waterLighting, kernel, HDShaderIDs.g_logBaseBuffer, data.perTileLogBaseTweak); + natCmd.SetComputeTextureParam(data.parameters.waterLighting, kernel, HDShaderIDs._CameraDepthTexture, data.depthPyramid); + natCmd.SetComputeTextureParam(data.parameters.waterLighting, kernel, HDShaderIDs._ColorPyramidTexture, data.colorBuffer); // caution, this is not a pyramid, we can't access LODs // Bind the output texture - ctx.cmd.SetComputeTextureParam(data.parameters.waterLighting, kernel, HDShaderIDs._CameraColorTextureRW, data.waterLightingBuffer); + natCmd.SetComputeTextureParam(data.parameters.waterLighting, kernel, HDShaderIDs._CameraColorTextureRW, data.waterLightingBuffer); // Run the lighting - ctx.cmd.DispatchCompute(data.parameters.waterLighting, kernel, data.indirectBuffer, (uint)variantIdx * 3 * sizeof(uint)); + natCmd.DispatchCompute(data.parameters.waterLighting, kernel, data.indirectBuffer, (uint)variantIdx * 3 * sizeof(uint)); } if (!data.pbrSkyActive) - PhysicallyBasedSkyRenderer.SetDefaultGlobalSkyData(ctx.cmd); + PhysicallyBasedSkyRenderer.SetDefaultGlobalSkyData(natCmd); // Evaluate the fog int fogKernel = data.parameters.waterFogKernel; - ctx.cmd.SetComputeBufferParam(data.parameters.waterLighting, fogKernel, HDShaderIDs._WaterLineBuffer, data.waterLine); - ctx.cmd.SetComputeBufferParam(data.parameters.waterLighting, fogKernel, HDShaderIDs._WaterTileBuffer, data.tileBuffer); - ctx.cmd.SetComputeBufferParam(data.parameters.waterLighting, fogKernel, HDShaderIDs._WaterCameraHeightBuffer, data.cameraHeightBuffer); - ctx.cmd.SetComputeTextureParam(data.parameters.waterLighting, fogKernel, HDShaderIDs._WaterGBufferTexture3, data.gbuffer3); - ctx.cmd.SetComputeTextureParam(data.parameters.waterLighting, fogKernel, HDShaderIDs._VBufferLighting, data.volumetricLightingTexture); - ctx.cmd.SetComputeTextureParam(data.parameters.waterLighting, fogKernel, HDShaderIDs._DepthTexture, data.depthBuffer); - ctx.cmd.SetComputeTextureParam(data.parameters.waterLighting, fogKernel, HDShaderIDs._StencilTexture, data.depthBuffer, 0, RenderTextureSubElement.Stencil); - ctx.cmd.SetComputeTextureParam(data.parameters.waterLighting, fogKernel, HDShaderIDs._CameraColorTexture, data.waterLightingBuffer); - ctx.cmd.SetComputeTextureParam(data.parameters.waterLighting, fogKernel, HDShaderIDs._CameraColorTextureRW, data.colorBuffer); + natCmd.SetComputeBufferParam(data.parameters.waterLighting, fogKernel, HDShaderIDs._WaterLineBuffer, data.waterLine); + natCmd.SetComputeBufferParam(data.parameters.waterLighting, fogKernel, HDShaderIDs._WaterTileBuffer, data.tileBuffer); + natCmd.SetComputeBufferParam(data.parameters.waterLighting, fogKernel, HDShaderIDs._WaterCameraHeightBuffer, data.cameraHeightBuffer); + natCmd.SetComputeTextureParam(data.parameters.waterLighting, fogKernel, HDShaderIDs._WaterGBufferTexture3, data.gbuffer3); + natCmd.SetComputeTextureParam(data.parameters.waterLighting, fogKernel, HDShaderIDs._VBufferLighting, data.volumetricLightingTexture); + natCmd.SetComputeTextureParam(data.parameters.waterLighting, fogKernel, HDShaderIDs._DepthTexture, data.depthBuffer); + natCmd.SetComputeTextureParam(data.parameters.waterLighting, fogKernel, HDShaderIDs._StencilTexture, data.depthBuffer, 0, RenderTextureSubElement.Stencil); + natCmd.SetComputeTextureParam(data.parameters.waterLighting, fogKernel, HDShaderIDs._CameraColorTexture, data.waterLightingBuffer); + natCmd.SetComputeTextureParam(data.parameters.waterLighting, fogKernel, HDShaderIDs._CameraColorTextureRW, data.colorBuffer); if (data.transmittanceBuffer.IsValid()) - ctx.cmd.SetComputeTextureParam(data.parameters.waterLighting, fogKernel, HDShaderIDs._TransmittanceBufferRW, data.transmittanceBuffer); - ctx.cmd.DispatchCompute(data.parameters.waterLighting, fogKernel, data.indirectBuffer, (uint)WaterConsts.k_NumWaterVariants * 3 * sizeof(uint)); + natCmd.SetComputeTextureParam(data.parameters.waterLighting, fogKernel, HDShaderIDs._TransmittanceBufferRW, data.transmittanceBuffer); + natCmd.DispatchCompute(data.parameters.waterLighting, fogKernel, data.indirectBuffer, (uint)WaterConsts.k_NumWaterVariants * 3 * sizeof(uint)); }); } } @@ -1375,7 +1408,7 @@ class WaterExclusionPassData { public FrameSettings frameSettings; public TextureHandle depthBuffer; - public RendererListHandle opaqueRenderList; + public RendererListHandle opaqueRendererList; } void WaterRejectionTag(RenderGraph renderGraph, CullingResults cull, HDCamera hdCamera, TextureHandle depthBuffer) @@ -1383,7 +1416,7 @@ void WaterRejectionTag(RenderGraph renderGraph, CullingResults cull, HDCamera hd if (!hdCamera.frameSettings.IsEnabled(FrameSettingsField.WaterExclusion)) return; - using (var builder = renderGraph.AddRenderPass("Water Exclusion", out var passData, ProfilingSampler.Get(HDProfileId.WaterExclusion))) + using (var builder = renderGraph.AddUnsafePass("Water Exclusion", out var passData, ProfilingSampler.Get(HDProfileId.WaterExclusion))) { var depthStateNoWrite = new RenderStateBlock { @@ -1392,15 +1425,18 @@ void WaterRejectionTag(RenderGraph renderGraph, CullingResults cull, HDCamera hd }; passData.frameSettings = hdCamera.frameSettings; - passData.depthBuffer = builder.UseDepthBuffer(depthBuffer, DepthAccess.ReadWrite); - passData.opaqueRenderList = builder.UseRendererList(renderGraph.CreateRendererList(HDRenderPipeline.CreateOpaqueRendererListDesc(cull, hdCamera.camera, HDShaderPassNames.s_WaterStencilTagName, stateBlock: depthStateNoWrite))); + passData.depthBuffer = depthBuffer; + builder.SetRenderAttachmentDepth(depthBuffer, AccessFlags.ReadWrite); + + passData.opaqueRendererList = renderGraph.CreateRendererList(HDRenderPipeline.CreateOpaqueRendererListDesc(cull, hdCamera.camera, HDShaderPassNames.s_WaterStencilTagName, stateBlock: depthStateNoWrite)); + builder.UseRendererList(passData.opaqueRendererList); builder.SetRenderFunc( - (WaterExclusionPassData data, RenderGraphContext ctx) => + (WaterExclusionPassData data, UnsafeGraphContext ctx) => { ctx.cmd.SetGlobalInteger(HDShaderIDs._StencilWriteMaskStencilTag, (int)StencilUsage.WaterExclusion); ctx.cmd.SetGlobalInteger(HDShaderIDs._StencilRefMaskStencilTag, (int)StencilUsage.WaterExclusion); - CoreUtils.DrawRendererList(ctx.renderContext, ctx.cmd, data.opaqueRenderList); + ctx.cmd.DrawRendererList(data.opaqueRendererList); }); } } diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Water/WaterDecal/Legacy/WaterDeformer.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/Water/WaterDecal/Legacy/WaterDeformer.cs index b00a9e3f39d..c081cc08ab6 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Water/WaterDecal/Legacy/WaterDeformer.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Water/WaterDecal/Legacy/WaterDeformer.cs @@ -5,7 +5,7 @@ namespace UnityEngine.Rendering.HighDefinition /// /// Controls the type of the procedural water deformer. /// - [Obsolete("WaterDeformer has been deprecated. Use WaterDecal instead.")] + [Obsolete("WaterDeformer has been deprecated. Use WaterDecal instead. #from(6000.0)")] public enum WaterDeformerType { /// @@ -45,7 +45,7 @@ public partial class WaterDeformer : WaterDecal /// /// Specifies the type of the deformer. This parameter defines which parameters will be used to render it. /// - [Obsolete("WaterDeformer has been deprecated. Use WaterDecal instead.")] + [Obsolete("WaterDeformer has been deprecated. Use WaterDecal instead. #from(6000.0)")] public WaterDeformerType type = WaterDeformerType.Sphere; #endregion @@ -53,13 +53,13 @@ public partial class WaterDeformer : WaterDecal /// /// Specifies the range that is used to blend the box deformer. /// - [Obsolete("WaterDeformer has been deprecated. Use WaterDecal instead.")] + [Obsolete("WaterDeformer has been deprecated. Use WaterDecal instead. #from(6000.0)")] public Vector2 boxBlend; /// /// When enabled, the box deformer will have a cubic blend on the edges (instead of procedural). /// - [Obsolete("WaterDeformer has been deprecated. Use WaterDecal instead.")] + [Obsolete("WaterDeformer has been deprecated. Use WaterDecal instead. #from(6000.0)")] public bool cubicBlend = true; #endregion @@ -67,43 +67,43 @@ public partial class WaterDeformer : WaterDecal /// /// Specifies the wave length of the individual waves of the shore wave deformer. /// - [Obsolete("WaterDeformer has been deprecated. Use WaterDecal instead.")] + [Obsolete("WaterDeformer has been deprecated. Use WaterDecal instead. #from(6000.0)")] public float waveLength = 3.0f; /// /// Specifies the wave repetition of the waves. A higher value implies that additional waves will be skipped. /// - [Obsolete("WaterDeformer has been deprecated. Use WaterDecal instead.")] + [Obsolete("WaterDeformer has been deprecated. Use WaterDecal instead. #from(6000.0)")] public int waveRepetition = 10; /// /// Specifies the speed of the waves in kilometers per hour. /// - [Obsolete("WaterDeformer has been deprecated. Use WaterDecal instead.")] + [Obsolete("WaterDeformer has been deprecated. Use WaterDecal instead. #from(6000.0)")] public float waveSpeed = 15.0f; /// /// Specifies the offset in the waves' position. /// - [Obsolete("WaterDeformer has been deprecated. Use WaterDecal instead.")] + [Obsolete("WaterDeformer has been deprecated. Use WaterDecal instead. #from(6000.0)")] public float waveOffset = 0.0f; /// /// Specifies the blend size on the length of the deformer's region. /// - [Obsolete("WaterDeformer has been deprecated. Use WaterDecal instead.")] + [Obsolete("WaterDeformer has been deprecated. Use WaterDecal instead. #from(6000.0)")] public Vector2 waveBlend = new Vector2(0.3f, 0.6f); /// /// Specifies the range in which the waves break and generate surface foam. /// - [Obsolete("WaterDeformer has been deprecated. Use WaterDecal instead.")] + [Obsolete("WaterDeformer has been deprecated. Use WaterDecal instead. #from(6000.0)")] public Vector2 breakingRange = new Vector2(0.7f, 0.8f); /// /// Specifies the range in which the waves generate deep foam. /// - [Obsolete("WaterDeformer has been deprecated. Use WaterDecal instead.")] + [Obsolete("WaterDeformer has been deprecated. Use WaterDecal instead. #from(6000.0)")] public Vector2 deepFoamRange = new Vector2(0.5f, 0.8f); #endregion @@ -111,7 +111,7 @@ public partial class WaterDeformer : WaterDecal /// /// Specifies the elevation of outer part of the bow wave. /// - [Obsolete("WaterDeformer has been deprecated. Use WaterDecal instead.")] + [Obsolete("WaterDeformer has been deprecated. Use WaterDecal instead. #from(6000.0)")] public float bowWaveElevation = 1.0f; #endregion @@ -119,13 +119,13 @@ public partial class WaterDeformer : WaterDecal /// /// Specifies the range of the texture deformer /// - [Obsolete("WaterDeformer has been deprecated. Use WaterDecal instead.")] + [Obsolete("WaterDeformer has been deprecated. Use WaterDecal instead. #from(6000.0)")] public Vector2 range = new Vector2(0.0f, 1.0f); /// /// Specifies the texture used for the deformer. /// - [Obsolete("WaterDeformer has been deprecated. Use WaterDecal instead.")] + [Obsolete("WaterDeformer has been deprecated. Use WaterDecal instead. #from(6000.0)")] public Texture texture = null; #endregion diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Water/WaterDecal/Legacy/WaterFoamGenerator.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/Water/WaterDecal/Legacy/WaterFoamGenerator.cs index 6b059b50b66..148edbbca3d 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Water/WaterDecal/Legacy/WaterFoamGenerator.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Water/WaterDecal/Legacy/WaterFoamGenerator.cs @@ -5,7 +5,7 @@ namespace UnityEngine.Rendering.HighDefinition /// /// Controls the type of the procedural foam generator. /// - [Obsolete("WaterFoamGenerator has been deprecated. Use WaterDecal instead.")] + [Obsolete("WaterFoamGenerator has been deprecated. Use WaterDecal instead. #from(6000.0)")] public enum WaterFoamGeneratorType { /// @@ -37,13 +37,13 @@ public partial class WaterFoamGenerator : WaterDecal /// /// Specifies the type of the generator. This parameter defines which parameters will be used to render it. /// - [Obsolete("WaterFoamGenerator has been deprecated. Use WaterDecal instead.")] + [Obsolete("WaterFoamGenerator has been deprecated. Use WaterDecal instead. #from(6000.0)")] public WaterFoamGeneratorType type = WaterFoamGeneratorType.Disk; /// /// Specifies the texture used for the foam. /// - [Obsolete("WaterFoamGenerator has been deprecated. Use WaterDecal instead.")] + [Obsolete("WaterFoamGenerator has been deprecated. Use WaterDecal instead. #from(6000.0)")] public Texture texture = null; private void Awake() diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Water/WaterSurface.Migration.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/Water/WaterSurface.Migration.cs index afac1a3cda2..27456e6d53c 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Water/WaterSurface.Migration.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Water/WaterSurface.Migration.cs @@ -41,23 +41,23 @@ enum Version ); /// Specifies the decal layers that affect the water surface. - [SerializeField, Obsolete("Use renderingLayerMask instead @from(2023.1) (UnityUpgradable) -> renderingLayerMask")] + [SerializeField, Obsolete("Use renderingLayerMask instead #from(2023.1) (UnityUpgradable) -> renderingLayerMask")] public RenderingLayerMask decalLayerMask = RenderingLayerMask.RenderingLayer1; // old DecalLayerDefault is rendering layer 1 /// Specifies the light layers that affect the water surface. - [SerializeField, Obsolete("Use renderingLayerMask instead @from(2023.1) (UnityUpgradable) -> renderingLayerMask")] + [SerializeField, Obsolete("Use renderingLayerMask instead #from(2023.1) (UnityUpgradable) -> renderingLayerMask")] public RenderingLayerMask lightLayerMask = RenderingLayerMask.LightLayerDefault; /// - [SerializeField, Obsolete("Use largeBand0FadeMode instead @from(2023.1)")] + [SerializeField, Obsolete("Use largeBand0FadeMode instead #from(2023.1)")] public bool largeBand0FadeToggle = true; /// - [SerializeField, Obsolete("Use largeBand1FadeMode instead @from(2023.1)")] + [SerializeField, Obsolete("Use largeBand1FadeMode instead #from(2023.1)")] public bool largeBand1FadeToggle = true; /// - [SerializeField, Obsolete("Use ripplesFadeMode instead @from(2023.1)")] + [SerializeField, Obsolete("Use ripplesFadeMode instead #from(2023.1)")] public bool ripplesFadeToggle = true; } } diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Water/WaterSurface/WaterSurface.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/Water/WaterSurface/WaterSurface.cs index f74b6d9b875..d10d843c247 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Water/WaterSurface/WaterSurface.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Water/WaterSurface/WaterSurface.cs @@ -436,13 +436,13 @@ public enum WaterCausticsResolution /// /// Sets the contribution of the ambient probe luminance when multiplied by the underwater scattering color. /// - [Obsolete("Will be removed in the next version.")] + [Obsolete("Will be removed in the next version. #from(6000.0)")] public float underWaterAmbientProbeContribution = 1.0f; /// /// Controls how the scattering color is evaluated for the underwater scenario. /// - [Obsolete("Will be removed in the next version.")] + [Obsolete("Will be removed in the next version. #from(6000.0)")] public enum UnderWaterScatteringColorMode { /// @@ -459,14 +459,14 @@ public enum UnderWaterScatteringColorMode /// /// Sets how the underwater scattering color is specified. /// - [Obsolete("Will be removed in the next version.")] + [Obsolete("Will be removed in the next version. #from(6000.0)")] public UnderWaterScatteringColorMode underWaterScatteringColorMode = UnderWaterScatteringColorMode.ScatteringColor; /// /// Sets the color that is used to simulate the scattering when the camera is under-water. /// [ColorUsage(false)] - [Obsolete("Will be removed in the next version.")] + [Obsolete("Will be removed in the next version. #from(6000.0)")] public Color underWaterScatteringColor = new Color(0.0f, 0.27f, 0.23f); /// diff --git a/Packages/com.unity.render-pipelines.high-definition/Tests/Editor/FrameSettingsTest.cs b/Packages/com.unity.render-pipelines.high-definition/Tests/Editor/FrameSettingsTest.cs index 12d53cf44e6..76969386b1f 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Tests/Editor/FrameSettingsTest.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Tests/Editor/FrameSettingsTest.cs @@ -181,7 +181,9 @@ public void NoDoubleBitIndex() var singleValues = (values as IEnumerable).Distinct(); #pragma warning disable 0612 // Type or member is obsolete +#pragma warning disable CS0618 // Type or member is obsolete var excluded = new List { FrameSettingsField.RoughRefraction }; +#pragma warning restore CS0618 // Type or member is obsolete #pragma warning restore 0612 // Type or member is obsolete //gathering helpful debug info diff --git a/Packages/com.unity.render-pipelines.high-definition/Tests/Editor/HDAnalyticsTests_Defaults.txt b/Packages/com.unity.render-pipelines.high-definition/Tests/Editor/HDAnalyticsTests_Defaults.txt index 57d04ade681..77f3426560d 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Tests/Editor/HDAnalyticsTests_Defaults.txt +++ b/Packages/com.unity.render-pipelines.high-definition/Tests/Editor/HDAnalyticsTests_Defaults.txt @@ -124,6 +124,11 @@ {"dynamicResolutionSettings.defaultInjectionPoint":"AfterPost"}, {"dynamicResolutionSettings.DLSSUseOptimalSettings":"True"}, {"dynamicResolutionSettings.DLSSSharpness":"0.5"}, +{"dynamicResolutionSettings.DLSSRenderPresetForQuality":"0"}, +{"dynamicResolutionSettings.DLSSRenderPresetForBalanced":"0"}, +{"dynamicResolutionSettings.DLSSRenderPresetForPerformance":"0"}, +{"dynamicResolutionSettings.DLSSRenderPresetForUltraPerformance":"0"}, +{"dynamicResolutionSettings.DLSSRenderPresetForDLAA":"0"}, {"dynamicResolutionSettings.FSR2EnableSharpness":"False"}, {"dynamicResolutionSettings.FSR2Sharpness":"0"}, {"dynamicResolutionSettings.FSR2UseOptimalSettings":"False"}, diff --git a/Packages/com.unity.render-pipelines.universal/Editor/2D/Converter/URP2DConverterUtility.cs b/Packages/com.unity.render-pipelines.universal/Editor/2D/Converter/URP2DConverterUtility.cs index ffce745e9ae..c66fc0f190f 100644 --- a/Packages/com.unity.render-pipelines.universal/Editor/2D/Converter/URP2DConverterUtility.cs +++ b/Packages/com.unity.render-pipelines.universal/Editor/2D/Converter/URP2DConverterUtility.cs @@ -152,7 +152,7 @@ public static string GetObjectIDString(UnityEngine.Object obj) { string guid; long localId; - if (AssetDatabase.TryGetGUIDAndLocalFileIdentifier(obj.GetInstanceID(), out guid, out localId)) + if (AssetDatabase.TryGetGUIDAndLocalFileIdentifier(obj.GetEntityId(), out guid, out localId)) return "fileID: " + localId + ", guid: " + guid; return null; diff --git a/Packages/com.unity.render-pipelines.universal/Editor/BuildProcessors/URPBuildDataValidator.cs b/Packages/com.unity.render-pipelines.universal/Editor/BuildProcessors/URPBuildDataValidator.cs index f539ec6d64f..e2a86dc3a20 100644 --- a/Packages/com.unity.render-pipelines.universal/Editor/BuildProcessors/URPBuildDataValidator.cs +++ b/Packages/com.unity.render-pipelines.universal/Editor/BuildProcessors/URPBuildDataValidator.cs @@ -77,9 +77,9 @@ private static void ValidateCompatibilityMode(UniversalRenderPipelineGlobalSetti EditorApplication.delayCall += () => { int answear = EditorUtility.DisplayDialogComplex("Universal Render Pipeline's Compatibility Mode", - "Unity can't build your project because Compatibility Mode (Render Graph disabled) is enabled. This feature is deprecated. Unity now uses the render graph system instead.\n\n" + - "Select \"Use Render Graph\" (Recommended) to update your Project Settings to use the render graph system. You might need to manually update your scripts and assets.\n\n" + - "Select \"Keep Compatibility Mode\" to add a URP_COMPATIBILITY_MODE define to the Scripting Define Symbols in Player Settings for your current build target. Warning: Compatibility Mode will be fully removed in a future release.", + "Unity can't build your project because Compatibility Mode (Render Graph disabled) is active. This feature is deprecated.\n\n" + + "Select \"Use Render Graph\" (Recommended) to update Project Settings. You may need to update scripts and assets.\n\n" + + "Select \"Keep Compatibility Mode\" to add URP_COMPATIBILITY_MODE to Player Settings for this build target. Warning: Compatibility Mode will be removed in a future release.", "Use Render Graph", "Cancel", "Keep Compatibility Mode"); diff --git a/Packages/com.unity.render-pipelines.universal/Editor/Converter/ConversionIndexers.cs b/Packages/com.unity.render-pipelines.universal/Editor/Converter/ConversionIndexers.cs index 533d2bd743e..bc30facc245 100644 --- a/Packages/com.unity.render-pipelines.universal/Editor/Converter/ConversionIndexers.cs +++ b/Packages/com.unity.render-pipelines.universal/Editor/Converter/ConversionIndexers.cs @@ -1,3 +1,5 @@ +using System; +using System.IO; using UnityEditor.Search; using UnityEngine; using Object = UnityEngine.Object; @@ -6,14 +8,35 @@ namespace UnityEditor.Rendering.Universal { static class ConversionIndexers { - private const int k_Version = 8; + private const int k_Version = 9; + + [CustomObjectIndexer(typeof(Component), version = k_Version)] + internal static void ComponentConversionIndexer(CustomObjectIndexerTarget context, ObjectIndexer indexer) + { + ConversionIndexer(context, indexer); + } + + [CustomObjectIndexer(typeof(ScriptableObject), version = k_Version)] + internal static void ScriptableObjectConversionIndexer(CustomObjectIndexerTarget context, ObjectIndexer indexer) + { + ConversionIndexer(context, indexer); + } - [CustomObjectIndexer(typeof(Object), version = k_Version)] internal static void ConversionIndexer(CustomObjectIndexerTarget context, ObjectIndexer indexer) { + var path = AssetDatabase.GetAssetPath(context.target); + if (path.StartsWith("Packages")) + return; + //Custom finding of all default Material properties on every single object type including custom types if (MaterialReferenceBuilder.MaterialReferenceLookup.TryGetValue(context.targetType, out var methods)) { + if (!string.IsNullOrEmpty(path) && + !path.EndsWith(".asset", StringComparison.InvariantCultureIgnoreCase) && + !path.EndsWith(".prefab", StringComparison.InvariantCultureIgnoreCase) && + !path.EndsWith(".unity", StringComparison.InvariantCultureIgnoreCase)) + return; + foreach (var method in methods) { if (method == null) continue; diff --git a/Packages/com.unity.render-pipelines.universal/Editor/Converter/MaterialReferenceBuilder.cs b/Packages/com.unity.render-pipelines.universal/Editor/Converter/MaterialReferenceBuilder.cs index fbd49bd9b4e..ecd78ef2fd1 100644 --- a/Packages/com.unity.render-pipelines.universal/Editor/Converter/MaterialReferenceBuilder.cs +++ b/Packages/com.unity.render-pipelines.universal/Editor/Converter/MaterialReferenceBuilder.cs @@ -16,7 +16,7 @@ static MaterialReferenceBuilder() MaterialReferenceLookup = GetMaterialReferenceLookup(); } - private static Dictionary> GetMaterialReferenceLookup() + internal static Dictionary> GetMaterialReferenceLookup() { var result = new Dictionary>(); diff --git a/Packages/com.unity.render-pipelines.universal/Editor/Converter/ReadonlyMaterialConverter.cs b/Packages/com.unity.render-pipelines.universal/Editor/Converter/ReadonlyMaterialConverter.cs index 6711b944ac1..fa3380beecb 100644 --- a/Packages/com.unity.render-pipelines.universal/Editor/Converter/ReadonlyMaterialConverter.cs +++ b/Packages/com.unity.render-pipelines.universal/Editor/Converter/ReadonlyMaterialConverter.cs @@ -49,7 +49,7 @@ public override void OnInitialize(InitializeConverterContext ctx, Action callbac { Search.SearchService.Request ( - Search.SearchService.CreateContext("asset", "urp=convert-readonly a=URPConverterIndex"), + Search.SearchService.CreateContext("asset", "urp=convert-readonly"), (searchContext, items) => { // we're going to do this step twice in order to get them ordered, but it should be fast diff --git a/Packages/com.unity.render-pipelines.universal/Editor/Converter/RenderPipelineConvertersEditor.cs b/Packages/com.unity.render-pipelines.universal/Editor/Converter/RenderPipelineConvertersEditor.cs index e4be7b4dc0f..d083527cfad 100644 --- a/Packages/com.unity.render-pipelines.universal/Editor/Converter/RenderPipelineConvertersEditor.cs +++ b/Packages/com.unity.render-pipelines.universal/Editor/Converter/RenderPipelineConvertersEditor.cs @@ -2,16 +2,17 @@ using System.Collections.Generic; using System.Linq; using System.Reflection; +using System.Text; using UnityEditor.SceneManagement; -using UnityEngine; using UnityEditor.Search; using UnityEditor.UIElements; -using UnityEngine.UIElements; +using UnityEngine; using UnityEngine.Assertions; using UnityEngine.Rendering; using UnityEngine.SceneManagement; +using UnityEngine.UIElements; using UnityEditor.Rendering.Analytics; - +using static UnityEditor.Progress; namespace UnityEditor.Rendering.Universal { @@ -62,6 +63,11 @@ class ConverterState public bool isActiveAndEnabled => isEnabled && isActive; public bool requiresInitialization => !isInitialized && isActiveAndEnabled; + + public override string ToString() + { + return $"Warnings: {warnings} - Errors: {errors} - Ok: {success} - Total: {items?.Count ?? 0}"; + } } [Serializable] @@ -106,6 +112,7 @@ internal class RenderPipelineConvertersEditor : EditorWindow List m_Containers = new List(); int m_ContainerChoiceIndex = 0; int m_WorkerCount; + private Action m_ReadonlyConversionDone; // This is a list of Converter States which holds a list of which converter items/assets are active // There is one for each Converter. @@ -115,6 +122,9 @@ internal class RenderPipelineConvertersEditor : EditorWindow RenderPipelineConverterContainer currentContainer => m_Containers[m_ContainerChoiceIndex]; + private bool m_ExtendedIndexing; + private bool m_PackageIndexing; + // Name of the index file string m_URPConverterIndex = "URPConverterIndex"; @@ -148,6 +158,7 @@ internal static void DontSaveToLayout(EditorWindow wnd) void OnEnable() { + m_ReadonlyConversionDone = null; InitIfNeeded(); GraphicsToolLifetimeAnalytic.WindowOpened(); } @@ -157,6 +168,42 @@ private void OnDisable() GraphicsToolLifetimeAnalytic.WindowClosed(); } + internal static void ConvertReadonlyMaterials(Action conversionDone) + { + var editor = GetWindow(); + editor.m_ReadonlyConversionDone = () => + { + editor.Close(); + conversionDone(); + }; + + // Enable Material Conversion + var converterIndex = 0; + for (; converterIndex < editor.m_CoreConvertersList.Count; ++converterIndex) + { + if (editor.m_CoreConvertersList[converterIndex] is ReadonlyMaterialConverter) + { + break; + } + } + + if (converterIndex < editor.m_CoreConvertersList.Count) + { + // Start Conversion + var item = editor.m_VEList[converterIndex]; + item.Q("converterEnabled").value = true; + editor.m_ConverterStates[converterIndex].isEnabled = true; + editor.m_ConverterStates[converterIndex].isActive = true; + editor.InitializeAndConvert(null); + } + else + { + // Error state: no converter + editor.m_ReadonlyConversionDone = null; + conversionDone(); + } + } + void InitIfNeeded() { if (m_CoreConvertersList.Any()) @@ -465,8 +512,7 @@ void RecreateUI() var converterEnabledToggle = item.Q("converterEnabled"); converterEnabledToggle.RegisterCallback((evt) => { - ConverterStatusInfo(id, item); - InitOrConvert(); + ToggleConverter(id); // This toggle needs to stop propagation since it is inside another clickable element evt.StopPropagation(); }); @@ -603,6 +649,13 @@ void RecreateUI() rootVisualElement.Bind(m_SerializedObject); } + private void ToggleConverter(int index) + { + var item = m_VEList[index]; + ConverterStatusInfo(index, item); + InitOrConvert(); + } + private void HideUnhideConverters() { var type = currentContainer.GetType(); @@ -760,7 +813,7 @@ void InitializeAllActiveConverters(ClickEvent evt) AssetDatabase.ForceToDesiredWorkerCount(); AssetDatabase.DesiredWorkerCount = System.Convert.ToInt32(Math.Ceiling(Environment.ProcessorCount * 0.8)); - CreateSearchIndex(m_URPConverterIndex); + SetupIndexingForConversion(m_URPConverterIndex); } // Otherwise do everything directly else @@ -768,19 +821,16 @@ void InitializeAllActiveConverters(ClickEvent evt) ConverterCollectData(() => { EditorUtility.ClearProgressBar(); }); } - void CreateSearchIndex(string name) + void SetupIndexingForConversion(string name) { - // Create .index in the project - var title = $"Building {name} search index"; - EditorUtility.DisplayProgressBar(title, "Creating search index...", -1f); - - Search.SearchService.CreateIndex(name, IndexingOptions.Temporary | IndexingOptions.Extended, - new[] { "Assets" }, - new[] { ".prefab", ".unity", ".asset" }, - null, OnSearchIndexCreated); + var title = $"Modifying {name} search index"; + EditorUtility.DisplayProgressBar(title, "Modifying search index...", -1f); + m_ExtendedIndexing = Search.SearchService.IsDeepIndexingEnabled(); + m_PackageIndexing = Search.SearchService.IsPackageIndexingEnabled(); + Search.SearchService.ChangeIndexingSettings(deepIndexing:true, packageIndexing:false, OnSearchIndexReady); } - void OnSearchIndexCreated(string name, string path, Action onComplete) + void OnSearchIndexReady() { EditorUtility.ClearProgressBar(); ConverterCollectData(() => @@ -795,7 +845,14 @@ void OnSearchIndexCreated(string name, string path, Action onComplete) AssetDatabase.ForceToDesiredWorkerCount(); RecreateUI(); - onComplete(); + Search.SearchService.ChangeIndexingSettings(m_ExtendedIndexing, m_PackageIndexing,() => + { + m_ExtendedIndexing = false; + m_PackageIndexing = false; + var done = m_ReadonlyConversionDone; + m_ReadonlyConversionDone = null; + done?.Invoke(); + }); }); } @@ -874,10 +931,22 @@ void AddToContextMenu(ContextualMenuPopulateEvent evt, int coreConverterIndex) ConvertIndex(coreConverterIndex, (int)ve.userData); // Refreshing the list to show the new state m_ConverterSelectedVE.Q("converterItems").Rebuild(); + LogConverterResult(coreConverterIndex); }, isActive ? DropdownMenuAction.AlwaysEnabled : DropdownMenuAction.AlwaysDisabled); } + void LogConverterResult(int coreConverterIndex) + { + var converterState = m_ConverterStates[coreConverterIndex]; + if (converterState.items.Count() > 0) + { + var sb = new StringBuilder($"Conversion results for item: {m_CoreConvertersList[coreConverterIndex].name}:{Environment.NewLine}"); + sb.AppendLine(converterState.ToString()); + Debug.Log(sb); + } + } + void UpdateInfo(int stateIndex, RunItemContext ctx) { if (ctx.didFail) @@ -955,6 +1024,8 @@ void Convert(ClickEvent evt) } } + LogConverterResult(index); + contextInfo.Add(converterInfo); m_CoreConvertersList[index].OnPostRun(); AssetDatabase.SaveAssets(); @@ -967,7 +1038,7 @@ void Convert(ClickEvent evt) EditorSceneManager.OpenScene(currentScenePath); } - RecreateUI(); + RecreateUI(); GraphicsToolUsageAnalytic.ActionPerformed(nameof(Convert), contextInfo.ToNestedColumn()); } diff --git a/Packages/com.unity.render-pipelines.universal/Editor/Deprecated.cs b/Packages/com.unity.render-pipelines.universal/Editor/Deprecated.cs index 91c2742fe77..9caa83f6f82 100644 --- a/Packages/com.unity.render-pipelines.universal/Editor/Deprecated.cs +++ b/Packages/com.unity.render-pipelines.universal/Editor/Deprecated.cs @@ -5,7 +5,7 @@ namespace UnityEditor.Rendering.Universal /// /// Editor script for a ForwardRendererData class. /// - [Obsolete("ForwardRendererDataEditor has been deprecated. Use UniversalRendererDataEditor instead (UnityUpgradable) -> UniversalRendererDataEditor", true)] + [Obsolete("ForwardRendererDataEditor has been deprecated. Use UniversalRendererDataEditor instead #from(2021.2) #breakingFrom(2021.2) (UnityUpgradable) -> UniversalRendererDataEditor", true)] public class ForwardRendererDataEditor : ScriptableRendererDataEditor { /// diff --git a/Packages/com.unity.render-pipelines.universal/Editor/RendererFeatures/NewPostProcessRendererFeature.cs.txt b/Packages/com.unity.render-pipelines.universal/Editor/RendererFeatures/NewPostProcessRendererFeature.cs.txt index 60a7ebe1f67..e345d830186 100644 --- a/Packages/com.unity.render-pipelines.universal/Editor/RendererFeatures/NewPostProcessRendererFeature.cs.txt +++ b/Packages/com.unity.render-pipelines.universal/Editor/RendererFeatures/NewPostProcessRendererFeature.cs.txt @@ -158,11 +158,12 @@ public sealed class #FEATURE_TYPE# : ScriptableRendererFeature #region PASS_NON_RENDER_GRAPH_PATH +#if URP_COMPATIBILITY_MODE // Override the OnCameraSetup method to configure render targets and their clear states, and create temporary render target textures. // Unity calls this method before executing the render pass. // This method is used only in the Compatibility Mode path. // Use ConfigureTarget or ConfigureClear in this method. Don't use CommandBuffer.SetRenderTarget. - [System.Obsolete("This rendering path works in Compatibility Mode only, which is deprecated. Use the render graph API instead.", false)] + [System.Obsolete("This rendering path works in Compatibility Mode only, which is deprecated. Use the render graph API instead.")] public override void OnCameraSetup(CommandBuffer cmd, ref RenderingData renderingData) { // Reset the render target to default. @@ -176,7 +177,7 @@ public sealed class #FEATURE_TYPE# : ScriptableRendererFeature // Override the Execute method to implement the rendering logic. Use ScriptableRenderContext to issue drawing commands or execute command buffers. // You don't need to call ScriptableRenderContext.Submit. // This method is used only in the Compatibility Mode path. - [System.Obsolete("This rendering path works in Compatibility Mode only, which is deprecated. Use the render graph API instead.", false)] + [System.Obsolete("This rendering path works in Compatibility Mode only, which is deprecated. Use the render graph API instead.")] public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) { @@ -212,6 +213,7 @@ public sealed class #FEATURE_TYPE# : ScriptableRendererFeature // Release the command buffer. CommandBufferPool.Release(cmd); } +#endif // Free the resources the camera uses. // This method is used only in the Compatibility Mode path. diff --git a/Packages/com.unity.render-pipelines.universal/Editor/ShaderBuildPreprocessor.cs b/Packages/com.unity.render-pipelines.universal/Editor/ShaderBuildPreprocessor.cs index 1c5eea9b97c..cff29c71ba4 100644 --- a/Packages/com.unity.render-pipelines.universal/Editor/ShaderBuildPreprocessor.cs +++ b/Packages/com.unity.render-pipelines.universal/Editor/ShaderBuildPreprocessor.cs @@ -126,6 +126,7 @@ class ShaderBuildPreprocessor : IPreprocessBuildWithReport, IPostprocessBuildWit public static bool s_StripUnusedPostProcessingVariants; public static bool s_StripScreenCoordOverrideVariants; public static bool s_StripBicubicLightmapSamplingVariants; + public static bool s_StripReflectionProbeRotationVariants; public static bool s_Strip2DPasses; public static bool s_UseSoftShadowQualityLevelKeywords; public static bool s_StripXRVariants; @@ -288,6 +289,11 @@ private static void GetGlobalAndPlatformSettings(bool isDevelopmentBuild) else s_StripBicubicLightmapSamplingVariants = true; + if (GraphicsSettings.TryGetRenderPipelineSettings(out var reflectionProbeSettings)) + s_StripReflectionProbeRotationVariants = !reflectionProbeSettings.UseReflectionProbeRotation; + else + s_StripReflectionProbeRotationVariants = true; + PlatformBuildTimeDetect platformBuildTimeDetect = PlatformBuildTimeDetect.GetInstance(); bool isShaderAPIMobileDefined = GraphicsSettings.HasShaderDefine(BuiltinShaderDefine.SHADER_API_MOBILE); if (platformBuildTimeDetect.isSwitch || isShaderAPIMobileDefined) @@ -464,6 +470,7 @@ out bool everyRendererHasSSAO s_StripDebugDisplayShaders, s_StripScreenCoordOverrideVariants, s_StripBicubicLightmapSamplingVariants, + s_StripReflectionProbeRotationVariants, s_StripUnusedVariants, ref ssaoRendererFeatures ); @@ -931,6 +938,7 @@ internal static ShaderPrefilteringData CreatePrefilteringSettings( bool stripDebug, bool stripScreenCoord, bool stripBicubicLightmap, + bool stripReflectionProbeRotation, bool stripUnusedVariants, ref List ssaoRendererFeatures ) @@ -949,6 +957,8 @@ ref List ssaoRendererFeatures spd.stripDebugDisplay = stripDebug; spd.stripScreenCoordOverride = stripScreenCoord; spd.stripBicubicLightmapSampling = stripBicubicLightmap; + spd.stripReflectionProbeRotation = stripReflectionProbeRotation; + spd.stripScreenSpaceIrradiance = true; // This is currently not exposed to the user nor used by anything internal. // Rendering Modes // Check if only Deferred is being used diff --git a/Packages/com.unity.render-pipelines.universal/Editor/ShaderGUI/BaseShaderGUI.cs b/Packages/com.unity.render-pipelines.universal/Editor/ShaderGUI/BaseShaderGUI.cs index 5330758fd7c..dd311527a25 100644 --- a/Packages/com.unity.render-pipelines.universal/Editor/ShaderGUI/BaseShaderGUI.cs +++ b/Packages/com.unity.render-pipelines.universal/Editor/ShaderGUI/BaseShaderGUI.cs @@ -435,7 +435,7 @@ protected class Styles /// This function has been deprecated and has been renamed to ValidateMaterial. /// /// The material that has been changed. - [Obsolete("MaterialChanged has been renamed ValidateMaterial", true)] + [Obsolete("MaterialChanged has been renamed ValidateMaterial #from(2022.1) #breakingFrom(2023.1)", true)] public virtual void MaterialChanged(Material material) { ValidateMaterial(material); diff --git a/Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/PBRForwardPass.hlsl b/Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/PBRForwardPass.hlsl index 56910d9701c..0acd9e96da6 100644 --- a/Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/PBRForwardPass.hlsl +++ b/Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/PBRForwardPass.hlsl @@ -57,7 +57,9 @@ void InitializeInputData(Varyings input, SurfaceDescription surfaceDescription, void InitializeBakedGIData(Varyings input, inout InputData inputData) { -#if defined(DYNAMICLIGHTMAP_ON) +#if defined(_SCREEN_SPACE_IRRADIANCE) + inputData.bakedGI = SAMPLE_GI(_ScreenSpaceIrradiance, input.positionCS.xy); +#elif defined(DYNAMICLIGHTMAP_ON) inputData.bakedGI = SAMPLE_GI(input.staticLightmapUV, input.dynamicLightmapUV.xy, input.sh, inputData.normalWS); inputData.shadowMask = SAMPLE_SHADOWMASK(input.staticLightmapUV); #elif !defined(LIGHTMAP_ON) && (defined(PROBE_VOLUMES_L1) || defined(PROBE_VOLUMES_L2)) diff --git a/Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/PBRGBufferPass.hlsl b/Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/PBRGBufferPass.hlsl index da9b01cc4f7..22247357d87 100644 --- a/Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/PBRGBufferPass.hlsl +++ b/Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/PBRGBufferPass.hlsl @@ -53,7 +53,9 @@ void InitializeInputData(Varyings input, SurfaceDescription surfaceDescription, void InitializeBakedGIData(Varyings input, inout InputData inputData) { -#if defined(DYNAMICLIGHTMAP_ON) +#if defined(_SCREEN_SPACE_IRRADIANCE) + inputData.bakedGI = SAMPLE_GI(_ScreenSpaceIrradiance, input.positionCS.xy); +#elif defined(DYNAMICLIGHTMAP_ON) inputData.bakedGI = SAMPLE_GI(input.staticLightmapUV, input.dynamicLightmapUV.xy, input.sh, inputData.normalWS); inputData.shadowMask = SAMPLE_SHADOWMASK(input.staticLightmapUV); #elif !defined(LIGHTMAP_ON) && (defined(PROBE_VOLUMES_L1) || defined(PROBE_VOLUMES_L2)) diff --git a/Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/ShaderPassDecal.hlsl b/Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/ShaderPassDecal.hlsl index 6292f9c1ccf..64581ef4577 100644 --- a/Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/ShaderPassDecal.hlsl +++ b/Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/ShaderPassDecal.hlsl @@ -87,7 +87,9 @@ void InitializeInputData(Varyings input, float3 positionWS, half3 normalWS, half inputData.vertexLighting = input.fogFactorAndVertexLight.yzw; #endif -#if defined(VARYINGS_NEED_DYNAMIC_LIGHTMAP_UV) && defined(DYNAMICLIGHTMAP_ON) +#if defined(_SCREEN_SPACE_IRRADIANCE) + inputData.bakedGI = SAMPLE_GI(_ScreenSpaceIrradiance, input.positionCS.xy); +#elif defined(VARYINGS_NEED_DYNAMIC_LIGHTMAP_UV) && defined(DYNAMICLIGHTMAP_ON) inputData.bakedGI = SAMPLE_GI(input.staticLightmapUV, input.dynamicLightmapUV.xy, half3(input.sh), normalWS); #if defined(VARYINGS_NEED_STATIC_LIGHTMAP_UV) inputData.shadowMask = SAMPLE_SHADOWMASK(input.staticLightmapUV); diff --git a/Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/UnlitGBufferPass.hlsl b/Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/UnlitGBufferPass.hlsl index 56024e648fd..8f21eff2b37 100644 --- a/Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/UnlitGBufferPass.hlsl +++ b/Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/UnlitGBufferPass.hlsl @@ -7,16 +7,10 @@ void InitializeInputData(Varyings input, out InputData inputData) { inputData = (InputData)0; - // InputData is only used for DebugDisplay purposes in Unlit, so these are not initialized. - #if defined(DEBUG_DISPLAY) - inputData.positionWS = input.positionWS; inputData.positionCS = input.positionCS; - inputData.normalWS = NormalizeNormalPerPixel(input.normalWS); - #else - inputData.positionWS = half3(0, 0, 0); - inputData.normalWS = NormalizeNormalPerPixel(input.normalWS); + inputData.normalWS = normalize(input.normalWS); + inputData.positionWS = float3(0, 0, 0); inputData.viewDirectionWS = half3(0, 0, 1); - #endif inputData.shadowCoord = 0; inputData.fogCoord = 0; inputData.vertexLighting = half3(0, 0, 0); diff --git a/Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Targets/UniversalDecalSubTarget.cs b/Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Targets/UniversalDecalSubTarget.cs index 62aceeeee70..b73a8719002 100644 --- a/Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Targets/UniversalDecalSubTarget.cs +++ b/Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Targets/UniversalDecalSubTarget.cs @@ -986,6 +986,7 @@ static class Descriptors { CoreKeywordDescriptors.DirectionalLightmapCombined }, { CoreKeywordDescriptors.UseLegacyLightmaps }, { CoreKeywordDescriptors.LightmapBicubicSampling }, + { CoreKeywordDescriptors.ReflectionProbeRotation }, { CoreKeywordDescriptors.MainLightShadows }, { CoreKeywordDescriptors.AdditionalLights }, { CoreKeywordDescriptors.AdditionalLightShadows }, @@ -1008,6 +1009,7 @@ static class Descriptors public static readonly KeywordCollection ScreenSpaceProjector = new KeywordCollection { { CoreKeywordDescriptors.MainLightShadows }, + { CoreKeywordDescriptors.ScreenSpaceIrradiance }, { CoreKeywordDescriptors.AdditionalLights }, { CoreKeywordDescriptors.AdditionalLightShadows }, { CoreKeywordDescriptors.ShadowsSoft }, @@ -1025,6 +1027,7 @@ static class Descriptors { CoreKeywordDescriptors.DirectionalLightmapCombined }, { CoreKeywordDescriptors.UseLegacyLightmaps }, { CoreKeywordDescriptors.LightmapBicubicSampling }, + { CoreKeywordDescriptors.ReflectionProbeRotation }, { CoreKeywordDescriptors.MainLightShadows }, { CoreKeywordDescriptors.ShadowsSoft }, { CoreKeywordDescriptors.LightmapShadowMixing }, diff --git a/Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Targets/UniversalLitSubTarget.cs b/Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Targets/UniversalLitSubTarget.cs index cde573d4b3d..db82831f0d6 100644 --- a/Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Targets/UniversalLitSubTarget.cs +++ b/Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Targets/UniversalLitSubTarget.cs @@ -842,11 +842,13 @@ static class LitKeywords public static readonly KeywordCollection Forward = new KeywordCollection { { CoreKeywordDescriptors.ScreenSpaceAmbientOcclusion }, + { CoreKeywordDescriptors.ScreenSpaceIrradiance }, { CoreKeywordDescriptors.StaticLightmap }, { CoreKeywordDescriptors.DynamicLightmap }, { CoreKeywordDescriptors.DirectionalLightmapCombined }, { CoreKeywordDescriptors.UseLegacyLightmaps }, { CoreKeywordDescriptors.LightmapBicubicSampling }, + { CoreKeywordDescriptors.ReflectionProbeRotation }, { CoreKeywordDescriptors.MainLightShadows }, { CoreKeywordDescriptors.AdditionalLights }, { CoreKeywordDescriptors.AdditionalLightShadows }, @@ -866,11 +868,13 @@ static class LitKeywords public static readonly KeywordCollection GBuffer = new KeywordCollection { + { CoreKeywordDescriptors.ScreenSpaceIrradiance }, { CoreKeywordDescriptors.StaticLightmap }, { CoreKeywordDescriptors.DynamicLightmap }, { CoreKeywordDescriptors.DirectionalLightmapCombined }, { CoreKeywordDescriptors.UseLegacyLightmaps }, { CoreKeywordDescriptors.LightmapBicubicSampling }, + { CoreKeywordDescriptors.ReflectionProbeRotation }, { CoreKeywordDescriptors.MainLightShadows }, { CoreKeywordDescriptors.ReflectionProbeBlending }, { CoreKeywordDescriptors.ReflectionProbeBoxProjection }, 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 469e33e0d53..a51042c73ec 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 @@ -245,7 +245,7 @@ public string disableBatching } } - public SubTarget activeSubTarget + public override SubTarget activeSubTarget { get => m_ActiveSubTarget.value; set => m_ActiveSubTarget = value; @@ -2345,7 +2345,17 @@ static class CoreKeywordDescriptors public static readonly KeywordDescriptor ScreenSpaceAmbientOcclusion = new KeywordDescriptor() { displayName = "Screen Space Ambient Occlusion", - referenceName = "_SCREEN_SPACE_OCCLUSION", + referenceName = ShaderKeywordStrings.ScreenSpaceOcclusion, + type = KeywordType.Boolean, + definition = KeywordDefinition.MultiCompile, + scope = KeywordScope.Global, + stages = KeywordShaderStage.Fragment, + }; + + public static readonly KeywordDescriptor ScreenSpaceIrradiance = new KeywordDescriptor() + { + displayName = "Screen Space Irradiance", + referenceName = ShaderKeywordStrings.ScreenSpaceIrradiance, type = KeywordType.Boolean, definition = KeywordDefinition.MultiCompile, scope = KeywordScope.Global, @@ -2369,7 +2379,7 @@ static class CoreKeywordDescriptors definition = KeywordDefinition.Predefined, scope = KeywordScope.Local, }; - + public static readonly KeywordDescriptor LightmapBicubicSampling = new KeywordDescriptor() { displayName = "Lightmap Bicubic Sampling", @@ -2378,6 +2388,15 @@ static class CoreKeywordDescriptors definition = KeywordDefinition.MultiCompile, scope = KeywordScope.Global }; + + public static readonly KeywordDescriptor ReflectionProbeRotation = new KeywordDescriptor() + { + displayName = "ReflectionProbe Rotation", + referenceName = ShaderKeywordStrings.ReflectionProbeRotation, + type = KeywordType.Boolean, + definition = KeywordDefinition.MultiCompile, + scope = KeywordScope.Global + }; } #endregion diff --git a/Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Targets/UniversalUnlitSubTarget.cs b/Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Targets/UniversalUnlitSubTarget.cs index 24782977ce9..06368956d3f 100644 --- a/Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Targets/UniversalUnlitSubTarget.cs +++ b/Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Targets/UniversalUnlitSubTarget.cs @@ -375,13 +375,14 @@ static class UnlitKeywords { public static readonly KeywordCollection Forward = new KeywordCollection() { - // This contain lightmaps because without a proper custom lighting solution in Shadergraph, + // This contains lightmaps because without a proper custom lighting solution in Shadergraph, // people start with the unlit then add lightmapping nodes to it. // If we removed lightmaps from the unlit target this would ruin a lot of peoples days. CoreKeywordDescriptors.StaticLightmap, CoreKeywordDescriptors.DirectionalLightmapCombined, CoreKeywordDescriptors.UseLegacyLightmaps, CoreKeywordDescriptors.LightmapBicubicSampling, + CoreKeywordDescriptors.ReflectionProbeRotation, CoreKeywordDescriptors.SampleGI, CoreKeywordDescriptors.DBuffer, CoreKeywordDescriptors.DebugDisplay, @@ -393,6 +394,8 @@ static class UnlitKeywords CoreKeywordDescriptors.DBuffer, CoreKeywordDescriptors.ScreenSpaceAmbientOcclusion, CoreKeywordDescriptors.RenderPassEnabled, + CoreKeywordDescriptors.GBufferNormalsOct, + CoreKeywordDescriptors.ShadowsShadowmask }; } #endregion diff --git a/Packages/com.unity.render-pipelines.universal/Editor/ShaderScriptableStripper.cs b/Packages/com.unity.render-pipelines.universal/Editor/ShaderScriptableStripper.cs index 4431d17402f..0cfad880d21 100644 --- a/Packages/com.unity.render-pipelines.universal/Editor/ShaderScriptableStripper.cs +++ b/Packages/com.unity.render-pipelines.universal/Editor/ShaderScriptableStripper.cs @@ -27,6 +27,7 @@ internal interface IShaderScriptableStrippingData public bool stripDebugDisplayShaders { get; set; } public bool stripScreenCoordOverrideVariants { get; set; } public bool stripBicubicLightmapSamplingVariants { get; set; } + public bool stripReflectionProbeRotationVariants { get; set; } public bool stripUnusedVariants { get; set; } public bool stripUnusedPostProcessingVariants { get; set; } public bool stripUnusedXRVariants { get; set; } @@ -65,6 +66,7 @@ internal struct StrippingData : IShaderScriptableStrippingData public bool stripDebugDisplayShaders { get; set; } public bool stripScreenCoordOverrideVariants { get; set; } public bool stripBicubicLightmapSamplingVariants { get; set; } + public bool stripReflectionProbeRotationVariants { get; set; } public bool stripUnusedVariants { get; set; } public bool stripUnusedPostProcessingVariants { get; set; } public bool stripUnusedXRVariants { get; set; } @@ -142,6 +144,7 @@ public bool PassHasKeyword(LocalKeyword keyword) LocalKeyword m_ReflectionProbeBlending; LocalKeyword m_ReflectionProbeBoxProjection; LocalKeyword m_ReflectionProbeAtlas; + LocalKeyword m_ReflectionProbeRotation; LocalKeyword m_CastingPunctualLightShadow; LocalKeyword m_SoftShadows; LocalKeyword m_SoftShadowsLow; @@ -156,6 +159,7 @@ public bool PassHasKeyword(LocalKeyword keyword) LocalKeyword m_AlphaTestOn; LocalKeyword m_GbufferNormalsOct; LocalKeyword m_ScreenSpaceOcclusion; + LocalKeyword m_ScreenSpaceIrradiance; LocalKeyword m_UseFastSRGBLinearConversion; LocalKeyword m_LightLayers; LocalKeyword m_DecalLayers; @@ -211,6 +215,7 @@ private void InitializeLocalShaderKeywords([DisallowNull] Shader shader) m_ReflectionProbeBlending = TryGetLocalKeyword(shader, ShaderKeywordStrings.ReflectionProbeBlending); m_ReflectionProbeBoxProjection = TryGetLocalKeyword(shader, ShaderKeywordStrings.ReflectionProbeBoxProjection); m_ReflectionProbeAtlas = TryGetLocalKeyword(shader, ShaderKeywordStrings.ReflectionProbeAtlas); + m_ReflectionProbeRotation = TryGetLocalKeyword(shader, ShaderKeywordStrings.ReflectionProbeRotation); m_CastingPunctualLightShadow = TryGetLocalKeyword(shader, ShaderKeywordStrings.CastingPunctualLightShadow); m_SoftShadows = TryGetLocalKeyword(shader, ShaderKeywordStrings.SoftShadows); m_SoftShadowsLow = TryGetLocalKeyword(shader, ShaderKeywordStrings.SoftShadowsLow); @@ -225,6 +230,7 @@ private void InitializeLocalShaderKeywords([DisallowNull] Shader shader) m_AlphaTestOn = TryGetLocalKeyword(shader, ShaderKeywordStrings._ALPHATEST_ON); m_GbufferNormalsOct = TryGetLocalKeyword(shader, ShaderKeywordStrings._GBUFFER_NORMALS_OCT); m_ScreenSpaceOcclusion = TryGetLocalKeyword(shader, ShaderKeywordStrings.ScreenSpaceOcclusion); + m_ScreenSpaceIrradiance = TryGetLocalKeyword(shader, ShaderKeywordStrings.ScreenSpaceIrradiance); m_UseFastSRGBLinearConversion = TryGetLocalKeyword(shader, ShaderKeywordStrings.UseFastSRGBLinearConversion); m_LightLayers = TryGetLocalKeyword(shader, ShaderKeywordStrings.LightLayers); m_DecalLayers = TryGetLocalKeyword(shader, ShaderKeywordStrings.DecalLayers); @@ -394,6 +400,11 @@ internal bool StripUnusedFeatures_ScreenCoordOverride(ref IShaderScriptableStrip return strippingData.stripScreenCoordOverrideVariants && strippingData.IsKeywordEnabled(m_ScreenCoordOverride); } + internal bool StripUnusedFeatures_ScreenSpaceIrradiance(ref IShaderScriptableStrippingData strippingData) + { + return strippingData.IsKeywordEnabled(m_ScreenSpaceIrradiance); // Screen space irradiance is currently not exposed to the user nor used by anything internal. + } + internal bool StripUnusedFeatures_BicubicLightmapSampling(ref IShaderScriptableStrippingData strippingData) { if (strippingData.PassHasKeyword(m_LightmapBicubicSampling)) @@ -405,6 +416,16 @@ internal bool StripUnusedFeatures_BicubicLightmapSampling(ref IShaderScriptableS return false; } + internal bool StripUnusedFeatures_ReflectionProbeRotation(ref IShaderScriptableStrippingData strippingData) + { + if (strippingData.PassHasKeyword(m_ReflectionProbeRotation)) + { + bool useRotation = !strippingData.stripReflectionProbeRotationVariants; + return useRotation != strippingData.IsKeywordEnabled(m_ReflectionProbeRotation); + } + return false; + } + internal bool StripUnusedFeatures_PunctualLightShadows(ref IShaderScriptableStrippingData strippingData) { // Shadow caster punctual light strip @@ -803,9 +824,15 @@ internal bool StripUnusedFeatures(ref IShaderScriptableStrippingData strippingDa if (StripUnusedFeatures_ScreenCoordOverride(ref strippingData)) return true; + if (StripUnusedFeatures_ScreenSpaceIrradiance(ref strippingData)) + return true; + if (StripUnusedFeatures_BicubicLightmapSampling(ref strippingData)) return true; + if (StripUnusedFeatures_ReflectionProbeRotation(ref strippingData)) + return true; + if (StripUnusedFeatures_MixedLighting(ref strippingData)) return true; @@ -1192,6 +1219,7 @@ public bool CanRemoveVariant([DisallowNull] Shader shader, ShaderSnippetData pas stripDebugDisplayShaders = ShaderBuildPreprocessor.s_StripDebugDisplayShaders, stripScreenCoordOverrideVariants = ShaderBuildPreprocessor.s_StripScreenCoordOverrideVariants, stripBicubicLightmapSamplingVariants = ShaderBuildPreprocessor.s_StripBicubicLightmapSamplingVariants, + stripReflectionProbeRotationVariants = ShaderBuildPreprocessor.s_StripReflectionProbeRotationVariants, stripUnusedVariants = ShaderBuildPreprocessor.s_StripUnusedVariants, stripUnusedPostProcessingVariants = ShaderBuildPreprocessor.s_StripUnusedPostProcessingVariants, stripUnusedXRVariants = ShaderBuildPreprocessor.s_StripXRVariants, diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/2D/Clipper.cs b/Packages/com.unity.render-pipelines.universal/Runtime/2D/Clipper.cs index 02d99841774..3cdea1537d1 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/2D/Clipper.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/2D/Clipper.cs @@ -425,7 +425,7 @@ public IntRect(IntRect ir) /// /// Options for clip types. /// - [Obsolete("Will be removed in 2025.1", true)] + [Obsolete("This enum is obsolete. #from(2023.1) #breakingFrom(2023.1)", true)] public enum ClipType { /// @@ -452,7 +452,7 @@ public enum ClipType /// /// Options for polygon types. /// - [Obsolete("Will be removed in 2025.1", true)] + [Obsolete("This enum is obsolete. #from(2023.1) #breakingFrom(2023.1)", true)] public enum PolyType { /// @@ -474,7 +474,7 @@ public enum PolyType /// /// Options for polygon filling types. /// - [Obsolete("Will be removed in 2025.1", true)] + [Obsolete("This enum is obsolete. #from(2023.1) #breakingFrom(2023.1)", true)] public enum PolyFillType { /// @@ -501,7 +501,7 @@ public enum PolyFillType /// /// Options for join types. /// - [Obsolete("Will be removed in 2025.1", true)] + [Obsolete("This enum is obsolete. #from(2023.1) #breakingFrom(2023.1)", true)] public enum JoinType { /// @@ -513,7 +513,7 @@ public enum JoinType /// /// Options for end types. /// - [Obsolete("Will be removed in 2025.1", true)] + [Obsolete("This enum is obsolete. #from(2023.1) #breakingFrom(2023.1)", true)] public enum EndType { /// diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/2D/Light2D.cs b/Packages/com.unity.render-pipelines.universal/Runtime/2D/Light2D.cs index e1d36dc026a..3ee0b4fcdd4 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/2D/Light2D.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/2D/Light2D.cs @@ -269,7 +269,7 @@ public LightType lightType /// The lights current intensity /// /// - [Obsolete] + [Obsolete("#from(2021.1)")] public float volumeOpacity => m_LightVolumeIntensity; /// @@ -281,7 +281,7 @@ public LightType lightType /// Enables or disables the light's volume /// /// - [Obsolete] + [Obsolete("#from(2023.1)")] public bool volumeIntensityEnabled { get => m_LightVolumeEnabled; set => m_LightVolumeEnabled = value; } @@ -310,7 +310,7 @@ public LightType lightType /// Checks if the alpha overlap operation is alpha blend. /// This is obsolete. /// - [Obsolete] + [Obsolete("#from(2021.1)")] public bool alphaBlendOnOverlap { get { return m_OverlapOperation == OverlapOperation.AlphaBlend; } } /// diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/2D/Light2DBlendStyle.cs b/Packages/com.unity.render-pipelines.universal/Runtime/2D/Light2DBlendStyle.cs index 07c2a47fc2d..90490430a6b 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/2D/Light2DBlendStyle.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/2D/Light2DBlendStyle.cs @@ -119,10 +119,12 @@ internal MaskChannelFilter maskTextureChannelFilter } } +#if URP_COMPATIBILITY_MODE // Transient data internal bool isDirty { get; set; } internal bool hasRenderTarget { get; set; } internal int renderTargetHandleId; internal RTHandle renderTargetHandle; +#endif } } diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/2D/Light2DPoint.cs b/Packages/com.unity.render-pipelines.universal/Runtime/2D/Light2DPoint.cs index 4c730e74ee8..829b7574af1 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/2D/Light2DPoint.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/2D/Light2DPoint.cs @@ -53,14 +53,14 @@ public float pointLightOuterRadius /// The point light distance. /// This is obsolete and has been changed to normalMapDistance. /// - [Obsolete("pointLightDistance has been changed to normalMapDistance", true)] + [Obsolete("pointLightDistance has been changed to normalMapDistance #from(2021.1) #breakingFrom(2021.1)", true)] public float pointLightDistance => m_NormalMapDistance; /// /// The quality of the point light. /// This is obsolete and has been changed to normalMapQuality. /// - [Obsolete("pointLightQuality has been changed to normalMapQuality", true)] + [Obsolete("pointLightQuality has been changed to normalMapQuality #from(2021.1) #breakingFrom(2021.1)", true)] public NormalMapQuality pointLightQuality => m_NormalMapQuality; internal bool isPointLight => m_LightType == LightType.Point; diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/2D/Passes/IRenderPass2D.cs b/Packages/com.unity.render-pipelines.universal/Runtime/2D/Passes/IRenderPass2D.cs index 168f02150d6..4f506f73c39 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/2D/Passes/IRenderPass2D.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/2D/Passes/IRenderPass2D.cs @@ -1,3 +1,4 @@ +#if URP_COMPATIBILITY_MODE namespace UnityEngine.Rendering.Universal { internal interface IRenderPass2D @@ -5,3 +6,4 @@ internal interface IRenderPass2D Renderer2DData rendererData { get; } } } +#endif diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/2D/Passes/PixelPerfectBackgroundPass.cs b/Packages/com.unity.render-pipelines.universal/Runtime/2D/Passes/PixelPerfectBackgroundPass.cs index 553060a3443..fdaa959be84 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/2D/Passes/PixelPerfectBackgroundPass.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/2D/Passes/PixelPerfectBackgroundPass.cs @@ -1,6 +1,7 @@ +#if URP_COMPATIBILITY_MODE using System; -namespace UnityEngine.Rendering.Universal +namespace UnityEngine.Rendering.Universal.CompatibilityMode { // Only to be used when Pixel Perfect Camera is present and it has Crop Frame X or Y enabled. // This pass simply clears BuiltinRenderTextureType.CameraTarget to black, so that the letterbox or pillarbox is black instead of garbage. @@ -14,7 +15,7 @@ public PixelPerfectBackgroundPass(RenderPassEvent evt) renderPassEvent = evt; } - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) { var cmd = renderingData.commandBuffer; @@ -32,3 +33,4 @@ public override void Execute(ScriptableRenderContext context, ref RenderingData } } } +#endif // URP_COMPATIBILITY_MODE 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 35015ed8f4a..2077624f5a9 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 @@ -1,8 +1,9 @@ +#if URP_COMPATIBILITY_MODE using System; using System.Collections.Generic; using UnityEngine.Profiling; -namespace UnityEngine.Rendering.Universal +namespace UnityEngine.Rendering.Universal.CompatibilityMode { internal class Render2DLightingPass : ScriptableRenderPass, IRenderPass2D { @@ -46,7 +47,7 @@ public Render2DLightingPass(Renderer2DData rendererData, Material blitMaterial, m_SamplingMaterial = samplingMaterial; m_FallOffLookup = fallOffLookup; - m_CameraSortingLayerBoundsIndex = GetCameraSortingLayerBoundsIndex(m_Renderer2DData); + m_CameraSortingLayerBoundsIndex = m_Renderer2DData.GetCameraSortingLayerBoundsIndex(); } internal void Setup(bool useDepth) @@ -78,18 +79,6 @@ private void CopyCameraSortingLayerRenderTexture(ScriptableRenderContext context cmd.Clear(); } - public static short GetCameraSortingLayerBoundsIndex(Renderer2DData rendererData) - { - SortingLayer[] sortingLayers = Light2DManager.GetCachedSortingLayer(); - for (short i = 0; i < sortingLayers.Length; i++) - { - if (sortingLayers[i].id == rendererData.cameraSortingLayerTextureBound) - return (short)sortingLayers[i].value; - } - - return short.MinValue; - } - private void DetermineWhenToResolve(int startIndex, int batchesDrawn, int batchCount, LayerBatch[] layerBatches, out int resolveDuringBatch, out bool resolveIsAfterCopy) { @@ -117,7 +106,7 @@ private void DetermineWhenToResolve(int startIndex, int batchesDrawn, int batchC if (m_Renderer2DData.useCameraSortingLayerTexture) { - var cameraSortingLayerBoundsIndex = GetCameraSortingLayerBoundsIndex(m_Renderer2DData); + var cameraSortingLayerBoundsIndex = m_Renderer2DData.GetCameraSortingLayerBoundsIndex(); var copyBatch = -1; for (int i = startIndex; i < startIndex + batchesDrawn; i++) { @@ -275,7 +264,7 @@ private int DrawLayerBatches( context.ExecuteCommandBuffer(cmd); cmd.Clear(); - short cameraSortingLayerBoundsIndex = GetCameraSortingLayerBoundsIndex(m_Renderer2DData); + short cameraSortingLayerBoundsIndex = m_Renderer2DData.GetCameraSortingLayerBoundsIndex(); RenderBufferStoreAction copyStoreAction; if (msaaEnabled) @@ -327,7 +316,7 @@ private int DrawLayerBatches( return batchesDrawn; } - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) { var isLitView = true; @@ -464,3 +453,4 @@ public void Dispose() } } } +#endif // URP_COMPATIBILITY_MODE 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 edee92d883a..31ba056413e 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 @@ -14,8 +14,10 @@ internal struct LayerBatch public SortingLayerRange layerRange; public LightStats lightStats; public bool useNormals; +#if URP_COMPATIBILITY_MODE private unsafe fixed int renderTargetIds[4]; private unsafe fixed bool renderTargetUsed[4]; +#endif public List lights; public List shadowIndices; @@ -25,6 +27,7 @@ internal struct LayerBatch public void InitRTIds(int index) { +#if URP_COMPATIBILITY_MODE for (var i = 0; i < 4; i++) { unsafe @@ -33,12 +36,14 @@ public void InitRTIds(int index) renderTargetIds[i] = Shader.PropertyToID($"_LightTexture_{index}_{i}"); } } +#endif lights = new List(); shadowIndices = new List(); shadowCasters = new List(); } +#if URP_COMPATIBILITY_MODE public RenderTargetIdentifier GetRTId(CommandBuffer cmd, RenderTextureDescriptor desc, int index) { unsafe @@ -66,17 +71,20 @@ public void ReleaseRT(CommandBuffer cmd) } } } +#endif } internal static class LayerUtility { private static LayerBatch[] s_LayerBatches; +#if URP_COMPATIBILITY_MODE public static uint maxTextureCount { get; private set; } public static void InitializeBudget(uint maxTextureCount) { LayerUtility.maxTextureCount = math.max(4, maxTextureCount); } +#endif private static bool CanBatchLightsInLayer(int layerIndex1, int layerIndex2, SortingLayer[] sortingLayers, ILight2DCullResult lightCullResult) { @@ -107,7 +115,7 @@ private static bool CanBatchCameraSortingLayer(int startLayerIndex, SortingLayer { if (rendererData.useCameraSortingLayerTexture) { - var cameraSortingLayerBoundsIndex = Render2DLightingPass.GetCameraSortingLayerBoundsIndex(rendererData); + var cameraSortingLayerBoundsIndex = rendererData.GetCameraSortingLayerBoundsIndex(); return sortingLayers[startLayerIndex].value == cameraSortingLayerBoundsIndex; } diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/2D/Passes/Utility/RendererLighting.cs b/Packages/com.unity.render-pipelines.universal/Runtime/2D/Passes/Utility/RendererLighting.cs index 2e0b74dcedf..d3f3cc32947 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/2D/Passes/Utility/RendererLighting.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/2D/Passes/Utility/RendererLighting.cs @@ -94,6 +94,7 @@ internal static GraphicsFormat GetRenderTextureFormat() return s_RenderTextureFormatToUse; } +#if URP_COMPATIBILITY_MODE public static void CreateNormalMapRenderTexture(this IRenderPass2D pass, RenderingData renderingData, CommandBuffer cmd, float renderScale) { var descriptor = new RenderTextureDescriptor( @@ -149,6 +150,7 @@ public static void CreateCameraSortingLayerRenderTexture(this IRenderPass2D pass RenderingUtils.ReAllocateHandleIfNeeded(ref pass.rendererData.cameraSortingLayerRenderTarget, descriptor, FilterMode.Bilinear, TextureWrapMode.Clamp, name: "_CameraSortingLayerTexture"); cmd.SetGlobalTexture(pass.rendererData.cameraSortingLayerRenderTarget.name, pass.rendererData.cameraSortingLayerRenderTarget.nameID); } +#endif internal static void EnableBlendStyle(IRasterCommandBuffer cmd, int blendStyleIndex, bool enabled) { @@ -160,7 +162,7 @@ internal static void EnableBlendStyle(IRasterCommandBuffer cmd, int blendStyleIn cmd.DisableShaderKeyword(keyword); } - internal static void DisableAllKeywords(RasterCommandBuffer cmd) + internal static void DisableAllKeywords(IRasterCommandBuffer cmd) { foreach (var keyword in k_UseBlendStyleKeywords) { @@ -192,6 +194,7 @@ internal static void GetTransparencySortingMode(Renderer2DData rendererData, Cam } } +#if URP_COMPATIBILITY_MODE private static bool CanRenderLight(IRenderPass2D pass, Light2D light, int blendStyleIndex, int layerToRender, bool isVolume, ref Mesh lightMesh, ref Material lightMaterial) { if (light != null && light.lightType != Light2D.LightType.Global && light.blendStyleIndex == blendStyleIndex && light.IsLitLayer(layerToRender)) @@ -206,12 +209,14 @@ private static bool CanRenderLight(IRenderPass2D pass, Light2D light, int blendS } return false; } +#endif internal static bool CanCastShadows(Light2D light, int layerToRender) { return light.shadowsEnabled && light.shadowIntensity > 0 && light.IsLitLayer(layerToRender); } +#if URP_COMPATIBILITY_MODE private static bool CanCastVolumetricShadows(Light2D light, int endLayerValue) { var topMostLayerValue = light.GetTopMostLitLayer(); @@ -423,8 +428,9 @@ internal static void SetLightShaderGlobals(Renderer2DData rendererData, RasterCo cmd.SetGlobalVector(k_InvertedFilterPropIDs[i], blendStyle.maskTextureChannelFilter.inverted); } } +#endif - internal static void SetLightShaderGlobals(RasterCommandBuffer cmd, Light2DBlendStyle[] lightBlendStyles, int[] blendStyleIndices) + internal static void SetLightShaderGlobals(IRasterCommandBuffer cmd, Light2DBlendStyle[] lightBlendStyles, int[] blendStyleIndices) { for (var i = 0; i < blendStyleIndices.Length; i++) { @@ -528,6 +534,7 @@ internal static void SetPerPointLightShaderGlobals(IRasterCommandBuffer cmd, Lig } } +#if URP_COMPATIBILITY_MODE // TODO: Remove once Rendergraph becomes default pipeline internal static bool SetCookieShaderGlobals(CommandBuffer cmd, Light2D light) { @@ -536,6 +543,7 @@ internal static bool SetCookieShaderGlobals(CommandBuffer cmd, Light2D light) return light.useCookieSprite; } +#endif internal static void SetCookieShaderProperties(Light2D light, MaterialPropertyBlock properties) { @@ -543,6 +551,7 @@ internal static void SetCookieShaderProperties(Light2D light, MaterialPropertyBl properties.SetTexture(light.lightType == Light2D.LightType.Sprite ? k_CookieTexID : k_PointLightCookieTexID, light.m_CookieSpriteTextureHandle); } +#if URP_COMPATIBILITY_MODE public static void ClearDirtyLighting(this IRenderPass2D pass, CommandBuffer cmd, uint blendStylesUsed) { for (var i = 0; i < pass.rendererData.lightBlendStyles.Length; ++i) @@ -652,6 +661,7 @@ public static void RenderLights(this IRenderPass2D pass, RenderingData rendering cmd.EndSample(sampleName); } } +#endif private static void SetBlendModes(Material material, BlendMode src, BlendMode dst) { @@ -721,7 +731,7 @@ private static Material CreateLightMaterial(Renderer2DData rendererData, Light2D return material; } - public static Material GetLightMaterial(this Renderer2DData rendererData, Light2D light, bool isVolume) + internal static Material GetLightMaterial(this Renderer2DData rendererData, Light2D light, bool isVolume) { var materialIndex = GetLightMaterialIndex(light, isVolume); @@ -733,5 +743,17 @@ public static Material GetLightMaterial(this Renderer2DData rendererData, Light2 return material; } + + internal static short GetCameraSortingLayerBoundsIndex(this Renderer2DData rendererData) + { + SortingLayer[] sortingLayers = Light2DManager.GetCachedSortingLayer(); + for (short i = 0; i < sortingLayers.Length; i++) + { + if (sortingLayers[i].id == rendererData.cameraSortingLayerTextureBound) + return (short)sortingLayers[i].value; + } + + return short.MinValue; + } } } diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/2D/PixelPerfectCamera.cs b/Packages/com.unity.render-pipelines.universal/Runtime/2D/PixelPerfectCamera.cs index 5653197fca1..34dff51a3e3 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/2D/PixelPerfectCamera.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/2D/PixelPerfectCamera.cs @@ -119,7 +119,7 @@ private enum ComponentVersions /// Set to true to have the Scene rendered to a temporary texture set as close as possible to the Reference Resolution, /// while maintaining the full screen aspect ratio. This temporary texture is then upscaled to fit the full screen. /// - [System.Obsolete("Use gridSnapping instead", false)] + [System.Obsolete("Use gridSnapping instead #from(2021.2)")] public bool upscaleRT { get @@ -136,7 +136,7 @@ public bool upscaleRT /// Set to true to prevent subpixel movement and make Sprites appear to move in pixel-by-pixel increments. /// Only applicable when upscaleRT is false. /// - [System.Obsolete("Use gridSnapping instead", false)] + [System.Obsolete("Use gridSnapping instead #from(2021.2)")] public bool pixelSnapping { get @@ -152,7 +152,7 @@ public bool pixelSnapping /// /// Set to true to crop the viewport with black bars to match refResolutionX in the horizontal direction. /// - [System.Obsolete("Use cropFrame instead", false)] + [System.Obsolete("Use cropFrame instead #from(2021.2)")] public bool cropFrameX { get @@ -181,7 +181,7 @@ public bool cropFrameX /// /// Set to true to crop the viewport with black bars to match refResolutionY in the vertical direction. /// - [System.Obsolete("Use cropFrame instead", false)] + [System.Obsolete("Use cropFrame instead #from(2021.2)")] public bool cropFrameY { get @@ -211,7 +211,7 @@ public bool cropFrameY /// Set to true to expand the viewport to fit the screen resolution while maintaining the viewport's aspect ratio. /// Only applicable when both cropFrameX and cropFrameY are true. /// - [System.Obsolete("Use cropFrame instead", false)] + [System.Obsolete("Use cropFrame instead. #from(2021.2)")] public bool stretchFill { get 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 aa1078db2c1..fae38bd58ec 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/2D/Renderer2D.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/2D/Renderer2D.cs @@ -1,3 +1,4 @@ +#if URP_COMPATIBILITY_MODE using System; using UnityEngine.Experimental.Rendering; using UnityEngine.Rendering.Universal.Internal; @@ -6,25 +7,14 @@ namespace UnityEngine.Rendering.Universal { internal sealed partial class Renderer2D : ScriptableRenderer { - const int k_FinalBlitPassQueueOffset = 1; - const int k_AfterFinalBlitPassQueueOffset = k_FinalBlitPassQueueOffset + 1; - - Render2DLightingPass m_Render2DLightingPass; - PixelPerfectBackgroundPass m_PixelPerfectBackgroundPass; - UpscalePass m_UpscalePass; - CopyDepthPass m_CopyDepthPass; - CopyCameraSortingLayerPass m_CopyCameraSortingLayerPass; - FinalBlitPass m_FinalBlitPass; - DrawScreenSpaceUIPass m_DrawOffscreenUIPass; - DrawScreenSpaceUIPass m_DrawOverlayUIPass; // from HDRP code + CompatibilityMode.Render2DLightingPass m_Render2DLightingPass; + CompatibilityMode.PixelPerfectBackgroundPass m_PixelPerfectBackgroundPass; internal RenderTargetBufferSystem m_ColorBufferSystem; private static readonly ProfilingSampler m_ProfilingSampler = new ProfilingSampler("Create Camera Textures"); bool m_UseDepthStencilBuffer = true; - bool m_CreateColorTexture; - bool m_CreateDepthTexture; // We probably should declare these names in the base class, // as they must be the same across all ScriptableRenderer types for camera stacking to work. @@ -36,12 +26,6 @@ internal sealed partial class Renderer2D : ScriptableRenderer internal RTHandle m_DefaultWhiteTextureHandle; #endif - Material m_BlitMaterial; - Material m_BlitHDRMaterial; - Material m_SamplingMaterial; - - Renderer2DData m_Renderer2DData; - internal bool createColorTexture => m_CreateColorTexture; internal bool createDepthTexture => m_CreateDepthTexture; @@ -53,41 +37,14 @@ internal sealed partial class Renderer2D : ScriptableRenderer internal RTHandle afterPostProcessColorHandle { get => m_PostProcessPasses.afterPostProcessColor; } internal RTHandle colorGradingLutHandle { get => m_PostProcessPasses.colorGradingLut; } - /// - public override int SupportedCameraStackingTypes() - { - return 1 << (int)CameraRenderType.Base | 1 << (int)CameraRenderType.Overlay; - } - - public Renderer2D(Renderer2DData data) : base(data) + void InitializeCompatibilityMode(Renderer2DData data) { - if (GraphicsSettings.TryGetRenderPipelineSettings( - out var shadersResources)) - { - m_BlitMaterial = CoreUtils.CreateEngineMaterial(shadersResources.coreBlitPS); - m_BlitHDRMaterial = CoreUtils.CreateEngineMaterial(shadersResources.blitHDROverlay); - m_SamplingMaterial = CoreUtils.CreateEngineMaterial(shadersResources.samplingPS); - } - if (GraphicsSettings.TryGetRenderPipelineSettings(out var renderer2DResources)) { - m_Render2DLightingPass = new Render2DLightingPass(data, m_BlitMaterial, m_SamplingMaterial, renderer2DResources.fallOffLookup); - - m_CopyDepthPass = new CopyDepthPass( - RenderPassEvent.AfterRenderingTransparents, - renderer2DResources.copyDepthPS, - shouldClear: true, - copyResolvedDepth: RenderingUtils.MultisampleDepthResolveSupported()); + m_Render2DLightingPass = new CompatibilityMode.Render2DLightingPass(data, m_BlitMaterial, m_SamplingMaterial, renderer2DResources.fallOffLookup); } - // we should determine why clearing the camera target is set so late in the events... sounds like it could be earlier - m_PixelPerfectBackgroundPass = new PixelPerfectBackgroundPass(RenderPassEvent.AfterRenderingTransparents); - m_UpscalePass = new UpscalePass(RenderPassEvent.AfterRenderingPostProcessing, m_BlitMaterial); - m_CopyCameraSortingLayerPass = new CopyCameraSortingLayerPass(m_BlitMaterial); - m_FinalBlitPass = new FinalBlitPass(RenderPassEvent.AfterRendering + k_FinalBlitPassQueueOffset, m_BlitMaterial, m_BlitHDRMaterial); - - m_DrawOffscreenUIPass = new DrawScreenSpaceUIPass(RenderPassEvent.BeforeRenderingPostProcessing, true); - m_DrawOverlayUIPass = new DrawScreenSpaceUIPass(RenderPassEvent.AfterRendering + k_AfterFinalBlitPassQueueOffset, false); // after m_FinalBlitPass + m_PixelPerfectBackgroundPass = new CompatibilityMode.PixelPerfectBackgroundPass(RenderPassEvent.AfterRenderingTransparents); #if UNITY_EDITOR m_SetEditorTargetPass = new SetEditorTargetPass(RenderPassEvent.AfterRendering + 9); @@ -101,57 +58,18 @@ public Renderer2D(Renderer2DData data) : base(data) ppParams.blitMaterial = m_BlitMaterial; ppParams.requestColorFormat = GraphicsFormat.B10G11R11_UFloatPack32; - if (UniversalRenderPipeline.useRenderGraph) - { - if (data.postProcessData != null) - { - m_PostProcessPassRenderGraph = new PostProcessPassRenderGraph(data.postProcessData, ppParams.requestColorFormat); - m_ColorGradingLutPassRenderGraph = new ColorGradingLutPass(RenderPassEvent.BeforeRenderingPrePasses, data.postProcessData); - } - // No postProcessData in RG means no post processes - } - else - m_PostProcessPasses = new CompatibilityMode.PostProcessPasses(data.postProcessData, ref ppParams); + m_PostProcessPasses = new CompatibilityMode.PostProcessPasses(data.postProcessData, ref ppParams); m_UseDepthStencilBuffer = data.useDepthStencilBuffer; - - m_Renderer2DData = data; - - supportedRenderingFeatures = new RenderingFeatures(); - - m_Renderer2DData.lightCullResult = new Light2DCullResult(); - - LensFlareCommonSRP.mergeNeeded = 0; - LensFlareCommonSRP.maxLensFlareWithOcclusionTemporalSample = 1; - LensFlareCommonSRP.Initialize(); - - Light2DManager.Initialize(); } - protected override void Dispose(bool disposing) + void CleanupCompatibilityModeResources() { - m_Renderer2DData.Dispose(); m_Render2DLightingPass?.Dispose(); m_PostProcessPasses.Dispose(); m_ColorTextureHandle?.Release(); m_DepthTextureHandle?.Release(); ReleaseRenderTargets(); - m_UpscalePass.Dispose(); - m_CopyDepthPass?.Dispose(); - m_FinalBlitPass?.Dispose(); - m_DrawOffscreenUIPass?.Dispose(); - m_DrawOverlayUIPass?.Dispose(); - Light2DManager.Dispose(); - m_PostProcessPassRenderGraph?.Cleanup(); - m_ColorGradingLutPassRenderGraph?.Cleanup(); - - CoreUtils.Destroy(m_BlitMaterial); - CoreUtils.Destroy(m_BlitHDRMaterial); - CoreUtils.Destroy(m_SamplingMaterial); - - CleanupRenderGraphResources(); - - base.Dispose(disposing); } internal override void ReleaseRenderTargets() @@ -160,45 +78,6 @@ internal override void ReleaseRenderTargets() m_PostProcessPasses.ReleaseRenderTargets(); } - public Renderer2DData GetRenderer2DData() - { - return m_Renderer2DData; - } - - private struct RenderPassInputSummary - { - internal bool requiresDepthTexture; - internal bool requiresColorTexture; - } - - private RenderPassInputSummary GetRenderPassInputs(UniversalCameraData cameraData) - { - RenderPassInputSummary inputSummary = new RenderPassInputSummary(); - - for (int i = 0; i < activeRenderPassQueue.Count; ++i) - { - ScriptableRenderPass pass = activeRenderPassQueue[i]; - bool needsDepth = (pass.input & ScriptableRenderPassInput.Depth) != ScriptableRenderPassInput.None; - bool needsColor = (pass.input & ScriptableRenderPassInput.Color) != ScriptableRenderPassInput.None; - - inputSummary.requiresDepthTexture |= needsDepth; - inputSummary.requiresColorTexture |= needsColor; - } - - inputSummary.requiresColorTexture |= cameraData.postProcessEnabled - || cameraData.isHdrEnabled - || cameraData.isSceneViewCamera - || !cameraData.isDefaultViewport - || cameraData.requireSrgbConversion - || !cameraData.resolveFinalTarget - || cameraData.cameraTargetDescriptor.msaaSamples > 1 && UniversalRenderer.PlatformRequiresExplicitMsaaResolve() - || m_Renderer2DData.useCameraSortingLayerTexture - || !Mathf.Approximately(cameraData.renderScale, 1.0f) - || (DebugHandler != null && DebugHandler.WriteToDebugScreenTexture(cameraData.resolveFinalTarget)); - - return inputSummary; - } - void CreateRenderTextures( ref RenderPassInputSummary renderPassInputs, CommandBuffer cmd, @@ -273,7 +152,7 @@ void CreateRenderTextures( } } - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] public override void Setup(ScriptableRenderContext context, ref RenderingData renderingData) { UniversalRenderingData universalRenderingData = frameData.Get(); @@ -390,9 +269,9 @@ public override void Setup(ScriptableRenderContext context, ref RenderingData re m_Render2DLightingPass.Setup(renderPassInputs.requiresDepthTexture || m_UseDepthStencilBuffer); // Disable obsolete warning for internal usage - #pragma warning disable CS0618 +#pragma warning disable CS0618 m_Render2DLightingPass.ConfigureTarget(colorTargetHandle, depthTargetHandle); - #pragma warning restore CS0618 +#pragma warning restore CS0618 EnqueuePass(m_Render2DLightingPass); bool shouldRenderUI = cameraData.rendersOverlayUI; @@ -498,27 +377,18 @@ public override void Setup(ScriptableRenderContext context, ref RenderingData re #endif } - public override void SetupCullingParameters(ref ScriptableCullingParameters cullingParameters, ref CameraData cameraData) - { - cullingParameters.cullingOptions = CullingOptions.None; - cullingParameters.isOrthographic = cameraData.camera.orthographic; - cullingParameters.shadowDistance = 0.0f; - var cullResult = m_Renderer2DData.lightCullResult as Light2DCullResult; - cullResult.SetupCulling(ref cullingParameters, cameraData.camera); - } - internal override void SwapColorBuffer(CommandBuffer cmd) { m_ColorBufferSystem.Swap(); // Disable obsolete warning for internal usage - #pragma warning disable CS0618 +#pragma warning disable CS0618 //Check if we are using the depth that is attached to color buffer if (m_DepthTextureHandle.nameID != BuiltinRenderTextureType.CameraTarget) ConfigureCameraTarget(m_ColorBufferSystem.GetBackBuffer(cmd), m_DepthTextureHandle); else ConfigureCameraColorTarget(m_ColorBufferSystem.GetBackBuffer(cmd)); - #pragma warning restore CS0618 +#pragma warning restore CS0618 m_ColorTextureHandle = m_ColorBufferSystem.GetBackBuffer(cmd); cmd.SetGlobalTexture("_CameraColorTexture", m_ColorTextureHandle.nameID); @@ -526,13 +396,13 @@ internal override void SwapColorBuffer(CommandBuffer cmd) cmd.SetGlobalTexture("_AfterPostProcessTexture", m_ColorTextureHandle.nameID); } - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] internal override RTHandle GetCameraColorFrontBuffer(CommandBuffer cmd) { return m_ColorBufferSystem.GetFrontBuffer(cmd); } - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] internal override RTHandle GetCameraColorBackBuffer(CommandBuffer cmd) { return m_ColorBufferSystem.GetBackBuffer(cmd); @@ -542,13 +412,6 @@ internal override void EnableSwapBufferMSAA(bool enable) { m_ColorBufferSystem.EnableMSAA(enable); } - - internal static bool IsGLESDevice() - { - return SystemInfo.graphicsDeviceType == GraphicsDeviceType.OpenGLES3; - } - - internal override bool supportsNativeRenderPassRendergraphCompiler => true; } #if UNITY_EDITOR @@ -559,7 +422,7 @@ public SetEditorTargetPass(RenderPassEvent evt) renderPassEvent = evt; } - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete + " #from(6000.0)")] public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) { renderingData.commandBuffer.SetRenderTarget(k_CameraTarget, @@ -569,3 +432,4 @@ public override void Execute(ScriptableRenderContext context, ref RenderingData } #endif } +#endif // URP_COMPATIBILITY_MODE diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/2D/Renderer2D.cs.meta b/Packages/com.unity.render-pipelines.universal/Runtime/2D/Renderer2D.cs.meta index 61d83550e2f..06d2252e47f 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/2D/Renderer2D.cs.meta +++ b/Packages/com.unity.render-pipelines.universal/Runtime/2D/Renderer2D.cs.meta @@ -1,11 +1,2 @@ fileFormatVersion: 2 -guid: 2c8841d47fff7714cb6671d40620dea6 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: +guid: 2c8841d47fff7714cb6671d40620dea6 \ No newline at end of file diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/2D/Renderer2DData.cs b/Packages/com.unity.render-pipelines.universal/Runtime/2D/Renderer2DData.cs index d3bc0b7af17..91a8871d107 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/2D/Renderer2DData.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/2D/Renderer2DData.cs @@ -103,8 +103,10 @@ protected override ScriptableRenderer Create() internal void Dispose() { +#if URP_COMPATIBILITY_MODE for (var i = 0; i < m_LightBlendStyles.Length; ++i) m_LightBlendStyles[i].renderTargetHandle?.Release(); +#endif foreach(var mat in lightMaterials) CoreUtils.Destroy(mat.Value); @@ -126,11 +128,13 @@ protected override void OnEnable() { base.OnEnable(); +#if URP_COMPATIBILITY_MODE for (var i = 0; i < m_LightBlendStyles.Length; ++i) { m_LightBlendStyles[i].renderTargetHandleId = Shader.PropertyToID($"_ShapeLightTexture{i}"); m_LightBlendStyles[i].renderTargetHandle = RTHandles.Alloc(m_LightBlendStyles[i].renderTargetHandleId, $"_ShapeLightTexture{i}"); } +#endif geometrySelfShadowMaterial = null; geometryUnshadowMaterial = null; diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/2D/Rendergraph/CopyCameraSortingLayerPass.cs b/Packages/com.unity.render-pipelines.universal/Runtime/2D/Rendergraph/CopyCameraSortingLayerPass.cs index c6a2b9b8d9d..08b5a7109a3 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/2D/Rendergraph/CopyCameraSortingLayerPass.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/2D/Rendergraph/CopyCameraSortingLayerPass.cs @@ -19,11 +19,13 @@ public CopyCameraSortingLayerPass(Material blitMaterial) m_BlitMaterial = blitMaterial; } - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] +#if URP_COMPATIBILITY_MODE + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) { throw new NotImplementedException(); } +#endif public static void ConfigureDescriptor(Downsampling downsamplingMethod, ref RenderTextureDescriptor descriptor, out FilterMode filterMode) { diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/2D/Rendergraph/DrawLight2DPass.cs b/Packages/com.unity.render-pipelines.universal/Runtime/2D/Rendergraph/DrawLight2DPass.cs index e38054e62a8..80553cc0be9 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/2D/Rendergraph/DrawLight2DPass.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/2D/Rendergraph/DrawLight2DPass.cs @@ -8,9 +8,11 @@ namespace UnityEngine.Rendering.Universal internal class DrawLight2DPass : ScriptableRenderPass { static readonly string k_LightPass = "Light2D Pass"; + static readonly string k_LightLowLevelPass = "Light2D LowLevelPass"; static readonly string k_LightVolumetricPass = "Light2D Volumetric Pass"; private static readonly ProfilingSampler m_ProfilingSampler = new ProfilingSampler(k_LightPass); + private static readonly ProfilingSampler m_ProfilingSamplerLowLevel = new ProfilingSampler(k_LightLowLevelPass); private static readonly ProfilingSampler m_ProfilingSamplerVolume = new ProfilingSampler(k_LightVolumetricPass); internal static readonly int k_InverseHDREmulationScaleID = Shader.PropertyToID("_InverseHDREmulationScale"); internal static readonly string k_NormalMapID = "_NormalMap"; @@ -45,11 +47,13 @@ static bool TryGetShadowIndex(ref LayerBatch layerBatch, int lightIndex, out int return false; } - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] +#if URP_COMPATIBILITY_MODE + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) { throw new NotImplementedException(); } +#endif private static void Execute(RasterCommandBuffer cmd, PassData passData, ref LayerBatch layerBatch) { @@ -127,6 +131,84 @@ private static void Execute(RasterCommandBuffer cmd, PassData passData, ref Laye } } + internal static void ExecuteUnsafe(UnsafeCommandBuffer cmd, PassData passData, ref LayerBatch layerBatch, List lights) + { + cmd.SetGlobalFloat(k_InverseHDREmulationScaleID, 1.0f / passData.rendererData.hdrEmulationScale); + + for (var i = 0; i < layerBatch.activeBlendStylesIndices.Length; ++i) + { + var blendStyleIndex = layerBatch.activeBlendStylesIndices[i]; + var blendOpName = passData.rendererData.lightBlendStyles[blendStyleIndex].name; + cmd.BeginSample(blendOpName); + + if (!Renderer2D.supportsMRT && !passData.isVolumetric) + cmd.SetRenderTarget(passData.lightTextures[i]); + + var indicesIndex = Renderer2D.supportsMRT ? i : 0; + if (!passData.isVolumetric) + RendererLighting.EnableBlendStyle(cmd, indicesIndex, true); + + for (int j = 0; j < lights.Count; ++j) + { + var light = lights[j]; + + // Check if light is valid + if (light == null || + light.lightType == Light2D.LightType.Global || + light.blendStyleIndex != blendStyleIndex) + continue; + + // Check if light is volumetric + if (passData.isVolumetric && + (light.volumeIntensity <= 0.0f || + !light.volumetricEnabled || + layerBatch.endLayerValue != light.GetTopMostLitLayer())) + continue; + + var lightMaterial = passData.rendererData.GetLightMaterial(light, passData.isVolumetric); + var lightMesh = light.lightMesh; + + // For Batching. + var index = light.batchSlotIndex; + var slotIndex = RendererLighting.lightBatch.SlotIndex(index); + bool canBatch = RendererLighting.lightBatch.CanBatch(light, lightMaterial, index, out int lightHash); + + //bool breakBatch = !canBatch; + //if (breakBatch && LightBatch.isBatchingSupported) + // RendererLighting.lightBatch.Flush(cmd); + + if (passData.layerBatch.lightStats.useNormalMap) + s_PropertyBlock.SetTexture(k_NormalMapID, passData.normalMap); + + var useShadows = passData.layerBatch.lightStats.useShadows && layerBatch.shadowIndices.Contains(j); + if (useShadows && TryGetShadowIndex(ref layerBatch, j, out var shadowIndex)) + s_PropertyBlock.SetTexture(k_ShadowMapID, passData.shadowTextures[shadowIndex]); + + if (!passData.isVolumetric || (passData.isVolumetric && light.volumetricEnabled)) + RendererLighting.SetCookieShaderProperties(light, s_PropertyBlock); + + // Set shader global properties + RendererLighting.SetPerLightShaderGlobals(cmd, light, slotIndex, passData.isVolumetric, useShadows, LightBatch.isBatchingSupported); + + if (light.normalMapQuality != Light2D.NormalMapQuality.Disabled || light.lightType == Light2D.LightType.Point) + RendererLighting.SetPerPointLightShaderGlobals(cmd, light, slotIndex, LightBatch.isBatchingSupported); + + //if (LightBatch.isBatchingSupported) + //{ + // RendererLighting.lightBatch.AddBatch(light, lightMaterial, light.GetMatrix(), lightMesh, 0, lightHash, index); + // RendererLighting.lightBatch.Flush(cmd); + //} + //else + { + cmd.DrawMesh(lightMesh, light.GetMatrix(), lightMaterial, 0, 0, s_PropertyBlock); + } + } + + RendererLighting.EnableBlendStyle(cmd, indicesIndex, false); + cmd.EndSample(blendOpName); + } + } + internal class PassData { internal LayerBatch layerBatch; @@ -150,45 +232,91 @@ public void Render(RenderGraph graph, ContextContainer frameData, Renderer2DData isVolumetric && !layerBatch.lightStats.useVolumetricLights) return; - // Default Raster Pass with MRTs - using (var builder = graph.AddRasterRenderPass(!isVolumetric ? k_LightPass : k_LightVolumetricPass, out var passData, !isVolumetric ? m_ProfilingSampler : m_ProfilingSamplerVolume)) + // Render single RTs by using low level pass for apis that don't support MRTs + if (!isVolumetric && !Renderer2D.supportsMRT) { - intermediateTexture[0] = commonResourceData.activeColorTexture; - var lightTextures = !isVolumetric ? universal2DResourceData.lightTextures[batchIndex] : intermediateTexture; + using (var builder = graph.AddUnsafePass(k_LightLowLevelPass, out var passData, m_ProfilingSamplerLowLevel)) + { + intermediateTexture[0] = commonResourceData.activeColorTexture; + passData.lightTextures = universal2DResourceData.lightTextures[batchIndex]; - for (var i = 0; i < lightTextures.Length; i++) - builder.SetRenderAttachment(lightTextures[i], i); + for (var i = 0; i < passData.lightTextures.Length; i++) + builder.UseTexture(passData.lightTextures[i], AccessFlags.Write); - if (layerBatch.lightStats.useNormalMap) - builder.UseTexture(universal2DResourceData.normalsTexture[batchIndex]); + if (layerBatch.lightStats.useNormalMap) + builder.UseTexture(universal2DResourceData.normalsTexture[batchIndex]); - if (layerBatch.lightStats.useShadows) - { - passData.shadowTextures = universal2DResourceData.shadowTextures[batchIndex]; - for (var i = 0; i < passData.shadowTextures.Length; i++) - builder.UseTexture(passData.shadowTextures[i]); - } + if (layerBatch.lightStats.useShadows) + { + passData.shadowTextures = universal2DResourceData.shadowTextures[batchIndex]; + for (var i = 0; i < passData.shadowTextures.Length; i++) + builder.UseTexture(passData.shadowTextures[i]); + } - foreach (var light in layerBatch.lights) - { - if (light == null || !light.m_CookieSpriteTextureHandle.IsValid()) - continue; + foreach (var light in layerBatch.lights) + { + if (light == null || !light.m_CookieSpriteTextureHandle.IsValid()) + continue; - if (!isVolumetric || (isVolumetric && light.volumetricEnabled)) - builder.UseTexture(light.m_CookieSpriteTextureHandle); - } + if (!isVolumetric || (isVolumetric && light.volumetricEnabled)) + builder.UseTexture(light.m_CookieSpriteTextureHandle); + } - passData.layerBatch = layerBatch; - passData.rendererData = rendererData; - passData.isVolumetric = isVolumetric; - passData.normalMap = layerBatch.lightStats.useNormalMap ? universal2DResourceData.normalsTexture[batchIndex] : TextureHandle.nullHandle; + passData.layerBatch = layerBatch; + passData.rendererData = rendererData; + passData.isVolumetric = isVolumetric; + passData.normalMap = layerBatch.lightStats.useNormalMap ? universal2DResourceData.normalsTexture[batchIndex] : TextureHandle.nullHandle; - builder.AllowGlobalStateModification(true); + builder.AllowGlobalStateModification(true); - builder.SetRenderFunc((PassData data, RasterGraphContext context) => + builder.SetRenderFunc((PassData data, UnsafeGraphContext context) => + { + ExecuteUnsafe(context.cmd, data, ref data.layerBatch, data.layerBatch.lights); + }); + } + } + else + { + // Default Raster Pass with MRTs + using (var builder = graph.AddRasterRenderPass(!isVolumetric ? k_LightPass : k_LightVolumetricPass, out var passData, !isVolumetric ? m_ProfilingSampler : m_ProfilingSamplerVolume)) { - Execute(context.cmd, data, ref data.layerBatch); - }); + intermediateTexture[0] = commonResourceData.activeColorTexture; + var lightTextures = !isVolumetric ? universal2DResourceData.lightTextures[batchIndex] : intermediateTexture; + + for (var i = 0; i < lightTextures.Length; i++) + builder.SetRenderAttachment(lightTextures[i], i); + + if (layerBatch.lightStats.useNormalMap) + builder.UseTexture(universal2DResourceData.normalsTexture[batchIndex]); + + if (layerBatch.lightStats.useShadows) + { + passData.shadowTextures = universal2DResourceData.shadowTextures[batchIndex]; + for (var i = 0; i < passData.shadowTextures.Length; i++) + builder.UseTexture(passData.shadowTextures[i]); + } + + foreach (var light in layerBatch.lights) + { + if (light == null || !light.m_CookieSpriteTextureHandle.IsValid()) + continue; + + if (!isVolumetric || (isVolumetric && light.volumetricEnabled)) + builder.UseTexture(light.m_CookieSpriteTextureHandle); + } + + passData.layerBatch = layerBatch; + passData.rendererData = rendererData; + passData.isVolumetric = isVolumetric; + passData.normalMap = layerBatch.lightStats.useNormalMap ? universal2DResourceData.normalsTexture[batchIndex] : TextureHandle.nullHandle; + + builder.AllowGlobalStateModification(true); + + builder.SetRenderFunc((PassData data, RasterGraphContext context) => + { + Execute(context.cmd, data, ref data.layerBatch); + }); + } } } } diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/2D/Rendergraph/DrawNormal2DPass.cs b/Packages/com.unity.render-pipelines.universal/Runtime/2D/Rendergraph/DrawNormal2DPass.cs index a0f2a550f28..d06f48f892f 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/2D/Rendergraph/DrawNormal2DPass.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/2D/Rendergraph/DrawNormal2DPass.cs @@ -16,11 +16,13 @@ private class PassData internal RendererListHandle rendererList; } - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] +#if URP_COMPATIBILITY_MODE + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) { throw new NotImplementedException(); } +#endif private static void Execute(RasterCommandBuffer cmd, PassData passData) { @@ -52,6 +54,13 @@ public void Render(RenderGraph graph, ContextContainer frameData, Renderer2DData builder.SetRenderAttachment(universal2DResourceData.normalsTexture[batchIndex], 0); + // Depth needed for sprite mask stencil or z test for 3d meshes + if (rendererData.useDepthStencilBuffer) + { + var depth = universal2DResourceData.normalsDepth.IsValid() ? universal2DResourceData.normalsDepth : commonResourceData.activeDepthTexture; + builder.SetRenderAttachmentDepth(depth); + } + var param = new RendererListParams(renderingData.cullResults, drawSettings, filterSettings); passData.rendererList = graph.CreateRendererList(param); builder.UseRendererList(passData.rendererList); diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/2D/Rendergraph/DrawRenderer2DPass.cs b/Packages/com.unity.render-pipelines.universal/Runtime/2D/Rendergraph/DrawRenderer2DPass.cs index cd88adcde21..44fd1c8b84f 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/2D/Rendergraph/DrawRenderer2DPass.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/2D/Rendergraph/DrawRenderer2DPass.cs @@ -21,11 +21,13 @@ internal class DrawRenderer2DPass : ScriptableRenderPass private static readonly int k_HDREmulationScaleID = Shader.PropertyToID("_HDREmulationScale"); private static readonly int k_RendererColorID = Shader.PropertyToID("_RendererColor"); - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] +#if URP_COMPATIBILITY_MODE + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) { throw new NotImplementedException(); } +#endif private static void Execute(RasterGraphContext context, PassData passData) { @@ -151,8 +153,15 @@ public void Render(RenderGraph graph, ContextContainer frameData, Renderer2DData builder.UseTexture(passData.lightTextures[i]); } + if (rendererData.useCameraSortingLayerTexture) + builder.UseTexture(universal2DResourceData.cameraSortingLayerTexture); + + // Set color and depth attachments builder.SetRenderAttachment(commonResourceData.activeColorTexture, 0); - builder.SetRenderAttachmentDepth(commonResourceData.activeDepthTexture); + + if (rendererData.useDepthStencilBuffer) + builder.SetRenderAttachmentDepth(commonResourceData.activeDepthTexture); + builder.AllowGlobalStateModification(true); // Post set global light textures for next renderer pass diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/2D/Rendergraph/DrawShadow2DPass.cs b/Packages/com.unity.render-pipelines.universal/Runtime/2D/Rendergraph/DrawShadow2DPass.cs index 1116cee424c..c969e04de3f 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/2D/Rendergraph/DrawShadow2DPass.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/2D/Rendergraph/DrawShadow2DPass.cs @@ -14,11 +14,13 @@ internal class DrawShadow2DPass : ScriptableRenderPass private static readonly ProfilingSampler m_ProfilingSampler = new ProfilingSampler(k_ShadowPass); private static readonly ProfilingSampler m_ProfilingSamplerVolume = new ProfilingSampler(k_ShadowVolumetricPass); - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] +#if URP_COMPATIBILITY_MODE + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) { throw new NotImplementedException(); } +#endif private static void ExecuteShadowPass(UnsafeCommandBuffer cmd, PassData passData, Light2D light, int batchIndex) { diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/2D/Rendergraph/Renderer2DRendergraph.cs b/Packages/com.unity.render-pipelines.universal/Runtime/2D/Rendergraph/Renderer2DRendergraph.cs index def479a7cff..6ebeb042ad1 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/2D/Rendergraph/Renderer2DRendergraph.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/2D/Rendergraph/Renderer2DRendergraph.cs @@ -1,5 +1,6 @@ using UnityEngine.Experimental.Rendering; using UnityEngine.Rendering.RenderGraphModule; +using UnityEngine.Rendering.Universal.Internal; using static UnityEngine.Rendering.Universal.UniversalResourceDataBase; using CommonResourceData = UnityEngine.Rendering.Universal.UniversalResourceData; @@ -7,42 +8,66 @@ namespace UnityEngine.Rendering.Universal { internal sealed partial class Renderer2D : ScriptableRenderer { + private struct RenderPassInputSummary + { + internal bool requiresDepthTexture; + internal bool requiresColorTexture; + } + + private struct ImportResourceSummary + { + internal RenderTargetInfo importInfo; + internal RenderTargetInfo importInfoDepth; + internal ImportResourceParams cameraColorParams; + internal ImportResourceParams cameraDepthParams; + internal ImportResourceParams backBufferColorParams; + internal ImportResourceParams backBufferDepthParams; + } + + const int k_FinalBlitPassQueueOffset = 1; + const int k_AfterFinalBlitPassQueueOffset = k_FinalBlitPassQueueOffset + 1; + // TODO RENDERGRAPH: Once all cameras will run in a single RenderGraph we should remove all RTHandles and use per frame RG textures. // We use 2 camera color handles so we can handle the edge case when a pass might want to read and write the same target. // This is not allowed so we just swap the current target, this keeps camera stacking working and avoids an extra blit pass. static int m_CurrentColorHandle = 0; - RTHandle[] m_RenderGraphCameraColorHandles = new RTHandle[] + internal RTHandle[] m_RenderGraphCameraColorHandles = new RTHandle[] { null, null }; - RTHandle m_RenderGraphCameraDepthHandle; + internal RTHandle m_RenderGraphCameraDepthHandle; RTHandle m_RenderGraphBackbufferColorHandle; RTHandle m_RenderGraphBackbufferDepthHandle; RTHandle m_CameraSortingLayerHandle; + Material m_BlitMaterial; + Material m_BlitHDRMaterial; + Material m_SamplingMaterial; + + // 2D specific render passes DrawNormal2DPass m_NormalPass = new DrawNormal2DPass(); DrawLight2DPass m_LightPass = new DrawLight2DPass(); DrawShadow2DPass m_ShadowPass = new DrawShadow2DPass(); DrawRenderer2DPass m_RendererPass = new DrawRenderer2DPass(); + CopyDepthPass m_CopyDepthPass; + UpscalePass m_UpscalePass; + CopyCameraSortingLayerPass m_CopyCameraSortingLayerPass; + FinalBlitPass m_FinalBlitPass; + DrawScreenSpaceUIPass m_DrawOffscreenUIPass; + DrawScreenSpaceUIPass m_DrawOverlayUIPass; // from HDRP code + + Renderer2DData m_Renderer2DData; LayerBatch[] m_LayerBatches; int m_BatchCount; + internal bool m_CreateColorTexture; + internal bool m_CreateDepthTexture; bool ppcUpscaleRT = false; PostProcessPassRenderGraph m_PostProcessPassRenderGraph; - Internal.ColorGradingLutPass m_ColorGradingLutPassRenderGraph; - - private struct ImportResourceSummary - { - internal RenderTargetInfo importInfo; - internal RenderTargetInfo importInfoDepth; - internal ImportResourceParams cameraColorParams; - internal ImportResourceParams cameraDepthParams; - internal ImportResourceParams backBufferColorParams; - internal ImportResourceParams backBufferDepthParams; - } + ColorGradingLutPass m_ColorGradingLutPassRenderGraph; private RTHandle currentRenderGraphCameraColorHandle { @@ -62,6 +87,68 @@ private RTHandle nextRenderGraphCameraColorHandle } } + /// + public override int SupportedCameraStackingTypes() + { + return 1 << (int)CameraRenderType.Base | 1 << (int)CameraRenderType.Overlay; + } + + public Renderer2D(Renderer2DData data) : base(data) + { + if (GraphicsSettings.TryGetRenderPipelineSettings(out var shadersResources)) + { + m_BlitMaterial = CoreUtils.CreateEngineMaterial(shadersResources.coreBlitPS); + m_BlitHDRMaterial = CoreUtils.CreateEngineMaterial(shadersResources.blitHDROverlay); + m_SamplingMaterial = CoreUtils.CreateEngineMaterial(shadersResources.samplingPS); + } + + if (GraphicsSettings.TryGetRenderPipelineSettings(out var renderer2DResources)) + { + m_CopyDepthPass = new CopyDepthPass( + RenderPassEvent.AfterRenderingTransparents, + renderer2DResources.copyDepthPS, + shouldClear: true, + copyResolvedDepth: RenderingUtils.MultisampleDepthResolveSupported()); + } + + m_UpscalePass = new UpscalePass(RenderPassEvent.AfterRenderingPostProcessing, m_BlitMaterial); + m_CopyCameraSortingLayerPass = new CopyCameraSortingLayerPass(m_BlitMaterial); + m_FinalBlitPass = new FinalBlitPass(RenderPassEvent.AfterRendering + k_FinalBlitPassQueueOffset, m_BlitMaterial, m_BlitHDRMaterial); + + m_DrawOffscreenUIPass = new DrawScreenSpaceUIPass(RenderPassEvent.BeforeRenderingPostProcessing, true); + m_DrawOverlayUIPass = new DrawScreenSpaceUIPass(RenderPassEvent.AfterRendering + k_AfterFinalBlitPassQueueOffset, false); // after m_FinalBlitPass + + m_Renderer2DData = data; + m_Renderer2DData.lightCullResult = new Light2DCullResult(); + + supportedRenderingFeatures = new RenderingFeatures(); + + LensFlareCommonSRP.mergeNeeded = 0; + LensFlareCommonSRP.maxLensFlareWithOcclusionTemporalSample = 1; + LensFlareCommonSRP.Initialize(); + + Light2DManager.Initialize(); + + if (data.postProcessData != null) + { + m_PostProcessPassRenderGraph = new PostProcessPassRenderGraph(data.postProcessData, GraphicsFormat.B10G11R11_UFloatPack32); + m_ColorGradingLutPassRenderGraph = new ColorGradingLutPass(RenderPassEvent.BeforeRenderingPrePasses, data.postProcessData); + } + + PlatformAutoDetect.Initialize(); + +#if ENABLE_VR && ENABLE_XR_MODULE + if (GraphicsSettings.TryGetRenderPipelineSettings(out var xrResources)) + { + XRSystem.Initialize(XRPassUniversal.Create, xrResources.xrOcclusionMeshPS, xrResources.xrMirrorViewPS); + } +#endif + +#if URP_COMPATIBILITY_MODE + InitializeCompatibilityMode(data); +#endif + } + private bool IsPixelPerfectCameraEnabled(UniversalCameraData cameraData) { PixelPerfectCamera ppc = null; @@ -73,6 +160,34 @@ private bool IsPixelPerfectCameraEnabled(UniversalCameraData cameraData) return ppc != null && ppc.enabled && ppc.cropFrame != PixelPerfectCamera.CropFrame.None; } + private RenderPassInputSummary GetRenderPassInputs(UniversalCameraData cameraData) + { + RenderPassInputSummary inputSummary = new RenderPassInputSummary(); + + for (int i = 0; i < activeRenderPassQueue.Count; ++i) + { + ScriptableRenderPass pass = activeRenderPassQueue[i]; + bool needsDepth = (pass.input & ScriptableRenderPassInput.Depth) != ScriptableRenderPassInput.None; + bool needsColor = (pass.input & ScriptableRenderPassInput.Color) != ScriptableRenderPassInput.None; + + inputSummary.requiresDepthTexture |= needsDepth; + inputSummary.requiresColorTexture |= needsColor; + } + + inputSummary.requiresColorTexture |= cameraData.postProcessEnabled + || cameraData.isHdrEnabled + || cameraData.isSceneViewCamera + || !cameraData.isDefaultViewport + || cameraData.requireSrgbConversion + || !cameraData.resolveFinalTarget + || cameraData.cameraTargetDescriptor.msaaSamples > 1 && UniversalRenderer.PlatformRequiresExplicitMsaaResolve() + || m_Renderer2DData.useCameraSortingLayerTexture + || !Mathf.Approximately(cameraData.renderScale, 1.0f) + || (DebugHandler != null && DebugHandler.WriteToDebugScreenTexture(cameraData.resolveFinalTarget)); + + return inputSummary; + } + ImportResourceSummary GetImportResourceSummary(RenderGraph renderGraph, UniversalCameraData cameraData) { ImportResourceSummary output = new ImportResourceSummary(); @@ -120,22 +235,49 @@ ImportResourceSummary GetImportResourceSummary(RenderGraph renderGraph, Universa output.backBufferDepthParams.clearColor = backBufferBackgroundColor; output.backBufferDepthParams.discardOnLastUse = true; - if (cameraData.targetTexture != null) - { - output.importInfo.width = cameraData.targetTexture.width; - output.importInfo.height = cameraData.targetTexture.height; - output.importInfo.volumeDepth = cameraData.targetTexture.volumeDepth; - output.importInfo.msaaSamples = cameraData.targetTexture.antiAliasing; - output.importInfo.format = cameraData.targetTexture.graphicsFormat; + bool isBuiltInTexture = cameraData.targetTexture == null; - output.importInfoDepth = output.importInfo; - output.importInfoDepth.format = cameraData.targetTexture.depthStencilFormat; +#if ENABLE_VR && ENABLE_XR_MODULE + if (cameraData.xr.enabled) + { + isBuiltInTexture = false; + } +#endif - // We let users know that a depth format is required for correct usage, but we fallback to the old default depth format behaviour to avoid regressions - if (output.importInfoDepth.format == GraphicsFormat.None) + if (!isBuiltInTexture) + { +#if ENABLE_VR && ENABLE_XR_MODULE + if (cameraData.xr.enabled) + { + output.importInfo.width = cameraData.xr.renderTargetDesc.width; + output.importInfo.height = cameraData.xr.renderTargetDesc.height; + output.importInfo.volumeDepth = cameraData.xr.renderTargetDesc.volumeDepth; + output.importInfo.msaaSamples = cameraData.xr.renderTargetDesc.msaaSamples; + output.importInfo.format = cameraData.xr.renderTargetDesc.graphicsFormat; + if (!UniversalRenderer.PlatformRequiresExplicitMsaaResolve()) + output.importInfo.bindMS = output.importInfo.msaaSamples > 1; + + output.importInfoDepth = output.importInfo; + output.importInfoDepth.format = cameraData.xr.renderTargetDesc.depthStencilFormat; + } + else +#endif { - output.importInfoDepth.format = SystemInfo.GetGraphicsFormat(DefaultFormat.DepthStencil); - Debug.LogWarning("In the render graph API, the output Render Texture must have a depth buffer. When you select a Render Texture in any camera's Output Texture property, the Depth Stencil Format property of the texture must be set to a value other than None."); + output.importInfo.width = cameraData.targetTexture.width; + output.importInfo.height = cameraData.targetTexture.height; + output.importInfo.volumeDepth = cameraData.targetTexture.volumeDepth; + output.importInfo.msaaSamples = cameraData.targetTexture.antiAliasing; + output.importInfo.format = cameraData.targetTexture.graphicsFormat; + + output.importInfoDepth = output.importInfo; + output.importInfoDepth.format = cameraData.targetTexture.depthStencilFormat; + + // We let users know that a depth format is required for correct usage, but we fallback to the old default depth format behaviour to avoid regressions + if (output.importInfoDepth.format == GraphicsFormat.None) + { + output.importInfoDepth.format = SystemInfo.GetGraphicsFormat(DefaultFormat.DepthStencil); + Debug.LogWarning("In the render graph API, the output Render Texture must have a depth buffer. When you select a Render Texture in any camera's Output Texture property, the Depth Stencil Format property of the texture must be set to a value other than None."); + } } } else @@ -160,6 +302,16 @@ ImportResourceSummary GetImportResourceSummary(RenderGraph renderGraph, Universa return output; } + public override void SetupCullingParameters(ref ScriptableCullingParameters cullingParameters, ref CameraData cameraData) + { + cullingParameters.cullingOptions = CullingOptions.None; + cullingParameters.isOrthographic = cameraData.camera.orthographic; + cullingParameters.shadowDistance = 0.0f; + + var cullResult = m_Renderer2DData.lightCullResult as Light2DCullResult; + cullResult.SetupCulling(ref cullingParameters, cameraData.camera); + } + void InitializeLayerBatches() { Universal2DResourceData resourceData = frameData.Get(); @@ -265,10 +417,10 @@ void CreateResources(RenderGraph renderGraph) m_CreateColorTexture |= forceCreateColorTexture; // RTHandles do not support combining color and depth in the same texture so we create them separately - m_CreateDepthTexture |= createColorTexture; + m_CreateDepthTexture |= m_CreateColorTexture; // Camera Target Color - if (createColorTexture) + if (m_CreateColorTexture) { cameraTargetDescriptor.useMipMap = false; cameraTargetDescriptor.autoGenerateMips = false; @@ -282,7 +434,7 @@ void CreateResources(RenderGraph renderGraph) commonResourceData.activeColorID = ActiveID.BackBuffer; // Camera Target Depth - if (createDepthTexture) + if (m_CreateDepthTexture) { var depthDescriptor = cameraData.cameraTargetDescriptor; depthDescriptor.useMipMap = false; @@ -343,6 +495,14 @@ void CreateResources(RenderGraph renderGraph) RenderTargetIdentifier targetColorId = cameraData.targetTexture != null ? new RenderTargetIdentifier(cameraData.targetTexture) : BuiltinRenderTextureType.CameraTarget; RenderTargetIdentifier targetDepthId = cameraData.targetTexture != null ? new RenderTargetIdentifier(cameraData.targetTexture) : BuiltinRenderTextureType.Depth; +#if ENABLE_VR && ENABLE_XR_MODULE + if (cameraData.xr.enabled) + { + targetColorId = cameraData.xr.renderTarget; + targetDepthId = cameraData.xr.renderTarget; + } +#endif + if (m_RenderGraphBackbufferColorHandle == null) { m_RenderGraphBackbufferColorHandle = RTHandles.Alloc(targetColorId, "Backbuffer color"); @@ -364,7 +524,7 @@ void CreateResources(RenderGraph renderGraph) commonResourceData.backBufferColor = renderGraph.ImportTexture(m_RenderGraphBackbufferColorHandle, importSummary.importInfo, importSummary.backBufferColorParams); commonResourceData.backBufferDepth = renderGraph.ImportTexture(m_RenderGraphBackbufferDepthHandle, importSummary.importInfoDepth, importSummary.backBufferDepthParams); - var postProcessDesc = CompatibilityMode.PostProcessPass.GetCompatibleDescriptor(cameraTargetDescriptor, cameraTargetDescriptor.width, cameraTargetDescriptor.height, cameraTargetDescriptor.graphicsFormat); + var postProcessDesc = PostProcessPassRenderGraph.GetCompatibleDescriptor(cameraTargetDescriptor, cameraTargetDescriptor.width, cameraTargetDescriptor.height, cameraTargetDescriptor.graphicsFormat); commonResourceData.afterPostProcessColor = UniversalRenderer.CreateRenderGraphTexture(renderGraph, postProcessDesc, "_AfterPostProcessTexture", true); if (RequiresDepthCopyPass(cameraData)) @@ -383,6 +543,22 @@ void CreateCameraNormalsTextures(RenderGraph renderGraph, RenderTextureDescripto for (int i = 0; i < resourceData.normalsTexture.Length; ++i) resourceData.normalsTexture[i] = UniversalRenderer.CreateRenderGraphTexture(renderGraph, desc, "_NormalMap", true, RendererLighting.k_NormalClearColor); + if (m_Renderer2DData.useDepthStencilBuffer) + { + // Normals pass can reuse active depth if same dimensions, if not create a new depth texture +#if !(ENABLE_VR && ENABLE_XR_MODULE) + if (descriptor.width != width || descriptor.height != height) +#endif + { + var normalsDepthDesc = new RenderTextureDescriptor(width, height); + normalsDepthDesc.graphicsFormat = GraphicsFormat.None; + normalsDepthDesc.autoGenerateMips = false; + normalsDepthDesc.msaaSamples = descriptor.msaaSamples; + normalsDepthDesc.depthStencilFormat = CoreUtils.GetDefaultDepthStencilFormat(); + + resourceData.normalsDepth = UniversalRenderer.CreateRenderGraphTexture(renderGraph, normalsDepthDesc, "_NormalDepth", false, FilterMode.Bilinear); + } + } } void CreateLightTextures(RenderGraph renderGraph, int width, int height) @@ -443,8 +619,9 @@ void CreateCameraSortingLayerTexture(RenderGraph renderGraph, RenderTextureDescr bool RequiresDepthCopyPass(UniversalCameraData cameraData) { var renderPassInputs = GetRenderPassInputs(cameraData); + bool requiresDepthTexture = cameraData.requiresDepthTexture || renderPassInputs.requiresDepthTexture; bool cameraHasPostProcessingWithDepth = cameraData.postProcessEnabled && m_PostProcessPassRenderGraph != null && cameraData.postProcessingRequiresDepthTexture; - bool requiresDepthCopyPass = (cameraHasPostProcessingWithDepth || renderPassInputs.requiresDepthTexture) && m_CreateDepthTexture; + bool requiresDepthCopyPass = (cameraHasPostProcessingWithDepth || requiresDepthTexture) && m_CreateDepthTexture; return requiresDepthCopyPass; } @@ -483,11 +660,14 @@ internal void RecordCustomRenderGraphPasses(RenderGraph renderGraph, RenderPassE internal override void OnRecordRenderGraph(RenderGraph renderGraph, ScriptableRenderContext context) { CommonResourceData commonResourceData = frameData.GetOrCreate(); + UniversalCameraData cameraData = frameData.Get(); InitializeLayerBatches(); CreateResources(renderGraph); + DebugHandler?.Setup(renderGraph, cameraData.isPreviewCamera); + SetupRenderGraphCameraProperties(renderGraph, commonResourceData.isActiveTargetBackBuffer); #if VISUAL_EFFECT_GRAPH_0_0_1_OR_NEWER @@ -498,11 +678,15 @@ internal override void OnRecordRenderGraph(RenderGraph renderGraph, ScriptableRe RecordCustomRenderGraphPasses(renderGraph, RenderPassEvent2D.BeforeRendering); + BeginRenderGraphXRRendering(renderGraph); + OnMainRendering(renderGraph); RecordCustomRenderGraphPasses(renderGraph, RenderPassEvent2D.BeforeRenderingPostProcessing); OnAfterRendering(renderGraph); + + EndRenderGraphXRRendering(renderGraph); } public override void OnEndRenderGraphFrame() @@ -553,7 +737,7 @@ private void OnMainRendering(RenderGraph renderGraph) commonResourceData.internalColorLut = internalColorLut; } - var cameraSortingLayerBoundsIndex = Render2DLightingPass.GetCameraSortingLayerBoundsIndex(m_Renderer2DData); + var cameraSortingLayerBoundsIndex = m_Renderer2DData.GetCameraSortingLayerBoundsIndex(); // Set Global Properties and Textures GlobalPropertiesPass.Setup(renderGraph, frameData, m_Renderer2DData, cameraData); @@ -702,15 +886,15 @@ private void OnAfterRendering(RenderGraph renderGraph) if (isTargetBackbuffer) { - commonResourceData.activeColorID = UniversalResourceData.ActiveID.BackBuffer; - commonResourceData.activeDepthID = UniversalResourceData.ActiveID.BackBuffer; + commonResourceData.activeColorID = ActiveID.BackBuffer; + commonResourceData.activeDepthID = ActiveID.BackBuffer; } } - var finalColorHandle = commonResourceData.activeColorTexture; - RecordCustomRenderGraphPasses(renderGraph, RenderPassEvent2D.AfterRenderingPostProcessing); + var finalColorHandle = commonResourceData.activeColorTexture; + // Do PixelPerfect upscaling when using the Stretch Fill option if (requirePixelPerfectUpscale) { @@ -726,8 +910,10 @@ private void OnAfterRendering(RenderGraph renderGraph) { m_PostProcessPassRenderGraph.RenderFinalPassRenderGraph(renderGraph, frameData, in finalColorHandle, commonResourceData.overlayUITexture, in finalBlitTarget, needsColorEncoding); - commonResourceData.activeColorID = UniversalResourceData.ActiveID.BackBuffer; - commonResourceData.activeDepthID = UniversalResourceData.ActiveID.BackBuffer; + finalColorHandle = finalBlitTarget; + + commonResourceData.activeColorID = ActiveID.BackBuffer; + commonResourceData.activeDepthID = ActiveID.BackBuffer; } // If post-processing then we already resolved to camera target while doing post. @@ -756,7 +942,6 @@ private void OnAfterRendering(RenderGraph renderGraph) m_DrawOverlayUIPass.RenderOverlay(renderGraph, frameData, in finalColorHandle, in finalDepthHandle); // If HDR debug views are enabled, DebugHandler will perform the blit from debugScreenColor (== finalColorHandle) to backBufferColor. - DebugHandler?.Setup(renderGraph, cameraData.isPreviewCamera); DebugHandler?.Render(renderGraph, cameraData, finalColorHandle, commonResourceData.overlayUITexture, commonResourceData.backBufferColor); if (cameraData.isSceneViewCamera) @@ -766,15 +951,62 @@ private void OnAfterRendering(RenderGraph renderGraph) DrawRenderGraphGizmos(renderGraph, frameData, commonResourceData.activeColorTexture, commonResourceData.activeDepthTexture, GizmoSubset.PostImageEffects); } + public Renderer2DData GetRenderer2DData() + { + return m_Renderer2DData; + } + + protected override void Dispose(bool disposing) + { + CleanupRenderGraphResources(); + +#if URP_COMPATIBILITY_MODE + CleanupCompatibilityModeResources(); +#endif + + base.Dispose(disposing); + } + private void CleanupRenderGraphResources() { + m_Renderer2DData.Dispose(); + m_UpscalePass.Dispose(); + m_CopyDepthPass?.Dispose(); + m_FinalBlitPass?.Dispose(); + m_DrawOffscreenUIPass?.Dispose(); + m_DrawOverlayUIPass?.Dispose(); + m_PostProcessPassRenderGraph?.Cleanup(); + m_ColorGradingLutPassRenderGraph?.Cleanup(); + m_RenderGraphCameraColorHandles[0]?.Release(); m_RenderGraphCameraColorHandles[1]?.Release(); m_RenderGraphCameraDepthHandle?.Release(); m_RenderGraphBackbufferColorHandle?.Release(); m_RenderGraphBackbufferDepthHandle?.Release(); m_CameraSortingLayerHandle?.Release(); + + Light2DManager.Dispose(); Light2DLookupTexture.Release(); + + CoreUtils.Destroy(m_BlitMaterial); + CoreUtils.Destroy(m_BlitHDRMaterial); + CoreUtils.Destroy(m_SamplingMaterial); + +#if ENABLE_VR && ENABLE_XR_MODULE + XRSystem.Dispose(); +#endif } + + internal static bool IsGLESDevice() + { + return SystemInfo.graphicsDeviceType == GraphicsDeviceType.OpenGLES3; + } + + internal static bool supportsMRT + { + get => !IsGLESDevice(); + } + + internal override bool supportsNativeRenderPassRendergraphCompiler => true; } } diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/2D/Rendergraph/UpscalePass.cs b/Packages/com.unity.render-pipelines.universal/Runtime/2D/Rendergraph/UpscalePass.cs index 6a5ec94132e..21c0948f2c1 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/2D/Rendergraph/UpscalePass.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/2D/Rendergraph/UpscalePass.cs @@ -44,7 +44,8 @@ public void Dispose() destination?.Release(); } - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] +#if URP_COMPATIBILITY_MODE + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) { var cmd = renderingData.commandBuffer; @@ -52,6 +53,7 @@ public override void Execute(ScriptableRenderContext context, ref RenderingData ExecutePass(CommandBufferHelpers.GetRasterCommandBuffer(cmd), source); } +#endif private static void ExecutePass(RasterCommandBuffer cmd, RTHandle source) { diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/2D/Shadows/ShadowCaster2D.cs b/Packages/com.unity.render-pipelines.universal/Runtime/2D/Shadows/ShadowCaster2D.cs index 6f106123cad..d95a61bf0e9 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/2D/Shadows/ShadowCaster2D.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/2D/Shadows/ShadowCaster2D.cs @@ -197,7 +197,7 @@ public ShadowCastingOptions castingOption /// /// If selfShadows is true, useRendererSilhoutte specifies that the renderer's sihouette should be considered part of the shadow. If selfShadows is false, useRendererSilhoutte specifies that the renderer's sihouette should be excluded from the shadow /// - [Obsolete("useRendererSilhoutte is deprecated. Use selfShadows instead")] + [Obsolete("useRendererSilhoutte is deprecated. Use selfShadows instead. #from(2023.1)")] public bool useRendererSilhouette { set { m_UseRendererSilhouette = value; } diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/2D/Shadows/ShadowRendering.cs b/Packages/com.unity.render-pipelines.universal/Runtime/2D/Shadows/ShadowRendering.cs index dde2ed05a8b..b01239683fb 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/2D/Shadows/ShadowRendering.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/2D/Shadows/ShadowRendering.cs @@ -45,6 +45,7 @@ internal enum ShadowTestType private static readonly Color k_ShadowColorLookup = new Color(0, 0, 1, 0); private static readonly Color k_UnshadowColorLookup = new Color(0, 1, 0, 0); +#if URP_COMPATIBILITY_MODE private static RTHandle[] m_RenderTargets = null; private static int[] m_RenderTargetIds = null; private static RenderTargetIdentifier[] m_LightInputTextures = null; @@ -72,6 +73,7 @@ internal static void InitializeBudget(uint maxTextureCount) m_LightInputTextures = new RenderTargetIdentifier[maxTextureCount]; } } +#endif private static Material CreateMaterial(Shader shader, int offset, int pass) { @@ -271,14 +273,15 @@ internal static void CallOnBeforeRender(Camera camera, ILight2DCullResult cullRe } } - private static void CreateShadowRenderTexture(IRenderPass2D pass, RenderingData renderingData, CommandBuffer cmdBuffer, int shadowIndex) + internal static void PrerenderShadows(UnsafeCommandBuffer cmdBuffer, Renderer2DData rendererData, ref LayerBatch layer, Light2D light, int shadowIndex, float shadowIntensity) { - CreateShadowRenderTexture(pass, m_RenderTargetIds[shadowIndex], renderingData, cmdBuffer); + RenderShadows(cmdBuffer, rendererData, ref layer, light); } - internal static void PrerenderShadows(UnsafeCommandBuffer cmdBuffer, Renderer2DData rendererData, ref LayerBatch layer, Light2D light, int shadowIndex, float shadowIntensity) +#if URP_COMPATIBILITY_MODE + private static void CreateShadowRenderTexture(IRenderPass2D pass, RenderingData renderingData, CommandBuffer cmdBuffer, int shadowIndex) { - RenderShadows(cmdBuffer, rendererData, ref layer, light); + CreateShadowRenderTexture(pass, m_RenderTargetIds[shadowIndex], renderingData, cmdBuffer); } internal static bool PrerenderShadows(this IRenderPass2D pass, RenderingData renderingData, CommandBuffer cmdBuffer, ref LayerBatch layer, Light2D light, int shadowIndex, float shadowIntensity) @@ -320,6 +323,7 @@ internal static void ReleaseShadowRenderTexture(CommandBuffer cmdBuffer, int sha { cmdBuffer.ReleaseTemporaryRT(m_RenderTargetIds[shadowIndex]); } +#endif private static void SetShadowProjectionGlobals(UnsafeCommandBuffer cmdBuffer, ShadowCaster2D shadowCaster, Light2D light) { @@ -334,6 +338,7 @@ private static void SetShadowProjectionGlobals(UnsafeCommandBuffer cmdBuffer, Sh cmdBuffer.SetGlobalFloat(k_ShadowContractionDistanceID, 0f); } +#if URP_COMPATIBILITY_MODE internal static void SetGlobalShadowTexture(CommandBuffer cmdBuffer, Light2D light, int shadowIndex) { var textureIndex = shadowIndex; @@ -342,6 +347,7 @@ internal static void SetGlobalShadowTexture(CommandBuffer cmdBuffer, Light2D lig cmdBuffer.SetGlobalColor(k_ShadowShadowColorID, k_ShadowColorLookup); cmdBuffer.SetGlobalColor(k_ShadowUnshadowColorID, k_UnshadowColorLookup); } +#endif internal static void SetGlobalShadowProp(IRasterCommandBuffer cmdBuffer) { diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/2D/Unity.RenderPipelines.Universal.2D.Runtime.asmdef b/Packages/com.unity.render-pipelines.universal/Runtime/2D/Unity.RenderPipelines.Universal.2D.Runtime.asmdef index c745caf980d..cdb5d66544f 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/2D/Unity.RenderPipelines.Universal.2D.Runtime.asmdef +++ b/Packages/com.unity.render-pipelines.universal/Runtime/2D/Unity.RenderPipelines.Universal.2D.Runtime.asmdef @@ -37,7 +37,17 @@ "name": "com.unity.visualeffectgraph", "expression": "0.0.1", "define": "VISUAL_EFFECT_GRAPH_0_0_1_OR_NEWER" + }, + { + "name": "com.unity.modules.vr", + "expression": "1.0.0", + "define": "ENABLE_VR_MODULE" + }, + { + "name": "com.unity.modules.xr", + "expression": "1.0.0", + "define": "ENABLE_XR_MODULE" } ], "noEngineReferences": false -} \ No newline at end of file +} 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 9e92d8f694f..b21e83e7b8f 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Data/UniversalRenderPipelineAsset.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Data/UniversalRenderPipelineAsset.cs @@ -247,7 +247,7 @@ public enum LightRenderingMode /// /// Defines if profiling is logged or not. This enum is not longer in use, use the Profiler instead. /// - [Obsolete("PipelineDebugLevel is replaced to use the profiler and has no effect.", true)] + [Obsolete("PipelineDebugLevel is replaced to use the profiler and has no effect. #from(2022.2) #breakingFrom(2023.1)", true)] public enum PipelineDebugLevel { /// @@ -414,13 +414,14 @@ public enum ShEvalMode PerPixel = 3, } +#if URP_COMPATIBILITY_MODE internal struct DeprecationMessage { internal const string CompatibilityScriptingAPIObsolete = "This rendering path is for compatibility mode only (when Render Graph is disabled). Use Render Graph API instead."; -#if URP_COMPATIBILITY_MODE + internal const string CompatibilityScriptingAPIObsoleteFrom2023_3 = CompatibilityScriptingAPIObsolete + " #from(2023.3)"; internal const string CompatibilityScriptingAPIConsoleWarning = "Your project uses Compatibility Mode, which disables the render graph system. Compatibility Mode is deprecated. Migrate your ScriptableRenderPasses to the Render Graph API instead. After you migrate, go to Edit > Project Settings > Player and remove the URP_COMPATIBILITY_MODE define from the Scripting Define Symbols. If you don't remove the define, build time and build size are slightly increased."; -#endif } +#endif #if UNITY_EDITOR && URP_COMPATIBILITY_MODE internal class WarnUsingNonRenderGraph @@ -460,7 +461,7 @@ public partial class UniversalRenderPipelineAsset : RenderPipelineAsset /// Support GPU Streaming for Probe Volumes. /// - [Obsolete( "This is obsolete, use supportProbeVolumeGPUStreaming instead.")] + [Obsolete( "This is obsolete, use supportProbeVolumeGPUStreaming instead. #from(2023.3)")] public bool supportProbeVolumeStreaming { get => m_SupportProbeVolumeGPUStreaming; @@ -1504,7 +1505,7 @@ public bool supportsDynamicBatching /// /// Returns true if the Render Pipeline Asset supports light layers, false otherwise. /// - [Obsolete("This is obsolete, use useRenderingLayers instead.", true)] + [Obsolete("This is obsolete, use useRenderingLayers instead. #from(2023.1) #breakingFrom(2023.1)", true)] public bool supportsLightLayers => m_SupportsLightLayers; /// @@ -1530,7 +1531,7 @@ public VolumeProfile volumeProfile /// /// Previously returned the debug level for this Render Pipeline Asset but is now deprecated. Replaced to use the profiler and is no longer used. /// - [Obsolete("PipelineDebugLevel is deprecated and replaced to use the profiler. Calling debugLevel is not necessary.", true)] + [Obsolete("PipelineDebugLevel is deprecated and replaced to use the profiler. Calling debugLevel is not necessary. #from(2022.2) #breakingFrom(2023.1)", true)] public PipelineDebugLevel debugLevel => PipelineDebugLevel.Disabled; /// @@ -1546,15 +1547,12 @@ public bool useSRPBatcher /// /// Controls whether the RenderGraph render path is enabled. /// - [Obsolete("This has been deprecated, please use GraphicsSettings.GetRenderPipelineSettings().enableRenderCompatibilityMode instead.")] + [Obsolete("This has been deprecated, please use GraphicsSettings.GetRenderPipelineSettings().enableRenderCompatibilityMode instead. #from(2023.3)")] public bool enableRenderGraph #if URP_COMPATIBILITY_MODE { get { - if (RenderGraphGraphicsAutomatedTests.enabled) - return true; - if (GraphicsSettings.TryGetRenderPipelineSettings(out var renderGraphSettings)) return !renderGraphSettings.enableRenderCompatibilityMode; @@ -1642,17 +1640,17 @@ public int numIterationsEnclosingSphere public override string renderPipelineShaderTag => UniversalRenderPipeline.k_ShaderTagName; /// Names used for display of rendering layer masks. - [Obsolete("This property is obsolete. Use RenderingLayerMask API and Tags & Layers project settings instead. #from(23.3)", false)] + [Obsolete("This property is obsolete. Use RenderingLayerMask API and Tags & Layers project settings instead. #from(2023.3)")] public override string[] renderingLayerMaskNames => RenderingLayerMask.GetDefinedRenderingLayerNames(); /// Names used for display of rendering layer masks with prefix. - [Obsolete("This property is obsolete. Use RenderingLayerMask API and Tags & Layers project settings instead. #from(23.3)", false)] + [Obsolete("This property is obsolete. Use RenderingLayerMask API and Tags & Layers project settings instead. #from(2023.3)")] public override string[] prefixedRenderingLayerMaskNames => Array.Empty(); /// /// Names used for display of light layers. /// - [Obsolete("This is obsolete, please use renderingLayerMaskNames instead.", true)] + [Obsolete("This is obsolete, please use renderingLayerMaskNames instead. #from(2023.1) #breakingFrom(2023.1)", true)] public string[] lightLayerMaskNames => new string[0]; /// @@ -1980,7 +1978,7 @@ public ProbeVolumeSHBands maxSHBands /// /// Returns the projects global ProbeVolumeSceneData instance. /// - [Obsolete("This property is no longer necessary.")] + [Obsolete("This property is no longer necessary. #from(2023.3)")] public ProbeVolumeSceneData probeVolumeSceneData => null; /// diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Data/UniversalRenderPipelineAssetPrefiltering.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Data/UniversalRenderPipelineAssetPrefiltering.cs index bf13747e05c..6b20f04ce24 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Data/UniversalRenderPipelineAssetPrefiltering.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Data/UniversalRenderPipelineAssetPrefiltering.cs @@ -174,6 +174,10 @@ internal enum PrefilteringModeAdditionalLights [ShaderKeywordFilter.RemoveIf(true, keywordNames: ShaderKeywordStrings.SCREEN_COORD_OVERRIDE)] [SerializeField] private bool m_PrefilterScreenCoord = false; + // Screen space irradiance. + [ShaderKeywordFilter.RemoveIf(true, keywordNames: ShaderKeywordStrings.ScreenSpaceIrradiance)] + [SerializeField] private bool m_PrefilterScreenSpaceIrradiance = false; + // Native Render Pass [ShaderKeywordFilter.RemoveIf(true, keywordNames: ShaderKeywordStrings.RenderPassEnabled)] [SerializeField] private bool m_PrefilterNativeRenderPass = false; @@ -188,6 +192,11 @@ internal enum PrefilteringModeAdditionalLights [ShaderKeywordFilter.SelectIf(false, keywordNames: ShaderKeywordStrings.LIGHTMAP_BICUBIC_SAMPLING)] [SerializeField] private bool m_PrefilterBicubicLightmapSampling = false; + // ReflectionProbe rotation + [ShaderKeywordFilter.RemoveIf(true, keywordNames: ShaderKeywordStrings.ReflectionProbeRotation)] + [ShaderKeywordFilter.SelectIf(false, keywordNames: ShaderKeywordStrings.ReflectionProbeRotation)] + [SerializeField] private bool m_PrefilterReflectionProbeRotation = false; + /// /// Data used for Shader Prefiltering. Gathered after going through the URP Assets, /// Renderers and Renderer Features in OnPreprocessBuild() inside ShaderPreprocessor.cs. @@ -227,6 +236,9 @@ internal struct ShaderPrefilteringData public bool stripSSAOSampleCountHigh; public bool stripBicubicLightmapSampling; + public bool stripReflectionProbeRotation; + + public bool stripScreenSpaceIrradiance; public static ShaderPrefilteringData GetDefault() { @@ -283,6 +295,9 @@ internal void UpdateShaderKeywordPrefiltering(ref ShaderPrefilteringData prefilt m_PrefilterSSAOSampleCountHigh = prefilteringData.stripSSAOSampleCountHigh; m_PrefilterBicubicLightmapSampling = prefilteringData.stripBicubicLightmapSampling; + m_PrefilterReflectionProbeRotation = prefilteringData.stripReflectionProbeRotation; + + m_PrefilterScreenSpaceIrradiance = prefilteringData.stripScreenSpaceIrradiance; } } } diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Debug/DebugDisplaySettingsRendering.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Debug/DebugDisplaySettingsRendering.cs index fab8197fb74..e3acbaf376c 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Debug/DebugDisplaySettingsRendering.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Debug/DebugDisplaySettingsRendering.cs @@ -48,7 +48,7 @@ public DebugWireframeMode wireframeMode /// /// Whether debug overdraw mode is active. /// - [Obsolete("overdraw has been deprecated. Use overdrawMode instead.", true)] + [Obsolete("overdraw has been deprecated. Use overdrawMode instead. #from(2022.2) #breakingFrom(2023.1)", true)] public bool overdraw { diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Debug/UniversalRenderPipelineVolumeDebugSettings.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Debug/UniversalRenderPipelineVolumeDebugSettings.cs index c9ecec0c7c4..c474a696825 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Debug/UniversalRenderPipelineVolumeDebugSettings.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Debug/UniversalRenderPipelineVolumeDebugSettings.cs @@ -5,7 +5,7 @@ namespace UnityEngine.Rendering.Universal /// /// Volume debug settings. /// - [Obsolete("This is not longer supported Please use DebugDisplaySettingsVolume. #from(6000.2)", false)] + [Obsolete("This is not longer supported Please use DebugDisplaySettingsVolume. #from(6000.2)")] public partial class UniversalRenderPipelineVolumeDebugSettings : VolumeDebugSettings { /// Selected camera volume stack. diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Debug/UniversalRenderPipelineVolumeDebugSettings.deprecated.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Debug/UniversalRenderPipelineVolumeDebugSettings.deprecated.cs index ae9617f0c3a..7c68db0d38c 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Debug/UniversalRenderPipelineVolumeDebugSettings.deprecated.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Debug/UniversalRenderPipelineVolumeDebugSettings.deprecated.cs @@ -7,7 +7,7 @@ public partial class UniversalRenderPipelineVolumeDebugSettings /// /// Specifies the render pipeline for this volume settings /// - [Obsolete("This property is obsolete and kept only for not breaking user code. VolumeDebugSettings will use current pipeline when it needs to gather volume component types and paths. #from(23.2)", false)] + [Obsolete("This property is obsolete and kept only for not breaking user code. VolumeDebugSettings will use current pipeline when it needs to gather volume component types and paths. #from(2023.2)")] public override Type targetRenderPipeline => typeof(UniversalRenderPipeline); } } diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Decal/DBuffer/DBufferRenderPass.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Decal/DBuffer/DBufferRenderPass.cs index 920bd99a284..22be9aa64ba 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Decal/DBuffer/DBufferRenderPass.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Decal/DBuffer/DBufferRenderPass.cs @@ -124,7 +124,7 @@ public void Setup(in CameraData cameraData, RTHandle depthTextureHandle) depthHandle = depthTextureHandle; } - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] public override void OnCameraSetup(CommandBuffer cmd, ref RenderingData renderingData) { // Disable obsolete warning for internal usage @@ -133,7 +133,7 @@ public override void OnCameraSetup(CommandBuffer cmd, ref RenderingData renderin #pragma warning restore CS0618 } - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) { InitPassData(ref m_PassData); diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Decal/DBuffer/DecalForwardEmissivePass.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Decal/DBuffer/DecalForwardEmissivePass.cs index af70945526b..e4b6bbd9ec5 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Decal/DBuffer/DecalForwardEmissivePass.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Decal/DBuffer/DecalForwardEmissivePass.cs @@ -40,7 +40,7 @@ public DecalForwardEmissivePass(DecalDrawFowardEmissiveSystem drawSystem) } #if URP_COMPATIBILITY_MODE - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) { InitPassData(ref m_PassData); diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Decal/DecalPreviewPass.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Decal/DecalPreviewPass.cs index 7b8818fad90..723bc116aad 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Decal/DecalPreviewPass.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Decal/DecalPreviewPass.cs @@ -32,7 +32,7 @@ public DecalPreviewPass() } #if URP_COMPATIBILITY_MODE - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) { UniversalRenderingData universalRenderingData = renderingData.frameData.Get(); diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Decal/DecalProjector.deprecated.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Decal/DecalProjector.deprecated.cs index d9a61007883..ec04e8a4085 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Decal/DecalProjector.deprecated.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Decal/DecalProjector.deprecated.cs @@ -4,7 +4,7 @@ namespace UnityEngine.Rendering.Universal { public partial class DecalProjector { - [SerializeField, Obsolete("This field is only kept for migration purpose. Use m_RenderingLayersMask instead. #from(6000.2)", false)] + [SerializeField, Obsolete("This field is only kept for migration purpose. Use m_RenderingLayersMask instead. #from(6000.2)")] uint m_DecalLayerMask = 1; } } \ No newline at end of file diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Decal/ScreenSpace/DecalGBufferRenderPass.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Decal/ScreenSpace/DecalGBufferRenderPass.cs index e7a50e247f4..4b0b2a91e70 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Decal/ScreenSpace/DecalGBufferRenderPass.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Decal/ScreenSpace/DecalGBufferRenderPass.cs @@ -54,7 +54,7 @@ internal void Setup(DeferredLights deferredLights) } #if URP_COMPATIBILITY_MODE - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] public override void Configure(CommandBuffer cmd, RenderTextureDescriptor cameraTextureDescriptor) { if (m_DeferredLights.UseFramebufferFetch) @@ -114,7 +114,7 @@ public override void Configure(CommandBuffer cmd, RenderTextureDescriptor camera #pragma warning restore CS0618 } - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) { UniversalCameraData cameraData = renderingData.frameData.Get(); diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Decal/ScreenSpace/DecalScreenSpaceRenderPass.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Decal/ScreenSpace/DecalScreenSpaceRenderPass.cs index ba8b3df587b..bbd3f766f09 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Decal/ScreenSpace/DecalScreenSpaceRenderPass.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Decal/ScreenSpace/DecalScreenSpaceRenderPass.cs @@ -57,7 +57,7 @@ private RendererListParams CreateRenderListParams(UniversalRenderingData renderi } #if URP_COMPATIBILITY_MODE - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) { UniversalCameraData cameraData = renderingData.frameData.Get(); diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Deprecated.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Deprecated.cs index 9d319758a5c..8c4a0b080b5 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Deprecated.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Deprecated.cs @@ -2,9 +2,6 @@ // way to being deprecated and removed in future releases using System; using System.ComponentModel; -using UnityEngine; -using UnityEngine.Rendering; -using UnityEngine.Rendering.Universal; namespace UnityEngine.Rendering.Universal { @@ -27,14 +24,14 @@ public partial class AdditionalLightsShadowCasterPass /// The ID for the additional shadows buffer ID. /// This has been deprecated. Shadow slice matrix is now passed to the GPU using an entry in buffer m_AdditionalLightsWorldToShadow_SSBO. /// - [Obsolete("AdditionalLightsShadowCasterPass.m_AdditionalShadowsBufferId was deprecated. Shadow slice matrix is now passed to the GPU using an entry in buffer m_AdditionalLightsWorldToShadow_SSBO", true)] + [Obsolete("AdditionalLightsShadowCasterPass.m_AdditionalShadowsBufferId was deprecated. Shadow slice matrix is now passed to the GPU using an entry in buffer m_AdditionalLightsWorldToShadow_SSBO #from(2021.1) #breakingFrom(2023.1)", true)] public static int m_AdditionalShadowsBufferId; /// /// The ID for the additional shadows buffer ID. /// This has been deprecated. hadow slice index is now passed to the GPU using last member of an entry in buffer m_AdditionalShadowParams_SSBO. /// - [Obsolete("AdditionalLightsShadowCasterPass.m_AdditionalShadowsIndicesId was deprecated. Shadow slice index is now passed to the GPU using last member of an entry in buffer m_AdditionalShadowParams_SSBO", true)] + [Obsolete("AdditionalLightsShadowCasterPass.m_AdditionalShadowsIndicesId was deprecated. Shadow slice index is now passed to the GPU using last member of an entry in buffer m_AdditionalShadowParams_SSBO #from(2021.1) #breakingFrom(2023.1)", true)] public static int m_AdditionalShadowsIndicesId; } } @@ -42,7 +39,7 @@ public partial class AdditionalLightsShadowCasterPass /// /// Previously contained the settings to control how many cascades to use. It is now deprecated. /// - [Obsolete("This is obsolete, please use shadowCascadeCount instead.", true)] + [Obsolete("This is obsolete, please use shadowCascadeCount instead. #from(2021.1) #breakingFrom(2023.1)", true)] public enum ShadowCascadesOption { /// @@ -63,7 +60,7 @@ public enum ShadowCascadesOption /// Specifies the logging level for shader variants. /// This is obsolete, UnityEngine.Rendering.ShaderVariantLogLevel instead. /// - [Obsolete("This is obsolete, UnityEngine.Rendering.ShaderVariantLogLevel instead.", true)] + [Obsolete("This is obsolete, UnityEngine.Rendering.ShaderVariantLogLevel instead. #from(2022.2) #breakingFrom(2023.1)", true)] public enum ShaderVariantLogLevel { /// Disable all log for shader variants. @@ -81,7 +78,7 @@ public enum ShaderVariantLogLevel public partial class UniversalRenderPipelineAsset { #if UNITY_EDITOR - [Obsolete("Editor resources are stored directly into GraphicsSettings. #from(23.3)", false)] + [Obsolete("Editor resources are stored directly into GraphicsSettings. #from(2023.3)")] public static readonly string editorResourcesGUID = "a3d8d823eedde654bb4c11a1cfaf1abb"; #endif @@ -91,7 +88,7 @@ public partial class UniversalRenderPipelineAsset /// /// Previously returned the shader variant log level for this Render Pipeline Asset but is now deprecated. /// - [Obsolete("Use GraphicsSettings.GetRenderPipelineSettings().shaderVariantLogLevel instead.", true)] + [Obsolete("Use GraphicsSettings.GetRenderPipelineSettings().shaderVariantLogLevel instead. #from(2022.2)")] public ShaderVariantLogLevel shaderVariantLogLevel { get => (ShaderVariantLogLevel)GraphicsSettings.GetRenderPipelineSettings().shaderVariantLogLevel; @@ -100,13 +97,13 @@ public ShaderVariantLogLevel shaderVariantLogLevel #pragma warning restore 618 // Obsolete warning #pragma warning disable 618 // Obsolete warning - [Obsolete("This is obsolete, please use shadowCascadeCount instead.", false)] + [Obsolete("This is obsolete, please use shadowCascadeCount instead. #from(2021.1)")] [SerializeField] ShadowCascadesOption m_ShadowCascades = ShadowCascadesOption.NoCascades; /// /// Previously used insted of shadowCascadeCount. Please use that instead. /// - [Obsolete("This is obsolete, please use shadowCascadeCount instead.", true)] + [Obsolete("This is obsolete, please use shadowCascadeCount instead. #from(2021.1) #breakingFrom(2023.1)", true)] public ShadowCascadesOption shadowCascadeOption { get @@ -144,7 +141,7 @@ public ShadowCascadesOption shadowCascadeOption /// Class containing texture resources used in URP. /// [Serializable, ReloadGroup] - [Obsolete("Moved to UniversalRenderPipelineRuntimeTextures on GraphicsSettings. #from(2023.3)", false)] + [Obsolete("Moved to UniversalRenderPipelineRuntimeTextures on GraphicsSettings. #from(2023.3)")] public sealed class TextureResources { /// @@ -169,14 +166,14 @@ public bool NeedsReload() } } - [Obsolete("Moved to UniversalRenderPipelineRuntimeTextures on GraphicsSettings. #from(2023.3)", false)] + [Obsolete("Moved to UniversalRenderPipelineRuntimeTextures on GraphicsSettings. #from(2023.3)")] [SerializeField] TextureResources m_Textures; /// /// Returns asset texture resources /// - [Obsolete("Moved to UniversalRenderPipelineRuntimeTextures on GraphicsSettings. #from(2023.3)", false)] + [Obsolete("Moved to UniversalRenderPipelineRuntimeTextures on GraphicsSettings. #from(2023.3)")] public TextureResources textures { get @@ -201,7 +198,7 @@ public abstract partial class ScriptableRenderer /// The render target identifier for camera depth. /// This is obsolete, cameraDepth has been renamed to cameraDepthTarget. /// - [Obsolete("cameraDepth has been renamed to cameraDepthTarget. (UnityUpgradable) -> cameraDepthTarget", true)] + [Obsolete("cameraDepth has been renamed to cameraDepthTarget. #from(2021.1) #breakingFrom(2023.1) (UnityUpgradable) -> cameraDepthTarget", true)] [EditorBrowsable(EditorBrowsableState.Never)] public RenderTargetIdentifier cameraDepth { @@ -214,21 +211,21 @@ public abstract partial class ScriptableRendererData /// /// Class contains references to shader resources used by Rendering Debugger. /// - [Obsolete("Moved to UniversalRenderPipelineDebugShaders on GraphicsSettings. #from(2023.3)", false)] + [Obsolete("Moved to UniversalRenderPipelineDebugShaders on GraphicsSettings. #from(2023.3)")] [Serializable, ReloadGroup] public sealed class DebugShaderResources { /// /// Debug shader used to output interpolated vertex attributes. /// - [Obsolete("Moved to UniversalRenderPipelineDebugShaders on GraphicsSettings. #from(2023.3)", false)] + [Obsolete("Moved to UniversalRenderPipelineDebugShaders on GraphicsSettings. #from(2023.3)")] [Reload("Shaders/Debug/DebugReplacement.shader")] public Shader debugReplacementPS; /// /// Debug shader used to output HDR Chromacity mapping. /// - [Obsolete("Moved to UniversalRenderPipelineDebugShaders on GraphicsSettings. #from(2023.3)", false)] + [Obsolete("Moved to UniversalRenderPipelineDebugShaders on GraphicsSettings. #from(2023.3)")] [Reload("Shaders/Debug/HDRDebugView.shader")] public Shader hdrDebugViewPS; @@ -236,7 +233,7 @@ public sealed class DebugShaderResources /// /// Debug shader used to output world position and world normal for the pixel under the cursor. /// - [Obsolete("Moved to UniversalRenderPipelineDebugShaders on GraphicsSettings. #from(2023.3)", false)] + [Obsolete("Moved to UniversalRenderPipelineDebugShaders on GraphicsSettings. #from(2023.3)")] [Reload("Shaders/Debug/ProbeVolumeSamplingDebugPositionNormal.compute")] public ComputeShader probeVolumeSamplingDebugComputeShader; #endif @@ -245,63 +242,63 @@ public sealed class DebugShaderResources /// /// Container for shader resources used by Rendering Debugger. /// - [Obsolete("Moved to UniversalRenderPipelineDebugShaders on GraphicsSettings. #from(2023.3)", false)] + [Obsolete("Moved to UniversalRenderPipelineDebugShaders on GraphicsSettings. #from(2023.3)")] public DebugShaderResources debugShaders; /// /// Class contains references to shader resources used by APV. /// [Serializable, ReloadGroup] - [Obsolete("Probe volume debug resource are now in the ProbeVolumeDebugResources class.")] + [Obsolete("Probe volume debug resource are now in the ProbeVolumeDebugResources class. #from(2023.3)")] public sealed class ProbeVolumeResources { /// /// Debug shader used to render probes in the volume. /// - [Obsolete("This shader is now in the ProbeVolumeDebugResources class.")] + [Obsolete("This shader is now in the ProbeVolumeDebugResources class. #from(2023.3)")] public Shader probeVolumeDebugShader; /// /// Debug shader used to display fragmentation of the GPU memory. /// - [Obsolete("This shader is now in the ProbeVolumeDebugResources class.")] + [Obsolete("This shader is now in the ProbeVolumeDebugResources class. #from(2023.3)")] public Shader probeVolumeFragmentationDebugShader; /// /// Debug shader used to draw the offset direction used for a probe. /// - [Obsolete("This shader is now in the ProbeVolumeDebugResources class.")] + [Obsolete("This shader is now in the ProbeVolumeDebugResources class. #from(2023.3)")] public Shader probeVolumeOffsetDebugShader; /// /// Debug shader used to draw the sampling weights of the probe volume. /// - [Obsolete("This shader is now in the ProbeVolumeDebugResources class.")] + [Obsolete("This shader is now in the ProbeVolumeDebugResources class. #from(2023.3)")] public Shader probeVolumeSamplingDebugShader; /// /// Debug mesh used to draw the sampling weights of the probe volume. /// - [Obsolete("This shader is now in the ProbeVolumeDebugResources class.")] + [Obsolete("This shader is now in the ProbeVolumeDebugResources class. #from(2023.3)")] public Mesh probeSamplingDebugMesh; /// /// Texture with the numbers dor sampling weights. /// - [Obsolete("This shader is now in the ProbeVolumeDebugResources class.")] + [Obsolete("This shader is now in the ProbeVolumeDebugResources class. #from(2023.3)")] public Texture2D probeSamplingDebugTexture; /// /// Compute Shader used for Blending. /// - [Obsolete("This shader is now in the ProbeVolumeRuntimeResources class.")] + [Obsolete("This shader is now in the ProbeVolumeRuntimeResources class. #from(2023.3)")] public ComputeShader probeVolumeBlendStatesCS; } /// /// Probe volume resources used by URP /// - [Obsolete("Probe volume debug resource are now in the ProbeVolumeDebugResources class.")] + [Obsolete("Probe volume debug resource are now in the ProbeVolumeDebugResources class. #from(2023.3)")] public ProbeVolumeResources probeVolumeResources; } @@ -312,7 +309,7 @@ public sealed partial class Bloom : VolumeComponent, IPostProcessComponent /// The number of final iterations to skip in the effect processing sequence. /// This is obsolete, please use maxIterations instead. /// - [Obsolete("This is obsolete, please use maxIterations instead.", true)] + [Obsolete("This is obsolete, please use maxIterations instead. #from(2022.2) #breakingFrom(2023.1)", true)] [Tooltip("The number of final iterations to skip in the effect processing sequence.")] public ClampedIntParameter skipIterations = new ClampedIntParameter(1, 0, 16); } @@ -322,14 +319,14 @@ public sealed partial class Bloom : VolumeComponent, IPostProcessComponent /// /// [Serializable] - [Obsolete("Moved to UniversalRenderPipelineRuntimeXRResources on GraphicsSettings. #from(2023.3)", false)] + [Obsolete("Moved to UniversalRenderPipelineRuntimeXRResources on GraphicsSettings. #from(2023.3)")] public class XRSystemData : ScriptableObject { /// /// Class containing shader resources used in URP for XR. /// [Serializable, ReloadGroup] - [Obsolete("Moved to UniversalRenderPipelineRuntimeXRResources on GraphicsSettings. #from(2023.3)", false)] + [Obsolete("Moved to UniversalRenderPipelineRuntimeXRResources on GraphicsSettings. #from(2023.3)")] public sealed class ShaderResources { /// @@ -348,7 +345,7 @@ public sealed class ShaderResources /// /// Shader resources used in URP for XR. /// - [Obsolete("Moved to UniversalRenderPipelineRuntimeXRResources on GraphicsSettings. #from(2023.3)", false)] + [Obsolete("Moved to UniversalRenderPipelineRuntimeXRResources on GraphicsSettings. #from(2023.3)")] public ShaderResources shaders; } @@ -358,7 +355,7 @@ public partial class UniversalRendererData /// /// Shader resources needed in URP for XR. /// - [Obsolete("Moved to UniversalRenderPipelineRuntimeXRResources on GraphicsSettings. #from(2023.3)", false)] + [Obsolete("Moved to UniversalRenderPipelineRuntimeXRResources on GraphicsSettings. #from(2023.3)")] //[Reload("Runtime/Data/XRSystemData.asset")] public XRSystemData xrSystemData; #endif @@ -368,14 +365,14 @@ public partial class UniversalRendererData /// /// /// - [Obsolete("Moved to GraphicsSettings. #from(23.3)", false)] + [Obsolete("Moved to GraphicsSettings. #from(2023.3)")] public class UniversalRenderPipelineEditorResources : ScriptableObject { /// /// Class containing shader resources used in URP. /// [Serializable, ReloadGroup] - [Obsolete("UniversalRenderPipelineEditorResources.ShaderResources is obsolete GraphicsSettings.TryGetRenderPipelineSettings(). #from(23.3)", false)] + [Obsolete("UniversalRenderPipelineEditorResources.ShaderResources is obsolete GraphicsSettings.TryGetRenderPipelineSettings(). #from(2023.3)")] public sealed class ShaderResources { /// @@ -431,7 +428,7 @@ public sealed class ShaderResources /// Class containing material resources used in URP. /// [Serializable, ReloadGroup] - [Obsolete("UniversalRenderPipelineEditorResources.MaterialResources is obsolete GraphicsSettings.TryGetRenderPipelineSettings(). #from(23.3)", false)] + [Obsolete("UniversalRenderPipelineEditorResources.MaterialResources is obsolete GraphicsSettings.TryGetRenderPipelineSettings(). #from(2023.3)")] public sealed class MaterialResources { /// @@ -465,19 +462,19 @@ public sealed class MaterialResources /// /// Shader resources used in URP. /// - [Obsolete("UniversalRenderPipelineEditorResources.ShaderResources is obsolete GraphicsSettings.TryGetRenderPipelineSettings(). #from(23.3)", false)] + [Obsolete("UniversalRenderPipelineEditorResources.ShaderResources is obsolete GraphicsSettings.TryGetRenderPipelineSettings(). #from(2023.3)")] public ShaderResources shaders; /// /// Material resources used in URP. /// - [Obsolete("UniversalRenderPipelineEditorResources.MaterialResources is obsolete GraphicsSettings.TryGetRenderPipelineSettings(). #from(23.3)", false)] + [Obsolete("UniversalRenderPipelineEditorResources.MaterialResources is obsolete GraphicsSettings.TryGetRenderPipelineSettings(). #from(2023.3)")] public MaterialResources materials; } #if UNITY_EDITOR [UnityEditor.CustomEditor(typeof(UniversalRenderPipelineEditorResources), true)] - [Obsolete("Deprectated alongside with UniversalRenderPipelineEditorResources. #from(23.3)", false)] + [Obsolete("Deprectated alongside with UniversalRenderPipelineEditorResources. #from(2023.3)")] class UniversalRenderPipelineEditorResourcesEditor : UnityEditor.Editor { /// @@ -501,13 +498,13 @@ public override void OnInspectorGUI() /// Class containing shader resources used in URP. /// [Serializable, ReloadGroup] - [Obsolete("Moved to UniversalRenderPipelineRuntimeShaders on GraphicsSettings. #from(2023.3)", false)] + [Obsolete("Moved to UniversalRenderPipelineRuntimeShaders on GraphicsSettings. #from(2023.3)")] public sealed class ShaderResources { /// /// Blit shader. /// - [Obsolete("Moved to UniversalRenderPipelineRuntimeShaders on GraphicsSettings. #from(2023.3)", false)] + [Obsolete("Moved to UniversalRenderPipelineRuntimeShaders on GraphicsSettings. #from(2023.3)")] [Reload("Shaders/Utils/Blit.shader")] public Shader blitPS; @@ -515,19 +512,19 @@ public sealed class ShaderResources /// Copy Depth shader. /// [Reload("Shaders/Utils/CopyDepth.shader")] - [Obsolete("Moved to UniversalRenderPipelineRuntimeShaders on GraphicsSettings. #from(2023.3)", false)] + [Obsolete("Moved to UniversalRenderPipelineRuntimeShaders on GraphicsSettings. #from(2023.3)")] public Shader copyDepthPS; /// /// Screen Space Shadows shader. /// - [Obsolete("Obsolete, this feature will be supported by new 'ScreenSpaceShadows' renderer feature", true)] + [Obsolete("Obsolete, this feature will be supported by new 'ScreenSpaceShadows' renderer feature. #from(2023.3) #breakingFrom(2023.3)", true)] public Shader screenSpaceShadowPS = null; /// /// Sampling shader. /// - [Obsolete("Moved to UniversalRenderPipelineRuntimeShaders on GraphicsSettings. #from(2023.3)", false)] + [Obsolete("Moved to UniversalRenderPipelineRuntimeShaders on GraphicsSettings. #from(2023.3)")] [Reload("Shaders/Utils/Sampling.shader")] public Shader samplingPS; @@ -535,93 +532,656 @@ public sealed class ShaderResources /// Stencil Deferred shader. /// [Reload("Shaders/Utils/StencilDeferred.shader")] - [Obsolete("Moved to UniversalRenderPipelineRuntimeShaders on GraphicsSettings. #from(2023.3)", false)] + [Obsolete("Moved to UniversalRenderPipelineRuntimeShaders on GraphicsSettings. #from(2023.3)")] public Shader stencilDeferredPS; /// /// Fallback error shader. /// [Reload("Shaders/Utils/FallbackError.shader")] - [Obsolete("Moved to UniversalRenderPipelineRuntimeShaders on GraphicsSettings. #from(2023.3)", false)] + [Obsolete("Moved to UniversalRenderPipelineRuntimeShaders on GraphicsSettings. #from(2023.3)")] public Shader fallbackErrorPS; /// /// Fallback loading shader. /// [Reload("Shaders/Utils/FallbackLoading.shader")] - [Obsolete("Moved to UniversalRenderPipelineRuntimeShaders on GraphicsSettings. #from(2023.3)", false)] + [Obsolete("Moved to UniversalRenderPipelineRuntimeShaders on GraphicsSettings. #from(2023.3)")] public Shader fallbackLoadingPS; /// /// Material Error shader. /// - [Obsolete("Use fallbackErrorPS instead", true)] + [Obsolete("Use fallbackErrorPS instead. #from(2023.3) #breakingFrom(2023.3)", true)] public Shader materialErrorPS = null; // Core blitter shaders, adapted from HDRP // TODO: move to core and share with HDRP [Reload("Shaders/Utils/CoreBlit.shader"), SerializeField] - [Obsolete("Moved to UniversalRenderPipelineRuntimeShaders on GraphicsSettings. #from(2023.3)", false)] + [Obsolete("Moved to UniversalRenderPipelineRuntimeShaders on GraphicsSettings. #from(2023.3)")] internal Shader coreBlitPS; [Reload("Shaders/Utils/CoreBlitColorAndDepth.shader"), SerializeField] - [Obsolete("Moved to UniversalRenderPipelineRuntimeShaders on GraphicsSettings. #from(2023.3)", false)] + [Obsolete("Moved to UniversalRenderPipelineRuntimeShaders on GraphicsSettings. #from(2023.3)")] internal Shader coreBlitColorAndDepthPS; /// /// Blit shader that blits UI Overlay and performs HDR encoding. /// [Reload("Shaders/Utils/BlitHDROverlay.shader"), SerializeField] - [Obsolete("Moved to UniversalRenderPipelineRuntimeShaders on GraphicsSettings. #from(2023.3)", false)] + [Obsolete("Moved to UniversalRenderPipelineRuntimeShaders on GraphicsSettings. #from(2023.3)")] internal Shader blitHDROverlay; /// /// Camera Motion Vectors shader. /// [Reload("Shaders/CameraMotionVectors.shader")] - [Obsolete("Moved to UniversalRenderPipelineRuntimeShaders on GraphicsSettings. #from(2023.3)", false)] + [Obsolete("Moved to UniversalRenderPipelineRuntimeShaders on GraphicsSettings. #from(2023.3)")] public Shader cameraMotionVector; /// /// Screen Space Lens Flare shader. /// [Reload("Shaders/PostProcessing/LensFlareScreenSpace.shader")] - [Obsolete("Moved to UniversalRenderPipelineRuntimeShaders on GraphicsSettings. #from(2023.3)", false)] + [Obsolete("Moved to UniversalRenderPipelineRuntimeShaders on GraphicsSettings. #from(2023.3)")] public Shader screenSpaceLensFlare; /// /// Data Driven Lens Flare shader. /// [Reload("Shaders/PostProcessing/LensFlareDataDriven.shader")] - [Obsolete("Moved to UniversalRenderPipelineRuntimeShaders on GraphicsSettings. #from(2023.3)", false)] + [Obsolete("Moved to UniversalRenderPipelineRuntimeShaders on GraphicsSettings. #from(2023.3)")] public Shader dataDrivenLensFlare; } partial class UniversalRenderPipelineGlobalSettings { #pragma warning disable 0414 - [SerializeField, Obsolete("Keep for migration. #from(23.2)")] internal ShaderStrippingSetting m_ShaderStrippingSetting = new(); - [SerializeField, Obsolete("Keep for migration. #from(23.2)")] internal URPShaderStrippingSetting m_URPShaderStrippingSetting = new(); - [SerializeField, Obsolete("Keep for migration. #from(23.2)")] internal Rendering.ShaderVariantLogLevel m_ShaderVariantLogLevel = Rendering.ShaderVariantLogLevel.Disabled; - [SerializeField, Obsolete("Keep for migration. #from(23.2)")] internal bool m_ExportShaderVariants = true; - [SerializeField, Obsolete("Keep for migration. #from(23.2)")] internal bool m_StripDebugVariants = true; - [SerializeField, Obsolete("Keep for migration. #from(23.2)")] internal bool m_StripUnusedPostProcessingVariants = false; - [SerializeField, Obsolete("Keep for migration. #from(23.2)")] internal bool m_StripUnusedVariants = true; - [SerializeField, Obsolete("Keep for migration. #from(23.2)")] internal bool m_StripScreenCoordOverrideVariants = true; + [SerializeField, Obsolete("Keep for migration. #from(2023.2)")] internal ShaderStrippingSetting m_ShaderStrippingSetting = new(); + [SerializeField, Obsolete("Keep for migration. #from(2023.2)")] internal URPShaderStrippingSetting m_URPShaderStrippingSetting = new(); + [SerializeField, Obsolete("Keep for migration. #from(2023.2)")] internal Rendering.ShaderVariantLogLevel m_ShaderVariantLogLevel = Rendering.ShaderVariantLogLevel.Disabled; + [SerializeField, Obsolete("Keep for migration. #from(2023.2)")] internal bool m_ExportShaderVariants = true; + [SerializeField, Obsolete("Keep for migration. #from(2023.2)")] internal bool m_StripDebugVariants = true; + [SerializeField, Obsolete("Keep for migration. #from(2023.2)")] internal bool m_StripUnusedPostProcessingVariants = false; + [SerializeField, Obsolete("Keep for migration. #from(2023.2)")] internal bool m_StripUnusedVariants = true; + [SerializeField, Obsolete("Keep for migration. #from(2023.2)")] internal bool m_StripScreenCoordOverrideVariants = true; #pragma warning restore 0414 /// /// If this property is true, Unity strips the LOD variants if the LOD cross-fade feature (UniversalRenderingPipelineAsset.enableLODCrossFade) is disabled. /// - [Obsolete("No longer used as Shader Prefiltering automatically strips out unused LOD Crossfade variants. Please use the LOD Crossfade setting in the URP Asset to disable the feature if not used. #from(2023.1)", false)] + [Obsolete("No longer used as Shader Prefiltering automatically strips out unused LOD Crossfade variants. Please use the LOD Crossfade setting in the URP Asset to disable the feature if not used. #from(2023.1)")] public bool stripUnusedLODCrossFadeVariants { get => false; set { } } /// /// Controls whether debug display shaders for Rendering Debugger are available in Player builds. /// - [Obsolete("Please use stripRuntimeDebugShaders instead. #from(23.1)", false)] + [Obsolete("Please use stripRuntimeDebugShaders instead. #from(2023.1)")] public bool supportRuntimeDebugDisplay = false; - [SerializeField, Obsolete("Keep for migration. #from(23.2)")] internal bool m_EnableRenderGraph; + [SerializeField, Obsolete("Keep for migration. #from(2023.2)")] internal bool m_EnableRenderGraph; } + +#if !URP_COMPATIBILITY_MODE + internal struct DeprecationMessage + { + internal const string CompatibilityScriptingAPIHidden = "This rendering path is for Compatibility Mode only which has been deprecated and hidden behind URP_COMPATIBILITY_MODE define. This will do nothing."; + } + + partial class UniversalCameraData + { + /// + /// Returns the camera GPU projection matrix. This contains platform specific changes to handle y-flip and reverse z. Includes camera jitter if required by active features. + /// Similar to GL.GetGPUProjectionMatrix but queries URP internal state to know if the pipeline is rendering to render texture. + /// For more info on platform differences regarding camera projection check: https://docs.unity3d.com/Manual/SL-PlatformDifferences.html + /// + /// View index in case of stereo rendering. By default viewIndex is set to 0. + /// + /// + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIHidden)] + public Matrix4x4 GetGPUProjectionMatrix(int viewIndex = 0) => default; + + /// + /// Returns the camera GPU projection matrix. This contains platform specific changes to handle y-flip and reverse z. Does not include any camera jitter. + /// Similar to GL.GetGPUProjectionMatrix but queries URP internal state to know if the pipeline is rendering to render texture. + /// For more info on platform differences regarding camera projection check: https://docs.unity3d.com/Manual/SL-PlatformDifferences.html + /// + /// View index in case of stereo rendering. By default viewIndex is set to 0. + /// + /// + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIHidden)] + public Matrix4x4 GetGPUProjectionMatrixNoJitter(int viewIndex = 0) => default; + + /// + /// True if the camera device projection matrix is flipped. This happens when the pipeline is rendering + /// to a render texture in non OpenGL platforms. If you are doing a custom Blit pass to copy camera textures + /// (_CameraColorTexture, _CameraDepthAttachment) you need to check this flag to know if you should flip the + /// matrix when rendering with for cmd.Draw* and reading from camera textures. + /// + /// True if the camera device projection matrix is flipped. + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIHidden)] + public bool IsCameraProjectionMatrixFlipped() => default; + } + + public abstract partial class ScriptableRenderPass + { + /// + /// RTHandle alias for BuiltinRenderTextureType.CameraTarget which is the backbuffer. + /// + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIHidden)] + public static RTHandle k_CameraTarget = null; + + /// + /// List for the g-buffer attachment handles. + /// + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIHidden)] + public RTHandle[] colorAttachmentHandles => null; + + /// + /// The main color attachment handle. + /// + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIHidden)] + public RTHandle colorAttachmentHandle => null; + + /// + /// The depth attachment handle. + /// + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIHidden)] + public RTHandle depthAttachmentHandle => null; + + /// + /// The store actions for Color. + /// + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIHidden)] + public RenderBufferStoreAction[] colorStoreActions => null; + + /// + /// The store actions for Depth. + /// + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIHidden)] + public RenderBufferStoreAction depthStoreAction => default; + + /// + /// The flag to use when clearing. + /// + /// + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIHidden)] + public ClearFlag clearFlag => default; + + /// + /// The color value to use when clearing. + /// + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIHidden)] + public Color clearColor => default; + + /// + /// Configures the Store Action for a color attachment of this render pass. + /// + /// RenderBufferStoreAction to use + /// Index of the color attachment + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIHidden)] + public void ConfigureColorStoreAction(RenderBufferStoreAction storeAction, uint attachmentIndex = 0) { } + + /// + /// Configures the Store Actions for all the color attachments of this render pass. + /// + /// Array of RenderBufferStoreActions to use + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIHidden)] + public void ConfigureColorStoreActions(RenderBufferStoreAction[] storeActions) { } + + /// + /// Configures the Store Action for the depth attachment of this render pass. + /// + /// RenderBufferStoreAction to use + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIHidden)] + public void ConfigureDepthStoreAction(RenderBufferStoreAction storeAction) { } + + /// + /// Resets render targets to default. + /// This method effectively reset changes done by ConfigureTarget. + /// + /// + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIHidden)] + public void ResetTarget() { } + + /// + /// Configures render targets for this render pass. Call this instead of CommandBuffer.SetRenderTarget. + /// This method should be called inside Configure. + /// + /// Color attachment handle. + /// Depth attachment handle. + /// + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIHidden)] + public void ConfigureTarget(RTHandle colorAttachment, RTHandle depthAttachment) { } + + /// + /// Configures render targets for this render pass. Call this instead of CommandBuffer.SetRenderTarget. + /// This method should be called inside Configure. + /// + /// Color attachment handle. + /// Depth attachment handle. + /// + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIHidden)] + public void ConfigureTarget(RTHandle[] colorAttachments, RTHandle depthAttachment) { } + + /// + /// Configures render targets for this render pass. Call this instead of CommandBuffer.SetRenderTarget. + /// This method should be called inside Configure. + /// + /// Color attachment handle. + /// + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIHidden)] + public void ConfigureTarget(RTHandle colorAttachment) { } + + /// + /// Configures render targets for this render pass. Call this instead of CommandBuffer.SetRenderTarget. + /// This method should be called inside Configure. + /// + /// Color attachment handle. + /// + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIHidden)] + public void ConfigureTarget(RTHandle[] colorAttachments) { } + + /// + /// Configures clearing for the render targets for this render pass. Call this inside Configure. + /// + /// ClearFlag containing information about what targets to clear. + /// Clear color. + /// + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIHidden)] + public void ConfigureClear(ClearFlag clearFlag, Color clearColor) { } + + /// + /// This method is called by the renderer before rendering a camera + /// Override this method if you need to to configure render targets and their clear state, and to create temporary render target textures. + /// If a render pass doesn't override this method, this render pass renders to the active Camera's render target. + /// You should never call CommandBuffer.SetRenderTarget. Instead call ConfigureTarget and ConfigureClear. + /// + /// CommandBuffer to enqueue rendering commands. This will be executed by the pipeline. + /// Current rendering state information + /// + /// + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIHidden)] + public virtual void OnCameraSetup(CommandBuffer cmd, ref RenderingData renderingData) { } + + /// + /// This method is called by the renderer before executing the render pass. + /// Override this method if you need to to configure render targets and their clear state, and to create temporary render target textures. + /// If a render pass doesn't override this method, this render pass renders to the active Camera's render target. + /// You should never call CommandBuffer.SetRenderTarget. Instead call ConfigureTarget and ConfigureClear. + /// + /// CommandBuffer to enqueue rendering commands. This will be executed by the pipeline. + /// Render texture descriptor of the camera render target. + /// + /// + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIHidden)] + public virtual void Configure(CommandBuffer cmd, RenderTextureDescriptor cameraTextureDescriptor) { } + + /// + /// Called upon finish rendering a camera stack. You can use this callback to release any resources created + /// by this render pass that need to be cleanup once all cameras in the stack have finished rendering. + /// This method will be called once after rendering the last camera in the camera stack. + /// Cameras that don't have an explicit camera stack are also considered stacked rendering. + /// In that case the Base camera is the first and last camera in the stack. + /// + /// Use this CommandBuffer to cleanup any generated data + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIHidden)] + public virtual void OnFinishCameraStackRendering(CommandBuffer cmd) { } + + /// + /// Execute the pass. This is where custom rendering occurs. Specific details are left to the implementation + /// + /// Use this render context to issue any draw commands during execution + /// Current rendering state information + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIHidden)] + public virtual void Execute(ScriptableRenderContext context, ref RenderingData renderingData) { } + + /// + /// Add a blit command to the context for execution. This changes the active render target in the ScriptableRenderer to + /// destination. + /// + /// Command buffer to record command for execution. + /// Source texture or target handle to blit from. + /// Destination texture or target handle to blit into. This becomes the renderer active render target. + /// Material to use. + /// Shader pass to use. Default is 0. + /// + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIHidden)] + public void Blit(CommandBuffer cmd, RTHandle source, RTHandle destination, Material material = null, int passIndex = 0) { } + + /// + /// Add a blit command to the context for execution. This applies the material to the color target. + /// + /// Command buffer to record command for execution. + /// RenderingData to access the active renderer. + /// Material to use. + /// Shader pass to use. Default is 0. + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIHidden)] + public void Blit(CommandBuffer cmd, ref RenderingData data, Material material, int passIndex = 0) { } + + /// + /// Add a blit command to the context for execution. This applies the material to the color target. + /// + /// Command buffer to record command for execution. + /// RenderingData to access the active renderer. + /// Source texture or target identifier to blit from. + /// Material to use. + /// Shader pass to use. Default is 0. + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIHidden)] + public void Blit(CommandBuffer cmd, ref RenderingData data, RTHandle source, Material material, int passIndex = 0) { } + } + +#if ENABLE_VR && ENABLE_XR_MODULE + partial class XROcclusionMeshPass + { + /// + /// Used to indicate if the active target of the pass is the back buffer + /// + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIHidden)] + public bool m_IsActiveTargetBackBuffer; + + /// + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIHidden)] + public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) { } + } +#endif + + partial class DecalRendererFeature + { + /// + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIHidden)] + public override void SetupRenderPasses(ScriptableRenderer renderer, in RenderingData renderingData) { } + } + + partial class ScriptableRenderer + { + /// + /// Override to provide a custom profiling name + /// + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIHidden)] + protected ProfilingSampler profilingExecute { get; set; } + + /// + /// Set camera matrices. This method will set UNITY_MATRIX_V, UNITY_MATRIX_P, UNITY_MATRIX_VP to the camera matrices. + /// Additionally this will also set unity_CameraProjection and unity_CameraProjection. + /// If setInverseMatrices is set to true this function will also set UNITY_MATRIX_I_V and UNITY_MATRIX_I_VP. + /// This function has no effect when rendering in stereo. When in stereo rendering you cannot override camera matrices. + /// If you need to set general purpose view and projection matrices call instead. + /// + /// CommandBuffer to submit data to GPU. + /// CameraData containing camera matrices information. + /// Set this to true if you also need to set inverse camera matrices. + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIHidden)] + public static void SetCameraMatrices(CommandBuffer cmd, ref CameraData cameraData, bool setInverseMatrices) { } + + /// + /// Set camera matrices. This method will set UNITY_MATRIX_V, UNITY_MATRIX_P, UNITY_MATRIX_VP to camera matrices. + /// Additionally this will also set unity_CameraProjection and unity_CameraProjection. + /// If setInverseMatrices is set to true this function will also set UNITY_MATRIX_I_V and UNITY_MATRIX_I_VP. + /// This function has no effect when rendering in stereo. When in stereo rendering you cannot override camera matrices. + /// If you need to set general purpose view and projection matrices call instead. + /// + /// CommandBuffer to submit data to GPU. + /// CameraData containing camera matrices information. + /// Set this to true if you also need to set inverse camera matrices. + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIHidden)] + public static void SetCameraMatrices(CommandBuffer cmd, UniversalCameraData cameraData, bool setInverseMatrices) { } + + /// + /// Returns the camera color target for this renderer. + /// It's only valid to call cameraColorTargetHandle in the scope of ScriptableRenderPass. + /// . + /// + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIHidden)] + public RTHandle cameraColorTargetHandle { get => null; set { } } + + /// + /// Returns the camera depth target for this renderer. + /// It's only valid to call cameraDepthTargetHandle in the scope of ScriptableRenderPass. + /// . + /// + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIHidden)] + public RTHandle cameraDepthTargetHandle { get => null; set { } } + + /// + /// Configures the camera target. + /// + /// Camera color target. Pass k_CameraTarget if rendering to backbuffer. + /// Camera depth target. Pass k_CameraTarget if color has depth or rendering to backbuffer. + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIHidden)] + public void ConfigureCameraTarget(RTHandle colorTarget, RTHandle depthTarget) { } + + /// + /// Configures the render passes that will execute for this renderer. + /// This method is called per-camera every frame. + /// + /// Use this render context to issue any draw commands during execution. + /// Current render state information. + /// + /// + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIHidden)] + public virtual void Setup(ScriptableRenderContext context, ref RenderingData renderingData) { } + + /// + /// Override this method to implement the lighting setup for the renderer. You can use this to + /// compute and upload light CBUFFER for example. + /// + /// Use this render context to issue any draw commands during execution. + /// Current render state information. + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIHidden)] + public virtual void SetupLights(ScriptableRenderContext context, ref RenderingData renderingData) { } + + /// + /// Execute the enqueued render passes. This automatically handles editor and stereo rendering. + /// + /// Use this render context to issue any draw commands during execution. + /// Current render state information. + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIHidden)] + public void Execute(ScriptableRenderContext context, ref RenderingData renderingData) { } + + /// + /// Calls Setup for each feature added to this renderer. + /// + /// + /// + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIHidden)] + protected void SetupRenderPasses(in RenderingData renderingData) { } + } + + partial class ScriptableRendererFeature + { + /// + /// Callback after render targets are initialized. This allows for accessing targets from renderer after they are created and ready. + /// + /// Renderer used for adding render passes. + /// Rendering state. Use this to setup render passes. + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIHidden)] + public virtual void SetupRenderPasses(ScriptableRenderer renderer, in RenderingData renderingData) { } + } + + partial struct CameraData + { + /// + /// Returns the camera GPU projection matrix. This contains platform specific changes to handle y-flip and reverse z. Includes camera jitter if required by active features. + /// Similar to GL.GetGPUProjectionMatrix but queries URP internal state to know if the pipeline is rendering to render texture. + /// For more info on platform differences regarding camera projection check: https://docs.unity3d.com/Manual/SL-PlatformDifferences.html + /// + /// View index in case of stereo rendering. By default viewIndex is set to 0. + /// + /// + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIHidden)] + public Matrix4x4 GetGPUProjectionMatrix(int viewIndex = 0) => default; + + /// + /// Returns the camera GPU projection matrix. This contains platform specific changes to handle y-flip and reverse z. Does not include any camera jitter. + /// Similar to GL.GetGPUProjectionMatrix but queries URP internal state to know if the pipeline is rendering to render texture. + /// For more info on platform differences regarding camera projection check: https://docs.unity3d.com/Manual/SL-PlatformDifferences.html + /// + /// View index in case of stereo rendering. By default viewIndex is set to 0. + /// + /// + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIHidden)] + public Matrix4x4 GetGPUProjectionMatrixNoJitter(int viewIndex = 0) => default; + + /// + /// True if the camera device projection matrix is flipped. This happens when the pipeline is rendering + /// to a render texture in non OpenGL platforms. If you are doing a custom Blit pass to copy camera textures + /// (_CameraColorTexture, _CameraDepthAttachment) you need to check this flag to know if you should flip the + /// matrix when rendering with for cmd.Draw* and reading from camera textures. + /// + /// True if the camera device projection matrix is flipped. + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIHidden)] + public bool IsCameraProjectionMatrixFlipped() => default; + } + + namespace Internal + { + partial class AdditionalLightsShadowCasterPass + { + /// + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIHidden)] + public override void Configure(CommandBuffer cmd, RenderTextureDescriptor cameraTextureDescriptor) { } + + /// + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIHidden)] + public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) { } + } + + partial class ColorGradingLutPass + { + /// + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIHidden)] + public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) { } + } + + partial class CopyColorPass + { + /// + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIHidden)] + public override void OnCameraSetup(CommandBuffer cmd, ref RenderingData renderingData) { } + + /// + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIHidden)] + public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) { } + } + + partial class CopyDepthPass + { + /// + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIHidden)] + public override void OnCameraSetup(CommandBuffer cmd, ref RenderingData renderingData) { } + + /// + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIHidden)] + public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) { } + } + + partial class DepthNormalOnlyPass + { + /// + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIHidden)] + public override void OnCameraSetup(CommandBuffer cmd, ref RenderingData renderingData) { } + + /// + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIHidden)] + public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) { } + } + + partial class DepthOnlyPass + { + /// + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIHidden)] + public override void OnCameraSetup(CommandBuffer cmd, ref RenderingData renderingData) { } + + /// + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIHidden)] + public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) { } + } + + partial class DrawObjectsPass + { + /// + /// Used to indicate if the active target of the pass is the back buffer + /// + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIHidden)] + public bool m_IsActiveTargetBackBuffer; // TODO: Remove this when we remove non-RG path + + /// + /// Sets up the pass. + /// + /// Color attachment handle. + /// Texture used with rendering layers. + /// Depth attachment handle. + /// + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIHidden)] + public void Setup(RTHandle colorAttachment, RTHandle renderingLayersTexture, RTHandle depthAttachment) { } + + /// + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIHidden)] + public override void Configure(CommandBuffer cmd, RenderTextureDescriptor cameraTextureDescriptor) { } + + /// + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIHidden)] + public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) { } + } + + partial class ForwardLights + { + /// + /// Sets up the keywords and data for forward lighting. + /// + /// + /// + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIHidden)] + public void Setup(ScriptableRenderContext context, ref RenderingData renderingData) { } + } + + partial class FinalBlitPass + { + /// + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIHidden)] + public override void OnCameraSetup(CommandBuffer cmd, ref RenderingData renderingData) { } + + /// + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIHidden)] + public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) { } + } + + partial class MainLightShadowCasterPass + { + /// + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIHidden)] + public override void Configure(CommandBuffer cmd, RenderTextureDescriptor cameraTextureDescriptor) { } + + /// + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIHidden)] + public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) { } + } + } + + partial class DrawSkyboxPass + { + /// + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIHidden)] + public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) { } + } + + partial class RenderObjectsPass + { + /// + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIHidden)] + public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) { } + } + + partial class UniversalRenderer + { + /// + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIHidden)] + public override void Setup(ScriptableRenderContext context, ref RenderingData renderingData) { } + + /// + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIHidden)] + public override void SetupLights(ScriptableRenderContext context, ref RenderingData renderingData) { } + } +#endif //!URP_COMPATIBILITY_MODE } diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/ForwardLights.cs b/Packages/com.unity.render-pipelines.universal/Runtime/ForwardLights.cs index 0e22a0518d4..feb63f60ca6 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/ForwardLights.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/ForwardLights.cs @@ -15,7 +15,7 @@ namespace UnityEngine.Rendering.Universal.Internal /// /// Computes and submits lighting data to the GPU. /// - public class ForwardLights + public partial class ForwardLights { static class LightConstantBuffer { @@ -283,10 +283,13 @@ static bool IsProbeGreater(VisibleReflectionProbe probe, VisibleReflectionProbe // Innerloop batch count of 32 is not special, just a handwavy amount to not have too much scheduling overhead nor too little parallelism. var lightMinMaxZHandle = lightMinMaxZJob.ScheduleParallel(localLightCount * viewCount, 32, new JobHandle()); + var reflectionProbeRotation = GraphicsSettings.TryGetRenderPipelineSettings(out var reflectionProbeSettings) ? reflectionProbeSettings.UseReflectionProbeRotation : true; + var reflectionProbeMinMaxZJob = new ReflectionProbeMinMaxZJob { worldToViews = worldToViews, reflectionProbes = probes, + reflectionProbeRotation = reflectionProbeRotation, minMaxZs = minMaxZs.GetSubArray(localLightCount * viewCount, reflectionProbeCount * viewCount) }; var reflectionProbeMinMaxZHandle = reflectionProbeMinMaxZJob.ScheduleParallel(reflectionProbeCount * viewCount, 32, lightMinMaxZHandle); @@ -321,6 +324,7 @@ static bool IsProbeGreater(VisibleReflectionProbe probe, VisibleReflectionProbe { lights = localLights, reflectionProbes = probes, + reflectionProbeRotation = reflectionProbeRotation, tileRanges = tileRanges, itemsPerTile = itemsPerTile, rangesPerItem = rangesPerItem, @@ -417,6 +421,7 @@ out m_WordsPerTile } } +#if URP_COMPATIBILITY_MODE /// /// Sets up the keywords and data for forward lighting. /// @@ -431,6 +436,7 @@ public void Setup(ScriptableRenderContext context, ref RenderingData renderingDa SetupLights(CommandBufferHelpers.GetUnsafeCommandBuffer(renderingData.commandBuffer), universalRenderingData, cameraData, lightData); } +#endif static ProfilingSampler s_SetupForwardLights = new ProfilingSampler("Setup Forward Lights"); private class SetupLightPassData @@ -507,7 +513,6 @@ internal void SetupLights(UnsafeCommandBuffer cmd, UniversalRenderingData render cmd.SetKeyword(ShaderGlobalKeywords.LightmapShadowMixing, isSubtractive || isShadowMaskAlways); cmd.SetKeyword(ShaderGlobalKeywords.ShadowsShadowMask, isShadowMask); cmd.SetKeyword(ShaderGlobalKeywords.MixedLightingSubtractive, isSubtractive); // Backward compatibility - cmd.SetKeyword(ShaderGlobalKeywords.ReflectionProbeBlending, lightData.reflectionProbeBlending); cmd.SetKeyword(ShaderGlobalKeywords.ReflectionProbeBoxProjection, lightData.reflectionProbeBoxProjection); cmd.SetKeyword(ShaderGlobalKeywords.ReflectionProbeAtlas, lightData.reflectionProbeAtlas); @@ -552,6 +557,11 @@ internal void SetupLights(UnsafeCommandBuffer cmd, UniversalRenderingData render cmd.SetKeyword(ShaderGlobalKeywords.LIGHTMAP_BICUBIC_SAMPLING, lightmapSamplingSettings.useBicubicLightmapSampling); else cmd.SetKeyword(ShaderGlobalKeywords.LIGHTMAP_BICUBIC_SAMPLING, false); + + if (GraphicsSettings.TryGetRenderPipelineSettings(out var reflectionProbeSettings)) + cmd.SetKeyword(ShaderGlobalKeywords.ReflectionProbeRotation, reflectionProbeSettings.UseReflectionProbeRotation); + else + cmd.SetKeyword(ShaderGlobalKeywords.ReflectionProbeRotation, false); } } diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/ForwardRendererData.cs b/Packages/com.unity.render-pipelines.universal/Runtime/ForwardRendererData.cs index 54da1388fe0..587a6befb97 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/ForwardRendererData.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/ForwardRendererData.cs @@ -11,7 +11,7 @@ namespace UnityEngine.Rendering.Universal /// Deprecated, kept for backward compatibility with existing ForwardRendererData asset files. /// Use UniversalRendererData instead. /// - [System.Obsolete("ForwardRendererData has been deprecated (UnityUpgradable) -> UniversalRendererData", true)] + [System.Obsolete("ForwardRendererData has been deprecated #from(2021.2) #breakingFrom(2021.2) (UnityUpgradable) -> UniversalRendererData", true)] [Serializable, ReloadGroup, ExcludeFromPreset] public class ForwardRendererData : ScriptableRendererData { @@ -38,7 +38,7 @@ public sealed class ShaderResources /// /// Screen space shadows shader. /// - [Obsolete("Obsolete, this feature will be supported by new 'ScreenSpaceShadows' renderer feature", true)] + [Obsolete("Obsolete, this feature will be supported by new 'ScreenSpaceShadows' renderer feature. #from(2021.1) #breakingFrom(2023.1)", true)] public Shader screenSpaceShadowPS; /// @@ -68,7 +68,7 @@ public sealed class ShaderResources /// /// Material error shader. /// - [Obsolete("Use fallbackErrorPS instead", true)] + [Obsolete("Use fallbackErrorPS instead. #from(2022.2) #breakingFrom(2023.1)", true)] [Reload("Shaders/Utils/MaterialError.shader")] public Shader materialErrorPS; diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/FrameData/Universal2DResourceData.cs b/Packages/com.unity.render-pipelines.universal/Runtime/FrameData/Universal2DResourceData.cs index 9d859c5dd94..da8fa938434 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/FrameData/Universal2DResourceData.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/FrameData/Universal2DResourceData.cs @@ -42,6 +42,13 @@ internal TextureHandle[] normalsTexture } private TextureHandle[] _cameraNormalsTexture = new TextureHandle[0]; + internal TextureHandle normalsDepth + { + get => CheckAndGetTextureHandle(ref _normalsDepth); + set => CheckAndSetTextureHandle(ref _normalsDepth, value); + } + private TextureHandle _normalsDepth; + internal TextureHandle[][] shadowTextures { get => CheckAndGetTextureHandle(ref _shadowTextures); @@ -73,6 +80,7 @@ internal TextureHandle cameraSortingLayerTexture /// public override void Reset() { + _normalsDepth = TextureHandle.nullHandle; _shadowDepth = TextureHandle.nullHandle; _upscaleTexture = TextureHandle.nullHandle; _cameraSortingLayerTexture = TextureHandle.nullHandle; diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/FrameData/UniversalCameraData.cs b/Packages/com.unity.render-pipelines.universal/Runtime/FrameData/UniversalCameraData.cs index 30266a552fa..30cc2b1a7f4 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/FrameData/UniversalCameraData.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/FrameData/UniversalCameraData.cs @@ -7,7 +7,7 @@ namespace UnityEngine.Rendering.Universal /// /// Class that holds settings related to camera. /// - public class UniversalCameraData : ContextItem + public partial class UniversalCameraData : ContextItem { // Internal camera data as we are not yet sure how to expose View in stereo context. // We might change this API soon. @@ -121,7 +121,8 @@ internal Matrix4x4 GetProjectionMatrixNoJitter(int viewIndex = 0) #endif return m_ProjectionMatrix; } - + +#if URP_COMPATIBILITY_MODE /// /// Returns the camera GPU projection matrix. This contains platform specific changes to handle y-flip and reverse z. Includes camera jitter if required by active features. /// Similar to GL.GetGPUProjectionMatrix but queries URP internal state to know if the pipeline is rendering to render texture. @@ -155,6 +156,7 @@ public Matrix4x4 GetGPUProjectionMatrixNoJitter(int viewIndex = 0) return GL.GetGPUProjectionMatrix(GetProjectionMatrixNoJitter(viewIndex), IsCameraProjectionMatrixFlipped()); #pragma warning restore CS0618 } +#endif internal Matrix4x4 GetGPUProjectionMatrix(bool renderIntoTexture, int viewIndex = 0) { @@ -420,7 +422,8 @@ public bool IsHandleYFlipped(RTHandle handle) #endif return !isBackbuffer; } - + +#if URP_COMPATIBILITY_MODE /// /// True if the camera device projection matrix is flipped. This happens when the pipeline is rendering /// to a render texture in non OpenGL platforms. If you are doing a custom Blit pass to copy camera textures @@ -445,6 +448,7 @@ public bool IsCameraProjectionMatrixFlipped() return true; } +#endif /// /// True if the render target's projection matrix is flipped. This happens when the pipeline is rendering diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/FrameData/UniversalRenderingData.cs b/Packages/com.unity.render-pipelines.universal/Runtime/FrameData/UniversalRenderingData.cs index bdae4a24f68..bbce723cfbd 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/FrameData/UniversalRenderingData.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/FrameData/UniversalRenderingData.cs @@ -5,6 +5,7 @@ namespace UnityEngine.Rendering.Universal /// public class UniversalRenderingData : ContextItem { +#if URP_COMPATIBILITY_MODE // Non-rendergraph path only. Do NOT use with rendergraph! (RG execution timeline breaks.) // NOTE: internal for a ref return in legacy RenderingData.commandBuffer. internal CommandBuffer m_CommandBuffer; @@ -20,6 +21,7 @@ internal CommandBuffer commandBuffer return m_CommandBuffer; } } +#endif /// /// Returns culling results that exposes handles to visible objects, lights and probes. @@ -71,7 +73,9 @@ internal CommandBuffer commandBuffer /// public override void Reset() { +#if URP_COMPATIBILITY_MODE m_CommandBuffer = default; +#endif cullResults = default; supportsDynamicBatching = default; perObjectData = default; diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/FrameData/UniversalResourceData.cs b/Packages/com.unity.render-pipelines.universal/Runtime/FrameData/UniversalResourceData.cs index 5b2cccf4549..c0405577739 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/FrameData/UniversalResourceData.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/FrameData/UniversalResourceData.cs @@ -315,6 +315,16 @@ public TextureHandle ssaoTexture } private TextureHandle _ssaoTexture; + /// + /// Screen Space irradiance texture. + /// + internal TextureHandle irradianceTexture + { + get => CheckAndGetTextureHandle(ref _irradianceTexture); + set => CheckAndSetTextureHandle(ref _irradianceTexture, value); + } + private TextureHandle _irradianceTexture; + /// /// STP debug visualization written to by the STP upscaler. /// @@ -347,6 +357,7 @@ public override void Reset() _renderingLayersTexture = TextureHandle.nullHandle; _dBufferDepth = TextureHandle.nullHandle; _ssaoTexture = TextureHandle.nullHandle; + _irradianceTexture = TextureHandle.nullHandle; _stpDebugView = TextureHandle.nullHandle; for (int i = 0; i < _gBuffer.Length; i++) diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/NativeRenderPass.cs b/Packages/com.unity.render-pipelines.universal/Runtime/NativeRenderPass.cs index 13190597491..f9a9bdc903d 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/NativeRenderPass.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/NativeRenderPass.cs @@ -1,3 +1,4 @@ +#if URP_COMPATIBILITY_MODE using System; using System.Collections.Generic; using System.Linq; @@ -43,7 +44,7 @@ public partial class ScriptableRenderer RenderBufferStoreAction.Store, RenderBufferStoreAction.Store, RenderBufferStoreAction.Store, RenderBufferStoreAction.Store }; internal RenderBufferStoreAction m_FinalDepthStoreAction = RenderBufferStoreAction.Store; - + private static partial class Profiling { public static readonly ProfilingSampler setMRTAttachmentsList = new ProfilingSampler($"NativeRenderPass {nameof(SetNativeRenderPassMRTAttachmentList)}"); @@ -104,8 +105,9 @@ internal void SetupNativeRenderPassFrameData(UniversalCameraData cameraData, boo { var renderPass = m_ActiveRenderPassQueue[i]; + // Disable obsolete warning for internal usage - #pragma warning disable CS0618 + #pragma warning disable CS0618 bool RPEnabled = IsRenderPassEnabled(renderPass); #pragma warning restore CS0618 if (!RPEnabled) @@ -171,8 +173,7 @@ internal void UpdateFinalStoreActions(int[] currentMergeablePasses, UniversalCam ScriptableRenderPass pass = m_ActiveRenderPassQueue[passIdx]; - var samples = pass.overrideCameraTarget ? GetFirstAllocatedRTHandle(pass).rt.descriptor.msaaSamples : - (cameraData.targetTexture != null ? cameraData.targetTexture.descriptor.msaaSamples : cameraData.cameraTargetDescriptor.msaaSamples); + var samples = pass.overrideCameraTarget ? GetFirstAllocatedRTHandle(pass).rt.descriptor.msaaSamples : (cameraData.targetTexture != null ? cameraData.targetTexture.descriptor.msaaSamples : cameraData.cameraTargetDescriptor.msaaSamples); bool rendererSupportsMSAA = cameraData.renderer != null && cameraData.renderer.supportedRenderingFeatures.msaa; if (!cameraData.camera.allowMSAA || !rendererSupportsMSAA) @@ -292,12 +293,8 @@ internal void SetNativeRenderPassMRTAttachmentList(ScriptableRenderPass renderPa } bool IsDepthOnlyRenderTexture(RenderTexture t) - { - if (t.graphicsFormat == GraphicsFormat.None) - return true; - return false; - } - + => t.graphicsFormat == GraphicsFormat.None; + internal void SetNativeRenderPassAttachmentList(ScriptableRenderPass renderPass, UniversalCameraData cameraData, RTHandle passColorAttachment, RTHandle passDepthAttachment, ClearFlag finalClearFlag, Color finalClearColor) { using (new ProfilingScope(Profiling.setAttachmentList)) @@ -412,7 +409,7 @@ internal void ExecuteNativeRenderPass(ScriptableRenderContext context, Scriptabl int validColorBuffersCount = m_RenderPassesAttachmentCount[currentPassHash]; var depthOnly = (renderPass.colorAttachmentHandle.rt != null && IsDepthOnlyRenderTexture(renderPass.colorAttachmentHandle.rt)) || (cameraData.targetTexture != null && IsDepthOnlyRenderTexture(cameraData.targetTexture)); - bool useDepth = depthOnly || (!renderPass.overrideCameraTarget || (renderPass.overrideCameraTarget && renderPass.depthAttachmentHandle.nameID != BuiltinRenderTextureType.CameraTarget));// && + bool useDepth = depthOnly|| (!renderPass.overrideCameraTarget || (renderPass.overrideCameraTarget && renderPass.depthAttachmentHandle.nameID != BuiltinRenderTextureType.CameraTarget));// && var attachments = new NativeArray(useDepth && !depthOnly ? validColorBuffersCount + 1 : 1, Allocator.Temp); @@ -708,3 +705,4 @@ private RenderPassDescriptor InitializeRenderPassDescriptor(UniversalCameraData } } } +#endif diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/Bloom.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/Bloom.cs index ff81b305615..dae9577ad5b 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/Bloom.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/Bloom.cs @@ -248,7 +248,7 @@ public sealed partial class Bloom : VolumeComponent, IPostProcessComponent /// Tells if the post process can run the effect on-tile or if it needs a full pass. /// /// true if it can run on-tile, false otherwise. - [Obsolete("Unused #from(2023.1)", false)] + [Obsolete("Unused. #from(2023.1)")] public bool IsTileCompatible() => false; } diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/ChannelMixer.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/ChannelMixer.cs index d1991d4ed18..3e5d5c3883d 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/ChannelMixer.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/ChannelMixer.cs @@ -192,7 +192,7 @@ public bool IsActive() /// Tells if the post process can run the effect on-tile or if it needs a full pass. /// /// true if it can run on-tile, false otherwise. - [Obsolete("Unused #from(2023.1)", false)] + [Obsolete("Unused. #from(2023.1)")] public bool IsTileCompatible() => true; } } diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/ChromaticAberration.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/ChromaticAberration.cs index 02db22afd5f..6972a9427cd 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/ChromaticAberration.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/ChromaticAberration.cs @@ -108,7 +108,7 @@ public sealed class ChromaticAberration : VolumeComponent, IPostProcessComponent /// Tells if the post process can run the effect on-tile or if it needs a full pass. /// /// true if it can run on-tile, false otherwise. - [Obsolete("Unused #from(2023.1)", false)] + [Obsolete("Unused. #from(2023.1)")] public bool IsTileCompatible() => false; } } diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/ColorAdjustments.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/ColorAdjustments.cs index 4bd623530e5..72dfa3c8909 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/ColorAdjustments.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/ColorAdjustments.cs @@ -154,7 +154,7 @@ public bool IsActive() /// Tells if the post process can run the effect on-tile or if it needs a full pass. /// /// true if it can run on-tile, false otherwise. - [Obsolete("Unused #from(2023.1)", false)] + [Obsolete("Unused. #from(2023.1)")] public bool IsTileCompatible() => true; } } diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/ColorCurves.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/ColorCurves.cs index aee097bf98b..b5c4149ddb1 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/ColorCurves.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/ColorCurves.cs @@ -171,7 +171,7 @@ public sealed class ColorCurves : VolumeComponent, IPostProcessComponent /// Tells if the post process can run the effect on-tile or if it needs a full pass. /// /// true if it can run on-tile, false otherwise. - [Obsolete("Unused #from(2023.1)", false)] + [Obsolete("Unused. #from(2023.1)")] public bool IsTileCompatible() => true; } } diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/ColorLookup.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/ColorLookup.cs index 496f7ca4b03..0c6af2cff82 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/ColorLookup.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/ColorLookup.cs @@ -119,7 +119,7 @@ public sealed class ColorLookup : VolumeComponent, IPostProcessComponent /// Tells if the post process can run the effect on-tile or if it needs a full pass. /// /// true if it can run on-tile, false otherwise. - [Obsolete("Unused #from(2023.1)", false)] + [Obsolete("Unused. #from(2023.1)")] public bool IsTileCompatible() => true; /// diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/DepthOfField.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/DepthOfField.cs index 60a570b8071..e73e95639db 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/DepthOfField.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/DepthOfField.cs @@ -230,7 +230,7 @@ public bool IsActive() /// Tells if the post process can run the effect on-tile or if it needs a full pass. /// /// true if it can run on-tile, false otherwise. - [Obsolete("Unused #from(2023.1)", false)] + [Obsolete("Unused. #from(2023.1)")] public bool IsTileCompatible() => false; } diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/FilmGrain.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/FilmGrain.cs index 41d41555a39..90bdf6f8c85 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/FilmGrain.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/FilmGrain.cs @@ -199,7 +199,7 @@ public sealed class FilmGrain : VolumeComponent, IPostProcessComponent /// Tells if the post process can run the effect on-tile or if it needs a full pass. /// /// true if it can run on-tile, false otherwise. - [Obsolete("Unused #from(2023.1)", false)] + [Obsolete("Unused. #from(2023.1)")] public bool IsTileCompatible() => true; } diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/LensDistortion.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/LensDistortion.cs index d1b1039ce1d..ec10545ec1a 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/LensDistortion.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/LensDistortion.cs @@ -149,7 +149,7 @@ public bool IsActive() /// Tells if the post process can run the effect on-tile or if it needs a full pass. /// /// true if it can run on-tile, false otherwise. - [Obsolete("Unused #from(2023.1)", false)] + [Obsolete("Unused. #from(2023.1)")] public bool IsTileCompatible() => false; } } diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/LiftGammaGain.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/LiftGammaGain.cs index 11441270c5a..15ba8006ac6 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/LiftGammaGain.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/LiftGammaGain.cs @@ -129,7 +129,7 @@ public bool IsActive() /// Tells if the post process can run the effect on-tile or if it needs a full pass. /// /// true if it can run on-tile, false otherwise. - [Obsolete("Unused #from(2023.1)", false)] + [Obsolete("Unused. #from(2023.1)")] public bool IsTileCompatible() => true; } } diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/MotionBlur.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/MotionBlur.cs index 135e3f73787..d80dfbdf652 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/MotionBlur.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/MotionBlur.cs @@ -175,7 +175,7 @@ public sealed class MotionBlur : VolumeComponent, IPostProcessComponent /// Tells if the post process can run the effect on-tile or if it needs a full pass. /// /// true if it can run on-tile, false otherwise. - [Obsolete("Unused #from(2023.1)", false)] + [Obsolete("Unused. #from(2023.1)")] public bool IsTileCompatible() => false; } diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/PaniniProjection.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/PaniniProjection.cs index c8258c11f2d..3905850326e 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/PaniniProjection.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/PaniniProjection.cs @@ -117,7 +117,7 @@ public sealed class PaniniProjection : VolumeComponent, IPostProcessComponent /// Tells if the post process can run the effect on-tile or if it needs a full pass. /// /// true if it can run on-tile, false otherwise. - [Obsolete("Unused #from(2023.1)", false)] + [Obsolete("Unused. #from(2023.1)")] public bool IsTileCompatible() => false; } } diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/ScreenSpaceLensFlare.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/ScreenSpaceLensFlare.cs index d8ef5fde5a2..567fa6a087a 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/ScreenSpaceLensFlare.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/ScreenSpaceLensFlare.cs @@ -276,7 +276,7 @@ public bool IsStreaksActive() /// Tells if the post process can run the effect on-tile or if it needs a full pass. /// /// true if it can run on-tile, false otherwise. - [Obsolete("Unused #from(2023.1)", false)] + [Obsolete("Unused. #from(2023.1)")] public bool IsTileCompatible() => false; } diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/ShadowsMidtonesHighlights.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/ShadowsMidtonesHighlights.cs index d5812510a55..46d6d2708a4 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/ShadowsMidtonesHighlights.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/ShadowsMidtonesHighlights.cs @@ -169,7 +169,7 @@ public bool IsActive() /// Tells if the post process can run the effect on-tile or if it needs a full pass. /// /// true if it can run on-tile, false otherwise. - [Obsolete("Unused #from(2023.1)", false)] + [Obsolete("Unused. #from(2023.1)")] public bool IsTileCompatible() => true; } } diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/SplitToning.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/SplitToning.cs index 06f08978faa..beee0639fcc 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/SplitToning.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/SplitToning.cs @@ -128,7 +128,7 @@ public sealed class SplitToning : VolumeComponent, IPostProcessComponent /// Tells if the post process can run the effect on-tile or if it needs a full pass. /// /// true if it can run on-tile, false otherwise. - [Obsolete("Unused #from(2023.1)", false)] + [Obsolete("Unused. #from(2023.1)")] public bool IsTileCompatible() => true; } } diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/Tonemapping.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/Tonemapping.cs index 8158c07a82a..2944eddd419 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/Tonemapping.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/Tonemapping.cs @@ -246,7 +246,7 @@ public sealed class Tonemapping : VolumeComponent, IPostProcessComponent /// Tells if the post process can run the effect on-tile or if it needs a full pass. /// /// true if it can run on-tile, false otherwise. - [Obsolete("Unused #from(2023.1)", false)] + [Obsolete("Unused. #from(2023.1)")] public bool IsTileCompatible() => true; } diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/Vignette.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/Vignette.cs index a2e9112e5e1..d4cb207bd57 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/Vignette.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/Vignette.cs @@ -148,7 +148,7 @@ public sealed class Vignette : VolumeComponent, IPostProcessComponent /// Tells if the post process can run the effect on-tile or if it needs a full pass. /// /// true if it can run on-tile, false otherwise. - [Obsolete("Unused #from(2023.1)", false)] + [Obsolete("Unused. #from(2023.1)")] public bool IsTileCompatible() => true; } } diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/WhiteBalance.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/WhiteBalance.cs index f918b6e458b..5a5b0e80a94 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/WhiteBalance.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/WhiteBalance.cs @@ -117,7 +117,7 @@ public sealed class WhiteBalance : VolumeComponent, IPostProcessComponent /// Tells if the post process can run the effect on-tile or if it needs a full pass. /// /// true if it can run on-tile, false otherwise. - [Obsolete("Unused #from(2023.1)", false)] + [Obsolete("Unused. #from(2023.1)")] public bool IsTileCompatible() => true; } } diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Passes/AdditionalLightsShadowCasterPass.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Passes/AdditionalLightsShadowCasterPass.cs index ad4239ff4c2..fd3be6f80f4 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Passes/AdditionalLightsShadowCasterPass.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Passes/AdditionalLightsShadowCasterPass.cs @@ -637,7 +637,10 @@ public bool Setup(UniversalRenderingData renderingData, UniversalCameraData came m_MaxShadowDistanceSq = cameraData.maxShadowDistance * cameraData.maxShadowDistance; m_CascadeBorder = shadowData.mainLightShadowCascadeBorder; m_CreateEmptyShadowmap = false; + +#if URP_COMPATIBILITY_MODE useNativeRenderPass = true; +#endif return true; } @@ -682,7 +685,10 @@ bool SetupForEmptyRendering(bool stripShadowsOffVariants, bool shadowsEnabled, U shadowData.isKeywordAdditionalLightShadowsEnabled = true; m_CreateEmptyShadowmap = true; + +#if URP_COMPATIBILITY_MODE useNativeRenderPass = false; +#endif m_SetKeywordForEmptyShadowmap = shadowsEnabled; @@ -753,7 +759,7 @@ bool SetupForEmptyRendering(bool stripShadowsOffVariants, bool shadowsEnabled, U #if URP_COMPATIBILITY_MODE /// - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] public override void Configure(CommandBuffer cmd, RenderTextureDescriptor cameraTextureDescriptor) { // Disable obsolete warning for internal usage @@ -785,7 +791,7 @@ public override void Configure(CommandBuffer cmd, RenderTextureDescriptor camera } /// - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) { ContextContainer frameData = renderingData.frameData; diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Passes/CapturePass.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Passes/CapturePass.cs index 67d0c2fe8a6..51397cb6007 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Passes/CapturePass.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Passes/CapturePass.cs @@ -24,7 +24,7 @@ public CapturePass(RenderPassEvent evt) #if URP_COMPATIBILITY_MODE /// - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) { CommandBuffer cmdBuf = renderingData.commandBuffer; diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Passes/ColorGradingLutPass.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Passes/ColorGradingLutPass.cs index 076b1df63b5..e00d3e1face 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Passes/ColorGradingLutPass.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Passes/ColorGradingLutPass.cs @@ -9,7 +9,7 @@ namespace UnityEngine.Rendering.Universal.Internal /// /// Renders a color grading LUT texture. /// - public class ColorGradingLutPass : ScriptableRenderPass + public partial class ColorGradingLutPass : ScriptableRenderPass { readonly Material m_LutBuilderLdr; readonly Material m_LutBuilderHdr; @@ -34,7 +34,9 @@ public ColorGradingLutPass(RenderPassEvent evt, PostProcessData data) { profilingSampler = new ProfilingSampler("Blit Color LUT"); renderPassEvent = evt; +#if URP_COMPATIBILITY_MODE overrideCameraTarget = true; +#endif Material Load(Shader shader) { @@ -68,12 +70,12 @@ Material Load(Shader shader) m_HdrLutFormat = GraphicsFormat.R8G8B8A8_UNorm; m_LdrLutFormat = GraphicsFormat.R8G8B8A8_UNorm; - base.useNativeRenderPass = false; - + if (SystemInfo.graphicsDeviceType == GraphicsDeviceType.OpenGLES3 && Graphics.minOpenGLESVersion <= OpenGLESVersion.OpenGLES30 && SystemInfo.graphicsDeviceName.StartsWith("Adreno (TM) 3")) m_AllowColorGradingACESHDR = false; #if URP_COMPATIBILITY_MODE + base.useNativeRenderPass = false; m_PassData = new PassData(); #endif } @@ -121,7 +123,7 @@ public void ConfigureDescriptor(in UniversalPostProcessingData postProcessingDat #if URP_COMPATIBILITY_MODE /// - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) { ContextContainer frameData = renderingData.frameData; diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Passes/CopyColorPass.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Passes/CopyColorPass.cs index 3d56ffee495..87e014fcf78 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Passes/CopyColorPass.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Passes/CopyColorPass.cs @@ -12,7 +12,7 @@ namespace UnityEngine.Rendering.Universal.Internal /// so you can use it later in rendering. For example, you can copy /// the opaque texture to use it for distortion effects. /// - public class CopyColorPass : ScriptableRenderPass + public partial class CopyColorPass : ScriptableRenderPass { int m_SampleOffsetShaderHandle; Material m_SamplingMaterial; @@ -44,9 +44,9 @@ public CopyColorPass(RenderPassEvent evt, Material samplingMaterial, Material co m_SampleOffsetShaderHandle = Shader.PropertyToID("_SampleOffset"); renderPassEvent = evt; m_DownsamplingMethod = Downsampling.None; - base.useNativeRenderPass = false; #if URP_COMPATIBILITY_MODE + base.useNativeRenderPass = false; m_PassData = new PassData(); #endif } @@ -84,7 +84,7 @@ public static void ConfigureDescriptor(Downsampling downsamplingMethod, ref Rend /// Source render target. /// Destination render target. /// The downsampling method to use. - [Obsolete("Use RTHandles for source and destination.", true)] + [Obsolete("Use RTHandles for source and destination #from(2022.1) #breakingFrom(2023.1).", true)] public void Setup(RenderTargetIdentifier source, RenderTargetHandle destination, Downsampling downsampling) { throw new NotSupportedException("Setup with RenderTargetIdentifier has been deprecated. Use it with RTHandles instead."); @@ -107,14 +107,14 @@ public void Setup(RTHandle source, RTHandle destination, Downsampling downsampli #if URP_COMPATIBILITY_MODE /// - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] public override void OnCameraSetup(CommandBuffer cmd, ref RenderingData renderingData) { cmd.SetGlobalTexture(destination.name, destination.nameID); } /// - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) { m_PassData.samplingMaterial = m_SamplingMaterial; @@ -181,7 +181,7 @@ private static void ExecutePass(RasterCommandBuffer cmd, PassData passData, RTHa private class PassData { internal TextureHandle source; - // internal RenderingData renderingData; + internal TextureHandle destination; internal bool useProceduralBlit; internal Material samplingMaterial; internal Material copyColorMaterial; @@ -216,25 +216,27 @@ internal void RenderToExistingTexture(RenderGraph renderGraph, ContextContainer RenderInternal(renderGraph, destination, source, cameraData.xr.enabled); } + static readonly string k_CopyColorPassName = "Copy Color"; + static readonly string k_DownsampleAndCopyPassName = "Downsample Color"; + private void RenderInternal(RenderGraph renderGraph, in TextureHandle destination, in TextureHandle source, bool useProceduralBlit) { - var downsamplingEnabled = m_DownsamplingMethod != Downsampling.None; - var useDirectCopyPass = !downsamplingEnabled && renderGraph.CanAddCopyPass(source, destination); + bool isES3 = SystemInfo.graphicsDeviceType == GraphicsDeviceType.OpenGLES3; - if (useDirectCopyPass) + if (m_DownsamplingMethod != Downsampling.None || isES3) { - using (var builder = renderGraph.AddCopyPass(source, destination, returnBuilder: true)) - { - builder.SetGlobalTextureAfterPass(destination, Shader.PropertyToID("_CameraOpaqueTexture")); - } + AddDownsampleAndCopyColorRenderPass(renderGraph, destination, source, useProceduralBlit, k_DownsampleAndCopyPassName); } else { - AddDownsamplingRenderPass(renderGraph, destination, source, useProceduralBlit); + using (var builder = renderGraph.AddBlitPass(source, destination, Vector2.one, Vector2.zero, returnBuilder: true, passName: k_CopyColorPassName)) + { + builder.SetGlobalTextureAfterPass(destination, Shader.PropertyToID("_CameraOpaqueTexture")); + } } } - private void AddDownsamplingRenderPass(RenderGraph renderGraph, in TextureHandle destination, in TextureHandle source, bool useProceduralBlit) + private void AddDownsampleAndCopyColorRenderPass(RenderGraph renderGraph, in TextureHandle destination, in TextureHandle source, bool useProceduralBlit, string passName) { using (var builder = renderGraph.AddRasterRenderPass(passName, out var passData, profilingSampler)) { diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Passes/CopyDepthPass.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Passes/CopyDepthPass.cs index 7bfe09b67a7..342cbcccf74 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Passes/CopyDepthPass.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Passes/CopyDepthPass.cs @@ -13,7 +13,7 @@ namespace UnityEngine.Rendering.Universal.Internal /// does not have MSAA enabled, the pass uses a Blit or a Copy Texture /// operation, depending on what the current platform supports. /// - public class CopyDepthPass : ScriptableRenderPass + public partial class CopyDepthPass : ScriptableRenderPass { // TODO RENDERGRAPH: The Render method overwrites this property with -1 before doing anything else. It should only be used in Compatibility Mode! internal int MsaaSamples { get; set; } @@ -96,7 +96,7 @@ public void Dispose() #if URP_COMPATIBILITY_MODE /// - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] public override void OnCameraSetup(CommandBuffer cmd, ref RenderingData renderingData) { // Disable obsolete warning for internal usage @@ -130,7 +130,7 @@ private class PassData #if URP_COMPATIBILITY_MODE /// - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) { var cameraData = renderingData.frameData.Get(); @@ -231,10 +231,10 @@ private static void ExecutePass(RasterCommandBuffer cmd, PassData passData, RTHa } } -#if URP_COMPATIBILITY_MODE /// public override void OnCameraCleanup(CommandBuffer cmd) { +#if URP_COMPATIBILITY_MODE if (cmd == null) throw new ArgumentNullException("cmd"); @@ -242,8 +242,8 @@ public override void OnCameraCleanup(CommandBuffer cmd) #pragma warning disable CS0618 destination = k_CameraTarget; #pragma warning restore CS0618 - } #endif + } /// /// Sets up the Copy Depth pass for RenderGraph execution diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Passes/DeferredPass.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Passes/DeferredPass.cs index 8b4a44c175b..60e1463abee 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Passes/DeferredPass.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Passes/DeferredPass.cs @@ -24,7 +24,7 @@ public DeferredPass(RenderPassEvent evt, DeferredLights deferredLights) #if URP_COMPATIBILITY_MODE // ScriptableRenderPass - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] public override void Configure(CommandBuffer cmd, RenderTextureDescriptor cameraTextureDescripor) { var lightingAttachment = m_DeferredLights.GbufferAttachments[m_DeferredLights.GBufferLightingIndex]; @@ -46,7 +46,7 @@ public override void Configure(CommandBuffer cmd, RenderTextureDescriptor camera } // ScriptableRenderPass - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) { ContextContainer frameData = renderingData.frameData; diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Passes/DepthNormalOnlyPass.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Passes/DepthNormalOnlyPass.cs index e63687f9c0d..249e0585055 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Passes/DepthNormalOnlyPass.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Passes/DepthNormalOnlyPass.cs @@ -8,7 +8,7 @@ namespace UnityEngine.Rendering.Universal.Internal /// /// Render all objects that have a 'DepthNormals' and/or 'DepthNormalsOnly' pass into the given depth and normal buffers. /// - public class DepthNormalOnlyPass : ScriptableRenderPass + public partial class DepthNormalOnlyPass : ScriptableRenderPass { internal List shaderTagIds { get; set; } internal bool enableRenderingLayers { get; set; } = false; @@ -47,10 +47,10 @@ public DepthNormalOnlyPass(RenderPassEvent evt, RenderQueueRange renderQueueRang profilingSampler = ProfilingSampler.Get(URPProfileId.DrawDepthNormalPrepass); m_FilteringSettings = new FilteringSettings(renderQueueRange, layerMask); renderPassEvent = evt; - useNativeRenderPass = false; this.shaderTagIds = k_DepthNormals; #if URP_COMPATIBILITY_MODE + useNativeRenderPass = false; m_PassData = new PassData(); #endif } @@ -101,7 +101,7 @@ public void Setup(RTHandle depthHandle, RTHandle normalHandle, RTHandle decalLay #if URP_COMPATIBILITY_MODE /// - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] public override void OnCameraSetup(CommandBuffer cmd, ref RenderingData renderingData) { RTHandle[] colorHandles; @@ -145,7 +145,7 @@ private static void ExecutePass(RasterCommandBuffer cmd, PassData passData, Rend #if URP_COMPATIBILITY_MODE /// - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) { ContextContainer frameData = renderingData.frameData; diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Passes/DepthOnlyPass.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Passes/DepthOnlyPass.cs index cdc4a296f1b..bc31b07a33a 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Passes/DepthOnlyPass.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Passes/DepthOnlyPass.cs @@ -10,7 +10,7 @@ namespace UnityEngine.Rendering.Universal.Internal /// You can use this pass to prime a depth buffer for subsequent rendering. /// Use it as a z-prepass, or use it to generate a depth buffer. /// - public class DepthOnlyPass : ScriptableRenderPass + public partial class DepthOnlyPass : ScriptableRenderPass { internal ShaderTagId shaderTagId { get; set; } = k_ShaderTagId; @@ -40,10 +40,10 @@ public DepthOnlyPass(RenderPassEvent evt, RenderQueueRange renderQueueRange, Lay profilingSampler = new ProfilingSampler("Draw Depth Only"); m_FilteringSettings = new FilteringSettings(renderQueueRange, layerMask); renderPassEvent = evt; - useNativeRenderPass = false; this.shaderTagId = k_ShaderTagId; #if URP_COMPATIBILITY_MODE + useNativeRenderPass = false; m_PassData = new PassData(); #endif } @@ -68,7 +68,7 @@ public void Setup( #if URP_COMPATIBILITY_MODE /// - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] public override void OnCameraSetup(CommandBuffer cmd, ref RenderingData renderingData) { var desc = renderingData.cameraData.cameraTargetDescriptor; @@ -105,7 +105,7 @@ private static void ExecutePass(RasterCommandBuffer cmd, RendererList rendererLi #if URP_COMPATIBILITY_MODE /// - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) { ContextContainer frameData = renderingData.frameData; diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Passes/DrawObjectsPass.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Passes/DrawObjectsPass.cs index fde6bb83d04..9babe8e418e 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Passes/DrawObjectsPass.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Passes/DrawObjectsPass.cs @@ -12,7 +12,7 @@ namespace UnityEngine.Rendering.Universal.Internal /// You can use this pass to render objects that have a material and/or shader /// with the pass names UniversalForward or SRPDefaultUnlit. /// - public class DrawObjectsPass : ScriptableRenderPass + public partial class DrawObjectsPass : ScriptableRenderPass { FilteringSettings m_FilteringSettings; RenderStateBlock m_RenderStateBlock; @@ -20,11 +20,13 @@ public class DrawObjectsPass : ScriptableRenderPass bool m_IsOpaque; +#if URP_COMPATIBILITY_MODE /// /// Used to indicate if the active target of the pass is the back buffer /// - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete + " #from(6000.3)")] public bool m_IsActiveTargetBackBuffer; // TODO: Remove this when we remove non-RG path +#endif /// /// Used to indicate whether transparent objects should receive shadows or not. @@ -115,7 +117,7 @@ internal void Init(bool opaque, RenderPassEvent evt, RenderQueueRange renderQueu #if URP_COMPATIBILITY_MODE /// - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) { ContextContainer frameData = renderingData.frameData; @@ -146,6 +148,13 @@ internal static void ExecutePass(RasterCommandBuffer cmd, PassData data, Rendere cmd.SetViewport(data.cameraData.xr.GetViewport()); } + bool useScreenSpaceIrradiance = data.screenSpaceIrradianceHdl.IsValid(); + cmd.SetKeyword(ShaderGlobalKeywords.ScreenSpaceIrradiance, useScreenSpaceIrradiance); + if (useScreenSpaceIrradiance) + { + cmd.SetGlobalTexture(ShaderPropertyId.screenSpaceIrradiance, data.screenSpaceIrradianceHdl); + } + // scaleBias.x = flipSign // scaleBias.y = scale // scaleBias.z = bias @@ -181,6 +190,7 @@ internal class PassData { internal TextureHandle albedoHdl; internal TextureHandle depthHdl; + internal TextureHandle screenSpaceIrradianceHdl; internal UniversalCameraData cameraData; internal bool isOpaque; @@ -297,6 +307,14 @@ internal void Render(RenderGraph renderGraph, ContextContainer frameData, Textur TextureHandle ssaoTexture = resourceData.ssaoTexture; if (ssaoTexture.IsValid()) builder.UseTexture(ssaoTexture, AccessFlags.Read); + + TextureHandle irradianceTexture = resourceData.irradianceTexture; + if (irradianceTexture.IsValid()) + { + passData.screenSpaceIrradianceHdl = irradianceTexture; + builder.UseTexture(irradianceTexture, AccessFlags.Read); + } + RenderGraphUtils.UseDBufferIfValid(builder, resourceData); InitRendererLists(renderingData, cameraData, lightData, ref passData, default(ScriptableRenderContext), renderGraph, true); @@ -328,6 +346,13 @@ internal void Render(RenderGraph renderGraph, ContextContainer frameData, Textur bool yFlip = data.cameraData.IsRenderTargetProjectionMatrixFlipped(data.albedoHdl, data.depthHdl); + bool useScreenSpaceIrradiance = data.screenSpaceIrradianceHdl.IsValid(); + context.cmd.SetKeyword(ShaderGlobalKeywords.ScreenSpaceIrradiance, useScreenSpaceIrradiance); + if (useScreenSpaceIrradiance) + { + context.cmd.SetGlobalTexture(ShaderPropertyId.screenSpaceIrradiance, data.screenSpaceIrradianceHdl); + } + ExecutePass(context.cmd, data, data.rendererListHdl, data.objectsWithErrorRendererListHdl, yFlip); }); } @@ -361,7 +386,7 @@ public DrawObjectsWithRenderingLayersPass(URPProfileId profilerTag, bool opaque, m_ColorTargetIndentifiers = new RTHandle[2]; #endif } - + #if URP_COMPATIBILITY_MODE /// /// Sets up the pass. @@ -385,7 +410,7 @@ public void Setup(RTHandle colorAttachment, RTHandle renderingLayersTexture, RTH } /// - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] public override void Configure(CommandBuffer cmd, RenderTextureDescriptor cameraTextureDescriptor) { // Disable obsolete warning for internal usage @@ -395,7 +420,7 @@ public override void Configure(CommandBuffer cmd, RenderTextureDescriptor camera } /// - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) { CommandBuffer cmd = renderingData.commandBuffer; diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Passes/DrawScreenSpaceUIPass.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Passes/DrawScreenSpaceUIPass.cs index 29d384051f9..ba0617602f3 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Passes/DrawScreenSpaceUIPass.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Passes/DrawScreenSpaceUIPass.cs @@ -28,10 +28,10 @@ public DrawScreenSpaceUIPass(RenderPassEvent evt, bool renderOffscreen) { profilingSampler = ProfilingSampler.Get(URPProfileId.DrawScreenSpaceUI); renderPassEvent = evt; - useNativeRenderPass = false; m_RenderOffscreen = renderOffscreen; #if URP_COMPATIBILITY_MODE + useNativeRenderPass = false; m_PassData = new PassData(); #endif } @@ -106,7 +106,7 @@ public void Setup(UniversalCameraData cameraData, GraphicsFormat depthStencilFor #if URP_COMPATIBILITY_MODE /// - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] public override void OnCameraSetup(CommandBuffer cmd, ref RenderingData renderingData) { if(m_RenderOffscreen) @@ -147,7 +147,7 @@ public override void OnCameraSetup(CommandBuffer cmd, ref RenderingData renderin } /// - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) { using (new ProfilingScope(renderingData.commandBuffer, profilingSampler)) diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Passes/DrawSkyboxPass.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Passes/DrawSkyboxPass.cs index 673dbf244ae..8bb0e01ad6f 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Passes/DrawSkyboxPass.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Passes/DrawSkyboxPass.cs @@ -10,7 +10,7 @@ namespace UnityEngine.Rendering.Universal /// /// This pass renders the standard Unity skybox. /// - public class DrawSkyboxPass : ScriptableRenderPass + public partial class DrawSkyboxPass : ScriptableRenderPass { /// /// Creates a new DrawSkyboxPass instance. @@ -25,7 +25,7 @@ public DrawSkyboxPass(RenderPassEvent evt) #if URP_COMPATIBILITY_MODE /// - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) { UniversalCameraData cameraData = renderingData.frameData.Get(); diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Passes/FinalBlitPass.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Passes/FinalBlitPass.cs index 42e30d4c60d..d403bd6de3c 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Passes/FinalBlitPass.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Passes/FinalBlitPass.cs @@ -11,7 +11,7 @@ namespace UnityEngine.Rendering.Universal.Internal /// the camera target. The pass takes the screen viewport into /// consideration. /// - public class FinalBlitPass : ScriptableRenderPass + public partial class FinalBlitPass : ScriptableRenderPass { static readonly int s_CameraDepthTextureID = Shader.PropertyToID("_CameraDepthTexture"); @@ -54,8 +54,8 @@ struct BlitMaterialData public FinalBlitPass(RenderPassEvent evt, Material blitMaterial, Material blitHDRMaterial) { profilingSampler = ProfilingSampler.Get(URPProfileId.BlitFinalToBackBuffer); - base.useNativeRenderPass = false; #if URP_COMPATIBILITY_MODE + base.useNativeRenderPass = false; m_PassData = new PassData(); #endif renderPassEvent = evt; @@ -83,7 +83,7 @@ public void Dispose() /// /// /// - [Obsolete("Use RTHandles for colorHandle", true)] + [Obsolete("Use RTHandles for colorHandle. #from(2022.1) #breakingFrom(2023.1)", true)] public void Setup(RenderTextureDescriptor baseDescriptor, RenderTargetHandle colorHandle) { throw new NotSupportedException("Setup with RenderTargetHandle has been deprecated. Use it with RTHandles instead."); @@ -110,7 +110,7 @@ static void SetupHDROutput(ColorGamut hdrDisplayColorGamut, Material material, H #if URP_COMPATIBILITY_MODE /// - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] public override void OnCameraSetup(CommandBuffer cmd, ref RenderingData renderingData) { UniversalCameraData cameraData = renderingData.frameData.Get(); @@ -127,7 +127,7 @@ public override void OnCameraSetup(CommandBuffer cmd, ref RenderingData renderin } /// - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) { ContextContainer frameData = renderingData.frameData; diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Passes/GBufferPass.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Passes/GBufferPass.cs index f7e12ea8e57..a2858698b0f 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Passes/GBufferPass.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Passes/GBufferPass.cs @@ -73,7 +73,7 @@ public void Dispose() } #if URP_COMPATIBILITY_MODE - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] public override void Configure(CommandBuffer cmd, RenderTextureDescriptor cameraTextureDescriptor) { RTHandle[] gbufferAttachments = m_DeferredLights.GbufferAttachments; @@ -124,7 +124,7 @@ public override void Configure(CommandBuffer cmd, RenderTextureDescriptor camera #pragma warning restore CS0618 } - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) { ContextContainer frameData = renderingData.frameData; @@ -160,6 +160,13 @@ static void ExecutePass(RasterCommandBuffer cmd, PassData data, RendererList ren if (usesRenderingLayers) cmd.SetKeyword(ShaderGlobalKeywords.WriteRenderingLayers, true); + bool useScreenSpaceIrradiance = data.screenSpaceIrradianceHdl.IsValid(); + cmd.SetKeyword(ShaderGlobalKeywords.ScreenSpaceIrradiance, useScreenSpaceIrradiance); + if (useScreenSpaceIrradiance) + { + cmd.SetGlobalTexture(ShaderPropertyId.screenSpaceIrradiance, data.screenSpaceIrradianceHdl); + } + cmd.DrawRendererList(rendererList); // Render objects that did not match any shader pass with error shader @@ -179,6 +186,8 @@ private class PassData internal RendererListHandle rendererListHdl; internal RendererListHandle objectsWithErrorRendererListHdl; + internal TextureHandle screenSpaceIrradianceHdl; + #if URP_COMPATIBILITY_MODE internal TextureHandle[] gbuffer; internal TextureHandle depth; @@ -246,6 +255,13 @@ internal void Render(RenderGraph renderGraph, ContextContainer frameData, Textur builder.SetRenderAttachment(gbuffer[i], i, AccessFlags.Write); } + TextureHandle irradianceTexture = resourceData.irradianceTexture; + if (irradianceTexture.IsValid()) + { + passData.screenSpaceIrradianceHdl = irradianceTexture; + builder.UseTexture(irradianceTexture, AccessFlags.Read); + } + RenderGraphUtils.UseDBufferIfValid(builder, resourceData); builder.SetRenderAttachmentDepth(cameraDepth, AccessFlags.Write); diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Passes/HDRDebugViewPass.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Passes/HDRDebugViewPass.cs index d3e8f8adeec..7a3783341f0 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Passes/HDRDebugViewPass.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Passes/HDRDebugViewPass.cs @@ -36,11 +36,11 @@ public HDRDebugViewPass(Material mat) #if URP_COMPATIBILITY_MODE m_PassDataCIExy = new PassDataCIExy() { material = mat }; m_PassDataDebugView = new PassDataDebugView() { material = mat }; -#endif - m_material = mat; - + // Disabling native render passes (for non-RG) because it renders to 2 different render targets useNativeRenderPass = false; +#endif + m_material = mat; } // Common to RenderGraph and non-RenderGraph paths @@ -171,7 +171,7 @@ public void Setup(UniversalCameraData cameraData, HDRDebugMode hdrdebugMode) #if URP_COMPATIBILITY_MODE /// - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) { UniversalCameraData cameraData = renderingData.frameData.Get(); diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Passes/InvokeOnRenderObjectCallbackPass.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Passes/InvokeOnRenderObjectCallbackPass.cs index 25e5bb08fa7..c2647206564 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Passes/InvokeOnRenderObjectCallbackPass.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Passes/InvokeOnRenderObjectCallbackPass.cs @@ -13,15 +13,18 @@ public InvokeOnRenderObjectCallbackPass(RenderPassEvent evt) { profilingSampler = new ProfilingSampler("Invoke OnRenderObject Callback"); renderPassEvent = evt; + +#if URP_COMPATIBILITY_MODE //TODO: should we fix and re-enable native render pass for this pass? // Currently disabled because when the callback is empty it causes an empty Begin/End RenderPass block, which causes artifacts on Vulkan useNativeRenderPass = false; +#endif } #if URP_COMPATIBILITY_MODE /// - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) { renderingData.commandBuffer.InvokeOnRenderObjectCallbacks(); diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Passes/MainLightShadowCasterPass.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Passes/MainLightShadowCasterPass.cs index f16ff74c70f..f675af23f5e 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Passes/MainLightShadowCasterPass.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Passes/MainLightShadowCasterPass.cs @@ -6,7 +6,7 @@ namespace UnityEngine.Rendering.Universal.Internal /// /// Renders a shadow map for the main Light. /// - public class MainLightShadowCasterPass : ScriptableRenderPass + public partial class MainLightShadowCasterPass : ScriptableRenderPass { // Internal internal RTHandle m_MainLightShadowmapTexture; @@ -203,7 +203,9 @@ public bool Setup(UniversalRenderingData renderingData, UniversalCameraData came m_MaxShadowDistanceSq = cameraData.maxShadowDistance * cameraData.maxShadowDistance; m_CascadeBorder = shadowData.mainLightShadowCascadeBorder; m_CreateEmptyShadowmap = false; +#if URP_COMPATIBILITY_MODE useNativeRenderPass = true; +#endif return true; } @@ -225,7 +227,9 @@ bool SetupForEmptyRendering(bool stripShadowsOffVariants, bool shadowsEnabled, L return false; m_CreateEmptyShadowmap = true; +#if URP_COMPATIBILITY_MODE useNativeRenderPass = false; +#endif m_SetKeywordForEmptyShadowmap = shadowsEnabled; @@ -253,7 +257,7 @@ bool SetupForEmptyRendering(bool stripShadowsOffVariants, bool shadowsEnabled, L #if URP_COMPATIBILITY_MODE /// - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] public override void Configure(CommandBuffer cmd, RenderTextureDescriptor cameraTextureDescriptor) { // Disable obsolete warning for internal usage @@ -283,7 +287,7 @@ public override void Configure(CommandBuffer cmd, RenderTextureDescriptor camera } /// - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) { ContextContainer frameData = renderingData.frameData; diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Passes/MotionVectorRenderPass.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Passes/MotionVectorRenderPass.cs index dcdb60d16c3..72a1463859a 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Passes/MotionVectorRenderPass.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Passes/MotionVectorRenderPass.cs @@ -48,7 +48,7 @@ internal void Setup(RTHandle color, RTHandle depth) m_Depth = depth; } - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] public override void Configure(CommandBuffer cmd, RenderTextureDescriptor cameraTextureDescriptor) { cmd.SetGlobalTexture(m_Color.name, m_Color.nameID); @@ -91,7 +91,7 @@ private static void ExecutePass(RasterCommandBuffer cmd, PassData passData, Rend } #if URP_COMPATIBILITY_MODE - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) { ContextContainer frameData = renderingData.frameData; diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Passes/PostProcessPass.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Passes/PostProcessPass.cs index 7515d2baf88..0f3291b5f45 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Passes/PostProcessPass.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Passes/PostProcessPass.cs @@ -1,3 +1,4 @@ +#if URP_COMPATIBILITY_MODE using System; using System.Runtime.CompilerServices; using UnityEngine.Experimental.Rendering; @@ -304,7 +305,7 @@ public void SetupFinalPass(in RTHandle source, bool useSwapBuffer = false, bool } /// - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] public override void OnCameraSetup(CommandBuffer cmd, ref RenderingData renderingData) { overrideCameraTarget = true; @@ -317,7 +318,7 @@ public bool CanRunOnTile() } /// - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) { // Start by pre-fetching all builtin effect settings we need @@ -1979,3 +1980,4 @@ static class ShaderConstants #endregion } } +#endif \ No newline at end of file diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Passes/PostProcessPassRenderGraph.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Passes/PostProcessPassRenderGraph.cs index 406fc07a1f6..cc8ea85503b 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Passes/PostProcessPassRenderGraph.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Passes/PostProcessPassRenderGraph.cs @@ -2740,7 +2740,7 @@ public void RenderPostProcessingRenderGraph(RenderGraph renderGraph, ContextCont { int maxBloomMip = Mathf.Clamp(m_LensFlareScreenSpace.bloomMip.value, 0, m_Bloom.maxIterations.value/2); TextureHandle bloomMipFlareSource = _BloomMipUp[maxBloomMip]; - bool sameBloomInputOutputTex = false; + bool sameBloomInputOutputTex = maxBloomMip == 0; // Kawase blur does not use the mip pyramid. // It is safe to pass the same texture to both input/output. diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Passes/ProbeVolumeDebugPass.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Passes/ProbeVolumeDebugPass.cs index 302e4ec10c4..58e05adeb64 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Passes/ProbeVolumeDebugPass.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Passes/ProbeVolumeDebugPass.cs @@ -33,7 +33,7 @@ public void Setup(RTHandle depthBuffer, RTHandle normalBuffer) } /// - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) { if (!ProbeReferenceVolume.instance.isInitialized) diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Passes/RenderObjectsPass.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Passes/RenderObjectsPass.cs index 3c2613afa3d..466f516ec8d 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Passes/RenderObjectsPass.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Passes/RenderObjectsPass.cs @@ -10,7 +10,7 @@ namespace UnityEngine.Rendering.Universal /// The scriptable render pass used with the render objects renderer feature. /// [MovedFrom(true, "UnityEngine.Experimental.Rendering.Universal")] - public class RenderObjectsPass : ScriptableRenderPass + public partial class RenderObjectsPass : ScriptableRenderPass { RenderQueueType renderQueueType; FilteringSettings m_FilteringSettings; @@ -44,7 +44,7 @@ public class RenderObjectsPass : ScriptableRenderPass /// /// Sets whether it should write to depth or not. /// The depth comparison function to use. - [Obsolete("Use SetDepthState instead", true)] + [Obsolete("Use SetDepthState instead. #from(2023.1) #breakingFrom(2023.1)", true)] public void SetDetphState(bool writeEnabled, CompareFunction function = CompareFunction.Less) { SetDepthState(writeEnabled, function); @@ -139,7 +139,7 @@ internal void Init(RenderPassEvent renderPassEvent, string[] shaderTags, RenderQ #if URP_COMPATIBILITY_MODE /// - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) { UniversalRenderingData universalRenderingData = renderingData.frameData.Get(); diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Passes/ScreenSpaceAmbientOcclusionPass.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Passes/ScreenSpaceAmbientOcclusionPass.cs index a497fdacdb4..34ff69fbf8b 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Passes/ScreenSpaceAmbientOcclusionPass.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Passes/ScreenSpaceAmbientOcclusionPass.cs @@ -497,7 +497,7 @@ private void CreateRenderTextureHandles(RenderGraph renderGraph, UniversalResour #if URP_COMPATIBILITY_MODE /// - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] public override void OnCameraSetup(CommandBuffer cmd, ref RenderingData renderingData) { ContextContainer frameData = renderingData.frameData; @@ -545,7 +545,7 @@ public override void OnCameraSetup(CommandBuffer cmd, ref RenderingData renderin } /// - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) { if (m_Material == null) diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Passes/ScriptableRenderPass.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Passes/ScriptableRenderPass.cs index f3c3842537a..4ceadbab79e 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Passes/ScriptableRenderPass.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Passes/ScriptableRenderPass.cs @@ -204,36 +204,39 @@ static RenderPassEventsEnumValues() /// public abstract partial class ScriptableRenderPass : IRenderGraphRecorder { +#if URP_COMPATIBILITY_MODE /// /// RTHandle alias for BuiltinRenderTextureType.CameraTarget which is the backbuffer. /// - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] public static RTHandle k_CameraTarget = RTHandles.Alloc(BuiltinRenderTextureType.CameraTarget); +#endif /// /// The event when the render pass executes. /// public RenderPassEvent renderPassEvent { get; set; } - + +#if URP_COMPATIBILITY_MODE /// /// The render target identifiers for color attachments. /// This is obsolete, use colorAttachmentHandles instead. /// - [Obsolete("Use colorAttachmentHandles", true)] + [Obsolete("Use colorAttachmentHandles. #from(2022.1) #breakingFrom(2023.2)", true)] public RenderTargetIdentifier[] colorAttachments => throw new NotSupportedException("colorAttachments has been deprecated. Use colorAttachmentHandles instead."); /// /// The render target identifier for color attachment. /// This is obsolete, use colorAttachmentHandle instead. /// - [Obsolete("Use colorAttachmentHandle", true)] + [Obsolete("Use colorAttachmentHandle. #from(2022.1) #breakingFrom(2023.2)", true)] public RenderTargetIdentifier[] colorAttachment => throw new NotSupportedException("colorAttachment has been deprecated. Use colorAttachmentHandle instead."); /// /// The render target identifier for depth attachment. /// This is obsolete, use depthAttachmentHandle instead. /// - [Obsolete("Use depthAttachmentHandle", true)] + [Obsolete("Use depthAttachmentHandle. #from(2022.1) #breakingFrom(2023.2)", true)] public RenderTargetIdentifier depthAttachment => throw new NotSupportedException("depthAttachment has been deprecated. Use depthAttachmentHandle instead."); /// @@ -264,6 +267,7 @@ public abstract partial class ScriptableRenderPass : IRenderGraphRecorder internal bool[] overriddenColorStoreActions => m_OverriddenColorStoreActions; internal bool overriddenDepthStoreAction => m_OverriddenDepthStoreAction; +#endif /// /// The input requirements for the ScriptableRenderPass, which has been set using ConfigureInput @@ -271,6 +275,7 @@ public abstract partial class ScriptableRenderPass : IRenderGraphRecorder /// public ScriptableRenderPassInput input => m_Input; +#if URP_COMPATIBILITY_MODE /// /// The flag to use when clearing. /// @@ -284,16 +289,19 @@ public abstract partial class ScriptableRenderPass : IRenderGraphRecorder RenderBufferStoreAction[] m_ColorStoreActions = new RenderBufferStoreAction[] { RenderBufferStoreAction.Store }; RenderBufferStoreAction m_DepthStoreAction = RenderBufferStoreAction.Store; +#endif /// /// Setting this property to true forces rendering of all passes in the URP frame via an intermediate texture. Use this option for passes that do not support rendering directly to the backbuffer or that require sampling the active color target. Using this option might have a significant performance impact on untethered VR platforms. /// public bool requiresIntermediateTexture { get; set; } +#if URP_COMPATIBILITY_MODE // by default all store actions are Store. The overridden flags are used to keep track of explicitly requested store actions, to // help figuring out the correct final store action for merged render passes when using the RenderPass API. private bool[] m_OverriddenColorStoreActions = new bool[] { false }; private bool m_OverriddenDepthStoreAction = false; +#endif private ProfilingSampler m_ProfingSampler; private string m_PassName; @@ -344,11 +352,11 @@ protected internal ProfilingSampler profilingSampler /// protected internal string passName{ get { return m_PassName; } } - internal bool overrideCameraTarget { get; set; } internal bool isBlitRenderPass { get; set; } +#if URP_COMPATIBILITY_MODE internal bool useNativeRenderPass { get; set; } - +#endif // index to track the position in the current frame internal int renderPassQueueIndex { get; set; } @@ -357,14 +365,19 @@ protected internal ProfilingSampler profilingSampler internal GraphicsFormat[] renderTargetFormat { get; set; } +#if URP_COMPATIBILITY_MODE RTHandle[] m_ColorAttachments; internal RTHandle[] m_InputAttachments = new RTHandle[8]; internal bool[] m_InputAttachmentIsTransient = new bool[8]; + internal bool overrideCameraTarget { get; set; } RTHandle m_DepthAttachment; +#endif ScriptableRenderPassInput m_Input = ScriptableRenderPassInput.None; +#if URP_COMPATIBILITY_MODE ClearFlag m_ClearFlag = ClearFlag.None; Color m_ClearColor = Color.black; +#endif static internal DebugHandler GetActiveDebugHandler(UniversalCameraData cameraData) { @@ -380,6 +393,7 @@ static internal DebugHandler GetActiveDebugHandler(UniversalCameraData cameraDat public ScriptableRenderPass() { renderPassEvent = RenderPassEvent.AfterRenderingOpaques; +#if URP_COMPATIBILITY_MODE // Disable obsolete warning for internal usage #pragma warning disable CS0618 m_ColorAttachments = new RTHandle[] { k_CameraTarget, null, null, null, null, null, null, null }; @@ -402,6 +416,7 @@ public ScriptableRenderPass() GraphicsFormat.None, GraphicsFormat.None, GraphicsFormat.None, GraphicsFormat.None, GraphicsFormat.None, GraphicsFormat.None, GraphicsFormat.None, GraphicsFormat.None }; +#endif profilingSampler = new ProfilingSampler(this.GetType().Name); } @@ -417,12 +432,13 @@ public void ConfigureInput(ScriptableRenderPassInput passInput) m_Input = passInput; } +#if URP_COMPATIBILITY_MODE /// /// Configures the Store Action for a color attachment of this render pass. /// /// RenderBufferStoreAction to use /// Index of the color attachment - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] public void ConfigureColorStoreAction(RenderBufferStoreAction storeAction, uint attachmentIndex = 0) { m_ColorStoreActions[attachmentIndex] = storeAction; @@ -433,7 +449,7 @@ public void ConfigureColorStoreAction(RenderBufferStoreAction storeAction, uint /// Configures the Store Actions for all the color attachments of this render pass. /// /// Array of RenderBufferStoreActions to use - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] public void ConfigureColorStoreActions(RenderBufferStoreAction[] storeActions) { int count = Math.Min(storeActions.Length, m_ColorStoreActions.Length); @@ -448,44 +464,44 @@ public void ConfigureColorStoreActions(RenderBufferStoreAction[] storeActions) /// Configures the Store Action for the depth attachment of this render pass. /// /// RenderBufferStoreAction to use - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] public void ConfigureDepthStoreAction(RenderBufferStoreAction storeAction) { m_DepthStoreAction = storeAction; m_OverriddenDepthStoreAction = true; } - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] internal void ConfigureInputAttachments(RTHandle input, bool isTransient = false) { m_InputAttachments[0] = input; m_InputAttachmentIsTransient[0] = isTransient; } - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] internal void ConfigureInputAttachments(RTHandle[] inputs) { m_InputAttachments = inputs; } - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] internal void ConfigureInputAttachments(RTHandle[] inputs, bool[] isTransient) { // Disable obsolete warning for internal usage - #pragma warning disable CS0618 +#pragma warning disable CS0618 ConfigureInputAttachments(inputs); - #pragma warning restore CS0618 +#pragma warning restore CS0618 m_InputAttachmentIsTransient = isTransient; } - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] internal void SetInputAttachmentTransient(int idx, bool isTransient) { m_InputAttachmentIsTransient[idx] = isTransient; } - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] internal bool IsInputAttachmentTransient(int idx) { return m_InputAttachmentIsTransient[idx]; @@ -496,7 +512,7 @@ internal bool IsInputAttachmentTransient(int idx) /// This method effectively reset changes done by ConfigureTarget. /// /// - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] public void ResetTarget() { overrideCameraTarget = false; @@ -519,7 +535,7 @@ public void ResetTarget() /// Color attachment identifier. /// Depth attachment identifier. /// - [Obsolete("Use RTHandles for colorAttachment and depthAttachment", true)] + [Obsolete("Use RTHandles for colorAttachment and depthAttachment. #from(2022.1) #breakingFrom(2023.1)", true)] public void ConfigureTarget(RenderTargetIdentifier colorAttachment, RenderTargetIdentifier depthAttachment) { throw new NotSupportedException("ConfigureTarget with RenderTargetIdentifier has been deprecated. Use RTHandles instead"); @@ -532,7 +548,7 @@ public void ConfigureTarget(RenderTargetIdentifier colorAttachment, RenderTarget /// Color attachment handle. /// Depth attachment handle. /// - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] public void ConfigureTarget(RTHandle colorAttachment, RTHandle depthAttachment) { overrideCameraTarget = true; @@ -552,7 +568,7 @@ public void ConfigureTarget(RTHandle colorAttachment, RTHandle depthAttachment) /// Color attachment identifier. /// Depth attachment identifier. /// - [Obsolete("Use RTHandles for colorAttachments and depthAttachment", true)] + [Obsolete("Use RTHandles for colorAttachments and depthAttachment. #from(2022.1) #breakingFrom(2023.1)", true)] public void ConfigureTarget(RenderTargetIdentifier[] colorAttachments, RenderTargetIdentifier depthAttachment) { throw new NotSupportedException("ConfigureTarget with RenderTargetIdentifier has been deprecated. Use it with RTHandles instead"); @@ -565,7 +581,7 @@ public void ConfigureTarget(RenderTargetIdentifier[] colorAttachments, RenderTar /// Color attachment handle. /// Depth attachment handle. /// - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] public void ConfigureTarget(RTHandle[] colorAttachments, RTHandle depthAttachment) { overrideCameraTarget = true; @@ -590,7 +606,7 @@ public void ConfigureTarget(RTHandle[] colorAttachments, RTHandle depthAttachmen m_DepthAttachment = depthAttachment; } - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] internal void ConfigureTarget(RTHandle[] colorAttachments, RTHandle depthAttachment, GraphicsFormat[] formats) { // Disable obsolete warning for internal usage @@ -608,7 +624,7 @@ internal void ConfigureTarget(RTHandle[] colorAttachments, RTHandle depthAttachm /// /// Color attachment identifier. /// - [Obsolete("Use RTHandle for colorAttachment", true)] + [Obsolete("Use RTHandle for colorAttachment. #from(2022.1) #breakingFrom(2023.1)", true)] public void ConfigureTarget(RenderTargetIdentifier colorAttachment) { throw new NotSupportedException("ConfigureTarget with RenderTargetIdentifier has been deprecated. Use it with RTHandles instead"); @@ -620,7 +636,7 @@ public void ConfigureTarget(RenderTargetIdentifier colorAttachment) /// /// Color attachment handle. /// - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] public void ConfigureTarget(RTHandle colorAttachment) { // Disable obsolete warning for internal usage @@ -635,25 +651,25 @@ public void ConfigureTarget(RTHandle colorAttachment) /// /// Color attachment identifiers. /// - [Obsolete("Use RTHandles for colorAttachments", true)] + [Obsolete("Use RTHandles for colorAttachments. #from(2022.1) #breakingFrom(2023.1)", true)] public void ConfigureTarget(RenderTargetIdentifier[] colorAttachments) { throw new NotSupportedException("ConfigureTarget with RenderTargetIdentifier has been deprecated. Use it with RTHandles instead"); } - + /// /// Configures render targets for this render pass. Call this instead of CommandBuffer.SetRenderTarget. /// This method should be called inside Configure. /// /// Color attachment handle. /// - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] public void ConfigureTarget(RTHandle[] colorAttachments) { // Disable obsolete warning for internal usage - #pragma warning disable CS0618 +#pragma warning disable CS0618 ConfigureTarget(colorAttachments, k_CameraTarget); - #pragma warning restore CS0618 +#pragma warning restore CS0618 } /// @@ -662,7 +678,7 @@ public void ConfigureTarget(RTHandle[] colorAttachments) /// ClearFlag containing information about what targets to clear. /// Clear color. /// - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] public void ConfigureClear(ClearFlag clearFlag, Color clearColor) { m_ClearFlag = clearFlag; @@ -679,7 +695,7 @@ public void ConfigureClear(ClearFlag clearFlag, Color clearColor) /// Current rendering state information /// /// - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] public virtual void OnCameraSetup(CommandBuffer cmd, ref RenderingData renderingData) { } @@ -693,10 +709,10 @@ public virtual void OnCameraSetup(CommandBuffer cmd, ref RenderingData rendering /// Render texture descriptor of the camera render target. /// /// - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] public virtual void Configure(CommandBuffer cmd, RenderTextureDescriptor cameraTextureDescriptor) { } - +#endif /// /// Called upon finish rendering a camera. You can use this callback to release any resources created @@ -708,7 +724,8 @@ public virtual void Configure(CommandBuffer cmd, RenderTextureDescriptor cameraT public virtual void OnCameraCleanup(CommandBuffer cmd) { } - + +#if URP_COMPATIBILITY_MODE /// /// Called upon finish rendering a camera stack. You can use this callback to release any resources created /// by this render pass that need to be cleanup once all cameras in the stack have finished rendering. @@ -717,7 +734,7 @@ public virtual void OnCameraCleanup(CommandBuffer cmd) /// In that case the Base camera is the first and last camera in the stack. /// /// Use this CommandBuffer to cleanup any generated data - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] public virtual void OnFinishCameraStackRendering(CommandBuffer cmd) { } @@ -726,18 +743,20 @@ public virtual void OnFinishCameraStackRendering(CommandBuffer cmd) /// /// Use this render context to issue any draw commands during execution /// Current rendering state information - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] public virtual void Execute(ScriptableRenderContext context, ref RenderingData renderingData) { Debug.LogWarning("Execute is not implemented, the pass " + this.ToString() + " won't be executed in the current render loop."); } +#endif /// public virtual void RecordRenderGraph(RenderGraph renderGraph, ContextContainer frameData) { Debug.LogWarning("The render pass " + this.ToString() + " does not have an implementation of the RecordRenderGraph method. Please implement this method, or consider turning on Compatibility Mode (RenderGraph disabled) in the menu Edit > Project Settings > Graphics > URP. Otherwise the render pass will have no effect. For more information, refer to https://docs.unity3d.com/Packages/com.unity.render-pipelines.universal@latest/index.html?subfolder=/manual/customizing-urp.html."); } - + +#if URP_COMPATIBILITY_MODE /// /// Add a blit command to the context for execution. This changes the active render target in the ScriptableRenderer to /// destination. @@ -748,7 +767,7 @@ public virtual void RecordRenderGraph(RenderGraph renderGraph, ContextContainer /// Material to use. /// Shader pass to use. Default is 0. /// - [Obsolete("Use RTHandles for source and destination", true)] + [Obsolete("Use RTHandles for source and destination. #from(2022.1) #breakingFrom(2023.1)", true)] public void Blit(CommandBuffer cmd, RenderTargetIdentifier source, RenderTargetIdentifier destination, Material material = null, int passIndex = 0) { throw new NotSupportedException("Blit with RenderTargetIdentifier has been deprecated. Use RTHandles instead"); @@ -764,7 +783,7 @@ public void Blit(CommandBuffer cmd, RenderTargetIdentifier source, RenderTargetI /// Material to use. /// Shader pass to use. Default is 0. /// - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] public void Blit(CommandBuffer cmd, RTHandle source, RTHandle destination, Material material = null, int passIndex = 0) { if (material == null) @@ -780,7 +799,7 @@ public void Blit(CommandBuffer cmd, RTHandle source, RTHandle destination, Mater /// RenderingData to access the active renderer. /// Material to use. /// Shader pass to use. Default is 0. - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] public void Blit(CommandBuffer cmd, ref RenderingData data, Material material, int passIndex = 0) { var renderer = data.cameraData.renderer; @@ -797,12 +816,13 @@ public void Blit(CommandBuffer cmd, ref RenderingData data, Material material, i /// Source texture or target identifier to blit from. /// Material to use. /// Shader pass to use. Default is 0. - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] public void Blit(CommandBuffer cmd, ref RenderingData data, RTHandle source, Material material, int passIndex = 0) { var renderer = data.cameraData.renderer; Blit(cmd, source, renderer.cameraColorTargetHandle, material, passIndex); } +#endif /// /// Creates DrawingSettings based on current the rendering state. diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Passes/TransparentSettingsPass.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Passes/TransparentSettingsPass.cs index a6c6e471e7b..29395d49535 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Passes/TransparentSettingsPass.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Passes/TransparentSettingsPass.cs @@ -26,7 +26,7 @@ public bool Setup() } #if URP_COMPATIBILITY_MODE - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) { RasterCommandBuffer rasterCommandBuffer = CommandBufferHelpers.GetRasterCommandBuffer(renderingData.commandBuffer); diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Passes/XRDepthMotionPass.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Passes/XRDepthMotionPass.cs index 06b643b128d..877b0fa4260 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Passes/XRDepthMotionPass.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Passes/XRDepthMotionPass.cs @@ -12,11 +12,13 @@ public class XRDepthMotionPass : ScriptableRenderPass { public const string k_MotionOnlyShaderTagIdName = "XRMotionVectors"; private static readonly ShaderTagId k_MotionOnlyShaderTagId = new ShaderTagId(k_MotionOnlyShaderTagIdName); + private static readonly int k_SpaceWarpNDCModifier = Shader.PropertyToID("_SpaceWarpNDCModifier"); private PassData m_PassData; private RTHandle m_XRMotionVectorColor; private TextureHandle xrMotionVectorColor; private RTHandle m_XRMotionVectorDepth; private TextureHandle xrMotionVectorDepth; + private bool m_XRSpaceWarpRightHandedNDC; /// /// Creates a new XRDepthMotionPass instance. @@ -157,6 +159,8 @@ private void ImportXRMotionColorAndDepth(RenderGraph renderGraph, UniversalCamer xrMotionVectorColor = renderGraph.ImportTexture(m_XRMotionVectorColor, importInfo, importMotionColorParams); xrMotionVectorDepth = renderGraph.ImportTexture(m_XRMotionVectorDepth, importInfoDepth, importMotionDepthParams); + + m_XRSpaceWarpRightHandedNDC = cameraData.xr.spaceWarpRightHandedNDC; } #region Recording @@ -209,6 +213,10 @@ internal void Render(RenderGraph renderGraph, ContextContainer frameData) context.cmd.SetGlobalMatrixArray(ShaderPropertyId.previousViewProjectionNoJitterStereo, data.previousViewProjectionStereo); context.cmd.SetGlobalMatrixArray(ShaderPropertyId.viewProjectionNoJitterStereo, data.viewProjectionStereo); + // SpaceWarp is only available on Vulkan, so these values are always true. This is to support 2 versions of spacewarp + // One expects OpenGL NDC space motion vectors, the other expects Vulkan NDC space + context.cmd.SetGlobalFloat(k_SpaceWarpNDCModifier, m_XRSpaceWarpRightHandedNDC ? -1.0f : 1.0f); + // Object Motion for both static and dynamic objects, fill stencil for mv filled pixels. context.cmd.DrawRendererList(passData.objMotionRendererList); diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Passes/XROcclusionMeshPass.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Passes/XROcclusionMeshPass.cs index 1dd473451d6..41fa05bfe19 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Passes/XROcclusionMeshPass.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Passes/XROcclusionMeshPass.cs @@ -8,15 +8,15 @@ namespace UnityEngine.Rendering.Universal /// /// Draw the XR occlusion mesh into the current depth buffer when XR is enabled. /// - public class XROcclusionMeshPass : ScriptableRenderPass + public partial class XROcclusionMeshPass : ScriptableRenderPass { +#if URP_COMPATIBILITY_MODE /// /// Used to indicate if the active target of the pass is the back buffer /// - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete + " #from(6000.3)")] public bool m_IsActiveTargetBackBuffer; // TODO: Remove this when we remove non-RG path -#if URP_COMPATIBILITY_MODE PassData m_PassData; #endif @@ -46,7 +46,7 @@ private static void ExecutePass(RasterCommandBuffer cmd, PassData data) #if URP_COMPATIBILITY_MODE /// - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) { m_PassData.xr = renderingData.cameraData.xr; diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/PostProcessPasses.cs b/Packages/com.unity.render-pipelines.universal/Runtime/PostProcessPasses.cs index 2d0ec5472bf..4ae52816c64 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/PostProcessPasses.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/PostProcessPasses.cs @@ -1,3 +1,4 @@ +#if URP_COMPATIBILITY_MODE using System; using UnityEngine.Experimental.Rendering; using UnityEngine.Rendering.Universal.Internal; @@ -93,14 +94,15 @@ public void Recreate(PostProcessData data, ref PostProcessParams ppParams) if (m_CurrentPostProcessData != null) { m_ColorGradingLutPass?.Cleanup(); - m_PostProcessPass?.Cleanup(); - m_FinalPostProcessPass?.Cleanup(); // We need to null post process passes to avoid using them m_ColorGradingLutPass = null; + m_CurrentPostProcessData = null; + + m_PostProcessPass?.Cleanup(); + m_FinalPostProcessPass?.Cleanup(); m_PostProcessPass = null; m_FinalPostProcessPass = null; - m_CurrentPostProcessData = null; } if (data != null) @@ -131,3 +133,4 @@ internal void ReleaseRenderTargets() } } } +#endif diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/PostProcessUtils.cs b/Packages/com.unity.render-pipelines.universal/Runtime/PostProcessUtils.cs index 1b994e9c0f0..56e5ed6efcd 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/PostProcessUtils.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/PostProcessUtils.cs @@ -15,7 +15,7 @@ public static class PostProcessUtils /// The camera using the dithering effect. /// The material used with the dithering effect. /// The new array index to the Blue noise textures. - [System.Obsolete("This method is obsolete. Use ConfigureDithering override that takes camera pixel width and height instead.")] + [System.Obsolete("This method is obsolete. Use ConfigureDithering override that takes camera pixel width and height instead. #from(2021.1)")] public static int ConfigureDithering(PostProcessData data, int index, Camera camera, Material material) { return ConfigureDithering(data, index, camera.pixelWidth, camera.pixelHeight, material); @@ -74,7 +74,7 @@ public static int ConfigureDithering(PostProcessData data, int index, int camera /// The Film Grain settings. /// The camera using the dithering effect. /// The material used with the dithering effect. - [System.Obsolete("This method is obsolete. Use ConfigureFilmGrain override that takes camera pixel width and height instead.")] + [System.Obsolete("This method is obsolete. Use ConfigureFilmGrain override that takes camera pixel width and height instead. #from(2021.1)")] public static void ConfigureFilmGrain(PostProcessData data, FilmGrain settings, Camera camera, Material material) { ConfigureFilmGrain(data, settings, camera.pixelWidth, camera.pixelHeight, material); diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/ReflectionProbeManager.cs b/Packages/com.unity.render-pipelines.universal/Runtime/ReflectionProbeManager.cs index bf10654ac94..30930e9313f 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/ReflectionProbeManager.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/ReflectionProbeManager.cs @@ -22,6 +22,7 @@ struct ReflectionProbeManager : IDisposable Vector4[] m_BoxMin; Vector4[] m_ProbePosition; Vector4[] m_MipScaleOffset; + Vector4[] m_Rotations; // There is a global max of 7 mips in Unity. const int k_MaxMipCount = 7; @@ -49,6 +50,7 @@ static class ShaderProperties public static readonly int MipScaleOffset = Shader.PropertyToID("urp_ReflProbes_MipScaleOffset"); public static readonly int Count = Shader.PropertyToID("urp_ReflProbes_Count"); public static readonly int Atlas = Shader.PropertyToID("urp_ReflProbes_Atlas"); + public static readonly int Rotation = Shader.PropertyToID("urp_ReflProbes_Rotation"); } public RenderTexture atlasRT => m_AtlasTexture0; @@ -102,6 +104,7 @@ void Init() m_BoxMin = new Vector4[maxProbes]; m_ProbePosition = new Vector4[maxProbes]; m_MipScaleOffset = new Vector4[maxProbes * 7]; + m_Rotations = new Vector4[maxProbes]; } public unsafe void UpdateGpuData(CommandBuffer cmd, ref CullingResults cullResults) @@ -271,6 +274,8 @@ public unsafe void UpdateGpuData(CommandBuffer cmd, ref CullingResults cullResul m_BoxMin[dataIndex] = new Vector4(probe.bounds.min.x, probe.bounds.min.y, probe.bounds.min.z, probe.importance); m_ProbePosition[dataIndex] = new Vector4(probe.localToWorldMatrix.m03, probe.localToWorldMatrix.m13, probe.localToWorldMatrix.m23, (probe.isBoxProjection ? 1 : -1) * (cachedProbe.mipCount)); for (var i = 0; i < cachedProbe.mipCount; i++) m_MipScaleOffset[dataIndex * k_MaxMipCount + i] = GetScaleOffset(cachedProbe.levels[i], cachedProbe.dataIndices[i], false, false); + var rot = Quaternion.Inverse(probe.reflectionProbe.transform.rotation); + m_Rotations[dataIndex] = new Vector4(rot.x, rot.y, rot.z, rot.w); } if (showFullWarning) @@ -301,6 +306,7 @@ public unsafe void UpdateGpuData(CommandBuffer cmd, ref CullingResults cullResul cmd.SetGlobalVectorArray(ShaderProperties.BoxMax, m_BoxMax); cmd.SetGlobalVectorArray(ShaderProperties.ProbePosition, m_ProbePosition); cmd.SetGlobalVectorArray(ShaderProperties.MipScaleOffset, m_MipScaleOffset); + cmd.SetGlobalVectorArray(ShaderProperties.Rotation, m_Rotations); cmd.SetGlobalFloat(ShaderProperties.Count, probeCount - skipCount); cmd.SetGlobalTexture(ShaderProperties.Atlas, m_AtlasTexture0); } diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/RenderGraph/RenderGraphGraphicsAutomatedTests.cs b/Packages/com.unity.render-pipelines.universal/Runtime/RenderGraph/RenderGraphGraphicsAutomatedTests.cs index b1ea13566ec..021b05f31ec 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/RenderGraph/RenderGraphGraphicsAutomatedTests.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/RenderGraph/RenderGraphGraphicsAutomatedTests.cs @@ -19,10 +19,14 @@ static bool activatedFromCommandLine #endif } + /// Obsolete, use forceRenderGraphState instead + [Obsolete] + public static bool enabled { get; set; } = activatedFromCommandLine; + /// /// Used by render pipelines to initialize RenderGraph tests. + /// True = RenderGraph, False = CompatibilityMode, null = no effect (keep as it is configured in the project settings). /// - public static bool enabled { get; set; } = activatedFromCommandLine; - + public static bool? forceRenderGraphState { get; set; } = activatedFromCommandLine ? true : null; } } diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/RenderPipelineResources/Renderer2DResources.cs b/Packages/com.unity.render-pipelines.universal/Runtime/RenderPipelineResources/Renderer2DResources.cs index b5e369441a0..0affe578a3b 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/RenderPipelineResources/Renderer2DResources.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/RenderPipelineResources/Renderer2DResources.cs @@ -65,6 +65,7 @@ internal Shader geometryUnshadowShader set => this.SetValueAndNotify(ref m_GeometryUnshadowShader, value, nameof(m_GeometryUnshadowShader)); } +#if URP_COMPATIBILITY_MODE [SerializeField, ResourcePath("Runtime/2D/Data/Textures/FalloffLookupTexture.png")] [HideInInspector] private Texture2D m_FallOffLookup; @@ -74,6 +75,7 @@ internal Texture2D fallOffLookup get => m_FallOffLookup; set => this.SetValueAndNotify(ref m_FallOffLookup, value, nameof(m_FallOffLookup)); } +#endif [SerializeField,ResourcePath("Shaders/Utils/CopyDepth.shader")] private Shader m_CopyDepthPS; diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/RenderTargetHandle.cs b/Packages/com.unity.render-pipelines.universal/Runtime/RenderTargetHandle.cs index 71019d1a200..9b64cde1d6d 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/RenderTargetHandle.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/RenderTargetHandle.cs @@ -8,7 +8,7 @@ namespace UnityEngine.Rendering.Universal /// Deprecated in favor of RTHandle. /// // RenderTargetHandle can be thought of as a kind of ShaderProperty string hash - [Obsolete("Deprecated in favor of RTHandle", true)] + [Obsolete("Deprecated in favor of RTHandle. #from(2022.1) #breakingFrom(2023.1)", true)] public struct RenderTargetHandle { /// diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/RendererFeatures/DecalRendererFeature.cs b/Packages/com.unity.render-pipelines.universal/Runtime/RendererFeatures/DecalRendererFeature.cs index eca8052782d..086264ff518 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/RendererFeatures/DecalRendererFeature.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/RendererFeatures/DecalRendererFeature.cs @@ -177,7 +177,7 @@ private void OnDecalMaterialChange(DecalProjector decalProjector) [DisallowMultipleRendererFeature("Decal")] [Tooltip("With this Renderer Feature, Unity can project specific Materials (decals) onto other objects in the Scene.")] [URPHelpURL("renderer-feature-decal")] - public class DecalRendererFeature : ScriptableRendererFeature + public partial class DecalRendererFeature : ScriptableRendererFeature { private static SharedDecalEntityManager sharedDecalEntityManager { get; } = new SharedDecalEntityManager(); @@ -535,14 +535,14 @@ public override void AddRenderPasses(ScriptableRenderer renderer, ref RenderingD } } +#if URP_COMPATIBILITY_MODE internal override bool SupportsNativeRenderPass() { return m_Technique == DecalTechnique.GBuffer || m_Technique == DecalTechnique.ScreenSpace; } -#if URP_COMPATIBILITY_MODE /// - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete + " #from(6000.2)")] public override void SetupRenderPasses(ScriptableRenderer renderer, in RenderingData renderingData) { // Disable obsolete warning for internal usage diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/RendererFeatures/FullScreenPassRendererFeature.cs b/Packages/com.unity.render-pipelines.universal/Runtime/RendererFeatures/FullScreenPassRendererFeature.cs index e364c4b94ec..be0bd220a97 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/RendererFeatures/FullScreenPassRendererFeature.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/RendererFeatures/FullScreenPassRendererFeature.cs @@ -1,6 +1,8 @@ using System; using UnityEngine.Rendering.RenderGraphModule; using UnityEngine.Experimental.Rendering; +using UnityEngine.Rendering.RenderGraphModule.Util; +using static UnityEngine.Rendering.RenderGraphModule.Util.RenderGraphUtils; namespace UnityEngine.Rendering.Universal { @@ -144,15 +146,15 @@ public void SetupMembers(Material material, int passIndex, bool fetchActiveColor } #if URP_COMPATIBILITY_MODE - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] public override void OnCameraSetup(CommandBuffer cmd, ref RenderingData renderingData) { // Disable obsolete warning for internal usage - #pragma warning disable CS0618 +#pragma warning disable CS0618 // FullScreenPass manages its own RenderTarget. // ResetTarget here so that ScriptableRenderer's active attachement can be invalidated when processing this ScriptableRenderPass. ResetTarget(); - #pragma warning restore CS0618 +#pragma warning restore CS0618 if (m_FetchActiveColor) ReAllocate(renderingData.cameraData.cameraTargetDescriptor); @@ -193,7 +195,7 @@ private static void ExecuteMainPass(RasterCommandBuffer cmd, RTHandle sourceText } #if URP_COMPATIBILITY_MODE - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) { ref var cameraData = ref renderingData.cameraData; @@ -236,18 +238,7 @@ public override void RecordRenderGraph(RenderGraph renderGraph, ContextContainer source = resourcesData.activeColorTexture; destination = renderGraph.CreateTexture(targetDesc); - using (var builder = renderGraph.AddRasterRenderPass("Copy Color Full Screen", out var passData, profilingSampler)) - { - passData.inputTexture = source; - builder.UseTexture(passData.inputTexture, AccessFlags.Read); - - builder.SetRenderAttachment(destination, 0, AccessFlags.Write); - - builder.SetRenderFunc((CopyPassData data, RasterGraphContext rgContext) => - { - ExecuteCopyColorPass(rgContext.cmd, data.inputTexture); - }); - } + renderGraph.AddBlitPass(source, destination, Vector2.one, Vector2.zero, passName: "Copy Color Full Screen"); //Swap for next pass; source = destination; @@ -259,7 +250,23 @@ public override void RecordRenderGraph(RenderGraph renderGraph, ContextContainer destination = resourcesData.activeColorTexture; + // The AddBlitPass utility is not used when m_BindDepthStencilAttachment is active since SetRenderAttachmentDepth is not available with the returned builder of AddBlitPass. + bool useCustomPass = input != ScriptableRenderPassInput.None || m_BindDepthStencilAttachment; + + if (useCustomPass) + { + AddFullscreenRenderPassInputPass(renderGraph, resourcesData, cameraData, source, destination); + } + else + { + var blitMaterialParameters = new BlitMaterialParameters(source, destination, m_Material, m_PassIndex); + + renderGraph.AddBlitPass(blitMaterialParameters, passName: "Blit Color Full Screen"); + } + } + private void AddFullscreenRenderPassInputPass(RenderGraph renderGraph, UniversalResourceData resourcesData, UniversalCameraData cameraData, TextureHandle source, TextureHandle destination) + { using (var builder = renderGraph.AddRasterRenderPass(passName, out var passData, profilingSampler)) { passData.material = m_Material; @@ -267,7 +274,7 @@ public override void RecordRenderGraph(RenderGraph renderGraph, ContextContainer passData.inputTexture = source; - if(passData.inputTexture.IsValid()) + if (passData.inputTexture.IsValid()) builder.UseTexture(passData.inputTexture, AccessFlags.Read); bool needsColor = (input & ScriptableRenderPassInput.Color) != ScriptableRenderPassInput.None; @@ -318,6 +325,22 @@ public override void RecordRenderGraph(RenderGraph renderGraph, ContextContainer } } + private void AddCopyPassRenderPassFullscreen(RenderGraph renderGraph, TextureHandle source, TextureHandle destination) + { + using (var builder = renderGraph.AddRasterRenderPass("Copy Color Full Screen", out var passData, profilingSampler)) + { + passData.inputTexture = source; + builder.UseTexture(passData.inputTexture, AccessFlags.Read); + + builder.SetRenderAttachment(destination, 0, AccessFlags.Write); + + builder.SetRenderFunc((CopyPassData data, RasterGraphContext rgContext) => + { + ExecuteCopyColorPass(rgContext.cmd, data.inputTexture); + }); + } + } + private class CopyPassData { internal TextureHandle inputTexture; diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/RendererFeatures/FullScreenPassRendererFeature_OldGUID.cs b/Packages/com.unity.render-pipelines.universal/Runtime/RendererFeatures/FullScreenPassRendererFeature_OldGUID.cs index 52759072bba..755f3e03f82 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/RendererFeatures/FullScreenPassRendererFeature_OldGUID.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/RendererFeatures/FullScreenPassRendererFeature_OldGUID.cs @@ -8,7 +8,7 @@ using UnityEngine; -[System.Obsolete("Kept for migration purpose only. Do not use (see script for more info) #from(6000.0) (UnityUpgradable) -> FullScreenPassRendererFeature", true)] +[System.Obsolete("Kept for migration purpose only. Do not use (see script for more info) #from(6000.0) #breakingFrom(6000.0) (UnityUpgradable) -> FullScreenPassRendererFeature", true)] class FullScreenPassRendererFeature_OldGUID : UnityEngine.Rendering.Universal.FullScreenPassRendererFeature, ISerializationCallbackReceiver { void ISerializationCallbackReceiver.OnAfterDeserialize() diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/RendererFeatures/RenderObjects.cs b/Packages/com.unity.render-pipelines.universal/Runtime/RendererFeatures/RenderObjects.cs index 44a571d70b0..70ad2ac5cde 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/RendererFeatures/RenderObjects.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/RendererFeatures/RenderObjects.cs @@ -240,9 +240,11 @@ public override void AddRenderPasses(ScriptableRenderer renderer, ref RenderingD renderer.EnqueuePass(renderObjectsPass); } +#if URP_COMPATIBILITY_MODE internal override bool SupportsNativeRenderPass() { return true; } +#endif } } diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/RendererFeatures/ScreenSpaceShadows.cs b/Packages/com.unity.render-pipelines.universal/Runtime/RendererFeatures/ScreenSpaceShadows.cs index 685469e81df..7e68a874ab4 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/RendererFeatures/ScreenSpaceShadows.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/RendererFeatures/ScreenSpaceShadows.cs @@ -149,7 +149,7 @@ internal bool Setup(ScreenSpaceShadowsSettings featureSettings, Material materia #if URP_COMPATIBILITY_MODE /// - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] public override void OnCameraSetup(CommandBuffer cmd, ref RenderingData renderingData) { var desc = renderingData.cameraData.cameraTargetDescriptor; @@ -249,7 +249,7 @@ private static void ExecutePass(UnsafeCommandBuffer cmd, PassData data, RTHandle #if URP_COMPATIBILITY_MODE /// - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) { if (m_Material == null) @@ -280,7 +280,7 @@ internal ScreenSpaceShadowsPostPass() } #if URP_COMPATIBILITY_MODE - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] public override void Configure(CommandBuffer cmd, RenderTextureDescriptor cameraTextureDescriptor) { // Disable obsolete warning for internal usage @@ -306,7 +306,7 @@ private static void ExecutePass(RasterCommandBuffer cmd, UniversalShadowData sha } #if URP_COMPATIBILITY_MODE - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) { var cmd = renderingData.commandBuffer; diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/RenderingUtils.cs b/Packages/com.unity.render-pipelines.universal/Runtime/RenderingUtils.cs index c99a492a19d..5f2740bd42c 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/RenderingUtils.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/RenderingUtils.cs @@ -38,7 +38,7 @@ internal static AttachmentDescriptor emptyAttachment /// /// Returns a mesh that you can use with to render full-screen effects. /// - [Obsolete("Use Blitter.BlitCameraTexture instead of CommandBuffer.DrawMesh(fullscreenMesh, ...)")] // TODO OBSOLETE: need to fix the URP test failures when bumping + [Obsolete("Use Blitter.BlitCameraTexture instead of CommandBuffer.DrawMesh(fullscreenMesh, ...). #from(2022.2)")] // TODO OBSOLETE: need to fix the URP test failures when bumping public static Mesh fullscreenMesh { get @@ -167,6 +167,7 @@ internal static void SetScaleBiasRt(RasterCommandBuffer cmd, in UniversalCameraD cmd.SetGlobalVector(Shader.PropertyToID("_ScaleBiasRt"), scaleBiasRt); } +#if URP_COMPATIBILITY_MODE internal static void SetScaleBiasRt(RasterCommandBuffer cmd, in RenderingData renderingData) { var renderer = renderingData.cameraData.renderer; @@ -188,6 +189,7 @@ internal static void SetScaleBiasRt(RasterCommandBuffer cmd, in RenderingData re cmd.SetGlobalVector(Shader.PropertyToID("_ScaleBiasRt"), scaleBiasRt); } +#endif internal static void Blit(CommandBuffer cmd, RTHandle source, @@ -434,7 +436,7 @@ public static bool SupportsRenderTextureFormat(RenderTextureFormat format) /// The format to look up. /// The format usage to look up. /// Returns true if the graphics card supports the given GraphicsFormat - [Obsolete("Use SystemInfo.IsFormatSupported instead.", false)] + [Obsolete("Use SystemInfo.IsFormatSupported instead. #from(2023.2)")] public static bool SupportsGraphicsFormat(GraphicsFormat format, FormatUsage usage) { GraphicsFormatUsage graphicsFormatUsage = (GraphicsFormatUsage)(1 << (int)usage); diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/ScriptableRenderer.cs b/Packages/com.unity.render-pipelines.universal/Runtime/ScriptableRenderer.cs index 73bc7aecaf0..128544bcca9 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/ScriptableRenderer.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/ScriptableRenderer.cs @@ -44,21 +44,23 @@ private static partial class Profiling public static readonly ProfilingSampler setPerCameraShaderVariables = new ProfilingSampler($"{k_Name}.{nameof(SetPerCameraShaderVariables)}"); public static readonly ProfilingSampler sortRenderPasses = new ProfilingSampler($"Sort Render Passes"); public static readonly ProfilingSampler recordRenderGraph = new ProfilingSampler($"On Record Render Graph"); - public static readonly ProfilingSampler setupLights = new ProfilingSampler($"{k_Name}.{nameof(SetupLights)}"); public static readonly ProfilingSampler setupCamera = new ProfilingSampler($"Setup Camera Properties"); public static readonly ProfilingSampler vfxProcessCamera = new ProfilingSampler($"VFX Process Camera"); public static readonly ProfilingSampler addRenderPasses = new ProfilingSampler($"{k_Name}.{nameof(AddRenderPasses)}"); - public static readonly ProfilingSampler setupRenderPasses = new ProfilingSampler($"{k_Name}.{nameof(SetupRenderPasses)}"); public static readonly ProfilingSampler clearRenderingState = new ProfilingSampler($"{k_Name}.{nameof(ClearRenderingState)}"); - public static readonly ProfilingSampler internalStartRendering = new ProfilingSampler($"{k_Name}.{nameof(InternalStartRendering)}"); public static readonly ProfilingSampler internalFinishRenderingCommon = new ProfilingSampler($"{k_Name}.{nameof(InternalFinishRenderingCommon)}"); - public static readonly ProfilingSampler drawGizmos = new ProfilingSampler($"{nameof(DrawGizmos)}"); - public static readonly ProfilingSampler drawWireOverlay = new ProfilingSampler($"{nameof(DrawWireOverlay)}"); + public static readonly ProfilingSampler drawGizmos = new ProfilingSampler("DrawGizmos"); //Todo: update to nameof(method reference) once RG version name is cleaned up + public static readonly ProfilingSampler drawWireOverlay = new ProfilingSampler("DrawWireOverlay"); //Todo: update to nameof(method reference) once RG version name is cleaned up internal static readonly ProfilingSampler beginXRRendering = new ProfilingSampler($"Begin XR Rendering"); internal static readonly ProfilingSampler endXRRendering = new ProfilingSampler($"End XR Rendering"); internal static readonly ProfilingSampler initRenderGraphFrame = new ProfilingSampler($"Initialize Frame"); internal static readonly ProfilingSampler setEditorTarget = new ProfilingSampler($"Set Editor Target"); +#if URP_COMPATIBILITY_MODE + public static readonly ProfilingSampler setupLights = new ProfilingSampler($"{k_Name}.{nameof(SetupLights)}"); + public static readonly ProfilingSampler setupRenderPasses = new ProfilingSampler($"{k_Name}.{nameof(SetupRenderPasses)}"); + public static readonly ProfilingSampler internalStartRendering = new ProfilingSampler($"{k_Name}.{nameof(InternalStartRendering)}"); + public static class RenderBlock { private const string k_Name = nameof(RenderPassBlock); @@ -79,6 +81,7 @@ public static class RenderPass public static readonly ProfilingSampler setRenderPassAttachments = new ProfilingSampler($"{k_Name}.{nameof(ScriptableRenderer.SetRenderPassAttachments)}"); } +#endif } /// @@ -143,10 +146,12 @@ protected internal virtual bool SupportsCameraNormals() return false; } +#if URP_COMPATIBILITY_MODE /// /// Override to provide a custom profiling name /// protected ProfilingSampler profilingExecute { get; set; } +#endif /// /// Used to determine whether to release render targets used by the renderer when the renderer is no more active. @@ -165,7 +170,7 @@ public class RenderingFeatures /// /// /// - [Obsolete("cameraStacking has been deprecated use SupportedCameraRenderTypes() in ScriptableRenderer instead.", true)] + [Obsolete("cameraStacking has been deprecated use SupportedCameraRenderTypes() in ScriptableRenderer instead. #from(2022.2) #breakingFrom(2023.1)", true)] public bool cameraStacking { get; set; } = false; /// @@ -186,6 +191,7 @@ public class RenderingFeatures /// internal static ScriptableRenderer current = null; +#if URP_COMPATIBILITY_MODE /// /// Set camera matrices. This method will set UNITY_MATRIX_V, UNITY_MATRIX_P, UNITY_MATRIX_VP to the camera matrices. /// Additionally this will also set unity_CameraProjection and unity_CameraProjection. @@ -221,6 +227,7 @@ public static void SetCameraMatrices(CommandBuffer cmd, UniversalCameraData came SetCameraMatrices(CommandBufferHelpers.GetRasterCommandBuffer(cmd), cameraData, setInverseMatrices, cameraData.IsCameraProjectionMatrixFlipped()); #pragma warning restore CS0618 } +#endif internal static void SetCameraMatrices(RasterCommandBuffer cmd, UniversalCameraData cameraData, bool setInverseMatrices, bool isTargetFlipped) { @@ -267,6 +274,7 @@ internal static void SetCameraMatrices(RasterCommandBuffer cmd, UniversalCameraD // TODO: Add SetPerCameraClippingPlaneProperties here once we are sure it correctly behaves in overlay camera for some time } +#if URP_COMPATIBILITY_MODE /// /// Set camera and screen shader variables as described in https://docs.unity3d.com/Manual/SL-UnityShaderVariables.html /// @@ -280,6 +288,7 @@ void SetPerCameraShaderVariables(RasterCommandBuffer cmd, UniversalCameraData ca SetPerCameraShaderVariables(cmd, cameraData, new Vector2Int(cameraData.cameraTargetDescriptor.width, cameraData.cameraTargetDescriptor.height), cameraData.IsCameraProjectionMatrixFlipped()); #pragma warning restore CS0618 } +#endif void SetPerCameraShaderVariables(RasterCommandBuffer cmd, UniversalCameraData cameraData, Vector2Int cameraTargetSizeCopy, bool isTargetFlipped) { @@ -322,8 +331,8 @@ void SetPerCameraShaderVariables(RasterCommandBuffer cmd, UniversalCameraData ca else #endif { - scaledCameraTargetWidth *= ScalableBufferManager.widthScaleFactor; - scaledCameraTargetHeight *= ScalableBufferManager.heightScaleFactor; + scaledCameraTargetWidth *= ScalableBufferManager.widthScaleFactor; + scaledCameraTargetHeight *= ScalableBufferManager.heightScaleFactor; } } @@ -450,6 +459,7 @@ private static void CalculateBillboardProperties( cameraXZAngle += 2 * Mathf.PI; } +#if URP_COMPATIBILITY_MODE private void SetPerCameraClippingPlaneProperties(RasterCommandBuffer cmd, UniversalCameraData cameraData) { // Disable obsolete warning for internal usage @@ -457,6 +467,7 @@ private void SetPerCameraClippingPlaneProperties(RasterCommandBuffer cmd, Univer SetPerCameraClippingPlaneProperties(cmd, in cameraData, cameraData.IsCameraProjectionMatrixFlipped()); #pragma warning restore CS0618 } +#endif private void SetPerCameraClippingPlaneProperties(RasterCommandBuffer cmd, in UniversalCameraData cameraData, bool isTargetFlipped) { @@ -510,15 +521,16 @@ static void SetShaderTimeValues(IBaseCommandBuffer cmd, float time, float deltaT /// It's only valid to call cameraColorTarget in the scope of ScriptableRenderPass. /// . /// - [Obsolete("Use cameraColorTargetHandle", true)] + [Obsolete("Use cameraColorTargetHandle. #from(2022.1) #breakingFrom(2023.2)", true)] public RenderTargetIdentifier cameraColorTarget => throw new NotSupportedException("cameraColorTarget has been deprecated. Use cameraColorTargetHandle instead"); +#if URP_COMPATIBILITY_MODE /// /// Returns the camera color target for this renderer. /// It's only valid to call cameraColorTargetHandle in the scope of ScriptableRenderPass. /// . /// - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] public RTHandle cameraColorTargetHandle { get @@ -540,7 +552,7 @@ public RTHandle cameraColorTargetHandle /// /// /// - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] virtual internal RTHandle GetCameraColorFrontBuffer(CommandBuffer cmd) { return null; @@ -553,7 +565,7 @@ virtual internal RTHandle GetCameraColorFrontBuffer(CommandBuffer cmd) /// /// /// - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] virtual internal RTHandle GetCameraColorBackBuffer(CommandBuffer cmd) { return null; @@ -564,7 +576,7 @@ virtual internal RTHandle GetCameraColorBackBuffer(CommandBuffer cmd) /// It's only valid to call cameraDepthTarget in the scope of ScriptableRenderPass. /// . /// - [Obsolete("Use cameraDepthTargetHandle", true)] + [Obsolete("Use cameraDepthTargetHandle. #from(2022.1) #breakingFrom(2023.1)", true)] public RenderTargetIdentifier cameraDepthTarget => throw new NotSupportedException("cameraDepthTarget has been deprecated. Use cameraDepthTargetHandle instead"); /// @@ -572,7 +584,7 @@ virtual internal RTHandle GetCameraColorBackBuffer(CommandBuffer cmd) /// It's only valid to call cameraDepthTargetHandle in the scope of ScriptableRenderPass. /// . /// - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] public RTHandle cameraDepthTargetHandle { get @@ -586,6 +598,7 @@ public RTHandle cameraDepthTargetHandle return m_CameraDepthTarget; } } +#endif /// /// Returns a list of renderer features added to this renderer. @@ -659,9 +672,11 @@ static class RenderPassBlock // Trying to access the camera target before or after might be that the pipeline texture have already been disposed. bool m_IsPipelineExecuting = false; +#if URP_COMPATIBILITY_MODE // Temporary variable to disable custom passes using render pass ( due to it potentially breaking projects with custom render features ) // To enable it - override SupportsNativeRenderPass method in the feature and return true internal bool disableNativeRenderPassInFeatures = false; +#endif internal bool useRenderPassEnabled = false; // Used to cache nameID of m_ActiveColorAttachments for CoreUtils without allocating arrays at each call @@ -733,7 +748,9 @@ public ScriptableRenderer(ScriptableRendererData data) #if DEVELOPMENT_BUILD || UNITY_EDITOR DebugHandler = new DebugHandler(); #endif +#if URP_COMPATIBILITY_MODE profilingExecute = new ProfilingSampler($"{nameof(ScriptableRenderer)}.{nameof(ScriptableRenderer.Execute)}: {data.name}"); +#endif foreach (var feature in data.rendererFeatures) { @@ -744,7 +761,9 @@ public ScriptableRenderer(ScriptableRendererData data) m_RendererFeatures.Add(feature); } +#if URP_COMPATIBILITY_MODE ResetNativeRenderPassFrameData(); +#endif useRenderPassEnabled = data.useNativeRenderPass; Clear(CameraRenderType.Base); m_ActiveRenderPassQueue.Clear(); @@ -800,13 +819,14 @@ protected virtual void Dispose(bool disposing) internal virtual void ReleaseRenderTargets() { } - + +#if URP_COMPATIBILITY_MODE /// /// Configures the camera target. /// /// Camera color target. Pass BuiltinRenderTextureType.CameraTarget if rendering to backbuffer. /// Camera depth target. Pass BuiltinRenderTextureType.CameraTarget if color has depth or rendering to backbuffer. - [Obsolete("Use RTHandles for colorTarget and depthTarget", true)] + [Obsolete("Use RTHandles for colorTarget and depthTarget. #from(2022.1) #breakingFrom(2023.1)", true)] public void ConfigureCameraTarget(RenderTargetIdentifier colorTarget, RenderTargetIdentifier depthTarget) { throw new NotSupportedException("ConfigureCameraTarget with RenderTargetIdentifier has been deprecated. Use it with RTHandles instead"); @@ -817,14 +837,14 @@ public void ConfigureCameraTarget(RenderTargetIdentifier colorTarget, RenderTarg /// /// Camera color target. Pass k_CameraTarget if rendering to backbuffer. /// Camera depth target. Pass k_CameraTarget if color has depth or rendering to backbuffer. - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] public void ConfigureCameraTarget(RTHandle colorTarget, RTHandle depthTarget) { m_CameraColorTarget = colorTarget; m_CameraDepthTarget = depthTarget; } - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] internal void ConfigureCameraTarget(RTHandle colorTarget, RTHandle depthTarget, RTHandle resolveTarget) { m_CameraColorTarget = colorTarget; @@ -833,7 +853,7 @@ internal void ConfigureCameraTarget(RTHandle colorTarget, RTHandle depthTarget, } // This should be removed when early camera color target assignment is removed. - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] internal void ConfigureCameraColorTarget(RTHandle colorTarget) { m_CameraColorTarget = colorTarget; @@ -847,7 +867,7 @@ internal void ConfigureCameraColorTarget(RTHandle colorTarget) /// Current render state information. /// /// - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] public virtual void Setup(ScriptableRenderContext context, ref RenderingData renderingData) { } /// @@ -856,10 +876,11 @@ public virtual void Setup(ScriptableRenderContext context, ref RenderingData ren /// /// Use this render context to issue any draw commands during execution. /// Current render state information. - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] public virtual void SetupLights(ScriptableRenderContext context, ref RenderingData renderingData) { } +#endif /// /// Override this method to configure the culling parameters for the renderer. You can use this to configure if @@ -1315,6 +1336,7 @@ internal void RecordCustomRenderGraphPasses(RenderGraph renderGraph, RenderPassE RecordCustomRenderGraphPasses(renderGraph, injectionPoint, injectionPoint); } +#if URP_COMPATIBILITY_MODE internal void SetPerCameraProperties(ScriptableRenderContext context, UniversalCameraData cameraData, Camera camera, CommandBuffer cmd) { @@ -1337,7 +1359,7 @@ internal void SetPerCameraProperties(ScriptableRenderContext context, UniversalC /// /// Use this render context to issue any draw commands during execution. /// Current render state information. - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] public void Execute(ScriptableRenderContext context, ref RenderingData renderingData) { // Disable Gizmos when using scene overrides. Gizmos break some effects like Overdraw debug. @@ -1522,6 +1544,7 @@ public void Execute(ScriptableRenderContext context, ref RenderingData rendering context.ExecuteCommandBuffer(cmd); cmd.Clear(); } +#endif /// /// Enqueues a render pass for execution. @@ -1530,8 +1553,11 @@ public void Execute(ScriptableRenderContext context, ref RenderingData rendering public void EnqueuePass(ScriptableRenderPass pass) { m_ActiveRenderPassQueue.Add(pass); + +#if URP_COMPATIBILITY_MODE if (disableNativeRenderPassInFeatures) pass.useNativeRenderPass = false; +#endif } /// @@ -1639,11 +1665,15 @@ internal void AddRenderPasses(ref RenderingData renderingData) continue; } +#if URP_COMPATIBILITY_MODE if (!rendererFeatures[i].SupportsNativeRenderPass()) disableNativeRenderPassInFeatures = true; +#endif rendererFeatures[i].AddRenderPasses(this, ref renderingData); +#if URP_COMPATIBILITY_MODE disableNativeRenderPassInFeatures = false; +#endif } // Remove any null render pass that might have been added by user by mistake @@ -1659,12 +1689,13 @@ internal void AddRenderPasses(ref RenderingData renderingData) m_UseOptimizedStoreActions = false; } +#if URP_COMPATIBILITY_MODE /// /// Calls Setup for each feature added to this renderer. /// /// /// - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] protected void SetupRenderPasses(in RenderingData renderingData) { using var profScope = new ProfilingScope(Profiling.setupRenderPasses); @@ -1678,7 +1709,7 @@ protected void SetupRenderPasses(in RenderingData renderingData) rendererFeatures[i].SetupRenderPasses(this, in renderingData); } } - +#endif static void ClearRenderingState(IBaseCommandBuffer cmd) { using var profScope = new ProfilingScope(Profiling.clearRenderingState); @@ -1723,7 +1754,8 @@ internal void Clear(CameraRenderType cameraType) m_CameraDepthTarget = null; } - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] +#if URP_COMPATIBILITY_MODE + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] void ExecuteBlock(int blockIndex, in RenderBlocks renderBlocks, ScriptableRenderContext context, ref RenderingData renderingData, bool submit = false) { @@ -1739,13 +1771,13 @@ void ExecuteBlock(int blockIndex, in RenderBlocks renderBlocks, context.Submit(); } - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] private bool IsRenderPassEnabled(ScriptableRenderPass renderPass) { return renderPass.useNativeRenderPass && useRenderPassEnabled; } - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] void ExecuteRenderPass(ScriptableRenderContext context, ScriptableRenderPass renderPass, UniversalCameraData cameraData, ref RenderingData renderingData) { // TODO: Separate command buffers per pass break the profiling scope order/hierarchy. @@ -1797,6 +1829,7 @@ void ExecuteRenderPass(ScriptableRenderContext context, ScriptableRenderPass ren cmd.Clear(); } } +#endif // Scene filtering is enabled when in prefab editing mode internal bool IsSceneFilteringEnabled(Camera camera) @@ -1808,7 +1841,8 @@ internal bool IsSceneFilteringEnabled(Camera camera) return false; } - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] +#if URP_COMPATIBILITY_MODE + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] void SetRenderPassAttachments(CommandBuffer cmd, ScriptableRenderPass renderPass, UniversalCameraData cameraData) { Camera camera = cameraData.camera; @@ -2085,7 +2119,7 @@ void SetRenderPassAttachments(CommandBuffer cmd, ScriptableRenderPass renderPass #endif } - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] void BeginXRRendering(CommandBuffer cmd, ScriptableRenderContext context, ref CameraData cameraData) { #if ENABLE_VR && ENABLE_XR_MODULE @@ -2110,7 +2144,7 @@ void BeginXRRendering(CommandBuffer cmd, ScriptableRenderContext context, ref Ca #endif } - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] void EndXRRendering(CommandBuffer cmd, ScriptableRenderContext context, ref CameraData cameraData) { #if ENABLE_VR && ENABLE_XR_MODULE @@ -2133,7 +2167,7 @@ void EndXRRendering(CommandBuffer cmd, ScriptableRenderContext context, ref Came #endif } - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] internal static void SetRenderTarget(CommandBuffer cmd, RTHandle colorAttachment, RTHandle depthAttachment, ClearFlag clearFlag, Color clearColor) { m_ActiveColorAttachments[0] = colorAttachment; @@ -2163,7 +2197,7 @@ internal static void SetRenderTarget(CommandBuffer cmd, RTHandle colorAttachment depthAttachment, depthLoadAction, RenderBufferStoreAction.Store, clearFlag, clearColor); } - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] internal static void SetRenderTarget(CommandBuffer cmd, RTHandle colorAttachment, RTHandle depthAttachment, ClearFlag clearFlag, Color clearColor, RenderBufferStoreAction colorStoreAction, RenderBufferStoreAction depthStoreAction) { m_ActiveColorAttachments[0] = colorAttachment; @@ -2199,7 +2233,7 @@ internal static void SetRenderTarget(CommandBuffer cmd, RTHandle colorAttachment depthAttachment, depthLoadAction, depthStoreAction, clearFlag, clearColor); } - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] static void SetRenderTarget(CommandBuffer cmd, RTHandle colorAttachment, RenderBufferLoadAction colorLoadAction, @@ -2219,7 +2253,7 @@ static void SetRenderTarget(CommandBuffer cmd, depthAttachment, depthLoadAction, depthStoreAction, clearFlags, clearColor); } - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] static void SetRenderTarget(CommandBuffer cmd, RTHandle[] colorAttachments, RenderTargetIdentifier[] colorAttachmentIDs, RTHandle depthAttachment, ClearFlag clearFlag, Color clearColor) { m_ActiveColorAttachments = colorAttachments; @@ -2228,10 +2262,12 @@ static void SetRenderTarget(CommandBuffer cmd, RTHandle[] colorAttachments, Rend CoreUtils.SetRenderTarget(cmd, m_ActiveColorAttachmentIDs, depthAttachment, clearFlag, clearColor); } +#endif internal virtual void SwapColorBuffer(CommandBuffer cmd) { } internal virtual void EnableSwapBufferMSAA(bool enable) { } +#if URP_COMPATIBILITY_MODE [Conditional("UNITY_EDITOR")] void DrawGizmos(ScriptableRenderContext context, Camera camera, GizmoSubset gizmoSubset, ref RenderingData renderingData) { @@ -2275,6 +2311,7 @@ void InternalStartRendering(ScriptableRenderContext context, ref RenderingData r context.ExecuteCommandBuffer(renderingData.commandBuffer); renderingData.commandBuffer.Clear(); } +#endif // Common ScriptableRenderer.Execute and RenderGraph path void InternalFinishRenderingCommon(CommandBuffer cmd, bool resolveFinalTarget) @@ -2287,13 +2324,15 @@ void InternalFinishRenderingCommon(CommandBuffer cmd, bool resolveFinalTarget) // Happens when rendering the last camera in the camera stack. if (resolveFinalTarget) { +#if URP_COMPATIBILITY_MODE for (int i = 0; i < m_ActiveRenderPassQueue.Count; ++i) { // Disable obsolete warning for internal usage - #pragma warning disable CS0618 +#pragma warning disable CS0618 m_ActiveRenderPassQueue[i].OnFinishCameraStackRendering(cmd); - #pragma warning restore CS0618 +#pragma warning restore CS0618 } +#endif FinishRendering(cmd); @@ -2304,6 +2343,7 @@ void InternalFinishRenderingCommon(CommandBuffer cmd, bool resolveFinalTarget) } } +#if URP_COMPATIBILITY_MODE // ScriptableRenderer.Execute path void InternalFinishRenderingExecute(ScriptableRenderContext context, CommandBuffer cmd, bool resolveFinalTarget) { @@ -2314,6 +2354,7 @@ void InternalFinishRenderingExecute(ScriptableRenderContext context, CommandBuff context.ExecuteCommandBuffer(cmd); cmd.Clear(); } +#endif private protected int AdjustAndGetScreenMSAASamples(RenderGraph renderGraph, bool useIntermediateColorTarget) { diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/ScriptableRendererFeature.cs b/Packages/com.unity.render-pipelines.universal/Runtime/ScriptableRendererFeature.cs index bba4e353066..68fc41c98d3 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/ScriptableRendererFeature.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/ScriptableRendererFeature.cs @@ -9,7 +9,7 @@ namespace UnityEngine.Rendering.Universal /// /// [ExcludeFromPreset] - public abstract class ScriptableRendererFeature : ScriptableObject, IDisposable + public abstract partial class ScriptableRendererFeature : ScriptableObject, IDisposable { [SerializeField, HideInInspector] private bool m_Active = true; /// @@ -36,13 +36,15 @@ public virtual void OnCameraPreCull(ScriptableRenderer renderer, in CameraData c /// Rendering state. Use this to setup render passes. public abstract void AddRenderPasses(ScriptableRenderer renderer, ref RenderingData renderingData); +#if URP_COMPATIBILITY_MODE /// /// Callback after render targets are initialized. This allows for accessing targets from renderer after they are created and ready. /// /// Renderer used for adding render passes. /// Rendering state. Use this to setup render passes. - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete + " #from(6000.2)")] public virtual void SetupRenderPasses(ScriptableRenderer renderer, in RenderingData renderingData) { } +#endif void OnEnable() { @@ -60,6 +62,7 @@ void OnValidate() Create(); } +#if URP_COMPATIBILITY_MODE /// /// Override this method and return true if the feature should use the Native RenderPass API /// @@ -67,6 +70,7 @@ internal virtual bool SupportsNativeRenderPass() { return false; } +#endif /// /// Override this method and return true that renderer would produce rendering layers texture. diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Settings/RenderGraphSettings.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Settings/RenderGraphSettings.cs index d903ae36650..8029bf3058f 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Settings/RenderGraphSettings.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Settings/RenderGraphSettings.cs @@ -72,7 +72,12 @@ internal enum Version : int public bool enableRenderCompatibilityMode #if URP_COMPATIBILITY_MODE { - get => m_EnableRenderCompatibilityMode && !RenderGraphGraphicsAutomatedTests.enabled; + get + { + if (RenderGraphGraphicsAutomatedTests.forceRenderGraphState.HasValue) + return !RenderGraphGraphicsAutomatedTests.forceRenderGraphState.Value; + return m_EnableRenderCompatibilityMode; + } set { this.SetValueAndNotify(ref m_EnableRenderCompatibilityMode, value, nameof(m_EnableRenderCompatibilityMode)); @@ -82,7 +87,7 @@ public bool enableRenderCompatibilityMode { //Temporarilly keep this boolean for all third parties support get => false; - [Obsolete("Compatibility Mode is being removed. This setter is not accessible without the define URP_COMPATIBILITY_MODE.", true)] set { } + [Obsolete("Compatibility Mode is being removed. This setter is not accessible without the define URP_COMPATIBILITY_MODE. #from(6000.3) #breakingFrom(6000.3)", true)] set { } } #endif diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Settings/URPReflectionProbeSettings.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Settings/URPReflectionProbeSettings.cs new file mode 100644 index 00000000000..4f16a3aa5ad --- /dev/null +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Settings/URPReflectionProbeSettings.cs @@ -0,0 +1,53 @@ +using System; +#if UNITY_EDITOR +using UnityEditor; +using UnityEditor.Rendering.Universal; +#endif +using UnityEngine.Rendering.Universal; + +namespace UnityEngine.Rendering +{ + /// + /// ReflectionProbe global settings class. + /// + [Serializable] + [SupportedOnRenderPipeline(typeof(UniversalRenderPipelineAsset))] + [Categorization.CategoryInfo(Name = "Lighting", Order = 21)] + public class URPReflectionProbeSettings : IRenderPipelineGraphicsSettings + { + [SerializeField, HideInInspector] private int version = 1; + + int IRenderPipelineGraphicsSettings.version => version; + + [SerializeField, Tooltip("Use ReflectionProbe rotation. Enabling this will improve the appearance of reflections when the ReflectionProbe isn't axis aligned, but may worsen performance on lower end platforms.")] + private bool useReflectionProbeRotation = true; + + /// + /// Whether to take ReflectionProbe rotation into account when rendering. + /// + public bool UseReflectionProbeRotation + { + get + { +#if UNITY_EDITOR + var mode = useReflectionProbeRotation ? SupportedRenderingFeatures.ReflectionProbeModes.Rotation : SupportedRenderingFeatures.ReflectionProbeModes.None; + if (mode != SupportedRenderingFeatures.active.reflectionProbeModes) + { + SupportedRenderingFeatures.active.reflectionProbeModes = mode; + } +#endif + return useReflectionProbeRotation; + } +#if UNITY_EDITOR + internal set + { + this.SetValueAndNotify(ref useReflectionProbeRotation, value, nameof(useReflectionProbeRotation)); + if (QualitySettings.renderPipeline is UniversalRenderPipelineAsset urpAsset) + { + SupportedRenderingFeatures.active.reflectionProbeModes = value ? SupportedRenderingFeatures.ReflectionProbeModes.Rotation : SupportedRenderingFeatures.ReflectionProbeModes.None; + } + } +#endif + } + } +} diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Settings/URPReflectionProbeSettings.cs.meta b/Packages/com.unity.render-pipelines.universal/Runtime/Settings/URPReflectionProbeSettings.cs.meta new file mode 100644 index 00000000000..609551ba5bf --- /dev/null +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Settings/URPReflectionProbeSettings.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 35922f772e2f746e0a76b49701b8c04a \ No newline at end of file diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/ShadowUtils.cs b/Packages/com.unity.render-pipelines.universal/Runtime/ShadowUtils.cs index 05ca94892cd..8f20c1098b4 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/ShadowUtils.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/ShadowUtils.cs @@ -549,7 +549,7 @@ private static RenderTextureDescriptor GetTemporaryShadowTextureDescriptor(int w /// The height of the texture. /// The number of depth bits. /// A shadow render texture. - [Obsolete("Use AllocShadowRT or ShadowRTReAllocateIfNeeded", true)] + [Obsolete("Use AllocShadowRT or ShadowRTReAllocateIfNeeded. #from(2022.1) #breakingFrom(2023.1)", true)] public static RenderTexture GetTemporaryShadowTexture(int width, int height, int bits) { var rtd = GetTemporaryShadowTextureDescriptor(width, height, bits); diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Tiling/ReflectionProbeMinMaxZJob.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Tiling/ReflectionProbeMinMaxZJob.cs index 923fe1a23e4..30aaaf490de 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Tiling/ReflectionProbeMinMaxZJob.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Tiling/ReflectionProbeMinMaxZJob.cs @@ -12,6 +12,8 @@ struct ReflectionProbeMinMaxZJob : IJobFor [ReadOnly] public NativeArray reflectionProbes; + [ReadOnly] + public bool reflectionProbeRotation; public NativeArray minMaxZs; public void Execute(int index) @@ -23,13 +25,21 @@ public void Execute(int index) var worldToView = worldToViews[viewIndex]; var centerWS = (float3)reflectionProbe.bounds.center; var extentsWS = (float3)reflectionProbe.bounds.extents; + quaternion rotation; + if (reflectionProbeRotation) + rotation = (quaternion)reflectionProbe.localToWorldMatrix.rotation; + else + rotation = quaternion.identity; + for (var i = 0; i < 8; i++) { // Convert index to x, y, and z in [-1, 1] var x = ((i << 1) & 2) - 1; var y = (i & 2) - 1; var z = ((i >> 1) & 2) - 1; - var cornerVS = math.mul(worldToView, math.float4(centerWS + extentsWS * math.float3(x, y, z), 1)); + var localCorner = extentsWS * math.float3(x, y, z); + var rotatedCorner = math.rotate(rotation, localCorner); + var cornerVS = math.mul(worldToView, math.float4(rotatedCorner + centerWS, 1)); cornerVS.z *= -1; minMax.x = math.min(minMax.x, cornerVS.z); minMax.y = math.max(minMax.y, cornerVS.z); diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Tiling/TilingJob.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Tiling/TilingJob.cs index a6b422468fa..800ba60da59 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Tiling/TilingJob.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Tiling/TilingJob.cs @@ -14,6 +14,9 @@ struct TilingJob : IJobFor [ReadOnly] public NativeArray reflectionProbes; + [ReadOnly] + public bool reflectionProbeRotation; + [NativeDisableParallelForRestriction] public NativeArray tileRanges; @@ -55,7 +58,10 @@ public void Execute(int jobIndex) if (isOrthographic) { TileLightOrthographic(index); } else { TileLight(index); } } - else { TileReflectionProbe(index); } + else + { + TileReflectionProbe(index); + } } void TileLight(int lightIndex) @@ -421,6 +427,11 @@ void TileReflectionProbe(int index) var reflectionProbe = reflectionProbes[index - lights.Length]; var centerWS = (float3)reflectionProbe.bounds.center; var extentsWS = (float3)reflectionProbe.bounds.extents; + quaternion rotation; + if (reflectionProbeRotation) + rotation = (quaternion)reflectionProbe.localToWorldMatrix.rotation; + else + rotation = quaternion.identity; // The vertices of the cube in view space. var points = new NativeArray(k_CubePoints.Length, Allocator.Temp); @@ -430,7 +441,8 @@ void TileReflectionProbe(int index) var leftmostIndex = 0; for (var i = 0; i < k_CubePoints.Length; i++) { - var point = math.mul(worldToViews[m_ViewIndex], math.float4(centerWS + extentsWS * k_CubePoints[i], 1)).xyz; + var rotatedPointsWS = centerWS + math.rotate(rotation, extentsWS * k_CubePoints[i]); + var point = math.mul(worldToViews[m_ViewIndex], math.float4(rotatedPointsWS, 1)).xyz; point.z *= -1; points[i] = point; if (point.z >= near) diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/UniversalAdditionalCameraData.deprecated.cs b/Packages/com.unity.render-pipelines.universal/Runtime/UniversalAdditionalCameraData.deprecated.cs index 7ebddac65c9..417b5d719ee 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/UniversalAdditionalCameraData.deprecated.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/UniversalAdditionalCameraData.deprecated.cs @@ -25,7 +25,7 @@ public partial class UniversalAdditionalCameraData /// /// The serialized version of the class. Used for upgrading. /// - [Obsolete("This field has been deprecated. #from(6000.2)", false)] + [Obsolete("This field has been deprecated. #from(6000.2)")] public float version => (int)m_Version; } } \ No newline at end of file diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/UniversalAdditionalLightData.deprecated.cs b/Packages/com.unity.render-pipelines.universal/Runtime/UniversalAdditionalLightData.deprecated.cs index 4a2333268ef..90e88741c40 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/UniversalAdditionalLightData.deprecated.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/UniversalAdditionalLightData.deprecated.cs @@ -41,14 +41,14 @@ public enum LightLayerEnum public partial class UniversalAdditionalLightData { // The layer(s) this light belongs too. - [Obsolete("This is obsolete, please use m_RenderingLayerMask instead. #from(2023.1)", false)] [SerializeField] + [Obsolete("This is obsolete, please use m_RenderingLayerMask instead. #from(2023.1)")] [SerializeField] LightLayerEnum m_LightLayerMask = LightLayerEnum.LightLayerDefault; /// /// The layer(s) this light belongs to. /// - [Obsolete("This is obsolete, please use renderingLayerMask instead. #from(2023.1)", true)] + [Obsolete("This is obsolete, please use renderingLayerMask instead. #from(2023.1) #breakingFrom(2023.1)", true)] public LightLayerEnum lightLayerMask { get { return m_LightLayerMask; } @@ -56,13 +56,13 @@ public LightLayerEnum lightLayerMask } // The layer(s) used for shadow casting. - [Obsolete("This is obsolete, please use m_RenderingLayerMask instead. #from(2023.1)", false)] [SerializeField] + [Obsolete("This is obsolete, please use m_RenderingLayerMask instead. #from(2023.1)")] [SerializeField] LightLayerEnum m_ShadowLayerMask = LightLayerEnum.LightLayerDefault; /// /// The layer(s) for shadow. /// - [Obsolete("This is obsolete, please use shadowRenderingLayerMask instead. #from(2023.1)", true)] + [Obsolete("This is obsolete, please use shadowRenderingLayerMask instead. #from(2023.1) #breakingFrom(2023.1)", true)] public LightLayerEnum shadowLayerMask { get { return m_ShadowLayerMask; } @@ -70,11 +70,11 @@ public LightLayerEnum shadowLayerMask } [SerializeField] - [Obsolete("This is obsolete, please use m_RenderingLayersMask instead. #from(6000.2)", false)] + [Obsolete("This is obsolete, please use m_RenderingLayersMask instead. #from(6000.2)")] uint m_RenderingLayers = 1; [SerializeField] - [Obsolete("This is obsolete, please use renderingLayersMask instead. #from(6000.2)", false)] + [Obsolete("This is obsolete, please use renderingLayersMask instead. #from(6000.2)")] uint m_ShadowRenderingLayers = 1; } } \ No newline at end of file diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/UniversalRenderPipeline.cs b/Packages/com.unity.render-pipelines.universal/Runtime/UniversalRenderPipeline.cs index ce409e54889..d19b9ca874e 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/UniversalRenderPipeline.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/UniversalRenderPipeline.cs @@ -80,7 +80,9 @@ public static class Renderer { const string k_Name = nameof(ScriptableRenderer); public static readonly ProfilingSampler setupCullingParameters = new ProfilingSampler($"{k_Name}.{nameof(ScriptableRenderer.SetupCullingParameters)}"); +#if URP_COMPATIBILITY_MODE public static readonly ProfilingSampler setup = new ProfilingSampler($"{k_Name}.{nameof(ScriptableRenderer.Setup)}"); +#endif }; public static class Context @@ -187,8 +189,10 @@ internal static bool UseDynamicBranchFogKeyword() internal static RenderGraph s_RenderGraph; internal static RTHandleResourcePool s_RTHandlePool; +#if URP_COMPATIBILITY_MODE // internal for tests internal static bool useRenderGraph; +#endif // Store locally the value on the instance due as the Render Pipeline Asset data might change before the disposal of the asset, making some APV Resources leak. internal bool apvIsEnabled = false; @@ -265,15 +269,12 @@ public UniversalRenderPipeline(UniversalRenderPipelineAsset asset) DecalProjector.defaultMaterial = asset.decalMaterial; s_RenderGraph = new RenderGraph("URPRenderGraph"); - useRenderGraph = #if URP_COMPATIBILITY_MODE - !GraphicsSettings.GetRenderPipelineSettings().enableRenderCompatibilityMode; -#else - true; -#endif + useRenderGraph = !GraphicsSettings.GetRenderPipelineSettings().enableRenderCompatibilityMode; #if !UNITY_EDITOR Debug.Log($"RenderGraph is now {(useRenderGraph ? "enabled" : "disabled")}."); +#endif #endif s_RTHandlePool = new RTHandleResourcePool(); @@ -654,7 +655,7 @@ protected override void ProcessRenderRequests(ScriptableRenderConte /// Render context used to record commands during execution. /// Camera to render. /// - [Obsolete("RenderSingleCamera is obsolete, please use RenderPipeline.SubmitRenderRequest with UniversalRenderer.SingleCameraRequest as RequestData type")] + [Obsolete("RenderSingleCamera is obsolete, please use RenderPipeline.SubmitRenderRequest with UniversalRenderer.SingleCameraRequest as RequestData type. #from(2023.1)")] public static void RenderSingleCamera(ScriptableRenderContext context, Camera camera) { RenderSingleCameraInternal(context, camera); @@ -795,7 +796,7 @@ static void RenderSingleCamera(ScriptableRenderContext context, UniversalCameraD if (camera.cameraType == CameraType.Reflection || camera.cameraType == CameraType.Preview) ScriptableRenderContext.EmitGeometryForCamera(camera); #if UNITY_EDITOR - else if (isSceneViewCamera) + else if (isSceneViewCamera) ScriptableRenderContext.EmitWorldGeometryForSceneView(camera); #endif @@ -860,12 +861,8 @@ static void RenderSingleCamera(ScriptableRenderContext context, UniversalCameraD renderer.AddRenderPasses(ref legacyRenderingData); - if (useRenderGraph) - { - RecordAndExecuteRenderGraph(s_RenderGraph, context, renderer, cmd, cameraData.camera); - renderer.FinishRenderGraphRendering(cmd); - } - else +#if URP_COMPATIBILITY_MODE + if (!useRenderGraph) { // Disable obsolete warning for internal usage #pragma warning disable CS0618 @@ -878,6 +875,12 @@ static void RenderSingleCamera(ScriptableRenderContext context, UniversalCameraD renderer.Execute(context, ref legacyRenderingData); #pragma warning restore CS0618 } + else +#endif + { + RecordAndExecuteRenderGraph(s_RenderGraph, context, renderer, cmd, cameraData.camera); + renderer.FinishRenderGraphRendering(cmd); + } } // When ProfilingSample goes out of scope, an "EndSample" command is enqueued into CommandBuffer cmd context.ExecuteCommandBuffer(cmd); // Sends to ScriptableRenderContext all the commands enqueued since cmd.Clear, i.e the "EndSample" command @@ -885,6 +888,7 @@ static void RenderSingleCamera(ScriptableRenderContext context, UniversalCameraD using (new ProfilingScope(Profiling.Pipeline.Context.submit)) { +#if URP_COMPATIBILITY_MODE // Render Graph will do the validation by itself, so this is redundant in that case if (!useRenderGraph && renderer.useRenderPassEnabled && !context.SubmitForRenderPassValidation()) { @@ -892,6 +896,7 @@ static void RenderSingleCamera(ScriptableRenderContext context, UniversalCameraD cmd.SetKeyword(ShaderGlobalKeywords.RenderPassEnabled, false); Debug.LogWarning("Rendering command not supported inside a native RenderPass found. Falling back to non-RenderPass rendering path"); } +#endif context.Submit(); // Actually execute the commands that we previously sent to the ScriptableRenderContext context } ScriptableRenderer.current = null; @@ -1282,7 +1287,7 @@ static void SetSupportedRenderingFeatures(UniversalRenderPipelineAsset pipelineA #if UNITY_EDITOR SupportedRenderingFeatures.active = new SupportedRenderingFeatures() { - reflectionProbeModes = SupportedRenderingFeatures.ReflectionProbeModes.None, + reflectionProbeModes = SupportedRenderingFeatures.ReflectionProbeModes.Rotation, defaultMixedLightingModes = SupportedRenderingFeatures.LightmapMixedBakeModes.Subtractive, mixedLightingModes = SupportedRenderingFeatures.LightmapMixedBakeModes.Subtractive | SupportedRenderingFeatures.LightmapMixedBakeModes.IndirectOnly | SupportedRenderingFeatures.LightmapMixedBakeModes.Shadowmask, lightmapBakeTypes = LightmapBakeType.Baked | LightmapBakeType.Mixed | LightmapBakeType.Realtime, @@ -1295,6 +1300,12 @@ static void SetSupportedRenderingFeatures(UniversalRenderPipelineAsset pipelineA particleSystemInstancing = true, overridesEnableLODCrossFade = true }; + if (GraphicsSettings.TryGetRenderPipelineSettings(out var reflectionProbeSettings) + && !reflectionProbeSettings.UseReflectionProbeRotation) + { + SupportedRenderingFeatures.active.reflectionProbeModes = SupportedRenderingFeatures.ReflectionProbeModes.None; + } + SceneViewDrawMode.SetupDrawMode(); #endif @@ -1607,12 +1618,14 @@ static UniversalRenderingData CreateRenderingData(ContextContainer frameData, Un data.supportsDynamicBatching = settings.supportsDynamicBatching; data.perObjectData = GetPerObjectLightFlags(universalLightData, settings, isForwardPlus); +#if URP_COMPATIBILITY_MODE // Render graph does not support RenderingData.commandBuffer as its execution timeline might break. // RenderingData.commandBuffer is available only for the old non-RG execute code path. if(useRenderGraph) data.m_CommandBuffer = null; else data.m_CommandBuffer = cmd; +#endif UniversalRenderer universalRenderer = renderer as UniversalRenderer; if (universalRenderer != null) diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/UniversalRenderPipelineCore.cs b/Packages/com.unity.render-pipelines.universal/Runtime/UniversalRenderPipelineCore.cs index fe05b3627e7..3340119e5de 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/UniversalRenderPipelineCore.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/UniversalRenderPipelineCore.cs @@ -99,6 +99,7 @@ internal RenderingData(ContextContainer frameData) internal UniversalRenderingData universalRenderingData => frameData.Get(); +#if URP_COMPATIBILITY_MODE // Non-rendergraph path only. Do NOT use with rendergraph! internal ref CommandBuffer commandBuffer { @@ -111,6 +112,7 @@ internal ref CommandBuffer commandBuffer return ref cmd; } } +#endif /// /// Returns culling results that exposes handles to visible objects, lights and probes. @@ -238,7 +240,7 @@ internal LightData(ContextContainer frameData) /// /// Struct that holds settings related to camera. /// - public struct CameraData + public partial struct CameraData { ContextContainer frameData; @@ -289,6 +291,7 @@ internal Matrix4x4 GetProjectionMatrixNoJitter(int viewIndex = 0) return frameData.Get().GetProjectionMatrixNoJitter(viewIndex); } +#if URP_COMPATIBILITY_MODE /// /// Returns the camera GPU projection matrix. This contains platform specific changes to handle y-flip and reverse z. Includes camera jitter if required by active features. /// Similar to GL.GetGPUProjectionMatrix but queries URP internal state to know if the pipeline is rendering to render texture. @@ -314,6 +317,7 @@ public Matrix4x4 GetGPUProjectionMatrixNoJitter(int viewIndex = 0) { return frameData.Get().GetGPUProjectionMatrixNoJitter(viewIndex); } +#endif internal Matrix4x4 GetGPUProjectionMatrix(bool renderIntoTexture, int viewIndex = 0) { @@ -468,6 +472,7 @@ public bool IsHandleYFlipped(RTHandle handle) return frameData.Get().IsHandleYFlipped(handle); } +#if URP_COMPATIBILITY_MODE /// /// True if the camera device projection matrix is flipped. This happens when the pipeline is rendering /// to a render texture in non OpenGL platforms. If you are doing a custom Blit pass to copy camera textures @@ -475,11 +480,12 @@ public bool IsHandleYFlipped(RTHandle handle) /// matrix when rendering with for cmd.Draw* and reading from camera textures. /// /// True if the camera device projection matrix is flipped. - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] public bool IsCameraProjectionMatrixFlipped() { return frameData.Get().IsCameraProjectionMatrixFlipped(); } +#endif /// /// True if the render target's projection matrix is flipped. This happens when the pipeline is rendering @@ -896,6 +902,8 @@ internal static class ShaderPropertyId public static readonly int overlayUITexture = Shader.PropertyToID("_OverlayUITexture"); public static readonly int hdrOutputLuminanceParams = Shader.PropertyToID("_HDROutputLuminanceParams"); public static readonly int hdrOutputGradingParams = Shader.PropertyToID("_HDROutputGradingParams"); + + public static readonly int screenSpaceIrradiance = Shader.PropertyToID("_ScreenSpaceIrradiance"); } /// @@ -952,6 +960,7 @@ internal static class ShaderGlobalKeywords public static GlobalKeyword ReflectionProbeBoxProjection; public static GlobalKeyword ReflectionProbeBlending; public static GlobalKeyword ReflectionProbeAtlas; + public static GlobalKeyword ReflectionProbeRotation; public static GlobalKeyword SoftShadows; public static GlobalKeyword SoftShadowsLow; public static GlobalKeyword SoftShadowsMedium; @@ -976,6 +985,7 @@ internal static class ShaderGlobalKeywords public static GlobalKeyword DecalLayers; public static GlobalKeyword WriteRenderingLayers; public static GlobalKeyword ScreenSpaceOcclusion; + public static GlobalKeyword ScreenSpaceIrradiance; public static GlobalKeyword _SPOT; public static GlobalKeyword _DIRECTIONAL; public static GlobalKeyword _POINT; @@ -1064,6 +1074,7 @@ public static void InitializeShaderGlobalKeywords() ShaderGlobalKeywords.ReflectionProbeBoxProjection = GlobalKeyword.Create(ShaderKeywordStrings.ReflectionProbeBoxProjection); ShaderGlobalKeywords.ReflectionProbeBlending = GlobalKeyword.Create(ShaderKeywordStrings.ReflectionProbeBlending); ShaderGlobalKeywords.ReflectionProbeAtlas = GlobalKeyword.Create(ShaderKeywordStrings.ReflectionProbeAtlas); + ShaderGlobalKeywords.ReflectionProbeRotation = GlobalKeyword.Create(ShaderKeywordStrings.ReflectionProbeRotation); ShaderGlobalKeywords.SoftShadows = GlobalKeyword.Create(ShaderKeywordStrings.SoftShadows); ShaderGlobalKeywords.SoftShadowsLow = GlobalKeyword.Create(ShaderKeywordStrings.SoftShadowsLow); ShaderGlobalKeywords.SoftShadowsMedium = GlobalKeyword.Create(ShaderKeywordStrings.SoftShadowsMedium); @@ -1088,6 +1099,7 @@ public static void InitializeShaderGlobalKeywords() ShaderGlobalKeywords.DecalLayers = GlobalKeyword.Create(ShaderKeywordStrings.DecalLayers); ShaderGlobalKeywords.WriteRenderingLayers = GlobalKeyword.Create(ShaderKeywordStrings.WriteRenderingLayers); ShaderGlobalKeywords.ScreenSpaceOcclusion = GlobalKeyword.Create(ShaderKeywordStrings.ScreenSpaceOcclusion); + ShaderGlobalKeywords.ScreenSpaceIrradiance = GlobalKeyword.Create(ShaderKeywordStrings.ScreenSpaceIrradiance); ShaderGlobalKeywords._SPOT = GlobalKeyword.Create(ShaderKeywordStrings._SPOT); ShaderGlobalKeywords._DIRECTIONAL = GlobalKeyword.Create(ShaderKeywordStrings._DIRECTIONAL); ShaderGlobalKeywords._POINT = GlobalKeyword.Create(ShaderKeywordStrings._POINT); @@ -1174,6 +1186,9 @@ public static class ShaderKeywordStrings /// Keyword used for Reflection probe atlas. public const string ReflectionProbeAtlas = "_REFLECTION_PROBE_ATLAS"; + /// Keyword used for ReflectionProbe rotation. + public const string ReflectionProbeRotation = "REFLECTION_PROBE_ROTATION"; + /// Keyword used for soft shadows. public const string SoftShadows = "_SHADOWS_SOFT"; @@ -1306,6 +1321,9 @@ public static class ShaderKeywordStrings /// Keyword used for Screen Space Occlusion, such as Screen Space Ambient Occlusion (SSAO). public const string ScreenSpaceOcclusion = "_SCREEN_SPACE_OCCLUSION"; + /// Keyword used for Screen Space Global Illumination. + public const string ScreenSpaceIrradiance = "_SCREEN_SPACE_IRRADIANCE"; + /// Keyword used for Point sampling when doing upsampling. public const string PointSampling = "_POINT_SAMPLING"; diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/UniversalRenderPipelineGlobalSettings.cs b/Packages/com.unity.render-pipelines.universal/Runtime/UniversalRenderPipelineGlobalSettings.cs index 704b58d90ab..125790db6f7 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/UniversalRenderPipelineGlobalSettings.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/UniversalRenderPipelineGlobalSettings.cs @@ -28,7 +28,7 @@ partial class UniversalRenderPipelineGlobalSettings : RenderPipelineGlobalSettin internal bool IsAtLastVersion() => k_LastVersion == m_AssetVersion; - internal const int k_LastVersion = 8; + internal const int k_LastVersion = 9; #pragma warning disable CS0414 [SerializeField][FormerlySerializedAs("k_AssetVersion")] @@ -153,6 +153,21 @@ public static void UpgradeAsset(EntityId assetInstanceID) asset.m_AssetVersion = 8; } + // URPReflectionProbeSetings is introduced set the values for older projects. + if (asset.m_AssetVersion < 9) + { + if (GraphicsSettings.TryGetRenderPipelineSettings(out var reflectionProbeSettings)) + { + reflectionProbeSettings.UseReflectionProbeRotation = false; + } + else + { + Debug.LogError("Failed to upgrade global settings for URPReflectionProbeSettings since it doesn't exists."); + } + + asset.m_AssetVersion = 9; + } + // If the asset version has changed, means that a migration step has been executed if (assetVersionBeforeUpgrade != asset.m_AssetVersion) EditorUtility.SetDirty(asset); @@ -312,41 +327,41 @@ internal static VolumeProfile GetOrCreateDefaultVolumeProfile(VolumeProfile defa /// Names used for display of light layers with Layer's index as prefix. /// For example: "0: Light Layer Default" /// - [Obsolete("This property is obsolete. Use RenderingLayerMask API and Tags & Layers project settings instead.", true)] + [Obsolete("This property is obsolete. Use RenderingLayerMask API and Tags & Layers project settings instead. #from(2022.2) #breackingFrom(2023.1)", true)] public string[] prefixedLightLayerNames => new string[0]; #region Light Layer Names [3D] /// Name for light layer 0. - [Obsolete("This is obsolete, please use renderingLayerMaskNames instead.", false)] + [Obsolete("This is obsolete, please use renderingLayerMaskNames instead. #from(2022.2)")] public string lightLayerName0; /// Name for light layer 1. - [Obsolete("This is obsolete, please use renderingLayerMaskNames instead.", false)] + [Obsolete("This is obsolete, please use renderingLayerMaskNames instead. #from(2022.2)")] public string lightLayerName1; /// Name for light layer 2. - [Obsolete("This is obsolete, please use renderingLayerMaskNames instead.", false)] + [Obsolete("This is obsolete, please use renderingLayerMaskNames instead. #from(2022.2)")] public string lightLayerName2; /// Name for light layer 3. - [Obsolete("This is obsolete, please use renderingLayerMaskNames instead.", false)] + [Obsolete("This is obsolete, please use renderingLayerMaskNames instead. #from(2022.2)")] public string lightLayerName3; /// Name for light layer 4. - [Obsolete("This is obsolete, please use renderingLayerMaskNames instead.", false)] + [Obsolete("This is obsolete, please use renderingLayerMaskNames instead. #from(2022.2)")] public string lightLayerName4; /// Name for light layer 5. - [Obsolete("This is obsolete, please use renderingLayerMaskNames instead.", false)] + [Obsolete("This is obsolete, please use renderingLayerMaskNames instead. #from(2022.2)")] public string lightLayerName5; /// Name for light layer 6. - [Obsolete("This is obsolete, please use renderingLayerMaskNames instead.", false)] + [Obsolete("This is obsolete, please use renderingLayerMaskNames instead. #from(2022.2)")] public string lightLayerName6; /// Name for light layer 7. - [Obsolete("This is obsolete, please use renderingLayerNames instead.", false)] + [Obsolete("This is obsolete, please use renderingLayerNames instead. #from(2022.2)")] public string lightLayerName7; /// /// Names used for display of light layers. /// - [Obsolete("This is obsolete, please use renderingLayerMaskNames instead.", false)] + [Obsolete("This is obsolete, please use renderingLayerMaskNames instead. #from(2022.2)")] public string[] lightLayerNames => new string[0]; internal void ResetRenderingLayerNames() diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/UniversalRenderer.cs b/Packages/com.unity.render-pipelines.universal/Runtime/UniversalRenderer.cs index 208733ea591..e403f7fa18c 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/UniversalRenderer.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/UniversalRenderer.cs @@ -768,7 +768,7 @@ static bool HasPassesRequiringIntermediateTexture(List act #if URP_COMPATIBILITY_MODE /// - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] public override void Setup(ScriptableRenderContext context, ref RenderingData renderingData) { UniversalRenderingData universalRenderingData = frameData.Get(); @@ -1728,7 +1728,7 @@ void SetupRawColorDepthHistory(UniversalCameraData cameraData, ref RenderTexture } /// - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] public override void SetupLights(ScriptableRenderContext context, ref RenderingData renderingData) { UniversalRenderingData universalRenderingData = frameData.Get(); @@ -1796,15 +1796,17 @@ public override void SetupCullingParameters(ref ScriptableCullingParameters cull cullingParameters.numIterationsEnclosingSphere = UniversalRenderPipeline.asset.numIterationsEnclosingSphere; } -#if URP_COMPATIBILITY_MODE /// public override void FinishRendering(CommandBuffer cmd) { +#if URP_COMPATIBILITY_MODE m_ColorBufferSystem.Clear(); m_ActiveCameraColorAttachment = null; m_ActiveCameraDepthAttachment = null; +#endif } +#if URP_COMPATIBILITY_MODE void EnqueueDeferred(RenderTextureDescriptor cameraTargetDescriptor, bool hasDepthPrepass, bool hasNormalPrepass, bool hasRenderingLayerPrepass, bool applyMainShadow, bool applyAdditionalShadow) { m_DeferredLights.Setup( @@ -2094,13 +2096,13 @@ internal override void SwapColorBuffer(CommandBuffer cmd) cmd.SetGlobalTexture("_AfterPostProcessTexture", m_ActiveCameraColorAttachment.nameID); } - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] internal override RTHandle GetCameraColorFrontBuffer(CommandBuffer cmd) { return m_ColorBufferSystem.GetFrontBuffer(cmd); } - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsoleteFrom2023_3)] internal override RTHandle GetCameraColorBackBuffer(CommandBuffer cmd) { return m_ColorBufferSystem.GetBackBuffer(cmd); diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/UniversalRendererRenderGraph.cs b/Packages/com.unity.render-pipelines.universal/Runtime/UniversalRendererRenderGraph.cs index 94234dc5e13..5a044003561 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/UniversalRendererRenderGraph.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/UniversalRendererRenderGraph.cs @@ -287,7 +287,6 @@ bool RequiresIntermediateAttachments(UniversalCameraData cameraData, in RenderPa { var requireColorTexture = HasActiveRenderFeatures(rendererFeatures) && m_IntermediateTextureMode == IntermediateTextureMode.Always; requireColorTexture |= HasPassesRequiringIntermediateTexture(activeRenderPassQueue); - requireColorTexture |= Application.isEditor && usesClusterLightLoop; requireColorTexture |= RequiresIntermediateColorTexture(cameraData, in renderPassInputs, usesDeferredLighting, applyPostProcessing); // Intermediate texture has different yflip state than backbuffer. In case we use intermediate texture, we must use both color and depth together. diff --git a/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/.sample.json b/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/.sample.json index 44f928c713e..07da3d3b5c8 100644 --- a/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/.sample.json +++ b/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/.sample.json @@ -1,5 +1,5 @@ { "displayName":"URP Package Samples", - "description": "Collection of scenes showcasing different features of the Universal Render Pipeline.", + "description": "Collection of scenes showcasing different features of the Universal Render Pipeline. To setup the project to use the samples, the URP Package Samples/SharedAssets/Settings/PackageSamplesURPAsset.asset has to be assigned in the Project Settings/Graphics/Set Default Render Pipeline Asset/Default Render pipeline and/or in the Project Settings/Quality/Rendering/Render Pipeline Asset.", "createSeparatePackage": false } \ No newline at end of file diff --git a/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/CameraStacking/3D Skybox/3DSkybox.unity b/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/CameraStacking/3D Skybox/3DSkybox.unity index 4c2725fec03..748bd941df5 100644 --- a/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/CameraStacking/3D Skybox/3DSkybox.unity +++ b/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/CameraStacking/3D Skybox/3DSkybox.unity @@ -38,12 +38,12 @@ RenderSettings: m_ReflectionIntensity: 1 m_CustomReflection: {fileID: 0} m_Sun: {fileID: 1090784526} - m_IndirectSpecularColor: {r: 0.18028486, g: 0.22571501, b: 0.3069236, a: 1} m_UseRadianceAmbientProbe: 0 --- !u!157 &3 LightmapSettings: m_ObjectHideFlags: 0 - serializedVersion: 12 + serializedVersion: 13 + m_BakeOnSceneLoad: 0 m_GISettings: serializedVersion: 2 m_BounceScale: 1 @@ -93,10 +93,8 @@ LightmapSettings: m_ExportTrainingData: 0 m_TrainingDataDestination: TrainingData m_LightProbeSampleCountMultiplier: 4 - m_LightingDataAsset: {fileID: 112000000, guid: 50c9382d5756543deba147d2ec69dfa1, - type: 2} - m_LightingSettings: {fileID: 4890085278179872738, guid: cc82132cf70ce430aa8f74e4325388b6, - type: 2} + m_LightingDataAsset: {fileID: 112000000, guid: 50c9382d5756543deba147d2ec69dfa1, type: 2} + m_LightingSettings: {fileID: 4890085278179872738, guid: cc82132cf70ce430aa8f74e4325388b6, type: 2} --- !u!196 &4 NavMeshSettings: serializedVersion: 2 @@ -129,73 +127,59 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 324010153} m_Modifications: - - target: {fileID: 5614579871520246110, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 5614579871520246110, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_Name value: MediumDetailBlock (4) objectReference: {fileID: 0} - - target: {fileID: 5614579871520246110, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 5614579871520246110, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_IsActive value: 1 objectReference: {fileID: 0} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_RootOrder value: 10 objectReference: {fileID: 0} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_LocalScale.z value: -1 objectReference: {fileID: 0} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_LocalPosition.x value: -3.01 objectReference: {fileID: 0} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_LocalPosition.z value: 2.81 objectReference: {fileID: 0} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_LocalRotation.w value: 0.69465846 objectReference: {fileID: 0} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_LocalRotation.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_LocalRotation.y value: -0.7193398 objectReference: {fileID: 0} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_LocalRotation.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: -92 objectReference: {fileID: 0} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} @@ -206,8 +190,7 @@ PrefabInstance: m_SourcePrefab: {fileID: 100100000, guid: bf5c1cd68667849578410288846be21f, type: 3} --- !u!4 &63695928 stripped Transform: - m_CorrespondingSourceObject: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + m_CorrespondingSourceObject: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} m_PrefabInstance: {fileID: 63695927} m_PrefabAsset: {fileID: 0} --- !u!1 &72203326 @@ -262,6 +245,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 2 m_RendererPriority: 0 m_Materials: @@ -283,6 +269,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -427,14 +414,14 @@ MonoBehaviour: m_ScreenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0} m_RequiresDepthTexture: 0 m_RequiresColorTexture: 0 - m_Version: 2 m_TaaSettings: - quality: 3 - frameInfluence: 0.1 - jitterScale: 1 - mipBias: 0 - varianceClampScale: 0.9 - contrastAdaptiveSharpening: 0 + m_Quality: 3 + m_FrameInfluence: 0.1 + m_JitterScale: 1 + m_MipBias: 0 + m_VarianceClampScale: 0.9 + m_ContrastAdaptiveSharpening: 0 + m_Version: 2 --- !u!95 &122368105 Animator: serializedVersion: 7 @@ -465,68 +452,55 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 324010153} m_Modifications: - - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: m_RootOrder value: 13 objectReference: {fileID: 0} - - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: m_LocalPosition.x value: 0.26 objectReference: {fileID: 0} - - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: m_LocalPosition.z value: 7.55 objectReference: {fileID: 0} - - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: m_LocalRotation.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: m_LocalRotation.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: m_LocalRotation.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 3381162423361155109, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 3381162423361155109, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: m_Name value: LowDetailBlock (1) objectReference: {fileID: 0} - - target: {fileID: 3381162423361155109, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 3381162423361155109, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: m_IsActive value: 1 objectReference: {fileID: 0} @@ -537,8 +511,7 @@ PrefabInstance: m_SourcePrefab: {fileID: 100100000, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} --- !u!4 &260385159 stripped Transform: - m_CorrespondingSourceObject: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + m_CorrespondingSourceObject: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} m_PrefabInstance: {fileID: 260385158} m_PrefabAsset: {fileID: 0} --- !u!1001 &286121727 @@ -549,78 +522,63 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 324010153} m_Modifications: - - target: {fileID: 5614579871520246110, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 5614579871520246110, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_Name value: MediumDetailBlock (1) objectReference: {fileID: 0} - - target: {fileID: 5614579871520246110, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 5614579871520246110, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_IsActive value: 1 objectReference: {fileID: 0} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_RootOrder value: 7 objectReference: {fileID: 0} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_LocalScale.x value: 1.85 objectReference: {fileID: 0} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_LocalScale.z value: -1.33 objectReference: {fileID: 0} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_LocalPosition.x value: 2.33 objectReference: {fileID: 0} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_LocalPosition.z value: 2.96 objectReference: {fileID: 0} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_LocalRotation.w value: 0.9958844 objectReference: {fileID: 0} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_LocalRotation.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_LocalRotation.y value: -0.09063256 objectReference: {fileID: 0} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_LocalRotation.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: -10.4 objectReference: {fileID: 0} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} @@ -631,8 +589,7 @@ PrefabInstance: m_SourcePrefab: {fileID: 100100000, guid: bf5c1cd68667849578410288846be21f, type: 3} --- !u!4 &286121728 stripped Transform: - m_CorrespondingSourceObject: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + m_CorrespondingSourceObject: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} m_PrefabInstance: {fileID: 286121727} m_PrefabAsset: {fileID: 0} --- !u!1 &324010152 @@ -693,123 +650,99 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 324010153} m_Modifications: - - target: {fileID: 647100634928759288, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 647100634928759288, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: 'm_Materials.Array.data[0]' value: objectReference: {fileID: 2100000, guid: da0cf493aeabf402d984cd60dba953c7, type: 2} - - target: {fileID: 2311092278431101911, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 2311092278431101911, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: 'm_Materials.Array.data[0]' value: objectReference: {fileID: 2100000, guid: da0cf493aeabf402d984cd60dba953c7, type: 2} - - target: {fileID: 2405326085454660114, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 2405326085454660114, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: 'm_Materials.Array.data[0]' value: objectReference: {fileID: 2100000, guid: da0cf493aeabf402d984cd60dba953c7, type: 2} - - target: {fileID: 4160399171692449283, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 4160399171692449283, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: 'm_Materials.Array.data[0]' value: objectReference: {fileID: 2100000, guid: da0cf493aeabf402d984cd60dba953c7, type: 2} - - target: {fileID: 5305495742914275208, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 5305495742914275208, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: 'm_Materials.Array.data[0]' value: objectReference: {fileID: 2100000, guid: da0cf493aeabf402d984cd60dba953c7, type: 2} - - target: {fileID: 5614579871520246110, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 5614579871520246110, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_Name value: MediumDetailBlock (3) objectReference: {fileID: 0} - - target: {fileID: 5614579871520246110, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 5614579871520246110, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_IsActive value: 1 objectReference: {fileID: 0} - - target: {fileID: 6316268577651222673, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 6316268577651222673, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: 'm_Materials.Array.data[0]' value: objectReference: {fileID: 2100000, guid: da0cf493aeabf402d984cd60dba953c7, type: 2} - - target: {fileID: 6384562583074280830, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 6384562583074280830, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: 'm_Materials.Array.data[0]' value: objectReference: {fileID: 2100000, guid: da0cf493aeabf402d984cd60dba953c7, type: 2} - - target: {fileID: 7047033982303811672, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7047033982303811672, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: 'm_Materials.Array.data[0]' value: objectReference: {fileID: 2100000, guid: da0cf493aeabf402d984cd60dba953c7, type: 2} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_RootOrder value: 9 objectReference: {fileID: 0} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_LocalScale.y value: 3 objectReference: {fileID: 0} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_LocalScale.z value: -1 objectReference: {fileID: 0} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_LocalPosition.x value: -3.06 objectReference: {fileID: 0} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_LocalPosition.y value: 0.39 objectReference: {fileID: 0} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_LocalPosition.z value: 4.62 objectReference: {fileID: 0} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_LocalRotation.w value: 0.9464523 objectReference: {fileID: 0} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_LocalRotation.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_LocalRotation.y value: -0.32284385 objectReference: {fileID: 0} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_LocalRotation.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: -37.67 objectReference: {fileID: 0} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 8885271861618583922, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 8885271861618583922, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: 'm_Materials.Array.data[0]' value: objectReference: {fileID: 2100000, guid: da0cf493aeabf402d984cd60dba953c7, type: 2} @@ -820,8 +753,7 @@ PrefabInstance: m_SourcePrefab: {fileID: 100100000, guid: bf5c1cd68667849578410288846be21f, type: 3} --- !u!4 &469488224 stripped Transform: - m_CorrespondingSourceObject: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + m_CorrespondingSourceObject: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} m_PrefabInstance: {fileID: 469488223} m_PrefabAsset: {fileID: 0} --- !u!1001 &795358069 @@ -832,73 +764,59 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 324010153} m_Modifications: - - target: {fileID: 5614579871520246110, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 5614579871520246110, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_Name value: MediumDetailBlock (5) objectReference: {fileID: 0} - - target: {fileID: 5614579871520246110, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 5614579871520246110, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_IsActive value: 1 objectReference: {fileID: 0} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_RootOrder value: 11 objectReference: {fileID: 0} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_LocalScale.z value: -1 objectReference: {fileID: 0} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_LocalPosition.x value: -2.7 objectReference: {fileID: 0} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_LocalPosition.z value: 7.23 objectReference: {fileID: 0} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_LocalRotation.w value: 0.9125846 objectReference: {fileID: 0} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_LocalRotation.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_LocalRotation.y value: 0.408888 objectReference: {fileID: 0} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_LocalRotation.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 48.27 objectReference: {fileID: 0} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} @@ -909,14 +827,12 @@ PrefabInstance: m_SourcePrefab: {fileID: 100100000, guid: bf5c1cd68667849578410288846be21f, type: 3} --- !u!4 &795358070 stripped Transform: - m_CorrespondingSourceObject: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + m_CorrespondingSourceObject: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} m_PrefabInstance: {fileID: 795358069} m_PrefabAsset: {fileID: 0} --- !u!4 &846736960 stripped Transform: - m_CorrespondingSourceObject: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + m_CorrespondingSourceObject: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} m_PrefabInstance: {fileID: 1807506119} m_PrefabAsset: {fileID: 0} --- !u!1 &899316993 @@ -971,6 +887,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -992,6 +911,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -1046,108 +966,87 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 1768138160} m_Modifications: - - target: {fileID: 6308746673132675046, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6308746673132675046, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_Name value: CheckAssignedRenderPipelineAsset objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_Pivot.x value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_Pivot.y value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_AnchorMax.x value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_AnchorMax.y value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_AnchorMin.x value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_AnchorMin.y value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_SizeDelta.x value: 100 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_SizeDelta.y value: 100 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalPosition.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalRotation.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalRotation.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalRotation.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_AnchoredPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_AnchoredPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} @@ -1158,8 +1057,7 @@ PrefabInstance: m_SourcePrefab: {fileID: 100100000, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} --- !u!224 &963687073 stripped RectTransform: - m_CorrespondingSourceObject: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + m_CorrespondingSourceObject: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} m_PrefabInstance: {fileID: 963687072} m_PrefabAsset: {fileID: 0} --- !u!1001 &1009171314 @@ -1170,73 +1068,59 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 324010153} m_Modifications: - - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, - type: 3} + - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, type: 3} propertyPath: m_RootOrder value: 4 objectReference: {fileID: 0} - - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, - type: 3} + - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, type: 3} propertyPath: m_LocalScale.x value: -1.21 objectReference: {fileID: 0} - - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, - type: 3} + - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, type: 3} propertyPath: m_LocalScale.y value: 1 objectReference: {fileID: 0} - - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, - type: 3} + - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, type: 3} propertyPath: m_LocalPosition.x value: 2.615 objectReference: {fileID: 0} - - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, - type: 3} + - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, - type: 3} + - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, type: 3} propertyPath: m_LocalPosition.z value: 0.875 objectReference: {fileID: 0} - - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, - type: 3} + - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, type: 3} propertyPath: m_LocalRotation.w value: 0.640646 objectReference: {fileID: 0} - - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, - type: 3} + - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, type: 3} propertyPath: m_LocalRotation.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, - type: 3} + - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, type: 3} propertyPath: m_LocalRotation.y value: -0.76783645 objectReference: {fileID: 0} - - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, - type: 3} + - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, type: 3} propertyPath: m_LocalRotation.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, - type: 3} + - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, - type: 3} + - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: -100.32 objectReference: {fileID: 0} - - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, - type: 3} + - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 7387564562858411305, guid: e3a0052628345442fb1d3df2c06402b1, - type: 3} + - target: {fileID: 7387564562858411305, guid: e3a0052628345442fb1d3df2c06402b1, type: 3} propertyPath: m_Name value: HighDetailBlock (2) objectReference: {fileID: 0} @@ -1247,8 +1131,7 @@ PrefabInstance: m_SourcePrefab: {fileID: 100100000, guid: e3a0052628345442fb1d3df2c06402b1, type: 3} --- !u!4 &1009171315 stripped Transform: - m_CorrespondingSourceObject: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, - type: 3} + m_CorrespondingSourceObject: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, type: 3} m_PrefabInstance: {fileID: 1009171314} m_PrefabAsset: {fileID: 0} --- !u!1 &1058527128 @@ -1326,14 +1209,14 @@ Light: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1090784525} m_Enabled: 1 - serializedVersion: 11 + serializedVersion: 12 m_Type: 1 m_Color: {r: 1, g: 1, b: 1, a: 1} m_Intensity: 1 m_Range: 10 m_SpotAngle: 30 m_InnerSpotAngle: 21.80208 - m_CookieSize: 10 + m_CookieSize2D: {x: 10, y: 10} m_Shadows: m_Type: 2 m_Resolution: -1 @@ -1377,8 +1260,12 @@ Light: m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} m_UseBoundingSphereOverride: 0 m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 m_ShadowRadius: 0 m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 --- !u!4 &1090784527 Transform: m_ObjectHideFlags: 0 @@ -1406,17 +1293,23 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} m_Name: m_EditorClassIdentifier: - m_Version: 3 m_UsePipelineSettings: 1 m_AdditionalLightsShadowResolutionTier: 2 - m_LightLayerMask: 3 - m_RenderingLayers: 3 m_CustomShadowLayers: 0 - m_ShadowLayerMask: 1 - m_ShadowRenderingLayers: 1 m_LightCookieSize: {x: 1, y: 1} m_LightCookieOffset: {x: 0, y: 0} m_SoftShadowQuality: 1 + m_RenderingLayersMask: + serializedVersion: 0 + m_Bits: 3 + m_ShadowRenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_Version: 4 + m_LightLayerMask: 3 + m_ShadowLayerMask: 1 + m_RenderingLayers: 3 + m_ShadowRenderingLayers: 1 --- !u!1 &1094911255 GameObject: m_ObjectHideFlags: 0 @@ -1504,6 +1397,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -1525,6 +1421,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -1589,6 +1486,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 2 m_RendererPriority: 0 m_Materials: @@ -1610,6 +1510,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -1630,136 +1531,110 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 1768138160} m_Modifications: - - target: {fileID: 155458132493177538, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 155458132493177538, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_Name value: MainPanel objectReference: {fileID: 0} - - target: {fileID: 1638750836712682043, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 1638750836712682043, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_Text value: 3D Skybox objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_Pivot.x value: 1 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_Pivot.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_RootOrder value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_AnchorMax.x value: 1 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_AnchorMax.y value: 1 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_AnchorMin.x value: 1 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_AnchorMin.y value: 1 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_SizeDelta.x value: 400 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_SizeDelta.y value: 250 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalPosition.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalRotation.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalRotation.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalRotation.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_AnchoredPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_AnchoredPosition.y value: -250 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 4039968741557396746, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 4039968741557396746, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_Text value: 'This sample shows how camera stacking can be used to extend the game world. An overlay camera renders a miniature version of the world in pixels that havent been drawn to by the base camera. With some scripted translation of the overlay camera, we make the miniature backdrop seem full size. ' objectReference: {fileID: 0} - - target: {fileID: 4039968741557396746, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 4039968741557396746, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_FontData.m_MinSize value: 1 objectReference: {fileID: 0} - - target: {fileID: 4039968741557396746, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 4039968741557396746, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_FontData.m_FontSize value: 18 objectReference: {fileID: 0} @@ -1770,8 +1645,7 @@ PrefabInstance: m_SourcePrefab: {fileID: 100100000, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} --- !u!224 &1142061374 stripped RectTransform: - m_CorrespondingSourceObject: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + m_CorrespondingSourceObject: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} m_PrefabInstance: {fileID: 1142061373} m_PrefabAsset: {fileID: 0} --- !u!1 &1274199702 @@ -1858,14 +1732,14 @@ MonoBehaviour: m_ScreenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0} m_RequiresDepthTexture: 0 m_RequiresColorTexture: 0 - m_Version: 2 m_TaaSettings: - quality: 3 - frameInfluence: 0.1 - jitterScale: 1 - mipBias: 0 - varianceClampScale: 0.9 - contrastAdaptiveSharpening: 0 + m_Quality: 3 + m_FrameInfluence: 0.1 + m_JitterScale: 1 + m_MipBias: 0 + m_VarianceClampScale: 0.9 + m_ContrastAdaptiveSharpening: 0 + m_Version: 2 --- !u!20 &1274199707 Camera: m_ObjectHideFlags: 0 @@ -1925,98 +1799,79 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 324010153} m_Modifications: - - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: m_RootOrder value: 16 objectReference: {fileID: 0} - - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: m_LocalScale.x value: -1 objectReference: {fileID: 0} - - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: m_LocalScale.y value: 2 objectReference: {fileID: 0} - - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: m_LocalPosition.x value: 4.57 objectReference: {fileID: 0} - - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: m_LocalPosition.y value: 0.21 objectReference: {fileID: 0} - - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: m_LocalPosition.z value: 4.7 objectReference: {fileID: 0} - - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: m_LocalRotation.w value: -0.60111827 objectReference: {fileID: 0} - - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: m_LocalRotation.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: m_LocalRotation.y value: 0.7991601 objectReference: {fileID: 0} - - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: m_LocalRotation.z value: -0 objectReference: {fileID: 0} - - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: -466.1 objectReference: {fileID: 0} - - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 3073244601705979635, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 3073244601705979635, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: 'm_Materials.Array.data[0]' value: objectReference: {fileID: 2100000, guid: e3a93228db90c4c7dbd3b23103a258ca, type: 2} - - target: {fileID: 3381162423361155109, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 3381162423361155109, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: m_Name value: LowDetailBlock (4) objectReference: {fileID: 0} - - target: {fileID: 3381162423361155109, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 3381162423361155109, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: m_IsActive value: 1 objectReference: {fileID: 0} - - target: {fileID: 4295367783097986053, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 4295367783097986053, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: 'm_Materials.Array.data[0]' value: objectReference: {fileID: 2100000, guid: e3a93228db90c4c7dbd3b23103a258ca, type: 2} - - target: {fileID: 4785035840622656361, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 4785035840622656361, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: 'm_Materials.Array.data[0]' value: objectReference: {fileID: 2100000, guid: e3a93228db90c4c7dbd3b23103a258ca, type: 2} - - target: {fileID: 6537545415499986808, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 6537545415499986808, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: 'm_Materials.Array.data[0]' value: objectReference: {fileID: 2100000, guid: e3a93228db90c4c7dbd3b23103a258ca, type: 2} @@ -2027,8 +1882,7 @@ PrefabInstance: m_SourcePrefab: {fileID: 100100000, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} --- !u!4 &1299840604 stripped Transform: - m_CorrespondingSourceObject: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + m_CorrespondingSourceObject: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} m_PrefabInstance: {fileID: 1299840603} m_PrefabAsset: {fileID: 0} --- !u!1001 &1299917107 @@ -2039,78 +1893,63 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 324010153} m_Modifications: - - target: {fileID: 5614579871520246110, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 5614579871520246110, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_Name value: MediumDetailBlock (2) objectReference: {fileID: 0} - - target: {fileID: 5614579871520246110, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 5614579871520246110, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_IsActive value: 1 objectReference: {fileID: 0} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_RootOrder value: 8 objectReference: {fileID: 0} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_LocalScale.y value: 2 objectReference: {fileID: 0} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_LocalScale.z value: -1.48 objectReference: {fileID: 0} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_LocalPosition.x value: 0.21 objectReference: {fileID: 0} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_LocalPosition.y value: 0.183 objectReference: {fileID: 0} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_LocalPosition.z value: 4.44 objectReference: {fileID: 0} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_LocalRotation.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_LocalRotation.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_LocalRotation.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} @@ -2121,8 +1960,7 @@ PrefabInstance: m_SourcePrefab: {fileID: 100100000, guid: bf5c1cd68667849578410288846be21f, type: 3} --- !u!4 &1299917108 stripped Transform: - m_CorrespondingSourceObject: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + m_CorrespondingSourceObject: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} m_PrefabInstance: {fileID: 1299917107} m_PrefabAsset: {fileID: 0} --- !u!1 &1328597503 @@ -2177,6 +2015,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -2198,6 +2039,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -2280,14 +2122,14 @@ MonoBehaviour: m_ScreenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0} m_RequiresDepthTexture: 0 m_RequiresColorTexture: 0 - m_Version: 2 m_TaaSettings: - quality: 3 - frameInfluence: 0.1 - jitterScale: 1 - mipBias: 0 - varianceClampScale: 0.9 - contrastAdaptiveSharpening: 0 + m_Quality: 3 + m_FrameInfluence: 0.1 + m_JitterScale: 1 + m_MipBias: 0 + m_VarianceClampScale: 0.9 + m_ContrastAdaptiveSharpening: 0 + m_Version: 2 --- !u!20 &1376062147 Camera: m_ObjectHideFlags: 0 @@ -2405,6 +2247,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 2 m_RendererPriority: 0 m_Materials: @@ -2426,6 +2271,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -2446,73 +2292,59 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 324010153} m_Modifications: - - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: m_RootOrder value: 14 objectReference: {fileID: 0} - - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: m_LocalScale.y value: 4 objectReference: {fileID: 0} - - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: m_LocalPosition.x value: 2.09 objectReference: {fileID: 0} - - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: m_LocalPosition.y value: 0.64 objectReference: {fileID: 0} - - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: m_LocalPosition.z value: 5.74 objectReference: {fileID: 0} - - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: m_LocalRotation.w value: 0.6401098 objectReference: {fileID: 0} - - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: m_LocalRotation.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: m_LocalRotation.y value: -0.76828355 objectReference: {fileID: 0} - - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: m_LocalRotation.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: -100.4 objectReference: {fileID: 0} - - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 3381162423361155109, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 3381162423361155109, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: m_Name value: LowDetailBlock (2) objectReference: {fileID: 0} - - target: {fileID: 3381162423361155109, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 3381162423361155109, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: m_IsActive value: 1 objectReference: {fileID: 0} @@ -2523,8 +2355,7 @@ PrefabInstance: m_SourcePrefab: {fileID: 100100000, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} --- !u!4 &1637371228 stripped Transform: - m_CorrespondingSourceObject: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + m_CorrespondingSourceObject: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} m_PrefabInstance: {fileID: 1637371227} m_PrefabAsset: {fileID: 0} --- !u!1 &1638677137 @@ -2602,6 +2433,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -2623,6 +2457,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -2643,73 +2478,59 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 324010153} m_Modifications: - - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: m_RootOrder value: 15 objectReference: {fileID: 0} - - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: m_LocalScale.y value: 3 objectReference: {fileID: 0} - - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: m_LocalPosition.x value: 4.43 objectReference: {fileID: 0} - - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: m_LocalPosition.y value: 0.509 objectReference: {fileID: 0} - - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: m_LocalPosition.z value: 2.36 objectReference: {fileID: 0} - - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: m_LocalRotation.w value: -0.074804686 objectReference: {fileID: 0} - - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: m_LocalRotation.x value: -0 objectReference: {fileID: 0} - - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: m_LocalRotation.y value: -0.9971982 objectReference: {fileID: 0} - - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: m_LocalRotation.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: -188.58 objectReference: {fileID: 0} - - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 3381162423361155109, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 3381162423361155109, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: m_Name value: LowDetailBlock (3) objectReference: {fileID: 0} - - target: {fileID: 3381162423361155109, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 3381162423361155109, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: m_IsActive value: 1 objectReference: {fileID: 0} @@ -2720,8 +2541,7 @@ PrefabInstance: m_SourcePrefab: {fileID: 100100000, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} --- !u!4 &1646251152 stripped Transform: - m_CorrespondingSourceObject: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + m_CorrespondingSourceObject: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} m_PrefabInstance: {fileID: 1646251151} m_PrefabAsset: {fileID: 0} --- !u!1 &1690644000 @@ -2798,6 +2618,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -2819,6 +2642,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -2841,7 +2665,7 @@ GameObject: m_Component: - component: {fileID: 1720569097} - component: {fileID: 1720569096} - - component: {fileID: 1720569095} + - component: {fileID: 1720569098} m_Layer: 0 m_Name: EventSystem m_TagString: Untagged @@ -2849,26 +2673,6 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!114 &1720569095 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1720569094} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3} - m_Name: - m_EditorClassIdentifier: - m_SendPointerHoverToParent: 1 - m_HorizontalAxis: Horizontal - m_VerticalAxis: Vertical - m_SubmitButton: Submit - m_CancelButton: Cancel - m_InputActionsPerSecond: 10 - m_RepeatDelay: 0.5 - m_ForceModuleActive: 0 --- !u!114 &1720569096 MonoBehaviour: m_ObjectHideFlags: 0 @@ -2899,6 +2703,37 @@ Transform: m_Children: [] m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1720569098 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1720569094} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 01614664b831546d2ae94a42149d80ac, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.InputSystem::UnityEngine.InputSystem.UI.InputSystemUIInputModule + m_SendPointerHoverToParent: 1 + m_MoveRepeatDelay: 0.5 + m_MoveRepeatRate: 0.1 + m_XRTrackingOrigin: {fileID: 0} + m_ActionsAsset: {fileID: -944628639613478452, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_PointAction: {fileID: -1654692200621890270, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_MoveAction: {fileID: -8784545083839296357, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_SubmitAction: {fileID: 392368643174621059, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_CancelAction: {fileID: 7727032971491509709, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_LeftClickAction: {fileID: 3001919216989983466, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_MiddleClickAction: {fileID: -2185481485913320682, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_RightClickAction: {fileID: -4090225696740746782, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_ScrollWheelAction: {fileID: 6240969308177333660, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_TrackedDevicePositionAction: {fileID: 6564999863303420839, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_TrackedDeviceOrientationAction: {fileID: 7970375526676320489, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_DeselectOnBackgroundClick: 1 + m_PointerBehavior: 0 + m_CursorLockBehavior: 0 + m_ScrollDeltaPerTick: 6 --- !u!1 &1722892045 GameObject: m_ObjectHideFlags: 0 @@ -2940,14 +2775,14 @@ Light: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1722892045} m_Enabled: 1 - serializedVersion: 11 + serializedVersion: 12 m_Type: 1 m_Color: {r: 1, g: 1, b: 1, a: 1} m_Intensity: 0.3 m_Range: 10 m_SpotAngle: 30 m_InnerSpotAngle: 21.80208 - m_CookieSize: 10 + m_CookieSize2D: {x: 10, y: 10} m_Shadows: m_Type: 0 m_Resolution: -1 @@ -2991,8 +2826,12 @@ Light: m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} m_UseBoundingSphereOverride: 0 m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 m_ShadowRadius: 0 m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 --- !u!114 &1722892048 MonoBehaviour: m_ObjectHideFlags: 0 @@ -3005,17 +2844,23 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} m_Name: m_EditorClassIdentifier: - m_Version: 3 m_UsePipelineSettings: 1 m_AdditionalLightsShadowResolutionTier: 2 - m_LightLayerMask: 1 - m_RenderingLayers: 1 m_CustomShadowLayers: 0 - m_ShadowLayerMask: 1 - m_ShadowRenderingLayers: 1 m_LightCookieSize: {x: 1, y: 1} m_LightCookieOffset: {x: 0, y: 0} m_SoftShadowQuality: 1 + m_RenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_ShadowRenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_Version: 4 + m_LightLayerMask: 1 + m_ShadowLayerMask: 1 + m_RenderingLayers: 1 + m_ShadowRenderingLayers: 1 --- !u!1 &1728094510 GameObject: m_ObjectHideFlags: 0 @@ -3068,6 +2913,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 2 m_RendererPriority: 0 m_Materials: @@ -3089,6 +2937,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -3177,7 +3026,7 @@ Canvas: m_OverrideSorting: 0 m_OverridePixelPerfect: 0 m_SortingBucketNormalizedSize: 0 - m_VertexColorAlwaysGammaSpace: 0 + m_VertexColorAlwaysGammaSpace: 1 m_AdditionalShaderChannelsFlag: 0 m_UpdateRectTransformForStandalone: 0 m_SortingLayerID: 0 @@ -3212,63 +3061,51 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 324010153} m_Modifications: - - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, - type: 3} + - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, type: 3} propertyPath: m_RootOrder value: 5 objectReference: {fileID: 0} - - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, - type: 3} + - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, type: 3} propertyPath: m_LocalPosition.x value: -3.3 objectReference: {fileID: 0} - - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, - type: 3} + - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, - type: 3} + - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, type: 3} propertyPath: m_LocalPosition.z value: 1.47 objectReference: {fileID: 0} - - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, - type: 3} + - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, type: 3} propertyPath: m_LocalRotation.w value: 0.68993556 objectReference: {fileID: 0} - - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, - type: 3} + - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, type: 3} propertyPath: m_LocalRotation.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, - type: 3} + - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, type: 3} propertyPath: m_LocalRotation.y value: -0.7238709 objectReference: {fileID: 0} - - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, - type: 3} + - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, type: 3} propertyPath: m_LocalRotation.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, - type: 3} + - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, - type: 3} + - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: -92.75 objectReference: {fileID: 0} - - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, - type: 3} + - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 7387564562858411305, guid: e3a0052628345442fb1d3df2c06402b1, - type: 3} + - target: {fileID: 7387564562858411305, guid: e3a0052628345442fb1d3df2c06402b1, type: 3} propertyPath: m_Name value: HighDetailBlock (3) objectReference: {fileID: 0} @@ -3279,8 +3116,7 @@ PrefabInstance: m_SourcePrefab: {fileID: 100100000, guid: e3a0052628345442fb1d3df2c06402b1, type: 3} --- !u!4 &1774754270 stripped Transform: - m_CorrespondingSourceObject: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, - type: 3} + m_CorrespondingSourceObject: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, type: 3} m_PrefabInstance: {fileID: 1774754269} m_PrefabAsset: {fileID: 0} --- !u!1 &1806323831 @@ -3328,123 +3164,99 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 324010153} m_Modifications: - - target: {fileID: 647100634928759288, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 647100634928759288, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: 'm_Materials.Array.data[0]' value: objectReference: {fileID: 2100000, guid: da0cf493aeabf402d984cd60dba953c7, type: 2} - - target: {fileID: 2311092278431101911, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 2311092278431101911, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: 'm_Materials.Array.data[0]' value: objectReference: {fileID: 2100000, guid: da0cf493aeabf402d984cd60dba953c7, type: 2} - - target: {fileID: 2405326085454660114, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 2405326085454660114, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: 'm_Materials.Array.data[0]' value: objectReference: {fileID: 2100000, guid: da0cf493aeabf402d984cd60dba953c7, type: 2} - - target: {fileID: 4160399171692449283, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 4160399171692449283, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: 'm_Materials.Array.data[0]' value: objectReference: {fileID: 2100000, guid: da0cf493aeabf402d984cd60dba953c7, type: 2} - - target: {fileID: 5305495742914275208, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 5305495742914275208, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: 'm_Materials.Array.data[0]' value: objectReference: {fileID: 2100000, guid: da0cf493aeabf402d984cd60dba953c7, type: 2} - - target: {fileID: 5614579871520246110, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 5614579871520246110, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_Name value: MediumDetailBlock (6) objectReference: {fileID: 0} - - target: {fileID: 5614579871520246110, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 5614579871520246110, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_IsActive value: 1 objectReference: {fileID: 0} - - target: {fileID: 6316268577651222673, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 6316268577651222673, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: 'm_Materials.Array.data[0]' value: objectReference: {fileID: 2100000, guid: da0cf493aeabf402d984cd60dba953c7, type: 2} - - target: {fileID: 6384562583074280830, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 6384562583074280830, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: 'm_Materials.Array.data[0]' value: objectReference: {fileID: 2100000, guid: da0cf493aeabf402d984cd60dba953c7, type: 2} - - target: {fileID: 7047033982303811672, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7047033982303811672, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: 'm_Materials.Array.data[0]' value: objectReference: {fileID: 2100000, guid: da0cf493aeabf402d984cd60dba953c7, type: 2} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_RootOrder value: 17 objectReference: {fileID: 0} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_LocalScale.y value: 3 objectReference: {fileID: 0} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_LocalScale.z value: -1 objectReference: {fileID: 0} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_LocalPosition.x value: -5.32 objectReference: {fileID: 0} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_LocalPosition.y value: 0.39 objectReference: {fileID: 0} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_LocalPosition.z value: 3.18 objectReference: {fileID: 0} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_LocalRotation.w value: 0.99499476 objectReference: {fileID: 0} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_LocalRotation.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_LocalRotation.y value: 0.09992754 objectReference: {fileID: 0} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_LocalRotation.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 11.47 objectReference: {fileID: 0} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 8885271861618583922, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 8885271861618583922, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: 'm_Materials.Array.data[0]' value: objectReference: {fileID: 2100000, guid: da0cf493aeabf402d984cd60dba953c7, type: 2} @@ -3505,6 +3317,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 2 m_RendererPriority: 0 m_Materials: @@ -3526,6 +3341,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -3546,73 +3362,59 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 324010153} m_Modifications: - - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, - type: 3} + - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, type: 3} propertyPath: m_RootOrder value: 3 objectReference: {fileID: 0} - - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, - type: 3} + - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, type: 3} propertyPath: m_LocalScale.x value: -1.21 objectReference: {fileID: 0} - - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, - type: 3} + - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, type: 3} propertyPath: m_LocalScale.y value: 1 objectReference: {fileID: 0} - - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, - type: 3} + - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, type: 3} propertyPath: m_LocalPosition.x value: 0.453 objectReference: {fileID: 0} - - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, - type: 3} + - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, - type: 3} + - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, type: 3} propertyPath: m_LocalPosition.z value: 1.926 objectReference: {fileID: 0} - - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, - type: 3} + - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, type: 3} propertyPath: m_LocalRotation.w value: 0.9917161 objectReference: {fileID: 0} - - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, - type: 3} + - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, type: 3} propertyPath: m_LocalRotation.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, - type: 3} + - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, type: 3} propertyPath: m_LocalRotation.y value: -0.12844945 objectReference: {fileID: 0} - - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, - type: 3} + - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, type: 3} propertyPath: m_LocalRotation.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, - type: 3} + - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, - type: 3} + - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: -14.76 objectReference: {fileID: 0} - - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, - type: 3} + - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 7387564562858411305, guid: e3a0052628345442fb1d3df2c06402b1, - type: 3} + - target: {fileID: 7387564562858411305, guid: e3a0052628345442fb1d3df2c06402b1, type: 3} propertyPath: m_Name value: HighDetailBlock (1) objectReference: {fileID: 0} @@ -3623,8 +3425,7 @@ PrefabInstance: m_SourcePrefab: {fileID: 100100000, guid: e3a0052628345442fb1d3df2c06402b1, type: 3} --- !u!4 &2030759812 stripped Transform: - m_CorrespondingSourceObject: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, - type: 3} + m_CorrespondingSourceObject: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, type: 3} m_PrefabInstance: {fileID: 2030759811} m_PrefabAsset: {fileID: 0} --- !u!1001 &2106200459 @@ -3635,73 +3436,59 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 324010153} m_Modifications: - - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: m_RootOrder value: 18 objectReference: {fileID: 0} - - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: m_LocalScale.y value: 3 objectReference: {fileID: 0} - - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: m_LocalPosition.x value: 4.48 objectReference: {fileID: 0} - - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: m_LocalPosition.y value: 0.408 objectReference: {fileID: 0} - - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: m_LocalPosition.z value: 0.43 objectReference: {fileID: 0} - - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: m_LocalRotation.w value: -0.982548 objectReference: {fileID: 0} - - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: m_LocalRotation.x value: -0 objectReference: {fileID: 0} - - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: m_LocalRotation.y value: -0.18600951 objectReference: {fileID: 0} - - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: m_LocalRotation.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: -338.56 objectReference: {fileID: 0} - - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 3381162423361155109, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 3381162423361155109, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: m_Name value: LowDetailBlock (5) objectReference: {fileID: 0} - - target: {fileID: 3381162423361155109, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 3381162423361155109, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: m_IsActive value: 1 objectReference: {fileID: 0} @@ -3712,8 +3499,7 @@ PrefabInstance: m_SourcePrefab: {fileID: 100100000, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} --- !u!4 &2106200460 stripped Transform: - m_CorrespondingSourceObject: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + m_CorrespondingSourceObject: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} m_PrefabInstance: {fileID: 2106200459} m_PrefabAsset: {fileID: 0} --- !u!1001 &2405326085323365746 @@ -3724,73 +3510,59 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 324010153} m_Modifications: - - target: {fileID: 5614579871520246110, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 5614579871520246110, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_Name value: MediumDetailBlock objectReference: {fileID: 0} - - target: {fileID: 5614579871520246110, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 5614579871520246110, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_IsActive value: 1 objectReference: {fileID: 0} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_RootOrder value: 6 objectReference: {fileID: 0} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_LocalScale.z value: -1 objectReference: {fileID: 0} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_LocalPosition.x value: -1.25 objectReference: {fileID: 0} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_LocalPosition.z value: 3.93 objectReference: {fileID: 0} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_LocalRotation.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_LocalRotation.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_LocalRotation.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + - target: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} @@ -3801,14 +3573,12 @@ PrefabInstance: m_SourcePrefab: {fileID: 100100000, guid: bf5c1cd68667849578410288846be21f, type: 3} --- !u!4 &2405326085323365747 stripped Transform: - m_CorrespondingSourceObject: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, - type: 3} + m_CorrespondingSourceObject: {fileID: 7535691003289749542, guid: bf5c1cd68667849578410288846be21f, type: 3} m_PrefabInstance: {fileID: 2405326085323365746} m_PrefabAsset: {fileID: 0} --- !u!4 &3951349725335854137 stripped Transform: - m_CorrespondingSourceObject: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + m_CorrespondingSourceObject: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} m_PrefabInstance: {fileID: 4414819850704694628} m_PrefabAsset: {fileID: 0} --- !u!1001 &4414819850704694628 @@ -3819,73 +3589,59 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 324010153} m_Modifications: - - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: m_RootOrder value: 12 objectReference: {fileID: 0} - - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: m_LocalScale.y value: 3 objectReference: {fileID: 0} - - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: m_LocalPosition.x value: -1.13 objectReference: {fileID: 0} - - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: m_LocalPosition.y value: 0.429 objectReference: {fileID: 0} - - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: m_LocalPosition.z value: 6.49 objectReference: {fileID: 0} - - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: m_LocalRotation.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: m_LocalRotation.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: m_LocalRotation.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 833892573719540061, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 3381162423361155109, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 3381162423361155109, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: m_Name value: LowDetailBlock objectReference: {fileID: 0} - - target: {fileID: 3381162423361155109, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, - type: 3} + - target: {fileID: 3381162423361155109, guid: 2ed4c04b2b9224bf4b2d027712e25dbc, type: 3} propertyPath: m_IsActive value: 1 objectReference: {fileID: 0} @@ -3902,68 +3658,55 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 324010153} m_Modifications: - - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, - type: 3} + - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, type: 3} propertyPath: m_RootOrder value: 2 objectReference: {fileID: 0} - - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, - type: 3} + - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, type: 3} propertyPath: m_LocalScale.z value: 1 objectReference: {fileID: 0} - - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, - type: 3} + - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, type: 3} propertyPath: m_LocalPosition.x value: -1.2200012 objectReference: {fileID: 0} - - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, - type: 3} + - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, - type: 3} + - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, type: 3} propertyPath: m_LocalPosition.z value: 1.8599999 objectReference: {fileID: 0} - - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, - type: 3} + - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, - type: 3} + - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, type: 3} propertyPath: m_LocalRotation.x value: -0 objectReference: {fileID: 0} - - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, - type: 3} + - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, type: 3} propertyPath: m_LocalRotation.y value: -0 objectReference: {fileID: 0} - - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, - type: 3} + - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, type: 3} propertyPath: m_LocalRotation.z value: -0 objectReference: {fileID: 0} - - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, - type: 3} + - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, - type: 3} + - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, - type: 3} + - target: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 7387564562858411305, guid: e3a0052628345442fb1d3df2c06402b1, - type: 3} + - target: {fileID: 7387564562858411305, guid: e3a0052628345442fb1d3df2c06402b1, type: 3} propertyPath: m_Name value: HighDetailBlock objectReference: {fileID: 0} @@ -3974,8 +3717,7 @@ PrefabInstance: m_SourcePrefab: {fileID: 100100000, guid: e3a0052628345442fb1d3df2c06402b1, type: 3} --- !u!4 &6539210160032705008 stripped Transform: - m_CorrespondingSourceObject: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, - type: 3} + m_CorrespondingSourceObject: {fileID: 4898578820652860497, guid: e3a0052628345442fb1d3df2c06402b1, type: 3} m_PrefabInstance: {fileID: 6539210160032705007} m_PrefabAsset: {fileID: 0} --- !u!1660057539 &9223372036854775807 diff --git a/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/CameraStacking/MixedFOV/MixedFOV.unity b/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/CameraStacking/MixedFOV/MixedFOV.unity index 5ae86f24fe4..15f0a2c0b82 100644 --- a/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/CameraStacking/MixedFOV/MixedFOV.unity +++ b/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/CameraStacking/MixedFOV/MixedFOV.unity @@ -38,12 +38,12 @@ RenderSettings: m_ReflectionIntensity: 1 m_CustomReflection: {fileID: 0} m_Sun: {fileID: 705507994} - m_IndirectSpecularColor: {r: 0.18028414, g: 0.22571535, b: 0.3069227, a: 1} m_UseRadianceAmbientProbe: 0 --- !u!157 &3 LightmapSettings: m_ObjectHideFlags: 0 - serializedVersion: 12 + serializedVersion: 13 + m_BakeOnSceneLoad: 0 m_GISettings: serializedVersion: 2 m_BounceScale: 1 @@ -93,10 +93,8 @@ LightmapSettings: m_ExportTrainingData: 0 m_TrainingDataDestination: TrainingData m_LightProbeSampleCountMultiplier: 4 - m_LightingDataAsset: {fileID: 112000000, guid: 47278f9d178fc485faab8cd297d0ce17, - type: 2} - m_LightingSettings: {fileID: 4890085278179872738, guid: b82eeb1943bb545a9a1d312938518ac6, - type: 2} + m_LightingDataAsset: {fileID: 112000000, guid: 47278f9d178fc485faab8cd297d0ce17, type: 2} + m_LightingSettings: {fileID: 4890085278179872738, guid: b82eeb1943bb545a9a1d312938518ac6, type: 2} --- !u!196 &4 NavMeshSettings: serializedVersion: 2 @@ -181,6 +179,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -202,6 +203,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -289,6 +291,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -310,6 +315,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -344,10 +350,10 @@ Rigidbody: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 67584132} - serializedVersion: 4 + serializedVersion: 5 m_Mass: 1 - m_Drag: 0 - m_AngularDrag: 0.05 + m_LinearDamping: 0 + m_AngularDamping: 0.05 m_CenterOfMass: {x: 0, y: 0, z: 0} m_InertiaTensor: {x: 1, y: 1, z: 1} m_InertiaRotation: {x: 0, y: 0, z: 0, w: 1} @@ -440,7 +446,7 @@ Canvas: m_OverrideSorting: 0 m_OverridePixelPerfect: 0 m_SortingBucketNormalizedSize: 0 - m_VertexColorAlwaysGammaSpace: 0 + m_VertexColorAlwaysGammaSpace: 1 m_AdditionalShaderChannelsFlag: 1 m_UpdateRectTransformForStandalone: 0 m_SortingLayerID: 0 @@ -527,6 +533,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -548,6 +557,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -582,10 +592,10 @@ Rigidbody: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 156759404} - serializedVersion: 4 + serializedVersion: 5 m_Mass: 1 - m_Drag: 0 - m_AngularDrag: 0.05 + m_LinearDamping: 0 + m_AngularDamping: 0.05 m_CenterOfMass: {x: 0, y: 0, z: 0} m_InertiaTensor: {x: 1, y: 1, z: 1} m_InertiaRotation: {x: 0, y: 0, z: 0, w: 1} @@ -662,6 +672,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -683,6 +696,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -717,10 +731,10 @@ Rigidbody: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 164721796} - serializedVersion: 4 + serializedVersion: 5 m_Mass: 1 - m_Drag: 0 - m_AngularDrag: 0.05 + m_LinearDamping: 0 + m_AngularDamping: 0.05 m_CenterOfMass: {x: 0, y: 0, z: 0} m_InertiaTensor: {x: 1, y: 1, z: 1} m_InertiaRotation: {x: 0, y: 0, z: 0, w: 1} @@ -789,6 +803,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -810,6 +827,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -882,6 +900,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -903,6 +924,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -937,10 +959,10 @@ Rigidbody: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 385566019} - serializedVersion: 4 + serializedVersion: 5 m_Mass: 1 - m_Drag: 0 - m_AngularDrag: 0.05 + m_LinearDamping: 0 + m_AngularDamping: 0.05 m_CenterOfMass: {x: 0, y: 0, z: 0} m_InertiaTensor: {x: 1, y: 1, z: 1} m_InertiaRotation: {x: 0, y: 0, z: 0, w: 1} @@ -965,108 +987,87 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 131481531} m_Modifications: - - target: {fileID: 6308746673132675046, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6308746673132675046, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_Name value: CheckAssignedRenderPipelineAsset objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_Pivot.x value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_Pivot.y value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_AnchorMax.x value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_AnchorMax.y value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_AnchorMin.x value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_AnchorMin.y value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_SizeDelta.x value: 100 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_SizeDelta.y value: 100 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalPosition.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalRotation.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalRotation.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalRotation.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_AnchoredPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_AnchoredPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} @@ -1077,8 +1078,7 @@ PrefabInstance: m_SourcePrefab: {fileID: 100100000, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} --- !u!224 &497481553 stripped RectTransform: - m_CorrespondingSourceObject: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + m_CorrespondingSourceObject: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} m_PrefabInstance: {fileID: 497481552} m_PrefabAsset: {fileID: 0} --- !u!1 &567206875 @@ -1118,8 +1118,7 @@ Transform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!4 &610111258 stripped Transform: - m_CorrespondingSourceObject: {fileID: 6383575433952177525, guid: a380b55be3e354df6a4bffc3631467c0, - type: 3} + m_CorrespondingSourceObject: {fileID: 6383575433952177525, guid: a380b55be3e354df6a4bffc3631467c0, type: 3} m_PrefabInstance: {fileID: 6383575434562151023} m_PrefabAsset: {fileID: 0} --- !u!1 &705507993 @@ -1148,14 +1147,14 @@ Light: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 705507993} m_Enabled: 1 - serializedVersion: 11 + serializedVersion: 12 m_Type: 1 m_Color: {r: 1, g: 1, b: 1, a: 1} m_Intensity: 1 m_Range: 10 m_SpotAngle: 30 m_InnerSpotAngle: 21.802082 - m_CookieSize: 10 + m_CookieSize2D: {x: 10, y: 10} m_Shadows: m_Type: 2 m_Resolution: -1 @@ -1199,8 +1198,12 @@ Light: m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} m_UseBoundingSphereOverride: 0 m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 m_ShadowRadius: 0 m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 --- !u!4 &705507995 Transform: m_ObjectHideFlags: 0 @@ -1228,17 +1231,23 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} m_Name: m_EditorClassIdentifier: - m_Version: 3 m_UsePipelineSettings: 1 m_AdditionalLightsShadowResolutionTier: 2 - m_LightLayerMask: 1 - m_RenderingLayers: 1 m_CustomShadowLayers: 0 - m_ShadowLayerMask: 1 - m_ShadowRenderingLayers: 1 m_LightCookieSize: {x: 1, y: 1} m_LightCookieOffset: {x: 0, y: 0} m_SoftShadowQuality: 1 + m_RenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_ShadowRenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_Version: 4 + m_LightLayerMask: 1 + m_ShadowLayerMask: 1 + m_RenderingLayers: 1 + m_ShadowRenderingLayers: 1 --- !u!1 &742501539 GameObject: m_ObjectHideFlags: 0 @@ -1299,6 +1308,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -1320,6 +1332,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -1354,10 +1367,10 @@ Rigidbody: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 742501539} - serializedVersion: 4 + serializedVersion: 5 m_Mass: 1 - m_Drag: 0 - m_AngularDrag: 0.05 + m_LinearDamping: 0 + m_AngularDamping: 0.05 m_CenterOfMass: {x: 0, y: 0, z: 0} m_InertiaTensor: {x: 1, y: 1, z: 1} m_InertiaRotation: {x: 0, y: 0, z: 0, w: 1} @@ -1434,6 +1447,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -1455,6 +1471,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -1489,10 +1506,10 @@ Rigidbody: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 922637794} - serializedVersion: 4 + serializedVersion: 5 m_Mass: 1 - m_Drag: 0 - m_AngularDrag: 0.05 + m_LinearDamping: 0 + m_AngularDamping: 0.05 m_CenterOfMass: {x: 0, y: 0, z: 0} m_InertiaTensor: {x: 1, y: 1, z: 1} m_InertiaRotation: {x: 0, y: 0, z: 0, w: 1} @@ -1569,6 +1586,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -1590,6 +1610,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -1624,10 +1645,10 @@ Rigidbody: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1062089488} - serializedVersion: 4 + serializedVersion: 5 m_Mass: 1 - m_Drag: 0 - m_AngularDrag: 0.05 + m_LinearDamping: 0 + m_AngularDamping: 0.05 m_CenterOfMass: {x: 0, y: 0, z: 0} m_InertiaTensor: {x: 1, y: 1, z: 1} m_InertiaRotation: {x: 0, y: 0, z: 0, w: 1} @@ -1696,6 +1717,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -1717,6 +1741,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -1789,6 +1814,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -1810,6 +1838,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -1844,10 +1873,10 @@ Rigidbody: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1402436725} - serializedVersion: 4 + serializedVersion: 5 m_Mass: 1 - m_Drag: 0 - m_AngularDrag: 0.05 + m_LinearDamping: 0 + m_AngularDamping: 0.05 m_CenterOfMass: {x: 0, y: 0, z: 0} m_InertiaTensor: {x: 1, y: 1, z: 1} m_InertiaRotation: {x: 0, y: 0, z: 0, w: 1} @@ -1934,14 +1963,14 @@ MonoBehaviour: m_ScreenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0} m_RequiresDepthTexture: 0 m_RequiresColorTexture: 0 - m_Version: 2 m_TaaSettings: - quality: 3 - frameInfluence: 0.1 - jitterScale: 1 - mipBias: 0 - varianceClampScale: 0.9 - contrastAdaptiveSharpening: 0 + m_Quality: 3 + m_FrameInfluence: 0.1 + m_JitterScale: 1 + m_MipBias: 0 + m_VarianceClampScale: 0.9 + m_ContrastAdaptiveSharpening: 0 + m_Version: 2 --- !u!20 &1434764562 Camera: m_ObjectHideFlags: 0 @@ -2091,6 +2120,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -2112,6 +2144,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -2134,7 +2167,7 @@ GameObject: m_Component: - component: {fileID: 1574701477} - component: {fileID: 1574701476} - - component: {fileID: 1574701475} + - component: {fileID: 1574701478} m_Layer: 0 m_Name: EventSystem m_TagString: Untagged @@ -2142,26 +2175,6 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!114 &1574701475 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1574701474} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3} - m_Name: - m_EditorClassIdentifier: - m_SendPointerHoverToParent: 1 - m_HorizontalAxis: Horizontal - m_VerticalAxis: Vertical - m_SubmitButton: Submit - m_CancelButton: Cancel - m_InputActionsPerSecond: 10 - m_RepeatDelay: 0.5 - m_ForceModuleActive: 0 --- !u!114 &1574701476 MonoBehaviour: m_ObjectHideFlags: 0 @@ -2192,6 +2205,37 @@ Transform: m_Children: [] m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1574701478 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1574701474} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 01614664b831546d2ae94a42149d80ac, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.InputSystem::UnityEngine.InputSystem.UI.InputSystemUIInputModule + m_SendPointerHoverToParent: 1 + m_MoveRepeatDelay: 0.5 + m_MoveRepeatRate: 0.1 + m_XRTrackingOrigin: {fileID: 0} + m_ActionsAsset: {fileID: -944628639613478452, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_PointAction: {fileID: -1654692200621890270, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_MoveAction: {fileID: -8784545083839296357, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_SubmitAction: {fileID: 392368643174621059, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_CancelAction: {fileID: 7727032971491509709, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_LeftClickAction: {fileID: 3001919216989983466, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_MiddleClickAction: {fileID: -2185481485913320682, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_RightClickAction: {fileID: -4090225696740746782, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_ScrollWheelAction: {fileID: 6240969308177333660, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_TrackedDevicePositionAction: {fileID: 6564999863303420839, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_TrackedDeviceOrientationAction: {fileID: 7970375526676320489, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_DeselectOnBackgroundClick: 1 + m_PointerBehavior: 0 + m_CursorLockBehavior: 0 + m_ScrollDeltaPerTick: 6 --- !u!1 &1592661739 GameObject: m_ObjectHideFlags: 0 @@ -2252,6 +2296,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -2273,6 +2320,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -2360,6 +2408,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -2381,6 +2432,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -2415,10 +2467,10 @@ Rigidbody: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1667562485} - serializedVersion: 4 + serializedVersion: 5 m_Mass: 1 - m_Drag: 0 - m_AngularDrag: 0.05 + m_LinearDamping: 0 + m_AngularDamping: 0.05 m_CenterOfMass: {x: 0, y: 0, z: 0} m_InertiaTensor: {x: 1, y: 1, z: 1} m_InertiaRotation: {x: 0, y: 0, z: 0, w: 1} @@ -2495,6 +2547,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -2516,6 +2571,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -2551,123 +2607,99 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 131481531} m_Modifications: - - target: {fileID: 155458132493177538, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 155458132493177538, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_Name value: MainPanel objectReference: {fileID: 0} - - target: {fileID: 1638750836712682043, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 1638750836712682043, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_Text value: Mixed FOV objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_Pivot.x value: 1 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_Pivot.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_RootOrder value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_AnchorMax.x value: 1 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_AnchorMax.y value: 1 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_AnchorMin.x value: 1 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_AnchorMin.y value: 1 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_SizeDelta.x value: 400 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_SizeDelta.y value: 250 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalPosition.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalRotation.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalRotation.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalRotation.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_AnchoredPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_AnchoredPosition.y value: -250 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 4039968741557396746, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 4039968741557396746, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_Text value: This sample shows how Camera Stacking can be used in an FPS game to prevent the gun from clipping into walls. This setup also makes it possible @@ -2680,8 +2712,7 @@ PrefabInstance: m_SourcePrefab: {fileID: 100100000, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} --- !u!224 &1739120311 stripped RectTransform: - m_CorrespondingSourceObject: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + m_CorrespondingSourceObject: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} m_PrefabInstance: {fileID: 1739120310} m_PrefabAsset: {fileID: 0} --- !u!1 &1823617472 @@ -2744,6 +2775,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -2765,6 +2799,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -2852,6 +2887,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -2873,6 +2911,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -2907,10 +2946,10 @@ Rigidbody: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1856286178} - serializedVersion: 4 + serializedVersion: 5 m_Mass: 1 - m_Drag: 0 - m_AngularDrag: 0.05 + m_LinearDamping: 0 + m_AngularDamping: 0.05 m_CenterOfMass: {x: 0, y: 0, z: 0} m_InertiaTensor: {x: 1, y: 1, z: 1} m_InertiaRotation: {x: 0, y: 0, z: 0, w: 1} @@ -2979,6 +3018,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -3000,6 +3042,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -3038,14 +3081,14 @@ Light: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1862309426} m_Enabled: 1 - serializedVersion: 11 + serializedVersion: 12 m_Type: 1 m_Color: {r: 1, g: 1, b: 1, a: 1} m_Intensity: 0.5 m_Range: 10 m_SpotAngle: 30 m_InnerSpotAngle: 21.802082 - m_CookieSize: 10 + m_CookieSize2D: {x: 10, y: 10} m_Shadows: m_Type: 0 m_Resolution: -1 @@ -3089,8 +3132,12 @@ Light: m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} m_UseBoundingSphereOverride: 0 m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 m_ShadowRadius: 0 m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 --- !u!4 &1862309428 Transform: m_ObjectHideFlags: 0 @@ -3118,17 +3165,23 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} m_Name: m_EditorClassIdentifier: - m_Version: 3 m_UsePipelineSettings: 1 m_AdditionalLightsShadowResolutionTier: 2 - m_LightLayerMask: 1 - m_RenderingLayers: 1 m_CustomShadowLayers: 0 - m_ShadowLayerMask: 1 - m_ShadowRenderingLayers: 1 m_LightCookieSize: {x: 1, y: 1} m_LightCookieOffset: {x: 0, y: 0} m_SoftShadowQuality: 1 + m_RenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_ShadowRenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_Version: 4 + m_LightLayerMask: 1 + m_ShadowLayerMask: 1 + m_RenderingLayers: 1 + m_ShadowRenderingLayers: 1 --- !u!1 &1913427150 GameObject: m_ObjectHideFlags: 0 @@ -3189,6 +3242,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -3210,6 +3266,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -3297,6 +3354,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -3318,6 +3378,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -3352,10 +3413,10 @@ Rigidbody: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2042961011} - serializedVersion: 4 + serializedVersion: 5 m_Mass: 1 - m_Drag: 0 - m_AngularDrag: 0.05 + m_LinearDamping: 0 + m_AngularDamping: 0.05 m_CenterOfMass: {x: 0, y: 0, z: 0} m_InertiaTensor: {x: 1, y: 1, z: 1} m_InertiaRotation: {x: 0, y: 0, z: 0, w: 1} @@ -3384,163 +3445,131 @@ PrefabInstance: propertyPath: 'm_Materials.Array.data[0]' value: objectReference: {fileID: 2100000, guid: 0889dee21b18543c087760abd0df15ec, type: 2} - - target: {fileID: 4040421616070537987, guid: a380b55be3e354df6a4bffc3631467c0, - type: 3} + - target: {fileID: 4040421616070537987, guid: a380b55be3e354df6a4bffc3631467c0, type: 3} propertyPath: m_LocalScale.x value: 0.12 objectReference: {fileID: 0} - - target: {fileID: 4040421616070537987, guid: a380b55be3e354df6a4bffc3631467c0, - type: 3} + - target: {fileID: 4040421616070537987, guid: a380b55be3e354df6a4bffc3631467c0, type: 3} propertyPath: m_LocalScale.z value: 0.12 objectReference: {fileID: 0} - - target: {fileID: 4040421616070537987, guid: a380b55be3e354df6a4bffc3631467c0, - type: 3} + - target: {fileID: 4040421616070537987, guid: a380b55be3e354df6a4bffc3631467c0, type: 3} propertyPath: m_LocalPosition.y value: -0.041 objectReference: {fileID: 0} - - target: {fileID: 5491915777010935821, guid: a380b55be3e354df6a4bffc3631467c0, - type: 3} + - target: {fileID: 5491915777010935821, guid: a380b55be3e354df6a4bffc3631467c0, type: 3} propertyPath: m_Layer value: 5 objectReference: {fileID: 0} - - target: {fileID: 5837401926700238487, guid: a380b55be3e354df6a4bffc3631467c0, - type: 3} + - target: {fileID: 5837401926700238487, guid: a380b55be3e354df6a4bffc3631467c0, type: 3} propertyPath: 'm_Materials.Array.data[0]' value: objectReference: {fileID: 2100000, guid: 7c917239ee790461b8b46b53c2ffd0d2, type: 2} - - target: {fileID: 6383575433952177525, guid: a380b55be3e354df6a4bffc3631467c0, - type: 3} + - target: {fileID: 6383575433952177525, guid: a380b55be3e354df6a4bffc3631467c0, type: 3} propertyPath: m_RootOrder value: 0 objectReference: {fileID: 0} - - target: {fileID: 6383575433952177525, guid: a380b55be3e354df6a4bffc3631467c0, - type: 3} + - target: {fileID: 6383575433952177525, guid: a380b55be3e354df6a4bffc3631467c0, type: 3} propertyPath: m_LocalPosition.x value: -0.164 objectReference: {fileID: 0} - - target: {fileID: 6383575433952177525, guid: a380b55be3e354df6a4bffc3631467c0, - type: 3} + - target: {fileID: 6383575433952177525, guid: a380b55be3e354df6a4bffc3631467c0, type: 3} propertyPath: m_LocalPosition.y value: -0.14200002 objectReference: {fileID: 0} - - target: {fileID: 6383575433952177525, guid: a380b55be3e354df6a4bffc3631467c0, - type: 3} + - target: {fileID: 6383575433952177525, guid: a380b55be3e354df6a4bffc3631467c0, type: 3} propertyPath: m_LocalPosition.z value: 0.359 objectReference: {fileID: 0} - - target: {fileID: 6383575433952177525, guid: a380b55be3e354df6a4bffc3631467c0, - type: 3} + - target: {fileID: 6383575433952177525, guid: a380b55be3e354df6a4bffc3631467c0, type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 6383575433952177525, guid: a380b55be3e354df6a4bffc3631467c0, - type: 3} + - target: {fileID: 6383575433952177525, guid: a380b55be3e354df6a4bffc3631467c0, type: 3} propertyPath: m_LocalRotation.x value: -0 objectReference: {fileID: 0} - - target: {fileID: 6383575433952177525, guid: a380b55be3e354df6a4bffc3631467c0, - type: 3} + - target: {fileID: 6383575433952177525, guid: a380b55be3e354df6a4bffc3631467c0, type: 3} propertyPath: m_LocalRotation.y value: -0 objectReference: {fileID: 0} - - target: {fileID: 6383575433952177525, guid: a380b55be3e354df6a4bffc3631467c0, - type: 3} + - target: {fileID: 6383575433952177525, guid: a380b55be3e354df6a4bffc3631467c0, type: 3} propertyPath: m_LocalRotation.z value: -0 objectReference: {fileID: 0} - - target: {fileID: 6383575433952177525, guid: a380b55be3e354df6a4bffc3631467c0, - type: 3} + - target: {fileID: 6383575433952177525, guid: a380b55be3e354df6a4bffc3631467c0, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6383575433952177525, guid: a380b55be3e354df6a4bffc3631467c0, - type: 3} + - target: {fileID: 6383575433952177525, guid: a380b55be3e354df6a4bffc3631467c0, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6383575433952177525, guid: a380b55be3e354df6a4bffc3631467c0, - type: 3} + - target: {fileID: 6383575433952177525, guid: a380b55be3e354df6a4bffc3631467c0, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 6383575433952177526, guid: a380b55be3e354df6a4bffc3631467c0, - type: 3} + - target: {fileID: 6383575433952177526, guid: a380b55be3e354df6a4bffc3631467c0, type: 3} propertyPath: m_Name value: Gun objectReference: {fileID: 0} - - target: {fileID: 6383575433952177526, guid: a380b55be3e354df6a4bffc3631467c0, - type: 3} + - target: {fileID: 6383575433952177526, guid: a380b55be3e354df6a4bffc3631467c0, type: 3} propertyPath: m_Layer value: 5 objectReference: {fileID: 0} - - target: {fileID: 6383575435370445603, guid: a380b55be3e354df6a4bffc3631467c0, - type: 3} + - target: {fileID: 6383575435370445603, guid: a380b55be3e354df6a4bffc3631467c0, type: 3} propertyPath: 'm_Materials.Array.data[0]' value: objectReference: {fileID: 2100000, guid: 7c917239ee790461b8b46b53c2ffd0d2, type: 2} - - target: {fileID: 6383575435370445605, guid: a380b55be3e354df6a4bffc3631467c0, - type: 3} + - target: {fileID: 6383575435370445605, guid: a380b55be3e354df6a4bffc3631467c0, type: 3} propertyPath: m_LocalScale.x value: 0.03 objectReference: {fileID: 0} - - target: {fileID: 6383575435370445605, guid: a380b55be3e354df6a4bffc3631467c0, - type: 3} + - target: {fileID: 6383575435370445605, guid: a380b55be3e354df6a4bffc3631467c0, type: 3} propertyPath: m_LocalScale.y value: 0.03 objectReference: {fileID: 0} - - target: {fileID: 6383575435370445605, guid: a380b55be3e354df6a4bffc3631467c0, - type: 3} + - target: {fileID: 6383575435370445605, guid: a380b55be3e354df6a4bffc3631467c0, type: 3} propertyPath: m_LocalScale.z value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6383575435370445605, guid: a380b55be3e354df6a4bffc3631467c0, - type: 3} + - target: {fileID: 6383575435370445605, guid: a380b55be3e354df6a4bffc3631467c0, type: 3} propertyPath: m_LocalPosition.x value: -0.025 objectReference: {fileID: 0} - - target: {fileID: 6383575435370445605, guid: a380b55be3e354df6a4bffc3631467c0, - type: 3} + - target: {fileID: 6383575435370445605, guid: a380b55be3e354df6a4bffc3631467c0, type: 3} propertyPath: m_LocalPosition.y value: 0.025 objectReference: {fileID: 0} - - target: {fileID: 6383575435370445605, guid: a380b55be3e354df6a4bffc3631467c0, - type: 3} + - target: {fileID: 6383575435370445605, guid: a380b55be3e354df6a4bffc3631467c0, type: 3} propertyPath: m_LocalPosition.z value: 0.12 objectReference: {fileID: 0} - - target: {fileID: 6383575435370445606, guid: a380b55be3e354df6a4bffc3631467c0, - type: 3} + - target: {fileID: 6383575435370445606, guid: a380b55be3e354df6a4bffc3631467c0, type: 3} propertyPath: m_Layer value: 5 objectReference: {fileID: 0} - - target: {fileID: 8005081713031155670, guid: a380b55be3e354df6a4bffc3631467c0, - type: 3} + - target: {fileID: 8005081713031155670, guid: a380b55be3e354df6a4bffc3631467c0, type: 3} propertyPath: m_Layer value: 5 objectReference: {fileID: 0} - - target: {fileID: 8110100821560487685, guid: a380b55be3e354df6a4bffc3631467c0, - type: 3} + - target: {fileID: 8110100821560487685, guid: a380b55be3e354df6a4bffc3631467c0, type: 3} propertyPath: m_LocalScale.y value: 0.06 objectReference: {fileID: 0} - - target: {fileID: 8110100821560487685, guid: a380b55be3e354df6a4bffc3631467c0, - type: 3} + - target: {fileID: 8110100821560487685, guid: a380b55be3e354df6a4bffc3631467c0, type: 3} propertyPath: m_LocalPosition.y value: 0.003 objectReference: {fileID: 0} - - target: {fileID: 8110100821560487685, guid: a380b55be3e354df6a4bffc3631467c0, - type: 3} + - target: {fileID: 8110100821560487685, guid: a380b55be3e354df6a4bffc3631467c0, type: 3} propertyPath: m_LocalPosition.z value: 0.603 objectReference: {fileID: 0} - - target: {fileID: 8237686651609456361, guid: a380b55be3e354df6a4bffc3631467c0, - type: 3} + - target: {fileID: 8237686651609456361, guid: a380b55be3e354df6a4bffc3631467c0, type: 3} propertyPath: m_Layer value: 5 objectReference: {fileID: 0} - - target: {fileID: 9127136985112803945, guid: a380b55be3e354df6a4bffc3631467c0, - type: 3} + - target: {fileID: 9127136985112803945, guid: a380b55be3e354df6a4bffc3631467c0, type: 3} propertyPath: 'm_Materials.Array.data[0]' value: objectReference: {fileID: 2100000, guid: 0889dee21b18543c087760abd0df15ec, type: 2} @@ -3548,20 +3577,16 @@ PrefabInstance: - {fileID: 6383575435370445604, guid: a380b55be3e354df6a4bffc3631467c0, type: 3} m_RemovedGameObjects: [] m_AddedGameObjects: - - targetCorrespondingSourceObject: {fileID: 6383575433952177525, guid: a380b55be3e354df6a4bffc3631467c0, - type: 3} + - targetCorrespondingSourceObject: {fileID: 6383575433952177525, guid: a380b55be3e354df6a4bffc3631467c0, type: 3} insertIndex: -1 addedObject: {fileID: 1857608330} - - targetCorrespondingSourceObject: {fileID: 6383575433952177525, guid: a380b55be3e354df6a4bffc3631467c0, - type: 3} + - targetCorrespondingSourceObject: {fileID: 6383575433952177525, guid: a380b55be3e354df6a4bffc3631467c0, type: 3} insertIndex: -1 addedObject: {fileID: 1490055365} - - targetCorrespondingSourceObject: {fileID: 6383575433952177525, guid: a380b55be3e354df6a4bffc3631467c0, - type: 3} + - targetCorrespondingSourceObject: {fileID: 6383575433952177525, guid: a380b55be3e354df6a4bffc3631467c0, type: 3} insertIndex: -1 addedObject: {fileID: 194942083} - - targetCorrespondingSourceObject: {fileID: 6383575433952177525, guid: a380b55be3e354df6a4bffc3631467c0, - type: 3} + - targetCorrespondingSourceObject: {fileID: 6383575433952177525, guid: a380b55be3e354df6a4bffc3631467c0, type: 3} insertIndex: -1 addedObject: {fileID: 1188625083} m_AddedComponents: [] @@ -3574,98 +3599,79 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 0} m_Modifications: - - target: {fileID: 2148271877166492642, guid: 8089b5fe6d8304423814ff197221f77d, - type: 3} + - target: {fileID: 2148271877166492642, guid: 8089b5fe6d8304423814ff197221f77d, type: 3} propertyPath: m_Name value: Cameras objectReference: {fileID: 0} - - target: {fileID: 4212382672143566193, guid: 8089b5fe6d8304423814ff197221f77d, - type: 3} + - target: {fileID: 4212382672143566193, guid: 8089b5fe6d8304423814ff197221f77d, type: 3} propertyPath: m_RootOrder value: 4 objectReference: {fileID: 0} - - target: {fileID: 4212382672143566193, guid: 8089b5fe6d8304423814ff197221f77d, - type: 3} + - target: {fileID: 4212382672143566193, guid: 8089b5fe6d8304423814ff197221f77d, type: 3} propertyPath: m_LocalPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 4212382672143566193, guid: 8089b5fe6d8304423814ff197221f77d, - type: 3} + - target: {fileID: 4212382672143566193, guid: 8089b5fe6d8304423814ff197221f77d, type: 3} propertyPath: m_LocalPosition.y value: 0.812 objectReference: {fileID: 0} - - target: {fileID: 4212382672143566193, guid: 8089b5fe6d8304423814ff197221f77d, - type: 3} + - target: {fileID: 4212382672143566193, guid: 8089b5fe6d8304423814ff197221f77d, type: 3} propertyPath: m_LocalPosition.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 4212382672143566193, guid: 8089b5fe6d8304423814ff197221f77d, - type: 3} + - target: {fileID: 4212382672143566193, guid: 8089b5fe6d8304423814ff197221f77d, type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 4212382672143566193, guid: 8089b5fe6d8304423814ff197221f77d, - type: 3} + - target: {fileID: 4212382672143566193, guid: 8089b5fe6d8304423814ff197221f77d, type: 3} propertyPath: m_LocalRotation.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 4212382672143566193, guid: 8089b5fe6d8304423814ff197221f77d, - type: 3} + - target: {fileID: 4212382672143566193, guid: 8089b5fe6d8304423814ff197221f77d, type: 3} propertyPath: m_LocalRotation.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 4212382672143566193, guid: 8089b5fe6d8304423814ff197221f77d, - type: 3} + - target: {fileID: 4212382672143566193, guid: 8089b5fe6d8304423814ff197221f77d, type: 3} propertyPath: m_LocalRotation.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 4212382672143566193, guid: 8089b5fe6d8304423814ff197221f77d, - type: 3} + - target: {fileID: 4212382672143566193, guid: 8089b5fe6d8304423814ff197221f77d, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 4212382672143566193, guid: 8089b5fe6d8304423814ff197221f77d, - type: 3} + - target: {fileID: 4212382672143566193, guid: 8089b5fe6d8304423814ff197221f77d, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 4212382672143566193, guid: 8089b5fe6d8304423814ff197221f77d, - type: 3} + - target: {fileID: 4212382672143566193, guid: 8089b5fe6d8304423814ff197221f77d, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 6350239021526260069, guid: 8089b5fe6d8304423814ff197221f77d, - type: 3} + - target: {fileID: 6350239021526260069, guid: 8089b5fe6d8304423814ff197221f77d, type: 3} propertyPath: m_RendererIndex value: 0 objectReference: {fileID: 0} - - target: {fileID: 6350239021526260069, guid: 8089b5fe6d8304423814ff197221f77d, - type: 3} + - target: {fileID: 6350239021526260069, guid: 8089b5fe6d8304423814ff197221f77d, type: 3} propertyPath: m_Cameras.Array.size value: 1 objectReference: {fileID: 0} - - target: {fileID: 6350239021526260069, guid: 8089b5fe6d8304423814ff197221f77d, - type: 3} + - target: {fileID: 6350239021526260069, guid: 8089b5fe6d8304423814ff197221f77d, type: 3} propertyPath: m_RenderPostProcessing value: 0 objectReference: {fileID: 0} - - target: {fileID: 6350239021526260069, guid: 8089b5fe6d8304423814ff197221f77d, - type: 3} + - target: {fileID: 6350239021526260069, guid: 8089b5fe6d8304423814ff197221f77d, type: 3} propertyPath: 'm_Cameras.Array.data[0]' value: objectReference: {fileID: 1434764562} - - target: {fileID: 8157311212398424292, guid: 8089b5fe6d8304423814ff197221f77d, - type: 3} + - target: {fileID: 8157311212398424292, guid: 8089b5fe6d8304423814ff197221f77d, type: 3} propertyPath: m_Name value: Level Camera objectReference: {fileID: 0} - - target: {fileID: 8509898242313118626, guid: 8089b5fe6d8304423814ff197221f77d, - type: 3} + - target: {fileID: 8509898242313118626, guid: 8089b5fe6d8304423814ff197221f77d, type: 3} propertyPath: m_MoveWithMouse value: 1 objectReference: {fileID: 0} - - target: {fileID: 8509898242313118626, guid: 8089b5fe6d8304423814ff197221f77d, - type: 3} + - target: {fileID: 8509898242313118626, guid: 8089b5fe6d8304423814ff197221f77d, type: 3} propertyPath: m_ButtonSensitivity value: 100 objectReference: {fileID: 0} @@ -3673,16 +3679,14 @@ PrefabInstance: - {fileID: 8900132868616544278, guid: 8089b5fe6d8304423814ff197221f77d, type: 3} m_RemovedGameObjects: [] m_AddedGameObjects: - - targetCorrespondingSourceObject: {fileID: 3363522893988168260, guid: 8089b5fe6d8304423814ff197221f77d, - type: 3} + - targetCorrespondingSourceObject: {fileID: 3363522893988168260, guid: 8089b5fe6d8304423814ff197221f77d, type: 3} insertIndex: -1 addedObject: {fileID: 1434764559} m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 8089b5fe6d8304423814ff197221f77d, type: 3} --- !u!4 &8282558930070009748 stripped Transform: - m_CorrespondingSourceObject: {fileID: 3363522893988168260, guid: 8089b5fe6d8304423814ff197221f77d, - type: 3} + m_CorrespondingSourceObject: {fileID: 3363522893988168260, guid: 8089b5fe6d8304423814ff197221f77d, type: 3} m_PrefabInstance: {fileID: 8282558930070009747} m_PrefabAsset: {fileID: 0} --- !u!1660057539 &9223372036854775807 diff --git a/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/CameraStacking/SplitScreen/SplitScreen.unity b/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/CameraStacking/SplitScreen/SplitScreen.unity index a5249b5a9fe..1b44e8ba211 100644 --- a/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/CameraStacking/SplitScreen/SplitScreen.unity +++ b/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/CameraStacking/SplitScreen/SplitScreen.unity @@ -38,12 +38,12 @@ RenderSettings: m_ReflectionIntensity: 1 m_CustomReflection: {fileID: 0} m_Sun: {fileID: 705507994} - m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} m_UseRadianceAmbientProbe: 0 --- !u!157 &3 LightmapSettings: m_ObjectHideFlags: 0 - serializedVersion: 12 + serializedVersion: 13 + m_BakeOnSceneLoad: 0 m_GISettings: serializedVersion: 2 m_BounceScale: 1 @@ -93,10 +93,8 @@ LightmapSettings: m_ExportTrainingData: 0 m_TrainingDataDestination: TrainingData m_LightProbeSampleCountMultiplier: 4 - m_LightingDataAsset: {fileID: 112000000, guid: 0d3679324a6e04c12a52d1802e035b98, - type: 2} - m_LightingSettings: {fileID: 4890085278179872738, guid: 18327bac2ae6340be93d260876955295, - type: 2} + m_LightingDataAsset: {fileID: 112000000, guid: 0d3679324a6e04c12a52d1802e035b98, type: 2} + m_LightingSettings: {fileID: 4890085278179872738, guid: 18327bac2ae6340be93d260876955295, type: 2} --- !u!196 &4 NavMeshSettings: serializedVersion: 2 @@ -278,7 +276,7 @@ Canvas: m_OverrideSorting: 0 m_OverridePixelPerfect: 0 m_SortingBucketNormalizedSize: 0 - m_VertexColorAlwaysGammaSpace: 0 + m_VertexColorAlwaysGammaSpace: 1 m_AdditionalShaderChannelsFlag: 1 m_UpdateRectTransformForStandalone: 0 m_SortingLayerID: 0 @@ -381,7 +379,7 @@ Canvas: m_OverrideSorting: 0 m_OverridePixelPerfect: 0 m_SortingBucketNormalizedSize: 0 - m_VertexColorAlwaysGammaSpace: 0 + m_VertexColorAlwaysGammaSpace: 1 m_AdditionalShaderChannelsFlag: 25 m_UpdateRectTransformForStandalone: 0 m_SortingLayerID: 0 @@ -494,123 +492,99 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 131481531} m_Modifications: - - target: {fileID: 155458132493177538, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 155458132493177538, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_Name value: MainPanel objectReference: {fileID: 0} - - target: {fileID: 1638750836712682043, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 1638750836712682043, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_Text value: SplitScreen objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_Pivot.x value: 1 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_Pivot.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_RootOrder value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_AnchorMax.x value: 1 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_AnchorMax.y value: 1 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_AnchorMin.x value: 1 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_AnchorMin.y value: 1 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_SizeDelta.x value: 400 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_SizeDelta.y value: 250 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalPosition.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalRotation.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalRotation.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalRotation.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_AnchoredPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_AnchoredPosition.y value: -250 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 4039968741557396746, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 4039968741557396746, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_Text value: "This example shows how to create a split screen camera setup each with their own camera stack. \nIt also shows how to apply Post Processing on World @@ -623,8 +597,7 @@ PrefabInstance: m_SourcePrefab: {fileID: 100100000, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} --- !u!224 &262956636 stripped RectTransform: - m_CorrespondingSourceObject: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + m_CorrespondingSourceObject: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} m_PrefabInstance: {fileID: 262956635} m_PrefabAsset: {fileID: 0} --- !u!1 &400686062 @@ -703,7 +676,7 @@ Canvas: m_OverrideSorting: 0 m_OverridePixelPerfect: 0 m_SortingBucketNormalizedSize: 0 - m_VertexColorAlwaysGammaSpace: 0 + m_VertexColorAlwaysGammaSpace: 1 m_AdditionalShaderChannelsFlag: 0 m_UpdateRectTransformForStandalone: 0 m_SortingLayerID: 0 @@ -783,14 +756,14 @@ MonoBehaviour: m_ScreenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0} m_RequiresDepthTexture: 0 m_RequiresColorTexture: 0 - m_Version: 2 m_TaaSettings: - quality: 3 - frameInfluence: 0.1 - jitterScale: 1 - mipBias: 0 - varianceClampScale: 0.9 - contrastAdaptiveSharpening: 0 + m_Quality: 3 + m_FrameInfluence: 0.1 + m_JitterScale: 1 + m_MipBias: 0 + m_VarianceClampScale: 0.9 + m_ContrastAdaptiveSharpening: 0 + m_Version: 2 --- !u!20 &470662021 Camera: m_ObjectHideFlags: 0 @@ -927,14 +900,14 @@ MonoBehaviour: m_ScreenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0} m_RequiresDepthTexture: 0 m_RequiresColorTexture: 0 - m_Version: 2 m_TaaSettings: - quality: 3 - frameInfluence: 0.1 - jitterScale: 1 - mipBias: 0 - varianceClampScale: 0.9 - contrastAdaptiveSharpening: 0 + m_Quality: 3 + m_FrameInfluence: 0.1 + m_JitterScale: 1 + m_MipBias: 0 + m_VarianceClampScale: 0.9 + m_ContrastAdaptiveSharpening: 0 + m_Version: 2 --- !u!20 &482165991 Camera: m_ObjectHideFlags: 0 @@ -1207,14 +1180,14 @@ Light: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 705507993} m_Enabled: 1 - serializedVersion: 11 + serializedVersion: 12 m_Type: 1 m_Color: {r: 1, g: 1, b: 1, a: 1} m_Intensity: 1 m_Range: 10 m_SpotAngle: 30 m_InnerSpotAngle: 21.802082 - m_CookieSize: 10 + m_CookieSize2D: {x: 10, y: 10} m_Shadows: m_Type: 2 m_Resolution: -1 @@ -1258,8 +1231,12 @@ Light: m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} m_UseBoundingSphereOverride: 0 m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 m_ShadowRadius: 0 m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 --- !u!4 &705507995 Transform: m_ObjectHideFlags: 0 @@ -1287,17 +1264,23 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} m_Name: m_EditorClassIdentifier: - m_Version: 3 m_UsePipelineSettings: 1 m_AdditionalLightsShadowResolutionTier: 2 - m_LightLayerMask: 1 - m_RenderingLayers: 1 m_CustomShadowLayers: 0 - m_ShadowLayerMask: 1 - m_ShadowRenderingLayers: 1 m_LightCookieSize: {x: 1, y: 1} m_LightCookieOffset: {x: 0, y: 0} m_SoftShadowQuality: 1 + m_RenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_ShadowRenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_Version: 4 + m_LightLayerMask: 1 + m_ShadowLayerMask: 1 + m_RenderingLayers: 1 + m_ShadowRenderingLayers: 1 --- !u!1 &1060604892 GameObject: m_ObjectHideFlags: 0 @@ -1410,7 +1393,7 @@ Canvas: m_OverrideSorting: 0 m_OverridePixelPerfect: 0 m_SortingBucketNormalizedSize: 0 - m_VertexColorAlwaysGammaSpace: 0 + m_VertexColorAlwaysGammaSpace: 1 m_AdditionalShaderChannelsFlag: 25 m_UpdateRectTransformForStandalone: 0 m_SortingLayerID: 0 @@ -1495,6 +1478,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -1516,6 +1502,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -1555,7 +1542,6 @@ GameObject: - component: {fileID: 1158032496} - component: {fileID: 1158032495} - component: {fileID: 1158032494} - - component: {fileID: 1158032493} m_Layer: 0 m_Name: Cylinder m_TagString: Untagged @@ -1563,21 +1549,6 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!114 &1158032493 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1158032492} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 8725944bdac9042b9b1442ba38a31070, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Space: 0 - m_Axis: {x: 0, y: 0, z: 0} - m_AngularVelocity: 0 --- !u!136 &1158032494 CapsuleCollider: m_ObjectHideFlags: 0 @@ -1620,6 +1591,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -1641,6 +1615,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -1744,7 +1719,7 @@ Canvas: m_OverrideSorting: 0 m_OverridePixelPerfect: 0 m_SortingBucketNormalizedSize: 0 - m_VertexColorAlwaysGammaSpace: 0 + m_VertexColorAlwaysGammaSpace: 1 m_AdditionalShaderChannelsFlag: 25 m_UpdateRectTransformForStandalone: 0 m_SortingLayerID: 0 @@ -1905,14 +1880,14 @@ MonoBehaviour: m_ScreenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0} m_RequiresDepthTexture: 0 m_RequiresColorTexture: 0 - m_Version: 2 m_TaaSettings: - quality: 3 - frameInfluence: 0.1 - jitterScale: 1 - mipBias: 0 - varianceClampScale: 0.9 - contrastAdaptiveSharpening: 0 + m_Quality: 3 + m_FrameInfluence: 0.1 + m_JitterScale: 1 + m_MipBias: 0 + m_VarianceClampScale: 0.9 + m_ContrastAdaptiveSharpening: 0 + m_Version: 2 --- !u!20 &1410108895 Camera: m_ObjectHideFlags: 0 @@ -1922,7 +1897,7 @@ Camera: m_GameObject: {fileID: 1410108892} m_Enabled: 1 serializedVersion: 2 - m_ClearFlags: 1 + m_ClearFlags: 4 m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} m_projectionMatrixMode: 1 m_GateFitMode: 2 @@ -2033,14 +2008,14 @@ MonoBehaviour: m_ScreenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0} m_RequiresDepthTexture: 0 m_RequiresColorTexture: 0 - m_Version: 2 m_TaaSettings: - quality: 3 - frameInfluence: 0.1 - jitterScale: 1 - mipBias: 0 - varianceClampScale: 0.9 - contrastAdaptiveSharpening: 0 + m_Quality: 3 + m_FrameInfluence: 0.1 + m_JitterScale: 1 + m_MipBias: 0 + m_VarianceClampScale: 0.9 + m_ContrastAdaptiveSharpening: 0 + m_Version: 2 --- !u!20 &1655053638 Camera: m_ObjectHideFlags: 0 @@ -2115,108 +2090,87 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 131481531} m_Modifications: - - target: {fileID: 6308746673132675046, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6308746673132675046, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_Name value: CheckAssignedRenderPipelineAsset objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_Pivot.x value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_Pivot.y value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_AnchorMax.x value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_AnchorMax.y value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_AnchorMin.x value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_AnchorMin.y value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_SizeDelta.x value: 100 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_SizeDelta.y value: 100 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalPosition.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalRotation.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalRotation.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalRotation.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_AnchoredPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_AnchoredPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} @@ -2227,8 +2181,7 @@ PrefabInstance: m_SourcePrefab: {fileID: 100100000, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} --- !u!224 &1661637574 stripped RectTransform: - m_CorrespondingSourceObject: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + m_CorrespondingSourceObject: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} m_PrefabInstance: {fileID: 1661637573} m_PrefabAsset: {fileID: 0} --- !u!1 &1678942889 @@ -2286,14 +2239,14 @@ MonoBehaviour: m_ScreenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0} m_RequiresDepthTexture: 0 m_RequiresColorTexture: 0 - m_Version: 2 m_TaaSettings: - quality: 3 - frameInfluence: 0.1 - jitterScale: 1 - mipBias: 0 - varianceClampScale: 0.9 - contrastAdaptiveSharpening: 0 + m_Quality: 3 + m_FrameInfluence: 0.1 + m_JitterScale: 1 + m_MipBias: 0 + m_VarianceClampScale: 0.9 + m_ContrastAdaptiveSharpening: 0 + m_Version: 2 --- !u!20 &1678942892 Camera: m_ObjectHideFlags: 0 @@ -2386,14 +2339,14 @@ Light: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1862309426} m_Enabled: 1 - serializedVersion: 11 + serializedVersion: 12 m_Type: 1 m_Color: {r: 1, g: 1, b: 1, a: 1} m_Intensity: 0.7 m_Range: 10 m_SpotAngle: 30 m_InnerSpotAngle: 21.802082 - m_CookieSize: 10 + m_CookieSize2D: {x: 10, y: 10} m_Shadows: m_Type: 0 m_Resolution: -1 @@ -2437,8 +2390,12 @@ Light: m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} m_UseBoundingSphereOverride: 0 m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 m_ShadowRadius: 0 m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 --- !u!4 &1862309428 Transform: m_ObjectHideFlags: 0 @@ -2466,17 +2423,23 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} m_Name: m_EditorClassIdentifier: - m_Version: 3 m_UsePipelineSettings: 1 m_AdditionalLightsShadowResolutionTier: 2 - m_LightLayerMask: 1 - m_RenderingLayers: 1 m_CustomShadowLayers: 0 - m_ShadowLayerMask: 1 - m_ShadowRenderingLayers: 1 m_LightCookieSize: {x: 1, y: 1} m_LightCookieOffset: {x: 0, y: 0} m_SoftShadowQuality: 1 + m_RenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_ShadowRenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_Version: 4 + m_LightLayerMask: 1 + m_ShadowLayerMask: 1 + m_RenderingLayers: 1 + m_ShadowRenderingLayers: 1 --- !u!1 &1913427150 GameObject: m_ObjectHideFlags: 0 @@ -2537,6 +2500,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -2558,6 +2524,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 diff --git a/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/Decals/BlobShadow/BlobShadow.unity b/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/Decals/BlobShadow/BlobShadow.unity index 28a721831c5..39c85663b45 100644 --- a/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/Decals/BlobShadow/BlobShadow.unity +++ b/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/Decals/BlobShadow/BlobShadow.unity @@ -38,12 +38,12 @@ RenderSettings: m_ReflectionIntensity: 1 m_CustomReflection: {fileID: 0} m_Sun: {fileID: 1090784526} - m_IndirectSpecularColor: {r: 0.1802843, g: 0.22571531, b: 0.30692396, a: 1} m_UseRadianceAmbientProbe: 0 --- !u!157 &3 LightmapSettings: m_ObjectHideFlags: 0 - serializedVersion: 12 + serializedVersion: 13 + m_BakeOnSceneLoad: 0 m_GISettings: serializedVersion: 2 m_BounceScale: 1 @@ -93,10 +93,8 @@ LightmapSettings: m_ExportTrainingData: 0 m_TrainingDataDestination: TrainingData m_LightProbeSampleCountMultiplier: 4 - m_LightingDataAsset: {fileID: 112000000, guid: 1adde1a579d23483b9cea80a3aee863e, - type: 2} - m_LightingSettings: {fileID: 4890085278179872738, guid: cc82132cf70ce430aa8f74e4325388b6, - type: 2} + m_LightingDataAsset: {fileID: 112000000, guid: 1adde1a579d23483b9cea80a3aee863e, type: 2} + m_LightingSettings: {fileID: 4890085278179872738, guid: cc82132cf70ce430aa8f74e4325388b6, type: 2} --- !u!196 &4 NavMeshSettings: serializedVersion: 2 @@ -183,6 +181,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -204,6 +205,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -306,6 +308,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -327,6 +332,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -391,6 +397,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -412,6 +421,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -553,14 +563,14 @@ MonoBehaviour: m_ScreenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0} m_RequiresDepthTexture: 0 m_RequiresColorTexture: 0 - m_Version: 2 m_TaaSettings: - quality: 3 - frameInfluence: 0.1 - jitterScale: 1 - mipBias: 0 - varianceClampScale: 0.9 - contrastAdaptiveSharpening: 0 + m_Quality: 3 + m_FrameInfluence: 0.1 + m_JitterScale: 1 + m_MipBias: 0 + m_VarianceClampScale: 0.9 + m_ContrastAdaptiveSharpening: 0 + m_Version: 2 --- !u!1 &573137420 GameObject: m_ObjectHideFlags: 0 @@ -606,108 +616,87 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 1768138160} m_Modifications: - - target: {fileID: 6308746673132675046, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6308746673132675046, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_Name value: CheckAssignedRenderPipelineAsset objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_Pivot.x value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_Pivot.y value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_AnchorMax.x value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_AnchorMax.y value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_AnchorMin.x value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_AnchorMin.y value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_SizeDelta.x value: 100 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_SizeDelta.y value: 100 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalPosition.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalRotation.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalRotation.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalRotation.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_AnchoredPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_AnchoredPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} @@ -718,8 +707,7 @@ PrefabInstance: m_SourcePrefab: {fileID: 100100000, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} --- !u!224 &615074636 stripped RectTransform: - m_CorrespondingSourceObject: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + m_CorrespondingSourceObject: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} m_PrefabInstance: {fileID: 615074635} m_PrefabAsset: {fileID: 0} --- !u!1 &902575294 @@ -782,6 +770,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -803,6 +794,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -890,14 +882,14 @@ Light: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1090784525} m_Enabled: 1 - serializedVersion: 11 + serializedVersion: 12 m_Type: 1 m_Color: {r: 1, g: 1, b: 1, a: 1} m_Intensity: 1 m_Range: 10 m_SpotAngle: 30 m_InnerSpotAngle: 21.80208 - m_CookieSize: 10 + m_CookieSize2D: {x: 10, y: 10} m_Shadows: m_Type: 2 m_Resolution: -1 @@ -941,8 +933,12 @@ Light: m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} m_UseBoundingSphereOverride: 0 m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 m_ShadowRadius: 0 m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 --- !u!4 &1090784527 Transform: m_ObjectHideFlags: 0 @@ -970,17 +966,23 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} m_Name: m_EditorClassIdentifier: - m_Version: 3 m_UsePipelineSettings: 1 m_AdditionalLightsShadowResolutionTier: 2 - m_LightLayerMask: 1 - m_RenderingLayers: 1 m_CustomShadowLayers: 0 - m_ShadowLayerMask: 1 - m_ShadowRenderingLayers: 1 m_LightCookieSize: {x: 1, y: 1} m_LightCookieOffset: {x: 0, y: 0} m_SoftShadowQuality: 1 + m_RenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_ShadowRenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_Version: 4 + m_LightLayerMask: 1 + m_ShadowLayerMask: 1 + m_RenderingLayers: 1 + m_ShadowRenderingLayers: 1 --- !u!1001 &1142061373 PrefabInstance: m_ObjectHideFlags: 0 @@ -989,133 +991,107 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 1768138160} m_Modifications: - - target: {fileID: 155458132493177538, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 155458132493177538, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_Name value: MainPanel objectReference: {fileID: 0} - - target: {fileID: 155458132493177538, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 155458132493177538, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_IsActive value: 1 objectReference: {fileID: 0} - - target: {fileID: 1638750836712682043, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 1638750836712682043, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_Text value: Blob Shadow objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_Pivot.x value: 1 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_Pivot.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_RootOrder value: 1 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_AnchorMax.x value: 1 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_AnchorMax.y value: 1 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_AnchorMin.x value: 1 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_AnchorMin.y value: 1 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_SizeDelta.x value: 400 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_SizeDelta.y value: 250 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalPosition.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalRotation.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalRotation.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalRotation.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_AnchoredPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_AnchoredPosition.y value: -250 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 3119812475398170508, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 3119812475398170508, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_Color.a value: 0.4392157 objectReference: {fileID: 0} - - target: {fileID: 4039968741557396746, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 4039968741557396746, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_Text value: 'This sample shows how to use the decal projector to cast a proxy shadow under a character. This method is cheaper than using traditional shadow maps @@ -1128,8 +1104,7 @@ PrefabInstance: m_SourcePrefab: {fileID: 100100000, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} --- !u!224 &1142061374 stripped RectTransform: - m_CorrespondingSourceObject: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + m_CorrespondingSourceObject: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} m_PrefabInstance: {fileID: 1142061373} m_PrefabAsset: {fileID: 0} --- !u!1 &1235401129 @@ -1184,6 +1159,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -1205,6 +1183,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -1254,6 +1233,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -1275,6 +1257,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -1312,7 +1295,7 @@ GameObject: m_Component: - component: {fileID: 1720569097} - component: {fileID: 1720569096} - - component: {fileID: 1720569095} + - component: {fileID: 1720569098} m_Layer: 0 m_Name: EventSystem m_TagString: Untagged @@ -1320,26 +1303,6 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!114 &1720569095 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1720569094} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3} - m_Name: - m_EditorClassIdentifier: - m_SendPointerHoverToParent: 1 - m_HorizontalAxis: Horizontal - m_VerticalAxis: Vertical - m_SubmitButton: Submit - m_CancelButton: Cancel - m_InputActionsPerSecond: 10 - m_RepeatDelay: 0.5 - m_ForceModuleActive: 0 --- !u!114 &1720569096 MonoBehaviour: m_ObjectHideFlags: 0 @@ -1370,6 +1333,37 @@ Transform: m_Children: [] m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1720569098 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1720569094} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 01614664b831546d2ae94a42149d80ac, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.InputSystem::UnityEngine.InputSystem.UI.InputSystemUIInputModule + m_SendPointerHoverToParent: 1 + m_MoveRepeatDelay: 0.5 + m_MoveRepeatRate: 0.1 + m_XRTrackingOrigin: {fileID: 0} + m_ActionsAsset: {fileID: -944628639613478452, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_PointAction: {fileID: -1654692200621890270, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_MoveAction: {fileID: -8784545083839296357, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_SubmitAction: {fileID: 392368643174621059, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_CancelAction: {fileID: 7727032971491509709, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_LeftClickAction: {fileID: 3001919216989983466, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_MiddleClickAction: {fileID: -2185481485913320682, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_RightClickAction: {fileID: -4090225696740746782, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_ScrollWheelAction: {fileID: 6240969308177333660, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_TrackedDevicePositionAction: {fileID: 6564999863303420839, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_TrackedDeviceOrientationAction: {fileID: 7970375526676320489, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_DeselectOnBackgroundClick: 1 + m_PointerBehavior: 0 + m_CursorLockBehavior: 0 + m_ScrollDeltaPerTick: 6 --- !u!1 &1722892045 GameObject: m_ObjectHideFlags: 0 @@ -1411,14 +1405,14 @@ Light: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1722892045} m_Enabled: 1 - serializedVersion: 11 + serializedVersion: 12 m_Type: 1 m_Color: {r: 1, g: 1, b: 1, a: 1} m_Intensity: 0.7 m_Range: 10 m_SpotAngle: 30 m_InnerSpotAngle: 21.80208 - m_CookieSize: 10 + m_CookieSize2D: {x: 10, y: 10} m_Shadows: m_Type: 0 m_Resolution: -1 @@ -1462,8 +1456,12 @@ Light: m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} m_UseBoundingSphereOverride: 0 m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 m_ShadowRadius: 0 m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 --- !u!114 &1722892048 MonoBehaviour: m_ObjectHideFlags: 0 @@ -1476,17 +1474,23 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} m_Name: m_EditorClassIdentifier: - m_Version: 3 m_UsePipelineSettings: 1 m_AdditionalLightsShadowResolutionTier: 2 - m_LightLayerMask: 1 - m_RenderingLayers: 1 m_CustomShadowLayers: 0 - m_ShadowLayerMask: 1 - m_ShadowRenderingLayers: 1 m_LightCookieSize: {x: 1, y: 1} m_LightCookieOffset: {x: 0, y: 0} m_SoftShadowQuality: 1 + m_RenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_ShadowRenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_Version: 4 + m_LightLayerMask: 1 + m_ShadowLayerMask: 1 + m_RenderingLayers: 1 + m_ShadowRenderingLayers: 1 --- !u!1 &1728013589 GameObject: m_ObjectHideFlags: 0 @@ -1539,6 +1543,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -1560,6 +1567,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -1624,6 +1632,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -1645,6 +1656,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -1733,7 +1745,7 @@ Canvas: m_OverrideSorting: 0 m_OverridePixelPerfect: 0 m_SortingBucketNormalizedSize: 0 - m_VertexColorAlwaysGammaSpace: 0 + m_VertexColorAlwaysGammaSpace: 1 m_AdditionalShaderChannelsFlag: 0 m_UpdateRectTransformForStandalone: 0 m_SortingLayerID: 0 @@ -1811,11 +1823,15 @@ MonoBehaviour: m_EndAngleFade: 180 m_UVScale: {x: 1, y: 1} m_UVBias: {x: 0, y: 0} - m_DecalLayerMask: 1 + m_RenderingLayerMask: + serializedVersion: 0 + m_Bits: 1 m_ScaleMode: 0 m_Offset: {x: 0, y: 0, z: 1.25} m_Size: {x: 1.2, y: 1.2, z: 2.5} m_FadeFactor: 1 + version: 1 + m_DecalLayerMask: 1 --- !u!1660057539 &9223372036854775807 SceneRoots: m_ObjectHideFlags: 0 diff --git a/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/Decals/PaintSplat/PaintSplat.unity b/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/Decals/PaintSplat/PaintSplat.unity index 9f08b4f788e..69470f69c33 100644 --- a/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/Decals/PaintSplat/PaintSplat.unity +++ b/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/Decals/PaintSplat/PaintSplat.unity @@ -38,12 +38,12 @@ RenderSettings: m_ReflectionIntensity: 1 m_CustomReflection: {fileID: 0} m_Sun: {fileID: 1090784526} - m_IndirectSpecularColor: {r: 0.1802843, g: 0.22571531, b: 0.30692396, a: 1} m_UseRadianceAmbientProbe: 0 --- !u!157 &3 LightmapSettings: m_ObjectHideFlags: 0 - serializedVersion: 12 + serializedVersion: 13 + m_BakeOnSceneLoad: 0 m_GISettings: serializedVersion: 2 m_BounceScale: 1 @@ -93,10 +93,8 @@ LightmapSettings: m_ExportTrainingData: 0 m_TrainingDataDestination: TrainingData m_LightProbeSampleCountMultiplier: 4 - m_LightingDataAsset: {fileID: 112000000, guid: 31598446125994fb0b6cfea011c68181, - type: 2} - m_LightingSettings: {fileID: 4890085278179872738, guid: cc82132cf70ce430aa8f74e4325388b6, - type: 2} + m_LightingDataAsset: {fileID: 112000000, guid: 31598446125994fb0b6cfea011c68181, type: 2} + m_LightingSettings: {fileID: 4890085278179872738, guid: cc82132cf70ce430aa8f74e4325388b6, type: 2} --- !u!196 &4 NavMeshSettings: serializedVersion: 2 @@ -285,14 +283,14 @@ MonoBehaviour: m_ScreenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0} m_RequiresDepthTexture: 0 m_RequiresColorTexture: 0 - m_Version: 2 m_TaaSettings: - quality: 3 - frameInfluence: 0.1 - jitterScale: 1 - mipBias: 0 - varianceClampScale: 0.9 - contrastAdaptiveSharpening: 0 + m_Quality: 3 + m_FrameInfluence: 0.1 + m_JitterScale: 1 + m_MipBias: 0 + m_VarianceClampScale: 0.9 + m_ContrastAdaptiveSharpening: 0 + m_Version: 2 --- !u!95 &122368105 Animator: serializedVersion: 7 @@ -327,7 +325,8 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: cc4d76f733087744991913c9d19d5274, type: 3} m_Name: m_EditorClassIdentifier: - m_LensFlareData: {fileID: 0} + m_LensFlareData: {fileID: 11400000, guid: bd7eaf3bd49c39f4cb77bd809459aa72, type: 2} + version: 0 intensity: 1 maxAttenuationDistance: 100 maxAttenuationScale: 100 @@ -406,6 +405,8 @@ MonoBehaviour: m_RotationOrder: 4 useOcclusion: 0 useBackgroundCloudOcclusion: 0 + environmentOcclusion: 0 + useWaterOcclusion: 0 occlusionRadius: 0.1 sampleCount: 32 occlusionOffset: 0.05 @@ -441,6 +442,7 @@ MonoBehaviour: m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 + lightOverride: {fileID: 0} --- !u!1001 &357558463 PrefabInstance: m_ObjectHideFlags: 0 @@ -449,113 +451,91 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 1768138160} m_Modifications: - - target: {fileID: 1028709304226404832, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 1028709304226404832, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_IsActive value: 1 objectReference: {fileID: 0} - - target: {fileID: 6308746673132675046, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6308746673132675046, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_Name value: CheckAssignedRenderPipelineAsset objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_Pivot.x value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_Pivot.y value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_AnchorMax.x value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_AnchorMax.y value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_AnchorMin.x value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_AnchorMin.y value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_SizeDelta.x value: 100 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_SizeDelta.y value: 100 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalPosition.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalRotation.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalRotation.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalRotation.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_AnchoredPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_AnchoredPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} @@ -566,8 +546,7 @@ PrefabInstance: m_SourcePrefab: {fileID: 100100000, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} --- !u!224 &357558464 stripped RectTransform: - m_CorrespondingSourceObject: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + m_CorrespondingSourceObject: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} m_PrefabInstance: {fileID: 357558463} m_PrefabAsset: {fileID: 0} --- !u!1 &358555076 @@ -606,11 +585,15 @@ MonoBehaviour: m_EndAngleFade: 41.38669 m_UVScale: {x: 1, y: 1} m_UVBias: {x: 0, y: 0} - m_DecalLayerMask: 1 + m_RenderingLayerMask: + serializedVersion: 0 + m_Bits: 1 m_ScaleMode: 1 m_Offset: {x: 0, y: 0, z: 0.5} m_Size: {x: 1, y: 1, z: 1} m_FadeFactor: 1 + version: 1 + m_DecalLayerMask: 1 --- !u!4 &358555078 Transform: m_ObjectHideFlags: 0 @@ -686,6 +669,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -707,6 +693,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -795,14 +782,14 @@ Light: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1090784525} m_Enabled: 1 - serializedVersion: 11 + serializedVersion: 12 m_Type: 1 m_Color: {r: 1, g: 1, b: 1, a: 1} m_Intensity: 1 m_Range: 10 m_SpotAngle: 30 m_InnerSpotAngle: 21.80208 - m_CookieSize: 10 + m_CookieSize2D: {x: 10, y: 10} m_Shadows: m_Type: 2 m_Resolution: -1 @@ -846,8 +833,12 @@ Light: m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} m_UseBoundingSphereOverride: 0 m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 m_ShadowRadius: 0 m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 --- !u!4 &1090784527 Transform: m_ObjectHideFlags: 0 @@ -875,17 +866,23 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} m_Name: m_EditorClassIdentifier: - m_Version: 3 m_UsePipelineSettings: 1 m_AdditionalLightsShadowResolutionTier: 2 - m_LightLayerMask: 1 - m_RenderingLayers: 1 m_CustomShadowLayers: 0 - m_ShadowLayerMask: 1 - m_ShadowRenderingLayers: 1 m_LightCookieSize: {x: 1, y: 1} m_LightCookieOffset: {x: 0, y: 0} m_SoftShadowQuality: 1 + m_RenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_ShadowRenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_Version: 4 + m_LightLayerMask: 1 + m_ShadowLayerMask: 1 + m_RenderingLayers: 1 + m_ShadowRenderingLayers: 1 --- !u!1001 &1142061373 PrefabInstance: m_ObjectHideFlags: 0 @@ -894,128 +891,103 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 1768138160} m_Modifications: - - target: {fileID: 155458132493177538, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 155458132493177538, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_Name value: MainPanel objectReference: {fileID: 0} - - target: {fileID: 1638750836712682043, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 1638750836712682043, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_Text value: Paint Splat objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_Pivot.x value: 1 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_Pivot.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_RootOrder value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_AnchorMax.x value: 1 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_AnchorMax.y value: 1 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_AnchorMin.x value: 1 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_AnchorMin.y value: 1 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_SizeDelta.x value: 400 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_SizeDelta.y value: 250 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalPosition.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalRotation.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalRotation.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalRotation.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_AnchoredPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_AnchoredPosition.y value: -250 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 3119812475398170508, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 3119812475398170508, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_Color.a value: 0.62352943 objectReference: {fileID: 0} - - target: {fileID: 4039968741557396746, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 4039968741557396746, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_Text value: This sample shows how to create procedural decals using a WorldSpaceUV subgraph and the "Simple Noise" shader graph node. The noise in the splats @@ -1028,8 +1000,7 @@ PrefabInstance: m_SourcePrefab: {fileID: 100100000, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} --- !u!224 &1142061374 stripped RectTransform: - m_CorrespondingSourceObject: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + m_CorrespondingSourceObject: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} m_PrefabInstance: {fileID: 1142061373} m_PrefabAsset: {fileID: 0} --- !u!1 &1199370850 @@ -1068,11 +1039,15 @@ MonoBehaviour: m_EndAngleFade: 41.38669 m_UVScale: {x: 1, y: 1} m_UVBias: {x: 0, y: 0} - m_DecalLayerMask: 1 + m_RenderingLayerMask: + serializedVersion: 0 + m_Bits: 1 m_ScaleMode: 1 m_Offset: {x: 0, y: 0, z: 0.305} m_Size: {x: 1, y: 1, z: 0.61} m_FadeFactor: 1 + version: 1 + m_DecalLayerMask: 1 --- !u!4 &1199370852 Transform: m_ObjectHideFlags: 0 @@ -1162,6 +1137,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -1183,6 +1161,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -1231,11 +1210,15 @@ MonoBehaviour: m_EndAngleFade: 41.38669 m_UVScale: {x: 1, y: 1} m_UVBias: {x: 0, y: 0} - m_DecalLayerMask: 1 + m_RenderingLayerMask: + serializedVersion: 0 + m_Bits: 1 m_ScaleMode: 1 m_Offset: {x: 0, y: 0, z: 0.235} m_Size: {x: 1, y: 1, z: 0.47} m_FadeFactor: 1 + version: 1 + m_DecalLayerMask: 1 --- !u!4 &1612660718 Transform: m_ObjectHideFlags: 0 @@ -1287,11 +1270,15 @@ MonoBehaviour: m_EndAngleFade: 41.38669 m_UVScale: {x: 1, y: 1} m_UVBias: {x: 0, y: 0} - m_DecalLayerMask: 1 + m_RenderingLayerMask: + serializedVersion: 0 + m_Bits: 1 m_ScaleMode: 1 m_Offset: {x: 0, y: 0, z: 0.5} m_Size: {x: 1, y: 1, z: 1} m_FadeFactor: 1 + version: 1 + m_DecalLayerMask: 1 --- !u!4 &1658292561 Transform: m_ObjectHideFlags: 0 @@ -1317,7 +1304,7 @@ GameObject: m_Component: - component: {fileID: 1720569097} - component: {fileID: 1720569096} - - component: {fileID: 1720569095} + - component: {fileID: 1720569098} m_Layer: 0 m_Name: EventSystem m_TagString: Untagged @@ -1325,26 +1312,6 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!114 &1720569095 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1720569094} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3} - m_Name: - m_EditorClassIdentifier: - m_SendPointerHoverToParent: 1 - m_HorizontalAxis: Horizontal - m_VerticalAxis: Vertical - m_SubmitButton: Submit - m_CancelButton: Cancel - m_InputActionsPerSecond: 10 - m_RepeatDelay: 0.5 - m_ForceModuleActive: 0 --- !u!114 &1720569096 MonoBehaviour: m_ObjectHideFlags: 0 @@ -1375,6 +1342,37 @@ Transform: m_Children: [] m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1720569098 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1720569094} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 01614664b831546d2ae94a42149d80ac, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.InputSystem::UnityEngine.InputSystem.UI.InputSystemUIInputModule + m_SendPointerHoverToParent: 1 + m_MoveRepeatDelay: 0.5 + m_MoveRepeatRate: 0.1 + m_XRTrackingOrigin: {fileID: 0} + m_ActionsAsset: {fileID: -944628639613478452, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_PointAction: {fileID: -1654692200621890270, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_MoveAction: {fileID: -8784545083839296357, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_SubmitAction: {fileID: 392368643174621059, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_CancelAction: {fileID: 7727032971491509709, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_LeftClickAction: {fileID: 3001919216989983466, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_MiddleClickAction: {fileID: -2185481485913320682, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_RightClickAction: {fileID: -4090225696740746782, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_ScrollWheelAction: {fileID: 6240969308177333660, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_TrackedDevicePositionAction: {fileID: 6564999863303420839, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_TrackedDeviceOrientationAction: {fileID: 7970375526676320489, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_DeselectOnBackgroundClick: 1 + m_PointerBehavior: 0 + m_CursorLockBehavior: 0 + m_ScrollDeltaPerTick: 6 --- !u!1 &1722892045 GameObject: m_ObjectHideFlags: 0 @@ -1416,14 +1414,14 @@ Light: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1722892045} m_Enabled: 1 - serializedVersion: 11 + serializedVersion: 12 m_Type: 1 m_Color: {r: 1, g: 1, b: 1, a: 1} m_Intensity: 0.4 m_Range: 10 m_SpotAngle: 30 m_InnerSpotAngle: 21.80208 - m_CookieSize: 10 + m_CookieSize2D: {x: 10, y: 10} m_Shadows: m_Type: 0 m_Resolution: -1 @@ -1467,8 +1465,12 @@ Light: m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} m_UseBoundingSphereOverride: 0 m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 m_ShadowRadius: 0 m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 --- !u!114 &1722892048 MonoBehaviour: m_ObjectHideFlags: 0 @@ -1481,17 +1483,23 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} m_Name: m_EditorClassIdentifier: - m_Version: 3 m_UsePipelineSettings: 1 m_AdditionalLightsShadowResolutionTier: 2 - m_LightLayerMask: 1 - m_RenderingLayers: 1 m_CustomShadowLayers: 0 - m_ShadowLayerMask: 1 - m_ShadowRenderingLayers: 1 m_LightCookieSize: {x: 1, y: 1} m_LightCookieOffset: {x: 0, y: 0} m_SoftShadowQuality: 1 + m_RenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_ShadowRenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_Version: 4 + m_LightLayerMask: 1 + m_ShadowLayerMask: 1 + m_RenderingLayers: 1 + m_ShadowRenderingLayers: 1 --- !u!1 &1765300697 GameObject: m_ObjectHideFlags: 0 @@ -1528,11 +1536,15 @@ MonoBehaviour: m_EndAngleFade: 41.38669 m_UVScale: {x: 1, y: 1} m_UVBias: {x: 0, y: 0} - m_DecalLayerMask: 1 + m_RenderingLayerMask: + serializedVersion: 0 + m_Bits: 1 m_ScaleMode: 1 m_Offset: {x: 0, y: 0, z: 0.235} m_Size: {x: 1, y: 1, z: 0.47} m_FadeFactor: 1 + version: 1 + m_DecalLayerMask: 1 --- !u!4 &1765300699 Transform: m_ObjectHideFlags: 0 @@ -1624,7 +1636,7 @@ Canvas: m_OverrideSorting: 0 m_OverridePixelPerfect: 0 m_SortingBucketNormalizedSize: 0 - m_VertexColorAlwaysGammaSpace: 0 + m_VertexColorAlwaysGammaSpace: 1 m_AdditionalShaderChannelsFlag: 0 m_UpdateRectTransformForStandalone: 0 m_SortingLayerID: 0 @@ -1687,11 +1699,15 @@ MonoBehaviour: m_EndAngleFade: 41.38669 m_UVScale: {x: 1, y: 1} m_UVBias: {x: 0, y: 0} - m_DecalLayerMask: 1 + m_RenderingLayerMask: + serializedVersion: 0 + m_Bits: 1 m_ScaleMode: 1 m_Offset: {x: 0, y: 0, z: 0.285} m_Size: {x: 1, y: 1, z: 0.57} m_FadeFactor: 1 + version: 1 + m_DecalLayerMask: 1 --- !u!4 &1822531015 Transform: m_ObjectHideFlags: 0 @@ -1818,6 +1834,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -1839,6 +1858,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 diff --git a/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/Decals/ProxyLighting/ProxyLighting.unity b/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/Decals/ProxyLighting/ProxyLighting.unity index 972592617a8..baa6b09b984 100644 --- a/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/Decals/ProxyLighting/ProxyLighting.unity +++ b/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/Decals/ProxyLighting/ProxyLighting.unity @@ -38,12 +38,12 @@ RenderSettings: m_ReflectionIntensity: 1 m_CustomReflection: {fileID: 0} m_Sun: {fileID: 1090784526} - m_IndirectSpecularColor: {r: 0.1802843, g: 0.22571531, b: 0.30692396, a: 1} m_UseRadianceAmbientProbe: 0 --- !u!157 &3 LightmapSettings: m_ObjectHideFlags: 0 - serializedVersion: 12 + serializedVersion: 13 + m_BakeOnSceneLoad: 0 m_GISettings: serializedVersion: 2 m_BounceScale: 1 @@ -93,10 +93,8 @@ LightmapSettings: m_ExportTrainingData: 0 m_TrainingDataDestination: TrainingData m_LightProbeSampleCountMultiplier: 4 - m_LightingDataAsset: {fileID: 112000000, guid: 1adde1a579d23483b9cea80a3aee863e, - type: 2} - m_LightingSettings: {fileID: 4890085278179872738, guid: cc82132cf70ce430aa8f74e4325388b6, - type: 2} + m_LightingDataAsset: {fileID: 112000000, guid: 1adde1a579d23483b9cea80a3aee863e, type: 2} + m_LightingSettings: {fileID: 4890085278179872738, guid: cc82132cf70ce430aa8f74e4325388b6, type: 2} --- !u!196 &4 NavMeshSettings: serializedVersion: 2 @@ -183,6 +181,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -204,6 +205,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -306,6 +308,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -327,6 +332,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -391,6 +397,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -412,6 +421,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -476,6 +486,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -497,6 +510,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -638,14 +652,14 @@ MonoBehaviour: m_ScreenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0} m_RequiresDepthTexture: 0 m_RequiresColorTexture: 0 - m_Version: 2 m_TaaSettings: - quality: 3 - frameInfluence: 0.1 - jitterScale: 1 - mipBias: 0 - varianceClampScale: 0.9 - contrastAdaptiveSharpening: 0 + m_Quality: 3 + m_FrameInfluence: 0.1 + m_JitterScale: 1 + m_MipBias: 0 + m_VarianceClampScale: 0.9 + m_ContrastAdaptiveSharpening: 0 + m_Version: 2 --- !u!1 &169065956 GameObject: m_ObjectHideFlags: 0 @@ -698,6 +712,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -719,6 +736,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -815,11 +833,15 @@ MonoBehaviour: m_EndAngleFade: 180 m_UVScale: {x: 1, y: 1} m_UVBias: {x: 0, y: 0} - m_DecalLayerMask: 1 + m_RenderingLayerMask: + serializedVersion: 0 + m_Bits: 1 m_ScaleMode: 1 m_Offset: {x: 0, y: 0, z: 0.5} m_Size: {x: 1, y: 1, z: 1} m_FadeFactor: 0.385 + version: 1 + m_DecalLayerMask: 1 --- !u!1 &512243410 GameObject: m_ObjectHideFlags: 0 @@ -871,11 +893,15 @@ MonoBehaviour: m_EndAngleFade: 180 m_UVScale: {x: 1, y: 1} m_UVBias: {x: 0, y: 0} - m_DecalLayerMask: 1 + m_RenderingLayerMask: + serializedVersion: 0 + m_Bits: 1 m_ScaleMode: 1 m_Offset: {x: 0, y: 0, z: 0.5} m_Size: {x: 1, y: 1, z: 1} m_FadeFactor: 0.354 + version: 1 + m_DecalLayerMask: 1 --- !u!1 &573137420 GameObject: m_ObjectHideFlags: 0 @@ -964,11 +990,15 @@ MonoBehaviour: m_EndAngleFade: 180 m_UVScale: {x: 1, y: 1} m_UVBias: {x: 0, y: 0} - m_DecalLayerMask: 1 + m_RenderingLayerMask: + serializedVersion: 0 + m_Bits: 1 m_ScaleMode: 1 m_Offset: {x: 0, y: 0, z: 0.5} m_Size: {x: 1, y: 1, z: 1} m_FadeFactor: 0.385 + version: 1 + m_DecalLayerMask: 1 --- !u!1 &765929145 GameObject: m_ObjectHideFlags: 0 @@ -1097,6 +1127,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -1118,6 +1151,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -1205,14 +1239,14 @@ Light: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1090784525} m_Enabled: 1 - serializedVersion: 11 + serializedVersion: 12 m_Type: 1 m_Color: {r: 1, g: 1, b: 1, a: 1} m_Intensity: 1 m_Range: 10 m_SpotAngle: 30 m_InnerSpotAngle: 21.80208 - m_CookieSize: 10 + m_CookieSize2D: {x: 10, y: 10} m_Shadows: m_Type: 2 m_Resolution: -1 @@ -1256,8 +1290,12 @@ Light: m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} m_UseBoundingSphereOverride: 0 m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 m_ShadowRadius: 0 m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 --- !u!4 &1090784527 Transform: m_ObjectHideFlags: 0 @@ -1285,17 +1323,23 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} m_Name: m_EditorClassIdentifier: - m_Version: 3 m_UsePipelineSettings: 1 m_AdditionalLightsShadowResolutionTier: 2 - m_LightLayerMask: 1 - m_RenderingLayers: 1 m_CustomShadowLayers: 0 - m_ShadowLayerMask: 1 - m_ShadowRenderingLayers: 1 m_LightCookieSize: {x: 1, y: 1} m_LightCookieOffset: {x: 0, y: 0} m_SoftShadowQuality: 1 + m_RenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_ShadowRenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_Version: 4 + m_LightLayerMask: 1 + m_ShadowLayerMask: 1 + m_RenderingLayers: 1 + m_ShadowRenderingLayers: 1 --- !u!1001 &1142061373 PrefabInstance: m_ObjectHideFlags: 0 @@ -1304,133 +1348,107 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 1768138160} m_Modifications: - - target: {fileID: 155458132493177538, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 155458132493177538, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_Name value: MainPanel objectReference: {fileID: 0} - - target: {fileID: 155458132493177538, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 155458132493177538, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_IsActive value: 1 objectReference: {fileID: 0} - - target: {fileID: 1638750836712682043, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 1638750836712682043, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_Text value: Proxy Lighting objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_Pivot.x value: 1 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_Pivot.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_RootOrder value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_AnchorMax.x value: 1 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_AnchorMax.y value: 1 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_AnchorMin.x value: 1 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_AnchorMin.y value: 1 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_SizeDelta.x value: 400 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_SizeDelta.y value: 250 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalPosition.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalRotation.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalRotation.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalRotation.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_AnchoredPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_AnchoredPosition.y value: -250 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 3119812475398170508, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 3119812475398170508, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_Color.a value: 0.4392157 objectReference: {fileID: 0} - - target: {fileID: 4039968741557396746, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 4039968741557396746, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_Text value: This sample builds on the Blob Shadow sample by adding proxy spotlights using Decal Projectors. These decals modify the emission of surfaces inside @@ -1444,8 +1462,7 @@ PrefabInstance: m_SourcePrefab: {fileID: 100100000, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} --- !u!224 &1142061374 stripped RectTransform: - m_CorrespondingSourceObject: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + m_CorrespondingSourceObject: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} m_PrefabInstance: {fileID: 1142061373} m_PrefabAsset: {fileID: 0} --- !u!1 &1235401129 @@ -1500,6 +1517,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -1521,6 +1541,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -1585,6 +1606,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -1606,6 +1630,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -1626,108 +1651,87 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 1768138160} m_Modifications: - - target: {fileID: 6308746673132675046, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6308746673132675046, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_Name value: CheckAssignedRenderPipelineAsset objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_Pivot.x value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_Pivot.y value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_AnchorMax.x value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_AnchorMax.y value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_AnchorMin.x value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_AnchorMin.y value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_SizeDelta.x value: 100 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_SizeDelta.y value: 100 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalPosition.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalRotation.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalRotation.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalRotation.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_AnchoredPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_AnchoredPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} @@ -1738,8 +1742,7 @@ PrefabInstance: m_SourcePrefab: {fileID: 100100000, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} --- !u!224 &1463789576 stripped RectTransform: - m_CorrespondingSourceObject: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + m_CorrespondingSourceObject: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} m_PrefabInstance: {fileID: 1463789575} m_PrefabAsset: {fileID: 0} --- !u!1 &1569820737 @@ -1794,6 +1797,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -1815,6 +1821,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -1913,6 +1920,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -1934,6 +1944,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -1971,7 +1982,7 @@ GameObject: m_Component: - component: {fileID: 1720569097} - component: {fileID: 1720569096} - - component: {fileID: 1720569095} + - component: {fileID: 1720569098} m_Layer: 0 m_Name: EventSystem m_TagString: Untagged @@ -1979,26 +1990,6 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!114 &1720569095 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1720569094} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3} - m_Name: - m_EditorClassIdentifier: - m_SendPointerHoverToParent: 1 - m_HorizontalAxis: Horizontal - m_VerticalAxis: Vertical - m_SubmitButton: Submit - m_CancelButton: Cancel - m_InputActionsPerSecond: 10 - m_RepeatDelay: 0.5 - m_ForceModuleActive: 0 --- !u!114 &1720569096 MonoBehaviour: m_ObjectHideFlags: 0 @@ -2029,6 +2020,37 @@ Transform: m_Children: [] m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1720569098 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1720569094} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 01614664b831546d2ae94a42149d80ac, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.InputSystem::UnityEngine.InputSystem.UI.InputSystemUIInputModule + m_SendPointerHoverToParent: 1 + m_MoveRepeatDelay: 0.5 + m_MoveRepeatRate: 0.1 + m_XRTrackingOrigin: {fileID: 0} + m_ActionsAsset: {fileID: -944628639613478452, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_PointAction: {fileID: -1654692200621890270, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_MoveAction: {fileID: -8784545083839296357, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_SubmitAction: {fileID: 392368643174621059, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_CancelAction: {fileID: 7727032971491509709, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_LeftClickAction: {fileID: 3001919216989983466, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_MiddleClickAction: {fileID: -2185481485913320682, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_RightClickAction: {fileID: -4090225696740746782, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_ScrollWheelAction: {fileID: 6240969308177333660, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_TrackedDevicePositionAction: {fileID: 6564999863303420839, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_TrackedDeviceOrientationAction: {fileID: 7970375526676320489, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_DeselectOnBackgroundClick: 1 + m_PointerBehavior: 0 + m_CursorLockBehavior: 0 + m_ScrollDeltaPerTick: 6 --- !u!1 &1722892045 GameObject: m_ObjectHideFlags: 0 @@ -2070,14 +2092,14 @@ Light: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1722892045} m_Enabled: 1 - serializedVersion: 11 + serializedVersion: 12 m_Type: 1 m_Color: {r: 1, g: 1, b: 1, a: 1} m_Intensity: 0.7 m_Range: 10 m_SpotAngle: 30 m_InnerSpotAngle: 21.80208 - m_CookieSize: 10 + m_CookieSize2D: {x: 10, y: 10} m_Shadows: m_Type: 0 m_Resolution: -1 @@ -2121,8 +2143,12 @@ Light: m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} m_UseBoundingSphereOverride: 0 m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 m_ShadowRadius: 0 m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 --- !u!114 &1722892048 MonoBehaviour: m_ObjectHideFlags: 0 @@ -2135,17 +2161,23 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} m_Name: m_EditorClassIdentifier: - m_Version: 3 m_UsePipelineSettings: 1 m_AdditionalLightsShadowResolutionTier: 2 - m_LightLayerMask: 1 - m_RenderingLayers: 1 m_CustomShadowLayers: 0 - m_ShadowLayerMask: 1 - m_ShadowRenderingLayers: 1 m_LightCookieSize: {x: 1, y: 1} m_LightCookieOffset: {x: 0, y: 0} m_SoftShadowQuality: 1 + m_RenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_ShadowRenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_Version: 4 + m_LightLayerMask: 1 + m_ShadowLayerMask: 1 + m_RenderingLayers: 1 + m_ShadowRenderingLayers: 1 --- !u!1 &1728013589 GameObject: m_ObjectHideFlags: 0 @@ -2198,6 +2230,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -2219,6 +2254,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -2283,6 +2319,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -2304,6 +2343,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -2368,6 +2408,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -2389,6 +2432,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -2477,7 +2521,7 @@ Canvas: m_OverrideSorting: 0 m_OverridePixelPerfect: 0 m_SortingBucketNormalizedSize: 0 - m_VertexColorAlwaysGammaSpace: 0 + m_VertexColorAlwaysGammaSpace: 1 m_AdditionalShaderChannelsFlag: 0 m_UpdateRectTransformForStandalone: 0 m_SortingLayerID: 0 @@ -2588,11 +2632,15 @@ MonoBehaviour: m_EndAngleFade: 180 m_UVScale: {x: 1, y: 1} m_UVBias: {x: 0, y: 0} - m_DecalLayerMask: 1 + m_RenderingLayerMask: + serializedVersion: 0 + m_Bits: 1 m_ScaleMode: 0 m_Offset: {x: 0, y: 0, z: 1.25} m_Size: {x: 1.2, y: 1.2, z: 2.5} m_FadeFactor: 1 + version: 1 + m_DecalLayerMask: 1 --- !u!1 &2036917905 GameObject: m_ObjectHideFlags: 0 @@ -2677,11 +2725,15 @@ MonoBehaviour: m_EndAngleFade: 180 m_UVScale: {x: 1, y: 1} m_UVBias: {x: 0, y: 0} - m_DecalLayerMask: 1 + m_RenderingLayerMask: + serializedVersion: 0 + m_Bits: 1 m_ScaleMode: 1 m_Offset: {x: 0, y: 0, z: 0.5} m_Size: {x: 1, y: 1, z: 1} m_FadeFactor: 0.929 + version: 1 + m_DecalLayerMask: 1 --- !u!1 &2061006832 GameObject: m_ObjectHideFlags: 0 @@ -2734,6 +2786,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -2755,6 +2810,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 diff --git a/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/LensFlares/LensFlareShowroom.unity b/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/LensFlares/LensFlareShowroom.unity index 2274ec73421..e0fe0c69dfa 100644 --- a/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/LensFlares/LensFlareShowroom.unity +++ b/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/LensFlares/LensFlareShowroom.unity @@ -38,12 +38,12 @@ RenderSettings: m_ReflectionIntensity: 1 m_CustomReflection: {fileID: 0} m_Sun: {fileID: 0} - m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} m_UseRadianceAmbientProbe: 0 --- !u!157 &3 LightmapSettings: m_ObjectHideFlags: 0 - serializedVersion: 12 + serializedVersion: 13 + m_BakeOnSceneLoad: 0 m_GISettings: serializedVersion: 2 m_BounceScale: 1 @@ -249,14 +249,14 @@ MonoBehaviour: m_ScreenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0} m_RequiresDepthTexture: 0 m_RequiresColorTexture: 0 - m_Version: 2 m_TaaSettings: - quality: 3 - frameInfluence: 0.1 - jitterScale: 1 - mipBias: 0 - varianceClampScale: 0.9 - contrastAdaptiveSharpening: 0 + m_Quality: 3 + m_FrameInfluence: 0.1 + m_JitterScale: 1 + m_MipBias: 0 + m_VarianceClampScale: 0.9 + m_ContrastAdaptiveSharpening: 0 + m_Version: 2 --- !u!114 &53531888 MonoBehaviour: m_ObjectHideFlags: 0 @@ -347,7 +347,7 @@ Canvas: m_OverrideSorting: 0 m_OverridePixelPerfect: 0 m_SortingBucketNormalizedSize: 0 - m_VertexColorAlwaysGammaSpace: 0 + m_VertexColorAlwaysGammaSpace: 1 m_AdditionalShaderChannelsFlag: 0 m_UpdateRectTransformForStandalone: 0 m_SortingLayerID: 0 @@ -384,7 +384,7 @@ GameObject: m_Component: - component: {fileID: 655853621} - component: {fileID: 655853620} - - component: {fileID: 655853619} + - component: {fileID: 655853622} m_Layer: 0 m_Name: EventSystem m_TagString: Untagged @@ -392,26 +392,6 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!114 &655853619 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 655853618} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3} - m_Name: - m_EditorClassIdentifier: - m_SendPointerHoverToParent: 1 - m_HorizontalAxis: Horizontal - m_VerticalAxis: Vertical - m_SubmitButton: Submit - m_CancelButton: Cancel - m_InputActionsPerSecond: 10 - m_RepeatDelay: 0.5 - m_ForceModuleActive: 0 --- !u!114 &655853620 MonoBehaviour: m_ObjectHideFlags: 0 @@ -442,10 +422,40 @@ Transform: m_Children: [] m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &655853622 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 655853618} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 01614664b831546d2ae94a42149d80ac, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.InputSystem::UnityEngine.InputSystem.UI.InputSystemUIInputModule + m_SendPointerHoverToParent: 1 + m_MoveRepeatDelay: 0.5 + m_MoveRepeatRate: 0.1 + m_XRTrackingOrigin: {fileID: 0} + m_ActionsAsset: {fileID: -944628639613478452, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_PointAction: {fileID: -1654692200621890270, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_MoveAction: {fileID: -8784545083839296357, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_SubmitAction: {fileID: 392368643174621059, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_CancelAction: {fileID: 7727032971491509709, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_LeftClickAction: {fileID: 3001919216989983466, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_MiddleClickAction: {fileID: -2185481485913320682, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_RightClickAction: {fileID: -4090225696740746782, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_ScrollWheelAction: {fileID: 6240969308177333660, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_TrackedDevicePositionAction: {fileID: 6564999863303420839, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_TrackedDeviceOrientationAction: {fileID: 7970375526676320489, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_DeselectOnBackgroundClick: 1 + m_PointerBehavior: 0 + m_CursorLockBehavior: 0 + m_ScrollDeltaPerTick: 6 --- !u!224 &815495023 stripped RectTransform: - m_CorrespondingSourceObject: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + m_CorrespondingSourceObject: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} m_PrefabInstance: {fileID: 5175856986666397034} m_PrefabAsset: {fileID: 0} --- !u!1 &1661162447 @@ -495,6 +505,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_LensFlareData: {fileID: 11400000, guid: cc12bb78d703b41fc991a32d4a3638ff, type: 2} + version: 0 intensity: 1 maxAttenuationDistance: 100 maxAttenuationScale: 100 @@ -573,6 +584,8 @@ MonoBehaviour: m_RotationOrder: 4 useOcclusion: 0 useBackgroundCloudOcclusion: 0 + environmentOcclusion: 0 + useWaterOcclusion: 0 occlusionRadius: 0.1 sampleCount: 32 occlusionOffset: 0.05 @@ -608,6 +621,7 @@ MonoBehaviour: m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 + lightOverride: {fileID: 0} --- !u!114 &1661162450 MonoBehaviour: m_ObjectHideFlags: 0 @@ -620,17 +634,23 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} m_Name: m_EditorClassIdentifier: - m_Version: 3 m_UsePipelineSettings: 1 m_AdditionalLightsShadowResolutionTier: 2 - m_LightLayerMask: 1 - m_RenderingLayers: 1 m_CustomShadowLayers: 0 - m_ShadowLayerMask: 1 - m_ShadowRenderingLayers: 1 m_LightCookieSize: {x: 1, y: 1} m_LightCookieOffset: {x: 0, y: 0} m_SoftShadowQuality: 1 + m_RenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_ShadowRenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_Version: 4 + m_LightLayerMask: 1 + m_ShadowLayerMask: 1 + m_RenderingLayers: 1 + m_ShadowRenderingLayers: 1 --- !u!108 &1661162451 Light: m_ObjectHideFlags: 0 @@ -639,14 +659,14 @@ Light: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1661162447} m_Enabled: 1 - serializedVersion: 11 + serializedVersion: 12 m_Type: 2 m_Color: {r: 1, g: 1, b: 1, a: 1} m_Intensity: 1 m_Range: 10 m_SpotAngle: 30 m_InnerSpotAngle: 21.80208 - m_CookieSize: 10 + m_CookieSize2D: {x: 10, y: 10} m_Shadows: m_Type: 0 m_Resolution: -1 @@ -690,8 +710,12 @@ Light: m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} m_UseBoundingSphereOverride: 0 m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 m_ShadowRadius: 0 m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 --- !u!224 &58250311194798963 RectTransform: m_ObjectHideFlags: 0 @@ -845,108 +869,87 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 221763171} m_Modifications: - - target: {fileID: 6308746673132675046, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6308746673132675046, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_Name value: CheckassignedRenderPipelineAsset objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_Pivot.x value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_Pivot.y value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_AnchorMax.x value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_AnchorMax.y value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_AnchorMin.x value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_AnchorMin.y value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_SizeDelta.x value: 100 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_SizeDelta.y value: 100 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalPosition.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalRotation.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalRotation.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalRotation.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_AnchoredPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_AnchoredPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} diff --git a/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/LensFlares/SunFlare.unity b/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/LensFlares/SunFlare.unity index 752f5c62a7f..52d58856503 100644 --- a/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/LensFlares/SunFlare.unity +++ b/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/LensFlares/SunFlare.unity @@ -38,12 +38,12 @@ RenderSettings: m_ReflectionIntensity: 1 m_CustomReflection: {fileID: 0} m_Sun: {fileID: 1090784526} - m_IndirectSpecularColor: {r: 0.18319249, g: 0.22679675, b: 0.29456753, a: 1} m_UseRadianceAmbientProbe: 0 --- !u!157 &3 LightmapSettings: m_ObjectHideFlags: 0 - serializedVersion: 12 + serializedVersion: 13 + m_BakeOnSceneLoad: 0 m_GISettings: serializedVersion: 2 m_BounceScale: 1 @@ -93,10 +93,8 @@ LightmapSettings: m_ExportTrainingData: 0 m_TrainingDataDestination: TrainingData m_LightProbeSampleCountMultiplier: 4 - m_LightingDataAsset: {fileID: 112000000, guid: 051cd0fb4954944d58ff036bd15b84d2, - type: 2} - m_LightingSettings: {fileID: 4890085278179872738, guid: cc82132cf70ce430aa8f74e4325388b6, - type: 2} + m_LightingDataAsset: {fileID: 112000000, guid: 051cd0fb4954944d58ff036bd15b84d2, type: 2} + m_LightingSettings: {fileID: 4890085278179872738, guid: cc82132cf70ce430aa8f74e4325388b6, type: 2} --- !u!196 &4 NavMeshSettings: serializedVersion: 2 @@ -287,14 +285,14 @@ MonoBehaviour: m_ScreenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0} m_RequiresDepthTexture: 0 m_RequiresColorTexture: 0 - m_Version: 2 m_TaaSettings: - quality: 3 - frameInfluence: 0.1 - jitterScale: 1 - mipBias: 0 - varianceClampScale: 0.9 - contrastAdaptiveSharpening: 0 + m_Quality: 3 + m_FrameInfluence: 0.1 + m_JitterScale: 1 + m_MipBias: 0 + m_VarianceClampScale: 0.9 + m_ContrastAdaptiveSharpening: 0 + m_Version: 2 --- !u!95 &122368105 Animator: serializedVersion: 7 @@ -325,108 +323,87 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 1768138160} m_Modifications: - - target: {fileID: 6308746673132675046, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6308746673132675046, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_Name value: CheckAssignedRenderPipelineAsset objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_Pivot.x value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_Pivot.y value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_AnchorMax.x value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_AnchorMax.y value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_AnchorMin.x value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_AnchorMin.y value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_SizeDelta.x value: 100 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_SizeDelta.y value: 100 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalPosition.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalRotation.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalRotation.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalRotation.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_AnchoredPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_AnchoredPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} @@ -437,8 +414,7 @@ PrefabInstance: m_SourcePrefab: {fileID: 100100000, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} --- !u!224 &683825575 stripped RectTransform: - m_CorrespondingSourceObject: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + m_CorrespondingSourceObject: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} m_PrefabInstance: {fileID: 683825574} m_PrefabAsset: {fileID: 0} --- !u!1 &711828110 @@ -474,7 +450,7 @@ MonoBehaviour: priority: 0 blendDistance: 0 weight: 1 - sharedProfile: {fileID: 11400000, guid: 9de64d640271b465a9b49c3009988576, type: 2} + sharedProfile: {fileID: 11400000, guid: ff8527d309d1d49598d1b259a43975d2, type: 2} --- !u!4 &711828112 Transform: m_ObjectHideFlags: 0 @@ -564,6 +540,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -585,6 +564,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -657,6 +637,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -678,6 +661,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -813,6 +797,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -834,6 +821,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -873,14 +861,14 @@ Light: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1090784525} m_Enabled: 1 - serializedVersion: 11 + serializedVersion: 12 m_Type: 1 m_Color: {r: 1, g: 0.98569185, b: 0.9386792, a: 1} m_Intensity: 1 m_Range: 10 m_SpotAngle: 30 m_InnerSpotAngle: 21.80208 - m_CookieSize: 10 + m_CookieSize2D: {x: 10, y: 10} m_Shadows: m_Type: 2 m_Resolution: -1 @@ -924,8 +912,12 @@ Light: m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} m_UseBoundingSphereOverride: 0 m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 m_ShadowRadius: 0 m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 --- !u!4 &1090784527 Transform: m_ObjectHideFlags: 0 @@ -953,17 +945,23 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} m_Name: m_EditorClassIdentifier: - m_Version: 3 m_UsePipelineSettings: 1 m_AdditionalLightsShadowResolutionTier: 2 - m_LightLayerMask: 1 - m_RenderingLayers: 1 m_CustomShadowLayers: 0 - m_ShadowLayerMask: 1 - m_ShadowRenderingLayers: 1 m_LightCookieSize: {x: 1, y: 1} m_LightCookieOffset: {x: 0, y: 0} m_SoftShadowQuality: 1 + m_RenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_ShadowRenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_Version: 4 + m_LightLayerMask: 1 + m_ShadowLayerMask: 1 + m_RenderingLayers: 1 + m_ShadowRenderingLayers: 1 --- !u!114 &1090784529 MonoBehaviour: m_ObjectHideFlags: 0 @@ -977,6 +975,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_LensFlareData: {fileID: 11400000, guid: 69ffd98bf7a2a4bf9a1217c6d30c381d, type: 2} + version: 0 intensity: 1 maxAttenuationDistance: 100 maxAttenuationScale: 100 @@ -1055,6 +1054,8 @@ MonoBehaviour: m_RotationOrder: 4 useOcclusion: 1 useBackgroundCloudOcclusion: 0 + environmentOcclusion: 0 + useWaterOcclusion: 0 occlusionRadius: 1 sampleCount: 16 occlusionOffset: 0.05 @@ -1090,6 +1091,7 @@ MonoBehaviour: m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 + lightOverride: {fileID: 0} --- !u!1001 &1142061373 PrefabInstance: m_ObjectHideFlags: 0 @@ -1098,133 +1100,107 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 1768138160} m_Modifications: - - target: {fileID: 155458132493177538, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 155458132493177538, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_Name value: MainPanel objectReference: {fileID: 0} - - target: {fileID: 155458132493177538, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 155458132493177538, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_IsActive value: 1 objectReference: {fileID: 0} - - target: {fileID: 1638750836712682043, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 1638750836712682043, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_Text value: Sun Flare objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_Pivot.x value: 1 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_Pivot.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_RootOrder value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_AnchorMax.x value: 1 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_AnchorMax.y value: 1 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_AnchorMin.x value: 1 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_AnchorMin.y value: 1 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_SizeDelta.x value: 400 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_SizeDelta.y value: 250 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalPosition.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalRotation.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalRotation.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalRotation.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_AnchoredPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_AnchoredPosition.y value: -250 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 3119812475398170508, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 3119812475398170508, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_Color.a value: 0.69411767 objectReference: {fileID: 0} - - target: {fileID: 4039968741557396746, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 4039968741557396746, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_Text value: 'This sample shows how to add a lens flare effect to the main directional light of the scene. The effect is authored via the Lens Flare (SRP) component @@ -1237,8 +1213,7 @@ PrefabInstance: m_SourcePrefab: {fileID: 100100000, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} --- !u!224 &1142061374 stripped RectTransform: - m_CorrespondingSourceObject: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + m_CorrespondingSourceObject: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} m_PrefabInstance: {fileID: 1142061373} m_PrefabAsset: {fileID: 0} --- !u!1 &1397610646 @@ -1300,6 +1275,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -1321,6 +1299,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -1422,6 +1401,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -1443,6 +1425,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -1465,7 +1448,7 @@ GameObject: m_Component: - component: {fileID: 1720569097} - component: {fileID: 1720569096} - - component: {fileID: 1720569095} + - component: {fileID: 1720569098} m_Layer: 0 m_Name: EventSystem m_TagString: Untagged @@ -1473,26 +1456,6 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!114 &1720569095 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1720569094} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3} - m_Name: - m_EditorClassIdentifier: - m_SendPointerHoverToParent: 1 - m_HorizontalAxis: Horizontal - m_VerticalAxis: Vertical - m_SubmitButton: Submit - m_CancelButton: Cancel - m_InputActionsPerSecond: 10 - m_RepeatDelay: 0.5 - m_ForceModuleActive: 0 --- !u!114 &1720569096 MonoBehaviour: m_ObjectHideFlags: 0 @@ -1523,6 +1486,37 @@ Transform: m_Children: [] m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1720569098 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1720569094} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 01614664b831546d2ae94a42149d80ac, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.InputSystem::UnityEngine.InputSystem.UI.InputSystemUIInputModule + m_SendPointerHoverToParent: 1 + m_MoveRepeatDelay: 0.5 + m_MoveRepeatRate: 0.1 + m_XRTrackingOrigin: {fileID: 0} + m_ActionsAsset: {fileID: -944628639613478452, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_PointAction: {fileID: -1654692200621890270, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_MoveAction: {fileID: -8784545083839296357, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_SubmitAction: {fileID: 392368643174621059, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_CancelAction: {fileID: 7727032971491509709, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_LeftClickAction: {fileID: 3001919216989983466, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_MiddleClickAction: {fileID: -2185481485913320682, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_RightClickAction: {fileID: -4090225696740746782, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_ScrollWheelAction: {fileID: 6240969308177333660, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_TrackedDevicePositionAction: {fileID: 6564999863303420839, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_TrackedDeviceOrientationAction: {fileID: 7970375526676320489, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_DeselectOnBackgroundClick: 1 + m_PointerBehavior: 0 + m_CursorLockBehavior: 0 + m_ScrollDeltaPerTick: 6 --- !u!1 &1722892045 GameObject: m_ObjectHideFlags: 0 @@ -1564,14 +1558,14 @@ Light: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1722892045} m_Enabled: 1 - serializedVersion: 11 + serializedVersion: 12 m_Type: 1 m_Color: {r: 1, g: 1, b: 1, a: 1} m_Intensity: 0.7 m_Range: 10 m_SpotAngle: 30 m_InnerSpotAngle: 21.80208 - m_CookieSize: 10 + m_CookieSize2D: {x: 10, y: 10} m_Shadows: m_Type: 0 m_Resolution: -1 @@ -1615,8 +1609,12 @@ Light: m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} m_UseBoundingSphereOverride: 0 m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 m_ShadowRadius: 0 m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 --- !u!114 &1722892048 MonoBehaviour: m_ObjectHideFlags: 0 @@ -1629,17 +1627,23 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} m_Name: m_EditorClassIdentifier: - m_Version: 3 m_UsePipelineSettings: 1 m_AdditionalLightsShadowResolutionTier: 2 - m_LightLayerMask: 1 - m_RenderingLayers: 1 m_CustomShadowLayers: 0 - m_ShadowLayerMask: 1 - m_ShadowRenderingLayers: 1 m_LightCookieSize: {x: 1, y: 1} m_LightCookieOffset: {x: 0, y: 0} m_SoftShadowQuality: 1 + m_RenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_ShadowRenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_Version: 4 + m_LightLayerMask: 1 + m_ShadowLayerMask: 1 + m_RenderingLayers: 1 + m_ShadowRenderingLayers: 1 --- !u!1 &1768138156 GameObject: m_ObjectHideFlags: 0 @@ -1716,7 +1720,7 @@ Canvas: m_OverrideSorting: 0 m_OverridePixelPerfect: 0 m_SortingBucketNormalizedSize: 0 - m_VertexColorAlwaysGammaSpace: 0 + m_VertexColorAlwaysGammaSpace: 1 m_AdditionalShaderChannelsFlag: 0 m_UpdateRectTransformForStandalone: 0 m_SortingLayerID: 0 @@ -1817,6 +1821,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -1838,6 +1845,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 diff --git a/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/Lighting/Reflection Probes/Reflection Probes.unity b/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/Lighting/Reflection Probes/Reflection Probes.unity index 164fb14f1c7..333d0e23099 100644 --- a/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/Lighting/Reflection Probes/Reflection Probes.unity +++ b/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/Lighting/Reflection Probes/Reflection Probes.unity @@ -38,12 +38,12 @@ RenderSettings: m_ReflectionIntensity: 1 m_CustomReflection: {fileID: 0} m_Sun: {fileID: 0} - m_IndirectSpecularColor: {r: 0.18028462, g: 0.22571573, b: 0.30692446, a: 1} m_UseRadianceAmbientProbe: 0 --- !u!157 &3 LightmapSettings: m_ObjectHideFlags: 0 - serializedVersion: 12 + serializedVersion: 13 + m_BakeOnSceneLoad: 0 m_GISettings: serializedVersion: 2 m_BounceScale: 1 @@ -93,10 +93,8 @@ LightmapSettings: m_ExportTrainingData: 0 m_TrainingDataDestination: TrainingData m_LightProbeSampleCountMultiplier: 4 - m_LightingDataAsset: {fileID: 112000000, guid: e51725d07132b7941bcbbbfa2a779c28, - type: 2} - m_LightingSettings: {fileID: 4890085278179872738, guid: cd7576f15f58aed48ae118b052dcc2f6, - type: 2} + m_LightingDataAsset: {fileID: 112000000, guid: e51725d07132b7941bcbbbfa2a779c28, type: 2} + m_LightingSettings: {fileID: 4890085278179872738, guid: cd7576f15f58aed48ae118b052dcc2f6, type: 2} --- !u!196 &4 NavMeshSettings: serializedVersion: 2 @@ -173,6 +171,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -194,6 +195,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -258,6 +260,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -279,6 +284,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -343,6 +349,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -364,6 +373,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -467,6 +477,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -488,6 +501,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -552,6 +566,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -573,6 +590,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -637,6 +655,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -658,6 +679,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -722,6 +744,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -743,6 +768,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -807,6 +833,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -828,6 +857,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -892,6 +922,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -913,6 +946,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -977,6 +1011,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -998,6 +1035,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -1062,6 +1100,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -1083,6 +1124,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -1147,6 +1189,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -1168,6 +1213,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -1232,6 +1278,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -1253,6 +1302,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -1317,6 +1367,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -1338,6 +1391,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -1402,6 +1456,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -1423,6 +1480,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -1487,6 +1545,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -1508,6 +1569,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -1606,6 +1668,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -1627,6 +1692,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -1691,6 +1757,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -1712,6 +1781,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -1776,6 +1846,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -1797,6 +1870,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -1861,6 +1935,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -1882,6 +1959,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -1946,6 +2024,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -1967,6 +2048,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -2251,14 +2333,14 @@ MonoBehaviour: m_ScreenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0} m_RequiresDepthTexture: 0 m_RequiresColorTexture: 0 - m_Version: 2 m_TaaSettings: - quality: 3 - frameInfluence: 0.1 - jitterScale: 1 - mipBias: 0 - varianceClampScale: 0.9 - contrastAdaptiveSharpening: 0 + m_Quality: 3 + m_FrameInfluence: 0.1 + m_JitterScale: 1 + m_MipBias: 0 + m_VarianceClampScale: 0.9 + m_ContrastAdaptiveSharpening: 0 + m_Version: 2 --- !u!81 &660513880 AudioListener: m_ObjectHideFlags: 0 @@ -2370,6 +2452,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -2391,6 +2476,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -2463,6 +2549,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -2484,6 +2573,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -2586,6 +2676,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -2607,6 +2700,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -2671,6 +2765,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -2692,6 +2789,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -2796,6 +2894,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -2817,6 +2918,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -2946,6 +3048,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -2967,6 +3072,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -3031,6 +3137,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -3052,6 +3161,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -3116,6 +3226,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -3137,6 +3250,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -3201,6 +3315,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -3222,6 +3339,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -3286,6 +3404,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -3307,6 +3428,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -3379,6 +3501,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -3400,6 +3525,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -3514,6 +3640,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -3535,6 +3664,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -3599,6 +3729,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -3620,6 +3753,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -3684,6 +3818,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -3705,6 +3842,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -3725,108 +3863,87 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 1768138160} m_Modifications: - - target: {fileID: 6308746673132675046, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6308746673132675046, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_Name value: CheckAssignedRenderPipelineAsset objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_Pivot.x value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_Pivot.y value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_AnchorMax.x value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_AnchorMax.y value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_AnchorMin.x value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_AnchorMin.y value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_SizeDelta.x value: 100 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_SizeDelta.y value: 100 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalPosition.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalRotation.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalRotation.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalRotation.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_AnchoredPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_AnchoredPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} @@ -3837,8 +3954,7 @@ PrefabInstance: m_SourcePrefab: {fileID: 100100000, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} --- !u!224 &1054423164 stripped RectTransform: - m_CorrespondingSourceObject: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + m_CorrespondingSourceObject: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} m_PrefabInstance: {fileID: 1054423163} m_PrefabAsset: {fileID: 0} --- !u!1 &1074624573 @@ -3932,14 +4048,14 @@ Light: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1090784525} m_Enabled: 1 - serializedVersion: 11 + serializedVersion: 12 m_Type: 1 m_Color: {r: 1, g: 1, b: 1, a: 1} m_Intensity: 1 m_Range: 10 m_SpotAngle: 30 m_InnerSpotAngle: 21.80208 - m_CookieSize: 10 + m_CookieSize2D: {x: 10, y: 10} m_Shadows: m_Type: 2 m_Resolution: -1 @@ -3983,8 +4099,12 @@ Light: m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} m_UseBoundingSphereOverride: 0 m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 m_ShadowRadius: 0 m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 --- !u!4 &1090784527 Transform: m_ObjectHideFlags: 0 @@ -4012,17 +4132,23 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} m_Name: m_EditorClassIdentifier: - m_Version: 3 m_UsePipelineSettings: 1 m_AdditionalLightsShadowResolutionTier: 2 - m_LightLayerMask: 1 - m_RenderingLayers: 1 m_CustomShadowLayers: 0 - m_ShadowLayerMask: 1 - m_ShadowRenderingLayers: 1 m_LightCookieSize: {x: 1, y: 1} m_LightCookieOffset: {x: 0, y: 0} m_SoftShadowQuality: 1 + m_RenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_ShadowRenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_Version: 4 + m_LightLayerMask: 1 + m_ShadowLayerMask: 1 + m_RenderingLayers: 1 + m_ShadowRenderingLayers: 1 --- !u!1 &1139303337 GameObject: m_ObjectHideFlags: 0 @@ -4075,6 +4201,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -4096,6 +4225,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -4116,123 +4246,99 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 1768138160} m_Modifications: - - target: {fileID: 155458132493177538, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 155458132493177538, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_Name value: MainPanel objectReference: {fileID: 0} - - target: {fileID: 1638750836712682043, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 1638750836712682043, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_Text value: Reflection Probes objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_Pivot.x value: 1 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_Pivot.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_RootOrder value: 1 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_AnchorMax.x value: 1 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_AnchorMax.y value: 1 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_AnchorMin.x value: 1 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_AnchorMin.y value: 1 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_SizeDelta.x value: 400 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_SizeDelta.y value: 251.1691 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalPosition.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalRotation.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalRotation.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalRotation.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_AnchoredPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_AnchoredPosition.y value: -251.169 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 4039968741557396746, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 4039968741557396746, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_Text value: This sample shows how the reflection probe settings blending reflection probes and box projection effects the reflections. Change the "Probe Blending" @@ -4245,8 +4351,7 @@ PrefabInstance: m_SourcePrefab: {fileID: 100100000, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} --- !u!224 &1142061374 stripped RectTransform: - m_CorrespondingSourceObject: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + m_CorrespondingSourceObject: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} m_PrefabInstance: {fileID: 1142061373} m_PrefabAsset: {fileID: 0} --- !u!1 &1150263169 @@ -4301,6 +4406,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -4322,6 +4430,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -4386,6 +4495,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -4407,6 +4519,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -4471,6 +4584,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -4492,6 +4608,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -4556,6 +4673,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -4577,6 +4697,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -4641,6 +4762,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -4662,6 +4786,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -4726,6 +4851,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -4747,6 +4875,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -4811,6 +4940,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -4832,6 +4964,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -4896,6 +5029,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -4917,6 +5053,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -4981,6 +5118,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -5002,6 +5142,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -5066,6 +5207,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -5087,6 +5231,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -5151,6 +5296,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -5172,6 +5320,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -5236,6 +5385,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -5257,6 +5409,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -5321,6 +5474,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -5342,6 +5498,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -5406,6 +5563,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -5427,6 +5587,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -5491,6 +5652,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -5512,6 +5676,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -5576,6 +5741,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -5597,6 +5765,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -5661,6 +5830,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -5682,6 +5854,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -5746,6 +5919,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -5767,6 +5943,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -5831,6 +6008,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -5852,6 +6032,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -5916,6 +6097,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -5937,6 +6121,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -6001,6 +6186,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -6022,6 +6210,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -6086,6 +6275,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -6107,6 +6299,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -6171,6 +6364,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -6192,6 +6388,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -6321,6 +6518,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -6342,6 +6542,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -6406,6 +6607,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -6427,6 +6631,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -6491,6 +6696,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -6512,6 +6720,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -6576,6 +6785,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -6597,6 +6809,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -6619,7 +6832,7 @@ GameObject: m_Component: - component: {fileID: 1720569097} - component: {fileID: 1720569096} - - component: {fileID: 1720569095} + - component: {fileID: 1720569098} m_Layer: 0 m_Name: EventSystem m_TagString: Untagged @@ -6627,26 +6840,6 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!114 &1720569095 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1720569094} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3} - m_Name: - m_EditorClassIdentifier: - m_SendPointerHoverToParent: 1 - m_HorizontalAxis: Horizontal - m_VerticalAxis: Vertical - m_SubmitButton: Submit - m_CancelButton: Cancel - m_InputActionsPerSecond: 10 - m_RepeatDelay: 0.5 - m_ForceModuleActive: 0 --- !u!114 &1720569096 MonoBehaviour: m_ObjectHideFlags: 0 @@ -6677,6 +6870,37 @@ Transform: m_Children: [] m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1720569098 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1720569094} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 01614664b831546d2ae94a42149d80ac, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.InputSystem::UnityEngine.InputSystem.UI.InputSystemUIInputModule + m_SendPointerHoverToParent: 1 + m_MoveRepeatDelay: 0.5 + m_MoveRepeatRate: 0.1 + m_XRTrackingOrigin: {fileID: 0} + m_ActionsAsset: {fileID: -944628639613478452, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_PointAction: {fileID: -1654692200621890270, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_MoveAction: {fileID: -8784545083839296357, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_SubmitAction: {fileID: 392368643174621059, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_CancelAction: {fileID: 7727032971491509709, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_LeftClickAction: {fileID: 3001919216989983466, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_MiddleClickAction: {fileID: -2185481485913320682, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_RightClickAction: {fileID: -4090225696740746782, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_ScrollWheelAction: {fileID: 6240969308177333660, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_TrackedDevicePositionAction: {fileID: 6564999863303420839, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_TrackedDeviceOrientationAction: {fileID: 7970375526676320489, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_DeselectOnBackgroundClick: 1 + m_PointerBehavior: 0 + m_CursorLockBehavior: 0 + m_ScrollDeltaPerTick: 6 --- !u!1 &1744972280 GameObject: m_ObjectHideFlags: 0 @@ -6729,6 +6953,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -6750,6 +6977,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -6838,7 +7066,7 @@ Canvas: m_OverrideSorting: 0 m_OverridePixelPerfect: 0 m_SortingBucketNormalizedSize: 0 - m_VertexColorAlwaysGammaSpace: 0 + m_VertexColorAlwaysGammaSpace: 1 m_AdditionalShaderChannelsFlag: 0 m_UpdateRectTransformForStandalone: 0 m_SortingLayerID: 0 @@ -6917,6 +7145,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -6938,6 +7169,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -7002,6 +7234,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -7023,6 +7258,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -7087,6 +7323,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -7108,6 +7347,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -7172,6 +7412,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -7193,6 +7436,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -7257,6 +7501,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -7278,6 +7525,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -7342,6 +7590,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -7363,6 +7614,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -7492,6 +7744,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -7513,6 +7768,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -7577,6 +7833,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -7598,6 +7857,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -7662,6 +7922,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -7683,6 +7946,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -7747,6 +8011,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -7768,6 +8035,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -7897,6 +8165,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -7918,6 +8189,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -7982,6 +8254,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -8003,6 +8278,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -8067,6 +8343,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -8088,6 +8367,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -8152,6 +8432,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -8173,6 +8456,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -8237,6 +8521,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -8258,6 +8545,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -8386,6 +8674,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -8407,6 +8698,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -8471,6 +8763,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -8492,6 +8787,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -8556,6 +8852,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -8577,6 +8876,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -8641,6 +8941,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -8662,6 +8965,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -8726,6 +9030,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -8747,6 +9054,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 diff --git a/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/RendererFeatures/AmbientOcclusion/AmbientOcclusion.unity b/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/RendererFeatures/AmbientOcclusion/AmbientOcclusion.unity index acbae91c456..f20dd6d2cb0 100644 --- a/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/RendererFeatures/AmbientOcclusion/AmbientOcclusion.unity +++ b/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/RendererFeatures/AmbientOcclusion/AmbientOcclusion.unity @@ -38,12 +38,12 @@ RenderSettings: m_ReflectionIntensity: 1 m_CustomReflection: {fileID: 0} m_Sun: {fileID: 1090784526} - m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} m_UseRadianceAmbientProbe: 0 --- !u!157 &3 LightmapSettings: m_ObjectHideFlags: 0 - serializedVersion: 12 + serializedVersion: 13 + m_BakeOnSceneLoad: 0 m_GISettings: serializedVersion: 2 m_BounceScale: 1 @@ -93,10 +93,8 @@ LightmapSettings: m_ExportTrainingData: 0 m_TrainingDataDestination: TrainingData m_LightProbeSampleCountMultiplier: 4 - m_LightingDataAsset: {fileID: 112000000, guid: 229d4b2e7bea54d8e81bd3ebede44445, - type: 2} - m_LightingSettings: {fileID: 4890085278179872738, guid: cc82132cf70ce430aa8f74e4325388b6, - type: 2} + m_LightingDataAsset: {fileID: 112000000, guid: 229d4b2e7bea54d8e81bd3ebede44445, type: 2} + m_LightingSettings: {fileID: 4890085278179872738, guid: cc82132cf70ce430aa8f74e4325388b6, type: 2} --- !u!196 &4 NavMeshSettings: serializedVersion: 2 @@ -173,6 +171,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -194,6 +195,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -258,6 +260,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -279,6 +284,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -299,108 +305,87 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 1768138160} m_Modifications: - - target: {fileID: 6308746673132675046, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6308746673132675046, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_Name value: CheckAssignedRenderPipelineAsset objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_Pivot.x value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_Pivot.y value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_AnchorMax.x value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_AnchorMax.y value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_AnchorMin.x value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_AnchorMin.y value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_SizeDelta.x value: 100 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_SizeDelta.y value: 100 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalPosition.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalRotation.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalRotation.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalRotation.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_AnchoredPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_AnchoredPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} @@ -411,8 +396,7 @@ PrefabInstance: m_SourcePrefab: {fileID: 100100000, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} --- !u!224 &70685147 stripped RectTransform: - m_CorrespondingSourceObject: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + m_CorrespondingSourceObject: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} m_PrefabInstance: {fileID: 70685146} m_PrefabAsset: {fileID: 0} --- !u!1 &96192176 @@ -467,6 +451,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -488,6 +475,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -630,14 +618,14 @@ MonoBehaviour: m_ScreenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0} m_RequiresDepthTexture: 0 m_RequiresColorTexture: 0 - m_Version: 2 m_TaaSettings: - quality: 3 - frameInfluence: 0.1 - jitterScale: 1 - mipBias: 0 - varianceClampScale: 0.9 - contrastAdaptiveSharpening: 0 + m_Quality: 3 + m_FrameInfluence: 0.1 + m_JitterScale: 1 + m_MipBias: 0 + m_VarianceClampScale: 0.9 + m_ContrastAdaptiveSharpening: 0 + m_Version: 2 --- !u!95 &122368105 Animator: serializedVersion: 7 @@ -712,6 +700,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -733,6 +724,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -797,6 +789,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -818,6 +813,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -882,6 +878,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -903,6 +902,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -967,6 +967,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -988,6 +991,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -1052,6 +1056,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -1073,6 +1080,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -1137,6 +1145,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -1158,6 +1169,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -1222,6 +1234,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -1243,6 +1258,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -1307,6 +1323,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -1328,6 +1347,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -1400,6 +1420,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -1421,6 +1444,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -1535,6 +1559,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -1556,6 +1583,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -1620,6 +1648,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -1641,6 +1672,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -1679,14 +1711,14 @@ Light: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1090784525} m_Enabled: 1 - serializedVersion: 11 + serializedVersion: 12 m_Type: 1 m_Color: {r: 1, g: 1, b: 1, a: 1} m_Intensity: 1 m_Range: 10 m_SpotAngle: 30 m_InnerSpotAngle: 21.80208 - m_CookieSize: 10 + m_CookieSize2D: {x: 10, y: 10} m_Shadows: m_Type: 2 m_Resolution: -1 @@ -1730,8 +1762,12 @@ Light: m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} m_UseBoundingSphereOverride: 0 m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 m_ShadowRadius: 0 m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 --- !u!4 &1090784527 Transform: m_ObjectHideFlags: 0 @@ -1759,17 +1795,23 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} m_Name: m_EditorClassIdentifier: - m_Version: 3 m_UsePipelineSettings: 1 m_AdditionalLightsShadowResolutionTier: 2 - m_LightLayerMask: 1 - m_RenderingLayers: 1 m_CustomShadowLayers: 0 - m_ShadowLayerMask: 1 - m_ShadowRenderingLayers: 1 m_LightCookieSize: {x: 1, y: 1} m_LightCookieOffset: {x: 0, y: 0} m_SoftShadowQuality: 1 + m_RenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_ShadowRenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_Version: 4 + m_LightLayerMask: 1 + m_ShadowLayerMask: 1 + m_RenderingLayers: 1 + m_ShadowRenderingLayers: 1 --- !u!1001 &1142061373 PrefabInstance: m_ObjectHideFlags: 0 @@ -1778,123 +1820,99 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 1768138160} m_Modifications: - - target: {fileID: 155458132493177538, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 155458132493177538, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_Name value: MainPanel objectReference: {fileID: 0} - - target: {fileID: 1638750836712682043, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 1638750836712682043, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_Text value: SSAO objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_Pivot.x value: 1 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_Pivot.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_RootOrder value: 1 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_AnchorMax.x value: 1 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_AnchorMax.y value: 1 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_AnchorMin.x value: 1 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_AnchorMin.y value: 1 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_SizeDelta.x value: 400 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_SizeDelta.y value: 250 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalPosition.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalRotation.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalRotation.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalRotation.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_AnchoredPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_AnchoredPosition.y value: -250 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 4039968741557396746, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 4039968741557396746, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_Text value: 'This sample shows how to add Screen Space Ambient Occlusion (SSAO) to URP. Inspect the SSAO_Renderer to see how a Renderer Feature is responsible @@ -1907,8 +1925,7 @@ PrefabInstance: m_SourcePrefab: {fileID: 100100000, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} --- !u!224 &1142061374 stripped RectTransform: - m_CorrespondingSourceObject: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + m_CorrespondingSourceObject: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} m_PrefabInstance: {fileID: 1142061373} m_PrefabAsset: {fileID: 0} --- !u!1 &1150263169 @@ -1963,6 +1980,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -1984,6 +2004,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -2048,6 +2069,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -2069,6 +2093,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -2133,6 +2158,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -2154,6 +2182,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -2218,6 +2247,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -2239,6 +2271,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -2303,6 +2336,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -2324,6 +2360,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -2388,6 +2425,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -2409,6 +2449,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -2473,6 +2514,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -2494,6 +2538,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -2558,6 +2603,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -2579,6 +2627,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -2643,6 +2692,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -2664,6 +2716,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -2728,6 +2781,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -2749,6 +2805,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -2813,6 +2870,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -2834,6 +2894,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -2856,7 +2917,7 @@ GameObject: m_Component: - component: {fileID: 1720569097} - component: {fileID: 1720569096} - - component: {fileID: 1720569095} + - component: {fileID: 1720569098} m_Layer: 0 m_Name: EventSystem m_TagString: Untagged @@ -2864,26 +2925,6 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!114 &1720569095 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1720569094} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3} - m_Name: - m_EditorClassIdentifier: - m_SendPointerHoverToParent: 1 - m_HorizontalAxis: Horizontal - m_VerticalAxis: Vertical - m_SubmitButton: Submit - m_CancelButton: Cancel - m_InputActionsPerSecond: 10 - m_RepeatDelay: 0.5 - m_ForceModuleActive: 0 --- !u!114 &1720569096 MonoBehaviour: m_ObjectHideFlags: 0 @@ -2914,6 +2955,37 @@ Transform: m_Children: [] m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1720569098 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1720569094} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 01614664b831546d2ae94a42149d80ac, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.InputSystem::UnityEngine.InputSystem.UI.InputSystemUIInputModule + m_SendPointerHoverToParent: 1 + m_MoveRepeatDelay: 0.5 + m_MoveRepeatRate: 0.1 + m_XRTrackingOrigin: {fileID: 0} + m_ActionsAsset: {fileID: -944628639613478452, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_PointAction: {fileID: -1654692200621890270, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_MoveAction: {fileID: -8784545083839296357, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_SubmitAction: {fileID: 392368643174621059, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_CancelAction: {fileID: 7727032971491509709, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_LeftClickAction: {fileID: 3001919216989983466, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_MiddleClickAction: {fileID: -2185481485913320682, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_RightClickAction: {fileID: -4090225696740746782, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_ScrollWheelAction: {fileID: 6240969308177333660, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_TrackedDevicePositionAction: {fileID: 6564999863303420839, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_TrackedDeviceOrientationAction: {fileID: 7970375526676320489, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_DeselectOnBackgroundClick: 1 + m_PointerBehavior: 0 + m_CursorLockBehavior: 0 + m_ScrollDeltaPerTick: 6 --- !u!1 &1722892045 GameObject: m_ObjectHideFlags: 0 @@ -2955,14 +3027,14 @@ Light: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1722892045} m_Enabled: 1 - serializedVersion: 11 + serializedVersion: 12 m_Type: 1 m_Color: {r: 1, g: 1, b: 1, a: 1} m_Intensity: 0.7 m_Range: 10 m_SpotAngle: 30 m_InnerSpotAngle: 21.80208 - m_CookieSize: 10 + m_CookieSize2D: {x: 10, y: 10} m_Shadows: m_Type: 0 m_Resolution: -1 @@ -3006,8 +3078,12 @@ Light: m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} m_UseBoundingSphereOverride: 0 m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 m_ShadowRadius: 0 m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 --- !u!114 &1722892048 MonoBehaviour: m_ObjectHideFlags: 0 @@ -3020,17 +3096,23 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} m_Name: m_EditorClassIdentifier: - m_Version: 3 m_UsePipelineSettings: 1 m_AdditionalLightsShadowResolutionTier: 2 - m_LightLayerMask: 1 - m_RenderingLayers: 1 m_CustomShadowLayers: 0 - m_ShadowLayerMask: 1 - m_ShadowRenderingLayers: 1 m_LightCookieSize: {x: 1, y: 1} m_LightCookieOffset: {x: 0, y: 0} m_SoftShadowQuality: 1 + m_RenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_ShadowRenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_Version: 4 + m_LightLayerMask: 1 + m_ShadowLayerMask: 1 + m_RenderingLayers: 1 + m_ShadowRenderingLayers: 1 --- !u!1 &1744972280 GameObject: m_ObjectHideFlags: 0 @@ -3083,6 +3165,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -3104,6 +3189,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -3192,7 +3278,7 @@ Canvas: m_OverrideSorting: 0 m_OverridePixelPerfect: 0 m_SortingBucketNormalizedSize: 0 - m_VertexColorAlwaysGammaSpace: 0 + m_VertexColorAlwaysGammaSpace: 1 m_AdditionalShaderChannelsFlag: 0 m_UpdateRectTransformForStandalone: 0 m_SortingLayerID: 0 @@ -3271,6 +3357,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -3292,6 +3381,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -3356,6 +3446,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -3377,6 +3470,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -3441,6 +3535,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -3462,6 +3559,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -3526,6 +3624,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -3547,6 +3648,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -3611,6 +3713,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -3632,6 +3737,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -3696,6 +3802,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -3717,6 +3826,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -3781,6 +3891,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -3802,6 +3915,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -3930,6 +4044,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -3951,6 +4068,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 diff --git a/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/RendererFeatures/BlitToRTHandle/BlitToRTHandle.unity b/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/RendererFeatures/BlitToRTHandle/BlitToRTHandle.unity index 518d8ae4b6f..9b120508600 100644 --- a/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/RendererFeatures/BlitToRTHandle/BlitToRTHandle.unity +++ b/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/RendererFeatures/BlitToRTHandle/BlitToRTHandle.unity @@ -38,12 +38,12 @@ RenderSettings: m_ReflectionIntensity: 1 m_CustomReflection: {fileID: 0} m_Sun: {fileID: 0} - m_IndirectSpecularColor: {r: 0.18028378, g: 0.22571412, b: 0.30692285, a: 1} m_UseRadianceAmbientProbe: 0 --- !u!157 &3 LightmapSettings: m_ObjectHideFlags: 0 - serializedVersion: 12 + serializedVersion: 13 + m_BakeOnSceneLoad: 0 m_GISettings: serializedVersion: 2 m_BounceScale: 1 @@ -272,6 +272,8 @@ MeshRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -293,6 +295,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -350,17 +353,23 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} m_Name: m_EditorClassIdentifier: - m_Version: 3 m_UsePipelineSettings: 1 m_AdditionalLightsShadowResolutionTier: 2 - m_LightLayerMask: 1 - m_RenderingLayers: 1 m_CustomShadowLayers: 0 - m_ShadowLayerMask: 1 - m_ShadowRenderingLayers: 1 m_LightCookieSize: {x: 1, y: 1} m_LightCookieOffset: {x: 0, y: 0} m_SoftShadowQuality: 0 + m_RenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_ShadowRenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_Version: 4 + m_LightLayerMask: 1 + m_ShadowLayerMask: 1 + m_RenderingLayers: 1 + m_ShadowRenderingLayers: 1 --- !u!108 &203844588 Light: m_ObjectHideFlags: 0 @@ -369,14 +378,14 @@ Light: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 203844586} m_Enabled: 1 - serializedVersion: 11 + serializedVersion: 12 m_Type: 1 m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} m_Intensity: 1 m_Range: 10 m_SpotAngle: 30 m_InnerSpotAngle: 21.80208 - m_CookieSize: 10 + m_CookieSize2D: {x: 10, y: 10} m_Shadows: m_Type: 2 m_Resolution: -1 @@ -423,6 +432,9 @@ Light: m_ForceVisible: 0 m_ShadowRadius: 0 m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 --- !u!4 &203844589 Transform: m_ObjectHideFlags: 0 @@ -491,6 +503,8 @@ MeshRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -512,6 +526,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -706,7 +721,7 @@ Canvas: m_OverrideSorting: 0 m_OverridePixelPerfect: 0 m_SortingBucketNormalizedSize: 0 - m_VertexColorAlwaysGammaSpace: 0 + m_VertexColorAlwaysGammaSpace: 1 m_AdditionalShaderChannelsFlag: 0 m_UpdateRectTransformForStandalone: 0 m_SortingLayerID: 0 @@ -771,6 +786,8 @@ MeshRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -792,6 +809,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -879,14 +897,14 @@ MonoBehaviour: m_ScreenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0} m_RequiresDepthTexture: 0 m_RequiresColorTexture: 0 - m_Version: 2 m_TaaSettings: - quality: 3 - frameInfluence: 0.1 - jitterScale: 1 - mipBias: 0 - varianceClampScale: 0.9 - contrastAdaptiveSharpening: 0 + m_Quality: 3 + m_FrameInfluence: 0.1 + m_JitterScale: 1 + m_MipBias: 0 + m_VarianceClampScale: 0.9 + m_ContrastAdaptiveSharpening: 0 + m_Version: 2 --- !u!81 &961739751 AudioListener: m_ObjectHideFlags: 0 @@ -999,6 +1017,8 @@ MeshRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -1020,6 +1040,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -1100,6 +1121,8 @@ MeshRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -1121,6 +1144,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 diff --git a/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/RendererFeatures/BlitToRTHandle/BlitToRTHandlePass.cs b/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/RendererFeatures/BlitToRTHandle/BlitToRTHandlePass.cs index a7f0feff056..33fbaa598c1 100644 --- a/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/RendererFeatures/BlitToRTHandle/BlitToRTHandlePass.cs +++ b/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/RendererFeatures/BlitToRTHandle/BlitToRTHandlePass.cs @@ -25,6 +25,7 @@ public BlitToRTHandlePass(RenderPassEvent evt, Material mat) m_Material = mat; } +#if URP_COMPATIBILITY_MODE // Compatibility Mode is being removed #pragma warning disable 618, 672 // Type or member is obsolete, Member overrides obsolete member // Unity calls the Configure method in the Compatibility mode (non-RenderGraph path) @@ -61,6 +62,7 @@ public override void Execute(ScriptableRenderContext context, ref RenderingData } #pragma warning restore 618, 672 +#endif // Unity calls the RecordRenderGraph method to add and configure one or more render passes in the render graph system. public override void RecordRenderGraph(RenderGraph renderGraph, ContextContainer frameData) diff --git a/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/RendererFeatures/DepthBlit/DepthBlit.unity b/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/RendererFeatures/DepthBlit/DepthBlit.unity index 99d1f3adcae..1e5acadd36d 100644 --- a/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/RendererFeatures/DepthBlit/DepthBlit.unity +++ b/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/RendererFeatures/DepthBlit/DepthBlit.unity @@ -38,12 +38,12 @@ RenderSettings: m_ReflectionIntensity: 1 m_CustomReflection: {fileID: 0} m_Sun: {fileID: 0} - m_IndirectSpecularColor: {r: 0.18028378, g: 0.22571412, b: 0.30692285, a: 1} m_UseRadianceAmbientProbe: 0 --- !u!157 &3 LightmapSettings: m_ObjectHideFlags: 0 - serializedVersion: 12 + serializedVersion: 13 + m_BakeOnSceneLoad: 0 m_GISettings: serializedVersion: 2 m_BounceScale: 1 @@ -272,6 +272,8 @@ MeshRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -293,6 +295,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -456,17 +459,23 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} m_Name: m_EditorClassIdentifier: - m_Version: 3 m_UsePipelineSettings: 1 m_AdditionalLightsShadowResolutionTier: 2 - m_LightLayerMask: 1 - m_RenderingLayers: 1 m_CustomShadowLayers: 0 - m_ShadowLayerMask: 1 - m_ShadowRenderingLayers: 1 m_LightCookieSize: {x: 1, y: 1} m_LightCookieOffset: {x: 0, y: 0} m_SoftShadowQuality: 0 + m_RenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_ShadowRenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_Version: 4 + m_LightLayerMask: 1 + m_ShadowLayerMask: 1 + m_RenderingLayers: 1 + m_ShadowRenderingLayers: 1 --- !u!108 &203844588 Light: m_ObjectHideFlags: 0 @@ -475,14 +484,14 @@ Light: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 203844586} m_Enabled: 1 - serializedVersion: 11 + serializedVersion: 12 m_Type: 1 m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} m_Intensity: 1 m_Range: 10 m_SpotAngle: 30 m_InnerSpotAngle: 21.80208 - m_CookieSize: 10 + m_CookieSize2D: {x: 10, y: 10} m_Shadows: m_Type: 0 m_Resolution: -1 @@ -529,6 +538,9 @@ Light: m_ForceVisible: 0 m_ShadowRadius: 0 m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 --- !u!4 &203844589 Transform: m_ObjectHideFlags: 0 @@ -582,6 +594,8 @@ MeshRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -603,6 +617,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -668,6 +683,8 @@ MeshRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -689,6 +706,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -754,6 +772,8 @@ MeshRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -775,6 +795,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -878,7 +899,7 @@ Canvas: m_OverrideSorting: 0 m_OverridePixelPerfect: 0 m_SortingBucketNormalizedSize: 0 - m_VertexColorAlwaysGammaSpace: 0 + m_VertexColorAlwaysGammaSpace: 1 m_AdditionalShaderChannelsFlag: 0 m_UpdateRectTransformForStandalone: 0 m_SortingLayerID: 0 @@ -970,6 +991,8 @@ MeshRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -991,6 +1014,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -1073,14 +1097,14 @@ MonoBehaviour: m_ScreenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0} m_RequiresDepthTexture: 0 m_RequiresColorTexture: 0 - m_Version: 2 m_TaaSettings: - quality: 3 - frameInfluence: 0.1 - jitterScale: 1 - mipBias: 0 - varianceClampScale: 0.9 - contrastAdaptiveSharpening: 0 + m_Quality: 3 + m_FrameInfluence: 0.1 + m_JitterScale: 1 + m_MipBias: 0 + m_VarianceClampScale: 0.9 + m_ContrastAdaptiveSharpening: 0 + m_Version: 2 --- !u!81 &961739751 AudioListener: m_ObjectHideFlags: 0 @@ -1193,6 +1217,8 @@ MeshRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -1214,6 +1240,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -1279,6 +1306,8 @@ MeshRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -1300,6 +1329,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -1365,6 +1395,8 @@ MeshRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -1386,6 +1418,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -1451,6 +1484,8 @@ MeshRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -1472,6 +1507,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -1537,6 +1573,8 @@ MeshRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -1558,6 +1596,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 diff --git a/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/RendererFeatures/DepthBlit/DepthBlitCopyDepthPass.cs b/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/RendererFeatures/DepthBlit/DepthBlitCopyDepthPass.cs index 7f9389fa072..c8bf2fb8c51 100644 --- a/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/RendererFeatures/DepthBlit/DepthBlitCopyDepthPass.cs +++ b/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/RendererFeatures/DepthBlit/DepthBlitCopyDepthPass.cs @@ -49,6 +49,7 @@ public DepthBlitCopyDepthPass(RenderPassEvent evt, Shader copyDepthShader, m_Keyword_OutputDepth = GlobalKeyword.Create(ShaderKeywordStrings._OUTPUT_DEPTH); } +#if URP_COMPATIBILITY_MODE // Compatibility Mode is being removed #pragma warning disable 618, 672 // Type or member is obsolete, Member overrides obsolete member // Set the RTHandle as the output target in the Compatibility mode. @@ -92,6 +93,7 @@ public override void Execute(ScriptableRenderContext context, ref RenderingData } #pragma warning restore 618, 672 +#endif // Unity calls the RecordRenderGraph method to add and configure one or more render passes in the render graph system. public override void RecordRenderGraph(RenderGraph renderGraph, ContextContainer frameData) diff --git a/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/RendererFeatures/DepthBlit/DepthBlitDepthOnlyPass.cs b/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/RendererFeatures/DepthBlit/DepthBlitDepthOnlyPass.cs index 195ca2aec88..30529934c39 100644 --- a/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/RendererFeatures/DepthBlit/DepthBlitDepthOnlyPass.cs +++ b/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/RendererFeatures/DepthBlit/DepthBlitDepthOnlyPass.cs @@ -33,6 +33,7 @@ public DepthBlitDepthOnlyPass(RenderPassEvent evt, RenderQueueRange renderQueueR m_FilteringSettings = new FilteringSettings(renderQueueRange, layerMask); } +#if URP_COMPATIBILITY_MODE // Compatibility Mode is being removed #pragma warning disable 618, 672 // Type or member is obsolete, Member overrides obsolete member // Unity calls the Configure method in the Compatibility mode (non-RenderGraph path) @@ -71,6 +72,7 @@ public override void Execute(ScriptableRenderContext context, ref RenderingData } #pragma warning restore 618, 672 +#endif // Unity calls the RecordRenderGraph method to add and configure one or more render passes in the render graph system. public override void RecordRenderGraph(RenderGraph renderGraph, ContextContainer frameData) diff --git a/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/RendererFeatures/DepthBlit/DepthBlitEdgePass.cs b/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/RendererFeatures/DepthBlit/DepthBlitEdgePass.cs index 69b4501bafe..c901673578b 100644 --- a/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/RendererFeatures/DepthBlit/DepthBlitEdgePass.cs +++ b/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/RendererFeatures/DepthBlit/DepthBlitEdgePass.cs @@ -22,6 +22,7 @@ public void SetRTHandle(ref RTHandle depthHandle) m_DepthHandle = depthHandle; } +#if URP_COMPATIBILITY_MODE // Compatibility Mode is being removed #pragma warning disable 618, 672 // Type or member is obsolete, Member overrides obsolete member // Unity calls the Execute method in the Compatibility mode @@ -48,6 +49,7 @@ public override void Execute(ScriptableRenderContext context, ref RenderingData } #pragma warning restore 618, 672 +#endif // Unity calls the RecordRenderGraph method to add and configure one or more render passes in the render graph system. public override void RecordRenderGraph(RenderGraph renderGraph, ContextContainer frameData) diff --git a/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/RendererFeatures/DistortTunnel/DistortTunnel.unity b/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/RendererFeatures/DistortTunnel/DistortTunnel.unity index 6d089b0f366..dc1669e389e 100644 --- a/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/RendererFeatures/DistortTunnel/DistortTunnel.unity +++ b/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/RendererFeatures/DistortTunnel/DistortTunnel.unity @@ -38,12 +38,12 @@ RenderSettings: m_ReflectionIntensity: 1 m_CustomReflection: {fileID: 0} m_Sun: {fileID: 0} - m_IndirectSpecularColor: {r: 0.18028378, g: 0.22571412, b: 0.30692285, a: 1} m_UseRadianceAmbientProbe: 0 --- !u!157 &3 LightmapSettings: m_ObjectHideFlags: 0 - serializedVersion: 12 + serializedVersion: 13 + m_BakeOnSceneLoad: 0 m_GISettings: serializedVersion: 2 m_BounceScale: 1 @@ -288,6 +288,8 @@ MeshRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -309,6 +311,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -374,6 +377,8 @@ MeshRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -395,6 +400,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -437,17 +443,23 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} m_Name: m_EditorClassIdentifier: - m_Version: 3 m_UsePipelineSettings: 1 m_AdditionalLightsShadowResolutionTier: 2 - m_LightLayerMask: 1 - m_RenderingLayers: 1 m_CustomShadowLayers: 0 - m_ShadowLayerMask: 1 - m_ShadowRenderingLayers: 1 m_LightCookieSize: {x: 1, y: 1} m_LightCookieOffset: {x: 0, y: 0} m_SoftShadowQuality: 0 + m_RenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_ShadowRenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_Version: 4 + m_LightLayerMask: 1 + m_ShadowLayerMask: 1 + m_RenderingLayers: 1 + m_ShadowRenderingLayers: 1 --- !u!108 &203844588 Light: m_ObjectHideFlags: 0 @@ -456,14 +468,14 @@ Light: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 203844586} m_Enabled: 1 - serializedVersion: 11 + serializedVersion: 12 m_Type: 1 m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} m_Intensity: 1 m_Range: 10 m_SpotAngle: 30 m_InnerSpotAngle: 21.80208 - m_CookieSize: 10 + m_CookieSize2D: {x: 10, y: 10} m_Shadows: m_Type: 2 m_Resolution: -1 @@ -510,6 +522,9 @@ Light: m_ForceVisible: 0 m_ShadowRadius: 0 m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 --- !u!4 &203844589 Transform: m_ObjectHideFlags: 0 @@ -579,6 +594,8 @@ ParticleSystemRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -600,6 +617,7 @@ ParticleSystemRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -5411,6 +5429,8 @@ MeshRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -5432,6 +5452,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -5498,6 +5519,8 @@ ParticleSystemRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -5519,6 +5542,7 @@ ParticleSystemRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -10353,7 +10377,7 @@ Canvas: m_OverrideSorting: 0 m_OverridePixelPerfect: 0 m_SortingBucketNormalizedSize: 0 - m_VertexColorAlwaysGammaSpace: 0 + m_VertexColorAlwaysGammaSpace: 1 m_AdditionalShaderChannelsFlag: 0 m_UpdateRectTransformForStandalone: 0 m_SortingLayerID: 0 @@ -10418,6 +10442,8 @@ MeshRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -10439,6 +10465,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -10519,6 +10546,8 @@ MeshRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -10540,6 +10569,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -10605,6 +10635,8 @@ MeshRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -10626,6 +10658,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -10691,6 +10724,8 @@ MeshRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -10712,6 +10747,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -10784,14 +10820,14 @@ MonoBehaviour: m_ScreenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0} m_RequiresDepthTexture: 0 m_RequiresColorTexture: 0 - m_Version: 2 m_TaaSettings: - quality: 3 - frameInfluence: 0.1 - jitterScale: 1 - mipBias: 0 - varianceClampScale: 0.9 - contrastAdaptiveSharpening: 0 + m_Quality: 3 + m_FrameInfluence: 0.1 + m_JitterScale: 1 + m_MipBias: 0 + m_VarianceClampScale: 0.9 + m_ContrastAdaptiveSharpening: 0 + m_Version: 2 --- !u!81 &961739751 AudioListener: m_ObjectHideFlags: 0 @@ -10921,6 +10957,8 @@ ParticleSystemRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -10942,6 +10980,7 @@ ParticleSystemRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -15753,6 +15792,8 @@ MeshRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -15774,6 +15815,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -15839,6 +15881,8 @@ MeshRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -15860,6 +15904,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -15966,6 +16011,8 @@ MeshRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -15987,6 +16034,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -16052,6 +16100,8 @@ MeshRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -16073,6 +16123,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -16138,6 +16189,8 @@ MeshRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -16159,6 +16212,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -16358,6 +16412,8 @@ MeshRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -16379,6 +16435,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -16459,6 +16516,8 @@ MeshRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -16480,6 +16539,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -16545,6 +16605,8 @@ MeshRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -16566,6 +16628,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -16631,6 +16694,8 @@ MeshRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -16652,6 +16717,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -16717,6 +16783,8 @@ MeshRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -16738,6 +16806,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -16803,6 +16872,8 @@ MeshRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -16824,6 +16895,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -16889,6 +16961,8 @@ MeshRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -16910,6 +16984,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -16975,6 +17050,8 @@ MeshRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -16996,6 +17073,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -17145,6 +17223,8 @@ ParticleSystemRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -17166,6 +17246,7 @@ ParticleSystemRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 diff --git a/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/RendererFeatures/DistortTunnel/DistortTunnelPass_CopyColor.cs b/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/RendererFeatures/DistortTunnel/DistortTunnelPass_CopyColor.cs index 65f25e696c1..513d304ccc6 100644 --- a/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/RendererFeatures/DistortTunnel/DistortTunnelPass_CopyColor.cs +++ b/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/RendererFeatures/DistortTunnel/DistortTunnelPass_CopyColor.cs @@ -25,6 +25,7 @@ public void SetRTHandles(ref RTHandle dest, int slice) m_Material = Blitter.GetBlitMaterial(TextureDimension.Tex2DArray); } +#if URP_COMPATIBILITY_MODE // Compatibility Mode is being removed #pragma warning disable 618, 672 // Type or member is obsolete, Member overrides obsolete member // Unity calls the Configure method in the Compatibility mode (non-RenderGraph path) @@ -56,6 +57,7 @@ public override void Execute(ScriptableRenderContext context, ref RenderingData } #pragma warning restore 618, 672 +#endif // Unity calls the RecordRenderGraph method to add and configure one or more render passes in the render graph system. public override void RecordRenderGraph(RenderGraph renderGraph, ContextContainer frameData) diff --git a/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/RendererFeatures/DistortTunnel/DistortTunnelPass_Distort.cs b/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/RendererFeatures/DistortTunnel/DistortTunnelPass_Distort.cs index 9b4c0dfa265..ae9d2f261cd 100644 --- a/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/RendererFeatures/DistortTunnel/DistortTunnelPass_Distort.cs +++ b/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/RendererFeatures/DistortTunnel/DistortTunnelPass_Distort.cs @@ -25,6 +25,7 @@ public void SetRTHandles(ref RTHandle srcRT) m_DistortTunnelTexHandle = srcRT; } +#if URP_COMPATIBILITY_MODE // Compatibility Mode is being removed #pragma warning disable 618, 672 // Type or member is obsolete, Member overrides obsolete member // Unity calls the OnCameraSetup method in the Compatibility mode (non-RenderGraph path) @@ -55,6 +56,7 @@ public override void Execute(ScriptableRenderContext context, ref RenderingData } #pragma warning restore 618, 672 +#endif // Unity calls the RecordRenderGraph method to add and configure one or more render passes in the render graph system. public override void RecordRenderGraph(RenderGraph renderGraph, ContextContainer frameData) diff --git a/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/RendererFeatures/DistortTunnel/DistortTunnelPass_Tunnel.cs b/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/RendererFeatures/DistortTunnel/DistortTunnelPass_Tunnel.cs index 2186654875a..0822a9bf6ee 100644 --- a/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/RendererFeatures/DistortTunnel/DistortTunnelPass_Tunnel.cs +++ b/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/RendererFeatures/DistortTunnel/DistortTunnelPass_Tunnel.cs @@ -38,6 +38,7 @@ public void SetRTHandles(ref RTHandle dest, int slice) m_Slice = slice; } +#if URP_COMPATIBILITY_MODE // Compatibility Mode is being removed #pragma warning disable 618, 672 // Type or member is obsolete, Member overrides obsolete member // Unity calls the Configure method in the Compatibility mode (non-RenderGraph path) @@ -70,6 +71,7 @@ public override void Execute(ScriptableRenderContext context, ref RenderingData } #pragma warning restore 618, 672 +#endif // Unity calls the RecordRenderGraph method to add and configure one or more render passes in the render graph system. public override void RecordRenderGraph(RenderGraph renderGraph, ContextContainer frameData) diff --git a/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/RendererFeatures/GlitchEffect/GlitchEffect.unity b/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/RendererFeatures/GlitchEffect/GlitchEffect.unity index a2310fc3f4e..c04abed26ad 100644 --- a/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/RendererFeatures/GlitchEffect/GlitchEffect.unity +++ b/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/RendererFeatures/GlitchEffect/GlitchEffect.unity @@ -38,12 +38,12 @@ RenderSettings: m_ReflectionIntensity: 1 m_CustomReflection: {fileID: 0} m_Sun: {fileID: 1090784526} - m_IndirectSpecularColor: {r: 0.16788325, g: 0.21073617, b: 0.28993857, a: 1} m_UseRadianceAmbientProbe: 0 --- !u!157 &3 LightmapSettings: m_ObjectHideFlags: 0 - serializedVersion: 12 + serializedVersion: 13 + m_BakeOnSceneLoad: 0 m_GISettings: serializedVersion: 2 m_BounceScale: 1 @@ -93,10 +93,8 @@ LightmapSettings: m_ExportTrainingData: 0 m_TrainingDataDestination: TrainingData m_LightProbeSampleCountMultiplier: 4 - m_LightingDataAsset: {fileID: 112000000, guid: 02912854c50154321bb39b693de3ec9e, - type: 2} - m_LightingSettings: {fileID: 4890085278179872738, guid: 3cf624452cba2436fa671cb854d3bfdc, - type: 2} + m_LightingDataAsset: {fileID: 112000000, guid: 02912854c50154321bb39b693de3ec9e, type: 2} + m_LightingSettings: {fileID: 4890085278179872738, guid: 3cf624452cba2436fa671cb854d3bfdc, type: 2} --- !u!196 &4 NavMeshSettings: serializedVersion: 2 @@ -250,14 +248,14 @@ MonoBehaviour: m_ScreenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0} m_RequiresDepthTexture: 0 m_RequiresColorTexture: 0 - m_Version: 2 m_TaaSettings: - quality: 3 - frameInfluence: 0.1 - jitterScale: 1 - mipBias: 0 - varianceClampScale: 0.9 - contrastAdaptiveSharpening: 0 + m_Quality: 3 + m_FrameInfluence: 0.1 + m_JitterScale: 1 + m_MipBias: 0 + m_VarianceClampScale: 0.9 + m_ContrastAdaptiveSharpening: 0 + m_Version: 2 --- !u!1 &135007738 GameObject: m_ObjectHideFlags: 0 @@ -332,6 +330,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -353,6 +354,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -424,6 +426,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -445,6 +450,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -546,6 +552,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -567,6 +576,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -587,108 +597,87 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 1768138160} m_Modifications: - - target: {fileID: 6308746673132675046, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6308746673132675046, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_Name value: CheckAssignedRenderPipelineAsset objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_Pivot.x value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_Pivot.y value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_AnchorMax.x value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_AnchorMax.y value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_AnchorMin.x value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_AnchorMin.y value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_SizeDelta.x value: 100 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_SizeDelta.y value: 100 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalPosition.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalRotation.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalRotation.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalRotation.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_AnchoredPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_AnchoredPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} @@ -699,8 +688,7 @@ PrefabInstance: m_SourcePrefab: {fileID: 100100000, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} --- !u!224 &709763744 stripped RectTransform: - m_CorrespondingSourceObject: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + m_CorrespondingSourceObject: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} m_PrefabInstance: {fileID: 709763743} m_PrefabAsset: {fileID: 0} --- !u!1 &902575294 @@ -763,6 +751,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -784,6 +775,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -923,6 +915,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -944,6 +939,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -1030,6 +1026,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -1051,6 +1050,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -1139,6 +1139,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -1160,6 +1163,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -1198,14 +1202,14 @@ Light: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1090784525} m_Enabled: 1 - serializedVersion: 11 + serializedVersion: 12 m_Type: 1 m_Color: {r: 1, g: 1, b: 1, a: 1} m_Intensity: 1 m_Range: 10 m_SpotAngle: 30 m_InnerSpotAngle: 21.80208 - m_CookieSize: 10 + m_CookieSize2D: {x: 10, y: 10} m_Shadows: m_Type: 2 m_Resolution: -1 @@ -1249,8 +1253,12 @@ Light: m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} m_UseBoundingSphereOverride: 0 m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 m_ShadowRadius: 0 m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 --- !u!4 &1090784527 Transform: m_ObjectHideFlags: 0 @@ -1278,17 +1286,23 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} m_Name: m_EditorClassIdentifier: - m_Version: 3 m_UsePipelineSettings: 1 m_AdditionalLightsShadowResolutionTier: 2 - m_LightLayerMask: 1 - m_RenderingLayers: 1 m_CustomShadowLayers: 0 - m_ShadowLayerMask: 1 - m_ShadowRenderingLayers: 1 m_LightCookieSize: {x: 1, y: 1} m_LightCookieOffset: {x: 0, y: 0} m_SoftShadowQuality: 1 + m_RenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_ShadowRenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_Version: 4 + m_LightLayerMask: 1 + m_ShadowLayerMask: 1 + m_RenderingLayers: 1 + m_ShadowRenderingLayers: 1 --- !u!1 &1655209737 GameObject: m_ObjectHideFlags: 0 @@ -1363,6 +1377,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -1384,6 +1401,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -1441,123 +1459,99 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 1768138160} m_Modifications: - - target: {fileID: 155458132493177538, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 155458132493177538, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_Name value: MainPanel objectReference: {fileID: 0} - - target: {fileID: 1638750836712682043, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 1638750836712682043, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_Text value: Glitch Effect objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_Pivot.x value: 1 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_Pivot.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_RootOrder value: 1 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_AnchorMax.x value: 1 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_AnchorMax.y value: 1 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_AnchorMin.x value: 1 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_AnchorMin.y value: 1 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_SizeDelta.x value: 400 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_SizeDelta.y value: 250 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalPosition.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalRotation.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalRotation.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalRotation.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_AnchoredPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_AnchoredPosition.y value: -250 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 4039968741557396746, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 4039968741557396746, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_Text value: 'This sample uses the "Render Objects" renderer feature and the "Scene Color'''' Shader Graph node to draw specific objects with a glitchy effect. @@ -1570,8 +1564,7 @@ PrefabInstance: m_SourcePrefab: {fileID: 100100000, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} --- !u!224 &1699203896 stripped RectTransform: - m_CorrespondingSourceObject: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + m_CorrespondingSourceObject: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} m_PrefabInstance: {fileID: 1699203895} m_PrefabAsset: {fileID: 0} --- !u!1 &1720569094 @@ -1584,7 +1577,7 @@ GameObject: m_Component: - component: {fileID: 1720569097} - component: {fileID: 1720569096} - - component: {fileID: 1720569095} + - component: {fileID: 1720569098} m_Layer: 0 m_Name: EventSystem m_TagString: Untagged @@ -1592,26 +1585,6 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!114 &1720569095 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1720569094} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3} - m_Name: - m_EditorClassIdentifier: - m_SendPointerHoverToParent: 1 - m_HorizontalAxis: Horizontal - m_VerticalAxis: Vertical - m_SubmitButton: Submit - m_CancelButton: Cancel - m_InputActionsPerSecond: 10 - m_RepeatDelay: 0.5 - m_ForceModuleActive: 0 --- !u!114 &1720569096 MonoBehaviour: m_ObjectHideFlags: 0 @@ -1642,6 +1615,37 @@ Transform: m_Children: [] m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1720569098 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1720569094} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 01614664b831546d2ae94a42149d80ac, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.InputSystem::UnityEngine.InputSystem.UI.InputSystemUIInputModule + m_SendPointerHoverToParent: 1 + m_MoveRepeatDelay: 0.5 + m_MoveRepeatRate: 0.1 + m_XRTrackingOrigin: {fileID: 0} + m_ActionsAsset: {fileID: -944628639613478452, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_PointAction: {fileID: -1654692200621890270, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_MoveAction: {fileID: -8784545083839296357, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_SubmitAction: {fileID: 392368643174621059, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_CancelAction: {fileID: 7727032971491509709, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_LeftClickAction: {fileID: 3001919216989983466, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_MiddleClickAction: {fileID: -2185481485913320682, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_RightClickAction: {fileID: -4090225696740746782, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_ScrollWheelAction: {fileID: 6240969308177333660, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_TrackedDevicePositionAction: {fileID: 6564999863303420839, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_TrackedDeviceOrientationAction: {fileID: 7970375526676320489, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_DeselectOnBackgroundClick: 1 + m_PointerBehavior: 0 + m_CursorLockBehavior: 0 + m_ScrollDeltaPerTick: 6 --- !u!1 &1722892045 GameObject: m_ObjectHideFlags: 0 @@ -1683,14 +1687,14 @@ Light: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1722892045} m_Enabled: 1 - serializedVersion: 11 + serializedVersion: 12 m_Type: 1 m_Color: {r: 1, g: 1, b: 1, a: 1} m_Intensity: 0.7 m_Range: 10 m_SpotAngle: 30 m_InnerSpotAngle: 21.80208 - m_CookieSize: 10 + m_CookieSize2D: {x: 10, y: 10} m_Shadows: m_Type: 0 m_Resolution: -1 @@ -1734,8 +1738,12 @@ Light: m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} m_UseBoundingSphereOverride: 0 m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 m_ShadowRadius: 0 m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 --- !u!114 &1722892048 MonoBehaviour: m_ObjectHideFlags: 0 @@ -1748,17 +1756,23 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} m_Name: m_EditorClassIdentifier: - m_Version: 3 m_UsePipelineSettings: 1 m_AdditionalLightsShadowResolutionTier: 2 - m_LightLayerMask: 1 - m_RenderingLayers: 1 m_CustomShadowLayers: 0 - m_ShadowLayerMask: 1 - m_ShadowRenderingLayers: 1 m_LightCookieSize: {x: 1, y: 1} m_LightCookieOffset: {x: 0, y: 0} m_SoftShadowQuality: 1 + m_RenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_ShadowRenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_Version: 4 + m_LightLayerMask: 1 + m_ShadowLayerMask: 1 + m_RenderingLayers: 1 + m_ShadowRenderingLayers: 1 --- !u!1 &1768138156 GameObject: m_ObjectHideFlags: 0 @@ -1835,7 +1849,7 @@ Canvas: m_OverrideSorting: 0 m_OverridePixelPerfect: 0 m_SortingBucketNormalizedSize: 0 - m_VertexColorAlwaysGammaSpace: 0 + m_VertexColorAlwaysGammaSpace: 1 m_AdditionalShaderChannelsFlag: 0 m_UpdateRectTransformForStandalone: 0 m_SortingLayerID: 0 @@ -1938,6 +1952,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -1959,6 +1976,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -2030,6 +2048,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -2051,6 +2072,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -2152,6 +2174,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -2173,6 +2198,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 diff --git a/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/RendererFeatures/KeepFrame/KeepFrame.unity b/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/RendererFeatures/KeepFrame/KeepFrame.unity index 464081cd2ee..8bd1b29672f 100644 --- a/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/RendererFeatures/KeepFrame/KeepFrame.unity +++ b/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/RendererFeatures/KeepFrame/KeepFrame.unity @@ -38,12 +38,12 @@ RenderSettings: m_ReflectionIntensity: 1 m_CustomReflection: {fileID: 0} m_Sun: {fileID: 0} - m_IndirectSpecularColor: {r: 0.18028378, g: 0.22571412, b: 0.30692285, a: 1} m_UseRadianceAmbientProbe: 0 --- !u!157 &3 LightmapSettings: m_ObjectHideFlags: 0 - serializedVersion: 12 + serializedVersion: 13 + m_BakeOnSceneLoad: 0 m_GISettings: serializedVersion: 2 m_BounceScale: 1 @@ -127,128 +127,103 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 693602123} m_Modifications: - - target: {fileID: 155458132493177538, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 155458132493177538, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_Name value: MainPanel objectReference: {fileID: 0} - - target: {fileID: 155458132493177538, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 155458132493177538, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_IsActive value: 1 objectReference: {fileID: 0} - - target: {fileID: 1638750836712682043, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 1638750836712682043, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_Text value: Keep Frame objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_Pivot.x value: 1 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_Pivot.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_RootOrder value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_AnchorMax.x value: 1 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_AnchorMax.y value: 1 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_AnchorMin.x value: 1 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_AnchorMin.y value: 1 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_SizeDelta.x value: 400 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_SizeDelta.y value: 250 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalPosition.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalRotation.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalRotation.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalRotation.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_AnchoredPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_AnchoredPosition.y value: -250 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 4039968741557396746, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 4039968741557396746, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_Text value: This sample uses a custom renderer feature to preserve frame color between frames. The feature is added to the renderer in use and used to create a @@ -335,7 +310,7 @@ Canvas: m_OverrideSorting: 0 m_OverridePixelPerfect: 0 m_SortingBucketNormalizedSize: 0 - m_VertexColorAlwaysGammaSpace: 0 + m_VertexColorAlwaysGammaSpace: 1 m_AdditionalShaderChannelsFlag: 0 m_UpdateRectTransformForStandalone: 0 m_SortingLayerID: 0 @@ -540,18 +515,17 @@ MonoBehaviour: m_ScreenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0} m_RequiresDepthTexture: 0 m_RequiresColorTexture: 0 - m_Version: 2 m_TaaSettings: - quality: 3 - frameInfluence: 0.1 - jitterScale: 1 - mipBias: 0 - varianceClampScale: 0.9 - contrastAdaptiveSharpening: 0 + m_Quality: 3 + m_FrameInfluence: 0.1 + m_JitterScale: 1 + m_MipBias: 0 + m_VarianceClampScale: 0.9 + m_ContrastAdaptiveSharpening: 0 + m_Version: 2 --- !u!224 &919335962 stripped RectTransform: - m_CorrespondingSourceObject: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + m_CorrespondingSourceObject: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} m_PrefabInstance: {fileID: 10548908} m_PrefabAsset: {fileID: 0} --- !u!1 &1062745523 @@ -592,6 +566,9 @@ ParticleSystemRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -613,6 +590,7 @@ ParticleSystemRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -630,13 +608,15 @@ ParticleSystemRenderer: m_RenderAlignment: 0 m_Pivot: {x: 0, y: 0, z: 0} m_Flip: {x: 0, y: 0, z: 0} - m_UseCustomVertexStreams: 0 m_EnableGPUInstancing: 1 m_ApplyActiveColorSpace: 1 m_AllowRoll: 1 m_FreeformStretching: 0 m_RotateWithStretchDirection: 1 + m_UseCustomVertexStreams: 0 m_VertexStreams: 00010304 + m_UseCustomTrailVertexStreams: 0 + m_TrailVertexStreams: 00010304 m_Mesh: {fileID: 0} m_Mesh1: {fileID: 0} m_Mesh2: {fileID: 0} @@ -5392,108 +5372,87 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 693602123} m_Modifications: - - target: {fileID: 6308746673132675046, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6308746673132675046, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_Name value: CheckAssignedRenderPipelineAsset objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_Pivot.x value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_Pivot.y value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_AnchorMax.x value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_AnchorMax.y value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_AnchorMin.x value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_AnchorMin.y value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_SizeDelta.x value: 100 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_SizeDelta.y value: 100 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalPosition.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalRotation.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalRotation.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalRotation.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_AnchoredPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_AnchoredPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} @@ -5504,8 +5463,7 @@ PrefabInstance: m_SourcePrefab: {fileID: 100100000, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} --- !u!224 &1363219101 stripped RectTransform: - m_CorrespondingSourceObject: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + m_CorrespondingSourceObject: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} m_PrefabInstance: {fileID: 1363219100} m_PrefabAsset: {fileID: 0} --- !u!1 &1758482520 @@ -5534,14 +5492,14 @@ Light: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1758482520} m_Enabled: 1 - serializedVersion: 11 + serializedVersion: 12 m_Type: 1 m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} m_Intensity: 1 m_Range: 10 m_SpotAngle: 30 m_InnerSpotAngle: 21.80208 - m_CookieSize: 10 + m_CookieSize2D: {x: 10, y: 10} m_Shadows: m_Type: 2 m_Resolution: -1 @@ -5585,8 +5543,12 @@ Light: m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} m_UseBoundingSphereOverride: 0 m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 m_ShadowRadius: 0 m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 --- !u!4 &1758482522 Transform: m_ObjectHideFlags: 0 @@ -5614,17 +5576,23 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} m_Name: m_EditorClassIdentifier: - m_Version: 3 m_UsePipelineSettings: 1 m_AdditionalLightsShadowResolutionTier: 2 - m_LightLayerMask: 1 - m_RenderingLayers: 1 m_CustomShadowLayers: 0 - m_ShadowLayerMask: 1 - m_ShadowRenderingLayers: 1 m_LightCookieSize: {x: 1, y: 1} m_LightCookieOffset: {x: 0, y: 0} m_SoftShadowQuality: 1 + m_RenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_ShadowRenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_Version: 4 + m_LightLayerMask: 1 + m_ShadowLayerMask: 1 + m_RenderingLayers: 1 + m_ShadowRenderingLayers: 1 --- !u!1 &1965764893 GameObject: m_ObjectHideFlags: 0 @@ -5635,7 +5603,7 @@ GameObject: m_Component: - component: {fileID: 1965764896} - component: {fileID: 1965764895} - - component: {fileID: 1965764894} + - component: {fileID: 1965764897} m_Layer: 0 m_Name: EventSystem m_TagString: Untagged @@ -5643,26 +5611,6 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!114 &1965764894 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1965764893} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3} - m_Name: - m_EditorClassIdentifier: - m_SendPointerHoverToParent: 1 - m_HorizontalAxis: Horizontal - m_VerticalAxis: Vertical - m_SubmitButton: Submit - m_CancelButton: Cancel - m_InputActionsPerSecond: 10 - m_RepeatDelay: 0.5 - m_ForceModuleActive: 0 --- !u!114 &1965764895 MonoBehaviour: m_ObjectHideFlags: 0 @@ -5693,6 +5641,37 @@ Transform: m_Children: [] m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1965764897 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1965764893} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 01614664b831546d2ae94a42149d80ac, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.InputSystem::UnityEngine.InputSystem.UI.InputSystemUIInputModule + m_SendPointerHoverToParent: 1 + m_MoveRepeatDelay: 0.5 + m_MoveRepeatRate: 0.1 + m_XRTrackingOrigin: {fileID: 0} + m_ActionsAsset: {fileID: -944628639613478452, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_PointAction: {fileID: -1654692200621890270, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_MoveAction: {fileID: -8784545083839296357, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_SubmitAction: {fileID: 392368643174621059, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_CancelAction: {fileID: 7727032971491509709, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_LeftClickAction: {fileID: 3001919216989983466, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_MiddleClickAction: {fileID: -2185481485913320682, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_RightClickAction: {fileID: -4090225696740746782, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_ScrollWheelAction: {fileID: 6240969308177333660, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_TrackedDevicePositionAction: {fileID: 6564999863303420839, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_TrackedDeviceOrientationAction: {fileID: 7970375526676320489, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_DeselectOnBackgroundClick: 1 + m_PointerBehavior: 0 + m_CursorLockBehavior: 0 + m_ScrollDeltaPerTick: 6 --- !u!1660057539 &9223372036854775807 SceneRoots: m_ObjectHideFlags: 0 diff --git a/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/RendererFeatures/KeepFrame/KeepFrameFeature.cs b/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/RendererFeatures/KeepFrame/KeepFrameFeature.cs index f6dfa33a969..c4902f094e6 100644 --- a/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/RendererFeatures/KeepFrame/KeepFrameFeature.cs +++ b/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/RendererFeatures/KeepFrame/KeepFrameFeature.cs @@ -24,6 +24,7 @@ public void Setup(RTHandle destination) m_Destination = destination; } +#if URP_COMPATIBILITY_MODE // Compatibility Mode is being removed #pragma warning disable 618, 672 // Type or member is obsolete, Member overrides obsolete member // Override the Execute method to implement the rendering logic. @@ -49,6 +50,7 @@ public override void Execute(ScriptableRenderContext context, ref RenderingData } #pragma warning restore 618, 672 +#endif // Override the RecordRenderGraph method to implement the rendering logic. // This method is used only in the render graph system path. @@ -114,6 +116,7 @@ static void ExecutePass(RasterCommandBuffer cmd, RTHandle source, Material mater Blitter.BlitTexture(cmd, source, viewportScale, material, 0); } +#if URP_COMPATIBILITY_MODE // Compatibility Mode is being removed #pragma warning disable 618, 672 // Type or member is obsolete, Member overrides obsolete member // Override the Execute method to implement the rendering logic. @@ -136,6 +139,7 @@ public override void Execute(ScriptableRenderContext context, ref RenderingData } #pragma warning restore 618, 672 +#endif // Override the RecordRenderGraph method to implement the rendering logic. // This method is used only in the render graph system path. diff --git a/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/RendererFeatures/OcclusionEffect/OcclusionEffect.unity b/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/RendererFeatures/OcclusionEffect/OcclusionEffect.unity index b066469c7c0..5c5292420d7 100644 --- a/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/RendererFeatures/OcclusionEffect/OcclusionEffect.unity +++ b/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/RendererFeatures/OcclusionEffect/OcclusionEffect.unity @@ -38,12 +38,12 @@ RenderSettings: m_ReflectionIntensity: 1 m_CustomReflection: {fileID: 0} m_Sun: {fileID: 705507994} - m_IndirectSpecularColor: {r: 0.18028414, g: 0.22571535, b: 0.3069227, a: 1} m_UseRadianceAmbientProbe: 0 --- !u!157 &3 LightmapSettings: m_ObjectHideFlags: 0 - serializedVersion: 12 + serializedVersion: 13 + m_BakeOnSceneLoad: 0 m_GISettings: serializedVersion: 2 m_BounceScale: 1 @@ -93,10 +93,8 @@ LightmapSettings: m_ExportTrainingData: 0 m_TrainingDataDestination: TrainingData m_LightProbeSampleCountMultiplier: 4 - m_LightingDataAsset: {fileID: 112000000, guid: f2231d3127f464d509bddaf4c16b7a75, - type: 2} - m_LightingSettings: {fileID: 4890085278179872738, guid: 52ac4f2bbb9b644ac87c5f26bb06cb0d, - type: 2} + m_LightingDataAsset: {fileID: 112000000, guid: f2231d3127f464d509bddaf4c16b7a75, type: 2} + m_LightingSettings: {fileID: 4890085278179872738, guid: 52ac4f2bbb9b644ac87c5f26bb06cb0d, type: 2} --- !u!196 &4 NavMeshSettings: serializedVersion: 2 @@ -197,7 +195,7 @@ Canvas: m_OverrideSorting: 0 m_OverridePixelPerfect: 0 m_SortingBucketNormalizedSize: 0 - m_VertexColorAlwaysGammaSpace: 0 + m_VertexColorAlwaysGammaSpace: 1 m_AdditionalShaderChannelsFlag: 1 m_UpdateRectTransformForStandalone: 0 m_SortingLayerID: 0 @@ -232,123 +230,99 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 131481531} m_Modifications: - - target: {fileID: 155458132493177538, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 155458132493177538, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_Name value: MainPanel objectReference: {fileID: 0} - - target: {fileID: 1638750836712682043, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 1638750836712682043, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_Text value: Occlusion Effect objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_Pivot.x value: 1 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_Pivot.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_RootOrder value: 1 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_AnchorMax.x value: 1 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_AnchorMax.y value: 1 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_AnchorMin.x value: 1 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_AnchorMin.y value: 1 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_SizeDelta.x value: 400 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_SizeDelta.y value: 250 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalPosition.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalRotation.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalRotation.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalRotation.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_AnchoredPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_AnchoredPosition.y value: -250 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 4039968741557396746, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 4039968741557396746, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_Text value: This sample shows how the "Render Objects" renderer feature can be used to draw occluded geometry. The effect is achieved without writing any code. @@ -361,8 +335,7 @@ PrefabInstance: m_SourcePrefab: {fileID: 100100000, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} --- !u!224 &560415169 stripped RectTransform: - m_CorrespondingSourceObject: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + m_CorrespondingSourceObject: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} m_PrefabInstance: {fileID: 560415168} m_PrefabAsset: {fileID: 0} --- !u!1 &567206875 @@ -426,14 +399,14 @@ Light: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 705507993} m_Enabled: 1 - serializedVersion: 11 + serializedVersion: 12 m_Type: 1 m_Color: {r: 1, g: 1, b: 1, a: 1} m_Intensity: 1 m_Range: 10 m_SpotAngle: 30 m_InnerSpotAngle: 21.802082 - m_CookieSize: 10 + m_CookieSize2D: {x: 10, y: 10} m_Shadows: m_Type: 2 m_Resolution: -1 @@ -477,8 +450,12 @@ Light: m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} m_UseBoundingSphereOverride: 0 m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 m_ShadowRadius: 0 m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 --- !u!4 &705507995 Transform: m_ObjectHideFlags: 0 @@ -506,17 +483,23 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} m_Name: m_EditorClassIdentifier: - m_Version: 3 m_UsePipelineSettings: 1 m_AdditionalLightsShadowResolutionTier: 2 - m_LightLayerMask: 1 - m_RenderingLayers: 1 m_CustomShadowLayers: 0 - m_ShadowLayerMask: 1 - m_ShadowRenderingLayers: 1 m_LightCookieSize: {x: 1, y: 1} m_LightCookieOffset: {x: 0, y: 0} m_SoftShadowQuality: 1 + m_RenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_ShadowRenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_Version: 4 + m_LightLayerMask: 1 + m_ShadowLayerMask: 1 + m_RenderingLayers: 1 + m_ShadowRenderingLayers: 1 --- !u!1 &963194225 GameObject: m_ObjectHideFlags: 0 @@ -646,14 +629,14 @@ MonoBehaviour: m_ScreenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0} m_RequiresDepthTexture: 0 m_RequiresColorTexture: 0 - m_Version: 2 m_TaaSettings: - quality: 3 - frameInfluence: 0.1 - jitterScale: 1 - mipBias: 0 - varianceClampScale: 0.9 - contrastAdaptiveSharpening: 0 + m_Quality: 3 + m_FrameInfluence: 0.1 + m_JitterScale: 1 + m_MipBias: 0 + m_VarianceClampScale: 0.9 + m_ContrastAdaptiveSharpening: 0 + m_Version: 2 --- !u!1 &1243279511 GameObject: m_ObjectHideFlags: 0 @@ -666,8 +649,6 @@ GameObject: - component: {fileID: 1243279514} - component: {fileID: 1243279513} - component: {fileID: 1243279512} - - component: {fileID: 1243279516} - - component: {fileID: 1243279517} - component: {fileID: 1243279518} m_Layer: 8 m_Name: MovingCube @@ -716,6 +697,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -737,6 +721,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -764,35 +749,6 @@ Transform: m_Children: [] m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 45, y: 45, z: 45} ---- !u!114 &1243279516 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1243279511} - m_Enabled: 0 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 82cb6f9db52a84a1d889793764803890, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Amplitude: {x: 5, y: 0, z: 0} - m_Period: 7 ---- !u!114 &1243279517 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1243279511} - m_Enabled: 0 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 8725944bdac9042b9b1442ba38a31070, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Space: 0 - m_Axis: {x: 0, y: 0, z: 0} - m_AngularVelocity: 0 --- !u!95 &1243279518 Animator: serializedVersion: 7 @@ -825,7 +781,7 @@ GameObject: m_Component: - component: {fileID: 1574701477} - component: {fileID: 1574701476} - - component: {fileID: 1574701475} + - component: {fileID: 1574701478} m_Layer: 0 m_Name: EventSystem m_TagString: Untagged @@ -833,26 +789,6 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!114 &1574701475 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1574701474} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3} - m_Name: - m_EditorClassIdentifier: - m_SendPointerHoverToParent: 1 - m_HorizontalAxis: Horizontal - m_VerticalAxis: Vertical - m_SubmitButton: Submit - m_CancelButton: Cancel - m_InputActionsPerSecond: 10 - m_RepeatDelay: 0.5 - m_ForceModuleActive: 0 --- !u!114 &1574701476 MonoBehaviour: m_ObjectHideFlags: 0 @@ -883,6 +819,37 @@ Transform: m_Children: [] m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1574701478 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1574701474} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 01614664b831546d2ae94a42149d80ac, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.InputSystem::UnityEngine.InputSystem.UI.InputSystemUIInputModule + m_SendPointerHoverToParent: 1 + m_MoveRepeatDelay: 0.5 + m_MoveRepeatRate: 0.1 + m_XRTrackingOrigin: {fileID: 0} + m_ActionsAsset: {fileID: -944628639613478452, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_PointAction: {fileID: -1654692200621890270, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_MoveAction: {fileID: -8784545083839296357, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_SubmitAction: {fileID: 392368643174621059, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_CancelAction: {fileID: 7727032971491509709, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_LeftClickAction: {fileID: 3001919216989983466, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_MiddleClickAction: {fileID: -2185481485913320682, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_RightClickAction: {fileID: -4090225696740746782, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_ScrollWheelAction: {fileID: 6240969308177333660, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_TrackedDevicePositionAction: {fileID: 6564999863303420839, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_TrackedDeviceOrientationAction: {fileID: 7970375526676320489, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_DeselectOnBackgroundClick: 1 + m_PointerBehavior: 0 + m_CursorLockBehavior: 0 + m_ScrollDeltaPerTick: 6 --- !u!1 &1637038248 GameObject: m_ObjectHideFlags: 0 @@ -942,6 +909,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -963,6 +933,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -1049,6 +1020,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -1070,6 +1044,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -1156,6 +1131,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -1177,6 +1155,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -1263,6 +1242,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -1284,6 +1266,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -1319,108 +1302,87 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 131481531} m_Modifications: - - target: {fileID: 6308746673132675046, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6308746673132675046, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_Name value: CheckAssignedRenderPipelineAsset objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_Pivot.x value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_Pivot.y value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_AnchorMax.x value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_AnchorMax.y value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_AnchorMin.x value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_AnchorMin.y value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_SizeDelta.x value: 100 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_SizeDelta.y value: 100 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalPosition.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalRotation.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalRotation.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalRotation.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_AnchoredPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_AnchoredPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} @@ -1431,8 +1393,7 @@ PrefabInstance: m_SourcePrefab: {fileID: 100100000, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} --- !u!224 &1813610164 stripped RectTransform: - m_CorrespondingSourceObject: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + m_CorrespondingSourceObject: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} m_PrefabInstance: {fileID: 1813610163} m_PrefabAsset: {fileID: 0} --- !u!1 &1862309426 @@ -1461,14 +1422,14 @@ Light: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1862309426} m_Enabled: 1 - serializedVersion: 11 + serializedVersion: 12 m_Type: 1 m_Color: {r: 1, g: 1, b: 1, a: 1} m_Intensity: 0.7 m_Range: 10 m_SpotAngle: 30 m_InnerSpotAngle: 21.802082 - m_CookieSize: 10 + m_CookieSize2D: {x: 10, y: 10} m_Shadows: m_Type: 0 m_Resolution: -1 @@ -1512,8 +1473,12 @@ Light: m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} m_UseBoundingSphereOverride: 0 m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 m_ShadowRadius: 0 m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 --- !u!4 &1862309428 Transform: m_ObjectHideFlags: 0 @@ -1541,17 +1506,23 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} m_Name: m_EditorClassIdentifier: - m_Version: 3 m_UsePipelineSettings: 1 m_AdditionalLightsShadowResolutionTier: 2 - m_LightLayerMask: 1 - m_RenderingLayers: 1 m_CustomShadowLayers: 0 - m_ShadowLayerMask: 1 - m_ShadowRenderingLayers: 1 m_LightCookieSize: {x: 1, y: 1} m_LightCookieOffset: {x: 0, y: 0} m_SoftShadowQuality: 1 + m_RenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_ShadowRenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_Version: 4 + m_LightLayerMask: 1 + m_ShadowLayerMask: 1 + m_RenderingLayers: 1 + m_ShadowRenderingLayers: 1 --- !u!1 &1913427150 GameObject: m_ObjectHideFlags: 0 @@ -1612,6 +1583,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -1633,6 +1607,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -1755,6 +1730,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -1776,6 +1754,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 diff --git a/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/RendererFeatures/TrailEffect/TrailEffect.unity b/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/RendererFeatures/TrailEffect/TrailEffect.unity index 39073a8ff6f..b0b47e1da66 100644 --- a/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/RendererFeatures/TrailEffect/TrailEffect.unity +++ b/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/RendererFeatures/TrailEffect/TrailEffect.unity @@ -38,12 +38,12 @@ RenderSettings: m_ReflectionIntensity: 1 m_CustomReflection: {fileID: 0} m_Sun: {fileID: 1090784526} - m_IndirectSpecularColor: {r: 0.18028489, g: 0.22571598, b: 0.30692345, a: 1} m_UseRadianceAmbientProbe: 0 --- !u!157 &3 LightmapSettings: m_ObjectHideFlags: 0 - serializedVersion: 12 + serializedVersion: 13 + m_BakeOnSceneLoad: 0 m_GISettings: serializedVersion: 2 m_BounceScale: 1 @@ -93,10 +93,8 @@ LightmapSettings: m_ExportTrainingData: 0 m_TrainingDataDestination: TrainingData m_LightProbeSampleCountMultiplier: 4 - m_LightingDataAsset: {fileID: 112000000, guid: 13289af5aaca14a8eb4484dd615de3d6, - type: 2} - m_LightingSettings: {fileID: 4890085278179872738, guid: 3cf624452cba2436fa671cb854d3bfdc, - type: 2} + m_LightingDataAsset: {fileID: 112000000, guid: 13289af5aaca14a8eb4484dd615de3d6, type: 2} + m_LightingSettings: {fileID: 4890085278179872738, guid: 3cf624452cba2436fa671cb854d3bfdc, type: 2} --- !u!196 &4 NavMeshSettings: serializedVersion: 2 @@ -250,14 +248,14 @@ MonoBehaviour: m_ScreenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0} m_RequiresDepthTexture: 0 m_RequiresColorTexture: 0 - m_Version: 2 m_TaaSettings: - quality: 3 - frameInfluence: 0.1 - jitterScale: 1 - mipBias: 0 - varianceClampScale: 0.9 - contrastAdaptiveSharpening: 0 + m_Quality: 3 + m_FrameInfluence: 0.1 + m_JitterScale: 1 + m_MipBias: 0 + m_VarianceClampScale: 0.9 + m_ContrastAdaptiveSharpening: 0 + m_Version: 2 --- !u!1001 &420988702 PrefabInstance: m_ObjectHideFlags: 0 @@ -266,108 +264,87 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 1768138160} m_Modifications: - - target: {fileID: 6308746673132675046, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6308746673132675046, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_Name value: CheckAssignedRenderPipelineAsset objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_Pivot.x value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_Pivot.y value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_AnchorMax.x value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_AnchorMax.y value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_AnchorMin.x value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_AnchorMin.y value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_SizeDelta.x value: 100 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_SizeDelta.y value: 100 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalPosition.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalRotation.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalRotation.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalRotation.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_AnchoredPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_AnchoredPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + - target: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} @@ -378,8 +355,7 @@ PrefabInstance: m_SourcePrefab: {fileID: 100100000, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} --- !u!224 &420988703 stripped RectTransform: - m_CorrespondingSourceObject: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, - type: 3} + m_CorrespondingSourceObject: {fileID: 6858826011774340517, guid: 49a291c27c0b243438a861a905fcc73e, type: 3} m_PrefabInstance: {fileID: 420988702} m_PrefabAsset: {fileID: 0} --- !u!1001 &493283717 @@ -390,138 +366,111 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 0} m_Modifications: - - target: {fileID: -8679921383154817045, guid: f1f08d97080a74f23bb37c0c1b38d2c4, - type: 3} + - target: {fileID: -8679921383154817045, guid: f1f08d97080a74f23bb37c0c1b38d2c4, type: 3} propertyPath: m_RootOrder value: 6 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: f1f08d97080a74f23bb37c0c1b38d2c4, - type: 3} + - target: {fileID: -8679921383154817045, guid: f1f08d97080a74f23bb37c0c1b38d2c4, type: 3} propertyPath: m_LocalScale.x value: 5 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: f1f08d97080a74f23bb37c0c1b38d2c4, - type: 3} + - target: {fileID: -8679921383154817045, guid: f1f08d97080a74f23bb37c0c1b38d2c4, type: 3} propertyPath: m_LocalScale.y value: 5 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: f1f08d97080a74f23bb37c0c1b38d2c4, - type: 3} + - target: {fileID: -8679921383154817045, guid: f1f08d97080a74f23bb37c0c1b38d2c4, type: 3} propertyPath: m_LocalScale.z value: 5 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: f1f08d97080a74f23bb37c0c1b38d2c4, - type: 3} + - target: {fileID: -8679921383154817045, guid: f1f08d97080a74f23bb37c0c1b38d2c4, type: 3} propertyPath: m_LocalPosition.x value: -0.15 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: f1f08d97080a74f23bb37c0c1b38d2c4, - type: 3} + - target: {fileID: -8679921383154817045, guid: f1f08d97080a74f23bb37c0c1b38d2c4, type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: f1f08d97080a74f23bb37c0c1b38d2c4, - type: 3} + - target: {fileID: -8679921383154817045, guid: f1f08d97080a74f23bb37c0c1b38d2c4, type: 3} propertyPath: m_LocalPosition.z value: -0.22 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: f1f08d97080a74f23bb37c0c1b38d2c4, - type: 3} + - target: {fileID: -8679921383154817045, guid: f1f08d97080a74f23bb37c0c1b38d2c4, type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: f1f08d97080a74f23bb37c0c1b38d2c4, - type: 3} + - target: {fileID: -8679921383154817045, guid: f1f08d97080a74f23bb37c0c1b38d2c4, type: 3} propertyPath: m_LocalRotation.x value: 0 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: f1f08d97080a74f23bb37c0c1b38d2c4, - type: 3} + - target: {fileID: -8679921383154817045, guid: f1f08d97080a74f23bb37c0c1b38d2c4, type: 3} propertyPath: m_LocalRotation.y value: 0 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: f1f08d97080a74f23bb37c0c1b38d2c4, - type: 3} + - target: {fileID: -8679921383154817045, guid: f1f08d97080a74f23bb37c0c1b38d2c4, type: 3} propertyPath: m_LocalRotation.z value: 0 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: f1f08d97080a74f23bb37c0c1b38d2c4, - type: 3} + - target: {fileID: -8679921383154817045, guid: f1f08d97080a74f23bb37c0c1b38d2c4, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: f1f08d97080a74f23bb37c0c1b38d2c4, - type: 3} + - target: {fileID: -8679921383154817045, guid: f1f08d97080a74f23bb37c0c1b38d2c4, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: f1f08d97080a74f23bb37c0c1b38d2c4, - type: 3} + - target: {fileID: -8679921383154817045, guid: f1f08d97080a74f23bb37c0c1b38d2c4, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: -7511558181221131132, guid: f1f08d97080a74f23bb37c0c1b38d2c4, - type: 3} + - target: {fileID: -7511558181221131132, guid: f1f08d97080a74f23bb37c0c1b38d2c4, type: 3} propertyPath: m_CastShadows value: 0 objectReference: {fileID: 0} - - target: {fileID: -7511558181221131132, guid: f1f08d97080a74f23bb37c0c1b38d2c4, - type: 3} + - target: {fileID: -7511558181221131132, guid: f1f08d97080a74f23bb37c0c1b38d2c4, type: 3} propertyPath: 'm_Materials.Array.data[0]' value: objectReference: {fileID: 2100000, guid: 4438bff2a20e74932b90b2af6762b849, type: 2} - - target: {fileID: -5477749408508380018, guid: f1f08d97080a74f23bb37c0c1b38d2c4, - type: 3} + - target: {fileID: -5477749408508380018, guid: f1f08d97080a74f23bb37c0c1b38d2c4, type: 3} propertyPath: m_RootOrder value: 0 objectReference: {fileID: 0} - - target: {fileID: -5477749408508380018, guid: f1f08d97080a74f23bb37c0c1b38d2c4, - type: 3} + - target: {fileID: -5477749408508380018, guid: f1f08d97080a74f23bb37c0c1b38d2c4, type: 3} propertyPath: m_LocalScale.y value: 1.2 objectReference: {fileID: 0} - - target: {fileID: -5477749408508380018, guid: f1f08d97080a74f23bb37c0c1b38d2c4, - type: 3} + - target: {fileID: -5477749408508380018, guid: f1f08d97080a74f23bb37c0c1b38d2c4, type: 3} propertyPath: m_LocalPosition.y value: -0.034 objectReference: {fileID: 0} - - target: {fileID: -4683669308469848369, guid: f1f08d97080a74f23bb37c0c1b38d2c4, - type: 3} + - target: {fileID: -4683669308469848369, guid: f1f08d97080a74f23bb37c0c1b38d2c4, type: 3} propertyPath: 'm_Materials.Array.data[0]' value: objectReference: {fileID: 2100000, guid: a5fef8e8f920d422692b573b553f9c2b, type: 2} - - target: {fileID: -2271502847731017999, guid: f1f08d97080a74f23bb37c0c1b38d2c4, - type: 3} + - target: {fileID: -2271502847731017999, guid: f1f08d97080a74f23bb37c0c1b38d2c4, type: 3} propertyPath: m_RootOrder value: 0 objectReference: {fileID: 0} - - target: {fileID: -967150581549319818, guid: f1f08d97080a74f23bb37c0c1b38d2c4, - type: 3} + - target: {fileID: -967150581549319818, guid: f1f08d97080a74f23bb37c0c1b38d2c4, type: 3} propertyPath: m_RootOrder value: 1 objectReference: {fileID: 0} - - target: {fileID: 919132149155446097, guid: f1f08d97080a74f23bb37c0c1b38d2c4, - type: 3} + - target: {fileID: 919132149155446097, guid: f1f08d97080a74f23bb37c0c1b38d2c4, type: 3} propertyPath: m_Name value: SandBoxModel objectReference: {fileID: 0} - - target: {fileID: 3650834566929780429, guid: f1f08d97080a74f23bb37c0c1b38d2c4, - type: 3} + - target: {fileID: 3650834566929780429, guid: f1f08d97080a74f23bb37c0c1b38d2c4, type: 3} propertyPath: m_Name value: Circle objectReference: {fileID: 0} - - target: {fileID: 5233112405309087440, guid: f1f08d97080a74f23bb37c0c1b38d2c4, - type: 3} + - target: {fileID: 5233112405309087440, guid: f1f08d97080a74f23bb37c0c1b38d2c4, type: 3} propertyPath: m_IsActive value: 0 objectReference: {fileID: 0} - - target: {fileID: 5912129206897006233, guid: f1f08d97080a74f23bb37c0c1b38d2c4, - type: 3} + - target: {fileID: 5912129206897006233, guid: f1f08d97080a74f23bb37c0c1b38d2c4, type: 3} propertyPath: m_CastShadows value: 0 objectReference: {fileID: 0} - - target: {fileID: 5912129206897006233, guid: f1f08d97080a74f23bb37c0c1b38d2c4, - type: 3} + - target: {fileID: 5912129206897006233, guid: f1f08d97080a74f23bb37c0c1b38d2c4, type: 3} propertyPath: 'm_Materials.Array.data[0]' value: objectReference: {fileID: 2100000, guid: 4438bff2a20e74932b90b2af6762b849, type: 2} @@ -568,6 +517,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -589,6 +541,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -698,6 +651,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -719,6 +675,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -806,14 +763,14 @@ Light: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1090784525} m_Enabled: 1 - serializedVersion: 11 + serializedVersion: 12 m_Type: 1 m_Color: {r: 1, g: 1, b: 1, a: 1} m_Intensity: 1 m_Range: 10 m_SpotAngle: 30 m_InnerSpotAngle: 21.80208 - m_CookieSize: 10 + m_CookieSize2D: {x: 10, y: 10} m_Shadows: m_Type: 2 m_Resolution: -1 @@ -857,8 +814,12 @@ Light: m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} m_UseBoundingSphereOverride: 0 m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 m_ShadowRadius: 0 m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 --- !u!4 &1090784527 Transform: m_ObjectHideFlags: 0 @@ -886,17 +847,23 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} m_Name: m_EditorClassIdentifier: - m_Version: 3 m_UsePipelineSettings: 1 m_AdditionalLightsShadowResolutionTier: 2 - m_LightLayerMask: 1 - m_RenderingLayers: 1 m_CustomShadowLayers: 0 - m_ShadowLayerMask: 1 - m_ShadowRenderingLayers: 1 m_LightCookieSize: {x: 1, y: 1} m_LightCookieOffset: {x: 0, y: 0} m_SoftShadowQuality: 1 + m_RenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_ShadowRenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_Version: 4 + m_LightLayerMask: 1 + m_ShadowLayerMask: 1 + m_RenderingLayers: 1 + m_ShadowRenderingLayers: 1 --- !u!1001 &1699203895 PrefabInstance: m_ObjectHideFlags: 0 @@ -905,123 +872,99 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 1768138160} m_Modifications: - - target: {fileID: 155458132493177538, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 155458132493177538, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_Name value: MainPanel objectReference: {fileID: 0} - - target: {fileID: 1638750836712682043, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 1638750836712682043, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_Text value: Trail Effect objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_Pivot.x value: 1 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_Pivot.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_RootOrder value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_AnchorMax.x value: 1 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_AnchorMax.y value: 1 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_AnchorMin.x value: 1 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_AnchorMin.y value: 1 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_SizeDelta.x value: 400 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_SizeDelta.y value: 250 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalPosition.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalRotation.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalRotation.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalRotation.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_AnchoredPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_AnchoredPosition.y value: -250 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 4039968741557396746, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + - target: {fileID: 4039968741557396746, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} propertyPath: m_Text value: 'This sample uses the renderer feature from the "KeepFrame" sample on an additional camera drawing depth to a renderer texture to create a trail @@ -1035,8 +978,7 @@ PrefabInstance: m_SourcePrefab: {fileID: 100100000, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} --- !u!224 &1699203896 stripped RectTransform: - m_CorrespondingSourceObject: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, - type: 3} + m_CorrespondingSourceObject: {fileID: 2877385409968955045, guid: d5fa55a16b49d4da3a93a4958cdc3180, type: 3} m_PrefabInstance: {fileID: 1699203895} m_PrefabAsset: {fileID: 0} --- !u!1 &1720569094 @@ -1049,7 +991,7 @@ GameObject: m_Component: - component: {fileID: 1720569097} - component: {fileID: 1720569096} - - component: {fileID: 1720569095} + - component: {fileID: 1720569098} m_Layer: 0 m_Name: EventSystem m_TagString: Untagged @@ -1057,26 +999,6 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!114 &1720569095 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1720569094} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3} - m_Name: - m_EditorClassIdentifier: - m_SendPointerHoverToParent: 1 - m_HorizontalAxis: Horizontal - m_VerticalAxis: Vertical - m_SubmitButton: Submit - m_CancelButton: Cancel - m_InputActionsPerSecond: 10 - m_RepeatDelay: 0.5 - m_ForceModuleActive: 0 --- !u!114 &1720569096 MonoBehaviour: m_ObjectHideFlags: 0 @@ -1107,6 +1029,37 @@ Transform: m_Children: [] m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1720569098 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1720569094} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 01614664b831546d2ae94a42149d80ac, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.InputSystem::UnityEngine.InputSystem.UI.InputSystemUIInputModule + m_SendPointerHoverToParent: 1 + m_MoveRepeatDelay: 0.5 + m_MoveRepeatRate: 0.1 + m_XRTrackingOrigin: {fileID: 0} + m_ActionsAsset: {fileID: -944628639613478452, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_PointAction: {fileID: -1654692200621890270, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_MoveAction: {fileID: -8784545083839296357, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_SubmitAction: {fileID: 392368643174621059, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_CancelAction: {fileID: 7727032971491509709, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_LeftClickAction: {fileID: 3001919216989983466, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_MiddleClickAction: {fileID: -2185481485913320682, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_RightClickAction: {fileID: -4090225696740746782, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_ScrollWheelAction: {fileID: 6240969308177333660, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_TrackedDevicePositionAction: {fileID: 6564999863303420839, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_TrackedDeviceOrientationAction: {fileID: 7970375526676320489, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_DeselectOnBackgroundClick: 1 + m_PointerBehavior: 0 + m_CursorLockBehavior: 0 + m_ScrollDeltaPerTick: 6 --- !u!1 &1722892045 GameObject: m_ObjectHideFlags: 0 @@ -1148,14 +1101,14 @@ Light: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1722892045} m_Enabled: 1 - serializedVersion: 11 + serializedVersion: 12 m_Type: 1 m_Color: {r: 1, g: 1, b: 1, a: 1} m_Intensity: 0.7 m_Range: 10 m_SpotAngle: 30 m_InnerSpotAngle: 21.80208 - m_CookieSize: 10 + m_CookieSize2D: {x: 10, y: 10} m_Shadows: m_Type: 0 m_Resolution: -1 @@ -1199,8 +1152,12 @@ Light: m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} m_UseBoundingSphereOverride: 0 m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 m_ShadowRadius: 0 m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 --- !u!114 &1722892048 MonoBehaviour: m_ObjectHideFlags: 0 @@ -1213,17 +1170,23 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} m_Name: m_EditorClassIdentifier: - m_Version: 3 m_UsePipelineSettings: 1 m_AdditionalLightsShadowResolutionTier: 2 - m_LightLayerMask: 1 - m_RenderingLayers: 1 m_CustomShadowLayers: 0 - m_ShadowLayerMask: 1 - m_ShadowRenderingLayers: 1 m_LightCookieSize: {x: 1, y: 1} m_LightCookieOffset: {x: 0, y: 0} m_SoftShadowQuality: 1 + m_RenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_ShadowRenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_Version: 4 + m_LightLayerMask: 1 + m_ShadowLayerMask: 1 + m_RenderingLayers: 1 + m_ShadowRenderingLayers: 1 --- !u!1 &1768138156 GameObject: m_ObjectHideFlags: 0 @@ -1300,7 +1263,7 @@ Canvas: m_OverrideSorting: 0 m_OverridePixelPerfect: 0 m_SortingBucketNormalizedSize: 0 - m_VertexColorAlwaysGammaSpace: 0 + m_VertexColorAlwaysGammaSpace: 1 m_AdditionalShaderChannelsFlag: 0 m_UpdateRectTransformForStandalone: 0 m_SortingLayerID: 0 @@ -1381,14 +1344,14 @@ MonoBehaviour: m_ScreenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0} m_RequiresDepthTexture: 0 m_RequiresColorTexture: 0 - m_Version: 2 m_TaaSettings: - quality: 3 - frameInfluence: 0.1 - jitterScale: 1 - mipBias: 0 - varianceClampScale: 0.9 - contrastAdaptiveSharpening: 0 + m_Quality: 3 + m_FrameInfluence: 0.1 + m_JitterScale: 1 + m_MipBias: 0 + m_VarianceClampScale: 0.9 + m_ContrastAdaptiveSharpening: 0 + m_Version: 2 --- !u!20 &2118540123 Camera: m_ObjectHideFlags: 0 diff --git a/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/RendererFeatures/TrailEffect/TrailMap.renderTexture b/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/RendererFeatures/TrailEffect/TrailMap.renderTexture index 4a6b4b7f7dd..307b65f7cba 100644 --- a/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/RendererFeatures/TrailEffect/TrailMap.renderTexture +++ b/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/RendererFeatures/TrailEffect/TrailMap.renderTexture @@ -16,12 +16,13 @@ RenderTexture: m_Height: 512 m_AntiAliasing: 1 m_MipCount: -1 - m_DepthStencilFormat: 0 + m_DepthStencilFormat: 90 m_ColorFormat: 4 m_MipMap: 0 m_GenerateMips: 1 m_SRGB: 1 m_UseDynamicScale: 0 + m_UseDynamicScaleExplicit: 0 m_BindMS: 0 m_EnableCompatibleFormat: 0 m_EnableRandomWrite: 0 diff --git a/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/SharedAssets/Settings/SamplesForwardRenderer.asset b/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/SharedAssets/Settings/SamplesForwardRenderer.asset index e6a2cab89ae..b8a21bb60e9 100644 --- a/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/SharedAssets/Settings/SamplesForwardRenderer.asset +++ b/Packages/com.unity.render-pipelines.universal/Samples~/URPPackageSamples/SharedAssets/Settings/SamplesForwardRenderer.asset @@ -1,5 +1,26 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: +--- !u!114 &-5360830161192873081 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a1614fc811f8f184697d9bee70ab9fe5, type: 3} + m_Name: DecalRendererFeature + m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Runtime::UnityEngine.Rendering.Universal.DecalRendererFeature + m_Active: 1 + m_Settings: + technique: 0 + maxDrawDistance: 1000 + decalLayers: 0 + dBufferSettings: + surfaceData: 2 + screenSpaceSettings: + normalBlend: 0 --- !u!114 &11400000 MonoBehaviour: m_ObjectHideFlags: 0 @@ -13,47 +34,27 @@ MonoBehaviour: m_Name: SamplesForwardRenderer m_EditorClassIdentifier: debugShaders: - debugReplacementPS: {fileID: 4800000, guid: cf852408f2e174538bcd9b7fda1c5ae7, - type: 3} + debugReplacementPS: {fileID: 4800000, guid: cf852408f2e174538bcd9b7fda1c5ae7, type: 3} hdrDebugViewPS: {fileID: 4800000, guid: 573620ae32aec764abd4d728906d2587, type: 3} - probeVolumeSamplingDebugComputeShader: {fileID: 7200000, guid: 53626a513ea68ce47b59dc1299fe3959, - type: 3} + probeVolumeSamplingDebugComputeShader: {fileID: 7200000, guid: 53626a513ea68ce47b59dc1299fe3959, type: 3} probeVolumeResources: - probeVolumeDebugShader: {fileID: 4800000, guid: e5c6678ed2aaa91408dd3df699057aae, - type: 3} - probeVolumeFragmentationDebugShader: {fileID: 4800000, guid: 03cfc4915c15d504a9ed85ecc404e607, - type: 3} - probeVolumeOffsetDebugShader: {fileID: 4800000, guid: 53a11f4ebaebf4049b3638ef78dc9664, - type: 3} - probeVolumeSamplingDebugShader: {fileID: 4800000, guid: 8f96cd657dc40064aa21efcc7e50a2e7, - type: 3} - probeSamplingDebugMesh: {fileID: -3555484719484374845, guid: 57d7c4c16e2765b47a4d2069b311bffe, - type: 3} - probeSamplingDebugTexture: {fileID: 2800000, guid: 24ec0e140fb444a44ab96ee80844e18e, - type: 3} - m_RendererFeatures: [] - m_RendererFeatureMap: + probeVolumeDebugShader: {fileID: 4800000, guid: e5c6678ed2aaa91408dd3df699057aae, type: 3} + probeVolumeFragmentationDebugShader: {fileID: 4800000, guid: 03cfc4915c15d504a9ed85ecc404e607, type: 3} + probeVolumeOffsetDebugShader: {fileID: 4800000, guid: 53a11f4ebaebf4049b3638ef78dc9664, type: 3} + probeVolumeSamplingDebugShader: {fileID: 4800000, guid: 8f96cd657dc40064aa21efcc7e50a2e7, type: 3} + probeSamplingDebugMesh: {fileID: -3555484719484374845, guid: 57d7c4c16e2765b47a4d2069b311bffe, type: 3} + probeSamplingDebugTexture: {fileID: 2800000, guid: 24ec0e140fb444a44ab96ee80844e18e, type: 3} + probeVolumeBlendStatesCS: {fileID: 0} + m_RendererFeatures: + - {fileID: -5360830161192873081} + m_RendererFeatureMap: 8713e60c5f819ab5 m_UseNativeRenderPass: 0 - postProcessData: {fileID: 11400000, guid: 41439944d30ece34e96484bdb6645b55, type: 2} xrSystemData: {fileID: 11400000, guid: 60e1133243b97e347b653163a8c01b64, type: 2} - shaders: - blitPS: {fileID: 4800000, guid: c17132b1f77d20942aa75f8429c0f8bc, type: 3} - copyDepthPS: {fileID: 4800000, guid: d6dae50ee9e1bfa4db75f19f99355220, type: 3} - screenSpaceShadowPS: {fileID: 0} - samplingPS: {fileID: 4800000, guid: 04c410c9937594faa893a11dceb85f7e, type: 3} - stencilDeferredPS: {fileID: 4800000, guid: e9155b26e1bc55942a41e518703fe304, type: 3} - fallbackErrorPS: {fileID: 4800000, guid: e6e9a19c3678ded42a3bc431ebef7dbd, type: 3} - fallbackLoadingPS: {fileID: 4800000, guid: 7f888aff2ac86494babad1c2c5daeee2, type: 3} - materialErrorPS: {fileID: 4800000, guid: 5fd9a8feb75a4b5894c241777f519d4e, type: 3} - coreBlitPS: {fileID: 4800000, guid: 93446b5c5339d4f00b85c159e1159b7c, type: 3} - coreBlitColorAndDepthPS: {fileID: 4800000, guid: d104b2fc1ca6445babb8e90b0758136b, - type: 3} - blitHDROverlay: {fileID: 4800000, guid: a89bee29cffa951418fc1e2da94d1959, type: 3} - cameraMotionVector: {fileID: 4800000, guid: c56b7e0d4c7cb484e959caeeedae9bbf, - type: 3} - objectMotionVector: {fileID: 4800000, guid: 7b3ede40266cd49a395def176e1bc486, - type: 3} - m_AssetVersion: 2 + postProcessData: {fileID: 11400000, guid: 41439944d30ece34e96484bdb6645b55, type: 2} + m_AssetVersion: 3 + m_PrepassLayerMask: + serializedVersion: 2 + m_Bits: 4294967295 m_OpaqueLayerMask: serializedVersion: 2 m_Bits: 4294967295 @@ -71,5 +72,7 @@ MonoBehaviour: m_RenderingMode: 0 m_DepthPrimingMode: 0 m_CopyDepthMode: 0 + m_DepthAttachmentFormat: 0 + m_DepthTextureFormat: 0 m_AccurateGbufferNormals: 0 m_IntermediateTextureMode: 1 diff --git a/Packages/com.unity.render-pipelines.universal/ShaderLibrary/Debug/Debugging3D.hlsl b/Packages/com.unity.render-pipelines.universal/ShaderLibrary/Debug/Debugging3D.hlsl index 67ee29a43fe..e3a5491499e 100644 --- a/Packages/com.unity.render-pipelines.universal/ShaderLibrary/Debug/Debugging3D.hlsl +++ b/Packages/com.unity.render-pipelines.universal/ShaderLibrary/Debug/Debugging3D.hlsl @@ -311,7 +311,10 @@ bool CanDebugOverrideOutputColor(inout InputData inputData, inout SurfaceData su if (UpdateSurfaceAndInputDataForDebug(surfaceData, inputData)) { // If we've modified any data we'll need to re-sample the GI to ensure that everything works correctly... - #if defined(DYNAMICLIGHTMAP_ON) + + #if defined(_SCREEN_SPACE_IRRADIANCE) + // In screen space irradiance mode the final pixel values have already been resolved so we cannot reevaluate here. + #elif defined(DYNAMICLIGHTMAP_ON) inputData.bakedGI = SAMPLE_GI(inputData.staticLightmapUV, inputData.dynamicLightmapUV.xy, inputData.vertexSH, inputData.normalWS); #elif !defined(LIGHTMAP_ON) && (defined(PROBE_VOLUMES_L1) || defined(PROBE_VOLUMES_L2)) inputData.bakedGI = SAMPLE_GI(inputData.vertexSH, @@ -357,7 +360,10 @@ bool CanDebugOverrideOutputColor(inout InputData inputData, inout SurfaceData su if (UpdateSurfaceAndInputDataForDebug(surfaceData, inputData)) { // If we've modified any data we'll need to re-sample the GI to ensure that everything works correctly... - #if defined(DYNAMICLIGHTMAP_ON) + + #if defined(_SCREEN_SPACE_IRRADIANCE) + // In screen space irradiance mode the final pixel values have already been resolved so we cannot reevaluate here. + #elif defined(DYNAMICLIGHTMAP_ON) inputData.bakedGI = SAMPLE_GI(inputData.staticLightmapUV, inputData.dynamicLightmapUV.xy, inputData.vertexSH, inputData.normalWS); #elif !defined(LIGHTMAP_ON) && (defined(PROBE_VOLUMES_L1) || defined(PROBE_VOLUMES_L2)) inputData.bakedGI = SAMPLE_GI(inputData.vertexSH, diff --git a/Packages/com.unity.render-pipelines.universal/ShaderLibrary/Deprecated.cs b/Packages/com.unity.render-pipelines.universal/ShaderLibrary/Deprecated.cs index 32c9314123b..fd185878061 100644 --- a/Packages/com.unity.render-pipelines.universal/ShaderLibrary/Deprecated.cs +++ b/Packages/com.unity.render-pipelines.universal/ShaderLibrary/Deprecated.cs @@ -13,7 +13,7 @@ public static partial class ShaderInput /// This has been deprecated. /// Shadow slice matrices and per-light shadow parameters are now passed to the GPU using entries in buffers m_AdditionalLightsWorldToShadow_SSBO and m_AdditionalShadowParams_SSBO. /// - [Obsolete("ShaderInput.ShadowData was deprecated. Shadow slice matrices and per-light shadow parameters are now passed to the GPU using entries in buffers m_AdditionalLightsWorldToShadow_SSBO and m_AdditionalShadowParams_SSBO", true)] + [Obsolete("ShaderInput.ShadowData was deprecated. Shadow slice matrices and per-light shadow parameters are now passed to the GPU using entries in buffers m_AdditionalLightsWorldToShadow_SSBO and m_AdditionalShadowParams_SSBO. #from(2021.1) #breakingFrom(2023.1)", true)] public struct ShadowData { /// diff --git a/Packages/com.unity.render-pipelines.universal/ShaderLibrary/GBufferCommon.hlsl b/Packages/com.unity.render-pipelines.universal/ShaderLibrary/GBufferCommon.hlsl index 637da45e90f..b6b6c6ba9f1 100644 --- a/Packages/com.unity.render-pipelines.universal/ShaderLibrary/GBufferCommon.hlsl +++ b/Packages/com.unity.render-pipelines.universal/ShaderLibrary/GBufferCommon.hlsl @@ -23,9 +23,9 @@ #define GBUFFER_FEATURE_DEPTH 1 #endif -#if !defined(LIGHTMAP_ON) && defined(LIGHTMAP_SHADOW_MIXING) && !defined(SHADOWS_SHADOWMASK) +#if defined(SHADOWS_SHADOWMASK) #define GBUFFER_FEATURE_SHADOWMASK 1 -#elif defined(SHADOWS_SHADOWMASK) +#elif !defined(LIGHTMAP_ON) && defined(LIGHTMAP_SHADOW_MIXING) #define GBUFFER_FEATURE_SHADOWMASK 1 #elif defined(_DEFERRED_MIXED_LIGHTING) #define GBUFFER_FEATURE_SHADOWMASK 1 @@ -55,31 +55,31 @@ // Setup dynamic GBuffer index macros. // These are extra GBuffers that may be used depending on which features are enabled. // Index is dynamically assigned for each combination of enabled/disabled features. -// Possible features: [GBUFFER_FEATURE_DEPTH, GBUFFER_FEATURE_SHADOWMASK, GBUFFER_FEATURE_RENDERING_LAYERS] +// Possible features: [GBUFFER_FEATURE_DEPTH, GBUFFER_FEATURE_RENDERING_LAYERS, GBUFFER_FEATURE_SHADOWMASK] #if defined(GBUFFER_FEATURE_DEPTH) // [1, 0, 0] #define GBUFFER_IDX_R_DEPTH GBUFFER_IDX_AFTER(GBUFFER_IDX_RGB_NORMALS_A_SMOOTHNESS) - #if defined(GBUFFER_FEATURE_SHADOWMASK) + #if defined(GBUFFER_FEATURE_RENDERING_LAYERS) // [1, 1, 0] - #define GBUFFER_IDX_RGBA_SHADOWMASK GBUFFER_IDX_AFTER(GBUFFER_IDX_R_DEPTH) - #if defined(GBUFFER_FEATURE_RENDERING_LAYERS) + #define GBUFFER_IDX_R_RENDERING_LAYERS GBUFFER_IDX_AFTER(GBUFFER_IDX_R_DEPTH) + #if defined(GBUFFER_FEATURE_SHADOWMASK) // [1, 1, 1] - #define GBUFFER_IDX_R_RENDERING_LAYERS GBUFFER_IDX_AFTER(GBUFFER_IDX_RGBA_SHADOWMASK) + #define GBUFFER_IDX_RGBA_SHADOWMASK GBUFFER_IDX_AFTER(GBUFFER_IDX_R_RENDERING_LAYERS) #endif - #elif defined(GBUFFER_FEATURE_RENDERING_LAYERS) + #elif defined(GBUFFER_FEATURE_SHADOWMASK) // [1, 0, 1] - #define GBUFFER_IDX_R_RENDERING_LAYERS GBUFFER_IDX_AFTER(GBUFFER_IDX_R_DEPTH) + #define GBUFFER_IDX_RGBA_SHADOWMASK GBUFFER_IDX_AFTER(GBUFFER_IDX_R_DEPTH) #endif -#elif defined(GBUFFER_FEATURE_SHADOWMASK) +#elif defined(GBUFFER_FEATURE_RENDERING_LAYERS) // [0, 1, 0] - #define GBUFFER_IDX_RGBA_SHADOWMASK GBUFFER_IDX_AFTER(GBUFFER_IDX_RGB_NORMALS_A_SMOOTHNESS) - #if defined(GBUFFER_FEATURE_RENDERING_LAYERS) + #define GBUFFER_IDX_R_RENDERING_LAYERS GBUFFER_IDX_AFTER(GBUFFER_IDX_RGB_NORMALS_A_SMOOTHNESS) + #if defined(GBUFFER_FEATURE_SHADOWMASK) // [0, 1, 1] - #define GBUFFER_IDX_R_RENDERING_LAYERS GBUFFER_IDX_AFTER(GBUFFER_IDX_RGBA_SHADOWMASK) + #define GBUFFER_IDX_RGBA_SHADOWMASK GBUFFER_IDX_AFTER(GBUFFER_IDX_R_RENDERING_LAYERS) #endif -#elif defined(GBUFFER_FEATURE_RENDERING_LAYERS) +#elif defined(GBUFFER_FEATURE_SHADOWMASK) // [0, 0, 1] - #define GBUFFER_IDX_R_RENDERING_LAYERS GBUFFER_IDX_AFTER(GBUFFER_IDX_RGB_NORMALS_A_SMOOTHNESS) + #define GBUFFER_IDX_RGBA_SHADOWMASK GBUFFER_IDX_AFTER(GBUFFER_IDX_RGB_NORMALS_A_SMOOTHNESS) #endif // Unpacked URP GBuffer data. diff --git a/Packages/com.unity.render-pipelines.universal/ShaderLibrary/GBufferInput.hlsl b/Packages/com.unity.render-pipelines.universal/ShaderLibrary/GBufferInput.hlsl index 76857149d30..295bcc5a9eb 100644 --- a/Packages/com.unity.render-pipelines.universal/ShaderLibrary/GBufferInput.hlsl +++ b/Packages/com.unity.render-pipelines.universal/ShaderLibrary/GBufferInput.hlsl @@ -63,7 +63,7 @@ TYPED_TEXTURE2D_X(uint4, GBUFFER_TEX2D_NAME(GBUFFER_IDX_AFTER(GBUFFER_IDX_R_REND void LoadGBuffers(uint2 unCoord2, out half4 gBuffer0, out half4 gBuffer1, out half4 gBuffer2, out float depth, out uint renderingLayers, out half4 shadowMask) { - renderingLayers = 0xffff; + renderingLayers = 0xFFFFFFFF; shadowMask = half4(1, 1, 1, 1); #if defined(GBUFFER_FBFETCH_AVAILABLE) diff --git a/Packages/com.unity.render-pipelines.universal/ShaderLibrary/GlobalIllumination.hlsl b/Packages/com.unity.render-pipelines.universal/ShaderLibrary/GlobalIllumination.hlsl index e647cbfd9e2..9f6e3d7200c 100644 --- a/Packages/com.unity.render-pipelines.universal/ShaderLibrary/GlobalIllumination.hlsl +++ b/Packages/com.unity.render-pipelines.universal/ShaderLibrary/GlobalIllumination.hlsl @@ -1,4 +1,3 @@ - #ifndef UNIVERSAL_GLOBAL_ILLUMINATION_INCLUDED #define UNIVERSAL_GLOBAL_ILLUMINATION_INCLUDED @@ -16,6 +15,15 @@ #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Packing.hlsl" #endif +#if defined(_SCREEN_SPACE_IRRADIANCE) +TEXTURE2D_X(_ScreenSpaceIrradiance); + +half3 SampleScreenSpaceGI(float2 pos) +{ + return LOAD_TEXTURE2D_X(_ScreenSpaceIrradiance, pos).rgb; +} +#endif + // If lightmap is not defined than we evaluate GI (ambient + probes) from SH // Renamed -> LIGHTMAP_SHADOW_MIXING @@ -192,10 +200,9 @@ half3 SampleLightmap(float2 staticLightmapUV, half3 normalWS) return result; } -// We either sample GI from baked lightmap or from probes. -// If lightmap: sampleData.xy = lightmapUV -// If probe: sampleData.xyz = L2 SH terms -#if defined(LIGHTMAP_ON) && defined(DYNAMICLIGHTMAP_ON) +#if defined(_SCREEN_SPACE_IRRADIANCE) +#define SAMPLE_GI(irradianceTex, pos) SampleScreenSpaceGI(pos) +#elif defined(LIGHTMAP_ON) && defined(DYNAMICLIGHTMAP_ON) #define SAMPLE_GI(staticLmName, dynamicLmName, shName, normalWSName) SampleLightmap(staticLmName, dynamicLmName, normalWSName) #elif defined(DYNAMICLIGHTMAP_ON) #define SAMPLE_GI(staticLmName, dynamicLmName, shName, normalWSName) SampleLightmap(0, dynamicLmName, normalWSName) @@ -211,6 +218,16 @@ half3 SampleLightmap(float2 staticLightmapUV, half3 normalWS) #define SAMPLE_GI(staticLmName, shName, normalWSName) SampleSHPixel(shName, normalWSName) #endif +float3 GetReflectionProbeCenter(float4 boxMin, float4 boxMax) +{ + return boxMin.xyz + (boxMax.xyz - boxMin.xyz) / 2; +} + +float3 GetRotatedPoint(float3 centerPosition, float4 quaternion, float3 pointToRotate) +{ + return RotateVectorByQuat(quaternion, pointToRotate - centerPosition) + centerPosition; +} + half3 BoxProjectedCubemapDirection(half3 reflectionWS, float3 positionWS, float4 cubemapPositionWS, float4 boxMin, float4 boxMax) { // Is this probe using box projection? @@ -232,6 +249,20 @@ half3 BoxProjectedCubemapDirection(half3 reflectionWS, float3 positionWS, float4 } } +half3 BoxProjectedCubemapDirection(float4 rotation, half3 reflectionWS, float3 positionWS, float4 cubemapPositionWS, float4 boxMin, float4 boxMax) +{ + half3 rotReflectVector = RotateVectorByQuat(rotation, reflectionWS); + float4 inverseRotation = -rotation; + inverseRotation.w = -inverseRotation.w; + + half3 dir = BoxProjectedCubemapDirection(rotReflectVector, positionWS, cubemapPositionWS, boxMin, boxMax); + + half3 rotatedDir = RotateVectorByQuat(inverseRotation, dir); + + return rotatedDir; + +} + float CalculateProbeWeight(float3 positionWS, float4 probeBoxMin, float4 probeBoxMax) { float blendDistance = probeBoxMax.w; @@ -257,12 +288,24 @@ half3 CalculateIrradianceFromReflectionProbes(half3 reflectVector, float3 positi { probeIndex -= URP_FP_PROBES_BEGIN; - float weight = CalculateProbeWeight(positionWS, urp_ReflProbes_BoxMin[probeIndex], urp_ReflProbes_BoxMax[probeIndex]); +#if defined(REFLECTION_PROBE_ROTATION) + // We need to rotated positionWS such that we can assume the influence volumes to be axis aligned + // when calculating the weight and box projection. + float3 probeCenterPosWS = GetReflectionProbeCenter(urp_ReflProbes_BoxMin[probeIndex], urp_ReflProbes_BoxMax[probeIndex]); + float3 rotPosWS = GetRotatedPoint(probeCenterPosWS, urp_ReflProbes_Rotation[probeIndex], positionWS); +#else + float3 rotPosWS = positionWS; +#endif + float weight = CalculateProbeWeight(rotPosWS, urp_ReflProbes_BoxMin[probeIndex], urp_ReflProbes_BoxMax[probeIndex]); weight = min(weight, 1.0f - totalWeight); half3 sampleVector = reflectVector; #ifdef _REFLECTION_PROBE_BOX_PROJECTION - sampleVector = BoxProjectedCubemapDirection(reflectVector, positionWS, urp_ReflProbes_ProbePosition[probeIndex], urp_ReflProbes_BoxMin[probeIndex], urp_ReflProbes_BoxMax[probeIndex]); + #if defined(REFLECTION_PROBE_ROTATION) + sampleVector = BoxProjectedCubemapDirection(urp_ReflProbes_Rotation[probeIndex], reflectVector, rotPosWS, urp_ReflProbes_ProbePosition[probeIndex], urp_ReflProbes_BoxMin[probeIndex], urp_ReflProbes_BoxMax[probeIndex]); + #else + sampleVector = BoxProjectedCubemapDirection(reflectVector, rotPosWS, urp_ReflProbes_ProbePosition[probeIndex], urp_ReflProbes_BoxMin[probeIndex], urp_ReflProbes_BoxMax[probeIndex]); + #endif #endif // _REFLECTION_PROBE_BOX_PROJECTION uint maxMip = (uint)abs(urp_ReflProbes_ProbePosition[probeIndex].w) - 1; @@ -281,6 +324,18 @@ half3 CalculateIrradianceFromReflectionProbes(half3 reflectVector, float3 positi totalWeight += weight; } #else +#if defined(REFLECTION_PROBE_ROTATION) + // We need to rotated positionWS such that we can assume the influence volumes to be axis aligned + // when calculating the weight and box projection. + float3 probeCenterPosWS0 = GetReflectionProbeCenter(unity_SpecCube0_BoxMin, unity_SpecCube0_BoxMax); + float3 rotPosWS0 = GetRotatedPoint(probeCenterPosWS0, unity_SpecCube0_Rotation, positionWS); + float3 probeCenterPosWS1 = GetReflectionProbeCenter(unity_SpecCube1_BoxMin, unity_SpecCube1_BoxMax); + float3 rotPosWS1 = GetRotatedPoint(probeCenterPosWS1, unity_SpecCube1_Rotation, positionWS); +#else + float3 rotPosWS0 = positionWS; + float3 rotPosWS1 = positionWS; +#endif + half probe0Volume = CalculateProbeVolumeSqrMagnitude(unity_SpecCube0_BoxMin, unity_SpecCube0_BoxMax); half probe1Volume = CalculateProbeVolumeSqrMagnitude(unity_SpecCube1_BoxMin, unity_SpecCube1_BoxMax); @@ -292,8 +347,8 @@ half3 CalculateIrradianceFromReflectionProbes(half3 reflectVector, float3 positi bool probe0Dominant = importanceSign > 0.0f || (importanceSign == 0.0f && volumeDiff < -0.0001h); bool probe1Dominant = importanceSign < 0.0f || (importanceSign == 0.0f && volumeDiff > 0.0001h); - float desiredWeightProbe0 = CalculateProbeWeight(positionWS, unity_SpecCube0_BoxMin, unity_SpecCube0_BoxMax); - float desiredWeightProbe1 = CalculateProbeWeight(positionWS, unity_SpecCube1_BoxMin, unity_SpecCube1_BoxMax); + float desiredWeightProbe0 = CalculateProbeWeight(rotPosWS0, unity_SpecCube0_BoxMin, unity_SpecCube0_BoxMax); + float desiredWeightProbe1 = CalculateProbeWeight(rotPosWS1, unity_SpecCube1_BoxMin, unity_SpecCube1_BoxMax); // Subject the probes weight if the other probe is dominant float weightProbe0 = probe1Dominant ? min(desiredWeightProbe0, 1.0f - desiredWeightProbe1) : desiredWeightProbe0; @@ -311,7 +366,11 @@ half3 CalculateIrradianceFromReflectionProbes(half3 reflectVector, float3 positi { half3 reflectVector0 = reflectVector; #ifdef _REFLECTION_PROBE_BOX_PROJECTION - reflectVector0 = BoxProjectedCubemapDirection(reflectVector, positionWS, unity_SpecCube0_ProbePosition, unity_SpecCube0_BoxMin, unity_SpecCube0_BoxMax); + #if defined(REFLECTION_PROBE_ROTATION) + reflectVector0 = BoxProjectedCubemapDirection(unity_SpecCube0_Rotation, reflectVector, rotPosWS0, unity_SpecCube0_ProbePosition, unity_SpecCube0_BoxMin, unity_SpecCube0_BoxMax); + #else + reflectVector0 = BoxProjectedCubemapDirection(reflectVector, rotPosWS0, unity_SpecCube0_ProbePosition, unity_SpecCube0_BoxMin, unity_SpecCube0_BoxMax); + #endif #endif // _REFLECTION_PROBE_BOX_PROJECTION half4 encodedIrradiance = half4(SAMPLE_TEXTURECUBE_LOD(unity_SpecCube0, samplerunity_SpecCube0, reflectVector0, mip)); @@ -324,7 +383,11 @@ half3 CalculateIrradianceFromReflectionProbes(half3 reflectVector, float3 positi { half3 reflectVector1 = reflectVector; #ifdef _REFLECTION_PROBE_BOX_PROJECTION - reflectVector1 = BoxProjectedCubemapDirection(reflectVector, positionWS, unity_SpecCube1_ProbePosition, unity_SpecCube1_BoxMin, unity_SpecCube1_BoxMax); + #if defined(REFLECTION_PROBE_ROTATION) + reflectVector1 = BoxProjectedCubemapDirection(unity_SpecCube1_Rotation, reflectVector, rotPosWS1, unity_SpecCube1_ProbePosition, unity_SpecCube1_BoxMin, unity_SpecCube1_BoxMax); + #else + reflectVector1 = BoxProjectedCubemapDirection(reflectVector, rotPosWS1, unity_SpecCube1_ProbePosition, unity_SpecCube1_BoxMin, unity_SpecCube1_BoxMax); + #endif #endif // _REFLECTION_PROBE_BOX_PROJECTION half4 encodedIrradiance = half4(SAMPLE_TEXTURECUBE_LOD(unity_SpecCube1, samplerunity_SpecCube1, reflectVector1, mip)); @@ -352,7 +415,17 @@ half3 GlossyEnvironmentReflection(half3 reflectVector, float3 positionWS, half p irradiance = CalculateIrradianceFromReflectionProbes(reflectVector, positionWS, perceptualRoughness, normalizedScreenSpaceUV); #else #ifdef _REFLECTION_PROBE_BOX_PROJECTION + #if defined(REFLECTION_PROBE_ROTATION) + float3 probeCenterPosWS0 = unity_SpecCube0_BoxMin.xyz + (unity_SpecCube0_BoxMax.xyz - unity_SpecCube0_BoxMin.xyz) / 2; + float3 rotPosWS0 = RotateVectorByQuat(unity_SpecCube0_Rotation, positionWS - probeCenterPosWS0) + probeCenterPosWS0; + half3 rotReflectVector0 = RotateVectorByQuat(unity_SpecCube0_Rotation, reflectVector); + float4 inverseRotation0 = -unity_SpecCube0_Rotation; + inverseRotation0.w = -inverseRotation0.w; + reflectVector = BoxProjectedCubemapDirection(rotReflectVector0, rotPosWS0, unity_SpecCube0_ProbePosition, unity_SpecCube0_BoxMin, unity_SpecCube0_BoxMax); + reflectVector = RotateVectorByQuat(inverseRotation0, reflectVector); + #else reflectVector = BoxProjectedCubemapDirection(reflectVector, positionWS, unity_SpecCube0_ProbePosition, unity_SpecCube0_BoxMin, unity_SpecCube0_BoxMax); + #endif #endif // _REFLECTION_PROBE_BOX_PROJECTION half mip = PerceptualRoughnessToMipmapLevel(perceptualRoughness); half4 encodedIrradiance = half4(SAMPLE_TEXTURECUBE_LOD(unity_SpecCube0, samplerunity_SpecCube0, reflectVector, mip)); diff --git a/Packages/com.unity.render-pipelines.universal/ShaderLibrary/Input.hlsl b/Packages/com.unity.render-pipelines.universal/ShaderLibrary/Input.hlsl index 8d1552a95b9..b755900fbd5 100644 --- a/Packages/com.unity.render-pipelines.universal/ShaderLibrary/Input.hlsl +++ b/Packages/com.unity.render-pipelines.universal/ShaderLibrary/Input.hlsl @@ -199,6 +199,7 @@ float4 urp_ReflProbes_BoxMax[MAX_REFLECTION_PROBES]; // w contains the float4 urp_ReflProbes_BoxMin[MAX_REFLECTION_PROBES]; // w contains the importance float4 urp_ReflProbes_ProbePosition[MAX_REFLECTION_PROBES]; // w is positive for box projection, |w| is max mip level float4 urp_ReflProbes_MipScaleOffset[MAX_REFLECTION_PROBES * 7]; +float4 urp_ReflProbes_Rotation[MAX_REFLECTION_PROBES]; #ifndef LIGHT_SHADOWS_NO_CBUFFER CBUFFER_END #endif diff --git a/Packages/com.unity.render-pipelines.universal/ShaderLibrary/MotionVectorsCommon.hlsl b/Packages/com.unity.render-pipelines.universal/ShaderLibrary/MotionVectorsCommon.hlsl index 7962df86b4b..4ecbcd9fb9d 100644 --- a/Packages/com.unity.render-pipelines.universal/ShaderLibrary/MotionVectorsCommon.hlsl +++ b/Packages/com.unity.render-pipelines.universal/ShaderLibrary/MotionVectorsCommon.hlsl @@ -3,6 +3,8 @@ #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/FoveatedRendering.hlsl" +float _SpaceWarpNDCModifier; + // 6000.0 Deprecated. This is for backwards compatibility. Remove in the future. void ApplyMotionVectorZBias(inout float4 positionCS) { @@ -63,6 +65,10 @@ float3 CalcAswNdcMotionVectorFromCsPositions(float4 posCS, float4 prevPosCS) // Calculate forward velocity velocity = (posNDC.xyz - prevPosNDC.xyz); + #if UNITY_UV_STARTS_AT_TOP + velocity.y = velocity.y * _SpaceWarpNDCModifier; + #endif + return velocity; } #endif diff --git a/Packages/com.unity.render-pipelines.universal/ShaderLibrary/ProbeVolumeVariants.hlsl b/Packages/com.unity.render-pipelines.universal/ShaderLibrary/ProbeVolumeVariants.hlsl index fa54ea796e5..27093bf4349 100644 --- a/Packages/com.unity.render-pipelines.universal/ShaderLibrary/ProbeVolumeVariants.hlsl +++ b/Packages/com.unity.render-pipelines.universal/ShaderLibrary/ProbeVolumeVariants.hlsl @@ -2,7 +2,5 @@ #define UNIVERSAL_PROBE_VOLUME_VARIANTS_INCLUDED #pragma multi_compile _ PROBE_VOLUMES_L1 PROBE_VOLUMES_L2 -#pragma target 4.5 PROBE_VOLUMES_L1 -#pragma target 4.5 PROBE_VOLUMES_L2 #endif // UNIVERSAL_PROBE_VOLUME_VARIANTS_INCLUDED diff --git a/Packages/com.unity.render-pipelines.universal/ShaderLibrary/UnityInput.hlsl b/Packages/com.unity.render-pipelines.universal/ShaderLibrary/UnityInput.hlsl index 72c29f3b976..72351c42de5 100644 --- a/Packages/com.unity.render-pipelines.universal/ShaderLibrary/UnityInput.hlsl +++ b/Packages/com.unity.render-pipelines.universal/ShaderLibrary/UnityInput.hlsl @@ -133,9 +133,11 @@ real4 unity_SpecCube1_HDR; float4 unity_SpecCube0_BoxMax; // w contains the blend distance float4 unity_SpecCube0_BoxMin; // w contains the lerp value float4 unity_SpecCube0_ProbePosition; // w is set to 1 for box projection +float4 unity_SpecCube0_Rotation; float4 unity_SpecCube1_BoxMax; // w contains the blend distance float4 unity_SpecCube1_BoxMin; // w contains the sign of (SpecCube0.importance - SpecCube1.importance) float4 unity_SpecCube1_ProbePosition; // w is set to 1 for box projection +float4 unity_SpecCube1_Rotation; // Lightmap block feature float4 unity_LightmapST; diff --git a/Packages/com.unity.render-pipelines.universal/ShaderLibrary/UniversalDOTSInstancing.hlsl b/Packages/com.unity.render-pipelines.universal/ShaderLibrary/UniversalDOTSInstancing.hlsl index a93b23500c0..1f22756a052 100644 --- a/Packages/com.unity.render-pipelines.universal/ShaderLibrary/UniversalDOTSInstancing.hlsl +++ b/Packages/com.unity.render-pipelines.universal/ShaderLibrary/UniversalDOTSInstancing.hlsl @@ -51,10 +51,11 @@ static const float2x4 unity_LightIndices = float2x4(0,0,0,0, 0,0,0,0); static const float4 unity_SpecCube0_BoxMax = float4(1,1,1,1); static const float4 unity_SpecCube0_BoxMin = float4(0,0,0,0); static const float4 unity_SpecCube0_ProbePosition = float4(0,0,0,0); - +static const float4 unity_SpecCube0_Rotation = float4(0,0,0,0); static const float4 unity_SpecCube1_BoxMax = float4(1,1,1,1); static const float4 unity_SpecCube1_BoxMin = float4(0,0,0,0); static const float4 unity_SpecCube1_ProbePosition = float4(0,0,0,0); +static const float4 unity_SpecCube1_Rotation = float4(0,0,0,0); static const float4 unity_SpecCube1_HDR = float4(0,0,0,0); // Set up by BRG picking/selection code 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 706bf061e95..c131a618303 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 @@ -132,8 +132,6 @@ Shader "Universal Render Pipeline/2D/Sprite-Lit-Default" Pass { - ZWrite Off - Tags { "LightMode" = "NormalsRendering"} HLSLPROGRAM @@ -152,6 +150,7 @@ Shader "Universal Render Pipeline/2D/Sprite-Lit-Default" float3 positionOS : POSITION; float4 color : COLOR; float2 uv : TEXCOORD0; + float3 normal : NORMAL; float4 tangent : TANGENT; UNITY_SKINNED_VERTEX_INPUTS UNITY_VERTEX_INPUT_INSTANCE_ID @@ -190,7 +189,7 @@ Shader "Universal Render Pipeline/2D/Sprite-Lit-Default" o.positionCS = TransformObjectToHClip(attributes.positionOS); o.uv = attributes.uv; o.color = attributes.color * _Color * unity_SpriteColor; - o.normalWS = -GetViewForwardDir(); + o.normalWS = TransformObjectToWorldDir(attributes.normal); o.tangentWS = TransformObjectToWorldDir(attributes.tangent.xyz); o.bitangentWS = cross(o.normalWS, o.tangentWS) * attributes.tangent.w; return o; diff --git a/Packages/com.unity.render-pipelines.universal/Shaders/BakedLit.shader b/Packages/com.unity.render-pipelines.universal/Shaders/BakedLit.shader index 9321d500616..913a0dd24b6 100644 --- a/Packages/com.unity.render-pipelines.universal/Shaders/BakedLit.shader +++ b/Packages/com.unity.render-pipelines.universal/Shaders/BakedLit.shader @@ -86,6 +86,7 @@ Shader "Universal Render Pipeline/Baked Lit" #pragma multi_compile _ DIRLIGHTMAP_COMBINED #pragma multi_compile _ LIGHTMAP_ON #pragma multi_compile_fragment _ LIGHTMAP_BICUBIC_SAMPLING + #pragma multi_compile_fragment _ REFLECTION_PROBE_ROTATION #pragma multi_compile _ USE_LEGACY_LIGHTMAPS #pragma multi_compile _ DEBUG_DISPLAY #pragma multi_compile _ LOD_FADE_CROSSFADE diff --git a/Packages/com.unity.render-pipelines.universal/Shaders/ComplexLit.shader b/Packages/com.unity.render-pipelines.universal/Shaders/ComplexLit.shader index 491baedc2b9..4361ccfdd5e 100644 --- a/Packages/com.unity.render-pipelines.universal/Shaders/ComplexLit.shader +++ b/Packages/com.unity.render-pipelines.universal/Shaders/ComplexLit.shader @@ -147,6 +147,7 @@ Shader "Universal Render Pipeline/Complex Lit" #pragma multi_compile_fragment _ _SHADOWS_SOFT #pragma multi_compile_fragment _ _SHADOWS_SOFT_LOW _SHADOWS_SOFT_MEDIUM _SHADOWS_SOFT_HIGH #pragma multi_compile_fragment _ _SCREEN_SPACE_OCCLUSION + #pragma multi_compile_fragment _ _SCREEN_SPACE_IRRADIANCE #pragma multi_compile_fragment _ _DBUFFER_MRT1 _DBUFFER_MRT2 _DBUFFER_MRT3 #pragma multi_compile_fragment _ _LIGHT_COOKIES #include_with_pragmas "Packages/com.unity.render-pipelines.core/ShaderLibrary/FoveatedRenderingKeywords.hlsl" @@ -160,6 +161,7 @@ Shader "Universal Render Pipeline/Complex Lit" #pragma multi_compile _ DIRLIGHTMAP_COMBINED #pragma multi_compile _ LIGHTMAP_ON #pragma multi_compile_fragment _ LIGHTMAP_BICUBIC_SAMPLING + #pragma multi_compile_fragment _ REFLECTION_PROBE_ROTATION #pragma multi_compile _ DYNAMICLIGHTMAP_ON #pragma multi_compile _ USE_LEGACY_LIGHTMAPS #pragma multi_compile _ LOD_FADE_CROSSFADE @@ -287,6 +289,7 @@ Shader "Universal Render Pipeline/Complex Lit" #pragma multi_compile_fragment _ _RENDER_PASS_ENABLED #pragma multi_compile _ _CLUSTER_LIGHT_LOOP #pragma multi_compile _ EVALUATE_SH_MIXED EVALUATE_SH_VERTEX + #pragma multi_compile_fragment _ _SCREEN_SPACE_IRRADIANCE #include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/RenderingLayers.hlsl" // ------------------------------------- @@ -296,6 +299,7 @@ Shader "Universal Render Pipeline/Complex Lit" #pragma multi_compile _ DIRLIGHTMAP_COMBINED #pragma multi_compile _ LIGHTMAP_ON #pragma multi_compile_fragment _ LIGHTMAP_BICUBIC_SAMPLING + #pragma multi_compile_fragment _ REFLECTION_PROBE_ROTATION #pragma multi_compile _ DYNAMICLIGHTMAP_ON #pragma multi_compile _ USE_LEGACY_LIGHTMAPS #pragma multi_compile _ LOD_FADE_CROSSFADE diff --git a/Packages/com.unity.render-pipelines.universal/Shaders/Lit.shader b/Packages/com.unity.render-pipelines.universal/Shaders/Lit.shader index a62d07e3ba1..83bc8c01933 100644 --- a/Packages/com.unity.render-pipelines.universal/Shaders/Lit.shader +++ b/Packages/com.unity.render-pipelines.universal/Shaders/Lit.shader @@ -144,6 +144,7 @@ Shader "Universal Render Pipeline/Lit" #pragma multi_compile_fragment _ _REFLECTION_PROBE_ATLAS #pragma multi_compile_fragment _ _SHADOWS_SOFT _SHADOWS_SOFT_LOW _SHADOWS_SOFT_MEDIUM _SHADOWS_SOFT_HIGH #pragma multi_compile_fragment _ _SCREEN_SPACE_OCCLUSION + #pragma multi_compile_fragment _ _SCREEN_SPACE_IRRADIANCE #pragma multi_compile_fragment _ _DBUFFER_MRT1 _DBUFFER_MRT2 _DBUFFER_MRT3 #pragma multi_compile_fragment _ _LIGHT_COOKIES #pragma multi_compile _ _LIGHT_LAYERS @@ -159,6 +160,7 @@ Shader "Universal Render Pipeline/Lit" #pragma multi_compile _ DIRLIGHTMAP_COMBINED #pragma multi_compile _ LIGHTMAP_ON #pragma multi_compile_fragment _ LIGHTMAP_BICUBIC_SAMPLING + #pragma multi_compile_fragment _ REFLECTION_PROBE_ROTATION #pragma multi_compile _ DYNAMICLIGHTMAP_ON #pragma multi_compile _ USE_LEGACY_LIGHTMAPS #pragma multi_compile _ LOD_FADE_CROSSFADE @@ -294,10 +296,12 @@ Shader "Universal Render Pipeline/Lit" #pragma multi_compile _ DIRLIGHTMAP_COMBINED #pragma multi_compile _ LIGHTMAP_ON #pragma multi_compile_fragment _ LIGHTMAP_BICUBIC_SAMPLING + #pragma multi_compile_fragment _ REFLECTION_PROBE_ROTATION #pragma multi_compile _ DYNAMICLIGHTMAP_ON #pragma multi_compile _ USE_LEGACY_LIGHTMAPS #pragma multi_compile _ LOD_FADE_CROSSFADE #pragma multi_compile_fragment _ _GBUFFER_NORMALS_OCT + #pragma multi_compile_fragment _ _SCREEN_SPACE_IRRADIANCE #include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ProbeVolumeVariants.hlsl" //-------------------------------------- diff --git a/Packages/com.unity.render-pipelines.universal/Shaders/LitForwardPass.hlsl b/Packages/com.unity.render-pipelines.universal/Shaders/LitForwardPass.hlsl index c0e476d5340..a59e26d049e 100644 --- a/Packages/com.unity.render-pipelines.universal/Shaders/LitForwardPass.hlsl +++ b/Packages/com.unity.render-pipelines.universal/Shaders/LitForwardPass.hlsl @@ -2,6 +2,7 @@ #define UNIVERSAL_FORWARD_LIT_PASS_INCLUDED #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl" + #if defined(LOD_FADE_CROSSFADE) #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/LODCrossFade.hlsl" #endif @@ -130,7 +131,9 @@ void InitializeInputData(Varyings input, half3 normalTS, out InputData inputData void InitializeBakedGIData(Varyings input, inout InputData inputData) { - #if defined(DYNAMICLIGHTMAP_ON) + #if defined(_SCREEN_SPACE_IRRADIANCE) + inputData.bakedGI = SAMPLE_GI(_ScreenSpaceIrradiance, input.positionCS.xy); + #elif defined(DYNAMICLIGHTMAP_ON) inputData.bakedGI = SAMPLE_GI(input.staticLightmapUV, input.dynamicLightmapUV, input.vertexSH, inputData.normalWS); inputData.shadowMask = SAMPLE_SHADOWMASK(input.staticLightmapUV); #elif !defined(LIGHTMAP_ON) && (defined(PROBE_VOLUMES_L1) || defined(PROBE_VOLUMES_L2)) diff --git a/Packages/com.unity.render-pipelines.universal/Shaders/LitGBufferPass.hlsl b/Packages/com.unity.render-pipelines.universal/Shaders/LitGBufferPass.hlsl index 730b6594a9c..9d88a219c3d 100644 --- a/Packages/com.unity.render-pipelines.universal/Shaders/LitGBufferPass.hlsl +++ b/Packages/com.unity.render-pipelines.universal/Shaders/LitGBufferPass.hlsl @@ -112,7 +112,9 @@ void InitializeInputData(Varyings input, half3 normalTS, out InputData inputData void InitializeBakedGIData(Varyings input, inout InputData inputData) { -#if defined(DYNAMICLIGHTMAP_ON) +#if defined(_SCREEN_SPACE_IRRADIANCE) + inputData.bakedGI = SAMPLE_GI(_ScreenSpaceIrradiance, input.positionCS.xy); +#elif defined(DYNAMICLIGHTMAP_ON) inputData.bakedGI = SAMPLE_GI(input.staticLightmapUV, input.dynamicLightmapUV, input.vertexSH, inputData.normalWS); inputData.shadowMask = SAMPLE_SHADOWMASK(input.staticLightmapUV); #elif !defined(LIGHTMAP_ON) && (defined(PROBE_VOLUMES_L1) || defined(PROBE_VOLUMES_L2)) diff --git a/Packages/com.unity.render-pipelines.universal/Shaders/SimpleLit.shader b/Packages/com.unity.render-pipelines.universal/Shaders/SimpleLit.shader index 8122cc9f33e..7b883dad1ff 100644 --- a/Packages/com.unity.render-pipelines.universal/Shaders/SimpleLit.shader +++ b/Packages/com.unity.render-pipelines.universal/Shaders/SimpleLit.shader @@ -111,6 +111,7 @@ Shader "Universal Render Pipeline/Simple Lit" #pragma multi_compile_fragment _ _SHADOWS_SOFT #pragma multi_compile_fragment _ _SHADOWS_SOFT_LOW _SHADOWS_SOFT_MEDIUM _SHADOWS_SOFT_HIGH #pragma multi_compile_fragment _ _SCREEN_SPACE_OCCLUSION + #pragma multi_compile_fragment _ _SCREEN_SPACE_IRRADIANCE #pragma multi_compile_fragment _ _DBUFFER_MRT1 _DBUFFER_MRT2 _DBUFFER_MRT3 #pragma multi_compile_fragment _ _LIGHT_COOKIES #include_with_pragmas "Packages/com.unity.render-pipelines.core/ShaderLibrary/FoveatedRenderingKeywords.hlsl" @@ -123,6 +124,7 @@ Shader "Universal Render Pipeline/Simple Lit" #pragma multi_compile _ DIRLIGHTMAP_COMBINED #pragma multi_compile _ LIGHTMAP_ON #pragma multi_compile_fragment _ LIGHTMAP_BICUBIC_SAMPLING + #pragma multi_compile_fragment _ REFLECTION_PROBE_ROTATION #pragma multi_compile _ DYNAMICLIGHTMAP_ON #pragma multi_compile _ USE_LEGACY_LIGHTMAPS #pragma multi_compile_fragment _ DEBUG_DISPLAY @@ -245,6 +247,7 @@ Shader "Universal Render Pipeline/Simple Lit" #pragma multi_compile _ DIRLIGHTMAP_COMBINED #pragma multi_compile _ LIGHTMAP_ON #pragma multi_compile_fragment _ LIGHTMAP_BICUBIC_SAMPLING + #pragma multi_compile_fragment _ REFLECTION_PROBE_ROTATION #pragma multi_compile _ DYNAMICLIGHTMAP_ON #pragma multi_compile _ USE_LEGACY_LIGHTMAPS #pragma multi_compile _ LIGHTMAP_SHADOW_MIXING @@ -252,6 +255,7 @@ Shader "Universal Render Pipeline/Simple Lit" #pragma multi_compile_fragment _ _GBUFFER_NORMALS_OCT #pragma multi_compile_fragment _ _RENDER_PASS_ENABLED #pragma multi_compile _ LOD_FADE_CROSSFADE + #pragma multi_compile_fragment _ _SCREEN_SPACE_IRRADIANCE //-------------------------------------- // GPU Instancing diff --git a/Packages/com.unity.render-pipelines.universal/Shaders/SimpleLitForwardPass.hlsl b/Packages/com.unity.render-pipelines.universal/Shaders/SimpleLitForwardPass.hlsl index a71fff9bcea..7a5f4dbc516 100644 --- a/Packages/com.unity.render-pipelines.universal/Shaders/SimpleLitForwardPass.hlsl +++ b/Packages/com.unity.render-pipelines.universal/Shaders/SimpleLitForwardPass.hlsl @@ -114,7 +114,9 @@ void InitializeInputData(Varyings input, half3 normalTS, out InputData inputData void InitializeBakedGIData(Varyings input, inout InputData inputData) { -#if defined(DYNAMICLIGHTMAP_ON) +#if defined(_SCREEN_SPACE_IRRADIANCE) + inputData.bakedGI = SAMPLE_GI(_ScreenSpaceIrradiance, input.positionCS.xy); +#elif defined(DYNAMICLIGHTMAP_ON) inputData.bakedGI = SAMPLE_GI(input.staticLightmapUV, input.dynamicLightmapUV, input.vertexSH, inputData.normalWS); inputData.shadowMask = SAMPLE_SHADOWMASK(input.staticLightmapUV); #elif !defined(LIGHTMAP_ON) && (defined(PROBE_VOLUMES_L1) || defined(PROBE_VOLUMES_L2)) diff --git a/Packages/com.unity.render-pipelines.universal/Shaders/SimpleLitGBufferPass.hlsl b/Packages/com.unity.render-pipelines.universal/Shaders/SimpleLitGBufferPass.hlsl index 2e0c6ca3ba1..f689b5dfc0b 100644 --- a/Packages/com.unity.render-pipelines.universal/Shaders/SimpleLitGBufferPass.hlsl +++ b/Packages/com.unity.render-pipelines.universal/Shaders/SimpleLitGBufferPass.hlsl @@ -110,7 +110,9 @@ void InitializeInputData(Varyings input, half3 normalTS, out InputData inputData void InitializeBakedGIData(Varyings input, inout InputData inputData) { -#if defined(DYNAMICLIGHTMAP_ON) +#if defined(_SCREEN_SPACE_IRRADIANCE) + inputData.bakedGI = SAMPLE_GI(_ScreenSpaceIrradiance, input.positionCS.xy); +#elif defined(DYNAMICLIGHTMAP_ON) inputData.bakedGI = SAMPLE_GI(input.staticLightmapUV, input.dynamicLightmapUV, input.vertexSH, inputData.normalWS); inputData.shadowMask = SAMPLE_SHADOWMASK(input.staticLightmapUV); #elif !defined(LIGHTMAP_ON) && (defined(PROBE_VOLUMES_L1) || defined(PROBE_VOLUMES_L2)) diff --git a/Packages/com.unity.render-pipelines.universal/Shaders/Terrain/TerrainDetailLit.shader b/Packages/com.unity.render-pipelines.universal/Shaders/Terrain/TerrainDetailLit.shader index 22cc161382d..73565f8f65e 100644 --- a/Packages/com.unity.render-pipelines.universal/Shaders/Terrain/TerrainDetailLit.shader +++ b/Packages/com.unity.render-pipelines.universal/Shaders/Terrain/TerrainDetailLit.shader @@ -26,6 +26,7 @@ Shader "Hidden/TerrainEngine/Details/UniversalPipeline/Vertexlit" #pragma multi_compile _ LIGHTMAP_SHADOW_MIXING #pragma multi_compile _ SHADOWS_SHADOWMASK #pragma multi_compile_fragment _ _SCREEN_SPACE_OCCLUSION + #pragma multi_compile_fragment _ _SCREEN_SPACE_IRRADIANCE #pragma multi_compile_fragment _ _LIGHT_COOKIES #pragma multi_compile _ _CLUSTER_LIGHT_LOOP #include_with_pragmas "Packages/com.unity.render-pipelines.core/ShaderLibrary/FoveatedRenderingKeywords.hlsl" @@ -36,6 +37,7 @@ Shader "Hidden/TerrainEngine/Details/UniversalPipeline/Vertexlit" #pragma multi_compile _ DIRLIGHTMAP_COMBINED #pragma multi_compile _ LIGHTMAP_ON #pragma multi_compile_fragment _ LIGHTMAP_BICUBIC_SAMPLING + #pragma multi_compile_fragment _ REFLECTION_PROBE_ROTATION #include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ProbeVolumeVariants.hlsl" #pragma multi_compile _ DEBUG_DISPLAY @@ -75,6 +77,7 @@ Shader "Hidden/TerrainEngine/Details/UniversalPipeline/Vertexlit" #pragma multi_compile _ DIRLIGHTMAP_COMBINED #pragma multi_compile _ LIGHTMAP_ON #pragma multi_compile_fragment _ LIGHTMAP_BICUBIC_SAMPLING + #pragma multi_compile_fragment _ REFLECTION_PROBE_ROTATION #include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ProbeVolumeVariants.hlsl" #pragma multi_compile_fragment _ _GBUFFER_NORMALS_OCT #pragma multi_compile_fragment _ _RENDER_PASS_ENABLED diff --git a/Packages/com.unity.render-pipelines.universal/Shaders/Terrain/TerrainDetailLitPasses.hlsl b/Packages/com.unity.render-pipelines.universal/Shaders/Terrain/TerrainDetailLitPasses.hlsl index fc3f65a8384..06e7fddb117 100644 --- a/Packages/com.unity.render-pipelines.universal/Shaders/Terrain/TerrainDetailLitPasses.hlsl +++ b/Packages/com.unity.render-pipelines.universal/Shaders/Terrain/TerrainDetailLitPasses.hlsl @@ -55,7 +55,9 @@ void InitializeInputData(Varyings input, out InputData inputData) inputData.normalizedScreenSpaceUV = GetNormalizedScreenSpaceUV(input.PositionCS); inputData.positionWS = input.PositionWS; -#if !defined(LIGHTMAP_ON) && (defined(PROBE_VOLUMES_L1) || defined(PROBE_VOLUMES_L2)) +#if defined(_SCREEN_SPACE_IRRADIANCE) + inputData.bakedGI = SAMPLE_GI(_ScreenSpaceIrradiance, inputData.positionCS.xy); +#elif !defined(LIGHTMAP_ON) && (defined(PROBE_VOLUMES_L1) || defined(PROBE_VOLUMES_L2)) inputData.bakedGI = SAMPLE_GI(input.vertexSH, GetAbsolutePositionWS(inputData.positionWS), input.NormalWS.xyz, diff --git a/Packages/com.unity.render-pipelines.universal/Shaders/Terrain/TerrainLit.shader b/Packages/com.unity.render-pipelines.universal/Shaders/Terrain/TerrainLit.shader index 1f511fe57ef..95cb5fad49d 100644 --- a/Packages/com.unity.render-pipelines.universal/Shaders/Terrain/TerrainLit.shader +++ b/Packages/com.unity.render-pipelines.universal/Shaders/Terrain/TerrainLit.shader @@ -77,6 +77,7 @@ Shader "Universal Render Pipeline/Terrain/Lit" #pragma multi_compile_fragment _ _REFLECTION_PROBE_ATLAS #pragma multi_compile_fragment _ _SHADOWS_SOFT _SHADOWS_SOFT_LOW _SHADOWS_SOFT_MEDIUM _SHADOWS_SOFT_HIGH #pragma multi_compile_fragment _ _SCREEN_SPACE_OCCLUSION + #pragma multi_compile_fragment _ _SCREEN_SPACE_IRRADIANCE #pragma multi_compile_fragment _ _DBUFFER_MRT1 _DBUFFER_MRT2 _DBUFFER_MRT3 #pragma multi_compile_fragment _ _LIGHT_COOKIES #include_with_pragmas "Packages/com.unity.render-pipelines.core/ShaderLibrary/FoveatedRenderingKeywords.hlsl" @@ -88,6 +89,7 @@ Shader "Universal Render Pipeline/Terrain/Lit" #pragma multi_compile _ DIRLIGHTMAP_COMBINED #pragma multi_compile _ LIGHTMAP_ON #pragma multi_compile_fragment _ LIGHTMAP_BICUBIC_SAMPLING + #pragma multi_compile_fragment _ REFLECTION_PROBE_ROTATION #include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ProbeVolumeVariants.hlsl" #pragma multi_compile _ DYNAMICLIGHTMAP_ON #pragma multi_compile_fragment _ DEBUG_DISPLAY @@ -173,8 +175,10 @@ Shader "Universal Render Pipeline/Terrain/Lit" #pragma multi_compile _ LIGHTMAP_SHADOW_MIXING #pragma multi_compile _ SHADOWS_SHADOWMASK #pragma multi_compile _ DIRLIGHTMAP_COMBINED + #pragma multi_compile_fragment _ _SCREEN_SPACE_IRRADIANCE #pragma multi_compile _ LIGHTMAP_ON #pragma multi_compile_fragment _ LIGHTMAP_BICUBIC_SAMPLING + #pragma multi_compile_fragment _ REFLECTION_PROBE_ROTATION #pragma multi_compile _ DYNAMICLIGHTMAP_ON #include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ProbeVolumeVariants.hlsl" #pragma multi_compile_fragment _ _GBUFFER_NORMALS_OCT diff --git a/Packages/com.unity.render-pipelines.universal/Shaders/Terrain/TerrainLitAdd.shader b/Packages/com.unity.render-pipelines.universal/Shaders/Terrain/TerrainLitAdd.shader index 4da01e9afdf..063504bd47b 100644 --- a/Packages/com.unity.render-pipelines.universal/Shaders/Terrain/TerrainLitAdd.shader +++ b/Packages/com.unity.render-pipelines.universal/Shaders/Terrain/TerrainLitAdd.shader @@ -80,6 +80,7 @@ Shader "Hidden/Universal Render Pipeline/Terrain/Lit (Add Pass)" #pragma multi_compile _ DIRLIGHTMAP_COMBINED #pragma multi_compile _ LIGHTMAP_ON #pragma multi_compile_fragment _ LIGHTMAP_BICUBIC_SAMPLING + #pragma multi_compile_fragment _ REFLECTION_PROBE_ROTATION #include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ProbeVolumeVariants.hlsl" #pragma multi_compile_instancing #pragma instancing_options assumeuniformscaling nomatrices nolightprobe nolightmap @@ -147,6 +148,7 @@ Shader "Hidden/Universal Render Pipeline/Terrain/Lit (Add Pass)" #pragma multi_compile _ DIRLIGHTMAP_COMBINED #pragma multi_compile _ LIGHTMAP_ON #pragma multi_compile_fragment _ LIGHTMAP_BICUBIC_SAMPLING + #pragma multi_compile_fragment _ REFLECTION_PROBE_ROTATION #include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ProbeVolumeVariants.hlsl" #pragma multi_compile_fragment _ _GBUFFER_NORMALS_OCT #pragma multi_compile_fragment _ _RENDER_PASS_ENABLED diff --git a/Packages/com.unity.render-pipelines.universal/Shaders/Terrain/TerrainLitBase.shader b/Packages/com.unity.render-pipelines.universal/Shaders/Terrain/TerrainLitBase.shader index ce1846ca79e..9c35f4bcac4 100644 --- a/Packages/com.unity.render-pipelines.universal/Shaders/Terrain/TerrainLitBase.shader +++ b/Packages/com.unity.render-pipelines.universal/Shaders/Terrain/TerrainLitBase.shader @@ -58,6 +58,7 @@ Shader "Hidden/Universal Render Pipeline/Terrain/Lit (Base Pass)" #pragma multi_compile _ DIRLIGHTMAP_COMBINED #pragma multi_compile _ LIGHTMAP_ON #pragma multi_compile_fragment _ LIGHTMAP_BICUBIC_SAMPLING + #pragma multi_compile_fragment _ REFLECTION_PROBE_ROTATION #pragma multi_compile _ DYNAMICLIGHTMAP_ON #pragma multi_compile_instancing #pragma instancing_options assumeuniformscaling nomatrices nolightprobe nolightmap @@ -138,6 +139,7 @@ Shader "Hidden/Universal Render Pipeline/Terrain/Lit (Base Pass)" #pragma multi_compile _ DIRLIGHTMAP_COMBINED #pragma multi_compile _ LIGHTMAP_ON #pragma multi_compile_fragment _ LIGHTMAP_BICUBIC_SAMPLING + #pragma multi_compile_fragment _ REFLECTION_PROBE_ROTATION #pragma multi_compile _ DYNAMICLIGHTMAP_ON #pragma multi_compile_fragment _ _GBUFFER_NORMALS_OCT #pragma multi_compile_fragment _ _RENDER_PASS_ENABLED diff --git a/Packages/com.unity.render-pipelines.universal/Shaders/Terrain/TerrainLitPasses.hlsl b/Packages/com.unity.render-pipelines.universal/Shaders/Terrain/TerrainLitPasses.hlsl index c716399e164..002ba7e0ff4 100644 --- a/Packages/com.unity.render-pipelines.universal/Shaders/Terrain/TerrainLitPasses.hlsl +++ b/Packages/com.unity.render-pipelines.universal/Shaders/Terrain/TerrainLitPasses.hlsl @@ -123,7 +123,9 @@ void InitializeBakedGIData(Varyings IN, inout InputData inputData) half3 SH = IN.vertexSH; #endif -#if defined(DYNAMICLIGHTMAP_ON) +#if defined(_SCREEN_SPACE_IRRADIANCE) + inputData.bakedGI = SAMPLE_GI(_ScreenSpaceIrradiance, inputData.positionCS.xy); +#elif defined(DYNAMICLIGHTMAP_ON) inputData.bakedGI = SAMPLE_GI(IN.uvMainAndLM.zw, IN.dynamicLightmapUV, SH, inputData.normalWS); inputData.shadowMask = SAMPLE_SHADOWMASK(IN.uvMainAndLM.zw); #elif !defined(LIGHTMAP_ON) && (defined(PROBE_VOLUMES_L1) || defined(PROBE_VOLUMES_L2)) diff --git a/Packages/com.unity.render-pipelines.universal/Shaders/Terrain/WavingGrass.shader b/Packages/com.unity.render-pipelines.universal/Shaders/Terrain/WavingGrass.shader index 1f5a2ae8145..800b36c96fe 100644 --- a/Packages/com.unity.render-pipelines.universal/Shaders/Terrain/WavingGrass.shader +++ b/Packages/com.unity.render-pipelines.universal/Shaders/Terrain/WavingGrass.shader @@ -38,6 +38,7 @@ Shader "Hidden/TerrainEngine/Details/UniversalPipeline/WavingDoublePass" #pragma multi_compile_fragment _ _ADDITIONAL_LIGHT_SHADOWS #pragma multi_compile_fragment _ _SHADOWS_SOFT _SHADOWS_SOFT_LOW _SHADOWS_SOFT_MEDIUM _SHADOWS_SOFT_HIGH #pragma multi_compile_fragment _ _SCREEN_SPACE_OCCLUSION + #pragma multi_compile_fragment _ _SCREEN_SPACE_IRRADIANCE #pragma multi_compile_fragment _ _LIGHT_COOKIES #include_with_pragmas "Packages/com.unity.render-pipelines.core/ShaderLibrary/FoveatedRenderingKeywords.hlsl" #include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Fog.hlsl" @@ -48,6 +49,7 @@ Shader "Hidden/TerrainEngine/Details/UniversalPipeline/WavingDoublePass" #pragma multi_compile _ DIRLIGHTMAP_COMBINED #pragma multi_compile _ LIGHTMAP_ON #pragma multi_compile_fragment _ LIGHTMAP_BICUBIC_SAMPLING + #pragma multi_compile_fragment _ REFLECTION_PROBE_ROTATION #pragma multi_compile_fragment _ DEBUG_DISPLAY //-------------------------------------- @@ -92,6 +94,7 @@ Shader "Hidden/TerrainEngine/Details/UniversalPipeline/WavingDoublePass" #pragma multi_compile_fragment _ _RENDER_PASS_ENABLED #pragma multi_compile_fragment _ _GBUFFER_NORMALS_OCT #pragma multi_compile _ EVALUATE_SH_MIXED EVALUATE_SH_VERTEX + #pragma multi_compile_fragment _ _SCREEN_SPACE_IRRADIANCE #include_with_pragmas "Packages/com.unity.render-pipelines.core/ShaderLibrary/FoveatedRenderingKeywords.hlsl" #include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ProbeVolumeVariants.hlsl" #include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/RenderingLayers.hlsl" @@ -100,6 +103,7 @@ Shader "Hidden/TerrainEngine/Details/UniversalPipeline/WavingDoublePass" // Unity defined keywords #pragma multi_compile _ LIGHTMAP_ON #pragma multi_compile_fragment _ LIGHTMAP_BICUBIC_SAMPLING + #pragma multi_compile_fragment _ REFLECTION_PROBE_ROTATION #pragma multi_compile _ SHADOWS_SHADOWMASK #pragma multi_compile _ DIRLIGHTMAP_COMBINED #pragma multi_compile _ LIGHTMAP_SHADOW_MIXING diff --git a/Packages/com.unity.render-pipelines.universal/Shaders/Terrain/WavingGrassBillboard.shader b/Packages/com.unity.render-pipelines.universal/Shaders/Terrain/WavingGrassBillboard.shader index b961e6985bd..86f24509d19 100644 --- a/Packages/com.unity.render-pipelines.universal/Shaders/Terrain/WavingGrassBillboard.shader +++ b/Packages/com.unity.render-pipelines.universal/Shaders/Terrain/WavingGrassBillboard.shader @@ -35,6 +35,7 @@ Shader "Hidden/TerrainEngine/Details/UniversalPipeline/BillboardWavingDoublePass #pragma multi_compile _ LIGHTMAP_SHADOW_MIXING #pragma multi_compile _ SHADOWS_SHADOWMASK #pragma multi_compile _ _CLUSTER_LIGHT_LOOP + #pragma multi_compile_fragment _ _SCREEN_SPACE_IRRADIANCE #include_with_pragmas "Packages/com.unity.render-pipelines.core/ShaderLibrary/FoveatedRenderingKeywords.hlsl" #include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Fog.hlsl" @@ -43,6 +44,7 @@ Shader "Hidden/TerrainEngine/Details/UniversalPipeline/BillboardWavingDoublePass #pragma multi_compile _ DIRLIGHTMAP_COMBINED #pragma multi_compile _ LIGHTMAP_ON #pragma multi_compile_fragment _ LIGHTMAP_BICUBIC_SAMPLING + #pragma multi_compile_fragment _ REFLECTION_PROBE_ROTATION #pragma multi_compile_fragment _ DEBUG_DISPLAY //-------------------------------------- @@ -83,6 +85,7 @@ Shader "Hidden/TerrainEngine/Details/UniversalPipeline/BillboardWavingDoublePass #pragma multi_compile_fragment _ _SHADOWS_SOFT _SHADOWS_SOFT_LOW _SHADOWS_SOFT_MEDIUM _SHADOWS_SOFT_HIGH #pragma multi_compile_fragment _ _RENDER_PASS_ENABLED #pragma multi_compile_fragment _ _GBUFFER_NORMALS_OCT + #pragma multi_compile_fragment _ _SCREEN_SPACE_IRRADIANCE #include_with_pragmas "Packages/com.unity.render-pipelines.core/ShaderLibrary/FoveatedRenderingKeywords.hlsl" // ------------------------------------- diff --git a/Packages/com.unity.render-pipelines.universal/Shaders/Terrain/WavingGrassPasses.hlsl b/Packages/com.unity.render-pipelines.universal/Shaders/Terrain/WavingGrassPasses.hlsl index bdb459a4725..ebbbe68f6e4 100644 --- a/Packages/com.unity.render-pipelines.universal/Shaders/Terrain/WavingGrassPasses.hlsl +++ b/Packages/com.unity.render-pipelines.universal/Shaders/Terrain/WavingGrassPasses.hlsl @@ -76,7 +76,9 @@ void InitializeInputData(GrassVertexOutput input, out InputData inputData) #endif inputData.vertexLighting = input.fogFactorAndVertexLight.yzw; -#if defined(DYNAMICLIGHTMAP_ON) +#if defined(_SCREEN_SPACE_IRRADIANCE) + inputData.bakedGI = SAMPLE_GI(_ScreenSpaceIrradiance, inputData.positionCS.xy); +#elif defined(DYNAMICLIGHTMAP_ON) inputData.bakedGI = SAMPLE_GI(input.lightmapUV, NOT_USED, input.vertexSH, inputData.normalWS); inputData.shadowMask = SAMPLE_SHADOWMASK(input.lightmapUV); #elif !defined(LIGHTMAP_ON) && (defined(PROBE_VOLUMES_L1) || defined(PROBE_VOLUMES_L2)) diff --git a/Packages/com.unity.render-pipelines.universal/Shaders/Unlit.shader b/Packages/com.unity.render-pipelines.universal/Shaders/Unlit.shader index ad92dddc18b..22bc54765fc 100644 --- a/Packages/com.unity.render-pipelines.universal/Shaders/Unlit.shader +++ b/Packages/com.unity.render-pipelines.universal/Shaders/Unlit.shader @@ -127,6 +127,7 @@ Shader "Universal Render Pipeline/Unlit" #pragma multi_compile_fragment _ _DBUFFER_MRT1 _DBUFFER_MRT2 _DBUFFER_MRT3 #pragma multi_compile _ LOD_FADE_CROSSFADE #pragma multi_compile_fragment _ _GBUFFER_NORMALS_OCT + #pragma multi_compile_fragment _ SHADOWS_SHADOWMASK #include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/RenderingLayers.hlsl" //-------------------------------------- diff --git a/Packages/com.unity.render-pipelines.universal/Shaders/UnlitGBufferPass.hlsl b/Packages/com.unity.render-pipelines.universal/Shaders/UnlitGBufferPass.hlsl index 7905254a4f1..eca73469837 100644 --- a/Packages/com.unity.render-pipelines.universal/Shaders/UnlitGBufferPass.hlsl +++ b/Packages/com.unity.render-pipelines.universal/Shaders/UnlitGBufferPass.hlsl @@ -30,8 +30,8 @@ void InitializeInputData(Varyings input, out InputData inputData) { inputData = (InputData)0; - inputData.normalWS = NormalizeNormalPerPixel(input.normalWS); - + inputData.positionCS = input.positionCS; + inputData.normalWS = normalize(input.normalWS); inputData.positionWS = float3(0, 0, 0); inputData.viewDirectionWS = half3(0, 0, 1); inputData.shadowCoord = 0; diff --git a/Packages/com.unity.render-pipelines.universal/Shaders/XR/XRMotionVector.shader b/Packages/com.unity.render-pipelines.universal/Shaders/XR/XRMotionVector.shader index 66dca551c20..a9ca6fb42e1 100644 --- a/Packages/com.unity.render-pipelines.universal/Shaders/XR/XRMotionVector.shader +++ b/Packages/com.unity.render-pipelines.universal/Shaders/XR/XRMotionVector.shader @@ -34,6 +34,10 @@ Shader "Hidden/Universal Render Pipeline/XR/XRMotionVector" // Includes #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl" + // ------------------------------------- + // Constants + float _SpaceWarpNDCModifier; + // ------------------------------------- // Structs struct Attributes @@ -45,7 +49,8 @@ Shader "Hidden/Universal Render Pipeline/XR/XRMotionVector" struct Varyings { float4 position : SV_POSITION; - float3 posWS : TEXCOORD0; + float4 posCS : TEXCOORD0; + float4 prevPosCS : TEXCOORD1; UNITY_VERTEX_OUTPUT_STEREO }; @@ -57,13 +62,16 @@ Shader "Hidden/Universal Render Pipeline/XR/XRMotionVector" UNITY_SETUP_INSTANCE_ID(input); UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(output); - output.position = GetFullScreenTriangleVertexPosition(input.vertexID); - - float depth = 1 - UNITY_NEAR_CLIP_VALUE; - output.position.z = depth; + output.position = GetFullScreenTriangleVertexPosition(input.vertexID, 1 - UNITY_NEAR_CLIP_VALUE); // Reconstruct world position - output.posWS = ComputeWorldSpacePosition(output.position.xy, depth, UNITY_MATRIX_I_VP); + // We can use the clip space as is because contrary to the convention mentioned in Common.hlsl (RP Core), + // this clip space is already Y-up + float3 posWS = ComputeWorldSpacePosition(output.position, UNITY_MATRIX_I_VP); + + // Multiply with current and previous non-jittered view projection + output.posCS = mul(_NonJitteredViewProjMatrix, float4(posWS, 1.0)); + output.prevPosCS = mul(_PrevViewProjMatrix, float4(posWS, 1.0)); return output; } @@ -74,17 +82,17 @@ Shader "Hidden/Universal Render Pipeline/XR/XRMotionVector" { UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(input); - // Multiply with current and previous non-jittered view projection - float4 posCS = mul(_NonJitteredViewProjMatrix, float4(input.posWS.xyz, 1.0)); - float4 prevPosCS = mul(_PrevViewProjMatrix, float4(input.posWS.xyz, 1.0)); - // Non-uniform raster needs to keep the posNDC values in float to avoid additional conversions // since uv remap functions use floats - float3 posNDC = posCS.xyz * rcp(posCS.w); - float3 prevPosNDC = prevPosCS.xyz * rcp(prevPosCS.w); + float3 posNDC = input.posCS.xyz * rcp(input.posCS.w); + float3 prevPosNDC = input.prevPosCS.xyz * rcp(input.prevPosCS.w); // Calculate forward velocity float3 velocity = (posNDC - prevPosNDC); + + #if UNITY_UV_STARTS_AT_TOP + velocity.y = velocity.y * _SpaceWarpNDCModifier; + #endif return float4(velocity.xyz, 0); } diff --git a/Packages/com.unity.render-pipelines.universal/Tests/Editor/NativeRenderPassTests.cs b/Packages/com.unity.render-pipelines.universal/Tests/Editor/NativeRenderPassTests.cs index 34407bd9beb..30dabb07d2f 100644 --- a/Packages/com.unity.render-pipelines.universal/Tests/Editor/NativeRenderPassTests.cs +++ b/Packages/com.unity.render-pipelines.universal/Tests/Editor/NativeRenderPassTests.cs @@ -1,3 +1,4 @@ +#if URP_COMPATIBILITY_MODE using System; using NUnit.Framework; using UnityEngine.TestTools; @@ -125,7 +126,5 @@ public void OverLimitRenderPassInNRP() } } - - - } +#endif diff --git a/Packages/com.unity.render-pipelines.universal/Tests/Editor/NoLeaksOnEnterLeavePlaymode.cs b/Packages/com.unity.render-pipelines.universal/Tests/Editor/NoLeaksOnEnterLeavePlaymode.cs index 82a53e5ba95..e70e76510d5 100644 --- a/Packages/com.unity.render-pipelines.universal/Tests/Editor/NoLeaksOnEnterLeavePlaymode.cs +++ b/Packages/com.unity.render-pipelines.universal/Tests/Editor/NoLeaksOnEnterLeavePlaymode.cs @@ -104,12 +104,24 @@ public IEnumerator NoResourceLeaks() var newTextures = Resources.FindObjectsOfTypeAll(typeof(Texture)); string[] materialBlackList = { + // Debug materials "Hidden/Universal/HDRDebugView", "Hidden/Universal Render Pipeline/Debug/DebugReplacement", - "Roboto Mono - Regular Material", // Font leaks - "Inter - Regular Material" // https://jira.unity3d.com/browse/UUM-28555 - }; + // Fonts are intentionally preserved in the editor for performance reasons. + "Apple Color Emoji - Regular Material", + "Arial - Regular Material", + "Arial Unicode MS - Regular Material", + "Helvetica Neue - Regular Material", + "Inter - Regular Material", // UUM-28555 + "Malgun Gothic - Regular Material", + "Microsoft Sans Serif - Regular Material", + "Microsoft YaHei - Regular Material", + "MS Gothic - Regular Material", + "Nirmala UI - Regular Material", + "Roboto Mono - Regular Material", + "Segoe UI Emoji - Regular Material" + }; var oldMaterialNames = materialNames.Split(";"); var materialsPerNameOld = CountResources(oldMaterialNames); var newMaterialNames = newMats.Select(m => m.name).ToArray(); @@ -126,8 +138,18 @@ public IEnumerator NoResourceLeaks() CompareResourceLists(meshesPerNameOld, meshesPerNameNew, meshBlackList); string[] textureBlackList = { - "Inter - Regular Atlas", // more fonts leakage :-\ - "Roboto Mono - Regular Atlas", // more fonts leakage :-\ + "Apple Color Emoji - Regular Atlas", + "Arial - Regular Atlas", + "Arial Unicode MS - Regular Atlas", + "Helvetica Neue - Regular Atlas", + "Inter - Regular Atlas", + "Malgun Gothic - Regular Atlas", + "Microsoft Sans Serif - Regular Atlas", + "Microsoft YaHei - Regular Atlas", + "MS Gothic - Regular Atlas", + "Nirmala UI - Regular Atlas", + "Roboto Mono - Regular Atlas", + "Segoe UI Emoji - Regular Atlas" }; var oldTextureNames = textureNames.Split(";"); diff --git a/Packages/com.unity.render-pipelines.universal/Tests/Editor/RenderPassCullingTests.cs b/Packages/com.unity.render-pipelines.universal/Tests/Editor/RenderPassCullingTests.cs index 911e861cb7b..522dd389760 100644 --- a/Packages/com.unity.render-pipelines.universal/Tests/Editor/RenderPassCullingTests.cs +++ b/Packages/com.unity.render-pipelines.universal/Tests/Editor/RenderPassCullingTests.cs @@ -22,16 +22,18 @@ public override void RecordRenderGraph(RenderGraph renderGraph, ContextContainer var cullingResults = cullContextData.Cull(ref cullingParameters); - Assert.IsTrue(cullingResults != null); - Assert.IsTrue(cullingResults.visibleLights.Length != 0); + var lightsInScene = Object.FindObjectsByType(FindObjectsSortMode.None); + Assert.IsTrue(cullingResults.visibleLights.Length == lightsInScene.Length); } +#if URP_COMPATIBILITY_MODE /// - [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] + [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete)] public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) { // This path does not implement the CullContextData. } +#endif } class RenderGraphTests @@ -42,6 +44,8 @@ class RenderGraphTests CullingTestRenderPass m_TestRenderPass; ScriptableRenderContext? m_RenderContext; + Camera m_Camera; + List m_GameObjects = new(); [SetUp] public void Setup() @@ -49,21 +53,6 @@ public void Setup() m_TestRenderPass = new CullingTestRenderPass(); RenderPipelineManager.beginCameraRendering += OnBeginCamera; m_RenderContext = null; - } - - [TearDown] - public void TearDown() - { - m_TestRenderPass = null; - m_RenderContext = null; - RenderPipelineManager.beginCameraRendering -= OnBeginCamera; - } - - [Test] - public void RenderPassCullingAPIWorks() - { - if (DisableTestWhenExecutedOnNonURPProject()) - return; // We need a real ScriptableRenderContext and a camera to execute the render graph // add the default camera @@ -72,48 +61,48 @@ public void RenderPassCullingAPIWorks() hideFlags = HideFlags.HideAndDontSave }; cameraGO.tag = "MainCamera"; - var camera = cameraGO.AddComponent(); + m_Camera = cameraGO.AddComponent(); - var goToRemove = new List(); - goToRemove.Add(cameraGO); + m_GameObjects.Add(cameraGO); for (int i = 0; i < kLightCount; ++i) { - var lightGO = new GameObject("Light_GameObject" + i) - { - hideFlags = HideFlags.HideAndDontSave - }; - + var lightGO = new GameObject("Light_GameObject" + i); var light = lightGO.AddComponent(); light.type = LightType.Point; - - goToRemove.Add(lightGO); + m_GameObjects.Add(lightGO); } + } - SubmitCameraRenderRequest(camera); + [TearDown] + public void TearDown() + { + m_TestRenderPass = null; + m_RenderContext = null; + RenderPipelineManager.beginCameraRendering -= OnBeginCamera; - foreach (var obj in goToRemove) + foreach (var obj in m_GameObjects) { GameObject.DestroyImmediate(obj); } } [Test] - public void RenderPassCullingAPIDoesNotAlloc() + public void RenderPassCullingAPIWorks() { if (DisableTestWhenExecutedOnNonURPProject()) return; - // We need a real ScriptableRenderContext and a camera to execute the render graph - // add the default camera - var cameraGO = new GameObject("Culling_GameObject") - { - hideFlags = HideFlags.HideAndDontSave - }; - cameraGO.tag = "MainCamera"; - var camera = cameraGO.AddComponent(); + SubmitCameraRenderRequest(m_Camera); + } + + [Test] + public void RenderPassCullingAPIDoesNotAlloc() + { + if (DisableTestWhenExecutedOnNonURPProject()) + return; - SubmitCameraRenderRequest(camera); + SubmitCameraRenderRequest(m_Camera); Assert.IsTrue(m_RenderContext != null); @@ -124,8 +113,6 @@ public void RenderPassCullingAPIDoesNotAlloc() { cullData.SetRenderContext(m_RenderContext.Value); }); - - GameObject.DestroyImmediate(cameraGO); } bool DisableTestWhenExecutedOnNonURPProject() diff --git a/Packages/com.unity.render-pipelines.universal/Tests/Editor/RenderTextureDescriptorDimensionsTests.cs b/Packages/com.unity.render-pipelines.universal/Tests/Editor/RenderTextureDescriptorDimensionsTests.cs index 699c9ef4e17..99ff279769f 100644 --- a/Packages/com.unity.render-pipelines.universal/Tests/Editor/RenderTextureDescriptorDimensionsTests.cs +++ b/Packages/com.unity.render-pipelines.universal/Tests/Editor/RenderTextureDescriptorDimensionsTests.cs @@ -104,6 +104,7 @@ public void TextureDescriptor_FromCameraData(RenderScaleTestCase testCase) CheckDimensions(desc, testCase); } +#if URP_COMPATIBILITY_MODE public class TestRTDimensionNativeRenderPass : ScriptableRenderPass {} [TestCaseSource(nameof(TestCasesTextureDimension))] @@ -119,5 +120,6 @@ public void TextureDescriptor_FromNativeRenderPass(RenderScaleTestCase testCase) ScriptableRenderer.GetRenderTextureDescriptor(m_CameraData, nativeRenderPass, out var desc); CheckDimensions(desc, testCase); } +#endif } } diff --git a/Packages/com.unity.render-pipelines.universal/Tests/Editor/ShaderPrefilteringTests.cs b/Packages/com.unity.render-pipelines.universal/Tests/Editor/ShaderPrefilteringTests.cs index 6e4e1e9aed8..bd9aea8ca4f 100644 --- a/Packages/com.unity.render-pipelines.universal/Tests/Editor/ShaderPrefilteringTests.cs +++ b/Packages/com.unity.render-pipelines.universal/Tests/Editor/ShaderPrefilteringTests.cs @@ -19,6 +19,7 @@ class TestHelper internal bool stripHDRKeywords = true; internal bool stripDebugDisplay = true; internal bool stripBicubicLightmapSampling = true; + internal bool stripReflectionProbeRotation = true; internal bool stripScreenCoordOverride = true; internal bool stripUnusedVariants = true; internal List ssaoRendererFeatures = new List(); @@ -31,7 +32,7 @@ public TestHelper() internal ShaderPrefilteringData CreatePrefilteringSettings(ShaderFeatures shaderFeatures) { - return ShaderBuildPreprocessor.CreatePrefilteringSettings(ref shaderFeatures, isAssetUsingforward, everyRendererHasSSAO, stripXRKeywords, stripHDRKeywords, stripDebugDisplay, stripScreenCoordOverride, stripBicubicLightmapSampling, stripUnusedVariants, ref ssaoRendererFeatures); + return ShaderBuildPreprocessor.CreatePrefilteringSettings(ref shaderFeatures, isAssetUsingforward, everyRendererHasSSAO, stripXRKeywords, stripHDRKeywords, stripDebugDisplay, stripScreenCoordOverride, stripBicubicLightmapSampling, stripReflectionProbeRotation, stripUnusedVariants, ref ssaoRendererFeatures); } internal void AssertPrefilteringData(ShaderPrefilteringData expected, ShaderPrefilteringData actual) @@ -253,6 +254,18 @@ public void TestCreatePrefilteringSettings_GlobalSettings() actual = helper.CreatePrefilteringSettings(ShaderFeatures.None); helper.AssertPrefilteringData(expected, actual); + // Reflection Probe Rotation + helper.stripReflectionProbeRotation = false; + expected = helper.defaultPrefilteringData; + expected.stripReflectionProbeRotation = false; + actual = helper.CreatePrefilteringSettings(ShaderFeatures.None); + helper.AssertPrefilteringData(expected, actual); + + helper.stripReflectionProbeRotation = true; + expected = helper.defaultPrefilteringData; + actual = helper.CreatePrefilteringSettings(ShaderFeatures.None); + helper.AssertPrefilteringData(expected, actual); + // Screen Coord Override helper.stripScreenCoordOverride = false; expected = helper.defaultPrefilteringData; diff --git a/Packages/com.unity.render-pipelines.universal/Tests/Editor/ShaderScriptableStripperTests.cs b/Packages/com.unity.render-pipelines.universal/Tests/Editor/ShaderScriptableStripperTests.cs index 542db9633c6..87fd36b065d 100644 --- a/Packages/com.unity.render-pipelines.universal/Tests/Editor/ShaderScriptableStripperTests.cs +++ b/Packages/com.unity.render-pipelines.universal/Tests/Editor/ShaderScriptableStripperTests.cs @@ -27,6 +27,7 @@ internal struct TestStrippingData : IShaderScriptableStrippingData public bool stripDebugDisplayShaders { get; set; } public bool stripScreenCoordOverrideVariants { get; set; } public bool stripBicubicLightmapSamplingVariants { get; set; } + public bool stripReflectionProbeRotationVariants { get; set; } public bool stripUnusedVariants { get; set; } public bool stripUnusedPostProcessingVariants { get; set; } public bool stripUnusedXRVariants { get; set; } diff --git a/Packages/com.unity.render-pipelines.universal/Tests/Editor/ShaderStripToolTests.cs b/Packages/com.unity.render-pipelines.universal/Tests/Editor/ShaderStripToolTests.cs index 47d7aca9e52..bdc56e6804f 100644 --- a/Packages/com.unity.render-pipelines.universal/Tests/Editor/ShaderStripToolTests.cs +++ b/Packages/com.unity.render-pipelines.universal/Tests/Editor/ShaderStripToolTests.cs @@ -26,6 +26,7 @@ internal struct TestStrippingData : IShaderScriptableStrippingData public bool stripDebugDisplayShaders { get; set; } public bool stripScreenCoordOverrideVariants { get; set; } public bool stripBicubicLightmapSamplingVariants { get; set; } + public bool stripReflectionProbeRotationVariants { get; set; } public bool stripUnusedVariants { get; set; } public bool stripUnusedPostProcessingVariants { get; set; } public bool stripUnusedXRVariants { get; set; } diff --git a/Packages/com.unity.render-pipelines.universal/Tests/Editor/URPGlobalSettingsMigrationTests/RenderGraphSettingsMigrationTest.cs b/Packages/com.unity.render-pipelines.universal/Tests/Editor/URPGlobalSettingsMigrationTests/RenderGraphSettingsMigrationTest.cs index 7695677fa4c..562c781fb2c 100644 --- a/Packages/com.unity.render-pipelines.universal/Tests/Editor/URPGlobalSettingsMigrationTests/RenderGraphSettingsMigrationTest.cs +++ b/Packages/com.unity.render-pipelines.universal/Tests/Editor/URPGlobalSettingsMigrationTests/RenderGraphSettingsMigrationTest.cs @@ -22,7 +22,12 @@ public void SetUp(UniversalRenderPipelineGlobalSettings globalSettingsAsset, public bool IsMigrationCorrect(RenderGraphSettings settings, out string message) { message = string.Empty; +#if URP_COMPATIBILITY_MODE return !settings.enableRenderCompatibilityMode; +#else + // Without URP_COMPATIBILITY_MODE define, this should always return false regardless of migration. + return settings.enableRenderCompatibilityMode == false; +#endif } } @@ -41,7 +46,12 @@ public void SetUp(UniversalRenderPipelineGlobalSettings globalSettingsAsset, public bool IsMigrationCorrect(RenderGraphSettings settings, out string message) { message = string.Empty; +#if URP_COMPATIBILITY_MODE return settings.enableRenderCompatibilityMode; +#else + // Without URP_COMPATIBILITY_MODE define, this should always return false regardless of migration. + return settings.enableRenderCompatibilityMode == false; +#endif } } diff --git a/Packages/com.unity.render-pipelines.universal/package.json b/Packages/com.unity.render-pipelines.universal/package.json index 9b0760df1a0..db8c67b159a 100644 --- a/Packages/com.unity.render-pipelines.universal/package.json +++ b/Packages/com.unity.render-pipelines.universal/package.json @@ -20,7 +20,7 @@ "samples": [ { "displayName": "URP Package Samples", - "description": "Collection of scenes showcasing different features of the Universal Render Pipeline.", + "description": "Collection of scenes showcasing different features of the Universal Render Pipeline.\n \nTo setup the project to use the samples, the URP Package Samples/SharedAssets/Settings/PackageSamplesURPAsset.asset has to be assigned in the Project Settings/Graphics/Set Default Render Pipeline Asset/Default Render pipeline and/or in the Project Settings/Quality/Rendering/Render Pipeline Asset.", "path": "Samples~/URPPackageSamples" }, { diff --git a/Packages/com.unity.shadergraph/Documentation~/Append-Node.md b/Packages/com.unity.shadergraph/Documentation~/Append-Node.md index 28c06c8730d..1550eddd367 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Append-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Append-Node.md @@ -17,6 +17,14 @@ Input **A** channels take priority over input **B** to combine up to a maximum o | B | Input | Dynamic | None | Second input value | | Out | Output | Dynamic | None | Combined vector from A and B | +## Example graph usage + +In the following example, an **Append** node combines a **Vector 2** and a **Float**. The resulting output vector has 3 channels: the **X** and **Y** from the **Vector 2**, and the **X** from the **Float**. + +Notice that with an Append node, you don't need to use a Split node to break up the Vector 2 into individual channels, then a Combine node to combine the 3 separate channels. + +![An image of the Graph window that shows a Vector 2 node and a Float node with their outputs connected to the inputs of an Append node.](images/sg-append-node-example.png) + ## Generated Code Example The following example code represents one possible outcome of this node for different inputs combinations. diff --git a/Packages/com.unity.shadergraph/Documentation~/Artistic-Nodes.md b/Packages/com.unity.shadergraph/Documentation~/Artistic-Nodes.md index e072a2aea4e..5ec28680436 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Artistic-Nodes.md +++ b/Packages/com.unity.shadergraph/Documentation~/Artistic-Nodes.md @@ -5,16 +5,16 @@ |[Channel Mixer](Channel-Mixer-Node.md)| [Contrast](Contrast-Node.md) | |:---------:|:---------:| -|![Image](images/ChannelMixerNodeThumb.png)|![](images/ContrastNodeThumb.png)| +|![A node-based visual interface with a Channel Mixer block connected to a 3-component vector input labeled X 0, Y 0, Z 0, where only the red (R) channel is fully enabled (set to 1) while green (G) and blue (B) are set to 0, resulting in an output that isolates the red channel.](images/ChannelMixerNodeThumb.png)|![A node-based setup featuring a Contrast block connected to two inputs: a 3-component vector input set to (0, 0, 0) and a single contrast value set to 1, resulting in an output where no visible contrast is applied due to the black input vector.](images/ContrastNodeThumb.png)| |Controls the amount each of the channels of input In contribute to each of the output channels.|Adjusts the contrast of input In by the amount of input Contrast.| |[**Hue**](Hue-Node.md)|[**Invert Colors**](Invert-Colors-Node.md)| -|![Image](images/HueNodeThumb.png)|![Image](images/InvertColorsNodeThumb.png)| +|![A Hue block. A (0,0,0) Vector3 is connected to the In(3) slot and the 0 scalar value is connected to the Offset(1) slot. No value is connected to the Out(3) slot. The Degrees option is selected in the Range area.](images/HueNodeThumb.png)|![An Invert Colors block. A 0 scalar is connected to the In(1) slot. No value is connected to the Out (1) slot. A Red checkbox is unselected. The Green, Blue, and Alpha checkboxes are grayed out.](images/InvertColorsNodeThumb.png)| |Offsets the hue of input In by the amount of input Offset.|Inverts the colors of input In on a per channel basis.| |[**Replace Color**](Replace-Color-Node.md)|[**Saturation**](Saturation-Node.md)| -|![Image](images/ReplaceColorNodeThumb.png)|![Image](images/SaturationNodeThumb.png)| +|![A Replace Color block. A (0,0,0) Vector3 is connected to the In(3) slot and 0 scalar values are connected to the Range(1) and Fuzziness(1) slots. Empty values are connected to the From (3) and To(3) slots. No value is connected to the Out(3) slot.](images/ReplaceColorNodeThumb.png)|![A Saturation block. A (0,0,0) Vector3 is connected to the In(3) slot and a 0 scalar value is connected to the Saturation(1) slot. No value is connected to the Out(3) slot.](images/SaturationNodeThumb.png)| |Replaces values in input In equal to input From to the value of input To.|Adjusts the saturation of input In by the amount of input Saturation.| |[**White Balance**](White-Balance-Node.md)|| -|![Image](images/WhiteBalanceNodeThumb.png)|| +|![A White Balance block. A (0,0,0) Vector3 is connected to the In(3) slot and 0 scalar values are connected to the Temperature(1) and Tint(1) slots. No value is connected to the Out(3) slot.](images/WhiteBalanceNodeThumb.png)|| |Adjusts the temperature and tint of input In by the amount of inputs Temperature and Tint respectively.|| @@ -23,7 +23,7 @@ |[Blend](Blend-Node.md)| |:---------:| -|![Image](images/BlendNodeThumb.png)| +|![A Blend block. A 0 scalar value is connected to the Base(1), Blend(1), and Opacity(1) slots. No value is connected to the Out(1) slot. The Overlay option is selected in the Mode area.](images/BlendNodeThumb.png)| |Blends the value of input Blend onto input Base using the blending mode defined by parameter Mode.| @@ -32,7 +32,7 @@ |[Dither](Dither-Node.md)| |:---------:| -|![Image](images/DitherNodeThumb.png)| +|![](images/DitherNodeThumb.png)| |Dither is an intentional form of noise used to randomize quantization error. It is used to prevent large-scale patterns such as color banding in images..| @@ -42,7 +42,7 @@ |[Channel Mask](Channel-Mask-Node.md)| [Color Mask](Color-Mask-Node.md) | |:---------:|:---------:| -|![Image](images/ChannelMaskNodeThumb.png)|![](images/ColorMaskNodeThumb.png)| +|![](images/ChannelMaskNodeThumb.png)|![](images/ColorMaskNodeThumb.png)| |Masks values of input In on channels selected in dropdown Channels.|Creates a mask from values in input In equal to input Mask Color.| @@ -52,10 +52,10 @@ |[Normal Blend](Normal-Blend-Node.md)| [Normal From Height](Normal-From-Height-Node.md) | |:---------:|:---------:| -|![Image](images/NormalBlendNodeThumb.png)|![](images/NormalFromHeightNodeThumb.png)| +|![](images/NormalBlendNodeThumb.png)|![](images/NormalFromHeightNodeThumb.png)| |Blends two normal maps defined by inputs A and B together.|Creates a normal map from a height map defined by input Texture.| |[**Normal Strength**](Normal-Strength-Node.md)|[**Normal Unpack**](Normal-Unpack-Node.md)| -|![Image](images/NormalStrengthNodeThumb.png)|![Image](images/NormalUnpackNodeThumb.png)| +|![](images/NormalStrengthNodeThumb.png)|![](images/NormalUnpackNodeThumb.png)| |Adjusts the strength of the normal map defined by input In by the amount of input Strength.|Unpacks a normal map defined by input In.| @@ -65,5 +65,5 @@ | [Colorspace Conversion](Colorspace-Conversion-Node.md) | | :----------------------------------------------------------: | -| ![Image](images/ColorspaceConversionNodeThumb.png) | +| ![](images/ColorspaceConversionNodeThumb.png) | | Returns the result of converting the value of input In from one colorspace space to another. | diff --git a/Packages/com.unity.shadergraph/Documentation~/Bitangent-Vector-Node.md b/Packages/com.unity.shadergraph/Documentation~/Bitangent-Vector-Node.md index 012e2aca2d4..4227242827e 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Bitangent-Vector-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Bitangent-Vector-Node.md @@ -2,7 +2,11 @@ ## Description -Provides access to the mesh vertex or fragment's **Bitangent Vector**, depending on the effective [Shader Stage](Shader-Stage.md) of the graph section the [Node](Node.md) is part of. The coordinate space of the output value can be selected with the **Space** dropdown parameter. +Provides access to the mesh vertex or fragment's **Bitangent Vector**, depending on the effective [Shader Stage](Shader-Stage.md) of the graph section the [Node](Node.md) is part of. + +The bitangent vector is derived from the normal and tangent vectors and is orthogonal to both. The three vectors provide a reference frame to perform complex light calculations, for example. + +You can select the coordinate space of the output with the **Space** dropdown parameter. ## Ports diff --git a/Packages/com.unity.shadergraph/Documentation~/Color-Modes.md b/Packages/com.unity.shadergraph/Documentation~/Color-Modes.md index c5204fe4826..27ff10003e5 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Color-Modes.md +++ b/Packages/com.unity.shadergraph/Documentation~/Color-Modes.md @@ -4,8 +4,6 @@ Shader Graph can display colors on nodes in your graph to improve readability. This feature uses **Color Modes** to change which colors to display in the graph. Use the **Color Mode:** drop-down menu in the top right corner of the [Shader Graph Window](Shader-Graph-Window.md) to change the **Color Modes**. -![](images/Shader-Graph-Toolbar.png) - ## Modes | Name | Description | @@ -20,19 +18,19 @@ Shader Graph can display colors on nodes in your graph to improve readability. T This mode displays colors on the nodes based on their category. See the [Node Library](Node-Library.md) to learn about the different categories available. -![](images/Color-Mode-Category.png) +![A screenshot of Unity's Shader Graph in Category Color Mode, where each node is color-coded based on its function. Artistic nodes appear in orange, #DB773B, channel-related nodes in green, #97D13D, input nodes in red, #CB3022, math operations in blue, #4B92F3, procedural elements in purple, #9C4FFF, utility nodes in gray, #AEAEAE, and UV-related nodes in teal, #08D78B.](images/Color-Mode-Category.png) The table below lists current categories and their corresponding colors. -| Name | Color | Hex Value | -|:-----------|:---------------------------------------------------------|:----------| -| Artistic | ![#DB773B](https://placehold.it/15/DB773B/000000?text=+) | #DB773B | -| Channel | ![#97D13D](https://placehold.it/15/97D13D/000000?text=+) | #97D13D | -| Input | ![#CB3022](https://placehold.it/15/CB3022/000000?text=+) | #CB3022 | -| Math | ![#4B92F3](https://placehold.it/15/4B92F3/000000?text=+) | #4B92F3 | -| Procedural | ![#9C4FFF](https://placehold.it/15/9C4FFF/000000?text=+) | #9C4FFF | -| Utility | ![#AEAEAE](https://placehold.it/15/AEAEAE/000000?text=+) | #AEAEAE | -| UV | ![#08D78B](https://placehold.it/15/08D78B/000000?text=+) | #08D78B | +| Name | Color Hex Value | +|:-----------|:----------------| +| Artistic | #DB773B | +| Channel | #97D13D | +| Input | #CB3022 | +| Math | #4B92F3 | +| Procedural | #9C4FFF | +| Utility | #AEAEAE | +| UV | #08D78B | **Note:** [Sub Graph](Sub-Graph.md) nodes in a main [Shader Graph](index.md) fall in the Utility category. If you select **Category** mode, all Sub Graphs use the Utility color. @@ -51,7 +49,6 @@ To set a custom color for a node, right-click on the target node to bring up the | Change... |Brings up a color picker menu and lets you set your own custom color on the node. | | Reset | Removes the currently selected color and sets it to the default gray. | -![](images/Color-Mode-User-Defined.png) ## Overriding Default Colors diff --git a/Packages/com.unity.shadergraph/Documentation~/Create-Shader-Graph.md b/Packages/com.unity.shadergraph/Documentation~/Create-Shader-Graph.md index 3b0a32c6085..9db905525d9 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Create-Shader-Graph.md +++ b/Packages/com.unity.shadergraph/Documentation~/Create-Shader-Graph.md @@ -1,23 +1,22 @@ -# Creating a new Shader Graph Asset +# Creating a new shader graph asset -After you configure an SRP, you can create a new Shader Graph Asset. Right-click the Project window, locate **Create** > **Shader Graph** in the context menu, then select your desired type of Shader Graph. +After you configure an SRP, you can create a new shader graph asset. -The type of Shader Graph available is dependent on the render pipelines present in your project. Some options may or may not be present based on the render pipelines. +To create a new shader graph asset, follow these steps: -The following options are always available: +1. In the **Project** window, right-click and select **Create** > **Shader Graph** > **From Template...**. -| | | | -|:------------|:----------------|:------------| -| Blank Shader Graph | A completely blank shader graph. No target is selected and no blocks are added to the Master Stack. | -| Sub Graph | A blank sub graph asset. | +1. In the context menu, select your desired type of Shader Graph. -A sub menu for each installed render pipeline may be present containing template stacks for standard shading models ( Lit, Unlit, etc ). + The type of Shader Graph available is dependent on the render pipelines present in your project. -For a full list of provided options, refer to the [Universal Render Pipeline](https://docs.unity3d.com/Manual/urp/urp-introduction.html) and [High Definition Render Pipeline](https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@latest) documentation. + A submenu for each installed render pipeline may be present containing template stacks for standard shading models ( Lit, Unlit, etc ). -For this example, Universal is installed so a Unversal Lit Shader Graph has been created. + For a full list of provided options, refer to the [Universal Render Pipeline](https://docs.unity3d.com/Manual/urp/urp-introduction.html) and [High Definition Render Pipeline](https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@latest) documentation. -Double-click your newly created Shader Graph Asset to open it in the Shader Graph window. + For this example, Universal is installed so a Universal Lit Shader Graph has been created. + +1. Double-click your newly created shader graph asset to open it in the Shader Graph window. ## Shader Graph window diff --git a/Packages/com.unity.shadergraph/Documentation~/Custom-Function-Node.md b/Packages/com.unity.shadergraph/Documentation~/Custom-Function-Node.md index e03495397c8..eaf8ff0b83c 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Custom-Function-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Custom-Function-Node.md @@ -18,11 +18,11 @@ In the [Graph Inspector](Internal-Inspector.md), open the **Node Settings** to a | Menu Item | Description | |:----------|:------------| | Inputs | A [Custom Port Menu](Custom-Port-Menu.md) that defines the node's input ports. | -| Outputs | A [Custom Port Menu](Custom-Port-Menu.md) that defines the node's input ports. | +| Outputs | A [Custom Port Menu](Custom-Port-Menu.md) that defines the node's output ports. | | Type | A function type selector. Choose File to reference an external file or string to directly input functions to the node. | | Name | Part of the name this custom function has in the final generated code. Suffixed by the function type ` _half ` or ` _float `. | -| Source | An asset field to reference the external HLSL include file. **Only available in `File` mode**. | -| Body | A text box where you enter HLSL code. **Only available in `String` mode**. | +| Source | An asset field to reference the external HLSL include file with the `.hlsl` extension. **Available only in `File` mode**. | +| Body | A text box where you enter HLSL code. **Available only in `String` mode**. | ### Defining the Function via string If you select `String` mode, the graph generates the shader function. The `Name` field defines the name of the generated function, and the `Body` field defines the contents of the generated function. Unity handles the arguments, braces, and indent scope automatically. In `String` mode you may use the token `$precision` instead of `half` or `float` in the `Body` field. Unity replaces this with the correct type, based on that node's precision, when the node is processed. @@ -58,7 +58,7 @@ void MyFunction_float(float3 A, float B, out float3 Out) #endif //MYHLSLINCLUDE_INCLUDED ``` -`File` mode allows for more flexbility with custom functions in a graph. You can define uniform variables outside of the function scope, as shown here with a matrix. +`File` mode allows for more flexibility with custom functions in a graph. You can define uniform variables outside the function scope, as shown here with a matrix. ``` //UNITY_SHADER_NO_UPGRADE diff --git a/Packages/com.unity.shadergraph/Documentation~/Custom-Render-Texture-Example.md b/Packages/com.unity.shadergraph/Documentation~/Custom-Render-Texture-Example.md index 993a03c5b3c..1492a0e3c3b 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Custom-Render-Texture-Example.md +++ b/Packages/com.unity.shadergraph/Documentation~/Custom-Render-Texture-Example.md @@ -2,7 +2,9 @@ This example demonstrates how to set up a Shader Graph for Custom Render Texture shaders to create a self-healing deformation effect that could be used for snow, sand, etc. -![](images/CustomRenderTexture-Animation.gif) + + + For this effect, we need a Render Texture that contains the pixels we want to displace. This Render Texture is displayed at the top left corner of the preceding image. It was directly assigned to a camera that renders the objects in red above the UV plane. @@ -12,16 +14,40 @@ For this effect, we need a Render Texture that contains the pixels we want to di 2. Create a new **Custom Render Texture** as follows: - Select **Create** > **Rendering** > **Custom Render Texture**. - - Configure the parameters to match the following image. + - Configure the parameters to match the following settings: + - **Dimension**: 2D + - **Size**: 1024 x 1024 + - **Anti-aliasing**: None + - **Enable Compatible Format**: selected + - **Color Format**: R32_SFLOAT + - **Depth Stencil Format**: None + - **Mipmap**: not selected + - **Dynamic Scaling**: not selected + - **Random Write**: not selected + - **Wrap Mode**: Clamp + - **Filter Mode**: Bilinear + - **Aniso Level**: 0 + - **Material**: SnowHeightmapUpdate **Note**: The material in the **Material** field was created. + - **Shader Pass**: + - **Initialization Mode**: OnDemand + - **Source**: Texture and Color + - **Color**: select a color + - **Texture**: None (Texture) + - **Update Mode**: Realtime + - **Period**: 0 + - **Double Buffered**: selected + - **Wrap Update Zones**: not selected + - **Update Zone Space**: Normalized + - **Update Zones**: list empty -![](images/CustomRenderTextureInspector.png) +![The Custom Render Texture inspector as it looks with the preceding settings.](images/CustomRenderTextureInspector.png) -This Shader Graph reads the output of the Camera Render Texture, as well as the Self texture, then adds them and lerps the result so that it tends towards 0 over time. You should end up with something similar to the following: +The following Shader Graph reads the output of the Camera Render Texture, as well as the Self texture, then adds them and lerps the result so that it tends towards 0 over time. -![](images/CustomRenderTextureShaderGraph.png) +![The graph that is described in the preceding text.](images/CustomRenderTextureShaderGraph.png) -4. Finally you need to assign the **Custom Render Texture** to a material that can deform the geometry (tessellation or pixel displacement). +3. Finally you need to assign the **Custom Render Texture** to a material that can deform the geometry (tessellation or pixel displacement). ## New ShaderGraph Nodes for Custom Render Textures diff --git a/Packages/com.unity.shadergraph/Documentation~/Input-Nodes.md b/Packages/com.unity.shadergraph/Documentation~/Input-Nodes.md index 9c9cd098b8f..a2a42b9442a 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Input-Nodes.md +++ b/Packages/com.unity.shadergraph/Documentation~/Input-Nodes.md @@ -4,38 +4,40 @@ |[Boolean](Boolean-Node.md)|[Color](Color-Node.md)| |:--------:|:------:| -|![Image](images/BooleanNodeThumb.png)|![](images/ColorNodeThumb.png)| +|![A flow diagram with a labeled node titled "Boolean" and an output labeled "out(B)". The output is connected via an arrow pointing outward, indicating the result of a Boolean operation.](images/BooleanNodeThumb.png)|![A diagram featuring a single element labeled **"Boolean"** with an output connection marked **"out(B)"**. An arrow extends from this output, indicating the flow of a Boolean value from the node. The design implies a logic or data flow representation centered around Boolean values. +](images/ColorNodeThumb.png)| | Defines a constant Boolean value in the shader. | Defines a constant Vector 4 value in the shader using a Color field. | |[**Constant**](Constant-Node.md)|[**Integer**](Integer-Node.md)| -|![Image](images/ConstantNodeThumb.png)|![Image](images/IntegerNodeThumb.png)| +|![A diagram with a node labeled "Constant" and an output labeled "Out(1)". Below it, the symbol "PI" is displayed, with a downward arrow pointing toward it. ](images/ConstantNodeThumb.png)|![A node labeled "Integer" with an output labeled "out(1)". Next to it is the number 0, indicating that the node outputs the integer value zero.](images/IntegerNodeThumb.png)| |Defines a Float of a mathematical constant value in the shader.|Defines a constant Float value in the shader using an Integer field.| |[**Slider**](Slider-Node.md)|[**Time**](Time-Node.md)| -|![Image](images/SliderNodeThumb.png)|![Image](images/TimeNodeThumb.png)| +|![A slider control with an output labeled "out(1)". Below the slider, there is a range indicated by Min 0 on the left and Max 1 on the right. The current slider value is shown as 0, suggesting it is set at the minimum end of the range.](images/SliderNodeThumb.png)|![A node labeled Time with multiple outputs, each named and connected as follows: Time(1), Sine Time(1), Cosine Time(1), Delta Time(1), Smooth Delta(1).](images/TimeNodeThumb.png)| |Defines a constant Float value in the shader using a Slider field.|Provides access to various Time parameters in the shader.| |[**Float**](Float.md)|[**Vector 2**](Vector-2-Node.md)| -|![Image](images/Vector1NodeThumb.png)|![Image](images/Vector2NodeThumb.png)| +|![A Vector node with a label for the X component set to 0. There is a connection marked X(1) leading to an output labeled out(1). An arrow extends from the output, indicating the flow of this vector’s X value through the system.](images/Vector1NodeThumb.png)|![a Vector 2 node with two components: X set to 0, connected via X(1) to an output labeled out(2), Y set to 0, connected via Y(1). Arrows indicate the flow of these two values from their respective outputs.](images/Vector2NodeThumb.png)| |Defines a Float value in the shader.|Defines a Vector 2 value in the shader.| |[**Vector 3**](Vector-3-Node.md)|[**Vector 4**](Vector-4-Node.md)| -|![Image](images/Vector3NodeThumb.png)|![Image](images/Vector4NodeThumb.png)| +|![A Vector 3 node with three components: X set to 0, connected via X(1) to an output labeled out(3), Y set to 0, connected via Y(1), Z set to 0, connected via Z(1); Each component has arrows indicating the flow of these values, representing a three-dimensional vector output.](images/Vector3NodeThumb.png)|![A Vector 4 node with four components: X set to 0, connected via X(1) to an output labeled Out(4), Y set to 0, connected via Y(1), Z set to 0, connected via Z(1), W set to 0, connected via W(1). Each component is linked with arrows, showing the flow of these four values representing a four-dimensional vector output.](images/Vector4NodeThumb.png)| |Defines a Vector 3 value in the shader.|Defines a Vector 4 value in the shader.| ## Geometry |[Bitangent Vector](Bitangent-Vector-Node.md)|[Normal Vector](Normal-Vector-Node.md)| |:--------:|:------:| -|[![Image](images/BitangentVectorNodeThumb.png)](Combine-Node)|![](images/NormalVectorNodeThumb.png)| +|[![A Bitangent Vector node with an output labeled out(3). Below the label, there are two options or modes indicated: Space and World, with an arrow pointing down toward World. This suggests the vector can be interpreted or output in different coordinate spaces, with the current selection being World space.](images/BitangentVectorNodeThumb.png)](Combine-Node)|![A Normal Vector node with an output labeled Out(3). Below it, there are two options: Space and World, with an arrow pointing downward toward World. This indicates the vector can be output in different coordinate spaces, currently set to World space.](images/NormalVectorNodeThumb.png)| | Provides access to the mesh vertex or fragment's Bitangent Vector. | Provides access to the mesh vertex or fragment's Normal Vector. | |[**Position**](Position-Node.md)|[**Screen Position**](Screen-Position-Node.md)| -|![Image](images/PositionNodeThumb.png)|![Image](images/ScreenPositionNodeThumb.png)| +|![A Position node with an output labeled Out(3). Below it, there are two options: Space and World, with a downward arrow pointing at World. This indicates the position value can be represented in different coordinate spaces, currently set to World space.](images/PositionNodeThumb.png)|![A Position node with an output labeled Out(3). Beneath it, there are two selectable options: Space and World, with an arrow indicating the selection is set to World space. This suggests the position value is provided relative to the world coordinate system.](images/ScreenPositionNodeThumb.png)| |Provides access to the mesh vertex or fragment's Position.|Provides access to the mesh vertex or fragment's Screen Position.| |[**Tangent Vector**](Tangent-Vector-Node.md)|[**UV**](UV-Node.md)| -|![Image](images/TangentVectorNodeThumb.png)|![Image](images/UVNodeThumb.png)| +|![A Tangent Vector node with an output labeled Out(3). Below it, two options are listed: Space and World, with an arrow pointing downward toward World. This indicates the vector can be output in different coordinate spaces, currently set to World space.](images/TangentVectorNodeThumb.png)|![A Tangent Vector node with an output labeled Out(3). Below it, two options are listed: Space and World, with an arrow pointing downward toward World. This indicates the vector can be output in different coordinate spaces, currently set to World space. +](images/UVNodeThumb.png)| |Provides access to the mesh vertex or fragment's Tangent Vector.|Provides access to the mesh vertex or fragment's UV coordinates.| |[**Vertex Color**](Vertex-Color-Node.md)|[**View Direction**](View-Direction-Node.md)| -|![Image](images/VertexColorNodeThumb.png)|![Image](images/ViewDirectionNodeThumb.png)| +|![a Vertex Color node with an output labeled Out(4). An arrow extends from the output, indicating the flow of a four-component color value, typically representing RGBA data.](images/VertexColorNodeThumb.png)|![A View Direction node with an output labeled Out(3). Below it, two options are shown: Space and World, with a downward arrow pointing to World, indicating the current coordinate space for the view direction vector.](images/ViewDirectionNodeThumb.png)| |Provides access to the mesh vertex or fragment's Vertex Color value.|Provides access to the mesh vertex or fragment's View Direction vector.| |[**Vertex ID**](Vertex-ID-Node.md)| -|![Image](images/VertexIDNodeThumb.png)| +|![A Vertex ID node with an output labeled out(1).](images/VertexIDNodeThumb.png)| |Provides access to the mesh vertex or fragment's Vertex ID value.| @@ -43,39 +45,39 @@ |[Blackbody](Blackbody-Node.md)|[Gradient](Gradient-Node.md)| |:--------:|:------:| -|![Image](images/BlackbodyNodeThumb.png)|![Image](images/GradientNodeThumb.png)| +|![A node labeled Tempnat with an output labeled out(3). An arrow points outward from the output.](images/BlackbodyNodeThumb.png)|![a Gradient node with an output labeled out(G). An arrow extends from the output.](images/GradientNodeThumb.png)| | Samples a radiation based gradient from temperature input (in Kelvin). | Defines a constant Gradient in the shader. | |[Sample Gradient](Sample-Gradient-Node.md)| -|![](images/SampleGradientNodeThumb.png)| +|![A Sample Gradient node with two main elements: An input labeled Gradient, an output labeled out(4). There is also an input labeled X set to 0, connected via Time(1).](images/SampleGradientNodeThumb.png)| | Samples a Gradient given the input of Time. | ## Matrix |[Matrix 2x2](Matrix-2x2-Node.md)|[Matrix 3x3](Matrix-3x3-Node.md)| |:--------:|:------:| -|![Image](images/Matrix2x2NodeThumb.png)|![](images/Matrix3x3NodeThumb.png)| +|![A Matrix 2x2 node with an output labeled Out(2x2). The matrix elements are all set to 0, arranged in a 2-by-2 grid.](images/Matrix2x2NodeThumb.png)|![A Matrix 3x3 node with an output labeled Out(3x3). The matrix is displayed as a 3-by-3 grid with all elements set to 0.](images/Matrix3x3NodeThumb.png)| | Defines a constant Matrix 2x2 value in the shader. | Defines a constant Matrix 3x3 value in the shader. | |[**Matrix 4x4**](Matrix-4x4-Node.md)|[**Transformation Matrix**](Transformation-Matrix-Node.md)| -|![Image](images/Matrix4x4NodeThumb.png)|![Image](images/TransformationMatrixNodeThumb.png)| +|![A Matrix 4x4 node with an output labeled Out(4x4). The matrix is displayed as a 4-by-4 grid with all elements set to 0.](images/Matrix4x4NodeThumb.png)|![ A Transformation Matrix node with an output labeled Out(4x4). Below it, there is a dropdown or selection labeled Model with a downward arrow.](images/TransformationMatrixNodeThumb.png)| |Defines a constant Matrix 4x4 value in the shader.|Defines a constant Matrix 4x4 value for a default Unity Transformation Matrix in the shader.| ## Mesh Deformation | [Compute Deformation Node](Compute-Deformation-Node) | [Linear Blend Skinning Node](Linear-Blend-Skinning-Node) | | :----------------------------------------------------------- | :----------------------------------------------------------- | -| ![Image](images/ComputeDeformationNodeThumb.png) | ![Image](images/LinearBlendSkinningNodeThumb.png) | +| ![A Compute Deformation node with three outputs: Deformed Position, Deformed Normal, Deformed Tangent.](images/ComputeDeformationNodeThumb.png) | ![A Linear Blend Skinning node with three pairs of inputs and outputs: Vertex Position(3) input connected to Skinned Position(3) output, Vertex Normal(3) input connected to Skinned Normal(3) output, Vertex Tangent(3) input connected to Skinned Tangent(3) output.](images/LinearBlendSkinningNodeThumb.png) | | Passes compute deformed vertex data to a vertex shader. Only works with the [Entities Graphics package](https://docs.unity3d.com/Packages/com.unity.entities.graphics@latest/). | Applies Linear Blend Vertex Skinning. Only works with the [Entities Graphics package](https://docs.unity3d.com/Packages/com.unity.entities.graphics@latest/). | ## Sprite Deformation | [Sprite Skinning Node](Sprite-Skinning-Node) | | :----------------------------------------------------------- | -| ![Image](images/SpriteSkinningNodeThumb.png) | +| ![A Linear Blend Skinning node with three pairs of inputs and outputs, each handling 3-component vectors: Vertex Position(3) connected to Skinned Position(3) output, Vertex Normal(3) connected to Skinned Normal(3) output, Vertex Tangent(3) connected to Skinned Tangent(3) output.](images/SpriteSkinningNodeThumb.png) | | Applies Vertex Skinning on Sprites. Only works with the [2D Animation](https://docs.unity3d.com/Packages/com.unity.2d.animation@latest/). | ## PBR | [**Dielectric Specular**](Dielectric-Specular-Node.md) | [**Metal Reflectance**](Metal-Reflectance-Node.md) | | :----------------------------------------------------------: | :----------------------------------------------------------: | -| ![Image](images/DielectricSpecularNodeThumb.png) | ![](images/MetalReflectanceNodeThumb.png) | +| ![A Dielectric Specular node with an output labeled Out(1). Below it, there are settings including: Material with an option labeled Common and a dropdown arrow, Range set to LJ 0.5, IOR (Index of Refraction) set to 1.](images/DielectricSpecularNodeThumb.png) | ![A Metal Reflectance node with an output labeled out(3). Below it, there is a Material option set to Iron with a dropdown arrow.](images/MetalReflectanceNodeThumb.png) | | Returns a Dielectric Specular F0 value for a physically based material. | Returns a Metal Reflectance value for a physically based material. | @@ -83,42 +85,42 @@ |[Ambient](Ambient-Node.md)|[Camera](Camera-Node.md)| |:--------:|:------:| -|![Image](images/AmbientNodeThumb.png)|![](images/CameraNodeThumb.png)| +|![An Ambient node with three outputs: Color/Sky(3), Equator(3), Ground(3).](images/AmbientNodeThumb.png)|![A Camera node with multiple outputs: Position(3), Direction(3), Orthographic(1), Near Plane(1), Far Plane(1), Z Buffer Sign(1), Width(1), Height(1).](images/CameraNodeThumb.png)| | Provides access to the Scene's Ambient color values. | Provides access to various parameters of the current Camera. | |[**Fog**](Fog-Node.md)|[**Baked GI**](Baked-GI-Node.md)| -|![Image](images/FogNodeThumb.png)|| +|![A Fog node with: An input labeled Object Space Position(3), outputs labeled Color(4) and Density(1).](images/FogNodeThumb.png)|| |Provides access to the Scene's Fog parameters.|Provides access to the Baked GI values at the vertex or fragment's position.| |[**Object**](Object-Node.md)|[**Reflection Probe**](Reflection-Probe-Node.md)| -|![Image](images/ObjectNodeThumb.png)|![Image](images/ReflectionProbeNodeThumb.png)| +|![An Object node with two outputs: Position(3), Scale(3).](images/ObjectNodeThumb.png)|![A Reflection Probe node with several elements: An input labeled Object Space View Dir(3) connected to an output labeled Out(3), an input labeled Object Space Normal(3), an input labeled X set to 0, connected via LOD(1)](images/ReflectionProbeNodeThumb.png).| |Provides access to various parameters of the Object.|Provides access to the nearest Reflection Probe to the object.| |[**Scene Color**](Scene-Color-Node.md)|[**Scene Depth**](Scene-Depth-Node.md)| -|![Image](images/SceneColorNodeThumb.png)|![Image](images/SceneDepthNodeThumb.png)| +|![A Scene Color node with: An input labeled Default, an output labeled Out(4).](images/SceneColorNodeThumb.png)|![A Scene Depth node with: An input labeled Default UV(4), an output labeled out(1), a setting or option labeled Sampling Linear 01.](images/SceneDepthNodeThumb.png)| |Provides access to the current Camera's color buffer.|Provides access to the current Camera's depth buffer.| |[**Screen**](Screen-Node.md)|[**Eye Index**](Eye-Index-Node.md)| -|![Image](images/ScreenNodeThumb.png)|![Image](images/EyeIndexNodeThumb.png)| +|![A Screen node with two outputs: Width(1), Height(1).](images/ScreenNodeThumb.png)|![An Eye Index node with an output labeled Out(1).](images/EyeIndexNodeThumb.png)| |Provides access to parameters of the screen.|Provides access to the Eye Index when stereo rendering.| ## Texture |[**Cubemap Asset**](Cubemap-Asset-Node.md)|[**Sample Cubemap**](Sample-Cubemap-Node.md)| |:--------:|:------:| -|[![Image](images/CubemapAssetNodeThumb.png)](Combine-Node)|![](images/SampleCubemapNodeThumb.png)| +|[![A Cubemap Asset node with an output labeled out(C). Below it, there is a dropdown or selector displaying None (Cubemap).](images/CubemapAssetNodeThumb.png)](Combine-Node)|![A Sample Cubemap node with: An input labeled None (Cubemap), an input labeled World Space connected to pijr(3), an input labeled x set to 0, connected to LoD(1), an output labeled Out(4).](images/SampleCubemapNodeThumb.png)| | Defines a constant Cubemap Asset for use in the shader. | Samples a Cubemap and returns a Vector 4 color value for use in the shader. | |[**Sample Reflected Cubemap Node**](Sample-Reflected-Cubemap-Node.md)|[**Sample Texture 2D**](Sample-Texture-2D-Node.md)| -|![Image](images/SampleReflectedCubemapThumb.png)|![Image](images/SampleTexture2DNodeThumb.png)| +|![A Sample Cubemap node with several inputs and an output: An input labeled None (Cubemap) connected to Cube(C), inputs labeled Object Space ViewDir(3) and Object Space Normal(3), an input labeled Sampler(SS), an input labeled X set to 0, connected to LOD(1), an output labeled Out(4).](images/SampleReflectedCubemapThumb.png)|![A Sample Texture 2D node with: An input labeled None (Texture) connected to Texture(T2), an input labeled UV(2), an input labeled Sampler(SS), multiple outputs labeled RGBA(4), R(1), G(1), B(1), and A(1), two dropdown options: Type set to Default, and Space set to Tangent.](images/SampleTexture2DNodeThumb.png)| |Samples a Cubemap with reflected vector and returns a Vector 4 color value for use in the shader.|Samples a Texture 2D and returns a color value for use in the shader.| |[**Sample Texture 2D Array**](Sample-Texture-2D-Array-Node.md)|[**Sample Texture 2D LOD**](Sample-Texture-2D-LOD-Node.md)| -|![Image](images/SampleTexture2DArrayNodeThumb.png)|![Image](images/SampleTexture2DLODNodeThumb.png)| +|![A Sample Texture 2D Array node with: An input labeled None (Texture) connected to Texture Array (T2A), an input labeled X set to 0, connected to Index(1), an input labeled UV connected to UV(2), an input labeled Sampler(SS), multiple outputs labeled RGBA(4), R(1), G(1), B(1), and A(1).](images/SampleTexture2DArrayNodeThumb.png)|![A Sample Texture 2D LOD node with: An input labeled None (Texture) connected to Texture(T2), an input labeled UV(2), an input labeled Sampler(SS), an input labeled X set to 0, connected to LOD(1), multiple outputs labeled RGBA(4), R(1), G(1), B(1), and A(1), two dropdown options: Type set to Default, and Space set to Tangent.](images/SampleTexture2DLODNodeThumb.png)| |Samples a Texture 2D Array at an Index and returns a color value for use in the shader.|Samples a Texture 2D at a specific LOD and returns a color value for use in the shader.| |[**Sample Texture 3D**](Sample-Texture-3D-Node.md)| [**Sample Virtual Texture**](Sample-Virtual-Texture-Node.md) | -|![Image](images/SampleTexture3DNodeThumb.png)| ![image](images/SampleVirtualTextureNodeThumb.png) | +|![A Sample Texture 3D node with: An input labeled None (Texture) connected to Texture(T3), inputs labeled X 0, Y 0, Z 0 combined as UV(3), an input labeled Sampler(SS), an output labeled Out(4).](images/SampleTexture3DNodeThumb.png)| ![A Sample Virtual Texture node with: An input labeled UV(2), an input labeled VT(VT) connected to Virtual Texture (VT), four outputs labeled Out(4), Out2(4), Out3(4), and Out4(4).](images/SampleVirtualTextureNodeThumb.png) | |Samples a Texture 3D and returns a color value for use in the shader.| Samples a Virtual Texture and returns color values for use in the shader.| |[**Sampler State**](Sampler-State-Node.md)|[**Texture Size**](Texture-Size-Node.md)| -|![Image](images/SamplerStateNodeThumb.png)|![Image](images/TexelSizeNodeThumb.png) | +|![A Sampler State node with an output labeled Out(SS). Below it are settings including: Filter set to Linear, Wrap set to Repeat.](images/SamplerStateNodeThumb.png)|![A Texture Size node with: An input labeled None (Texture) connected to Texture(T2), outputs labeled Width(1), Height(1), Texel Width(1), and Texel Height(1).](images/TexelSizeNodeThumb.png) | |Defines a Sampler State for sampling textures.|Returns the Width and Height of the texel size of Texture 2D input.| |[**Texture 2D Array Asset**](Texture-2D-Array-Asset-Node.md)|[**Texture 2D Asset**](Texture-2D-Asset-Node.md)| -|![Image](images/Texture2DArrayAssetNodeThumb.png)|![Image](images/Texture2DAssetNodeThumb.png)| +|![A Texture 2D Array Asset node with an output labeled Out(T2A). Below it, there is a dropdown or selector displaying None (Texture 2D Array).](images/Texture2DArrayAssetNodeThumb.png)|![A Texture 2D Asset node with an output labeled Out(T2). Below it, there is a dropdown or selector displaying None (Texture).](images/Texture2DAssetNodeThumb.png)| |Defines a constant Texture 2D Array Asset for use in the shader.|Defines a constant Texture 2D Asset for use in the shader.| |[**Texture 3D Asset**](Texture-3D-Asset-Node.md)| | -|![Image](images/Texture3DAssetNodeThumb.png)| | +|![A Texture 3D Asset node with an output labeled Out(T3). Below it, there is a dropdown or selector displaying None (Texture 3D).](images/Texture3DAssetNodeThumb.png)| | |Defines a constant Texture 3D Asset for use in the shader.| | diff --git a/Packages/com.unity.shadergraph/Documentation~/Keywords-concepts.md b/Packages/com.unity.shadergraph/Documentation~/Keywords-concepts.md new file mode 100644 index 00000000000..a37ef116621 --- /dev/null +++ b/Packages/com.unity.shadergraph/Documentation~/Keywords-concepts.md @@ -0,0 +1,33 @@ +# Introduction to keywords in Shader Graph + +Keywords enable you to create shader variants that address multiple contexts, for example: + +* Features that you can turn on or off for each material instance. +* Features that behave differently on certain platforms. +* Shaders that scale in complexity based on conditions you set. + +For more information about keywords and how they affect the final shader, refer to [Changing how shaders work using keywords](https://docs.unity3d.com/Manual/SL-MultipleProgramVariants.html). + +## Keyword settings and shader variants + +Unity compiles shader variants according to the branches and keywords you defined in your Shader Graph. If you declare many different keywords, you can end up with millions or trillions of shader variants. + +However, Unity can determine at build time which shader variants the project uses at runtime. To optimize build time and runtime memory usage, Unity can strip unused variants based on the keyword settings. Refer to [Common parameters](Keywords-reference.md#common-parameters) for more details. + +> [!NOTE] When Unity strips out a variant in the build process, any attempt to use this variant at runtime results in a pink shader error. + +## Conditions and keyword types + +There are three types of keywords you can use depending on the type of conditions you need to set up: + +| Keyword type | Description | +| :--- | :--- | +| **Boolean** | Boolean keywords are either on or off, which results in two shader variants. | +| **Enum** | Enum keywords can have two or more states according to an entry list you define, which results in two or more shader variants. | +| **Built-in** | Built-in keywords are always of either the Boolean or Enum type, but they behave slightly differently from Boolean or Enum keywords that you create. The Unity Editor or active Render Pipeline sets their values, and you cannot edit these. | + + +## Additional resources + +* [Manage keywords in Shader Graph](Keywords-manage.md) +* [Keyword parameter reference](Keywords-reference.md) diff --git a/Packages/com.unity.shadergraph/Documentation~/Keywords-manage.md b/Packages/com.unity.shadergraph/Documentation~/Keywords-manage.md new file mode 100644 index 00000000000..fbd3953475c --- /dev/null +++ b/Packages/com.unity.shadergraph/Documentation~/Keywords-manage.md @@ -0,0 +1,40 @@ +# Manage keywords in Shader Graph + +Get started with adding and managing keywords in a Shader Graph. + +## Add a keyword in a Shader Graph + +To add a keyword in a Shader Graph: + +1. Add a keyword in the [Blackboard](Blackboard.md) and define the [keyword parameters](Keywords-reference.md) according to your needs. + +1. Add a [Keyword Node](Keyword-Node.md) in the graph from the keyword you defined in the Blackboard. + +Unity [declares the keyword](https://docs.unity3d.com/Manual/SL-MultipleProgramVariants-declare.html) in the final shader code. + +## Make the shader behavior conditional on the keyword + +To make the shader behavior conditional on the keyword in the Shader Graph: + +1. Create the upstream Shader Graph branches that define the various behaviors you want to use conditionally. + +1. Connect each branch to a different input port of the Keyword Node according to the keyword value you want to use for later toggling. + +1. Connect the output port of the Keyword Node to the node port you want to apply the conditional graph part to. + +Unity [adds all the conditions and branches](https://docs.unity3d.com/Manual/SL-MultipleProgramVariants-make-conditionals.html) in the final shader code. + +## Toggle the shader keyword in the Editor + +To be able to control a keyword from the Material Inspector, make sure to enable **Generate Material Property** in the [keyword parameters](Keywords-reference.md) in the graph. + +## Toggle the shader keyword in a script + +To enable a Boolean keyword from a script, use `EnableKeyword` on the keyword's **Reference Name**. `DisableKeyword` disables the keyword. To learn more about Boolean keywords, refer to [Shader variants and keywords](https://docs.unity3d.com/Manual/SL-MultipleProgramVariants.html). + +When controlling an Enum keyword via script with a `Material.EnableKeyword` or `Shader.EnableKeyword` function, enter the state label in the format `{REFERENCE}_{REFERENCESUFFIX}`. For example, if your reference name is MYENUM and the desired entry is OPTION1, then you would call `Material.EnableKeyword("MYENUM_OPTION1")`. When you select an option, this disables the other options. + +## Additional resources + +* [Introduction to keywords in Shader Graph](Keywords-concepts.md) +* [Keyword parameter reference](Keywords-reference.md) diff --git a/Packages/com.unity.shadergraph/Documentation~/Keywords-reference.md b/Packages/com.unity.shadergraph/Documentation~/Keywords-reference.md new file mode 100644 index 00000000000..1a5822b76a1 --- /dev/null +++ b/Packages/com.unity.shadergraph/Documentation~/Keywords-reference.md @@ -0,0 +1,55 @@ +# Keyword parameter reference + +There are three types of keywords: Boolean, Enum, and Built-in. Each keyword type has a few specific parameters in addition to the many parameters that all keyword types have in common. + +## Common parameters + +Parameters that all keyword types have in common. + +| **Name** | **Type** | **Description** | +| ------------------ | -------- | ------------------------------------------------------------ | +| **Display Name** | String | The display name of the keyword. Unity shows this name in the title bar of nodes that reference the corresponding keyword, and also in the Material Inspector if you expose that keyword. | +| **Exposed** | Boolean | When you set this parameter to **true**, Unity displays this keyword in the Material Inspector. If you set it to **false**, the keyword does not appear in the Material Inspector.

If you intend to access a GLOBAL shader variable, be sure to add it as you would normally add an input variable, but deselect **Exposed**.| +| **Reference Name** | String | The internal name for the keyword in the shader.

If you overwrite the Reference Name parameter, take note of the following:
  • Keyword Reference Names are always in full capitals, so Unity converts all lowercase letters to uppercase.
  • If the Reference Name contains any characters that HLSL does not support, Unity replaces those characters with underscores.
  • Right-click on a Reference Name, and select **Reset Reference** to revert to the default Reference Name.
| +| **Definition** | Enum | Sets how the keyword is defined in the shader. Determines when to compile keyword variants.

The options are:
  • **Shader Feature**: Unity only compiles keyword variants when a Material selects the relevant option. For this option to be available in the Player, a Material selecting it must exist at build-time.
  • **Multi Compile**: Pre-compiles all the variant possibilities. This is slower and uses more memory, but allows the option to be dynamically switched in the Player.
  • **Predefined**: The render pipeline defines this keyword and controls the settings for it.
| +| **Scope** | Enum | Sets the scope at which to define the keyword.

The following options are available:
  • **Global keywords**: Defines keyword for the entire project, and it counts towards the global keyword limit.
  • **Local keywords**: Defines keyword for only one shader, which has its own local keyword limit.
When you use Predefined keywords, Unity disables this field. | +| **Stages** | N/A | Set the stage the keyword applies to.

The following options are available:
  • **All** - Applies this keyword to all shader stages.<
  • **Vertex** - Applies this keyword to the vertex stage.
  • **Fragment** - Applies this keyword to the fragment stage.
| + + + +## Boolean keywords + +Parameter specific to Boolean keywords in addition to the [common parameters](#common-parameters). + +| **Name** | **Type** | **Description** | +| ----------- | -------- | ------------------------------------------------------------ | +| **Default** | Boolean | Enable this parameter to set the keyword's default state to on, and disable it to set the keyword's default state to off.

This parameter determines the value to use for the keyword when Shader Graph generates previews. It also defines the keyword's default value when you use this shader to create a new Material. | + + + +## Enum keywords + +Parameters specific to Enum keywords in addition to the [common parameters](#common-parameters). + +| **Name** | **Type** | **Description** | +| ----------- | ---------------- | ------------------------------------------------------------ | +| **Default** | Enum | Select an entry from the drop-down menu to determine which value to use for the keyword when Shader Graph generates previews. This also defines the keyword's default value when you use this shader to create a new Material. When you edit the Entries list, Shader Graph automatically updates the options in this control. | +| **Entries** | Reorderable List | This list defines all the states for the keyword. Each state has a separate **Entry Name** and **Reference Suffix**.
  • **Entry Name**: The name displayed in drop-down menus for the keyword on the [Internal Inspector](Internal-Inspector.md) and the Material Inspector. Shader Graph also uses this name for port labels on nodes that reference the keyword.
  • **Reference Suffix**: This identifies the final keyword, presented in the format `Reference_ReferenceSuffix`.
| + +When you define an Enum keyword, Shader Graph displays labels for each state consisting of a version of the Enum's **Entry Name** appended to the main **Reference** name. + +> [!NOTE] +> Special characters such as `(`, `)`, `!`, or `@` are not valid in the **Entry Name** of an Enum keyword. Shader Graph converts invalid characters to underscores (`_`). + + + +## Built-in keywords + +The parameters of built-in keywords depend on their type, which is always of either the Boolean or Enum type, and you cannot edit their values. + +All Built-in keyword fields in the **Node Settings** tab of the [Graph Inspector](Internal-Inspector.md) are grayed out except for the **Default** field, which you can enable or disable to show the differences in Shader Graph previews. You also cannot expose Built-in keywords in the Material Inspector. + +## Additional resources + +* [Introduction to keywords in Shader Graph](Keywords-concepts.md) +* [Manage keywords in Shader Graph](Keywords-manage.md) diff --git a/Packages/com.unity.shadergraph/Documentation~/Keywords.md b/Packages/com.unity.shadergraph/Documentation~/Keywords.md index 256be6cf099..1354003f4be 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Keywords.md +++ b/Packages/com.unity.shadergraph/Documentation~/Keywords.md @@ -1,81 +1,9 @@ -# Keywords +# Changing how shaders work using keywords -## Description +Use keywords to create different variants for your Shader Graph. -Use Keywords to create different variants for your Shader Graph. - -Keywords enable you to create shaders: - -* With features that you can turn on or off for each Material instance. -* With features that behave differently on certain platforms. -* That scale in complexity based on conditions you set. - -There are three types of Keywords: Boolean, Enum, and Built-in. Unity defines a Keyword in the graph, shader, and optionally, the Material Inspector based on its type. See [Boolean Keyword](#BooleanKeywords), [Enum Keyword](#EnumKeywords), and [Built-in Keyword](#BuiltinKeywords) for more information about Keyword types. For more information about how these Keywords affect the final shader, see documentation on [Making multiple shader program variants](https://docs.unity3d.com/Manual/SL-MultipleProgramVariants.html). - -In Shader Graph, you first define a Keyword on the [Blackboard](Blackboard.md), then use a [Keyword Node](Keyword-Node.md) to create a branch in the graph. - -The Editor is able to compile variants on demand when it needs them to render content. If you declare many different variants, you can end up with millions or trillions of possibilities. However, the Player needs to determine at build time which variants are in use and include them when it pre-compiles your shaders. To manage memory effectively, the Player strips unused variants based on their keyword and Editor settings. See the next section, Common parameters, to learn more about how you can give the Player hints about what it needs to compile and what it can ignore. When the Player strips out a variant in the build process, it displays the pink error shader. - -## Common parameters - -Although some fields are specific to certain types of Keywords, all Keywords have the following parameters. - -| **Name** | **Type** | **Description** | -| ------------------ | -------- | ------------------------------------------------------------ | -| **Display Name** | String | The display name of the Keyword. Unity shows this name in the title bar of nodes that reference the corresponding Keyword, and also in the Material Inspector if you expose that Keyword. | -| **Exposed** | Boolean | When you set this parameter to **true**, Unity displays this Keyword in the Material Inspector. If you set it to **false**, the Keyword does not appear in the Material Inspector.

If you intend to access a GLOBAL shader variable, be sure to add it as you would normally add an input variable, but deselect **Exposed**.| -| **Reference Name** | String | The internal name for the Keyword in the shader.

If you overwrite the Reference Name parameter, take note of the following:
  • Keyword Reference Names are always in full capitals, so Unity converts all lowercase letters to uppercase.
  • If the Reference Name contains any characters that HLSL does not support, Unity replaces those characters with underscores.
  • Right-click on a Reference Name, and select **Reset Reference** to revert to the default Reference Name.
| -| **Definition** | Enum | Sets how the Keyword is defined in the shader. Determines when to compile keyword variants.

There are three available options:
  • **Shader Feature**: Unity only compiles keyword variants when a Material selects the relevant option. For this option to be available in the Player, a Material selecting it must exist at build-time.
  • **Multi Compile**: Pre-compiles all the variant possibilities. This is slower and uses more memory, but allows the option to be dynamically switched in the Player.
  • **Predefined**: The render pipeline defines this keyword and controls the settings for it.
| -| **Scope** | Enum | Sets the scope at which to define the Keyword.

The following options are available:
  • **Global Keywords**: Defines Keyword for the entire project, and it counts towards the global keyword limit.
  • **Local Keywords**: Defines Keyword for only one shader, which has its own local keyword limit.
When you use Predefined Keywords, Unity disables this field. | -| **Stages** | | Set the stage the keyword applies to.

The following options are available:
  • **All** - Applies this keyword to all shader stages.<
  • **Vertex** - Applies this keyword to the vertex stage.
  • **Fragment** - Applies this keyword to the fragment stage.
| - - -## Boolean Keywords - -Boolean Keywords are either on or off. This results in two shader variants. Unity exposes Boolean Keywords in the Material Inspector if the Exposed parameter is set to is true. To enable the keyword from a script, use EnableKeyword on the keyword's Reference name. DisableKeyword disables the keyword. To learn more about Boolean Keywords, see [Shader variants and keywords](https://docs.unity3d.com/Manual/SL-MultipleProgramVariants.html). - -![](images/keywords_boolean.png) - -### Type-specific parameters - -Boolean Keywords have one Boolean-specific parameter in addition to the common parameters listed above. - -| **Name** | **Type** | **Description** | -| ----------- | -------- | ------------------------------------------------------------ | -| **Default** | Boolean |Enable this parameter to set the Keyword's default state to on, and disable it to set the Keyword's default state to off.

This parameter determines the value to use for the Keyword when Shader Graph generates previews. It also defines the Keyword's default value when you use this shader to create a new Material. | - - -## Enum Keywords - -Enum Keywords can have two or more states, which you define in the **Entries** list. If you expose an Enum Keyword, the **Display Names** in its **Entries** list appear in a dropdown menu in the Material Inspector. - -Special characters such as ( ) or ! @ are not valid in the **Entry Name** of an Enum Keyword. Shader Graph converts invalid characters to underscores ( _ ). - -When you define an Enum Keyword, Shader Graph displays labels for each state consisting of a sanitized version of the Enum's **Entry Name** appended to the main **Reference** name. -When controlling a keyword via script with a, Material.EnableKeyword or Shader.EnableKeyword function, enter the state label in the format {REFERENCE}_{REFERENCESUFFIX}. For example, if your reference name is MYENUM and the desired entry is OPTION1, then you would call Material.EnableKeyword("MYENUM_OPTION1"). When you select an option, this disables the other options. - -![](images/keywords_enum.png) - -### Type-specific parameters - -In addition to the common parameters listed above, Enum Keywords have the following additional parameters. - -| **Name** | **Type** | **Description** | -| ----------- | ---------------- | ------------------------------------------------------------ | -| **Default** | Enum | Select an entry from the drop-down menu to determine which value to use for the Keyword when Shader Graph generates previews. This also defines the Keyword's default value when you use this shader to create a new Material. When you edit the Entries list, Shader Graph automatically updates the options in this control. | -| **Entries** | Reorderable List | This list defines all the states for the Keyword. Each state has a separate **Display Name** and **Reference Suffix**.
  • **Display Name**: Appears in drop-down menus for the Keyword on the [Internal Inspector](Internal-Inspector.md) and the Material Inspector. Shader Graph also uses this name for port labels on nodes that reference the Keyword.
  • **Reference Suffix**: This is the final keyword, presented in the format Reference_ReferenceSuffix.
| - - -## Built-in Keywords - -Built-in Keywords are always of either the Boolean or Enum type, but they behave slightly differently from Boolean or Enum Keywords that you create. The Unity Editor or active Render Pipeline sets their values, and you cannot edit these. - -All Built-in Keyword fields in the **Node Settings** tab of the [Graph Inspector](Internal-Inspector.md) are grayed out except for the **Default** field, which you can enable or disable to show the differences in Shader Graph previews. You also cannot expose Built-in Keywords in the Material Inspector. - -In an HDRP project, you can find the current quality level in the Material section of the [HDRP Asset](https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@latest/manual/quality-settings.html#using-the-current-quality-settings-parameters). For URP projects, the feature is not supported, but you can use the `SetGloalShaderKeywords` command to set the [MaterialQuality](https://docs.unity3d.com/Packages/com.unity.render-pipelines.core@latest/api/UnityEngine.Rendering.MaterialQuality.html) Enum in the script. For example, the following line would set Material Quality to High: - -```c# -MaterialQualityUtilities.SetGlobalShaderKeywords( MaterialQuality.High ); -``` - -![](images/keywords_built-in.png) +| **Topic** | **Description** | +| :--- | :--- | +| [Introduction to keywords in Shader Graph](Keywords-concepts.md) | Learn about keywords, their different types, and what you can achieve with them. | +| [Manage keywords in Shader Graph](Keywords-manage.md) | Get started with adding and managing keywords in a Shader Graph. | +| [Keyword parameter reference](Keywords-reference.md) | Get a description of all keyword parameters, by keyword type. | diff --git a/Packages/com.unity.shadergraph/Documentation~/Length-Node.md b/Packages/com.unity.shadergraph/Documentation~/Length-Node.md index e252eabe696..f691d539fc3 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Length-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Length-Node.md @@ -6,11 +6,11 @@ Returns the length of input **In**. This is also known as magnitude. A vector's The length of a **Vector 2** can be calculated as: -![](images/LengthNodePage02.png) +![The square root of x squared plus y squared.](images/LengthNodePage02.png) Where *x* and *y* are the components of the input vector. Length can be calculated for other dimension vectors by adding or removing components. -![](images/LengthNodePage03.png) +![The square root of (x squared plus y squared plus z squared).](images/LengthNodePage03.png) And so on. diff --git a/Packages/com.unity.shadergraph/Documentation~/Log-Node.md b/Packages/com.unity.shadergraph/Documentation~/Log-Node.md index 588e994db92..0d5b38c5410 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Log-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Log-Node.md @@ -6,7 +6,7 @@ Returns the logarithm of input **In**. **Log** is the inverse operation to the [ For example, the result of a base-2 **Exponential** using an input value of 3 is 8. -![](images/LogNodePage02.png) +![Two raised to the power of three = 2 x 2 x 2 = eight.](images/LogNodePage02.png) Therefore the result of a base-2 **Log** using an input value of 8 is 3. diff --git a/Packages/com.unity.shadergraph/Documentation~/Parallax-Occlusion-Mapping-Node.md b/Packages/com.unity.shadergraph/Documentation~/Parallax-Occlusion-Mapping-Node.md index 716d9333501..6a3d9c7e835 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Parallax-Occlusion-Mapping-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Parallax-Occlusion-Mapping-Node.md @@ -8,8 +8,6 @@ If you receive a texture sampling error while using this node in a graph that in When you assign the same Texture2D to a POM node and a Sample Texture 2D node, you need to avoid transforming the UV coordinates twice. To prevent this, connect the Split Texture Transform node’s **Texture Only** port to the Sample Texture 2D Node’s **UV** port. -![](images/ParallaxOcclusionMappingThumb.png) - ## Ports | Name | **Direction** | Type | Description | diff --git a/Packages/com.unity.shadergraph/Documentation~/Position-Node.md b/Packages/com.unity.shadergraph/Documentation~/Position-Node.md index 5982556c6cc..49244a91ed0 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Position-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Position-Node.md @@ -17,11 +17,16 @@ Provides access to the mesh vertex's or fragment's **Position**, depending on th | Space | Dropdown | Object, View, World, Tangent, Absolute World | Selects the coordinate space of **Position** to output. | ## World and Absolute World -The Position Node provides drop-down options for both **World** and **Absolute World** space positions. The **Absolute World** option always returns the absolute world position of the object in the Scene for all Scriptable Render Pipelines. The **World** option returns the default world space of the selected Scriptable Render Pipeline. -The [High Definition Render Pipeline](https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@latest/index.html) uses [Camera Relative](https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@latest?preview=1&subfolder=/manual/Camera-Relative-Rendering.html) as its default world space. +The Position Node provides drop-down options for both **World** and **Absolute World** space positions. -The [Universal Render Pipeline](https://docs.unity3d.com/Manual/urp/urp-introduction.html) uses **Absolute World** as its default world space. +In [URP](https://docs.unity3d.com/Manual/urp/urp-introduction.html), both **World** and **Absolute World** are relative to the global world position of the object in the Scene. + +In [HDRP](https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@latest/index.html): + +- **World** space is [camera-relative](https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@latest?preview=1&subfolder=/manual/Camera-Relative-Rendering.html). + +- **Absolute World** space is relative to the global world position of the object in the Scene. ### Upgrading from previous versions If you use a Position Node in **World** space on a graph authored in Shader Graph version 6.7.0 or earlier, it automatically upgrades the selection to **Absolute World**. This ensures that the calculations on your graph remain accurate to your expectations, since the **World** output might change. diff --git a/Packages/com.unity.shadergraph/Documentation~/Procedural-Nodes.md b/Packages/com.unity.shadergraph/Documentation~/Procedural-Nodes.md index 590932b5412..b775066dd53 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Procedural-Nodes.md +++ b/Packages/com.unity.shadergraph/Documentation~/Procedural-Nodes.md @@ -2,28 +2,28 @@ | [Checkerboard](Checkerboard-Node.md) | | :-----------| -| ![Image](images/CheckerboardNodeThumb.png) | +| ![A Checkerboard node. A UV0 value is connected to the UV(2) slot. A dark-gray value is connected to the Color A(3) slot. A light gray value is connected to the Color B(3) slot. A (1,1) Vector 2 is connected to the Frequency(2) slot. No value is connected to the Out(3) slot. A 2 by 2 checkerboard is displayed in the lower part of the node.](images/CheckerboardNodeThumb.png) | | Generates a checkerboard of alternating colors between inputs Color A and Color B based on input UV. | ## Noise | [Gradient Noise](Gradient-Noise-Node.md) | [Simple Noise](Simple-Noise-Node.md) | | :------------------------ | :---------------------------- | -| ![Image](images/GradientNoiseNodeThumb.png) | ![Image](images/SimpleNoiseNodeThumb.png) | +| ![A Gradient Noise node. A UV0 value is connected to the UV(2) slot. A 10 scalar is attached to the Scale(1) slot. No value is connected to the Out(1) slot. A textured, abstract grayscale pattern that resembles soft, cloudy noise is displayed in the lower part of the node.](images/GradientNoiseNodeThumb.png) | ![A Simple Noise node. A UV0 value is connected to the UV(2) slot. A 500 scalar is attached to the Scale(1) slot. No value is connected to the Out(1) slot. A TV static pattern is displayed in the lower part of the node.](images/SimpleNoiseNodeThumb.png) | | Generates a gradient, or Perlin, noise based on input UV. | Generates a simple, or Value, noise based on input UV. | | [**Voronoi**](Voronoi-Node) | | -| ![Image](images/VoronoiNodeThumb.png) || +| ![A Voronoi node. A UV0 value is connected to the UV(2) slot. A 2 scalar is attached to the Angle Offset(1) slot. A 5 scalar is attached to the Cell Density(1) slot. No value is connected to the Out(1) slot or the Cells(1) slot. A pattern of cells is displayed in the lower part of the node.](images/VoronoiNodeThumb.png) || |Generates a Voronoi, or Worley, noise based on input UV. || ## Shape | [Ellipse](Ellipse-Node.md) | [Polygon](Polygon-Node.md) | | :----------------------------------------------------------- | :----------------------------------------------------------- | -| ![Image](images/EllipseNodeThumb.png) | ![Image](images/PolygonNodeThumb.png) | +| ![An Ellipse node. A UV0 value is connected to the UV(2) slot. 0.5 scalars are atttached to the Width(1) and Height(1) slots. No value is connected to the Out(1) slot. A solid white disk is displayed in the lower part of the node.](images/EllipseNodeThumb.png) | ![A Polygon node. A UV0 value is connected to the UV(2) slot. A 6 scalar is attached to the Sides(1) slot. 0.5 scalars are atttached to the Width(1) and Height(1) slots. No value is connected to the Out(1) slot. A solid white hexagon is displayed in the lower part of the node.](images/PolygonNodeThumb.png) | | Generates an ellipse shape based on input UV at the size specified by inputs Width and Height. | Generates a regular polygon shape based on input UV at the size specified by inputs Width and Height. The polygon's amount of sides is determined by input Sides. | | [**Rectangle**](Rectangle-Node.md) | [**Rounded Rectangle**](Rounded-Rectangle-Node.md) | -| ![Image](images/RectangleNodeThumb.png) | ![Image](images/RoundedRectangleNodeThumb.png) | +| ![A Rectangle node. A UV0 value is connected to the UV(2) slot. A 0.5 scalar is attached to the Width(1) slot. A 0.5 scalar is attached to the Height(1) slot. No value is connected to the Out(1) slot. The Fastest option is selected in a drop-down. A solid white square is displayed in the lower part of the node.](images/RectangleNodeThumb.png) | ![A Rounded Rectangle node. A UV0 value is connected to the UV(2) slot. 0.5 scalars are attached to the Width(1), Height(1), and Radius(1) slots. No value is connected to the Out(1) slot. A solid white rounded square is displayed in the lower part of the node.](images/RoundedRectangleNodeThumb.png) | | Generates a rectangle shape based on input UV at the size specified by inputs Width and Height. | Generates a rounded rectangle shape based on input UV at the size specified by inputs Width and Height. The input Radius defines the radius of each corner. | -| [Rounded Polygon](Rounded-Polygon-Node.md) || -|![](images/RoundedPolygonNodeThumb.png) || +| [](Rounded-Polygon-Node.md) || +|![A Rounded Polygon node. A UV0 value is connected to the UV(2) slot. 0.5 scalars are atttached to the Width(1) and Height(1) slots. A 5 scalar is attached to the Sides(1) slot. A 0.3 scalar is attached to the Roudness(1) slot. No value is connected to the Out(1) slot. A solid white rounded pentagon is displayed in the lower part of the node.](images/RoundedPolygonNodeThumb.png) || | Generates a rounded polygon shape based on input UV at the size specified by inputs Width and Height. The input Sides specifies the number of sides, and the input Roundness defines the roundness of each corner. || diff --git a/Packages/com.unity.shadergraph/Documentation~/Sample-Texture-2D-Node.md b/Packages/com.unity.shadergraph/Documentation~/Sample-Texture-2D-Node.md index aade64504b2..74287e70811 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Sample-Texture-2D-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Sample-Texture-2D-Node.md @@ -2,7 +2,7 @@ The Sample Texture 2D node samples a **Texture 2D** asset and returns a **Vector 4** color value. You can specify the **UV** coordinates for a texture sample and use a [Sampler State node](Sampler-State-Node.md) to define a specific Sampler State. -A Sample Texture 2D node can also sample a normal map. For more information, see the [Controls](#controls) section, or [Normal map (Bump mapping)](https://docs.unity3d.com/Manual/StandardShaderMaterialParameterNormalMap.html) in the Unity User manual. +A Sample Texture 2D node can also sample a normal map. For more information, refer to the [Controls](#controls) section, or [Normal map (Bump mapping)](https://docs.unity3d.com/Manual/StandardShaderMaterialParameterNormalMap.html) in the Unity User manual. [!include[nodes-sample-errors](./snippets/sample-nodes/nodes-sample-errors.md)] @@ -36,43 +36,14 @@ The Sample Texture 2D [!include[nodes-inputs](./snippets/nodes-inputs.md)] The Sample Texture 2D [!include[nodes-controls](./snippets/nodes-controls.md)] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
TypeDropdownSelect whether the texture is a Texture asset or a normal map.
DefaultThe texture is a Texture asset.
NormalThe texture is a normal map.
SpaceDropdownWhen the node's Type is Normal to use a texture as a normal map, choose the Space for the normal map.
TangentUse a Tangent normal map whenever the mesh for a geometry needs to deform or change, such as when animating a character. With Tangent Space, the normal map's normals are relative to the existing vertex normals of any geometry rendered with your Shader Graph. Your Shader Graph only adjusts the vertex normals and not override them.
ObjectUse an Object normal map whenever the mesh for a geometry is static and doesn't deform. With Object Space, the normal map's normals are explicit and override the normals of any geometry rendered with your Shader Graph. Because a static mesh's normals never change, an Object normal map also maintains consistent lighting across different levels of detail (LODs).
For more information about normal maps, see Normal map (Bump mapping) in the User manual.
+| **Name** | **Type** | **Subtype** | **Description** | +|----------|--------------|-------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| **Type** | **Dropdown** | N/A | Select whether the texture is a Texture asset or a normal map. | +| N/A | N/A | **Default** | The texture is a Texture asset. | +| N/A | N/A | **Normal** | The texture is a normal map. | +| Space | Dropdown | N/A | Select whether the texture is a Texture asset or a normal map. | +| N/A | N/A | **Tangent** | Use a Tangent normal map whenever the mesh for a geometry needs to deform or change, such as when animating a character. With Tangent Space, the normal map's normals are relative to the existing vertex normals of any geometry rendered with your Shader Graph. Your Shader Graph only adjusts the vertex normals and not override them. | +| N/A | N/A | **Object** | Use an Object normal map whenever the mesh for a geometry is static and doesn't deform. With Object Space, the normal map's normals are explicit and override the normals of any geometry rendered with your Shader Graph. Because a static mesh's normals never change, an Object normal map also maintains consistent lighting across different levels of detail (LODs).
For more information about normal maps, refer to Normal map (Bump mapping) in the User manual. | ## Additional node settings diff --git a/Packages/com.unity.shadergraph/Documentation~/Shader-Graph-Sample-UGUI-Shaders-Examples.md b/Packages/com.unity.shadergraph/Documentation~/Shader-Graph-Sample-UGUI-Shaders-Examples.md index 54bd2f1a785..bd941929dc3 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Shader-Graph-Sample-UGUI-Shaders-Examples.md +++ b/Packages/com.unity.shadergraph/Documentation~/Shader-Graph-Sample-UGUI-Shaders-Examples.md @@ -73,7 +73,7 @@ Library Subgraph Nodes used in this sample: - Vignette ## Buttons -![](images/UITools-buttons.png) +![User interface component with three distinct buttons labeled Button and a circular person icon. From left to right: a blue capsule-shaped button, a circular person icon, a dark blue rhombus button, and a green rounded rectangle button. ](images/UITools-buttons.png) These examples show how to create buttons of various visual styles. Each button has exposed parameters that control the button’s visual states - selected, pressed, and active. In the example scene, you can take a look at how these material parameters are connected to the button’s state events to drive the appearance of the button. Many shape elements of the buttons use the AntiAliasing node which converts SDFs and gradients to perfectly anti-aliased shapes, regardless of scale or camera position. For more details on how to accomplish this, refer to [How to create a resolution-independent shape](Shader-Graph-Sample-UGUI-Shaders-How-tos-Res-indepenent.md). @@ -120,7 +120,8 @@ Library Subgraph Nodes used in this sample: - AntiAliasing ## Indicators -![](images/UITools-meters2.png) +![From left to right: A rounded, 3D capsule split into orange and black halves, a circular icon featuring a person symbol, framed by a blue arc, a transparent sphere partially filled with glowing red liquid, a gradient progress bar fading from pink to purple and blue.](images/UITools-meters2.png) + These UI elements indicate things to the player visually such as health level, ammo count, shield power, etc. All of them have an exposed material parameter called “Health” that drives the level of the meter. Using a script, you can connect this parameter to any value in your project to indicate its level to the player. ### AquaMeter @@ -172,7 +173,7 @@ Library Subgraph Nodes used in this sample: - HistogramScan ## Progress Bars -![](images/UITools-meters.png) +![From left to right: A circular segmented ring with a gradient transitioning from orange and brown to dark purple; a gradient bar smoothly blending from dark purple through pink, orange, yellow, to light gray; a spinner with circular segments fading from light to dark to simulate motion; and another spinner featuring green dots forming an incomplete curved circle, with larger dots clustered at the bottom-right and smaller ones tapering toward the top-left.](images/UITools-meters.png) ### FancyLoading This is a circle that’s made of circles. Each circle starts large and then gets smaller over time and the effect is offset so it happens in a wave pattern. The larger circle pattern also appears to move and change perspective over time as if it were tilting around in a 3D space. These effects are all achieved by chaining together various nodes from the Subgraph Library. @@ -219,4 +220,4 @@ Library Subgraph Nodes used in this sample: - LinearTime - GridTiles - Pill -- AntiAliasing \ No newline at end of file +- AntiAliasing diff --git a/Packages/com.unity.shadergraph/Documentation~/Shader-Graph-Sample-UGUI-Shaders-Subgraph-nodes.md b/Packages/com.unity.shadergraph/Documentation~/Shader-Graph-Sample-UGUI-Shaders-Subgraph-nodes.md index 3c9b56c5c8b..9cc889071b6 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Shader-Graph-Sample-UGUI-Shaders-Subgraph-nodes.md +++ b/Packages/com.unity.shadergraph/Documentation~/Shader-Graph-Sample-UGUI-Shaders-Subgraph-nodes.md @@ -12,7 +12,7 @@ The subgraphs are broken into the following categories: - **SDFs** - Signed Distance Field shapes are the basis for UI elements. The value of each pixel in an SDF represents the distance to the edge of the shape. You can use the SDF data to create resolution-independent shapes that are either sharp or blurry. Shapes in the set include circle, hexagon, pill, rectangle, star, and triangle. This collection also contains operators for combining SDF shapes. - **Time** - These nodes output time in various forms - looping, mirroredm, sine wave, etc. - **UV** - These nodes manipulate UV coordinates including move, scale, tilt, mirror, invert, and more. Shapes and elements can be transformed by adjusting their UV coordinates with these nodes. - ![](images/UITools-subgraphs.png) + ![A collection of graphical nodes within a node-based visual editor, grouped into labeled sections—Gradients, Helpers, Patterns, SDFs, Time, and UV. Each node features preview images and labeled inputs/outputs, handling elements like color, shape, noise, and UV manipulation.](images/UITools-subgraphs.png) ## Inputs @@ -348,4 +348,4 @@ Usage Examples: Distorts the UV coordinates in a wave pattern. The strength and size of the waves can be controlled with the Amplitude and Frequency inputs. Usage Example: -- Examples/Indicators/FantasyMeter \ No newline at end of file +- Examples/Indicators/FantasyMeter diff --git a/Packages/com.unity.shadergraph/Documentation~/Shader-Graph-Sample-UGUI-Shaders.md b/Packages/com.unity.shadergraph/Documentation~/Shader-Graph-Sample-UGUI-Shaders.md index 38627e6fd2c..da576e96f05 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Shader-Graph-Sample-UGUI-Shaders.md +++ b/Packages/com.unity.shadergraph/Documentation~/Shader-Graph-Sample-UGUI-Shaders.md @@ -1,5 +1,5 @@ # UGUI Shaders -![](images/UIToolsSample.png) +![The Shader Graph UGUI Shaders: A collection of Shader Graph subgraphs that serve as building blocks for building user interface elements.](images/UIToolsSample.png) The Shader Graph UGUI Shaders sample is a collection of Shader Graph subgraphs that serve as building blocks for building user interface elements. They speed up the process of building widgets, buttons, and backgrounds for the user interface of your project. Using these tools, you can build dynamic, procedural UI elements that don’t require any texture memory and scale correctly for any resolution screen. @@ -32,4 +32,4 @@ We have two main objectives with this sample set: * [How to create a resolution-independent shape](Shader-Graph-Sample-UGUI-Shaders-How-tos-Res-indepenent.md) * [How to create a functioning button](Shader-Graph-Sample-UGUI-Shaders-How-tos-Button.md) * [How to make shapes that adapt to the aspect ratio of the UI element](Shader-Graph-Sample-UGUI-Shaders-How-tos-aspect-ratio.md) -* [Notes on performance](Shader-Graph-Sample-UGUI-Shaders-Notes-on-performance.md) \ No newline at end of file +* [Notes on performance](Shader-Graph-Sample-UGUI-Shaders-Notes-on-performance.md) diff --git a/Packages/com.unity.shadergraph/Documentation~/Sub-graph.md b/Packages/com.unity.shadergraph/Documentation~/Sub-graph.md index dd26fd69036..889ad561e06 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Sub-graph.md +++ b/Packages/com.unity.shadergraph/Documentation~/Sub-graph.md @@ -11,8 +11,6 @@ For information about the components of a Sub Graph, see [Sub Graph Asset](Sub-g ## Output Node -![](images/SubGraph-Output-Node.png) - The Output Node defines the output ports of a [Sub Graph Node](Sub-graph-Node.md) when you reference the Sub Graph from inside another graph. To add and remove ports, use the [Custom Port Menu](Custom-Port-Menu.md) in the **Node Settings** tab of the [Graph Inspector](Internal-Inspector.md) by clicking on the Sub Graph Output node. The preview used for Sub Graphs is determined by the first port of the Output Node. Valid [Data Types](Data-Types.md) for the first port are `Float`, `Vector 2`, `Vector 3`, `Vector 4`, `Matrix2`, `Matrix3`, `Matrix4`, and `Boolean`. Any other data type will produce an error in the preview shader and the Sub Graph will become invalid. diff --git a/Packages/com.unity.shadergraph/Documentation~/TableOfContents.md b/Packages/com.unity.shadergraph/Documentation~/TableOfContents.md index 861a45e2e04..6841bfc20ee 100644 --- a/Packages/com.unity.shadergraph/Documentation~/TableOfContents.md +++ b/Packages/com.unity.shadergraph/Documentation~/TableOfContents.md @@ -2,6 +2,7 @@ * [Getting started with Shader Graph](Getting-Started) * [Creating a new Shader Graph Asset](Create-Shader-Graph) * [My first Shader Graph](First-Shader-Graph) + * [Create a new shader graph from a template](create-shader-graph-template.md) * [Shader Graph Window](Shader-Graph-Window) * [Blackboard](Blackboard) * [Main Preview](Main-Preview) @@ -35,6 +36,9 @@ * [Edge](Edge) * [Property Types](Property-Types) * [Keywords](Keywords) + * [Introduction to keywords](Keywords-concepts.md) + * [Manage keywords](Keywords-manage.md) + * [Keyword parameter reference](Keywords-reference.md) * [Data Types](Data-Types) * [Port Bindings](Port-Bindings) * [Shader Stage](Shader-Stage) diff --git a/Packages/com.unity.shadergraph/Documentation~/Transform-Node.md b/Packages/com.unity.shadergraph/Documentation~/Transform-Node.md index 98e7e15a67d..c3ec4cbdbfa 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Transform-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Transform-Node.md @@ -29,7 +29,15 @@ The following control appears on the Node Settings tab of the Graph Inspector wh ## World and Absolute World -Use the **World** and **Absolute World** space options to transform the coordinate space of [position](Position-Node.md) values. The **World** space option uses the Scriptable Render Pipeline default world space to convert position values. The **Absolute World** space option uses absolute world space to convert position values in all Scriptable Render Pipelines. +Use the **World** and **Absolute World** space options to transform the coordinate space of [position](Position-Node.md) values. + +In [URP](https://docs.unity3d.com/Manual/urp/urp-introduction.html), both **World** and **Absolute World** are relative to the global world position of the object in the Scene. + +In [HDRP](https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@latest/index.html): + +- **World** space is [camera-relative](https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@latest?preview=1&subfolder=/manual/Camera-Relative-Rendering.html). + +- **Absolute World** space is relative to the global world position of the object in the Scene. If you use the **Transform Node** to convert coordinate spaces that aren't for position values, Unity recommends that you use the **World** space option. Using **Absolute World** on values that don't represent position might result in unexpected behavior. diff --git a/Packages/com.unity.shadergraph/Documentation~/create-shader-graph-template.md b/Packages/com.unity.shadergraph/Documentation~/create-shader-graph-template.md new file mode 100644 index 00000000000..cbaae299484 --- /dev/null +++ b/Packages/com.unity.shadergraph/Documentation~/create-shader-graph-template.md @@ -0,0 +1,35 @@ +# Create a new shader graph from a template + +To create a shader graph from a template, use the Template Browser window. You can then adapt the shader graph to your needs. + +You can also share custom templates with your team through the Template Browser window, to maintain consistency across shaders in a project. This feature is particularly useful for projects with unique lighting setups or specific shader requirements. + +The Template Browser window displays only templates that are compatible with the current project. + +# Create a new shader graph using a template + +To create a new shader graph using a template: + +1. In the **Project** window, right-click and select **Create** > **Shader Graph** > **From Template...**. + + The Template Browser window opens. + +1. Select the desired template. + + Unity creates a new shader graph asset. + +1. Name the shader graph asset and edit it. + +## Create a custom shader graph template + +To create a custom shader graph template: + +1. Select a shader graph asset in your project. + +1. In the **Inspector** window, enable **Use As Template**. + +1. Expand the **Template** foldout (triangle). + +1. Set the metadata that describes the template in the Template Browser window. + +1. Click anywhere in the **Project** window to preview and save the template metadata. diff --git a/Packages/com.unity.shadergraph/Documentation~/images/Color-Mode-User-Defined.png b/Packages/com.unity.shadergraph/Documentation~/images/Color-Mode-User-Defined.png deleted file mode 100644 index 6c35e6ebbb8..00000000000 Binary files a/Packages/com.unity.shadergraph/Documentation~/images/Color-Mode-User-Defined.png and /dev/null differ diff --git a/Packages/com.unity.shadergraph/Documentation~/images/CustomRenderTexture-Animation.gif b/Packages/com.unity.shadergraph/Documentation~/images/CustomRenderTexture-Animation.gif deleted file mode 100644 index 89b82aa1f1c..00000000000 Binary files a/Packages/com.unity.shadergraph/Documentation~/images/CustomRenderTexture-Animation.gif and /dev/null differ diff --git a/Packages/com.unity.shadergraph/Documentation~/images/CustomRenderTexture-Animation.mp4 b/Packages/com.unity.shadergraph/Documentation~/images/CustomRenderTexture-Animation.mp4 new file mode 100644 index 00000000000..d47f196e231 Binary files /dev/null and b/Packages/com.unity.shadergraph/Documentation~/images/CustomRenderTexture-Animation.mp4 differ diff --git a/Packages/com.unity.shadergraph/Documentation~/images/CustomRenderTextureInspector.png b/Packages/com.unity.shadergraph/Documentation~/images/CustomRenderTextureInspector.png deleted file mode 100644 index 12ef1a0e482..00000000000 Binary files a/Packages/com.unity.shadergraph/Documentation~/images/CustomRenderTextureInspector.png and /dev/null differ diff --git a/Packages/com.unity.shadergraph/Documentation~/images/Shader-Graph-Toolbar.png b/Packages/com.unity.shadergraph/Documentation~/images/Shader-Graph-Toolbar.png deleted file mode 100644 index 4c28c556b94..00000000000 Binary files a/Packages/com.unity.shadergraph/Documentation~/images/Shader-Graph-Toolbar.png and /dev/null differ diff --git a/Packages/com.unity.shadergraph/Documentation~/images/SubGraph-Output-Node.png b/Packages/com.unity.shadergraph/Documentation~/images/SubGraph-Output-Node.png deleted file mode 100644 index aac5d0f35e6..00000000000 Binary files a/Packages/com.unity.shadergraph/Documentation~/images/SubGraph-Output-Node.png and /dev/null differ diff --git a/Packages/com.unity.shadergraph/Documentation~/images/keywords_boolean.png b/Packages/com.unity.shadergraph/Documentation~/images/keywords_boolean.png deleted file mode 100644 index deec8c5ac46..00000000000 Binary files a/Packages/com.unity.shadergraph/Documentation~/images/keywords_boolean.png and /dev/null differ diff --git a/Packages/com.unity.shadergraph/Documentation~/images/keywords_built-in.png b/Packages/com.unity.shadergraph/Documentation~/images/keywords_built-in.png deleted file mode 100644 index 9292e5b197e..00000000000 Binary files a/Packages/com.unity.shadergraph/Documentation~/images/keywords_built-in.png and /dev/null differ diff --git a/Packages/com.unity.shadergraph/Documentation~/images/sg-append-node-example.png b/Packages/com.unity.shadergraph/Documentation~/images/sg-append-node-example.png new file mode 100644 index 00000000000..8fee10f48aa Binary files /dev/null and b/Packages/com.unity.shadergraph/Documentation~/images/sg-append-node-example.png differ diff --git a/Packages/com.unity.shadergraph/Documentation~/snippets/nodes-compatibility-all.md b/Packages/com.unity.shadergraph/Documentation~/snippets/nodes-compatibility-all.md index f7f0082a610..20382777710 100644 --- a/Packages/com.unity.shadergraph/Documentation~/snippets/nodes-compatibility-all.md +++ b/Packages/com.unity.shadergraph/Documentation~/snippets/nodes-compatibility-all.md @@ -4,19 +4,6 @@ title: nodes-compatibility-all node is supported on the following render pipelines: - - - - - - - - - - - - - - - -
Built-In Render PipelineUniversal Render Pipeline (URP)High Definition Render Pipeline (HDRP)
YesYesYes
+| Built-In Render Pipeline | Universal Render Pipeline (URP) | High Definition Render Pipeline (HDRP) | +|--------------------------|---------------------------------|----------------------------------------| +| Yes | Yes | Yes | diff --git a/Packages/com.unity.shadergraph/Documentation~/snippets/sample-nodes/nodes-sample-mip-bias-sample-mode-table.md b/Packages/com.unity.shadergraph/Documentation~/snippets/sample-nodes/nodes-sample-mip-bias-sample-mode-table.md index 83261725ce8..1eb6b4a365e 100644 --- a/Packages/com.unity.shadergraph/Documentation~/snippets/sample-nodes/nodes-sample-mip-bias-sample-mode-table.md +++ b/Packages/com.unity.shadergraph/Documentation~/snippets/sample-nodes/nodes-sample-mip-bias-sample-mode-table.md @@ -2,48 +2,13 @@ title: nodes-sample-mip-bias-sample-mode-table.md --- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
Use Global Mip BiasToggleEnable Use Global Mip Bias to use the render pipeline's Global Mip Bias. This bias adjusts the percentage of texture information taken from a specific mip when sampling. For more information on mip bias, see Mipmaps introduction in the Unity User Manual.
EnabledShader Graph uses the render pipeline's Global Mip Bias to adjust the texture information taken when sampling.
DisabledShader Graph doesn't use the render pipeline's Global Mip Bias to adjust texture information when sampling.
Mip Sampling ModeDropdownChoose the sampling mode to use to calculate the mip level of the texture.
StandardThe render pipeline calculates and automatically selects the mip for the texture.
LODThe render pipeline lets you set an explicit mip for the texture on the node. The texture will always use this mip, regardless of the DDX or DDY calculations between pixels. Set the Mip Sampling Mode to LOD to connect the node to a Block node in the Vertex Context. For more information on Block nodes and Contexts, see Master Stack.
GradientThe render pipeline lets you set the DDX and DDY values to use for its mip calculation, instead of using the values calculated from the texture's UV coordinates. For more information on DDX and DDY values, see Mipmaps introduction in the User Manual.
BiasThe render pipeline lets you set a bias to adjust the calculated mip for a texture up or down. Negative values bias the mip to a higher resolution. Positive values bias the mip to a lower resolution. The render pipeline can add this value to the value of the Global Mip Bias, or use this value instead of its Global Mip Bias. For more information on mip bias, see Mipmaps introduction in the User Manual.
+| **Name** | **Type** | **Option** | **Description** | +|-------------------------|----------|--------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| **Use Global Mip Bias** | Toggle | N/A | Enable Use Global Mip Bias to use the render pipeline's Global Mip Bias. This bias adjusts the percentage of texture information taken from a specific mip when sampling. For more information on mip bias, refer to Mipmaps introduction in the Unity User Manual. | +| N/A | N/A | **Enabled** | Shader Graph uses the render pipeline's Global Mip Bias to adjust the texture information taken when sampling. | +| N/A | N/A | **Disabled** | Shader Graph doesn't use the render pipeline's Global Mip Bias to adjust texture information when sampling. | +| **Mip Sampling Mode** | Dropdown | N/A | Choose the sampling mode to use to calculate the mip level of the texture. | +| N/A | N/A | **Standard** | The render pipeline calculates and automatically selects the mip for the texture. | +| N/A | N/A | **LOD** | The render pipeline lets you set an explicit mip for the texture on the node. The texture will always use this mip, regardless of the DDX or DDY calculations between pixels. Set the Mip Sampling Mode to LOD to connect the node to a Block node in the Vertex Context. For more information on Block nodes and Contexts, refer to Master Stack. | +| N/A | N/A | **Gradient** | The render pipeline lets you set the DDX and DDY values to use for its mip calculation, instead of using the values calculated from the texture's UV coordinates. For more information on DDX and DDY values, refer to Mipmaps introduction in the User Manual. | +| N/A | N/A | **Bias** | The render pipeline lets you set a bias to adjust the calculated mip for a texture up or down. Negative values bias the mip to a higher resolution. Positive values bias the mip to a lower resolution. The render pipeline can add this value to the value of the Global Mip Bias, or use this value instead of its Global Mip Bias. For more information on mip bias, refer to Mipmaps introduction in the User Manual. | diff --git a/Packages/com.unity.shadergraph/Editor/Data/Graphs/AbstractShaderProperty.cs b/Packages/com.unity.shadergraph/Editor/Data/Graphs/AbstractShaderProperty.cs index f9fcb5807ea..605684cc6a0 100644 --- a/Packages/com.unity.shadergraph/Editor/Data/Graphs/AbstractShaderProperty.cs +++ b/Packages/com.unity.shadergraph/Editor/Data/Graphs/AbstractShaderProperty.cs @@ -24,12 +24,14 @@ public bool gpuInstanced set { } } + internal bool isPerElementVFX => overrideHLSLDeclaration && hlslDeclarationOverride != HLSLDeclaration.Global; + internal virtual string GetHLSLVariableName(bool isSubgraphProperty, GenerationMode mode) { if (mode == GenerationMode.VFX) { // Per-element exposed properties are provided by the properties structure filled by VFX. - if (overrideHLSLDeclaration && hlslDeclarationOverride != HLSLDeclaration.Global) + if (isPerElementVFX) return $"PROP.{referenceName}"; // For un-exposed global properties, just read from the cbuffer. else diff --git a/Packages/com.unity.shadergraph/Editor/Generation/ShaderGraphVfxAsset.cs b/Packages/com.unity.shadergraph/Editor/Generation/ShaderGraphVfxAsset.cs index cc26259fd30..f680fa74879 100644 --- a/Packages/com.unity.shadergraph/Editor/Generation/ShaderGraphVfxAsset.cs +++ b/Packages/com.unity.shadergraph/Editor/Generation/ShaderGraphVfxAsset.cs @@ -147,10 +147,16 @@ public List properties } } + internal ShaderStageCapability GetPropertyStage(int index) + { + return m_PropertiesStages[index]; + } + public List fragmentProperties { get { + //This getter is only used for old SG integration, kept for compatibility EnsureProperties(); var allProperties = m_Data.m_Properties.SelectValue().ToList(); var fragProperties = new List(); @@ -164,23 +170,6 @@ public List fragmentProperties } } - public List vertexProperties - { - get - { - EnsureProperties(); - var allProperties = m_Data.m_Properties.SelectValue().ToList(); - var vertexProperties = new List(); - for (var i = 0; i < allProperties.Count(); i++) - { - if (allProperties[i] is AbstractShaderProperty property - && (m_PropertiesStages[i] & ShaderStageCapability.Vertex) != 0) - vertexProperties.Add(property); - } - return vertexProperties; - } - } - internal void SetProperties(List propertiesList) { m_Data.m_Properties.Clear(); diff --git a/Packages/com.unity.shadergraph/Editor/Generation/Target.cs b/Packages/com.unity.shadergraph/Editor/Generation/Target.cs index 8547400f890..8222c75c746 100644 --- a/Packages/com.unity.shadergraph/Editor/Generation/Target.cs +++ b/Packages/com.unity.shadergraph/Editor/Generation/Target.cs @@ -51,5 +51,7 @@ public virtual bool DerivativeModificationCallback( // think this is not called by anyone anymore, leaving it to avoid changing client code public abstract bool WorksWithSRP(RenderPipelineAsset scriptableRenderPipeline); + + virtual public SubTarget activeSubTarget { get; set; } } } diff --git a/Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/Editor/ShaderGraph/Targets/BuiltInTarget.cs b/Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/Editor/ShaderGraph/Targets/BuiltInTarget.cs index a1eb488de77..877431a8ea0 100644 --- a/Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/Editor/ShaderGraph/Targets/BuiltInTarget.cs +++ b/Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/Editor/ShaderGraph/Targets/BuiltInTarget.cs @@ -153,7 +153,7 @@ public string renderQueue } } - public SubTarget activeSubTarget + public override SubTarget activeSubTarget { get => m_ActiveSubTarget.value; set => m_ActiveSubTarget = value; diff --git a/Packages/com.unity.shadergraph/Editor/Generation/Targets/CustomRenderTexture/CustomRenderTextureTarget.cs b/Packages/com.unity.shadergraph/Editor/Generation/Targets/CustomRenderTexture/CustomRenderTextureTarget.cs index 7515f386a1a..bbf736ef575 100644 --- a/Packages/com.unity.shadergraph/Editor/Generation/Targets/CustomRenderTexture/CustomRenderTextureTarget.cs +++ b/Packages/com.unity.shadergraph/Editor/Generation/Targets/CustomRenderTexture/CustomRenderTextureTarget.cs @@ -87,7 +87,7 @@ public static List GetSubTargets(T target) where T : Target return subTargets; } - public SubTarget activeSubTarget + public override SubTarget activeSubTarget { get => m_ActiveSubTarget; set => m_ActiveSubTarget = value; diff --git a/Packages/com.unity.shadergraph/Editor/Importers/ShaderGraphImporter.cs b/Packages/com.unity.shadergraph/Editor/Importers/ShaderGraphImporter.cs index 0e8be0c355a..49a32d9df79 100644 --- a/Packages/com.unity.shadergraph/Editor/Importers/ShaderGraphImporter.cs +++ b/Packages/com.unity.shadergraph/Editor/Importers/ShaderGraphImporter.cs @@ -16,7 +16,7 @@ namespace UnityEditor.ShaderGraph { [ExcludeFromPreset] - [ScriptedImporter(132, Extension, -902)] + [ScriptedImporter(133, Extension, -902)] [CoreRPHelpURL("Shader-Graph-Asset", "com.unity.shadergraph")] class ShaderGraphImporter : ScriptedImporter { @@ -901,7 +901,21 @@ void AddCoordinateSpaceSnippets(InterpolatorType interpolatorType, Func x.Children) .Union(graph.properties) - .Where(x => x.isExposed); + .Where(x => + { + if (!asset.generatesWithShaderGraph) + return x.isExposed; //Compatibility behavior for old SG integration + + if (x is AbstractShaderProperty shaderProperty) + { + if (shaderProperty.isExposed) + return true; //see implicit override of isPerElementVFX in https://github.cds.internal.unity3d.com/unity/unity/blob/b27af44f6be3c181e86bd3c2e30fd58738a69404/Packages/com.unity.shadergraph/Editor/Data/Graphs/GraphData.cs#L1357 + + return shaderProperty.isPerElementVFX && x.isExposable; + } + + return x.isExposable; + }); foreach (var property in sortedProperties) { diff --git a/Packages/com.unity.shadergraph/Editor/Importers/ShaderGraphImporterEditor.cs b/Packages/com.unity.shadergraph/Editor/Importers/ShaderGraphImporterEditor.cs index e48549a5f42..ed1e6ff880d 100644 --- a/Packages/com.unity.shadergraph/Editor/Importers/ShaderGraphImporterEditor.cs +++ b/Packages/com.unity.shadergraph/Editor/Importers/ShaderGraphImporterEditor.cs @@ -116,15 +116,16 @@ GraphData GetGraphData(AssetImporter importer) GUIUtility.systemCopyBuffer = generator.generatedShader; } - EditorGUILayout.Space(); + EditorGUILayout.Space(); + EditorGUI.BeginChangeCheck(); EditorGUILayout.PropertyField(serializedObject.FindProperty(ShaderGraphImporter.UseAsTemplateFieldName)); - bool needsReimport = false; + bool needsReimport = EditorGUI.EndChangeCheck(); using (new EditorGUI.IndentLevelScope(1)) using (new EditorGUI.DisabledScope(!(target as ShaderGraphImporter)?.UseAsTemplate ?? true)) { EditorGUI.BeginChangeCheck(); EditorGUILayout.PropertyField(serializedObject.FindProperty(ShaderGraphImporter.ExposeTemplateAsShaderFieldName), new GUIContent("Expose as Shader", "Toggle whether or not the template shader should be exposed in shader dropdowns.")); - needsReimport = EditorGUI.EndChangeCheck(); + needsReimport |= EditorGUI.EndChangeCheck(); EditorGUILayout.PropertyField(serializedObject.FindProperty(ShaderGraphImporter.TemplateFieldName)); } @@ -191,7 +192,7 @@ internal static bool ShowGraphEditWindow(string path) [OnOpenAsset(0)] public static bool OnOpenAsset(int instanceID, int line) { - var path = AssetDatabase.GetAssetPath(instanceID); + var path = AssetDatabase.GetAssetPath((EntityId)instanceID); return ShowGraphEditWindow(path); } } diff --git a/Packages/com.unity.shadergraph/Editor/Importers/ShaderGraphTemplateHelper.cs b/Packages/com.unity.shadergraph/Editor/Importers/ShaderGraphTemplateHelper.cs index ba11fb6142c..dcd8c508c17 100644 --- a/Packages/com.unity.shadergraph/Editor/Importers/ShaderGraphTemplateHelper.cs +++ b/Packages/com.unity.shadergraph/Editor/Importers/ShaderGraphTemplateHelper.cs @@ -1,3 +1,4 @@ +using System.IO; using UnityEditor.Experimental.GraphView; using UnityEngine.Rendering.ShaderGraph; @@ -33,58 +34,51 @@ public string OpenSaveFileDialog() public GraphViewTemplateWindow.ISaveFileDialogHelper saveFileDialogHelper { get; set; } = new SaveFileDialog(); - public void RaiseTemplateUsed(GraphViewTemplateDescriptor usedTemplate) { } + public void RaiseTemplateUsed(GraphViewTemplateDescriptor usedTemplate) => + ShaderGraphAnalytics.SendShaderGraphTemplateEvent(usedTemplate); public bool TryGetTemplate(string assetPath, out GraphViewTemplateDescriptor graphViewTemplate) { - var importer = AssetImporter.GetAtPath(assetPath) as ShaderGraphImporter; - if (importer != null) + if (FileUtilities.TryGetImporter(assetPath, out var importer)) { var template = importer.Template; if (importer.UseAsTemplate) { + var templateName = !string.IsNullOrEmpty(template.name) ? template.name : Path.GetFileNameWithoutExtension(assetPath); + var templateCategory = !string.IsNullOrEmpty(template.category) ? template.category : "uncategorized"; + graphViewTemplate = new GraphViewTemplateDescriptor { - name = string.IsNullOrEmpty(template.name) ? importer.name : template.name, - category = template.category, + name = templateName, + category = templateCategory, description = template.description, icon = template.icon, thumbnail = template.thumbnail, }; - return true; } } - graphViewTemplate = default; return false; } public bool TrySetTemplate(string assetPath, GraphViewTemplateDescriptor graphViewTemplate) { - if (string.IsNullOrEmpty(assetPath)) - return false; - - if (AssetDatabase.AssetPathExists(assetPath)) + if (FileUtilities.TryGetImporter(assetPath, out var importer)) { - var importer = AssetImporter.GetAtPath(assetPath) as ShaderGraphImporter; - if (importer != null) - { - importer.UseAsTemplate = true; - var template = new ShaderGraphTemplate - { - name = graphViewTemplate.name, - category = graphViewTemplate.category, - description = graphViewTemplate.description, - icon = graphViewTemplate.icon, - thumbnail = graphViewTemplate.thumbnail, - }; + importer.UseAsTemplate = true; - importer.Template = template; - return true; - } + var template = new ShaderGraphTemplate + { + name = graphViewTemplate.name, + category = graphViewTemplate.category, + description = graphViewTemplate.description, + icon = graphViewTemplate.icon, + thumbnail = graphViewTemplate.thumbnail, + }; + importer.Template = template; + return true; } - return false; } } diff --git a/Packages/com.unity.shadergraph/Editor/ShaderGraphAnalytics.cs b/Packages/com.unity.shadergraph/Editor/ShaderGraphAnalytics.cs index 65d4d2fd291..c2733c19158 100644 --- a/Packages/com.unity.shadergraph/Editor/ShaderGraphAnalytics.cs +++ b/Packages/com.unity.shadergraph/Editor/ShaderGraphAnalytics.cs @@ -1,8 +1,9 @@ +using System; using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; using System.Linq; +using UnityEditor.Experimental.GraphView; using UnityEngine.Analytics; -using UnityEngine; -using System; namespace UnityEditor.ShaderGraph { @@ -12,6 +13,117 @@ class ShaderGraphAnalytics const int k_MaxNumberOfElements = 1000; const string k_VendorKey = "unity.shadergraph"; const string k_EventName = "uShaderGraphUsage"; + const string k_TemplateEventName = "uShaderGraphCreateFromTemplate"; + + [AnalyticInfo(eventName: k_TemplateEventName, vendorKey: k_VendorKey)] + internal class ShaderGraphTemplateAnalytic : IAnalytic + { + [Serializable] + struct AnalyticsData : IAnalytic.IData + { + public string template_name; + public string template_path; + public string template_category; + public string template_guid; + + public string hdrp_material; + public string urp_material; + public string builtin_material; + public string rt_material; + + public bool hdrp_vfx; + public bool urp_vfx; + public bool vfx_legacy; + public List additional_terms; + } + + string template_name; + string template_path; + string template_category; + string template_guid; + + string hdrp_material = string.Empty; + string urp_material = string.Empty; + string builtin_material = string.Empty; + string rt_material = string.Empty; + + bool hdrp_vfx = false; + bool urp_vfx = false; + bool vfx_legacy = false; + + HashSet additional_terms = new(); + + internal ShaderGraphTemplateAnalytic(GraphViewTemplateDescriptor descriptor) + { + var path = AssetDatabase.GUIDToAssetPath(descriptor.assetGuid); + bool fromUnity = path?.Contains("com.unity") ?? false; + + template_name = fromUnity ? descriptor.name : "hidden"; + template_path = fromUnity ? path : "hidden"; + template_category = fromUnity ? descriptor.category : "hidden"; + template_guid = descriptor.assetGuid; + + if (FileUtilities.TryReadGraphDataFromDisk(path, out GraphData graph)) + { + foreach (var target in graph.activeTargets) + { + switch (target.GetType().Name) + { + case "HDTarget": + hdrp_material = target.activeSubTarget?.displayName; + hdrp_vfx = target.SupportsVFX(); + break; + case "UniversalTarget": + urp_material = target.activeSubTarget?.displayName; + urp_vfx = target.SupportsVFX(); + break; + + case "BuiltInTarget": builtin_material = target.activeSubTarget?.displayName; break; + case "CustomRenderTextureTarget": rt_material = target.activeSubTarget?.displayName; break; + case "VFXTarget": vfx_legacy = target.SupportsVFX(); break; + } + } + + foreach (var subdata in graph.SubDatas) + { + if (!string.IsNullOrEmpty(subdata.displayName)) + additional_terms.Add(subdata.displayName); + } + } + } + + public bool TryGatherData(out IAnalytic.IData data, [NotNullWhen(false)] out Exception error) + { + data = new AnalyticsData + { + template_name = template_name, + template_path = template_path, + template_category = template_category, + template_guid = template_guid, + + hdrp_material = hdrp_material, + urp_material = urp_material, + builtin_material = builtin_material, + rt_material = rt_material, + + hdrp_vfx = hdrp_vfx, + urp_vfx = urp_vfx, + vfx_legacy = vfx_legacy, + + additional_terms = new List(additional_terms) + }; + error = null; + return true; + } + } + + public static void SendShaderGraphTemplateEvent(GraphViewTemplateDescriptor descriptor) + { + if (!EditorAnalytics.enabled) + return; + var analytic = new ShaderGraphTemplateAnalytic(descriptor); + EditorAnalytics.SendAnalytic(analytic); + } [AnalyticInfo(eventName: k_EventName, vendorKey: k_VendorKey, maxEventsPerHour:k_MaxEventsPerHour, maxNumberOfElements:k_MaxNumberOfElements)] public class Analytic : IAnalytic diff --git a/Packages/com.unity.shadergraph/Editor/ShaderGraphAnalytics.cs.meta b/Packages/com.unity.shadergraph/Editor/ShaderGraphAnalytics.cs.meta index ba2bd6e4d7a..20ff38c691a 100644 --- a/Packages/com.unity.shadergraph/Editor/ShaderGraphAnalytics.cs.meta +++ b/Packages/com.unity.shadergraph/Editor/ShaderGraphAnalytics.cs.meta @@ -1,11 +1,2 @@ fileFormatVersion: 2 -guid: 1bd60a065aae998439c6d840e84132de -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: +guid: 1bd60a065aae998439c6d840e84132de \ No newline at end of file diff --git a/Packages/com.unity.shadergraph/Editor/Util/FileUtilities.cs b/Packages/com.unity.shadergraph/Editor/Util/FileUtilities.cs index bad9e10ebc6..545f9764679 100644 --- a/Packages/com.unity.shadergraph/Editor/Util/FileUtilities.cs +++ b/Packages/com.unity.shadergraph/Editor/Util/FileUtilities.cs @@ -83,6 +83,35 @@ public static string SafeReadAllText(string assetPath) return result; } + internal static bool TryReadGraphDataFromDisk(string path, out GraphData graph) + { + try + { + var textGraph = File.ReadAllText(path, Encoding.UTF8); + graph = new GraphData + { + messageManager = new Graphing.Util.MessageManager(), + assetGuid = AssetDatabase.AssetPathToGUID(path) + }; + + MultiJson.Deserialize(graph, textGraph); + } + catch + { + graph = null; + return false; + } + return true; + } + + internal static bool TryGetImporter(string assetPath, out ShaderGraphImporter importer) + { + importer = null; + return (!string.IsNullOrEmpty(assetPath) + && assetPath.EndsWith(ShaderGraphImporter.Extension) + && (importer = AssetImporter.GetAtPath(assetPath) as ShaderGraphImporter) != null); + } + static void CheckoutIfValid(string path) { if (VersionControl.Provider.enabled && VersionControl.Provider.isActive) diff --git a/Packages/com.unity.shadergraph/Samples~/UGUIShaders/Scenes/Lighting Settings.lighting b/Packages/com.unity.shadergraph/Samples~/UGUIShaders/Scenes/Lighting Settings.lighting index 1830828c4ae..581f1a7655b 100644 --- a/Packages/com.unity.shadergraph/Samples~/UGUIShaders/Scenes/Lighting Settings.lighting +++ b/Packages/com.unity.shadergraph/Samples~/UGUIShaders/Scenes/Lighting Settings.lighting @@ -32,7 +32,6 @@ LightingSettings: m_FilterMode: 1 m_LightmapParameters: {fileID: 15204, guid: 0000000000000000f000000000000000, type: 0} m_ExportTrainingData: 0 - m_EnableWorkerProcessBaking: 1 m_TrainingDataDestination: TrainingData m_RealtimeResolution: 2 m_ForceWhiteAlbedo: 0 diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-Collision-LandingPage.md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-Collision-LandingPage.md index a412b49a17d..f74a87b1b73 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-Collision-LandingPage.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Block-Collision-LandingPage.md @@ -6,6 +6,8 @@ Explore the properties of Collision Blocks to configure how particles collide wi |-|-| | [Collision Shape](Block-CollisionShape.md) | Explore the properties of the Collision Shape Block. | | [Collision Depth Buffer](Block-CollideWithDepthBuffer.md) | Explore the properties of the Collision Depth Buffer Block. | +| [Kill Shape](Block-KillShape.md) | Explore the properties of the Kill Shape Block. | +| [Trigger Shape](Block-TriggerShape.md) | Explore the properties of the Trigger Shape Block. | ## Additional resources diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-CollisionShape.md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-CollisionShape.md index 8bc2cf06bf2..2031c731e20 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-CollisionShape.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Block-CollisionShape.md @@ -6,6 +6,11 @@ The Collision Shape Block defines a shape that particles collide with. ![A cascade of particles falls onto the upper surface of a cube and cascades down the side.](Images/Block-CollideWithAABoxMain.png) ![A car-shaped signed distance field made up of particles.](Images/Block-CollideWithSDFMain.png) + +If you change the **Behavior** property of the block, the Block changes to the following: + +- A [Kill Shape Block](Block-KillShape.md) if you set **Behavior** to **Kill**. +- A [Trigger Shape Block](Block-TriggerShape.md) if you set **Behavior** to **None**. ## Block compatibility @@ -20,7 +25,7 @@ To add a Collision Shape Block to your graph, [open the menu for adding a graph | **Property** | **Type** | **Description** | |-|-|-| -| **Shape** | Enum | Sets the shape for particles to collide with. For more information, refer to the [**Shape dropdown**](#shape-dropdown) section. | +| **Shape** | Enum | Sets the shape for particles to collide with. For more information, refer to the [Shape dropdown](#shape-dropdown) section. | | **Mode** | Enum | Specifies how particles interact with the collider. The options are:
  • Solid: Stops particles entering the collider. If you set Shape to Plane, particles collide with the plane when they travel away from the normal of the plane.
  • Inverted: Stops particles leaving the shape volume. If you set Shape to Plane, particles collide with the plane when they travel in the same direction as the normal of the plane.
| | **Radius Mode** | Enum | Sets the collision radius of the particles. The options are:
  • None: Sets the collision radius to zero.
  • From Size: Sets the collision radius for each particle to its individual size.
  • Custom: Sets the collision radius to the value of **Radius** in the [Block properties](#block-properties).
| | **Collision Attributes** | Enum | Specifies whether Unity stores data in the collision attributes of particles. The options are:
  • No Write: Doesn't write or store collision attributes.
  • Write Punctual Contact only: Updates the collision attribute only when a specific, single-point collision occurs. This prevents Unity updating the collision attributes repeatedly when a particle slides along a collision shape. To increase or decrease how much a particle needs to bounce off a shape to cause a collision response, enable **Override Bounce Threshold** in the Inspector window.
  • Write Always: Updates the collision attribute every time a collision occurs.
| @@ -32,7 +37,7 @@ To add a Collision Shape Block to your graph, [open the menu for adding a graph | **Shape** | **Description** | |-|-| | **Sphere**| Sets the collision shape as a spherical volume. | -| **Oriented Box** | Sets the collision shape as an axis-aligned box volume. | +| **Oriented Box** | Sets the collision shape as a box volume. | | **Cone**| Sets the collision shape as truncated cone volume.| | **Plane** | Sets the collision shape as a flat plane with infinite length and width. | | **Signed Distance Field** | Sets the collision shape as a signed distance field (SDF), so you can create precise complex collision with an existing asset. To generate a signed distance field asset, use the [SDF Bake Tool](sdf-bake-tool.md) or an external digital content creation (DCC) tool. | @@ -42,7 +47,7 @@ To add a Collision Shape Block to your graph, [open the menu for adding a graph | **Input** | **Type** | **Description**| |-|-|-| | **Sphere**| [Sphere](Type-Sphere.md) | Sets the sphere that particles collide with. This property is available only if you set **Shape** to **Sphere**. | -| **Box** | [AABox](Type-AABox.md) | Sets the axis-aligned box that particles collide with. This property is available only if you set **Shape** to **Box**. | +| **Box** | [OrientedBox](Type-OrientedBox.md) | Sets the box that particles collide with. This property is available only if you set **Shape** to **Box**. | | **Cone**| [Cone](Type-Cone.md) | Sets the cone that particles collide with. This property is available only if you set **Shape** to **Cone**. | | **Plane** | [Plane](Type-Plane.md) | Sets the plane that particles collide with. This property is available only if you set **Shape** to **Plane**. | | **Distance Field**| Signed distance field | Sets the signed distance field (SDF) that particles collide with. This property is available only if you set **Shape** to **Signed Distance Field**. | @@ -58,6 +63,6 @@ To add a Collision Shape Block to your graph, [open the menu for adding a graph | **Property** | **Type** | **Description** | |-|-|-| -| **Behavior** | Enum | Specifies how particles behave when they collide with the shape. The options are:
  • None: Doesn't create a collision response. To detect when particles enter or leave the shape, use a Trigger Event On Collide Block.
  • Collision: Causes particles to bounce off the shape.
  • Kill: Destroys a particle when it collides with the shape.
| +| **Behavior** | Enum | Specifies how particles behave when they collide with the shape. The options are:
  • None: Changes the Block to a Trigger Shape Block, so particles don't bounce off the shape.
  • Collision: Causes particles to bounce off the shape. This is the default in a Collision Shape Block.
  • Kill: Changes the Block to a [Kill Shape Block](Block-KillShape.md), so particles are destroyed when they collide with the shape.
| | **Write Rough Normal** | Boolean | When enabled, Unity writes the version of the normal with roughness applied to the Collision Event Normal attribute. | | **Override Bounce Threshold** | Boolean | Makes the **Bounce Speed Threshold** setting available in the Block properties. | diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-FlipbookPlayer.md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-FlipbookPlayer.md index 346aab9a660..2e008daa58d 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-FlipbookPlayer.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Block-FlipbookPlayer.md @@ -8,9 +8,6 @@ Flipbook textures are texture sheets that consist of multiple smaller sub-images ![Cloud-shaped blocks representing stages in a sprite sheet.](Images/Block-FlipbookPlayerExampleLHS.png) -A translucent cloud gradually forms, swirls gently, and then dissipates into the background. - - To generate a Flipbook, use external digital content creation tools. To set an output to use flipbooks, change its **UV Mode** to **Flipbook**. For more information on the different UV Modes, refer to the documentation for the various output Contexts. diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-KillShape.md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-KillShape.md new file mode 100644 index 00000000000..5cd2cce008f --- /dev/null +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Block-KillShape.md @@ -0,0 +1,55 @@ +# Kill Shape Block reference + +The Kill Shape Block defines a shape that destroys particles that collide with it. The Block destroys particles by setting their `alive` attribute to `false`. + +If you change the **Behavior** property of the block, the Block changes to the following: + +- A [Collision Shape Block](Block-CollisionShape.md) if you set **Behavior** to **Collision**. +- A [Trigger Shape Block](Block-TriggerShape.md) if you set **Behavior** to **None**. + +## Block compatibility + +You can add the Kill Shape Block to the following Contexts: + +- [Initialize](Context-Initialize.md) +- [Update](Context-Update.md) + +To add a Kill Shape Block to your graph, open the graph element menu as described in [Adding graph elements](VisualEffectGraphWindow.md#adding-graph-elements) then select **Collision** > **Kill Shape**. + +## Block settings + +| **Property** | **Type** | **Description** | +|-|-|-| +| **Shape** | Enum | Sets the shape for particles to collide with. For more information, refer to the [Shape dropdown](#shape-dropdown) section. | +| **Mode** | Enum | Specifies how particles interact with the collider. The options are:
  • Solid: Destroys particles when they enter the shape. If you set Shape to Plane, particles collide with the plane when they travel away from the normal of the plane.
  • Inverted: Destroys particles when they leave the shape. If you set Shape to Plane, particles collide with the plane when they travel in the same direction as the normal of the plane.
| +| **Radius Mode** | Enum | Sets the collision radius of the particles. The options are:
  • None: Sets the collision radius to zero.
  • From Size: Sets the collision radius for each particle to its individual size.
  • Custom: Sets the collision radius to the value of **Radius** in the [Block properties](#block-properties).
| +| **Collision Attributes** | Enum | Specifies whether Unity stores data in the collision attributes of particles. The options are:
  • No Write: Doesn't write or store collision attributes.
  • Write Punctual Contact only: Updates the collision attribute only when a specific, single-point collision occurs. This setting has no effect in a Kill Shape Block.
  • Write Always: Updates the collision attribute every time a collision occurs.
| + + +### Shape dropdown + +| **Shape** | **Description** | +|-|-| +| **Sphere**| Sets the collision shape as a spherical volume. | +| **Oriented Box** | Sets the collision shape as a box volume. | +| **Cone**| Sets the collision shape as truncated cone volume.| +| **Plane** | Sets the collision shape as a flat plane with infinite length and width. | +| **Signed Distance Field** | Sets the collision shape as a signed distance field (SDF), so you can create precise complex collision with an existing asset. To generate a signed distance field asset, use the [SDF Bake Tool](sdf-bake-tool.md) or an external digital content creation (DCC) tool. | + +## Block properties + +| **Input** | **Type** | **Description**| +|-|-|-| +| **Sphere**| [Sphere](Type-Sphere.md) | Sets the sphere that particles collide with. This property is available only if you set **Shape** to **Sphere**. | +| **Box** | [OrientedBox](Type-OrientedBox.md) | Sets the box that particles collide with. This property is available only if you set **Shape** to **Box**. | +| **Cone**| [Cone](Type-Cone.md) | Sets the cone that particles collide with. This property is available only if you set **Shape** to **Cone**. | +| **Plane** | [Plane](Type-Plane.md) | Sets the plane that particles collide with. This property is available only if you set **Shape** to **Plane**. | +| **Distance Field**| Signed distance field | Sets the signed distance field (SDF) that particles collide with. This property is available only if you set **Shape** to **Signed Distance Field**. | +| **Field Transform** | [Transform](Type-Transform.md) | Sets the position, size, and rotation of the **Distance Field**. This property is available only if you set **Shape** to **Signed Distance Field**. | +| **Radius**| Float | Sets the collision radius of the particles. This property is available only if you set **Radius Mode** to **Custom**. | + +## Inspector window properties + +| **Property** | **Type** | **Description** | +|-|-|-| +| **Behavior** | Enum | Specifies how particles behave when they collide with the shape. The options are:
  • None: Changes the Block to a Trigger Shape Block, so particles don't bounce off the shape.
  • Collision: Changes the Block to a [Collision Shape Block](Block-CollisionShape.md), so particles bounce off the shape.
  • Kill: Destroys a particle when it collides with the shape. This is the default in a Kill Shape Block.
| diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-TriggerShape.md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-TriggerShape.md new file mode 100644 index 00000000000..5eaf5600069 --- /dev/null +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Block-TriggerShape.md @@ -0,0 +1,55 @@ +# Trigger Shape Block reference + +The Trigger Shape Block defines a shape that detects particle collisions without physically interacting with the particles. Instead of blocking or altering particle movement, it triggers specific events when particles collide with it. You can use this block in combination with a [Trigger Event Block](Block-Trigger-Event.md) set to **Collide** mode to spawn child particles or perform other actions. + +If you change the **Behavior** property of the block, the Block changes to the following: + +- A [Collision Shape Block](Block-CollisionShape.md) if you set **Behavior** to **Collision**. +- A [Kill Shape Block](Block-KillShape.md) if you set **Behavior** to **Kill**. + +## Block compatibility + +You can add the Trigger Shape Block to the following Contexts: + +- [Initialize](Context-Initialize.md) +- [Update](Context-Update.md) + +To add a Trigger Shape Block to your graph, [open the menu for adding a graph element](VisualEffectGraphWindow.md#adding-graph-elements) then select **Collision** > **Trigger Shape**. + +## Block settings + +| **Property** | **Type** | **Description** | +|-|-|-| +| **Shape** | Enum | Sets the shape for particles to collide with. For more information, refer to the [Shape dropdown](#shape-dropdown) section. | +| **Mode** | Enum | Specifies how particles interact with the collider. The options are:
  • Solid: Destroys particles when they enter the shape. If you set Shape to Plane, particles collide with the plane when they travel away from the normal of the plane.
  • Inverted: Destroys particles when they leave the shape. If you set Shape to Plane, particles collide with the plane when they travel in the same direction as the normal of the plane.
| +| **Radius Mode** | Enum | Sets the collision radius of the particles. The options are:
  • None: Sets the collision radius to zero.
  • From Size: Sets the collision radius for each particle to its individual size.
  • Custom: Sets the collision radius to the value of **Radius** in the [Block properties](#block-properties).
| +| **Collision Attributes** | Enum | Specifies whether Unity stores data in the collision attributes of particles. The options are:
  • No Write: Doesn't write or store collision attributes.
  • Write Punctual Contact only: Updates the collision attribute only when a specific, single-point collision occurs. This setting has no effect in a Trigger Shape Block.
  • Write Always: Updates the collision attribute every time a collision occurs.
| + + +### Shape dropdown + +| **Shape** | **Description** | +|-|-| +| **Sphere**| Sets the collision shape as a spherical volume. | +| **Oriented Box** | Sets the collision shape as a box volume. | +| **Cone**| Sets the collision shape as truncated cone volume.| +| **Plane** | Sets the collision shape as a flat plane with infinite length and width. | +| **Signed Distance Field** | Sets the collision shape as a signed distance field (SDF), so you can create precise complex collision with an existing asset. To generate a signed distance field asset, use the [SDF Bake Tool](sdf-bake-tool.md) or an external digital content creation (DCC) tool. | + +## Block properties + +| **Input** | **Type** | **Description**| +|-|-|-| +| **Sphere**| [Sphere](Type-Sphere.md) | Sets the sphere that particles collide with. This property is available only if you set **Shape** to **Sphere**. | +| **Box** | [OrientedBox](Type-OrientedBox.md) | Sets the box that particles collide with. This property is available only if you set **Shape** to **Box**. | +| **Cone**| [Cone](Type-Cone.md) | Sets the cone that particles collide with. This property is available only if you set **Shape** to **Cone**. | +| **Plane** | [Plane](Type-Plane.md) | Sets the plane that particles collide with. This property is available only if you set **Shape** to **Plane**. | +| **Distance Field**| Signed distance field | Sets the signed distance field (SDF) that particles collide with. This property is available only if you set **Shape** to **Signed Distance Field**. | +| **Field Transform** | [Transform](Type-Transform.md) | Sets the position, size, and rotation of the **Distance Field**. This property is available only if you set **Shape** to **Signed Distance Field**. | +| **Radius**| Float | Sets the collision radius of the particles. This property is available only if you set **Radius Mode** to **Custom**. | + +## Inspector window properties + +| **Property** | **Type** | **Description** | +|-|-|-| +| **Behavior** | Enum | Specifies how particles behave when they collide with the shape. The options are:
  • None: Changes the Block to a Trigger Shape Block, so particles don't bounce off the shape.
  • Collision: Changes the Block to a [Collision Shape Block](Block-CollisionShape.md), so particles bounce off the shape.
  • Kill: Destroys a particle when it collides with the shape.
| diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputParticleMesh.md b/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputParticleMesh.md index a9494cb4af6..acc4222386a 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputParticleMesh.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputParticleMesh.md @@ -22,7 +22,7 @@ Below is a list of settings and properties specific to the Output Particle Mesh | **Mesh [N]** | Mesh | The mesh(es) to use to render particles. The number of mesh input fields depends on the **Mesh Count** setting. | | **Sub Mesh Mask [N]** | uint (mask) | The sub mesh mask(s) to use for each mesh. The number of sub mesh mask fields depends on the **Mesh Count** setting. | | **Lod Values** | Vector4 | The threshold values the Context uses to choose between LOD levels. The values represent a percentage of the viewport along one dimension (For instance, a Value of 10.0 means 10% of the screen). The Context tests values from left to right (0 to n) and selects the LOD level only if the percentage of the particle on screen is above the threshold. This means you have to specify LOD values in decreasing order. Note that you can also use LOD with a mesh count of 1 to cull small particles on screen. This property only appears if you enable the **LOD** setting. | -| **Radius Scale** | float | The scale to apply when selecting the LOD level per particle. By default, the LOD system assumes meshes bounding boxes are unit boxes. If your mesh bounding boxes is smaller/bigger than the unit box, you can use this property to apply a scale so that lod thresholds are consistent with apparent size. This property only appears if you enable the **LOD** setting. | +| **Radius Scale** | float | The scale to apply when selecting the LOD level per particle. By default, the LOD system assumes meshes bounding boxes are unit boxes. If your mesh bounding boxes is smaller/bigger than the unit box, you can use this property to apply a scale so that lod thresholds are consistent with apparent size. Frustum culling also uses this scale to compute the mesh size, when enabled. This property only appears if you enable the **LOD** or **Frustum Culling** settings. | ## Limitations diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputShaderGraphMesh.md b/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputShaderGraphMesh.md index f5c37286b1c..d17c193fa7e 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputShaderGraphMesh.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputShaderGraphMesh.md @@ -21,7 +21,7 @@ This output is similar to [Output Particle Mesh](Context-OutputParticleMesh.md). | **Mesh [N]** | Mesh | The meshes to use to render particles. The number of mesh input fields depends on the **Mesh Count** setting. | | **Sub Mesh Mask [N]** | uint (mask) | The sub mesh masks to use for each mesh. The number of sub mesh mask fields depends on the **Mesh Count** setting. | | **Lod Values** | Vector4 | The threshold values the Context uses to choose between LOD levels. The values represent a percentage of the viewport along one dimension (For instance, a Value of 10.0 means 10% of the screen). The Context tests values from left to right (0 to n) and selects the LOD level only if the percentage of the particle on screen is above the threshold. This means you have to specify LOD values in decreasing order. Note that you can also use LOD with a mesh count of 1 to cull small particles on screen. This property only appears if you enable the **LOD** setting. | -| **Radius Scale** | float | The scale to apply when selecting the LOD level per particle. By default, the LOD system assumes mesh bounding boxes are unit boxes. If your mesh bounding box is smaller/bigger than the unit box, you can use this property to apply a scale so that LOD thresholds are consistent with apparent size. This property only appears if you enable the **LOD** setting. | +| **Radius Scale** | float | The scale to apply when selecting the LOD level per particle. By default, the LOD system assumes mesh bounding boxes are unit boxes. If your mesh bounding box is smaller/bigger than the unit box, you can use this property to apply a scale so that LOD thresholds are consistent with apparent size. Frustum culling also uses this scale to compute the mesh size, when enabled. This property only appears if you enable the **LOD** or **Frustum Culling** settings. | [!include[](Snippets/Context-OutputShaderGraph-InlineNotes.md)] diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-Setposition(Cone)Main.mp4 b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-Setposition(Cone)Main.mp4 deleted file mode 100644 index 7d6de57366e..00000000000 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-Setposition(Cone)Main.mp4 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ff39c955152a49b75a664e663c3415a04c65fa66d3da8a0a608e7a86f38c6b61 -size 1544689 diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Reference-Attributes.md b/Packages/com.unity.visualeffectgraph/Documentation~/Reference-Attributes.md index 97d3e90a608..bc43c2fb643 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Reference-Attributes.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Reference-Attributes.md @@ -57,6 +57,18 @@ System Attributes provide information about system values. These attributes are | `spawnCount` | float | A `SpawnEvent` attribute that describes how many particles were spawned this frame. You can use `spawnCount` as a [Source Attribute](Attributes.md) in a Spawn context. `spawnCount` is a floating point number so that Unity can accumulate a relative `spawnCount` at the spawn context stage in the [Constant Rate](Block-ConstantRate.md) block.| 0.0 | | `spawnTime` | float | A SpawnEvent attribute available as Source Attribute in Spawn Contexts, that contains a Spawn Context internal time (when exported using a [Set Spawn Time](Block-SetSpawnTime.md) Spawn Block) | 0.0 | | `particleIndexInStrip` | uint | The index in the Particle Strip Ring Buffer where is located this element. | 0 | + +### Collision Attributes + +Collision Attributes provide information about collisions between the outer shape of a particle and a surface. These attributes are available as **Read Only**, which means you can only read them using the `Get ` Operator. + +| Name | Type | Description | +|--------------------------|---------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| `collisionEventCount` | uint | Outputs the number of times a particle has hit a surface since it was spawned. | +| `collisionEventNormal` | Vector3 | Outputs the surface normal at the point of impact at this frame. Outputs (0,0,0) if no collision occurs.

To generate random normal values to simulate collision with a [rough surface](Block-CollisionShape.md), enable **Rough Normal** in the Collision Shape block and **Write Rough Normal** in the Collision Shape block's Inspector window, outputs the unrandomized normal. | +| `collisionEventPosition` | Vector3 | Outputs the coordinates of the point where the particle hits the surface at this frame. Outputs (0,0,0) if no collision occurs. | +| `hasCollisionEvent` | bool | Outputs `true` when the particle hits a surface. Only available in the [Update](Context-Update.md) context. | + ## Attribute Usage and Implicit Behavior Some attributes combinations are used in various implicit cases during simulation and rendering. Here is a list of the usages and an explanation of their relationships. diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Subgraph.md b/Packages/com.unity.visualeffectgraph/Documentation~/Subgraph.md index c721287de9b..e364d88dcf8 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Subgraph.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Subgraph.md @@ -23,14 +23,7 @@ Visual Effect Graphs used as Subgraphs appear as a [Context](Contexts.md) that p ### Creating System Subgraphs -To create a System Subgraph: - -1. Create a Visual Effect Graph in the Project Window. -2. Select one or many Systems in a Visual Effect Graph. -3. Navigate to the the Right-Click context menu and select **Convert to Subgraph**. -4. Save the Graph Asset in the Save File dialog. - -Creating a subgraph using this method replaces all converted content with a System Subgraph Node. +System Subgraphs are Visual Effect (VFX) assets, so you can't create them directly in the **Visual Effect Graph** window. To use an existing VFX asset as a System Subgraph, drag it from the **Project** view to the **Visual Effect Graph** window. ### Editing System Subgraphs @@ -50,6 +43,8 @@ You can customize System Subgraph properties in the same way you customise Visua You can send Events to the Workflow inputs of the System Subgraph Node using Event or Spawn Context. +**Note**: When you use a System Subgraph, Unity creates a deep copy in the parent. This means the System Subgraph isn't a reference at runtime, and Unity generates a new set of shaders and runtime data. Extensive use of System Subgraphs can impact performance, including longer import times in the Editor and increased memory consumption at runtime. Use System Subgraphs sparingly to minimize these impacts. + ## Block Subgraphs Block Subgraphs are specific Subgraphs that only contain Operators and Blocks. You can use Block Subgraphs as Blocks inside another Visual Effect Graph or SubGraph. diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/System-Requirements.md b/Packages/com.unity.visualeffectgraph/Documentation~/System-Requirements.md index edf3f0ebcd2..05295cbad1e 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/System-Requirements.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/System-Requirements.md @@ -4,42 +4,15 @@ This page contains information on system requirements and compatibility for the ## Unity Editor compatibility -The following table shows the compatibility of the Visual Effect Graph versions with different Unity Editor versions. - -| **Package version** | **Minimum Unity version** | **Maximum Unity version** | -| ------------------- | ------------------------- | ------------------------- | -| 17.x | Unity 6 | Unity 6.1 | -| 16.x | 2023.2 | 2023.2 | -| 15.x | 2023.1 | 2023.1 | -| 14.x | 2022.2 | 2022.2 | -| 13.x | 2022.1 | 2022.1 | -| 12.x | 2021.2 | 2021.2 | -| 11.x | 2021.1 | 2021.1 | -| 10.x | 2020.2 | 2020.3 | -| 8.x / 9.x-preview | 2020.1 | 2020.1 | -| 7.x | 2019.3 | 2019.4 | -| 6.x | 2019.2 | 2019.2 | +Visual Effect Graph is a [core Unity package](../pack-core). For each alpha, beta or patch release of Unity, the main Unity installer contains the up-to-date version of the package. -## Render pipeline compatibility - -The Visual Effect Graph varies in compatibility between the High Definition Render Pipeline (HDRP) and the Universal Render Pipeline (URP). This section describes the compatibility of Visual Effect Graph versions with different render pipelines. +The Package Manager window displays only the major and minor revision of the package. For example, version 17.2.0 for all Unity 6.2.x releases. -| **Package version** | **HDRP** | **URP** | -| ------------------- | ---------- | ------------- | -| 17.x | Supported | Supported | -| 16.x | Supported | Supported | -| 14.x | Supported | Supported | -| 13.x | Supported | Supported | -| 12.x | Supported | Supported | -| 11.x | Supported | In preview | -| 10.x | Supported | In preview | -| 8.x / 9.x-preview | Supported | In preview | -| 7.x | Supported | In preview | -| 6.x | In preview | Not supported | +You can install a different version of a graphics package from disk using the Package Manager, or by modifying the `manifest.json` file. -The Visual Effect Graph supports the [High Definition Render Pipeline](https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@latest/index.html) (HDRP) from Unity 2018.3 and is verified for HDRP from Unity 2019.3. The Visual Effect Graph supports every platform that HDRP supports. For information on which platforms this includes, see HDRP's [system requirements](https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@latest/index.html?subfolder=/manual/System-Requirements.html). +## Render pipeline compatibility -In the [Universal Render Pipeline](https://docs.unity3d.com/Manual/urp/urp-introduction.html) (URP) versions 2019.3. to 2021.1, the Visual Effect Graph supports a subset of platforms that URP supports, and only supports unlit particles. +Visual Effect Graph is compatible with the Universal Render Pipeline (URP) and the High Definition Render Pipeline (HDRP). **Note**: When you download the HDRP package from the Package Manager, Unity automatically installs the Visual Effect Graph package. diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/TableOfContents.md b/Packages/com.unity.visualeffectgraph/Documentation~/TableOfContents.md index a5e7313717e..efd802f69b2 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/TableOfContents.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/TableOfContents.md @@ -88,6 +88,8 @@ * [Collision](Block-Collision-LandingPage.md) * [Collision Shape](Block-CollisionShape.md) * [Collision Depth Buffer](Block-CollideWithDepthBuffer.md) + * [Kill Shape](Block-KillShape.md) + * [Trigger Shape](Block-TriggerShape.md) * Flipbook * [Flipbook Player](Block-FlipbookPlayer.md) * Force @@ -103,9 +105,6 @@ * Implicit * [Integration : Update Position](Block-UpdatePosition.md) * [Integration : Update Rotation](Block-UpdateRotation.md) - * Kill - * [Kill (AABox)](Block-Kill(AABox).md) - * [Kill (Sphere)](Block-Kill(Sphere).md) * Orientation * [Connect Target](Block-ConnectTarget.md) * [Orient](Block-Orient.md) diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Templates-window.md b/Packages/com.unity.visualeffectgraph/Documentation~/Templates-window.md index d8f34d7b991..4d13415710b 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Templates-window.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Templates-window.md @@ -5,10 +5,10 @@ Each template has a description and an image to describe its behavior. ![Template-Window](Images/templates-window.png) -## Create a VFX Graph Template +## Use a VFX Graph Template ![toolbar](Images/templates-window-toolbar.png) -To open the Default VFX Graph Templates window: +To open the VFX Graph Templates window: 1. Select the dropdown arrow next to the **Add** (**+**) icon in the Visual Effect graph toolbar. 2. Select one of the following options: * **Create from template** - Creates a new VFX Graph asset based on a VFX Graph template. @@ -16,8 +16,11 @@ To open the Default VFX Graph Templates window: 3. In the Create new VFX Asset window, select a Default VFX Graph template. 4. Double-click the Template asset, or select **Create** ->- The Add **[+]** button opens the templates window to insert a template in the current VFX. ->- If you hold the **CTRL** key while clicking on **[+]** button the templates window will open to create a new VFX asset. +The Add **[+]** button opens the templates window to insert a template in the current VFX (it will be placed at the center of the screen). +You can also use the **Insert template** option from the context menu in the graph. + +> [!TIP] +> If you hold the **CTRL** key while clicking on **[+]** button, the templates window will open to create a new VFX asset. ## Create a custom VFX Graph template diff --git a/Packages/com.unity.visualeffectgraph/Editor/Compiler/VFXGraphCompiledData.cs b/Packages/com.unity.visualeffectgraph/Editor/Compiler/VFXGraphCompiledData.cs index e5677a775f3..159915f54b0 100644 --- a/Packages/com.unity.visualeffectgraph/Editor/Compiler/VFXGraphCompiledData.cs +++ b/Packages/com.unity.visualeffectgraph/Editor/Compiler/VFXGraphCompiledData.cs @@ -79,12 +79,6 @@ struct VFXCompiledData public Dictionary contextToCompiledData; } - enum VFXCompilationMode - { - Edition, - Runtime, - } - class VFXDependentBuffersData { public Dictionary attributeBuffers = new Dictionary(); @@ -121,7 +115,7 @@ private struct GeneratedCodeData private static VFXExpressionObjectValueContainerDesc CreateObjectValueDesc(VFXExpression exp, int expIndex) { var desc = new VFXExpressionObjectValueContainerDesc(); - desc.instanceID = exp.Get(); + desc.entityId = exp.Get(); return desc; } @@ -139,7 +133,7 @@ private void SetValueDesc(VFXExpressionValueContainerDesc desc, VFXExpression private void SetObjectValueDesc(VFXExpressionValueContainerDesc desc, VFXExpression exp) { - ((VFXExpressionObjectValueContainerDesc)desc).instanceID = exp.Get(); + ((VFXExpressionObjectValueContainerDesc)desc).entityId = exp.Get(); } public uint FindReducedExpressionIndexFromSlotCPU(VFXSlot slot) @@ -600,10 +594,11 @@ private static VFXEditorTaskDesc[] BuildEditorTaskDescFromBlockSpawner(IEnumerab var preProcessTask = new VFXEditorTaskDesc { type = UnityEngine.VFX.VFXTaskType.EvaluateExpressionsSpawner, - buffers = new VFXMapping[0], + buffers = Array.Empty(), values = mappingPreProcess, parameters = taskData.parameters, - externalProcessor = null + processor = null, + shaderSourceIndex = -1 }; taskDescList.Add(preProcessTask); } @@ -615,10 +610,11 @@ private static VFXEditorTaskDesc[] BuildEditorTaskDescFromBlockSpawner(IEnumerab taskDescList.Add(new VFXEditorTaskDesc { type = (UnityEngine.VFX.VFXTaskType)spawnerBlock.spawnerType, - buffers = new VFXMapping[0], + buffers = Array.Empty(), values = GetSortedUniformValues(mappingList), parameters = taskData.parameters, - externalProcessor = processor + processor = processor, + shaderSourceIndex = -1 }); index++; } @@ -1072,15 +1068,6 @@ static IEnumerable ConvertDataToSystemIndex(IEnumerable input, yield return index; } - private void CleanRuntimeData() - { - if (m_Graph.visualEffectResource != null) - m_Graph.visualEffectResource.ClearRuntimeData(); - - m_ExpressionGraph = new VFXExpressionGraph(); - m_ExpressionValues = new VFXExpressionValueContainerDesc[] { }; - } - private static IEnumerable<(VFXSlot slot, VFXData data)> ComputeEventListFromSlot(IEnumerable slots) { foreach (var slot in slots) @@ -1101,14 +1088,46 @@ private void CleanRuntimeData() } } - public void Compile(VFXCompilationMode compilationMode, bool forceShaderValidation, bool enableShaderDebugSymbols, VFXAnalytics analytics) + public struct VFXCompileOutput { + public bool success; + + public HashSet sourceDependencies; + + public VFXExpressionSheet sheet; + public VFXEditorSystemDesc[] systemDesc; + public VFXEventDesc[] eventDesc; + public VFXGPUBufferDesc[] gpuBufferDesc; + public VFXCPUBufferDesc[] cpuBufferDesc; + public VFXTemporaryGPUBufferDesc[] temporaryBufferDesc; + public VFXShaderSourceDesc[] shaderSourceDesc; + public VFXRendererSettings rendererSettings; + public VFXInstancingDisabledReason instancingDisabledReason; + + public uint version; + } + + public VFXCompileOutput Compile(VFXCompilationMode compilationMode, bool enableShaderDebugSymbols, VFXAnalytics analytics) + { + var output = new VFXCompileOutput() + { + sourceDependencies = new HashSet() + }; + // Early out in case: (Not even displaying the popup) - if (m_Graph.children.Count() < 1 || // Graph is empty - VFXLibrary.currentSRPBinder == null) // One of supported SRPs is not current SRP + if (VFXLibrary.currentSRPBinder == null) // One of supported SRPs is not current SRP { - CleanRuntimeData(); - return; + output.success = false; + return output; + } + + //Graph is empty + if (m_Graph.children.Count() == 0) + { + output.success = true; + output.version = compiledVersion; + output.systemDesc = Array.Empty(); + return output; } Profiler.BeginSample("VFXEditor.CompileAsset"); @@ -1124,10 +1143,9 @@ public void Compile(VFXCompilationMode compilationMode, bool forceShaderValidati var resource = m_Graph.GetResource(); resource.ClearSourceDependencies(); - HashSet sourceDependencies = new HashSet(); foreach (VFXModel model in models.Where(t => t is IVFXSlotContainer)) { - model.GetSourceDependentAssets(sourceDependencies); + model.GetSourceDependentAssets(output.sourceDependencies); } var contexts = models.OfType().ToArray(); @@ -1239,7 +1257,7 @@ public void Compile(VFXCompilationMode compilationMode, bool forceShaderValidati particleData.GenerateSystemUniformMapper(m_ExpressionGraph, compiledData, ref gpuMappers); } EditorUtility.DisplayProgressBar(progressBarTitle, "Generating shaders", 8 / nbSteps); - GenerateShaders(generatedCodeData, m_ExpressionGraph, compilableContexts, compiledData, compilationMode, sourceDependencies, enableShaderDebugSymbols, gpuMappers); + GenerateShaders(generatedCodeData, m_ExpressionGraph, compilableContexts, compiledData, compilationMode, output.sourceDependencies, enableShaderDebugSymbols, gpuMappers); m_Graph.systemNames.Sync(m_Graph); EditorUtility.DisplayProgressBar(progressBarTitle, "Saving shaders", 9 / nbSteps); @@ -1331,19 +1349,27 @@ public void Compile(VFXCompilationMode compilationMode, bool forceShaderValidati VFXInstancingDisabledReason instancingDisabledReason = ValidateInstancing(compilableContexts); - resource.SetRuntimeData(expressionSheet, systemDescs.ToArray(), vfxEventDesc, bufferDescs.ToArray(), cpuBufferDescs.ToArray(), temporaryBufferDescs.ToArray(), shaderSources, shadowCastingMode, motionVectorGenerationMode, instancingDisabledReason, compiledVersion); - m_ExpressionValues = expressionSheet.values; + output.success = true; - foreach (var dep in sourceDependencies) - resource.AddSourceDependency(dep); + output.sheet = expressionSheet; + output.systemDesc = systemDescs.ToArray(); + output.eventDesc = vfxEventDesc; + output.gpuBufferDesc = bufferDescs.ToArray(); + output.cpuBufferDesc = cpuBufferDescs.ToArray(); + output.temporaryBufferDesc = temporaryBufferDescs.ToArray(); + output.shaderSourceDesc = shaderSources; + output.rendererSettings = new() { shadowCastingMode = shadowCastingMode, motionVectorGenerationMode = motionVectorGenerationMode }; + output.instancingDisabledReason = instancingDisabledReason; + output.version = compiledVersion; - m_Graph.visualEffectResource.compileInitialVariants = forceShaderValidation; + m_ExpressionValues = expressionSheet.values; } catch (Exception e) { Debug.LogError($"Unity cannot compile the VisualEffectAsset at path \"{assetPath}\" because of the following exception:\n{e}"); analytics?.OnCompilationError(e); - CleanRuntimeData(); + output.success = false; + return output; } finally { @@ -1352,6 +1378,7 @@ public void Compile(VFXCompilationMode compilationMode, bool forceShaderValidati } m_Graph.onRuntimeDataChanged?.Invoke(m_Graph); + return output; } public void UpdateValues() @@ -1400,7 +1427,7 @@ public void UpdateValues() } } - m_Graph.visualEffectResource.SetValueSheet(m_ExpressionValues); + VisualEffectAssetUtility.SetValueSheet(m_Graph.visualEffectResource.asset, m_ExpressionValues); } public VFXInstancingDisabledReason ValidateInstancing(IEnumerable compilableContexts) diff --git a/Packages/com.unity.visualeffectgraph/Editor/Compiler/VFXSGInputs.cs b/Packages/com.unity.visualeffectgraph/Editor/Compiler/VFXSGInputs.cs index b364ec43979..21d24841c5a 100644 --- a/Packages/com.unity.visualeffectgraph/Editor/Compiler/VFXSGInputs.cs +++ b/Packages/com.unity.visualeffectgraph/Editor/Compiler/VFXSGInputs.cs @@ -3,6 +3,7 @@ using UnityEditor.ShaderGraph; using UnityEditor.ShaderGraph.Internal; using UnityEngine; +using UnityEngine.VFX; namespace UnityEditor.VFX { @@ -76,25 +77,36 @@ public VFXSGInputs(VFXExpressionMapper cpuMapper, VFXExpressionMapper gpuMapper, m_VertInputs.Clear(); m_KeywordToDefine.Clear(); - VFXShaderGraphHelpers.GetShaderGraphParameter(shaderGraph, out var fragInputNames, out var vertInputNames); - foreach (var inputName in vertInputNames) + VFXShaderGraphHelpers.GetShaderGraphParameters(shaderGraph, out var sgParameters); + foreach (var parameter in sgParameters) { - var exp = gpuMapper.FromNameAndId(inputName, -1); // Postulate that inputs are only generated from context slots. - if (exp == null) - throw new ArgumentException("Cannot find an expression matching the vertInput: " + inputName); + VFXExpression exp = null; + if (parameter.exposed) + { + exp = gpuMapper.FromNameAndId(parameter.name, -1); // About `-1`, Postulate that inputs are only generated from context slots. + if (exp == null) + throw new ArgumentException("Cannot find an expression matching the input: " + parameter.name); + } + else + { + exp = parameter.defaultValue; + if (exp == null) + throw new NullReferenceException("Unexpected non exposed property without default: " + parameter.name); + } - m_VertInputs.Add(inputName, exp); - } + if (parameter.shaderStage.HasFlag(ShaderStageCapability.Vertex)) + m_VertInputs.Add(parameter.name, exp); - foreach(var inputName in fragInputNames) - { - var exp = gpuMapper.FromNameAndId(inputName, -1); // Postulate that inputs are only generated from context slots. - if (exp == null) - throw new ArgumentException("Cannot find an expression matching the fragInput: " + inputName); - - m_FragInputs.Add(inputName, exp); - if (!(exp.Is(VFXExpression.Flags.Constant) || uniforms.Contains(exp) || m_Interpolators.ContainsKey(exp))) // No interpolator needed for constants or uniforms - m_Interpolators.Add(exp, inputName); + if (parameter.shaderStage.HasFlag(ShaderStageCapability.Fragment)) + { + m_FragInputs.Add(parameter.name, exp); + if (!(exp.Is(VFXExpression.Flags.Constant) || uniforms.Contains(exp) || m_Interpolators.ContainsKey(exp))) // No interpolator needed for constants or uniforms + { + if (!parameter.exposed) + throw new InvalidOperationException("Unexpected description with newly created constant for non exposed value: " + parameter.name); + m_Interpolators.Add(exp, parameter.name); + } + } } foreach (var namedExpression in cpuMapper.CollectExpression(-1)) diff --git a/Packages/com.unity.visualeffectgraph/Editor/Data/VFXDataMesh.cs b/Packages/com.unity.visualeffectgraph/Editor/Data/VFXDataMesh.cs index 72a0eb398e0..c70468f2ea7 100644 --- a/Packages/com.unity.visualeffectgraph/Editor/Data/VFXDataMesh.cs +++ b/Packages/com.unity.visualeffectgraph/Editor/Data/VFXDataMesh.cs @@ -146,7 +146,8 @@ public override void FillDescs( var taskDesc = new VFXEditorTaskDesc() { - externalProcessor = shader, + processor = shader, + shaderSourceIndex = -1, values = mappings.ToArray(), type = (UnityEngine.VFX.VFXTaskType)VFXTaskType.Output, model = context diff --git a/Packages/com.unity.visualeffectgraph/Editor/Data/VFXDataParticle.cs b/Packages/com.unity.visualeffectgraph/Editor/Data/VFXDataParticle.cs index be7736261ff..807a99325d0 100644 --- a/Packages/com.unity.visualeffectgraph/Editor/Data/VFXDataParticle.cs +++ b/Packages/com.unity.visualeffectgraph/Editor/Data/VFXDataParticle.cs @@ -1475,7 +1475,8 @@ int GetBufferIndex(VFXTask task, string baseName) { VFXEditorTaskDesc sortTaskDesc = new VFXEditorTaskDesc(); sortTaskDesc.type = UnityEngine.VFX.VFXTaskType.PerOutputSort; - sortTaskDesc.externalProcessor = null; + sortTaskDesc.processor = null; + sortTaskDesc.shaderSourceIndex = -1; sortTaskDesc.model = context; sortTaskDesc.buffers = new VFXMapping[3]; diff --git a/Packages/com.unity.visualeffectgraph/Editor/Expressions/VFXExpressionAbstract.cs b/Packages/com.unity.visualeffectgraph/Editor/Expressions/VFXExpressionAbstract.cs index ebe7462145d..6d8ee652834 100644 --- a/Packages/com.unity.visualeffectgraph/Editor/Expressions/VFXExpressionAbstract.cs +++ b/Packages/com.unity.visualeffectgraph/Editor/Expressions/VFXExpressionAbstract.cs @@ -291,6 +291,7 @@ public static VFXValueType GetVFXValueTypeFromType(Type type) if (type == typeof(Vector4)) return VFXValueType.Float4; if (type == typeof(Color)) return VFXValueType.Float4; if (type == typeof(int)) return VFXValueType.Int32; + if (type == typeof(EntityId)) return VFXValueType.EntityId; if (type == typeof(uint)) return VFXValueType.Uint32; if (type == typeof(Texture2D)) return VFXValueType.Texture2D; if (type == typeof(Texture2DArray)) return VFXValueType.Texture2DArray; diff --git a/Packages/com.unity.visualeffectgraph/Editor/Expressions/VFXExpressionAbstractNumericOperation.cs b/Packages/com.unity.visualeffectgraph/Editor/Expressions/VFXExpressionAbstractNumericOperation.cs index ce73fa36c26..6c81c355092 100644 --- a/Packages/com.unity.visualeffectgraph/Editor/Expressions/VFXExpressionAbstractNumericOperation.cs +++ b/Packages/com.unity.visualeffectgraph/Editor/Expressions/VFXExpressionAbstractNumericOperation.cs @@ -152,7 +152,7 @@ protected VFXExpressionBinaryNumericOperation(VFXExpression parentLeft, VFXExpre { if (!IsNumeric(parentLeft.valueType) || !IsNumeric(parentRight.valueType)) { - throw new ArgumentException("Incorrect VFXExpressionBinaryMathOperation (not numeric type)"); + throw new ArgumentException($"Incorrect VFXExpressionBinaryMathOperation (not numeric type) ({parentLeft.valueType} vs {parentRight.valueType})"); } if (parentRight.valueType != parentLeft.valueType) diff --git a/Packages/com.unity.visualeffectgraph/Editor/Expressions/VFXExpressionAbstractValues.cs b/Packages/com.unity.visualeffectgraph/Editor/Expressions/VFXExpressionAbstractValues.cs index 78f23fc2eb2..c04a23fa08d 100644 --- a/Packages/com.unity.visualeffectgraph/Editor/Expressions/VFXExpressionAbstractValues.cs +++ b/Packages/com.unity.visualeffectgraph/Editor/Expressions/VFXExpressionAbstractValues.cs @@ -20,32 +20,32 @@ public enum Mode // Syntactic sugar method to create a constant value - static public VFXValue Constant(Texture2D value) + static public VFXValue Constant(Texture2D value) { - return new VFXTexture2DValue(ReferenceEquals(value, null) ? 0 : value.GetInstanceID(), Mode.Constant); + return new VFXTexture2DValue(ReferenceEquals(value, null) ? EntityId.None : value.GetEntityId(), Mode.Constant); } - static public VFXValue Constant(Texture3D value) + static public VFXValue Constant(Texture3D value) { - return new VFXTexture3DValue(ReferenceEquals(value, null) ? 0 : value.GetInstanceID(), Mode.Constant); + return new VFXTexture3DValue(ReferenceEquals(value, null) ? EntityId.None : value.GetEntityId(), Mode.Constant); } - static public VFXValue Constant(Cubemap value) + static public VFXValue Constant(Cubemap value) { - return new VFXTextureCubeValue(ReferenceEquals(value, null) ? 0 : value.GetInstanceID(), Mode.Constant); + return new VFXTextureCubeValue(ReferenceEquals(value, null) ? EntityId.None : value.GetEntityId(), Mode.Constant); } - static public VFXValue Constant(Texture2DArray value) + static public VFXValue Constant(Texture2DArray value) { - return new VFXTexture2DArrayValue(ReferenceEquals(value, null) ? 0 : value.GetInstanceID(), Mode.Constant); + return new VFXTexture2DArrayValue(ReferenceEquals(value, null) ? EntityId.None : value.GetEntityId(), Mode.Constant); } - static public VFXValue Constant(CubemapArray value) + static public VFXValue Constant(CubemapArray value) { - return new VFXTextureCubeArrayValue(ReferenceEquals(value, null) ? 0 : value.GetInstanceID(), Mode.Constant); + return new VFXTextureCubeArrayValue(ReferenceEquals(value, null) ? EntityId.None : value.GetEntityId(), Mode.Constant); } - static public VFXValue Constant(CameraBuffer value) + static public VFXValue Constant(CameraBuffer value) { return new VFXCameraBufferValue(value, Mode.Constant); } @@ -172,10 +172,7 @@ public override VFXValue CopyExpression(Mode mode) private static readonly VFXValue s_Default = new VFXValue(default(T), VFXValue.Mode.Constant); public static VFXValue Default { get { return s_Default; } } - public T Get() - { - return (T)m_Content; - } + public T Get() => (T)m_Content; public override object GetContent() { @@ -234,7 +231,7 @@ private static VFXValueType ToValueType() } var valueType = GetVFXValueTypeFromType(t); if (valueType == VFXValueType.None) - throw new ArgumentException("Invalid type"); + throw new ArgumentException($"Invalid type for {t}"); return valueType; } @@ -248,9 +245,9 @@ protected override int[] additionnalOperands } } - class VFXObjectValue : VFXValue + class VFXObjectValue : VFXValue { - public VFXObjectValue(int instanceID, Mode mode, VFXValueType contentType) : base(instanceID, mode, GetFlagsFromType(contentType)) + public VFXObjectValue(EntityId entityId, Mode mode, VFXValueType contentType) : base(entityId, mode, GetFlagsFromType(contentType)) { m_ContentType = contentType; } @@ -265,13 +262,13 @@ sealed protected override int[] additionnalOperands public override VFXValue CopyExpression(Mode mode) { - var copy = new VFXObjectValue((int)m_Content, mode, m_ContentType); + var copy = new VFXObjectValue((EntityId)m_Content, mode, m_ContentType); return copy; } public override T Get() { - if (typeof(T) == typeof(int)) + if (typeof(T) == typeof(EntityId)) return (T)(object)base.Get(); Debug.Assert(UnsafeUtility.SizeOf() == sizeof(int), "EntityId size is not equal to int size, this will cause issues, update to VFXValue instead"); @@ -287,12 +284,12 @@ public override void SetContent(object value) { if (value == null) { - m_Content = (int)0; + m_Content = EntityId.None; return; } if (value is UnityObject obj) { - m_Content = obj.GetInstanceID(); + m_Content = obj.GetEntityId(); return; } if (value is CameraBuffer cameraBuffer) @@ -302,11 +299,11 @@ public override void SetContent(object value) } if (value is GraphicsBuffer) { - m_Content = (int)0; + m_Content = EntityId.None; return; } - m_Content = (int)value; + m_Content = (EntityId)value; } VFXValueType m_ContentType; diff --git a/Packages/com.unity.visualeffectgraph/Editor/Expressions/VFXExpressionTextureValues.cs b/Packages/com.unity.visualeffectgraph/Editor/Expressions/VFXExpressionTextureValues.cs index 40f80751e51..a62a73202aa 100644 --- a/Packages/com.unity.visualeffectgraph/Editor/Expressions/VFXExpressionTextureValues.cs +++ b/Packages/com.unity.visualeffectgraph/Editor/Expressions/VFXExpressionTextureValues.cs @@ -9,7 +9,7 @@ namespace UnityEditor.VFX { class VFXTexture2DValue : VFXObjectValue { - public VFXTexture2DValue(int instanceID = 0, Mode mode = Mode.FoldableVariable) : base(instanceID, mode, VFXValueType.Texture2D) + public VFXTexture2DValue(EntityId entityId = default, Mode mode = Mode.FoldableVariable) : base(entityId, mode, VFXValueType.Texture2D) { } @@ -22,7 +22,7 @@ sealed public override VFXValue CopyExpression(Mode mode) class VFXTexture3DValue : VFXObjectValue { - public VFXTexture3DValue(int instanceID = 0, Mode mode = Mode.FoldableVariable) : base(instanceID, mode, VFXValueType.Texture3D) + public VFXTexture3DValue(EntityId entityId = default, Mode mode = Mode.FoldableVariable) : base(entityId, mode, VFXValueType.Texture3D) { } @@ -35,7 +35,7 @@ sealed public override VFXValue CopyExpression(Mode mode) class VFXTextureCubeValue : VFXObjectValue { - public VFXTextureCubeValue(int instanceID = 0, Mode mode = Mode.FoldableVariable) : base(instanceID, mode, VFXValueType.TextureCube) + public VFXTextureCubeValue(EntityId entityId = default, Mode mode = Mode.FoldableVariable) : base(entityId, mode, VFXValueType.TextureCube) { } @@ -48,7 +48,7 @@ sealed public override VFXValue CopyExpression(Mode mode) class VFXTexture2DArrayValue : VFXObjectValue { - public VFXTexture2DArrayValue(int instanceID = 0, Mode mode = Mode.FoldableVariable) : base(instanceID, mode, VFXValueType.Texture2DArray) + public VFXTexture2DArrayValue(EntityId entityId = default, Mode mode = Mode.FoldableVariable) : base(entityId, mode, VFXValueType.Texture2DArray) { } @@ -61,7 +61,7 @@ sealed public override VFXValue CopyExpression(Mode mode) class VFXTextureCubeArrayValue : VFXObjectValue { - public VFXTextureCubeArrayValue(int instanceID = 0, Mode mode = Mode.FoldableVariable) : base(instanceID, mode, VFXValueType.TextureCubeArray) + public VFXTextureCubeArrayValue(EntityId entityId = default, Mode mode = Mode.FoldableVariable) : base(entityId, mode, VFXValueType.TextureCubeArray) { } @@ -72,9 +72,9 @@ sealed public override VFXValue CopyExpression(Mode mode) } } - class VFXCameraBufferValue : VFXValue + class VFXCameraBufferValue : VFXValue { - public VFXCameraBufferValue(int instanceID = 0, Mode mode = Mode.FoldableVariable) : base(instanceID, mode) + public VFXCameraBufferValue(EntityId entityId = default, Mode mode = Mode.FoldableVariable) : base(entityId, mode) { } @@ -94,8 +94,8 @@ public override T Get() object value = cameraBuffer; - if (typeof(T) == typeof(int)) - value = (int)cameraBuffer; + if (typeof(T) == typeof(EntityId)) + value = (EntityId)cameraBuffer; if (typeof(T).IsAssignableFrom(typeof(Texture))) value = (Texture)cameraBuffer; @@ -110,13 +110,13 @@ public override object GetContent() public override void SetContent(object value) { - m_Content = (int)(CameraBuffer)value; + m_Content = (EntityId)(CameraBuffer)value; } } class VFXMeshValue : VFXObjectValue { - public VFXMeshValue(int instanceID = 0, Mode mode = Mode.FoldableVariable) : base(instanceID, mode, VFXValueType.Mesh) + public VFXMeshValue(EntityId entityId = default, Mode mode = Mode.FoldableVariable) : base(entityId, mode, VFXValueType.Mesh) { } @@ -129,7 +129,7 @@ sealed public override VFXValue CopyExpression(Mode mode) class VFXSkinnedMeshRendererValue : VFXObjectValue { - public VFXSkinnedMeshRendererValue(int instanceID = 0, Mode mode = Mode.FoldableVariable) : base(instanceID, mode, VFXValueType.SkinnedMeshRenderer) + public VFXSkinnedMeshRendererValue(EntityId entityId = default, Mode mode = Mode.FoldableVariable) : base(entityId, mode, VFXValueType.SkinnedMeshRenderer) { } @@ -142,7 +142,7 @@ sealed public override VFXValue CopyExpression(Mode mode) class VFXGraphicsBufferValue : VFXObjectValue { - public VFXGraphicsBufferValue(int instanceID = 0, Mode mode = Mode.FoldableVariable) : base(instanceID, mode, VFXValueType.Buffer) + public VFXGraphicsBufferValue(EntityId entityId = default, Mode mode = Mode.FoldableVariable) : base(entityId, mode, VFXValueType.Buffer) { } public sealed override VFXValue CopyExpression(Mode mode) diff --git a/Packages/com.unity.visualeffectgraph/Editor/GraphView/Elements/Controllers/VFXDataAnchorController.cs b/Packages/com.unity.visualeffectgraph/Editor/GraphView/Elements/Controllers/VFXDataAnchorController.cs index e4bc33f5b7d..6ef268cc1ec 100644 --- a/Packages/com.unity.visualeffectgraph/Editor/GraphView/Elements/Controllers/VFXDataAnchorController.cs +++ b/Packages/com.unity.visualeffectgraph/Editor/GraphView/Elements/Controllers/VFXDataAnchorController.cs @@ -304,7 +304,7 @@ public virtual object value if (typeof(UnityObject).IsAssignableFrom(storageType)) { Debug.Assert(UnsafeUtility.SizeOf()==sizeof(int), "EntityId size is not the same as int, this will cause issues in VFXDataAnchorController"); - EntityId entityId = (int)evaluatedValue; + EntityId entityId = (EntityId)evaluatedValue; return VFXConverter.ConvertTo(EditorUtility.EntityIdToObject(entityId), storageType); } else diff --git a/Packages/com.unity.visualeffectgraph/Editor/GraphView/Elements/Controllers/VFXNodeController.cs b/Packages/com.unity.visualeffectgraph/Editor/GraphView/Elements/Controllers/VFXNodeController.cs index d327d3b725a..fc89979f8f0 100644 --- a/Packages/com.unity.visualeffectgraph/Editor/GraphView/Elements/Controllers/VFXNodeController.cs +++ b/Packages/com.unity.visualeffectgraph/Editor/GraphView/Elements/Controllers/VFXNodeController.cs @@ -86,6 +86,7 @@ protected override void ModelChanged(UnityEngine.Object obj) foreach (var anchorController in m_InputPorts.Except(newAnchors)) { anchorController.OnDisable(); + changed = true; } m_InputPorts = newAnchors; @@ -96,13 +97,17 @@ protected override void ModelChanged(UnityEngine.Object obj) foreach (var anchorController in m_OutputPorts.Except(newAnchors)) { anchorController.OnDisable(); + changed = true; } m_OutputPorts = newAnchors; m_SyncingSlots = false; // Call after base.ModelChanged which ensure the ui has been refreshed before we try to create potiential new edges. if (changed) + { viewController.DataEdgesMightHaveChanged(); + VFXSlotContainerEditor.SceneViewVFXSlotContainerOverlay.ClearGizmos(); + } NotifyChange(AnyThing); } diff --git a/Packages/com.unity.visualeffectgraph/Editor/GraphView/VFXViewWindow.cs b/Packages/com.unity.visualeffectgraph/Editor/GraphView/VFXViewWindow.cs index 5c0d90c389d..3e2607c7000 100644 --- a/Packages/com.unity.visualeffectgraph/Editor/GraphView/VFXViewWindow.cs +++ b/Packages/com.unity.visualeffectgraph/Editor/GraphView/VFXViewWindow.cs @@ -375,7 +375,8 @@ void Update() { graph.errorManager.RefreshCompilationReport(); VFXGraph.explicitCompile = true; - AssetDatabase.ImportAsset(AssetDatabase.GetAssetPath(graphView.controller.model)); + var asset = graph.GetResource().asset; + graph.CompileAndUpdateAsset(asset); // As are implemented subgraph now, compiling dependents chain can reset dirty flag on used subgraphs, which will make an infinite loop, this is bad! graph.SetExpressionGraphDirty(false); VFXGraph.explicitCompile = false; diff --git a/Packages/com.unity.visualeffectgraph/Editor/GraphView/Views/VFXConvertSubgraph.cs b/Packages/com.unity.visualeffectgraph/Editor/GraphView/Views/VFXConvertSubgraph.cs index 7c8bd249503..c1ae63f08b7 100644 --- a/Packages/com.unity.visualeffectgraph/Editor/GraphView/Views/VFXConvertSubgraph.cs +++ b/Packages/com.unity.visualeffectgraph/Editor/GraphView/Views/VFXConvertSubgraph.cs @@ -13,12 +13,6 @@ namespace UnityEditor.VFX.UI { static class VFXConvertSubgraph { - public static void ConvertToSubgraphContext(VFXView sourceView, IEnumerable controllers, Rect rect, string path = null) - { - var ctx = new Context(); - ctx.ConvertToSubgraphContext(sourceView, controllers, rect, path); - } - public static void ConvertToSubgraphOperator(VFXView sourceView, IEnumerable controllers, Rect rect, string path = null) { var ctx = new Context(); @@ -224,34 +218,6 @@ void SetupTargetParameters() } } - public void ConvertToSubgraphContext(VFXView sourceView, IEnumerable controllers, Rect rect, string path) - { - this.m_Rect = rect; - Init(sourceView, controllers); - if (path == null) - { - if (!CreateUniqueSubgraph("Subgraph", VisualEffectResource.Extension, VisualEffectAssetEditorUtility.CreateNewAsset)) - return; - } - else - { - m_TargetSubgraph = VisualEffectAssetEditorUtility.CreateNewAsset(path); - - m_TargetController = VFXViewController.GetController(m_TargetSubgraph.GetResource()); - m_TargetController.useCount++; - m_TargetControllers = new List(); - } - CopyPasteNodes(); - m_SourceNode = ScriptableObject.CreateInstance(); - PostSetupNode(); - m_SourceControllersWithBlocks = m_SourceControllers.Concat(m_SourceControllers.OfType().SelectMany(t => t.blockControllers)); - TransferEdges(); - //TransferContextsFlowEdges(); - UninitSmart(); - - m_TargetSubgraph.GetResource()?.WriteAssetWithSubAssets(); - } - public void ConvertToSubgraphOperator(VFXView sourceView, IEnumerable controllers, Rect rect, string path) { this.m_Rect = rect; diff --git a/Packages/com.unity.visualeffectgraph/Editor/GraphView/Views/VFXView.cs b/Packages/com.unity.visualeffectgraph/Editor/GraphView/Views/VFXView.cs index fc29630ffe1..5e58aa1fa08 100644 --- a/Packages/com.unity.visualeffectgraph/Editor/GraphView/Views/VFXView.cs +++ b/Packages/com.unity.visualeffectgraph/Editor/GraphView/Views/VFXView.cs @@ -1795,7 +1795,7 @@ public void CreateNewFromTemplate(string templatePath, string assetPath) window.LoadAsset(vfxAsset, null); } - public void CreateTemplateSystem(string path, Vector2 tPos, VFXGroupNode groupNode) + public void CreateTemplateSystem(string path, Vector2 tPos, VFXGroupNode groupNode, bool centerInView) { var resource = VisualEffectResource.GetResourceAtPath(path); if (resource != null) @@ -1803,6 +1803,14 @@ public void CreateTemplateSystem(string path, Vector2 tPos, VFXGroupNode groupNo VFXViewController templateController = VFXViewController.GetController(resource, true); templateController.useCount++; + if (centerInView) + { + var pos = contentViewContainer.style.translate.value; + var scale = contentViewContainer.style.scale; + tPos.x = (resolvedStyle.width / 2f - pos.x.value) / scale.value.value.x - templateController.graph.UIInfos.uiBounds.width / 2f; + tPos.y = (resolvedStyle.height / 2f - pos.y.value) / scale.value.value.x - templateController.graph.UIInfos.uiBounds.height / 2f; + } + var data = VFXCopy.SerializeElements(templateController.allChildren, templateController.graph.UIInfos.uiBounds, null, null, null); VFXPaste.UnserializeAndPasteElements(controller, tPos, data, this, groupNode != null ? groupNode.controller : null); @@ -1819,7 +1827,7 @@ internal void Compile() else { VFXGraph.explicitCompile = true; - AssetDatabase.ImportAsset(AssetDatabase.GetAssetPath(controller.model)); + controller.graph.CompileAndUpdateAsset(controller.graph.GetResource().asset); VFXGraph.explicitCompile = false; } foreach (var model in m_ModelsWithHiddenBadges) @@ -2788,6 +2796,17 @@ public void ToggleNodePropertyOrInline() } } + void InsertTemplate(Vector2 position) + { + void InsertFromTemplate(string templatePath, string assetPath) + { + CreateTemplateSystem(templatePath, position, null, false); + } + + position = contentViewContainer.WorldToLocal(position); + GraphViewTemplateWindow.ShowInsertTemplate(new VFXTemplateHelperInternal(), InsertFromTemplate); + } + public void AddStickyNote(Vector2 position) { var group = selection.OfType().FirstOrDefault(); @@ -2928,6 +2947,7 @@ public override void BuildContextualMenu(ContextualMenuPopulateEvent evt) if (evt.target is VFXView) { + evt.menu.InsertAction(0, "Insert Template", (e) => { InsertTemplate(mousePosition); }, (e) => controller.graph.visualEffectResource.isSubgraph ? DropdownMenuAction.Status.Disabled : DropdownMenuAction.Status.Normal); evt.menu.InsertAction(1, "Create Sticky Note", (e) => { AddStickyNote(mousePosition); }, (e) => DropdownMenuAction.Status.Normal); evt.menu.InsertAction(2, "Create Group Node", (e) => { AddGroupNode(mousePosition); }, (e) => DropdownMenuAction.Status.Normal); @@ -2948,7 +2968,7 @@ public override void BuildContextualMenu(ContextualMenuPopulateEvent evt) var window = VFXViewWindow.GetWindow(this); if (window != null && window.resourceHistory.Any()) { - evt.menu.AppendAction(" Back To Parent Graph", e => window.PopResource()); + evt.menu.AppendAction("Back To Parent Graph", e => window.PopResource()); } } @@ -2963,9 +2983,9 @@ public override void BuildContextualMenu(ContextualMenuPopulateEvent evt) if (selection.OfType().Any() && evt.target is VFXNodeUI) { if (selection.OfType().Any() && !selection.OfType().Any(t => !(t is VFXOperatorUI) && !(t is VFXParameterUI))) + { evt.menu.InsertAction(3, "Convert To Subgraph Operator", ToSubgraphOperator, e => DropdownMenuAction.Status.Normal); - else if (SelectionHasCompleteSystems()) - evt.menu.InsertAction(3, "Convert To Subgraph", ToSubgraphContext, e => DropdownMenuAction.Status.Normal); + } else if (selection.OfType().Any() && selection.OfType().Select(t => t.context).Distinct().Count() == 1) { evt.menu.InsertAction(3, "Convert to Subgraph Block", ToSubgraphBlock, e => DropdownMenuAction.Status.Normal); @@ -3040,38 +3060,6 @@ void CollapseOperator(DropdownMenuAction a) ope.controller.superCollapsed = collapse; } - public bool SelectionHasCompleteSystems() - { - HashSet selectedContextUIs = new HashSet(selection.OfType()); - if (selectedContextUIs.Count() < 1) - return false; - - var relatedContext = selectedContextUIs.Select(t => t.controller.model); - - //Adding manually VFXBasicGPUEvent, it doesn't appears as dependency. - var outputContextDataFromGPUEvent = relatedContext.OfType().SelectMany(o => o.outputContexts); - relatedContext = relatedContext.Concat(outputContextDataFromGPUEvent); - var selectedContextDatas = relatedContext.Select(o => o.GetData()).Where(o => o != null); - - var selectedContextDependencies = selectedContextDatas.SelectMany(o => o.allDependenciesIncludingNotCompilable); - var allDatas = selectedContextDatas.Concat(selectedContextDependencies); - - var allDatasHash = new HashSet(allDatas); - foreach (var context in GetAllContexts()) - { - var model = context.controller.model; - if (model is VFXBlockSubgraphContext) - return false; - - //We should exclude model.contextType == VFXContextType.Event of this condition. - //If VFXConvertSubgraph.TransferContextsFlowEdges has been fixed & renabled. - if (allDatasHash.Contains(model.GetData()) && !selectedContextUIs.Contains(context)) - return false; - } - - return true; - } - void ToSubgraphBlock(DropdownMenuAction a) { VFXConvertSubgraph.ConvertToSubgraphBlock(this, selection.OfType().Select(t => t.controller), GetElementsBounds(selection.Where(t => !(t is Edge)).Cast())); @@ -3082,11 +3070,6 @@ void ToSubgraphOperator(DropdownMenuAction a) ConvertToSubgraphOperator(); } - void ToSubgraphContext(DropdownMenuAction a) - { - VFXConvertSubgraph.ConvertToSubgraphContext(this, selection.OfType().Select(t => t.controller), GetElementsBounds(selection.Where(t => !(t is Edge)).Cast())); - } - List m_Systems = new List(); public ReadOnlyCollection systems diff --git a/Packages/com.unity.visualeffectgraph/Editor/Inspector/VFXSlotContainerEditor.cs b/Packages/com.unity.visualeffectgraph/Editor/Inspector/VFXSlotContainerEditor.cs index 8d59a88448a..701619084a3 100644 --- a/Packages/com.unity.visualeffectgraph/Editor/Inspector/VFXSlotContainerEditor.cs +++ b/Packages/com.unity.visualeffectgraph/Editor/Inspector/VFXSlotContainerEditor.cs @@ -187,6 +187,14 @@ public int CompareTo(GizmoInfo other) static bool s_HasGizmos; static int currentIndex; + public static void ClearGizmos() + { + s_AllGizmosInfo.Clear(); + s_Entries = null; + s_HasGizmos = false; + currentIndex = 0; + } + public static void UpdateFromVFXView(VFXView vfxView, List controllers) { Profiler.BeginSample("SceneViewVFXSlotContainerOverlay.UpdateFromVFXView"); @@ -203,22 +211,33 @@ public static void UpdateFromVFXView(VFXView vfxView, List con if (controllers != null) { + var currentGizmoInfo = s_AllGizmosInfo.ElementAtOrDefault(currentIndex); + var index = s_AllGizmosInfo.TakeWhile(x => x.view != vfxView).Count(); + bool sortNeeded = false; foreach (var controller in controllers) { controller.CollectGizmos(); if (s_AllGizmosInfo.All(x => x.view != vfxView || x.controller != controller)) { s_AllGizmosInfo.AddRange(controller.gizmoables.Select(x => new GizmoInfo(vfxView, controller, x))); + sortNeeded = true; } var currentGizmo = controller.gizmoables.ElementAtOrDefault(currentIndex - index); - if (currentGizmo != null) + if (currentGizmo != null && currentGizmoInfo.controller != null) { + currentGizmoInfo.controller.currentGizmoable = currentGizmoInfo.gizmo; controller.DrawGizmos(vfxView.attachedComponent); } index += controller.gizmoables.Count; } + + if (sortNeeded) + { + s_AllGizmosInfo.Sort(); + currentIndex = s_AllGizmosInfo.FindIndex(x => x.gizmo == currentGizmoInfo.gizmo && x.controller == currentGizmoInfo.controller); + } } s_HasGizmos = s_AllGizmosInfo.Count > 0; @@ -238,7 +257,6 @@ public override void OnGUI() { if (s_AllGizmosInfo.Count > 0) { - s_AllGizmosInfo.Sort(); GUILayout.BeginHorizontal(); try { diff --git a/Packages/com.unity.visualeffectgraph/Editor/Models/Contexts/Implementations/VFXComposedShading.cs b/Packages/com.unity.visualeffectgraph/Editor/Models/Contexts/Implementations/VFXComposedShading.cs index 3b8102f58da..f339a32f702 100644 --- a/Packages/com.unity.visualeffectgraph/Editor/Models/Contexts/Implementations/VFXComposedShading.cs +++ b/Packages/com.unity.visualeffectgraph/Editor/Models/Contexts/Implementations/VFXComposedShading.cs @@ -27,7 +27,7 @@ ShaderGraphVfxAsset GetOrRefreshShaderGraphObject(List<(string error, VFXErrorTy //This is the only place where shaderGraph property is updated or read if (currentShaderGraph == null && !object.ReferenceEquals(currentShaderGraph, null)) { - var assetPath = AssetDatabase.GetAssetPath(currentShaderGraph.GetInstanceID()); + var assetPath = AssetDatabase.GetAssetPath(currentShaderGraph.GetEntityId()); var newShaderGraph = AssetDatabase.LoadAssetAtPath(assetPath); if (newShaderGraph == null) { diff --git a/Packages/com.unity.visualeffectgraph/Editor/Models/Contexts/Implementations/VFXComposedTopology.cs b/Packages/com.unity.visualeffectgraph/Editor/Models/Contexts/Implementations/VFXComposedTopology.cs index 7294e01d6df..6cf9787be53 100644 --- a/Packages/com.unity.visualeffectgraph/Editor/Models/Contexts/Implementations/VFXComposedTopology.cs +++ b/Packages/com.unity.visualeffectgraph/Editor/Models/Contexts/Implementations/VFXComposedTopology.cs @@ -66,6 +66,8 @@ public override TraitDescription GetDescription(VFXAbstractComposedParticleOutpu desc.features |= VFXOutputUpdate.Features.MultiMesh; if (lod) desc.features |= VFXOutputUpdate.Features.LOD; + if (parent.HasFrustumCulling()) + desc.features |= VFXOutputUpdate.Features.FrustumCulling; desc.properties.AddRange(VFXMultiMeshHelper.GetInputProperties(MeshCount, desc.features)); foreach (var cpuExpression in VFXMultiMeshHelper.GetCPUExpressionNames(MeshCount)) diff --git a/Packages/com.unity.visualeffectgraph/Editor/Models/Contexts/Implementations/VFXStaticMeshOutput.cs b/Packages/com.unity.visualeffectgraph/Editor/Models/Contexts/Implementations/VFXStaticMeshOutput.cs index 29f23df7463..9dee93e077b 100644 --- a/Packages/com.unity.visualeffectgraph/Editor/Models/Contexts/Implementations/VFXStaticMeshOutput.cs +++ b/Packages/com.unity.visualeffectgraph/Editor/Models/Contexts/Implementations/VFXStaticMeshOutput.cs @@ -66,7 +66,7 @@ private Shader GetOrRefreshShaderGraphObject(bool refreshErrors = true) //This is the only place where shader property is updated or read if (meshShader == null && !object.ReferenceEquals(meshShader, null) && meshShader.GetInstanceID() != 0) { - var assetPath = AssetDatabase.GetAssetPath(meshShader.GetInstanceID()); + var assetPath = AssetDatabase.GetAssetPath(meshShader.GetEntityId()); var newShader = AssetDatabase.LoadAssetAtPath(assetPath); m_IsShaderGraphMissing = newShader == null; diff --git a/Packages/com.unity.visualeffectgraph/Editor/Models/Contexts/VFXSubgraphContext.cs b/Packages/com.unity.visualeffectgraph/Editor/Models/Contexts/VFXSubgraphContext.cs index efc4157dd0a..27792a11ba2 100644 --- a/Packages/com.unity.visualeffectgraph/Editor/Models/Contexts/VFXSubgraphContext.cs +++ b/Packages/com.unity.visualeffectgraph/Editor/Models/Contexts/VFXSubgraphContext.cs @@ -63,7 +63,7 @@ void RefreshSubgraphObject() { if (m_Subgraph == null && !object.ReferenceEquals(m_Subgraph, null)) { - string assetPath = AssetDatabase.GetAssetPath(m_Subgraph.GetInstanceID()); + string assetPath = AssetDatabase.GetAssetPath(m_Subgraph.GetEntityId()); var newSubgraph = AssetDatabase.LoadAssetAtPath(assetPath); if (newSubgraph != null) diff --git a/Packages/com.unity.visualeffectgraph/Editor/Models/Operators/VFXSubgraphOperator.cs b/Packages/com.unity.visualeffectgraph/Editor/Models/Operators/VFXSubgraphOperator.cs index 0969e098080..cf4d5a66b39 100644 --- a/Packages/com.unity.visualeffectgraph/Editor/Models/Operators/VFXSubgraphOperator.cs +++ b/Packages/com.unity.visualeffectgraph/Editor/Models/Operators/VFXSubgraphOperator.cs @@ -89,7 +89,7 @@ public VisualEffectSubgraphOperator subgraph { if (m_Subgraph == null && !object.ReferenceEquals(m_Subgraph, null)) { - string assetPath = AssetDatabase.GetAssetPath(m_Subgraph.GetInstanceID()); + string assetPath = AssetDatabase.GetAssetPath(m_Subgraph.GetEntityId()); var newSubgraph = AssetDatabase.LoadAssetAtPath(assetPath); if (newSubgraph != null) diff --git a/Packages/com.unity.visualeffectgraph/Editor/Models/Slots/Implementations/VFXSlotGraphicsBuffer.cs b/Packages/com.unity.visualeffectgraph/Editor/Models/Slots/Implementations/VFXSlotGraphicsBuffer.cs index 256d7fc7966..21be887ea20 100644 --- a/Packages/com.unity.visualeffectgraph/Editor/Models/Slots/Implementations/VFXSlotGraphicsBuffer.cs +++ b/Packages/com.unity.visualeffectgraph/Editor/Models/Slots/Implementations/VFXSlotGraphicsBuffer.cs @@ -8,7 +8,7 @@ class VFXSlotGraphicsBuffer : VFXSlotObject { public override VFXValue DefaultExpression(VFXValue.Mode mode) { - return new VFXGraphicsBufferValue(0, mode); + return new VFXGraphicsBufferValue(EntityId.None, mode); } } } diff --git a/Packages/com.unity.visualeffectgraph/Editor/Models/Slots/Implementations/VFXSlotMesh.cs b/Packages/com.unity.visualeffectgraph/Editor/Models/Slots/Implementations/VFXSlotMesh.cs index 9467590732a..c7c101f8f70 100644 --- a/Packages/com.unity.visualeffectgraph/Editor/Models/Slots/Implementations/VFXSlotMesh.cs +++ b/Packages/com.unity.visualeffectgraph/Editor/Models/Slots/Implementations/VFXSlotMesh.cs @@ -8,7 +8,7 @@ class VFXSlotMesh : VFXSlotObject { public override VFXValue DefaultExpression(VFXValue.Mode mode) { - return new VFXMeshValue(0, mode); + return new VFXMeshValue(EntityId.None, mode); } } } diff --git a/Packages/com.unity.visualeffectgraph/Editor/Models/Slots/Implementations/VFXSlotObject.cs b/Packages/com.unity.visualeffectgraph/Editor/Models/Slots/Implementations/VFXSlotObject.cs index 8bf0830c854..e2e2e99b3b1 100644 --- a/Packages/com.unity.visualeffectgraph/Editor/Models/Slots/Implementations/VFXSlotObject.cs +++ b/Packages/com.unity.visualeffectgraph/Editor/Models/Slots/Implementations/VFXSlotObject.cs @@ -16,8 +16,8 @@ public override void GetSourceDependentAssets(HashSet dependencies) if (!object.ReferenceEquals(obj, null)) { - int instanceID = obj.GetInstanceID(); - dependencies.Add(AssetDatabase.AssetPathToGUID(AssetDatabase.GetAssetPath(instanceID))); + var entityId = obj.GetEntityId(); + dependencies.Add(AssetDatabase.AssetPathToGUID(AssetDatabase.GetAssetPath(entityId))); } } } diff --git a/Packages/com.unity.visualeffectgraph/Editor/Models/Slots/Implementations/VFXSlotSkinnedMeshRenderer.cs b/Packages/com.unity.visualeffectgraph/Editor/Models/Slots/Implementations/VFXSlotSkinnedMeshRenderer.cs index a2cbbe12a34..a2fe9c7885f 100644 --- a/Packages/com.unity.visualeffectgraph/Editor/Models/Slots/Implementations/VFXSlotSkinnedMeshRenderer.cs +++ b/Packages/com.unity.visualeffectgraph/Editor/Models/Slots/Implementations/VFXSlotSkinnedMeshRenderer.cs @@ -8,7 +8,7 @@ class VFXSlotSkinnedMeshRenderer : VFXSlotObject { public override VFXValue DefaultExpression(VFXValue.Mode mode) { - return new VFXSkinnedMeshRendererValue(0, mode); + return new VFXSkinnedMeshRendererValue(EntityId.None, mode); } } } diff --git a/Packages/com.unity.visualeffectgraph/Editor/Models/VFXGraph.cs b/Packages/com.unity.visualeffectgraph/Editor/Models/VFXGraph.cs index 55c64a17d3d..34fe22f5de2 100644 --- a/Packages/com.unity.visualeffectgraph/Editor/Models/VFXGraph.cs +++ b/Packages/com.unity.visualeffectgraph/Editor/Models/VFXGraph.cs @@ -484,6 +484,11 @@ class VFXGraph : VFXModel // 19: Change sticky notes theme serialization public static readonly int CurrentVersion = 19; + public void OnDisable() + { + ClearPreviewAssets(); + } + public override void OnSRPChanged() { m_GraphSanitized = false; @@ -1023,14 +1028,6 @@ private void SanitizeCameraBufferLinks(VFXSlot slotFrom, int indexFrom, Scriptab } } - public void ClearCompileData() - { - m_CompiledData = null; - - - m_ExpressionValuesDirty = true; - } - [SerializeField] List m_ImportDependencies; @@ -1385,6 +1382,150 @@ public void SanitizeForImport() SanitizeGraph(); } + internal VFXGraphCompiledData.VFXCompileOutput Compile() + { + return compiledData.Compile(m_CompilationMode, VFXViewPreference.generateShadersWithDebugSymbols || m_ForceShaderDebugSymbols, VFXAnalytics.GetInstance()); + } + + private static System.Reflection.PropertyInfo kGetAllowLocking = typeof(Material).GetProperty("allowLocking", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic); + + private List m_PreviewAsset = new(); + private void ClearPreviewAssets() + { + foreach (var previewAsset in m_PreviewAsset) + { + if (!previewAsset.hideFlags.HasFlag(HideFlags.HideAndDontSave)) + Debug.LogError("Unexpected preview asset: " + previewAsset); + + UnityObject.DestroyImmediate(previewAsset, true); + } + m_PreviewAsset.Clear(); + } + + internal UnityObject[] CompileAndUpdateAsset(VisualEffectAsset asset) + { + ClearPreviewAssets(); + + SetExpressionGraphDirty(); + var compilationOutput = RecompileIfNeeded(false, true); + if (compilationOutput.success) + { + //This following behavior must be in sync with VisualEffectImporter::GenerateAssetData + bool instancingEnabled = asset.instancingMode != VFXInstancingMode.Disabled; + + var overridenSystemDesc = new List(); + foreach (var system in compilationOutput.systemDesc) + { + var overridenTask = new List(); + if (system.tasks != null) foreach (var task in system.tasks) + { + UnityObject currentProcessor = null; + if (task.shaderSourceIndex >= 0) + { + var shaderSource = compilationOutput.shaderSourceDesc[task.shaderSourceIndex]; + if (shaderSource.compute) + { + currentProcessor = ShaderUtil.CreateComputeShaderAsset(shaderSource.source); + m_PreviewAsset.Add(currentProcessor); + currentProcessor.hideFlags = HideFlags.HideAndDontSave; + } + else + { + currentProcessor = ShaderUtil.CreateShaderAsset(shaderSource.source); + m_PreviewAsset.Add(currentProcessor); + currentProcessor.name = shaderSource.name; + currentProcessor.hideFlags = HideFlags.HideAndDontSave; + } + } + else if (task.processor is Shader || task.processor is MonoScript) + { + currentProcessor = task.processor; + } + else if (task.processor != null) + { + throw new InvalidOperationException("Unexpected processor type:" + task.processor.GetType()); + } + + if (currentProcessor != null && currentProcessor is Shader shader) + { + Material writableMaterial; + + bool systemHasInstancing = instancingEnabled && system.flags.HasFlag(VFXSystemFlag.SystemUsesInstancedRendering); + if (!task.usesMaterialVariant) + { + writableMaterial = new Material(shader) { hideFlags = HideFlags.HideAndDontSave }; + m_PreviewAsset.Add(writableMaterial); + writableMaterial.name = shader.name; + writableMaterial.enableInstancing = systemHasInstancing; + } + else + { + var parentMaterial = new Material(shader) { hideFlags = HideFlags.HideAndDontSave }; + m_PreviewAsset.Add(parentMaterial); + parentMaterial.name = shader.name + "_Parent"; + parentMaterial.enableInstancing = systemHasInstancing; + parentMaterial.SetPropertyLock(1 << 2, true); //Matches MaterialSerializedProperty.EnableInstancingVariants + + writableMaterial = new Material(parentMaterial) + { + parent = parentMaterial, + hideFlags = HideFlags.HideAndDontSave + }; + parentMaterial.name = shader.name; + kGetAllowLocking.SetValue(writableMaterial, false); + m_PreviewAsset.Add(writableMaterial); + } + + //OnSetupMaterial equivalent + var model = task.model; + if (model is IVFXSubRenderer subRenderer) + { + subRenderer.SetupMaterial(writableMaterial); + } + + currentProcessor = writableMaterial; + } + + var newTask = task; + newTask.processor = currentProcessor; + overridenTask.Add(newTask); + } + + var newSystem = system; + if (system.tasks != null && system.tasks.Length != overridenTask.Count) + throw new InvalidOperationException("Unexpected copy of task"); + + newSystem.tasks = overridenTask.ToArray(); + overridenSystemDesc.Add(newSystem); + } + + if (compilationOutput.systemDesc.Length != overridenSystemDesc.Count) + throw new InvalidOperationException("Unexpected copy of system"); + + var desc = new VisualEffectAssetDesc() + { + sheet = compilationOutput.sheet, + systemDesc = overridenSystemDesc.ToArray(), + eventDesc = compilationOutput.eventDesc, + gpuBufferDesc = compilationOutput.gpuBufferDesc, + cpuBufferDesc = compilationOutput.cpuBufferDesc, + temporaryBufferDesc = compilationOutput.temporaryBufferDesc, + shaderSourceDesc = compilationOutput.shaderSourceDesc, + rendererSettings = compilationOutput.rendererSettings, + compilationMode = m_CompilationMode, + version = compilationOutput.version + }; + + VisualEffectAssetUtility.SetVisualEffectAssetDesc(asset, desc); + } + else + { + //LogError is already handled by "Unity cannot compile the VisualEffectAsset", only empty asset + VisualEffectAssetUtility.SetVisualEffectAssetDesc(asset, new VisualEffectAssetDesc() { compilationMode = m_CompilationMode }); + } + return m_PreviewAsset.ToArray(); + } + public void CompileForImport() { bool isSubgraph = GetResource().isSubgraph; @@ -1400,14 +1541,46 @@ public void CompileForImport() BuildSubgraphDependencies(); PrepareSubgraphs(); - compiledData.Compile(m_CompilationMode, m_ForceShaderValidation, VFXViewPreference.generateShadersWithDebugSymbols || m_ForceShaderDebugSymbols, VFXAnalytics.GetInstance()); + var compilationOutput = Compile(); + + var resource = GetResource(); + if (compilationOutput.success) + { + resource.SetRuntimeData( + compilationOutput.sheet, + compilationOutput.systemDesc, + compilationOutput.eventDesc, + compilationOutput.gpuBufferDesc, + compilationOutput.cpuBufferDesc, + compilationOutput.temporaryBufferDesc, + compilationOutput.shaderSourceDesc, + compilationOutput.rendererSettings.shadowCastingMode, + compilationOutput.rendererSettings.motionVectorGenerationMode, + compilationOutput.instancingDisabledReason, + m_CompilationMode, + compilationOutput.version); + + resource.ClearSourceDependencies(); + foreach (var dependency in compilationOutput.sourceDependencies) + resource.AddSourceDependency(dependency); + } + else + { + resource.ClearRuntimeData(); + } + } m_ExpressionGraphDirty = false; m_ExpressionValuesDirty = false; } - public void RecompileIfNeeded(bool preventRecompilation = false, bool preventDependencyRecompilation = false) + public VFXGraphCompiledData.VFXCompileOutput RecompileIfNeeded(bool preventRecompilation = false, bool preventDependencyRecompilation = false) { + var output = new VFXGraphCompiledData.VFXCompileOutput + { + success = false + }; + SanitizeGraph(); if (!GetResource().isSubgraph) @@ -1417,8 +1590,7 @@ public void RecompileIfNeeded(bool preventRecompilation = false, bool preventDep { BuildSubgraphDependencies(); PrepareSubgraphs(); - - compiledData.Compile(m_CompilationMode, m_ForceShaderValidation, VFXViewPreference.generateShadersWithDebugSymbols || m_ForceShaderDebugSymbols, VFXAnalytics.GetInstance()); + output = Compile(); } else { @@ -1451,6 +1623,7 @@ public void RecompileIfNeeded(bool preventRecompilation = false, bool preventDep } errorManager.GenerateErrors(); + return output; } public void RegisterCompileError(string error, string description, VFXModel model) @@ -1524,7 +1697,7 @@ public string[] UpdateImportDependencies() if (dependency == 0) continue; - if (AssetDatabase.TryGetGUIDAndLocalFileIdentifier(dependency, out string guid, out long localId)) + if (AssetDatabase.TryGetGUIDAndLocalFileIdentifier((EntityId)dependency, out string guid, out long localId)) { if (!guids.Contains(guid)) { diff --git a/Packages/com.unity.visualeffectgraph/Editor/ShaderGraph/VFXShaderGraphHelpers.cs b/Packages/com.unity.visualeffectgraph/Editor/ShaderGraph/VFXShaderGraphHelpers.cs index e14544540cd..cf50c2cff0d 100644 --- a/Packages/com.unity.visualeffectgraph/Editor/ShaderGraph/VFXShaderGraphHelpers.cs +++ b/Packages/com.unity.visualeffectgraph/Editor/ShaderGraph/VFXShaderGraphHelpers.cs @@ -17,8 +17,7 @@ static class VFXShaderGraphHelpers { public static string GetMissingShaderGraphErrorMessage(ShaderGraphVfxAsset shader) { - var instanceID = shader.GetInstanceID(); - var missingShaderPath = AssetDatabase.GetAssetPath(instanceID); + var missingShaderPath = AssetDatabase.GetAssetPath(shader.GetEntityId()); if (!string.IsNullOrEmpty(missingShaderPath)) { return $" cannot be compiled because a Shader Graph asset located here '{missingShaderPath}' is missing."; @@ -88,6 +87,23 @@ private static object GetPropertyValue(AbstractShaderProperty property) } } + static VFXExpression ConstantFromValue(object value) + { + if (value == null) + throw new NullReferenceException("ConstantFromValue NRE"); + + var type = value.GetType(); + if (type == typeof(Color)) return VFXValue.Constant((Color)(value)); + if (type == typeof(bool)) return VFXValue.Constant((bool)value); + if (type == typeof(float)) return VFXValue.Constant((float)value); + if (type == typeof(Vector2)) return VFXValue.Constant((Vector2)value); + if (type == typeof(Vector3)) return VFXValue.Constant((Vector3)value); + if (type == typeof(Vector4)) return VFXValue.Constant((Vector4)value); + + //This function is only used for constant which can be exposed and aren't textures (see VFXSGInputs usage) + throw new InvalidOperationException("ConstantFromValue missing support for: " + type); + } + public struct Property { public VFXPropertyWithValue property; @@ -95,23 +111,13 @@ public struct Property public string[] keywordsMapping; } - public static bool HasAnyKeywordProperty(ShaderGraphVfxAsset shaderGraph) - { - foreach (var property in shaderGraph.properties) - { - if (property is ShaderGraph.ShaderKeyword) - return true; - } - return false; - } - public static IEnumerable GetProperties(ShaderGraphVfxAsset shaderGraph) { foreach (var property in shaderGraph.properties) { if (property is AbstractShaderProperty shaderProperty) { - if (shaderProperty.hidden) + if (shaderProperty.hidden || !shaderProperty.isExposed) continue; var type = GetPropertyType(shaderProperty); @@ -249,18 +255,29 @@ public static ShaderGraphVfxAsset GetShaderGraph(VFXContext context) return null; } - public static void GetShaderGraphParameter(ShaderGraphVfxAsset shaderGraph, out List fragmentParameters, out List vertexParameter) + public static void GetShaderGraphParameters(ShaderGraphVfxAsset shaderGraph, out List<(string name, ShaderStageCapability shaderStage, bool exposed, VFXExpression defaultValue)> parameters) { - fragmentParameters = new List(); - vertexParameter = new List(); - - foreach (var param in shaderGraph.fragmentProperties) - if (!IsTexture(param.propertyType)) // Remove exposed textures from list of interpolants - fragmentParameters.Add(param.referenceName); - - foreach (var param in shaderGraph.vertexProperties) - if (!IsTexture(param.propertyType)) // Remove exposed textures from list of interpolants - vertexParameter.Add(param.referenceName); + parameters = new(); + var properties = shaderGraph.properties; + for (var propertyIndex = 0; propertyIndex < properties.Count; ++propertyIndex) + { + var param = properties[propertyIndex]; + if (param is AbstractShaderProperty property + && !IsTexture(property.propertyType)) + { + var propertyStage = shaderGraph.GetPropertyStage(propertyIndex); + if (propertyStage != ShaderStageCapability.None) + { + VFXExpression exp = null; + if (!param.isExposed) + { + var value = GetPropertyValue(property); + exp = ConstantFromValue(value); + } //else, expression will be provided by VFXSlot + parameters.Add((param.referenceName, propertyStage, param.isExposed, exp)); + } + } + } } } } diff --git a/Packages/com.unity.visualeffectgraph/Editor/ShaderGraph/VFXShaderGraphParticleOutput.cs b/Packages/com.unity.visualeffectgraph/Editor/ShaderGraph/VFXShaderGraphParticleOutput.cs index 037f3ff9c7b..1ecb6c294be 100644 --- a/Packages/com.unity.visualeffectgraph/Editor/ShaderGraph/VFXShaderGraphParticleOutput.cs +++ b/Packages/com.unity.visualeffectgraph/Editor/ShaderGraph/VFXShaderGraphParticleOutput.cs @@ -31,7 +31,7 @@ public ShaderGraphVfxAsset GetOrRefreshShaderGraphObject(bool refreshErrors = tr //This is the only place where shaderGraph property is updated or read if (shaderGraph == null && !object.ReferenceEquals(shaderGraph, null)) { - var assetPath = AssetDatabase.GetAssetPath(shaderGraph.GetInstanceID()); + var assetPath = AssetDatabase.GetAssetPath(shaderGraph.GetEntityId()); var newShaderGraph = AssetDatabase.LoadAssetAtPath(assetPath); m_IsShaderGraphMissing = newShaderGraph == null; diff --git a/Packages/com.unity.visualeffectgraph/Editor/TemplateWindow/CreateFromTemplateDropDownButton.cs b/Packages/com.unity.visualeffectgraph/Editor/TemplateWindow/CreateFromTemplateDropDownButton.cs index 15136f62cf7..d025ac99ca4 100644 --- a/Packages/com.unity.visualeffectgraph/Editor/TemplateWindow/CreateFromTemplateDropDownButton.cs +++ b/Packages/com.unity.visualeffectgraph/Editor/TemplateWindow/CreateFromTemplateDropDownButton.cs @@ -18,7 +18,7 @@ public CreateFromTemplateDropDownButton(VFXView vfxView) nameof(CreateFromTemplateDropDownButton), vfxView, "VFXCreateFromTemplateDropDownPanel", - "Insert a template into current asset\nHold CTRL key and click to create a new VFX", + "Insert a template into current graph\nHold CTRL key and click to create a new VFX", k_MainButtonName, EditorResources.iconsPath + "CreateAddNew.png", true, @@ -75,7 +75,7 @@ private void OnInsert() private void InsertFromTemplate(string templatePath, string assetPath) { var window = VFXViewWindow.GetWindow(m_VFXView); - window.graphView.CreateTemplateSystem(templatePath, Vector2.zero, null); + window.graphView.CreateTemplateSystem(templatePath, Vector2.zero, null, true); } private void CreateNewFromTemplate(string templatePath, string assetPath) diff --git a/Packages/com.unity.visualeffectgraph/Editor/Templates/01_Minimal_System.vfx b/Packages/com.unity.visualeffectgraph/Editor/Templates/01_Minimal_System.vfx index 1ead217683b..8d51eecaec7 100644 --- a/Packages/com.unity.visualeffectgraph/Editor/Templates/01_Minimal_System.vfx +++ b/Packages/com.unity.visualeffectgraph/Editor/Templates/01_Minimal_System.vfx @@ -621,10 +621,6 @@ VisualEffectResource: m_RendererSettings: motionVectorGenerationMode: 0 shadowCastingMode: 0 - rayTracingMode: 0 - receiveShadows: 0 - reflectionProbeUsage: 0 - lightProbeUsage: 0 m_CullingFlags: 3 m_UpdateMode: 0 m_PreWarmDeltaTime: 0.05 diff --git a/Packages/com.unity.visualeffectgraph/Editor/Templates/02_Simple_Loop.vfx b/Packages/com.unity.visualeffectgraph/Editor/Templates/02_Simple_Loop.vfx index e5e00c7cff7..b234b31aca9 100644 --- a/Packages/com.unity.visualeffectgraph/Editor/Templates/02_Simple_Loop.vfx +++ b/Packages/com.unity.visualeffectgraph/Editor/Templates/02_Simple_Loop.vfx @@ -83,10 +83,6 @@ VisualEffectResource: m_RendererSettings: motionVectorGenerationMode: 0 shadowCastingMode: 0 - rayTracingMode: 0 - receiveShadows: 0 - reflectionProbeUsage: 0 - lightProbeUsage: 0 m_CullingFlags: 3 m_UpdateMode: 0 m_PreWarmDeltaTime: 0.05 diff --git a/Packages/com.unity.visualeffectgraph/Editor/Templates/03_Simple_Burst.vfx b/Packages/com.unity.visualeffectgraph/Editor/Templates/03_Simple_Burst.vfx index ae66f6539a5..6e857429adb 100644 --- a/Packages/com.unity.visualeffectgraph/Editor/Templates/03_Simple_Burst.vfx +++ b/Packages/com.unity.visualeffectgraph/Editor/Templates/03_Simple_Burst.vfx @@ -83,10 +83,6 @@ VisualEffectResource: m_RendererSettings: motionVectorGenerationMode: 0 shadowCastingMode: 0 - rayTracingMode: 0 - receiveShadows: 0 - reflectionProbeUsage: 0 - lightProbeUsage: 0 m_CullingFlags: 3 m_UpdateMode: 0 m_PreWarmDeltaTime: 0.05 diff --git a/Packages/com.unity.visualeffectgraph/Editor/Templates/04_Simple_Trail.vfx b/Packages/com.unity.visualeffectgraph/Editor/Templates/04_Simple_Trail.vfx index 5b926a67696..9d18587fe6d 100644 --- a/Packages/com.unity.visualeffectgraph/Editor/Templates/04_Simple_Trail.vfx +++ b/Packages/com.unity.visualeffectgraph/Editor/Templates/04_Simple_Trail.vfx @@ -83,10 +83,6 @@ VisualEffectResource: m_RendererSettings: motionVectorGenerationMode: 0 shadowCastingMode: 0 - rayTracingMode: 0 - receiveShadows: 0 - reflectionProbeUsage: 0 - lightProbeUsage: 0 m_CullingFlags: 0 m_UpdateMode: 0 m_PreWarmDeltaTime: 0.05 diff --git a/Packages/com.unity.visualeffectgraph/Editor/Templates/05_Head_Trail.vfx b/Packages/com.unity.visualeffectgraph/Editor/Templates/05_Head_Trail.vfx index bbbab640c34..270c0ffd6ff 100644 --- a/Packages/com.unity.visualeffectgraph/Editor/Templates/05_Head_Trail.vfx +++ b/Packages/com.unity.visualeffectgraph/Editor/Templates/05_Head_Trail.vfx @@ -119,10 +119,6 @@ VisualEffectResource: m_RendererSettings: motionVectorGenerationMode: 0 shadowCastingMode: 0 - rayTracingMode: 0 - receiveShadows: 0 - reflectionProbeUsage: 0 - lightProbeUsage: 0 m_CullingFlags: 0 m_UpdateMode: 0 m_PreWarmDeltaTime: 0.05 diff --git a/Packages/com.unity.visualeffectgraph/Editor/Templates/06_Firework.vfx b/Packages/com.unity.visualeffectgraph/Editor/Templates/06_Firework.vfx index 605a5db98d3..8ec1f1cf34f 100644 --- a/Packages/com.unity.visualeffectgraph/Editor/Templates/06_Firework.vfx +++ b/Packages/com.unity.visualeffectgraph/Editor/Templates/06_Firework.vfx @@ -99,10 +99,6 @@ VisualEffectResource: m_RendererSettings: motionVectorGenerationMode: 0 shadowCastingMode: 0 - rayTracingMode: 0 - receiveShadows: 0 - reflectionProbeUsage: 0 - lightProbeUsage: 0 m_CullingFlags: 0 m_UpdateMode: 0 m_PreWarmDeltaTime: 0.05 diff --git a/Packages/com.unity.visualeffectgraph/Editor/Types/VFXTypes.cs b/Packages/com.unity.visualeffectgraph/Editor/Types/VFXTypes.cs index a11631bbf3b..f3a8039e072 100644 --- a/Packages/com.unity.visualeffectgraph/Editor/Types/VFXTypes.cs +++ b/Packages/com.unity.visualeffectgraph/Editor/Types/VFXTypes.cs @@ -339,13 +339,13 @@ public static implicit operator CameraBuffer(Texture texture) return new CameraBuffer(texture); } - public static implicit operator int(CameraBuffer cameraBuffer) + public static implicit operator EntityId(CameraBuffer cameraBuffer) { Debug.Assert(UnsafeUtility.SizeOf() == sizeof(int), "EntityId size is not equal to int size, this will cause issues, update to EntityId instead"); return cameraBuffer.texture?.GetEntityId() ?? EntityId.None; } - public static implicit operator CameraBuffer(int id) + public static implicit operator CameraBuffer(EntityId id) { Debug.Assert(UnsafeUtility.SizeOf() == sizeof(int), "EntityId size is not equal to int size, this will cause issues, update to EntityId instead"); return new CameraBuffer((Texture)EditorUtility.EntityIdToObject(id)); diff --git a/Packages/com.unity.visualeffectgraph/Editor/Utilities/pCache/Operator/VFXOperatorPointCache.cs b/Packages/com.unity.visualeffectgraph/Editor/Utilities/pCache/Operator/VFXOperatorPointCache.cs index 210ed5e52b3..5ad96e4517a 100644 --- a/Packages/com.unity.visualeffectgraph/Editor/Utilities/pCache/Operator/VFXOperatorPointCache.cs +++ b/Packages/com.unity.visualeffectgraph/Editor/Utilities/pCache/Operator/VFXOperatorPointCache.cs @@ -26,7 +26,7 @@ public override void GetImportDependentAssets(HashSet dependencies) base.GetImportDependentAssets(dependencies); if (!object.ReferenceEquals(Asset, null)) { - dependencies.Add(Asset.GetInstanceID()); + dependencies.Add(Asset.GetEntityId()); } } @@ -37,7 +37,7 @@ internal override void GenerateErrors(VFXErrorReporter report) var asset = GetOrRefreshPointCacheAsset(false); if (m_IsPointCacheAssetMissing) { - var missingPointCachePath = AssetDatabase.GetAssetPath(asset.GetInstanceID()); + var missingPointCachePath = AssetDatabase.GetAssetPath(asset.GetEntityId()); var message = $"The VFX Graph cannot be compiled because a PointCacheAsset located here '{missingPointCachePath}' is missing."; report.RegisterError("ErrorMissingPointCache", VFXErrorType.Error, message, this); } @@ -93,7 +93,7 @@ private PointCacheAsset GetOrRefreshPointCacheAsset(bool refreshErrors = true) //This is the only place where point cache property is updated or read if (Asset == null && !object.ReferenceEquals(Asset, null)) { - var assetPath = AssetDatabase.GetAssetPath(Asset.GetInstanceID()); + var assetPath = AssetDatabase.GetAssetPath(Asset.GetEntityId()); var newPointCacheAsset = AssetDatabase.LoadAssetAtPath(assetPath); m_IsPointCacheAssetMissing = newPointCacheAsset == null; diff --git a/Tests/SRPTests/Packages/com.unity.testing.urp/Scripts/Editor/CompatibilityModeInitializer.cs b/Tests/SRPTests/Packages/com.unity.testing.urp/Scripts/Editor/CompatibilityModeInitializer.cs new file mode 100644 index 00000000000..32b623ae35d --- /dev/null +++ b/Tests/SRPTests/Packages/com.unity.testing.urp/Scripts/Editor/CompatibilityModeInitializer.cs @@ -0,0 +1,46 @@ +using UnityEditor; +using UnityEditor.Build; +using UnityEngine; +using UnityEngine.TestTools.Graphics; + +// This class detects the -urp-compatibility-mode command line argument and adds the URP_COMPATIBILITY_MODE define +// to the active build target in order to be able to run editor/playmode tests that require URP Compatibility Mode. +#if UNITY_EDITOR +[InitializeOnLoad] +public static class CompatibilityModeInitializer +{ + static CompatibilityModeInitializer() + { + if (RuntimeSettings.urpCompatibilityMode && !HasCompatibilityModeScriptingDefine()) + { + SetCompatibilityModeScriptingDefine(); + Debug.Log($"Added URP_COMPATIBILITY_MODE scripting define to '{GetNamedBuildTarget().TargetName}' build target in project settings."); + } + } + + static NamedBuildTarget GetNamedBuildTarget() + { + var activeBuildTarget = EditorUserBuildSettings.activeBuildTarget; + var activeBuildTargetGroup = BuildPipeline.GetBuildTargetGroup(activeBuildTarget); + return NamedBuildTarget.FromBuildTargetGroup(activeBuildTargetGroup); + } + + static bool HasCompatibilityModeScriptingDefine() + { + var namedBuildTarget = GetNamedBuildTarget(); + return PlayerSettings.GetScriptingDefineSymbols(namedBuildTarget).Contains("URP_COMPATIBILITY_MODE"); + } + + static void SetCompatibilityModeScriptingDefine() + { + var namedBuildTarget = GetNamedBuildTarget(); + var defines = PlayerSettings.GetScriptingDefineSymbols(namedBuildTarget); + if (!string.IsNullOrEmpty(defines)) + defines += ";"; + defines += "URP_COMPATIBILITY_MODE"; + + PlayerSettings.SetScriptingDefineSymbols(namedBuildTarget, defines); + AssetDatabase.SaveAssets(); // Recompile + } +} +#endif diff --git a/Tests/SRPTests/Packages/com.unity.testing.urp/Scripts/Editor/CompatibilityModeInitializer.cs.meta b/Tests/SRPTests/Packages/com.unity.testing.urp/Scripts/Editor/CompatibilityModeInitializer.cs.meta new file mode 100644 index 00000000000..828842c8db7 --- /dev/null +++ b/Tests/SRPTests/Packages/com.unity.testing.urp/Scripts/Editor/CompatibilityModeInitializer.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: c0916db7b21e4af68e1dba2626828a9e +timeCreated: 1750758473 \ No newline at end of file diff --git a/Tests/SRPTests/Packages/com.unity.testing.urp/Scripts/Editor/MultipleViewGCTest.cs b/Tests/SRPTests/Packages/com.unity.testing.urp/Scripts/Editor/MultipleViewGCTest.cs index 45ef7bd5a91..798ea1366fc 100644 --- a/Tests/SRPTests/Packages/com.unity.testing.urp/Scripts/Editor/MultipleViewGCTest.cs +++ b/Tests/SRPTests/Packages/com.unity.testing.urp/Scripts/Editor/MultipleViewGCTest.cs @@ -2,12 +2,16 @@ using UnityEditor; using UnityEngine; using UnityEngine.Profiling; +using UnityEngine.Rendering; +using UnityEngine.Rendering.Universal; [TestFixture] public class MultipleViewGCTest : MonoBehaviour { Recorder m_gcAllocRecorder; EditorWindow m_sceneView; + RenderTexture m_RenderTexture; + UniversalRenderPipeline.SingleCameraRequest m_RenderRequest; [OneTimeSetUp] public void SetUp() @@ -37,9 +41,20 @@ public void SetUp() m_gcAllocRecorder.FilterToCurrentThread(); m_gcAllocRecorder.enabled = false; + RenderTextureDescriptor desc = new RenderTextureDescriptor(Camera.main.pixelWidth, Camera.main.pixelHeight, RenderTextureFormat.Default, 32); + m_RenderTexture = RenderTexture.GetTemporary(desc); + + m_RenderRequest = new UniversalRenderPipeline.SingleCameraRequest { destination = m_RenderTexture }; + // Render first frame where gc is ok m_sceneView.Repaint(); - Camera.main.Render(); + RenderPipeline.SubmitRenderRequest(Camera.main, m_RenderRequest); + } + + [OneTimeTearDown] + public void TearDown() + { + RenderTexture.ReleaseTemporary(m_RenderTexture); } [Test] @@ -49,7 +64,7 @@ public void RenderSceneAndGameView() { m_gcAllocRecorder.enabled = true; m_sceneView.Repaint(); - Camera.main.Render(); + RenderPipeline.SubmitRenderRequest(Camera.main, m_RenderRequest); m_gcAllocRecorder.enabled = false; } int allocationCountOfRenderPipeline = m_gcAllocRecorder.sampleBlockCount; diff --git a/Tests/SRPTests/Packages/com.unity.testing.urp/Scripts/Editor/Unity.Testing.SRP.Universal.Editor.asmdef b/Tests/SRPTests/Packages/com.unity.testing.urp/Scripts/Editor/Unity.Testing.SRP.Universal.Editor.asmdef index 1ed3fd4898f..9217d1ad19a 100644 --- a/Tests/SRPTests/Packages/com.unity.testing.urp/Scripts/Editor/Unity.Testing.SRP.Universal.Editor.asmdef +++ b/Tests/SRPTests/Packages/com.unity.testing.urp/Scripts/Editor/Unity.Testing.SRP.Universal.Editor.asmdef @@ -9,7 +9,8 @@ "GUID:925cf1d7b1444c3448cc9b44ce814a9e", "GUID:c579267770062bf448e75eb160330b7f", "GUID:15fc0a57446b3144c949da3e2b9737a9", - "GUID:f6cacf2273fa4a1488e781d84678972d" + "GUID:f6cacf2273fa4a1488e781d84678972d", + "GUID:c081bc530f560634bb5c21d4b323a7f1" ], "includePlatforms": [ "Editor" diff --git a/Tests/SRPTests/Packages/com.unity.testing.urp/Scripts/Runtime/CustomRenderPipeline/CustomRenderer.cs b/Tests/SRPTests/Packages/com.unity.testing.urp/Scripts/Runtime/CustomRenderPipeline/CustomRenderer.cs index 888af189234..d1d32f4e7a8 100644 --- a/Tests/SRPTests/Packages/com.unity.testing.urp/Scripts/Runtime/CustomRenderPipeline/CustomRenderer.cs +++ b/Tests/SRPTests/Packages/com.unity.testing.urp/Scripts/Runtime/CustomRenderPipeline/CustomRenderer.cs @@ -35,6 +35,7 @@ protected override void Dispose(bool disposing) base.Dispose(disposing); } +#if !UNITY_6000_3_OR_NEWER || URP_COMPATIBILITY_MODE [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] public override void Setup(ScriptableRenderContext context, ref RenderingData renderingData) { @@ -63,6 +64,7 @@ private class SetupLightPassData internal RenderingData renderingData; internal ForwardLights forwardLights; }; +#endif private void SetupRenderGraphLights(RenderGraph renderGraph) { UniversalRenderingData renderingData = frameData.Get(); @@ -172,6 +174,7 @@ internal override void OnRecordRenderGraph(RenderGraph renderGraph, ScriptableRe m_RenderOpaqueForwardPass.Render(renderGraph, frameData, targetHandle, depthHandle, mainShadowsTexture, additionalShadowsTexture); } +#if !UNITY_6000_3_OR_NEWER || URP_COMPATIBILITY_MODE [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] public override void SetupLights(ScriptableRenderContext context, ref RenderingData renderingData) { @@ -181,6 +184,7 @@ public override void SetupLights(ScriptableRenderContext context, ref RenderingD m_ForwardLights.SetupLights(CommandBufferHelpers.GetUnsafeCommandBuffer(universalRenderingData.commandBuffer), universalRenderingData, cameraData, lightData); } +#endif internal override bool supportsNativeRenderPassRendergraphCompiler => true; } diff --git a/Tests/SRPTests/Packages/com.unity.testing.urp/Scripts/Runtime/DrawRenderingLayers/DrawRenderingLayersFeature.cs b/Tests/SRPTests/Packages/com.unity.testing.urp/Scripts/Runtime/DrawRenderingLayers/DrawRenderingLayersFeature.cs index ff5584e8632..631a86c88d9 100644 --- a/Tests/SRPTests/Packages/com.unity.testing.urp/Scripts/Runtime/DrawRenderingLayers/DrawRenderingLayersFeature.cs +++ b/Tests/SRPTests/Packages/com.unity.testing.urp/Scripts/Runtime/DrawRenderingLayers/DrawRenderingLayersFeature.cs @@ -25,6 +25,7 @@ public void Setup(RTHandle renderingLayerTestTextureHandle) m_TestRenderingLayersTextureHandle = renderingLayerTestTextureHandle; } +#if !UNITY_6000_3_OR_NEWER || URP_COMPATIBILITY_MODE [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) { @@ -32,6 +33,7 @@ public override void Execute(ScriptableRenderContext context, ref RenderingData ExecutePass(CommandBufferHelpers.GetRasterCommandBuffer(renderingData.commandBuffer), m_PassData); } +#endif private void ExecutePass(RasterCommandBuffer cmd, PassData data) { @@ -96,6 +98,7 @@ public void Setup(RTHandle renderingLayerTestTextureHandle, Material material) m_RenderingLayerColors[i] = Color.HSVToRGB(i / 32f, 1, 1); } +#if !UNITY_6000_3_OR_NEWER || URP_COMPATIBILITY_MODE [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] public override void OnCameraSetup(CommandBuffer cmd, ref RenderingData renderingData) { @@ -109,6 +112,7 @@ public override void Execute(ScriptableRenderContext context, ref RenderingData RasterCommandBuffer cmd = CommandBufferHelpers.GetRasterCommandBuffer(renderingData.commandBuffer); ExecutePass(cmd); } +#endif private void ExecutePass(RasterCommandBuffer cmd) { diff --git a/Tests/SRPTests/Packages/com.unity.testing.urp/Scripts/Runtime/OutputTextureFeature.cs b/Tests/SRPTests/Packages/com.unity.testing.urp/Scripts/Runtime/OutputTextureFeature.cs index b5e11bdd075..a636ff600fd 100644 --- a/Tests/SRPTests/Packages/com.unity.testing.urp/Scripts/Runtime/OutputTextureFeature.cs +++ b/Tests/SRPTests/Packages/com.unity.testing.urp/Scripts/Runtime/OutputTextureFeature.cs @@ -67,6 +67,7 @@ public void Setup(ScriptableRenderer renderer, Material material, ScriptableRend ConfigureInput(inputRequirement); } +#if !UNITY_6000_3_OR_NEWER || URP_COMPATIBILITY_MODE // This method is called before executing the render pass. // It can be used to configure render targets and their clear state. Also to create temporary render target textures. // When empty this render pass will render to the active camera render target. @@ -95,6 +96,7 @@ public override void Execute(ScriptableRenderContext context, ref RenderingData context.ExecuteCommandBuffer(cmd); CommandBufferPool.Release(cmd); } +#endif private class PassData { diff --git a/Tests/SRPTests/Packages/com.unity.testing.urp/Scripts/Runtime/SetInputRequirements.cs b/Tests/SRPTests/Packages/com.unity.testing.urp/Scripts/Runtime/SetInputRequirements.cs index 5589bc475b6..73eb4ba25f5 100644 --- a/Tests/SRPTests/Packages/com.unity.testing.urp/Scripts/Runtime/SetInputRequirements.cs +++ b/Tests/SRPTests/Packages/com.unity.testing.urp/Scripts/Runtime/SetInputRequirements.cs @@ -47,6 +47,7 @@ public void Setup(ScriptableRenderPassInput inputRequirement) ConfigureInput(inputRequirement); } +#if !UNITY_6000_3_OR_NEWER || URP_COMPATIBILITY_MODE [Obsolete(DeprecationMessage.CompatibilityScriptingAPIObsolete, false)] public override void OnCameraSetup(CommandBuffer cmd, ref RenderingData renderingData) { @@ -56,6 +57,7 @@ public override void OnCameraSetup(CommandBuffer cmd, ref RenderingData renderin public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) { } +#endif internal class PassData { diff --git a/Tests/SRPTests/Packages/com.unity.testing.urp/Scripts/Runtime/UniversalGraphicsTestBase.cs b/Tests/SRPTests/Packages/com.unity.testing.urp/Scripts/Runtime/UniversalGraphicsTestBase.cs index c5e78880d98..602a5c06b5f 100644 --- a/Tests/SRPTests/Packages/com.unity.testing.urp/Scripts/Runtime/UniversalGraphicsTestBase.cs +++ b/Tests/SRPTests/Packages/com.unity.testing.urp/Scripts/Runtime/UniversalGraphicsTestBase.cs @@ -115,10 +115,13 @@ public static IEnumerable FixtureParams { get { - yield return new TestFixtureData( - RenderGraphContext.CompatibilityMode, - GpuResidentDrawerContext.GpuResidentDrawerDisabled - ); + if (RuntimeSettings.urpCompatibilityMode) + { + yield return new TestFixtureData( + RenderGraphContext.CompatibilityMode, + GpuResidentDrawerContext.GpuResidentDrawerDisabled + ); + } yield return new TestFixtureData( RenderGraphContext.RenderGraphMode, @@ -127,10 +130,13 @@ public static IEnumerable FixtureParams if (GraphicsTestPlatform.Current.IsEditorPlatform) { - yield return new TestFixtureData( - RenderGraphContext.CompatibilityMode, - GpuResidentDrawerContext.GpuResidentDrawerInstancedDrawing - ); + if (RuntimeSettings.urpCompatibilityMode) + { + yield return new TestFixtureData( + RenderGraphContext.CompatibilityMode, + GpuResidentDrawerContext.GpuResidentDrawerInstancedDrawing + ); + } yield return new TestFixtureData( RenderGraphContext.RenderGraphMode, diff --git a/Tests/SRPTests/Packages/com.unity.testing.urp/Scripts/Runtime/UniversalGraphicsTests.cs b/Tests/SRPTests/Packages/com.unity.testing.urp/Scripts/Runtime/UniversalGraphicsTests.cs index 3ea0d148456..44aa20896f5 100644 --- a/Tests/SRPTests/Packages/com.unity.testing.urp/Scripts/Runtime/UniversalGraphicsTests.cs +++ b/Tests/SRPTests/Packages/com.unity.testing.urp/Scripts/Runtime/UniversalGraphicsTests.cs @@ -9,6 +9,7 @@ using UnityEngine.SceneManagement; using UnityEngine.TestTools; using UnityEngine.TestTools.Graphics; +using UnityEngine.TestTools.Graphics.Contexts; using Object = UnityEngine.Object; #if OCULUS_SDK || OPENXR_SDK using UnityEngine.XR; @@ -78,9 +79,7 @@ public static IEnumerator RunGraphicsTest(SceneGraphicsTestCase testCase) Assert.Ignore("Test scene is not compatible with GPU Driven and and will be skipped."); // Check for RenderGraph compatibility and skip test if needed. - bool isUsingRenderGraph = RenderGraphGraphicsAutomatedTests.enabled || - (!GraphicsSettings.GetRenderPipelineSettings() - ?.enableRenderCompatibilityMode ?? false); + bool isUsingRenderGraph = RenderGraphGlobalContext.IsRenderGraphActive(); if (isUsingRenderGraph && settings.renderBackendCompatibility == UniversalGraphicsTestSettings.RenderBackendCompatibility.NonRenderGraph) diff --git a/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/Tests/Editor/VFXCodeGenerationTest.cs b/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/Tests/Editor/VFXCodeGenerationTest.cs index 288223ec95c..3a7049dac4c 100644 --- a/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/Tests/Editor/VFXCodeGenerationTest.cs +++ b/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/Tests/Editor/VFXCodeGenerationTest.cs @@ -335,6 +335,7 @@ public void Constant_Folding_With_ShaderKeyword([ValueSource("allCompilationMode var vfx = AssetDatabase.LoadAssetAtPath(vfxPath).GetResource(); vfx.GetOrCreateGraph().SetCompilationMode(compilationMode); + vfx.GetOrCreateGraph().CompileAndUpdateAsset(vfx.asset); Assert.AreEqual(5, vfx.GetShaderSourceCount()); diff --git a/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/Tests/Editor/VFXMaterialVariantTest.cs b/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/Tests/Editor/VFXMaterialVariantTest.cs index 354598c5e26..7c967fa36bb 100644 --- a/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/Tests/Editor/VFXMaterialVariantTest.cs +++ b/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/Tests/Editor/VFXMaterialVariantTest.cs @@ -386,45 +386,54 @@ public struct Cross_Pipeline_VFX_Override_Test_Case { public override string ToString() { - return compilationMode.ToString() + (createEditor ? "_With_Inspector" : string.Empty); + return $"{compilationMode}{(createEditor ? "_With_Inspector" : string.Empty)}{(usingImporter ? "_Using_Importer" : string.Empty)}"; } internal VFXCompilationMode compilationMode; internal bool createEditor; + internal bool usingImporter; } public static Cross_Pipeline_VFX_Override_Test_Case[] k_Cross_Pipeline_Cases = new[] { - new Cross_Pipeline_VFX_Override_Test_Case() { compilationMode = VFXCompilationMode.Edition, createEditor = false }, - new Cross_Pipeline_VFX_Override_Test_Case() { compilationMode = VFXCompilationMode.Runtime, createEditor = false }, - new Cross_Pipeline_VFX_Override_Test_Case() { compilationMode = VFXCompilationMode.Edition, createEditor = true }, - new Cross_Pipeline_VFX_Override_Test_Case() { compilationMode = VFXCompilationMode.Runtime, createEditor = true }, + new Cross_Pipeline_VFX_Override_Test_Case() { compilationMode = VFXCompilationMode.Edition, createEditor = false , usingImporter = false}, + new Cross_Pipeline_VFX_Override_Test_Case() { compilationMode = VFXCompilationMode.Runtime, createEditor = false , usingImporter = false}, + new Cross_Pipeline_VFX_Override_Test_Case() { compilationMode = VFXCompilationMode.Edition, createEditor = true , usingImporter = false}, + new Cross_Pipeline_VFX_Override_Test_Case() { compilationMode = VFXCompilationMode.Runtime, createEditor = true , usingImporter = false}, + + new Cross_Pipeline_VFX_Override_Test_Case() { compilationMode = VFXCompilationMode.Edition, createEditor = false , usingImporter = true}, + new Cross_Pipeline_VFX_Override_Test_Case() { compilationMode = VFXCompilationMode.Runtime, createEditor = false , usingImporter = true}, + new Cross_Pipeline_VFX_Override_Test_Case() { compilationMode = VFXCompilationMode.Edition, createEditor = true , usingImporter = true}, + new Cross_Pipeline_VFX_Override_Test_Case() { compilationMode = VFXCompilationMode.Runtime, createEditor = true , usingImporter = true}, }; private static System.Reflection.PropertyInfo kGetAllowLocking = typeof(Material).GetProperty("allowLocking", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic); - [UnityTest, Description("Cover behavior from UUM-29663, in editor, both settings from HDRP & URP must be kept")] + [UnityTest, Description("Cover behavior from UUM-29663 & UUM-77448, in editor, both settings from HDRP & URP must be kept")] public IEnumerator Cross_Pipeline_VFX_Override([ValueSource(nameof(k_Cross_Pipeline_Cases))] Cross_Pipeline_VFX_Override_Test_Case testCase) { var path = "Packages/com.unity.testing.visualeffectgraph/Scenes/CrossPipeline_MaterialOverride.vfx"; - if (testCase.compilationMode == VFXCompilationMode.Edition) - { - //Had to open the VFX View to switch the compilation to edition - var initialAsset = AssetDatabase.LoadAssetAtPath(path); - var window = VFXViewWindow.GetWindow(); - window.LoadAsset(initialAsset, null); - for (int i = 0; i < 4; ++i) //Wait for VFX to be load in view - yield return null; - } - - var allAssets = AssetDatabase.LoadAllAssetsAtPath(path); - var visualEffectAsset = allAssets.OfType().FirstOrDefault(); + var visualEffectAsset = AssetDatabase.LoadAssetAtPath(path); Assert.IsNotNull(visualEffectAsset); VFXGraph graph = visualEffectAsset.GetOrCreateResource().GetOrCreateGraph(); Assert.IsNotNull(graph); - Assert.AreEqual(testCase.compilationMode, graph.GetCompilationMode()); + graph.SetCompilationMode(testCase.compilationMode); + + UnityEngine.Object[] allAssets; + + if (testCase.usingImporter) + { + AssetDatabase.ImportAsset(path, ImportAssetOptions.ForceUpdate); + allAssets = AssetDatabase.LoadAllAssetsAtPath(path); + } + else + { + allAssets = graph.CompileAndUpdateAsset(visualEffectAsset); + } + + Assert.AreEqual(testCase.compilationMode, graph.GetCompilationMode()); var output = graph.children.OfType().FirstOrDefault(); Assert.IsNotNull(output); diff --git a/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/Tests/Runtime/VFXCameraCullingTest.cs b/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/Tests/Runtime/VFXCameraCullingTest.cs index bd468ac89d1..00478a245bb 100644 --- a/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/Tests/Runtime/VFXCameraCullingTest.cs +++ b/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/Tests/Runtime/VFXCameraCullingTest.cs @@ -28,6 +28,9 @@ public void Init() } [UnityTest] +#if VFX_TESTS_HAS_URP + [Ignore("This job fails when disabling these tests - can be re-enabled when this gets fixed: https://jira.unity3d.com/browse/UUM-110854")] +#endif public IEnumerator Ensure_Camera_Commands_Are_Culled() { UnityEngine.SceneManagement.SceneManager.LoadScene(kScenePath); diff --git a/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/Tests/Runtime/VFXSpawnerTests.cs b/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/Tests/Runtime/VFXSpawnerTests.cs index 81e97703ad1..1d5c80a44a3 100644 --- a/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/Tests/Runtime/VFXSpawnerTests.cs +++ b/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/Tests/Runtime/VFXSpawnerTests.cs @@ -943,7 +943,7 @@ public IEnumerator CreateSpawner_Set_Attribute_With_ContextDelay() spawnerOutput.LinkFrom(spawnerInit); graph.SetCompilationMode(VFXCompilationMode.Edition); - graph.RecompileIfNeeded(false, true); + graph.CompileAndUpdateAsset(graph.visualEffectResource.asset); var gameObj = new GameObject("CreateSpawner_Set_Attribute_With_Delay"); var vfxComponent = gameObj.AddComponent(); @@ -1767,6 +1767,30 @@ public IEnumerator Create_SpawnerCallback_Instanced() Assert.AreEqual( Vector3.zero, readAttribute0); Assert.AreEqual( Vector3.one, readAttribute1); } + + [UnityTest, Description("Cover UUM-111564")] + public IEnumerator CustomSpawner_With_Live_Authoring() + { + var spawnCountValue = 159.0f; + CreateAssetAndComponent(spawnCountValue, "OnPlay", out var graph, out var vfxComponent, out var gameObj, out var cameraObj); + + var basicSpawner = graph.children.OfType().Single(); + var blockCustomSpawner = ScriptableObject.CreateInstance(); + blockCustomSpawner.SetSettingValue("m_customType", new SerializableType(typeof(VFXCustomSpawnerUpdateCounterTest))); + basicSpawner.AddChild(blockCustomSpawner); + + var asset = graph.GetResource().asset; + Assert.IsNotNull(asset); + graph.CompileAndUpdateAsset(asset); + + VFXCustomSpawnerUpdateCounterTest.s_UpdateCount = 0; + int maxFrame = 64; + while (VFXCustomSpawnerUpdateCounterTest.s_UpdateCount == 0 && --maxFrame > 0) + yield return null; + + Assert.AreNotEqual(0u, VFXCustomSpawnerUpdateCounterTest.s_UpdateCount); + yield return null; + } } } #endif diff --git a/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/Tests/Runtime/VFXStressTests.cs b/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/Tests/Runtime/VFXStressTests.cs index 063fae38e6b..ce609dbd993 100644 --- a/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/Tests/Runtime/VFXStressTests.cs +++ b/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/Tests/Runtime/VFXStressTests.cs @@ -48,6 +48,7 @@ public void TearDown() private static readonly string[] kRuntimeScene = new[] { "GPUEvent" }; [UnityTest] + [Timeout(360000)] public IEnumerator Runtime([ValueSource(nameof(kRuntimeScene))] string scene) { UnityEngine.SceneManagement.SceneManager.LoadScene($"Packages/com.unity.testing.visualeffectgraph/Scenes/StressTestRuntime_{scene}.unity"); diff --git a/Tests/SRPTests/Projects/BatchRendererGroup_HDRP/Assets/HDRPSettings/BatchLayerCustomPass.cs b/Tests/SRPTests/Projects/BatchRendererGroup_HDRP/Assets/HDRPSettings/BatchLayerCustomPass.cs index 69bfcfc3d84..372075be17f 100644 --- a/Tests/SRPTests/Projects/BatchRendererGroup_HDRP/Assets/HDRPSettings/BatchLayerCustomPass.cs +++ b/Tests/SRPTests/Projects/BatchRendererGroup_HDRP/Assets/HDRPSettings/BatchLayerCustomPass.cs @@ -55,7 +55,7 @@ protected override void Execute(CustomPassContext ctx) var renderCtx = ctx.renderContext; var rendererList = renderCtx.CreateRendererList(result); - CoreUtils.DrawRendererList(ctx.renderContext, ctx.cmd, rendererList); + CoreUtils.DrawRendererList(ctx.cmd, rendererList); } protected override void Cleanup() diff --git a/Tests/SRPTests/Projects/BatchRendererGroup_HDRP/Packages/manifest.json b/Tests/SRPTests/Projects/BatchRendererGroup_HDRP/Packages/manifest.json index 12972c7f9c3..3339c35995c 100644 --- a/Tests/SRPTests/Projects/BatchRendererGroup_HDRP/Packages/manifest.json +++ b/Tests/SRPTests/Projects/BatchRendererGroup_HDRP/Packages/manifest.json @@ -6,7 +6,6 @@ "com.unity.ext.nunit": "1.0.0", "com.unity.mathematics": "1.2.1", "com.unity.render-pipelines.core": "file:../../../../../Packages/com.unity.render-pipelines.core", - "com.unity.rendering.light-transport": "file:../../../../../Packages/com.unity.rendering.light-transport", "com.unity.render-pipelines.high-definition": "file:../../../../../Packages/com.unity.render-pipelines.high-definition", "com.unity.render-pipelines.high-definition-config": "file:../../../../../Packages/com.unity.render-pipelines.high-definition-config", "com.unity.shadergraph": "file:../../../../../Packages/com.unity.shadergraph", diff --git a/Tests/SRPTests/Projects/BatchRendererGroup_URP/Packages/manifest.json b/Tests/SRPTests/Projects/BatchRendererGroup_URP/Packages/manifest.json index ed13adcd361..3e2768933cf 100644 --- a/Tests/SRPTests/Projects/BatchRendererGroup_URP/Packages/manifest.json +++ b/Tests/SRPTests/Projects/BatchRendererGroup_URP/Packages/manifest.json @@ -5,7 +5,6 @@ "com.unity.collections": "2.1.0-pre.12", "com.unity.mathematics": "1.2.1", "com.unity.render-pipelines.core": "file:../../../../../Packages/com.unity.render-pipelines.core", - "com.unity.rendering.light-transport": "file:../../../../../Packages/com.unity.rendering.light-transport", "com.unity.render-pipelines.universal": "file:../../../../../Packages/com.unity.render-pipelines.universal", "com.unity.render-pipelines.universal-config": "file:../../../../../Packages/com.unity.render-pipelines.universal-config", "com.unity.shadergraph": "file:../../../../../Packages/com.unity.shadergraph", diff --git a/Tests/SRPTests/Projects/BatchRendererGroup_URP/ProjectSettings/ProjectSettings.asset b/Tests/SRPTests/Projects/BatchRendererGroup_URP/ProjectSettings/ProjectSettings.asset index 7ee369a6e01..8c6f26de482 100644 --- a/Tests/SRPTests/Projects/BatchRendererGroup_URP/ProjectSettings/ProjectSettings.asset +++ b/Tests/SRPTests/Projects/BatchRendererGroup_URP/ProjectSettings/ProjectSettings.asset @@ -662,9 +662,12 @@ PlayerSettings: scriptingDefineSymbols: : UNITY_POST_PROCESSING_STACK_V2;URP_COMPATIBILITY_MODE Android: UNITY_POST_PROCESSING_STACK_V2;URP_COMPATIBILITY_MODE + GameCoreScarlett: UNITY_POST_PROCESSING_STACK_V2;URP_COMPATIBILITY_MODE + GameCoreXboxOne: UNITY_POST_PROCESSING_STACK_V2;URP_COMPATIBILITY_MODE Lumin: UNITY_POST_PROCESSING_STACK_V2;URP_COMPATIBILITY_MODE Nintendo Switch: UNITY_POST_PROCESSING_STACK_V2;URP_COMPATIBILITY_MODE PS4: UNITY_POST_PROCESSING_STACK_V2;URP_COMPATIBILITY_MODE + PS5: UNITY_POST_PROCESSING_STACK_V2;URP_COMPATIBILITY_MODE Standalone: URP_COMPATIBILITY_MODE WebGL: UNITY_POST_PROCESSING_STACK_V2;URP_COMPATIBILITY_MODE Windows Store Apps: UNITY_POST_PROCESSING_STACK_V2;URP_COMPATIBILITY_MODE diff --git a/Tests/SRPTests/Projects/BuiltInGraphicsTest_Foundation/Packages/manifest.json b/Tests/SRPTests/Projects/BuiltInGraphicsTest_Foundation/Packages/manifest.json index b6d476de00d..b33910aefab 100644 --- a/Tests/SRPTests/Projects/BuiltInGraphicsTest_Foundation/Packages/manifest.json +++ b/Tests/SRPTests/Projects/BuiltInGraphicsTest_Foundation/Packages/manifest.json @@ -9,7 +9,6 @@ "com.unity.ide.vscode": "1.1.3", "com.unity.nuget.newtonsoft-json": "2.0.1-preview.1", "com.unity.render-pipelines.core": "file:../../../../../Packages/com.unity.render-pipelines.core", - "com.unity.rendering.light-transport": "file:../../../../../Packages/com.unity.rendering.light-transport", "com.unity.render-pipelines.universal": "file:../../../../../Packages/com.unity.render-pipelines.universal", "com.unity.render-pipelines.universal-config": "file:../../../../../Packages/com.unity.render-pipelines.universal-config", "com.unity.shadergraph": "file:../../../../../Packages/com.unity.shadergraph", diff --git a/Tests/SRPTests/Projects/BuiltInGraphicsTest_Lighting/Packages/manifest.json b/Tests/SRPTests/Projects/BuiltInGraphicsTest_Lighting/Packages/manifest.json index b6d476de00d..b33910aefab 100644 --- a/Tests/SRPTests/Projects/BuiltInGraphicsTest_Lighting/Packages/manifest.json +++ b/Tests/SRPTests/Projects/BuiltInGraphicsTest_Lighting/Packages/manifest.json @@ -9,7 +9,6 @@ "com.unity.ide.vscode": "1.1.3", "com.unity.nuget.newtonsoft-json": "2.0.1-preview.1", "com.unity.render-pipelines.core": "file:../../../../../Packages/com.unity.render-pipelines.core", - "com.unity.rendering.light-transport": "file:../../../../../Packages/com.unity.rendering.light-transport", "com.unity.render-pipelines.universal": "file:../../../../../Packages/com.unity.render-pipelines.universal", "com.unity.render-pipelines.universal-config": "file:../../../../../Packages/com.unity.render-pipelines.universal-config", "com.unity.shadergraph": "file:../../../../../Packages/com.unity.shadergraph", diff --git a/Tests/SRPTests/Projects/HDRP_DXR_Tests/Packages/manifest.json b/Tests/SRPTests/Projects/HDRP_DXR_Tests/Packages/manifest.json index da3f8610908..c5530e97e3f 100644 --- a/Tests/SRPTests/Projects/HDRP_DXR_Tests/Packages/manifest.json +++ b/Tests/SRPTests/Projects/HDRP_DXR_Tests/Packages/manifest.json @@ -4,7 +4,6 @@ "dependencies": { "com.unity.ide.visualstudio": "2.0.0", "com.unity.render-pipelines.core": "file:../../../../../Packages/com.unity.render-pipelines.core", - "com.unity.rendering.light-transport": "file:../../../../../Packages/com.unity.rendering.light-transport", "com.unity.render-pipelines.high-definition": "file:../../../../../Packages/com.unity.render-pipelines.high-definition", "com.unity.render-pipelines.high-definition-config": "file:../../../../../Packages/com.unity.render-pipelines.high-definition-config", "com.unity.rendering.denoising": "1.0.5", diff --git a/Tests/SRPTests/Projects/HDRP_PerformanceTests/Assets/Resources/HDRP Asset/HDRenderPipelineGlobalSettings.asset b/Tests/SRPTests/Projects/HDRP_PerformanceTests/Assets/Resources/HDRP Asset/HDRenderPipelineGlobalSettings.asset index 661ff5c0047..0cfe50d418b 100644 --- a/Tests/SRPTests/Projects/HDRP_PerformanceTests/Assets/Resources/HDRP Asset/HDRenderPipelineGlobalSettings.asset +++ b/Tests/SRPTests/Projects/HDRP_PerformanceTests/Assets/Resources/HDRP Asset/HDRenderPipelineGlobalSettings.asset @@ -1217,4 +1217,4 @@ MonoBehaviour: data: m_version: 0 m_EnableCompilationCaching: 1 - m_EnableValidityChecks: 1 + m_EnableValidityChecks: 0 diff --git a/Tests/SRPTests/Projects/HDRP_PerformanceTests/Packages/manifest.json b/Tests/SRPTests/Projects/HDRP_PerformanceTests/Packages/manifest.json index 7472fae5837..1dd3ad75e52 100644 --- a/Tests/SRPTests/Projects/HDRP_PerformanceTests/Packages/manifest.json +++ b/Tests/SRPTests/Projects/HDRP_PerformanceTests/Packages/manifest.json @@ -4,7 +4,6 @@ "com.unity.ide.visualstudio": "2.0.0", "com.unity.ide.vscode": "1.2.0", "com.unity.render-pipelines.core": "file:../../../../../Packages/com.unity.render-pipelines.core", - "com.unity.rendering.light-transport": "file:../../../../../Packages/com.unity.rendering.light-transport", "com.unity.render-pipelines.high-definition": "file:../../../../../Packages/com.unity.render-pipelines.high-definition", "com.unity.render-pipelines.high-definition-config": "file:../../../../../Packages/com.unity.render-pipelines.high-definition-config", "com.unity.shaderanalysis": "file:../../../../../Packages/com.unity.shaderanalysis", diff --git a/Tests/SRPTests/Projects/HDRP_RuntimeTests/Packages/manifest.json b/Tests/SRPTests/Projects/HDRP_RuntimeTests/Packages/manifest.json index 9faf690f95d..9e3e91b9594 100644 --- a/Tests/SRPTests/Projects/HDRP_RuntimeTests/Packages/manifest.json +++ b/Tests/SRPTests/Projects/HDRP_RuntimeTests/Packages/manifest.json @@ -4,7 +4,6 @@ "com.unity.ide.visualstudio": "2.0.22", "com.unity.ide.rider": "3.0.16", "com.unity.render-pipelines.core": "file:../../../../../Packages/com.unity.render-pipelines.core", - "com.unity.rendering.light-transport": "file:../../../../../Packages/com.unity.rendering.light-transport", "com.unity.render-pipelines.high-definition": "file:../../../../../Packages/com.unity.render-pipelines.high-definition", "com.unity.render-pipelines.high-definition-config": "file:../../../../../Packages/com.unity.render-pipelines.high-definition-config", "com.unity.shadergraph": "file:../../../../../Packages/com.unity.shadergraph", diff --git a/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/9x_Other/9500_LightScripting/LightScriptCreator.cs b/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/9x_Other/9500_LightScripting/LightScriptCreator.cs index 72c7a8b3702..448da020080 100644 --- a/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/9x_Other/9500_LightScripting/LightScriptCreator.cs +++ b/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/9x_Other/9500_LightScripting/LightScriptCreator.cs @@ -41,7 +41,8 @@ void Start() float intensityInLumens = 50.0f; light.intensity = LightUnitUtils.LumenToCandela(intensityInLumens, LightUnitUtils.SphereSolidAngle); hdLight.SetRange(1.01f); - hdLight.SetSpotAngle(60); + light.spotAngle = 60f; + light.areaSize = new Vector2(0.5f, 0.5f); switch (position.y) { @@ -51,9 +52,11 @@ void Start() break; case 1: // Spot Pyramid light.type = LightType.Pyramid; + light.innerSpotAngle = light.spotAngle; break; case 2: // Spot Cone light.type = LightType.Spot; + light.innerSpotAngle = 0f; break; case 3: // Point light.type = LightType.Point; @@ -64,7 +67,7 @@ void Start() break; case 5: // Rectangle light.type = LightType.Rectangle; - light.intensity = LightUnitUtils.ConvertIntensity(light, intensityInLumens, LightUnit.Lumen, LightUnit.Nits); + light.intensity = LightUnitUtils.ConvertIntensity(light, intensityInLumens, LightUnit.Lumen, LightUnit.Nits) * 0.25f; intensityInLumens /= 4; break; case 6: // Tube @@ -95,14 +98,20 @@ void Start() break; case 6: // Spot: Outer Angle / Inner Angle | Area Light: Set size | Box Spot: size if (light.type == LightType.Box) - hdLight.SetBoxSpotSize(new Vector2(0.1f, 0.6f)); + light.areaSize = new Vector2(0.1f, 0.6f); else if (light.type == LightType.Pyramid) - hdLight.aspectRatio = 2; + { + const float aspectRatio = 2; + light.innerSpotAngle = 360f / Mathf.PI * Mathf.Atan(aspectRatio * Mathf.Tan(light.spotAngle * Mathf.PI / 360f)); + } else if (light.type == LightType.Spot) - hdLight.SetSpotAngle(30, Random.Range(20, 90)); + { + light.spotAngle = 30; + light.innerSpotAngle = Random.Range(20, 90) * light.spotAngle / 100f; + } else if (light.type.IsArea()) { - hdLight.SetAreaLightSize(new Vector2(0.1f, 1.5f)); + light.areaSize = new Vector2(0.1f, 1.5f); light.intensity = LightUnitUtils.ConvertIntensity(light, intensityInLumens, LightUnit.Lumen, LightUnit.Nits); } break; diff --git a/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/9x_Other/9703_SampleColorBuffer_InjectionPoints_Scaling/DrawRenderersFromPostProcess.cs b/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/9x_Other/9703_SampleColorBuffer_InjectionPoints_Scaling/DrawRenderersFromPostProcess.cs index bdf7c77466b..46eaa5e7902 100644 --- a/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/9x_Other/9703_SampleColorBuffer_InjectionPoints_Scaling/DrawRenderersFromPostProcess.cs +++ b/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/9x_Other/9703_SampleColorBuffer_InjectionPoints_Scaling/DrawRenderersFromPostProcess.cs @@ -54,7 +54,7 @@ public void ExecuteFromPostProcess(CommandBuffer cmd) }; var renderCtx = currentFrameContext.renderContext; - CoreUtils.DrawRendererList(currentFrameContext.renderContext, cmd, renderCtx.CreateRendererList(result)); + CoreUtils.DrawRendererList(cmd, renderCtx.CreateRendererList(result)); } protected override void Cleanup() diff --git a/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/9x_Other/9801_ShurikenLightModule/AreaLight.prefab b/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/9x_Other/9801_ShurikenLightModule/AreaLight.prefab index 9e43c65c29b..438d43898df 100644 --- a/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/9x_Other/9801_ShurikenLightModule/AreaLight.prefab +++ b/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/9x_Other/9801_ShurikenLightModule/AreaLight.prefab @@ -33,6 +33,16 @@ PrefabInstance: propertyPath: m_SpotAngle value: 93.9 objectReference: {fileID: 0} + - target: {fileID: 2997601937897835841, guid: 83ae364135d2e8a42a20211bed1ca55a, + type: 3} + propertyPath: m_AreaSize.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 2997601937897835841, guid: 83ae364135d2e8a42a20211bed1ca55a, + type: 3} + propertyPath: m_AreaSize.y + value: 0.5 + objectReference: {fileID: 0} - target: {fileID: 2997601937897835841, guid: 83ae364135d2e8a42a20211bed1ca55a, type: 3} propertyPath: m_BoundingSphereOverride.w diff --git a/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/9x_Other/9801_ShurikenLightModule/Spot Light.prefab b/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/9x_Other/9801_ShurikenLightModule/Spot Light.prefab index 3c85edda5f9..e7aef228d8c 100644 --- a/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/9x_Other/9801_ShurikenLightModule/Spot Light.prefab +++ b/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/9x_Other/9801_ShurikenLightModule/Spot Light.prefab @@ -5,6 +5,7 @@ PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: + serializedVersion: 3 m_TransformParent: {fileID: 0} m_Modifications: - target: {fileID: 1450084740557774179, guid: 83ae364135d2e8a42a20211bed1ca55a, @@ -12,6 +13,11 @@ PrefabInstance: propertyPath: m_Name value: Spot Light objectReference: {fileID: 0} + - target: {fileID: 2997601937897835841, guid: 83ae364135d2e8a42a20211bed1ca55a, + type: 3} + propertyPath: m_Type + value: 0 + objectReference: {fileID: 0} - target: {fileID: 2997601937897835841, guid: 83ae364135d2e8a42a20211bed1ca55a, type: 3} propertyPath: m_Range @@ -24,19 +30,34 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 2997601937897835841, guid: 83ae364135d2e8a42a20211bed1ca55a, type: 3} - propertyPath: m_Type - value: 0 + propertyPath: m_SpotAngle + value: 93.9 objectReference: {fileID: 0} - target: {fileID: 2997601937897835841, guid: 83ae364135d2e8a42a20211bed1ca55a, type: 3} - propertyPath: m_SpotAngle - value: 93.9 + propertyPath: m_ShadowRadius + value: 0.025 + objectReference: {fileID: 0} + - target: {fileID: 2997601937897835841, guid: 83ae364135d2e8a42a20211bed1ca55a, + type: 3} + propertyPath: m_InnerSpotAngle + value: 1 objectReference: {fileID: 0} - target: {fileID: 5524501374613474482, guid: 83ae364135d2e8a42a20211bed1ca55a, type: 3} propertyPath: m_Intensity value: 1227.53 objectReference: {fileID: 0} + - target: {fileID: 6233142983136174034, guid: 83ae364135d2e8a42a20211bed1ca55a, + type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6233142983136174034, guid: 83ae364135d2e8a42a20211bed1ca55a, + type: 3} + propertyPath: m_LocalScale.x + value: 1 + objectReference: {fileID: 0} - target: {fileID: 6233142983136174034, guid: 83ae364135d2e8a42a20211bed1ca55a, type: 3} propertyPath: m_LocalPosition.x @@ -52,6 +73,11 @@ PrefabInstance: propertyPath: m_LocalPosition.z value: 2.99 objectReference: {fileID: 0} + - target: {fileID: 6233142983136174034, guid: 83ae364135d2e8a42a20211bed1ca55a, + type: 3} + propertyPath: m_LocalRotation.w + value: 0.8854342 + objectReference: {fileID: 0} - target: {fileID: 6233142983136174034, guid: 83ae364135d2e8a42a20211bed1ca55a, type: 3} propertyPath: m_LocalRotation.x @@ -67,16 +93,6 @@ PrefabInstance: propertyPath: m_LocalRotation.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 6233142983136174034, guid: 83ae364135d2e8a42a20211bed1ca55a, - type: 3} - propertyPath: m_LocalRotation.w - value: 0.8854342 - objectReference: {fileID: 0} - - target: {fileID: 6233142983136174034, guid: 83ae364135d2e8a42a20211bed1ca55a, - type: 3} - propertyPath: m_RootOrder - value: 0 - objectReference: {fileID: 0} - target: {fileID: 6233142983136174034, guid: 83ae364135d2e8a42a20211bed1ca55a, type: 3} propertyPath: m_LocalEulerAnglesHint.x @@ -92,10 +108,8 @@ PrefabInstance: propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 6233142983136174034, guid: 83ae364135d2e8a42a20211bed1ca55a, - type: 3} - propertyPath: m_LocalScale.x - value: 1 - objectReference: {fileID: 0} m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 83ae364135d2e8a42a20211bed1ca55a, type: 3} diff --git a/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Tests/HDRP_Graphics_Tests.cs b/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Tests/HDRP_Graphics_Tests.cs index d72ead0a397..c9e5d23b06d 100644 --- a/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Tests/HDRP_Graphics_Tests.cs +++ b/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Tests/HDRP_Graphics_Tests.cs @@ -198,26 +198,6 @@ public void SetUpContext() graphicsDeviceTypes: new[] { GraphicsDeviceType.Vulkan }, runtimePlatforms: new[] { RuntimePlatform.LinuxEditor } )] - [IgnoreGraphicsTest( - "4088_DRS-DLSS-Hardware$", - "DX Instability https://jira.unity3d.com/browse/UUM-75549, Windows Vulkan Instability https://jira.unity3d.com/browse/UUM-105220", - graphicsDeviceTypes: new[] - { - GraphicsDeviceType.Direct3D12, - GraphicsDeviceType.Vulkan - }, - runtimePlatforms: new[] { RuntimePlatform.WindowsEditor } - )] - [IgnoreGraphicsTest( - "4089_DRS-DLSS-Software$", - "Instability https://jira.unity3d.com/browse/UUM-75549", - graphicsDeviceTypes: new[] { GraphicsDeviceType.Direct3D12 } - )] - [IgnoreGraphicsTest( - "4089_DRS-DLSS-Software$", - "Instability https://jira.unity3d.com/browse/UUM-100863", - graphicsDeviceTypes: new[] { GraphicsDeviceType.Vulkan } - )] [IgnoreGraphicsTest( "4096_DRS-TAAU-Hardware$", "Very small fringing across edges. Maybe a sampling artifact?", @@ -228,10 +208,6 @@ public void SetUpContext() "Outdated ref-image.", graphicsDeviceTypes: new[] { GraphicsDeviceType.Metal } )] - [IgnoreGraphicsTest( - "4103_DRS-DLSS-AfterPost$", - "Big difference in rendering results between DX and everything else. Needs further investigation." - )] [IgnoreGraphicsTest( "4105_LensFlareScreenSpace$", "(Intel Mac) Lens-flare behaviour seems to be different from all the other platforms.", diff --git a/Tests/SRPTests/Projects/HDRP_Tests/Packages/manifest.json b/Tests/SRPTests/Projects/HDRP_Tests/Packages/manifest.json index a49bd7e66ba..70b313a0715 100644 --- a/Tests/SRPTests/Projects/HDRP_Tests/Packages/manifest.json +++ b/Tests/SRPTests/Projects/HDRP_Tests/Packages/manifest.json @@ -8,7 +8,6 @@ "com.unity.render-pipelines.core": "file:../../../../../Packages/com.unity.render-pipelines.core", "com.unity.render-pipelines.high-definition": "file:../../../../../Packages/com.unity.render-pipelines.high-definition", "com.unity.render-pipelines.high-definition-config": "file:../../../../../Packages/com.unity.render-pipelines.high-definition-config", - "com.unity.rendering.light-transport": "file:../../../../../Packages/com.unity.rendering.light-transport", "com.unity.shadergraph": "file:../../../../../Packages/com.unity.shadergraph", "com.unity.testframework.graphics": "file:../../../Packages/com.unity.test-framework.graphics", "com.unity.testing.common-graphics": "file:../../../Packages/com.unity.testing.common-graphics", diff --git a/Tests/SRPTests/Projects/MultipleSRP_Tests/Packages/manifest.json b/Tests/SRPTests/Projects/MultipleSRP_Tests/Packages/manifest.json index 5e6a75abfe9..e0bda222e74 100644 --- a/Tests/SRPTests/Projects/MultipleSRP_Tests/Packages/manifest.json +++ b/Tests/SRPTests/Projects/MultipleSRP_Tests/Packages/manifest.json @@ -9,7 +9,6 @@ "com.unity.render-pipelines.universal": "file:../../../../../Packages/com.unity.render-pipelines.universal", "com.unity.render-pipelines.universal-config": "file:../../../../../Packages/com.unity.render-pipelines.universal-config", "com.unity.shadergraph": "file:../../../../../Packages/com.unity.shadergraph", - "com.unity.rendering.light-transport": "file:../../../../../Packages/com.unity.rendering.light-transport", "com.unity.test-framework": "file:../../../../../Packages/com.unity.test-framework", "com.unity.testframework.graphics": "file:../../../Packages/com.unity.test-framework.graphics", "com.unity.timeline": "1.8.0", diff --git a/Tests/SRPTests/Projects/RPCore_PerformanceTests/Packages/manifest.json b/Tests/SRPTests/Projects/RPCore_PerformanceTests/Packages/manifest.json index 6ead8350f0d..5d6618885f6 100644 --- a/Tests/SRPTests/Projects/RPCore_PerformanceTests/Packages/manifest.json +++ b/Tests/SRPTests/Projects/RPCore_PerformanceTests/Packages/manifest.json @@ -4,7 +4,6 @@ "dependencies": { "com.unity.feature.development": "1.0.2", "com.unity.render-pipelines.core": "file:../../../../../Packages/com.unity.render-pipelines.core", - "com.unity.rendering.light-transport": "file:../../../../../Packages/com.unity.rendering.light-transport", "com.unity.test-framework.performance": "3.0.2", "com.unity.ugui": "2.0.0", "com.unity.test-framework": "file:../../../../../Packages/com.unity.test-framework", diff --git a/Tests/SRPTests/Projects/SRP_SmokeTest/Assets/Tests/Editor/RenderGraphViewer/RenderGraphViewerConnectionTests.cs b/Tests/SRPTests/Projects/SRP_SmokeTest/Assets/Tests/Editor/RenderGraphViewer/RenderGraphViewerConnectionTests.cs index 7ad4c88f1e8..192015a415a 100644 --- a/Tests/SRPTests/Projects/SRP_SmokeTest/Assets/Tests/Editor/RenderGraphViewer/RenderGraphViewerConnectionTests.cs +++ b/Tests/SRPTests/Projects/SRP_SmokeTest/Assets/Tests/Editor/RenderGraphViewer/RenderGraphViewerConnectionTests.cs @@ -114,6 +114,7 @@ public void OneTimeSetUp() [UnityTest] [Timeout(5 * 60 * 1000)] + [UnityPlatform(exclude = new[] { RuntimePlatform.WindowsEditor })] // Unstable: https://jira.unity3d.com/browse/UUM-110857 public IEnumerator ManuallyConnectRenderGraphViewer( [Values(WindowOpenState.BeforePlayerStart, WindowOpenState.AfterPlayerStarted)] WindowOpenState openState) { diff --git a/Tests/SRPTests/Projects/SRP_SmokeTest/Packages/manifest.json b/Tests/SRPTests/Projects/SRP_SmokeTest/Packages/manifest.json index a7f8a0d6a7a..535be0e2421 100644 --- a/Tests/SRPTests/Projects/SRP_SmokeTest/Packages/manifest.json +++ b/Tests/SRPTests/Projects/SRP_SmokeTest/Packages/manifest.json @@ -10,7 +10,6 @@ "com.unity.render-pipelines.universal": "file:../../../../../Packages/com.unity.render-pipelines.universal", "com.unity.render-pipelines.universal-config": "file:../../../../../Packages/com.unity.render-pipelines.universal-config", "com.unity.shadergraph": "file:../../../../../Packages/com.unity.shadergraph", - "com.unity.rendering.light-transport": "file:../../../../../Packages/com.unity.rendering.light-transport", "com.unity.test-framework": "file:../../../../../Packages/com.unity.test-framework", "com.unity.visualeffectgraph": "file:../../../../../Packages/com.unity.visualeffectgraph" }, @@ -19,7 +18,6 @@ "com.unity.render-pipelines.universal", "com.unity.render-pipelines.high-definition", "com.unity.shadergraph", - "com.unity.rendering.light-transport", "com.unity.visualeffectgraph" ] } diff --git a/Tests/SRPTests/Projects/SRP_SmokeTest/ProjectSettings/ProjectSettings.asset b/Tests/SRPTests/Projects/SRP_SmokeTest/ProjectSettings/ProjectSettings.asset index 97ce2a71009..330d61de827 100644 --- a/Tests/SRPTests/Projects/SRP_SmokeTest/ProjectSettings/ProjectSettings.asset +++ b/Tests/SRPTests/Projects/SRP_SmokeTest/ProjectSettings/ProjectSettings.asset @@ -730,24 +730,7 @@ PlayerSettings: webGLCloseOnQuit: 0 webWasm2023: 0 webEnableSubmoduleStrippingCompatibility: 0 - scriptingDefineSymbols: - Android: URP_COMPATIBILITY_MODE - EmbeddedLinux: URP_COMPATIBILITY_MODE - GameCoreScarlett: URP_COMPATIBILITY_MODE - GameCoreXboxOne: URP_COMPATIBILITY_MODE - Kepler: URP_COMPATIBILITY_MODE - Nintendo Switch: URP_COMPATIBILITY_MODE - PS4: URP_COMPATIBILITY_MODE - PS5: URP_COMPATIBILITY_MODE - QNX: URP_COMPATIBILITY_MODE - ReservedCFE: URP_COMPATIBILITY_MODE - Standalone: URP_COMPATIBILITY_MODE - VisionOS: URP_COMPATIBILITY_MODE - WebGL: URP_COMPATIBILITY_MODE - Windows Store Apps: URP_COMPATIBILITY_MODE - XboxOne: URP_COMPATIBILITY_MODE - iPhone: URP_COMPATIBILITY_MODE - tvOS: URP_COMPATIBILITY_MODE + scriptingDefineSymbols: {} additionalCompilerArguments: {} platformArchitecture: {} scriptingBackend: diff --git a/Tests/SRPTests/Projects/ShaderGraph/Packages/manifest.json b/Tests/SRPTests/Projects/ShaderGraph/Packages/manifest.json index 62974890c64..7499176cf2d 100644 --- a/Tests/SRPTests/Projects/ShaderGraph/Packages/manifest.json +++ b/Tests/SRPTests/Projects/ShaderGraph/Packages/manifest.json @@ -6,7 +6,6 @@ "com.unity.render-pipelines.core": "file:../../../../../Packages/com.unity.render-pipelines.core", "com.unity.render-pipelines.universal": "file:../../../../../Packages/com.unity.render-pipelines.universal", "com.unity.render-pipelines.universal-config": "file:../../../../../Packages/com.unity.render-pipelines.universal-config", - "com.unity.rendering.light-transport": "file:../../../../../Packages/com.unity.rendering.light-transport", "com.unity.shadergraph": "file:../../../../../Packages/com.unity.shadergraph", "com.unity.testframework.graphics": "file:../../../Packages/com.unity.test-framework.graphics", "com.unity.testtools.codecoverage": "1.1.0", diff --git a/Tests/SRPTests/Projects/ShaderGraphUniversalStereo/Packages/manifest.json b/Tests/SRPTests/Projects/ShaderGraphUniversalStereo/Packages/manifest.json index 8ded0c7a489..b933bd03918 100644 --- a/Tests/SRPTests/Projects/ShaderGraphUniversalStereo/Packages/manifest.json +++ b/Tests/SRPTests/Projects/ShaderGraphUniversalStereo/Packages/manifest.json @@ -7,7 +7,6 @@ "com.unity.render-pipelines.core": "file:../../../../../Packages/com.unity.render-pipelines.core", "com.unity.render-pipelines.universal": "file:../../../../../Packages/com.unity.render-pipelines.universal", "com.unity.render-pipelines.universal-config": "file:../../../../../Packages/com.unity.render-pipelines.universal-config", - "com.unity.rendering.light-transport": "file:../../../../../Packages/com.unity.rendering.light-transport", "com.unity.shadergraph": "file:../../../../../Packages/com.unity.shadergraph", "com.unity.testframework.graphics": "8.9.1-exp.1", "com.unity.ugui": "2.0.0", diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/CommonAssets/UniversalRPAsset.asset b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/CommonAssets/UniversalRPAsset.asset index f9ec568c83d..b2c5a766377 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/CommonAssets/UniversalRPAsset.asset +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/CommonAssets/UniversalRPAsset.asset @@ -28,8 +28,8 @@ MonoBehaviour: - {fileID: 11400000, guid: 3fbfbd331642d98488a7faad256688e5, type: 2} - {fileID: 11400000, guid: 01e79ba8f42c808448b7542939affccb, type: 2} m_DefaultRendererIndex: 2 - m_RequireDepthTexture: 1 - m_RequireOpaqueTexture: 1 + m_RequireDepthTexture: 0 + m_RequireOpaqueTexture: 0 m_OpaqueDownsampling: 1 m_SupportsTerrainHoles: 1 m_SupportsHDR: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/065_2D_Lights_SkinMesh.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/065_2D_Lights_SkinMesh.meta new file mode 100644 index 00000000000..9b4776a993d --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/065_2D_Lights_SkinMesh.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 93c9f7ca2b9fedb42a0efcf218c9c946 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/065_2D_Lights_SkinMesh.unity b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/065_2D_Lights_SkinMesh.unity new file mode 100644 index 00000000000..398789dc120 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/065_2D_Lights_SkinMesh.unity @@ -0,0 +1,461 @@ +%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 &652049016 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 652049019} + - component: {fileID: 652049018} + - component: {fileID: 652049017} + - component: {fileID: 652049020} + - component: {fileID: 652049021} + m_Layer: 0 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!81 &652049017 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 652049016} + m_Enabled: 1 +--- !u!20 &652049018 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 652049016} + 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: 0 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &652049019 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 652049016} + 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 &652049020 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 652049016} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a79441f348de89743a2939f4d699eac1, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Runtime::UnityEngine.Rendering.Universal.UniversalAdditionalCameraData + m_RenderShadows: 0 + m_RequiresDepthTextureOption: 2 + m_RequiresOpaqueTextureOption: 2 + m_CameraType: 0 + m_Cameras: [] + m_RendererIndex: 2 + m_VolumeLayerMask: + serializedVersion: 2 + m_Bits: 1 + m_VolumeTrigger: {fileID: 0} + m_VolumeFrameworkUpdateModeOption: 2 + m_RenderPostProcessing: 0 + m_Antialiasing: 0 + m_AntialiasingQuality: 2 + m_StopNaN: 0 + m_Dithering: 0 + m_ClearDepth: 1 + m_AllowXRRendering: 1 + m_AllowHDROutput: 1 + m_UseScreenCoordOverride: 0 + m_ScreenSizeOverride: {x: 0, y: 0, z: 0, w: 0} + m_ScreenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0} + m_RequiresDepthTexture: 0 + m_RequiresColorTexture: 0 + m_TaaSettings: + m_Quality: 3 + m_FrameInfluence: 0.1 + m_JitterScale: 1 + m_MipBias: 0 + m_VarianceClampScale: 0.9 + m_ContrastAdaptiveSharpening: 0 + m_Version: 2 +--- !u!114 &652049021 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 652049016} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 73231aa468d81ea49bc3d914080de185, type: 3} + m_Name: + m_EditorClassIdentifier: UniversalGraphicsTests::UniversalGraphicsTestSettings + 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!1001 &1737688778 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 3676411556188011445, guid: 9b40ed50f44de45b19eb4780897e047c, + type: 3} + propertyPath: m_Name + value: Player + objectReference: {fileID: 0} + - target: {fileID: 4089589904225066195, guid: 9b40ed50f44de45b19eb4780897e047c, + type: 3} + propertyPath: m_LocalScale.x + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 4089589904225066195, guid: 9b40ed50f44de45b19eb4780897e047c, + type: 3} + propertyPath: m_LocalScale.y + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 4089589904225066195, guid: 9b40ed50f44de45b19eb4780897e047c, + type: 3} + propertyPath: m_LocalPosition.x + value: -0.17 + objectReference: {fileID: 0} + - target: {fileID: 4089589904225066195, guid: 9b40ed50f44de45b19eb4780897e047c, + type: 3} + propertyPath: m_LocalPosition.y + value: -1.61 + objectReference: {fileID: 0} + - target: {fileID: 4089589904225066195, guid: 9b40ed50f44de45b19eb4780897e047c, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4089589904225066195, guid: 9b40ed50f44de45b19eb4780897e047c, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4089589904225066195, guid: 9b40ed50f44de45b19eb4780897e047c, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4089589904225066195, guid: 9b40ed50f44de45b19eb4780897e047c, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4089589904225066195, guid: 9b40ed50f44de45b19eb4780897e047c, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4089589904225066195, guid: 9b40ed50f44de45b19eb4780897e047c, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4089589904225066195, guid: 9b40ed50f44de45b19eb4780897e047c, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4089589904225066195, guid: 9b40ed50f44de45b19eb4780897e047c, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 9b40ed50f44de45b19eb4780897e047c, type: 3} +--- !u!1 &1989874459 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1989874461} + - component: {fileID: 1989874460} + 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 &1989874460 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1989874459} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 073797afb82c5a1438f328866b10b3f0, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.RenderPipelines.Universal.2D.Runtime::UnityEngine.Rendering.Universal.Light2D + m_ComponentVersion: 2 + m_LightType: 3 + 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: 1 + m_UseNormalMap: 0 + m_ShadowsEnabled: 0 + 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 + m_PointLightOuterRadius: 4.9685483 + 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 &1989874461 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1989874459} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0.5, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1660057539 &9223372036854775807 +SceneRoots: + m_ObjectHideFlags: 0 + m_Roots: + - {fileID: 652049019} + - {fileID: 1989874461} + - {fileID: 1737688778} diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/065_2D_Lights_SkinMesh.unity.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/065_2D_Lights_SkinMesh.unity.meta new file mode 100644 index 00000000000..67b9804a3e1 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/065_2D_Lights_SkinMesh.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: a40f7e9e6439a67448a877b18b865e20 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/065_2D_Lights_SkinMesh/Rabbit.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/065_2D_Lights_SkinMesh/Rabbit.meta new file mode 100644 index 00000000000..fbfe1c12cb0 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/065_2D_Lights_SkinMesh/Rabbit.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 45da8204a76d98c4db79358de08206fe +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/065_2D_Lights_SkinMesh/Rabbit/CTRL_Rabbit.controller b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/065_2D_Lights_SkinMesh/Rabbit/CTRL_Rabbit.controller new file mode 100644 index 00000000000..21261b6d72e --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/065_2D_Lights_SkinMesh/Rabbit/CTRL_Rabbit.controller @@ -0,0 +1,359 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1107 &-9128674337006444690 +AnimatorStateMachine: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Base Layer + m_ChildStates: + - serializedVersion: 1 + m_State: {fileID: 1386550815491730113} + m_Position: {x: 410, y: 210, z: 0} + - serializedVersion: 1 + m_State: {fileID: 6634100124105693670} + m_Position: {x: 410, y: 120, z: 0} + - serializedVersion: 1 + m_State: {fileID: 7035327779463598656} + m_Position: {x: 410, y: 310, z: 0} + m_ChildStateMachines: [] + m_AnyStateTransitions: [] + m_EntryTransitions: [] + m_StateMachineTransitions: {} + m_StateMachineBehaviours: [] + m_AnyStatePosition: {x: 50, y: 20, z: 0} + m_EntryPosition: {x: 50, y: 120, z: 0} + m_ExitPosition: {x: 800, y: 120, z: 0} + m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} + m_DefaultState: {fileID: 6634100124105693670} +--- !u!1101 &-8891521440388725937 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 3 + m_ConditionEvent: linearVelocityX + m_EventTreshold: 1 + - m_ConditionMode: 4 + m_ConditionEvent: moveValueX + m_EventTreshold: -0.2 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 1386550815491730113} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0.25 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1101 &-7464871240678240807 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 4 + m_ConditionEvent: linearVelocityX + m_EventTreshold: 1 + - m_ConditionMode: 3 + m_ConditionEvent: moveValueX + m_EventTreshold: -0.2 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 6634100124105693670} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0.25 + m_TransitionOffset: 0 + m_ExitTime: 0.55357146 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1101 &-2259264521369673422 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 3 + m_ConditionEvent: linearVelocityX + m_EventTreshold: 1 + - m_ConditionMode: 3 + m_ConditionEvent: moveValueX + m_EventTreshold: 0.2 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 1386550815491730113} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0.25 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 2 + m_OrderedInterruption: 0 + m_CanTransitionToSelf: 1 +--- !u!1101 &-2090918365273008557 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 4 + m_ConditionEvent: linearVelocityX + m_EventTreshold: 1 + - m_ConditionMode: 4 + m_ConditionEvent: moveValueX + m_EventTreshold: 0.2 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 6634100124105693670} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0.25 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 2 + m_OrderedInterruption: 0 + m_CanTransitionToSelf: 1 +--- !u!91 &9100000 +AnimatorController: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: CTRL_Rabbit + serializedVersion: 5 + m_AnimatorParameters: + - m_Name: linearVelocityX + m_Type: 1 + m_DefaultFloat: 0 + m_DefaultInt: 0 + m_DefaultBool: 0 + m_Controller: {fileID: 9100000} + - m_Name: moveValueX + m_Type: 1 + m_DefaultFloat: 0 + m_DefaultInt: 0 + m_DefaultBool: 0 + m_Controller: {fileID: 9100000} + - m_Name: linearVelocityY + m_Type: 1 + m_DefaultFloat: 0 + m_DefaultInt: 0 + m_DefaultBool: 0 + m_Controller: {fileID: 9100000} + - m_Name: isGrounded + m_Type: 4 + m_DefaultFloat: 0 + m_DefaultInt: 0 + m_DefaultBool: 0 + m_Controller: {fileID: 9100000} + - m_Name: hasLanded + m_Type: 9 + m_DefaultFloat: 0 + m_DefaultInt: 0 + m_DefaultBool: 0 + m_Controller: {fileID: 9100000} + m_AnimatorLayers: + - serializedVersion: 5 + m_Name: Base Layer + m_StateMachine: {fileID: -9128674337006444690} + m_Mask: {fileID: 0} + m_Motions: [] + m_Behaviours: [] + m_BlendingMode: 0 + m_SyncedLayerIndex: -1 + m_DefaultWeight: 0 + m_IKPass: 0 + m_SyncedLayerAffectsTiming: 0 + m_Controller: {fileID: 9100000} +--- !u!1101 &278033246825605514 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 3 + m_ConditionEvent: linearVelocityX + m_EventTreshold: 11 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 7035327779463598656} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0.25 + m_TransitionOffset: 0 + m_ExitTime: 6 + m_HasExitTime: 1 + m_HasFixedDuration: 1 + m_InterruptionSource: 3 + m_OrderedInterruption: 0 + m_CanTransitionToSelf: 1 +--- !u!1102 &1386550815491730113 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: run + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: -2090918365273008557} + - {fileID: -7464871240678240807} + - {fileID: 278033246825605514} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: 6189153785341448634} + m_Tag: + m_SpeedParameter: linearVelocityX + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1101 &4127658399013601447 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 4 + m_ConditionEvent: linearVelocityX + m_EventTreshold: 11 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 1386550815491730113} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0.25 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!206 &6189153785341448634 +BlendTree: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Blend Tree + m_Childs: + - serializedVersion: 2 + m_Motion: {fileID: -8489698727061325761, guid: 44c140d2f39da44cf99ca658382e0a55, type: 3} + m_Threshold: 6 + m_Position: {x: 0, y: 0} + m_TimeScale: 0.5 + m_CycleOffset: 0 + m_DirectBlendParameter: linearVelocityX + m_Mirror: 0 + - serializedVersion: 2 + m_Motion: {fileID: -8489698727061325761, guid: 44c140d2f39da44cf99ca658382e0a55, type: 3} + m_Threshold: 12 + m_Position: {x: 0, y: 0} + m_TimeScale: 2 + m_CycleOffset: 0 + m_DirectBlendParameter: linearVelocityX + m_Mirror: 0 + m_BlendParameter: linearVelocityX + m_BlendParameterY: linearVelocityX + m_MinThreshold: 6 + m_MaxThreshold: 12 + m_UseAutomaticThresholds: 0 + m_NormalizedBlendValues: 0 + m_BlendType: 0 +--- !u!1102 &6634100124105693670 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Idle + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: -2259264521369673422} + - {fileID: -8891521440388725937} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: 2122646230122354891, guid: 44c140d2f39da44cf99ca658382e0a55, type: 3} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1102 &7035327779463598656 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: fastrun + m_Speed: 3 + m_CycleOffset: 0 + m_Transitions: + - {fileID: 4127658399013601447} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: 7400000, guid: f6d46f454455e4c37bdd0da21aa6e0df, type: 2} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/065_2D_Lights_SkinMesh/Rabbit/CTRL_Rabbit.controller.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/065_2D_Lights_SkinMesh/Rabbit/CTRL_Rabbit.controller.meta new file mode 100644 index 00000000000..dd6df3f4443 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/065_2D_Lights_SkinMesh/Rabbit/CTRL_Rabbit.controller.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2d7b1e5c4ab7f4bc7bc7abf2aa661718 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 9100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/065_2D_Lights_SkinMesh/Rabbit/FBX_Rabbit.fbx b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/065_2D_Lights_SkinMesh/Rabbit/FBX_Rabbit.fbx new file mode 100644 index 00000000000..2f38b9c13ee Binary files /dev/null and b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/065_2D_Lights_SkinMesh/Rabbit/FBX_Rabbit.fbx differ diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/065_2D_Lights_SkinMesh/Rabbit/FBX_Rabbit.fbx.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/065_2D_Lights_SkinMesh/Rabbit/FBX_Rabbit.fbx.meta new file mode 100644 index 00000000000..28978f91c2d --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/065_2D_Lights_SkinMesh/Rabbit/FBX_Rabbit.fbx.meta @@ -0,0 +1,764 @@ +fileFormatVersion: 2 +guid: 44c140d2f39da44cf99ca658382e0a55 +ModelImporter: + serializedVersion: 22200 + internalIDToNameTable: [] + externalObjects: {} + materials: + materialImportMode: 2 + materialName: 0 + materialSearch: 1 + materialLocation: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleCurves: 1 + optimizeGameObjects: 0 + removeConstantScaleCurves: 0 + motionNodeName: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + importAnimatedCustomProperties: 0 + importConstraints: 0 + animationCompression: 1 + animationRotationError: 0.2 + animationPositionError: 0.2 + animationScaleError: 0.2 + animationWrapMode: 0 + extraExposedTransformPaths: [] + extraUserProperties: [] + clipAnimations: + - serializedVersion: 16 + name: Idle + takeName: Idle + internalID: 2122646230122354891 + firstFrame: 0 + lastFrame: 1 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 1 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: + - path: + weight: 1 + - path: Backpack + weight: 0 + - path: Backpack_Nozzles + weight: 0 + - path: Body + weight: 0 + - path: Boots_B + weight: 0 + - path: Eyebrows_01 + weight: 0 + - path: Eyebrows_02 + weight: 0 + - path: Eyes + weight: 0 + - path: Hair + weight: 0 + - path: Hands + weight: 0 + - path: Head + weight: 0 + - path: Rabbit + weight: 0 + - path: Rabbit/mixamorig:Hips + weight: 0 + - path: Rabbit/mixamorig:Hips/mixamorig:LeftUpLeg + weight: 0 + - path: Rabbit/mixamorig:Hips/mixamorig:LeftUpLeg/mixamorig:LeftLeg + weight: 0 + - path: Rabbit/mixamorig:Hips/mixamorig:LeftUpLeg/mixamorig:LeftLeg/mixamorig:LeftFoot + weight: 0 + - path: Rabbit/mixamorig:Hips/mixamorig:LeftUpLeg/mixamorig:LeftLeg/mixamorig:LeftFoot/mixamorig:LeftToeBase + weight: 0 + - path: Rabbit/mixamorig:Hips/mixamorig:RightUpLeg + weight: 0 + - path: Rabbit/mixamorig:Hips/mixamorig:RightUpLeg/mixamorig:RightLeg + weight: 0 + - path: Rabbit/mixamorig:Hips/mixamorig:RightUpLeg/mixamorig:RightLeg/mixamorig:RightFoot + weight: 0 + - path: Rabbit/mixamorig:Hips/mixamorig:RightUpLeg/mixamorig:RightLeg/mixamorig:RightFoot/mixamorig:RightToeBase + weight: 0 + - path: Rabbit/mixamorig:Hips/mixamorig:Spine + weight: 0 + - path: Rabbit/mixamorig:Hips/mixamorig:Spine/mixamorig:Spine1 + weight: 0 + - path: Rabbit/mixamorig:Hips/mixamorig:Spine/mixamorig:Spine1/mixamorig:Spine2 + weight: 0 + - path: Rabbit/mixamorig:Hips/mixamorig:Spine/mixamorig:Spine1/mixamorig:Spine2/Backpack + weight: 1 + - path: Rabbit/mixamorig:Hips/mixamorig:Spine/mixamorig:Spine1/mixamorig:Spine2/mixamorig:LeftShoulder + weight: 0 + - path: Rabbit/mixamorig:Hips/mixamorig:Spine/mixamorig:Spine1/mixamorig:Spine2/mixamorig:LeftShoulder/mixamorig:LeftArm + weight: 0 + - path: Rabbit/mixamorig:Hips/mixamorig:Spine/mixamorig:Spine1/mixamorig:Spine2/mixamorig:LeftShoulder/mixamorig:LeftArm/mixamorig:LeftForeArm + weight: 0 + - path: Rabbit/mixamorig:Hips/mixamorig:Spine/mixamorig:Spine1/mixamorig:Spine2/mixamorig:LeftShoulder/mixamorig:LeftArm/mixamorig:LeftForeArm/mixamorig:LeftHand + weight: 0 + - path: Rabbit/mixamorig:Hips/mixamorig:Spine/mixamorig:Spine1/mixamorig:Spine2/mixamorig:Neck + weight: 0 + - path: Rabbit/mixamorig:Hips/mixamorig:Spine/mixamorig:Spine1/mixamorig:Spine2/mixamorig:Neck/mixamorig:Head + weight: 0 + - path: Rabbit/mixamorig:Hips/mixamorig:Spine/mixamorig:Spine1/mixamorig:Spine2/mixamorig:Neck/mixamorig:Head/LeftEar001 + weight: 1 + - path: Rabbit/mixamorig:Hips/mixamorig:Spine/mixamorig:Spine1/mixamorig:Spine2/mixamorig:Neck/mixamorig:Head/LeftEar001/LeftEar002 + weight: 1 + - path: Rabbit/mixamorig:Hips/mixamorig:Spine/mixamorig:Spine1/mixamorig:Spine2/mixamorig:Neck/mixamorig:Head/LeftEar001/LeftEar002/LeftEar003 + weight: 1 + - path: Rabbit/mixamorig:Hips/mixamorig:Spine/mixamorig:Spine1/mixamorig:Spine2/mixamorig:Neck/mixamorig:Head/RightEar001 + weight: 1 + - path: Rabbit/mixamorig:Hips/mixamorig:Spine/mixamorig:Spine1/mixamorig:Spine2/mixamorig:Neck/mixamorig:Head/RightEar001/RightEar002 + weight: 1 + - path: Rabbit/mixamorig:Hips/mixamorig:Spine/mixamorig:Spine1/mixamorig:Spine2/mixamorig:Neck/mixamorig:Head/RightEar001/RightEar002/RightEar003 + weight: 1 + - path: Rabbit/mixamorig:Hips/mixamorig:Spine/mixamorig:Spine1/mixamorig:Spine2/mixamorig:RightShoulder + weight: 0 + - path: Rabbit/mixamorig:Hips/mixamorig:Spine/mixamorig:Spine1/mixamorig:Spine2/mixamorig:RightShoulder/mixamorig:RightArm + weight: 0 + - path: Rabbit/mixamorig:Hips/mixamorig:Spine/mixamorig:Spine1/mixamorig:Spine2/mixamorig:RightShoulder/mixamorig:RightArm/mixamorig:RightForeArm + weight: 0 + - path: Rabbit/mixamorig:Hips/mixamorig:Spine/mixamorig:Spine1/mixamorig:Spine2/mixamorig:RightShoulder/mixamorig:RightArm/mixamorig:RightForeArm/mixamorig:RightHand + weight: 0 + - path: Wrists + weight: 0 + maskType: 1 + maskSource: {fileID: 31900000, guid: 9dcd42cf671244650b14c02d5cf01331, type: 2} + additiveReferencePoseFrame: 0 + - serializedVersion: 16 + name: run + takeName: run + internalID: -8489698727061325761 + firstFrame: 0 + lastFrame: 14 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 1 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: [] + maskType: 3 + maskSource: {instanceID: 0} + additiveReferencePoseFrame: 0 + - serializedVersion: 16 + name: fastrun + takeName: fastrun + internalID: -8379789864099615198 + firstFrame: 0 + lastFrame: 14 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 1 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: + - path: + weight: 1 + - path: Backpack + weight: 0 + - path: Backpack_Nozzles + weight: 0 + - path: Body + weight: 0 + - path: Boots_B + weight: 0 + - path: Eyebrows_01 + weight: 0 + - path: Eyebrows_02 + weight: 0 + - path: Eyes + weight: 0 + - path: Hair + weight: 0 + - path: Hands + weight: 0 + - path: Head + weight: 0 + - path: Rabbit + weight: 1 + - path: Rabbit/mixamorig:Hips + weight: 1 + - path: Rabbit/mixamorig:Hips/mixamorig:LeftUpLeg + weight: 1 + - path: Rabbit/mixamorig:Hips/mixamorig:LeftUpLeg/mixamorig:LeftLeg + weight: 1 + - path: Rabbit/mixamorig:Hips/mixamorig:LeftUpLeg/mixamorig:LeftLeg/mixamorig:LeftFoot + weight: 1 + - path: Rabbit/mixamorig:Hips/mixamorig:LeftUpLeg/mixamorig:LeftLeg/mixamorig:LeftFoot/mixamorig:LeftToeBase + weight: 1 + - path: Rabbit/mixamorig:Hips/mixamorig:RightUpLeg + weight: 1 + - path: Rabbit/mixamorig:Hips/mixamorig:RightUpLeg/mixamorig:RightLeg + weight: 1 + - path: Rabbit/mixamorig:Hips/mixamorig:RightUpLeg/mixamorig:RightLeg/mixamorig:RightFoot + weight: 1 + - path: Rabbit/mixamorig:Hips/mixamorig:RightUpLeg/mixamorig:RightLeg/mixamorig:RightFoot/mixamorig:RightToeBase + weight: 1 + - path: Rabbit/mixamorig:Hips/mixamorig:Spine + weight: 1 + - path: Rabbit/mixamorig:Hips/mixamorig:Spine/mixamorig:Spine1 + weight: 1 + - path: Rabbit/mixamorig:Hips/mixamorig:Spine/mixamorig:Spine1/mixamorig:Spine2 + weight: 1 + - path: Rabbit/mixamorig:Hips/mixamorig:Spine/mixamorig:Spine1/mixamorig:Spine2/Backpack + weight: 1 + - path: Rabbit/mixamorig:Hips/mixamorig:Spine/mixamorig:Spine1/mixamorig:Spine2/mixamorig:LeftShoulder + weight: 1 + - path: Rabbit/mixamorig:Hips/mixamorig:Spine/mixamorig:Spine1/mixamorig:Spine2/mixamorig:LeftShoulder/mixamorig:LeftArm + weight: 1 + - path: Rabbit/mixamorig:Hips/mixamorig:Spine/mixamorig:Spine1/mixamorig:Spine2/mixamorig:LeftShoulder/mixamorig:LeftArm/mixamorig:LeftForeArm + weight: 1 + - path: Rabbit/mixamorig:Hips/mixamorig:Spine/mixamorig:Spine1/mixamorig:Spine2/mixamorig:LeftShoulder/mixamorig:LeftArm/mixamorig:LeftForeArm/mixamorig:LeftHand + weight: 1 + - path: Rabbit/mixamorig:Hips/mixamorig:Spine/mixamorig:Spine1/mixamorig:Spine2/mixamorig:Neck + weight: 1 + - path: Rabbit/mixamorig:Hips/mixamorig:Spine/mixamorig:Spine1/mixamorig:Spine2/mixamorig:Neck/mixamorig:Head + weight: 1 + - path: Rabbit/mixamorig:Hips/mixamorig:Spine/mixamorig:Spine1/mixamorig:Spine2/mixamorig:Neck/mixamorig:Head/LeftEar001 + weight: 1 + - path: Rabbit/mixamorig:Hips/mixamorig:Spine/mixamorig:Spine1/mixamorig:Spine2/mixamorig:Neck/mixamorig:Head/LeftEar001/LeftEar002 + weight: 1 + - path: Rabbit/mixamorig:Hips/mixamorig:Spine/mixamorig:Spine1/mixamorig:Spine2/mixamorig:Neck/mixamorig:Head/LeftEar001/LeftEar002/LeftEar003 + weight: 1 + - path: Rabbit/mixamorig:Hips/mixamorig:Spine/mixamorig:Spine1/mixamorig:Spine2/mixamorig:Neck/mixamorig:Head/RightEar001 + weight: 1 + - path: Rabbit/mixamorig:Hips/mixamorig:Spine/mixamorig:Spine1/mixamorig:Spine2/mixamorig:Neck/mixamorig:Head/RightEar001/RightEar002 + weight: 1 + - path: Rabbit/mixamorig:Hips/mixamorig:Spine/mixamorig:Spine1/mixamorig:Spine2/mixamorig:Neck/mixamorig:Head/RightEar001/RightEar002/RightEar003 + weight: 1 + - path: Rabbit/mixamorig:Hips/mixamorig:Spine/mixamorig:Spine1/mixamorig:Spine2/mixamorig:RightShoulder + weight: 1 + - path: Rabbit/mixamorig:Hips/mixamorig:Spine/mixamorig:Spine1/mixamorig:Spine2/mixamorig:RightShoulder/mixamorig:RightArm + weight: 1 + - path: Rabbit/mixamorig:Hips/mixamorig:Spine/mixamorig:Spine1/mixamorig:Spine2/mixamorig:RightShoulder/mixamorig:RightArm/mixamorig:RightForeArm + weight: 1 + - path: Rabbit/mixamorig:Hips/mixamorig:Spine/mixamorig:Spine1/mixamorig:Spine2/mixamorig:RightShoulder/mixamorig:RightArm/mixamorig:RightForeArm/mixamorig:RightHand + weight: 1 + - path: Wrists + weight: 0 + maskType: 1 + maskSource: {fileID: 31900000, guid: 9dcd42cf671244650b14c02d5cf01331, type: 2} + additiveReferencePoseFrame: 0 + isReadable: 0 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + useSRGBMaterialColor: 1 + sortHierarchyByName: 1 + importPhysicalCameras: 1 + importVisibility: 1 + importBlendShapes: 1 + importCameras: 1 + importLights: 1 + nodeNameCollisionStrategy: 1 + fileIdsGeneration: 2 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + keepQuads: 0 + weldVertices: 1 + bakeAxisConversion: 0 + preserveHierarchy: 0 + skinWeightsMode: 0 + maxBonesPerVertex: 4 + minBoneWeight: 0.001 + optimizeBones: 1 + meshOptimizationFlags: -1 + indexFormat: 0 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVMarginMethod: 1 + secondaryUVMinLightmapResolution: 40 + secondaryUVMinObjectScale: 1 + secondaryUVPackMargin: 4 + useFileScale: 1 + strictVertexDataChecks: 0 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + normalCalculationMode: 4 + legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0 + blendShapeNormalImportMode: 1 + normalSmoothingSource: 0 + referencedClips: [] + importAnimation: 1 + humanDescription: + serializedVersion: 3 + human: + - boneName: mixamorig:Hips + humanName: Hips + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: mixamorig:LeftUpLeg + humanName: LeftUpperLeg + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: mixamorig:RightUpLeg + humanName: RightUpperLeg + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: mixamorig:LeftLeg + humanName: LeftLowerLeg + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: mixamorig:RightLeg + humanName: RightLowerLeg + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: mixamorig:LeftFoot + humanName: LeftFoot + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: mixamorig:RightFoot + humanName: RightFoot + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: mixamorig:Spine + humanName: Spine + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: mixamorig:Spine1 + humanName: Chest + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: mixamorig:Neck + humanName: Neck + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: mixamorig:Head + humanName: Head + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: mixamorig:LeftShoulder + humanName: LeftShoulder + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: mixamorig:RightShoulder + humanName: RightShoulder + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: mixamorig:LeftArm + humanName: LeftUpperArm + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: mixamorig:RightArm + humanName: RightUpperArm + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: mixamorig:LeftForeArm + humanName: LeftLowerArm + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: mixamorig:RightForeArm + humanName: RightLowerArm + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: mixamorig:LeftHand + humanName: LeftHand + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: mixamorig:RightHand + humanName: RightHand + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: mixamorig:LeftToeBase + humanName: LeftToes + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: mixamorig:RightToeBase + humanName: RightToes + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: LeftEar001 + humanName: LeftEye + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: RightEar001 + humanName: RightEye + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: mixamorig:Spine2 + humanName: UpperChest + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + skeleton: + - name: rabbit_anim_v10(Clone) + parentName: + position: {x: 0, y: 0, z: 0} + rotation: {x: 0, y: 0, z: 0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: Backpack + parentName: rabbit_anim_v10(Clone) + position: {x: 0.0000000059604637, y: -0.000000008940697, z: -0.0000000065565096} + rotation: {x: -0.7071068, y: -0.0000000025288112, z: 6.322031e-10, w: 0.7071067} + scale: {x: 100, y: 100, z: 100} + - name: Backpack_Nozzles + parentName: rabbit_anim_v10(Clone) + position: {x: -0.00000000834465, y: 0.00000002503395, z: 0.0000000035762766} + rotation: {x: -0.7071068, y: -0.000000001896608, z: 0.0000000010536713, w: 0.7071067} + scale: {x: 100, y: 100, z: 100} + - name: Body + parentName: rabbit_anim_v10(Clone) + position: {x: -0.00000000488013, y: 3.7252784e-10, z: -0.000000014840625} + rotation: {x: -0.7071069, y: -2.2802109e-10, z: -7.0217315e-10, w: 0.7071067} + scale: {x: 100, y: 100, z: 100} + - name: Boots_B + parentName: rabbit_anim_v10(Clone) + position: {x: -0, y: 0, z: 0} + rotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071067} + scale: {x: 100, y: 100, z: 100} + - name: Eyebrows_01 + parentName: rabbit_anim_v10(Clone) + position: {x: -0.000000007152557, y: -0.0000000023841857, z: 1.80001e-16} + rotation: {x: -0.7071069, y: -0.000000002528811, z: -0.0000000016858732, w: 0.7071067} + scale: {x: 100, y: 100, z: 100} + - name: Eyebrows_02 + parentName: rabbit_anim_v10(Clone) + position: {x: -0.000000007152557, y: -0.0000000023841857, z: 1.80001e-16} + rotation: {x: -0.7071069, y: -0.000000002528811, z: -0.0000000016858732, w: 0.7071067} + scale: {x: 100, y: 100, z: 100} + - name: Eyes + parentName: rabbit_anim_v10(Clone) + position: {x: -0, y: 2.011668e-24, z: 2.6645352e-17} + rotation: {x: -0.7071069, y: 0, z: 0, w: 0.7071067} + scale: {x: 100, y: 100, z: 100} + - name: Hair + parentName: rabbit_anim_v10(Clone) + position: {x: -0, y: 2.011668e-24, z: 0.010083692} + rotation: {x: -0.7071069, y: 0, z: 0, w: 0.7071067} + scale: {x: 100, y: 100, z: 100} + - name: Hands + parentName: rabbit_anim_v10(Clone) + position: {x: -0.0000000023841857, y: -0.00000003695488, z: -0.000000004768369} + rotation: {x: -0.7071068, y: -0.0000000025288114, z: -0.0000000016858736, w: 0.7071067} + scale: {x: 100, y: 100, z: 100} + - name: Head + parentName: rabbit_anim_v10(Clone) + position: {x: -0, y: 2.011668e-24, z: 2.6645352e-17} + rotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071067} + scale: {x: 100, y: 100, z: 100} + - name: Rabbit + parentName: rabbit_anim_v10(Clone) + position: {x: -0, y: 0, z: 0} + rotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071067} + scale: {x: 100, y: 100, z: 100} + - name: mixamorig:Hips + parentName: Rabbit + position: {x: -0, y: -0.0007138718, z: 0.0053605023} + rotation: {x: 0.7071068, y: -2.2476864e-16, z: -1.236691e-16, w: 0.7071068} + scale: {x: 1, y: 0.999999, z: 0.999999} + - name: mixamorig:Spine + parentName: mixamorig:Hips + position: {x: -0, y: 0.00061817694, z: -0.00006996304} + rotation: {x: -0.05631858, y: 3.361716e-16, z: 3.5019727e-17, w: 0.9984129} + scale: {x: 1, y: 1.0000007, z: 1.0000008} + - name: mixamorig:Spine1 + parentName: mixamorig:Spine + position: {x: -0, y: 0.00072580954, z: 0} + rotation: {x: -0, y: -1.4654946e-16, z: 2.220442e-17, w: 1} + scale: {x: 1, y: 0.9999996, z: 1.0000008} + - name: mixamorig:Spine2 + parentName: mixamorig:Spine1 + position: {x: -0, y: 0.0008294986, z: -1.11758706e-10} + rotation: {x: 0.00000008568168, y: -2.4424896e-16, z: 1.5543101e-17, w: 1} + scale: {x: 1, y: 1.0000002, z: 0.9999991} + - name: mixamorig:Neck + parentName: mixamorig:Spine2 + position: {x: -0, y: 0.00093318406, z: -3.352761e-10} + rotation: {x: 0.056318495, y: 6.045532e-17, z: -3.4327496e-17, w: 0.9984129} + scale: {x: 1, y: 1.0000005, z: 1.0000006} + - name: mixamorig:Head + parentName: mixamorig:Neck + position: {x: -0, y: 0.0010773271, z: 0.00011345998} + rotation: {x: -0, y: -6.3310377e-18, z: -3.1655133e-17, w: 1} + scale: {x: 1, y: 0.9999996, z: 0.9999997} + - name: LeftEar001 + parentName: mixamorig:Head + position: {x: -0.0018344461, y: 0.0042284727, z: -0.00002301221} + rotation: {x: 0.0034912522, y: 0.0006513381, z: 0.18337764, w: 0.9830361} + scale: {x: 1.0000005, y: 0.99999905, z: 1.0000005} + - name: LeftEar002 + parentName: LeftEar001 + position: {x: -6.667201e-10, y: 0.0023699026, z: 3.958121e-11} + rotation: {x: 0.074103646, y: 0.002695725, z: 0.03308256, w: 0.996698} + scale: {x: 1.0000008, y: 0.9999999, z: 0.9999987} + - name: LeftEar003 + parentName: LeftEar002 + position: {x: 9.733067e-10, y: 0.002064757, z: -2.2351741e-10} + rotation: {x: 0.015027462, y: 0.019120868, z: 0.11095591, w: 0.99352777} + scale: {x: 1.0000011, y: 0.9999985, z: 1.0000002} + - name: RightEar001 + parentName: mixamorig:Head + position: {x: 0.0018344461, y: 0.0042284727, z: -0.00002301221} + rotation: {x: 0.0034912522, y: -0.0006513232, z: -0.18337764, w: 0.9830361} + scale: {x: 1.0000005, y: 0.99999905, z: 1.0000005} + - name: RightEar002 + parentName: RightEar001 + position: {x: 6.667201e-10, y: 0.0023699026, z: 3.958121e-11} + rotation: {x: 0.07410365, y: -0.0026957395, z: -0.03308256, w: 0.996698} + scale: {x: 1.0000008, y: 1.0000004, z: 0.9999987} + - name: RightEar003 + parentName: RightEar002 + position: {x: -9.733067e-10, y: 0.002064757, z: -2.2351741e-10} + rotation: {x: 0.015027409, y: -0.01912088, z: -0.11095588, w: 0.99352777} + scale: {x: 1.0000013, y: 0.9999981, z: 1.0000005} + - name: mixamorig:LeftShoulder + parentName: mixamorig:Spine2 + position: {x: -0.00057579397, y: 0.000735465, z: -0.000014474392} + rotation: {x: 0.6394079, y: -0.4486662, z: -0.5023089, w: -0.37086636} + scale: {x: 1.0000012, y: 1.0000006, z: 1.000002} + - name: mixamorig:LeftArm + parentName: mixamorig:LeftShoulder + position: {x: -1.8626451e-11, y: 0.0012208619, z: 0.0000000010337681} + rotation: {x: 0.14419025, y: -0.14440307, z: 0.018866062, w: 0.9787753} + scale: {x: 1.0000008, y: 1.000002, z: 1.000002} + - name: mixamorig:LeftForeArm + parentName: mixamorig:LeftArm + position: {x: -2.3283063e-11, y: 0.0010506014, z: 4.5401974e-11} + rotation: {x: -0.019260434, y: 0.019336713, z: -0.0038297898, w: -0.99962026} + scale: {x: 0.99999946, y: 0.999999, z: 1.0000013} + - name: mixamorig:LeftHand + parentName: mixamorig:LeftForeArm + position: {x: 1.6880221e-11, y: 0.0011181678, z: 3.0551744e-10} + rotation: {x: 0.10270812, y: -0.10322092, z: -0.058400493, w: -0.98761624} + scale: {x: 1.0000029, y: 1.0000061, z: 1.000002} + - name: mixamorig:RightShoulder + parentName: mixamorig:Spine2 + position: {x: 0.00057579397, y: 0.0007372318, z: -0.000030080526} + rotation: {x: 0.64327663, y: 0.44293115, z: 0.49588814, w: -0.37960798} + scale: {x: 1.0000013, y: 1.0000021, z: 1.0000025} + - name: mixamorig:RightArm + parentName: mixamorig:RightShoulder + position: {x: -2.2351741e-10, y: 0.0012208633, z: 1.8626451e-11} + rotation: {x: 0.13788214, y: 0.14567886, z: -0.052859686, w: 0.97824955} + scale: {x: 1.0000018, y: 1.0000052, z: 1.0000048} + - name: mixamorig:RightForeArm + parentName: mixamorig:RightArm + position: {x: 2.7939677e-11, y: 0.0010515008, z: -9.19681e-11} + rotation: {x: -0.019723399, y: -0.019699423, z: -0.021324428, w: -0.999384} + scale: {x: 1.0000033, y: 1.0000021, z: 1.0000038} + - name: mixamorig:RightHand + parentName: mixamorig:RightForeArm + position: {x: 1.9354046e-11, y: 0.0011181596, z: -2.9976945e-11} + rotation: {x: 0.1043845, y: 0.10424298, z: 0.054710582, w: -0.9875445} + scale: {x: 1.0000017, y: 1, z: 1} + - name: Backpack + parentName: mixamorig:Spine2 + position: {x: -0, y: 0.001329199, z: -0.0012951373} + rotation: {x: 0.98493725, y: 0.0000000206128, z: -0.00000011741408, w: -0.17291227} + scale: {x: 1, y: 1.0000014, z: 1.0000037} + - name: mixamorig:LeftUpLeg + parentName: mixamorig:Hips + position: {x: -0.0009081132, y: -0.00034410364, z: 0.000020872718} + rotation: {x: 0.9935876, y: -0.073111065, z: -0.07311364, w: 0.04574898} + scale: {x: 1.0000032, y: 1.0000031, z: 1.0000072} + - name: mixamorig:LeftLeg + parentName: mixamorig:LeftUpLeg + position: {x: -5.5879353e-11, y: 0.0015827664, z: -3.7252902e-11} + rotation: {x: 0.12207742, y: -0.036362983, z: 0.015986113, w: 0.9917254} + scale: {x: 1.0000001, y: 1.0000076, z: 1.0000075} + - name: mixamorig:LeftFoot + parentName: mixamorig:LeftLeg + position: {x: 1.5832484e-10, y: 0.0014095445, z: 1.0710209e-10} + rotation: {x: -0.4111093, y: -0.10903086, z: 0.21705276, w: 0.8786294} + scale: {x: 1.0000018, y: 1.000011, z: 0.99999744} + - name: mixamorig:LeftToeBase + parentName: mixamorig:LeftFoot + position: {x: -3.9115547e-10, y: 0.0031651233, z: -8.381903e-11} + rotation: {x: -0.1464972, y: 0.8502455, z: -0.30187503, w: -0.40557688} + scale: {x: 1.0000122, y: 0.999989, z: 1.0000051} + - name: mixamorig:RightUpLeg + parentName: mixamorig:Hips + position: {x: 0.0009081132, y: -0.00034410364, z: 0.000042083255} + rotation: {x: 0.9936909, y: 0.072985455, z: 0.07298285, w: 0.04387635} + scale: {x: 0.9999959, y: 1.000005, z: 1.0000024} + - name: mixamorig:RightLeg + parentName: mixamorig:RightUpLeg + position: {x: -1.6763806e-10, y: 0.0015821694, z: 0} + rotation: {x: 0.13493322, y: 0.035670385, z: -0.013671693, w: 0.990118} + scale: {x: 0.9999999, y: 1.0000045, z: 1.0000051} + - name: mixamorig:RightFoot + parentName: mixamorig:RightLeg + position: {x: 1.5832484e-10, y: 0.0014158015, z: 2.561137e-11} + rotation: {x: -0.42383468, y: 0.10714267, z: -0.22147484, w: 0.87168425} + scale: {x: 0.9999992, y: 0.99999607, z: 1.0000099} + - name: mixamorig:RightToeBase + parentName: mixamorig:RightFoot + position: {x: -1.862645e-10, y: 0.003167097, z: -2.3283063e-11} + rotation: {x: 0.1439293, y: 0.85055643, z: -0.30284113, w: 0.40512395} + scale: {x: 1.000036, y: 1.0000112, z: 0.99996454} + - name: Wrists + parentName: rabbit_anim_v10(Clone) + position: {x: -0.000000007152557, y: -0.0000000023841857, z: 1.80001e-16} + rotation: {x: -0.7071069, y: -0.000000002528811, z: -0.0000000016858732, w: 0.7071067} + scale: {x: 100, y: 100, z: 100} + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 0.05 + legStretch: 0.05 + feetSpacing: 0 + globalScale: 1 + rootMotionBoneName: + hasTranslationDoF: 0 + hasExtraRoot: 1 + skeletonHasParents: 1 + lastHumanDescriptionAvatarSource: {instanceID: 0} + autoGenerateAvatarMappingIfUnspecified: 1 + animationType: 3 + humanoidOversampling: 1 + avatarSetup: 1 + addHumanoidExtraRootOnlyWhenUsingAvatar: 1 + importBlendShapeDeformPercent: 1 + remapMaterialsIfMaterialImportModeIsNone: 0 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/065_2D_Lights_SkinMesh/Rabbit/MAT_rabbit.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/065_2D_Lights_SkinMesh/Rabbit/MAT_rabbit.mat new file mode 100644 index 00000000000..9a37d94186b --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/065_2D_Lights_SkinMesh/Rabbit/MAT_rabbit.mat @@ -0,0 +1,95 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-5978559468002789555 +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: MAT_rabbit + m_Shader: {fileID: 4800000, guid: e260cfa7296ee7642b167f1eb5be5023, type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: [] + m_InvalidKeywords: + - _ZWRITE_ON + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: + - MOTIONVECTORS + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - Base_Map: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - Normal_Map: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _AlphaTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _AmbientOcclusion: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: 9f9f3017d358d44ccb736a7bd6592786, type: 3} + 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: 2800000, guid: d17e49d624142453c8a863e0ac64900b, type: 3} + 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: + - Normal_Blend: 0.5 + - _DecalMeshBiasType: 0 + - _DecalMeshDepthBias: 0 + - _DecalMeshViewBias: 0 + - _DrawOrder: 0 + - _EnableExternalAlpha: 0 + - _ZWrite: 1 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _Flip: {r: 1, g: 1, b: 1, a: 1} + - _RendererColor: {r: 1, g: 1, b: 1, a: 1} + m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/065_2D_Lights_SkinMesh/Rabbit/MAT_rabbit.mat.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/065_2D_Lights_SkinMesh/Rabbit/MAT_rabbit.mat.meta new file mode 100644 index 00000000000..fe317236811 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/065_2D_Lights_SkinMesh/Rabbit/MAT_rabbit.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a166853b72a73457083eadd61644515d +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/065_2D_Lights_SkinMesh/Rabbit/MATrabbit 1.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/065_2D_Lights_SkinMesh/Rabbit/MATrabbit 1.mat new file mode 100644 index 00000000000..892b1a9750b --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/065_2D_Lights_SkinMesh/Rabbit/MATrabbit 1.mat @@ -0,0 +1,151 @@ +%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: MATrabbit 1 + m_Shader: {fileID: 4800000, guid: e260cfa7296ee7642b167f1eb5be5023, type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: [] + m_InvalidKeywords: + - _ZWRITE_ON + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: + - MOTIONVECTORS + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - Texture2D_157F2F46: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - Texture2D_62A554C2: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _AlphaTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _AmbientOcclusion: + m_Texture: {fileID: 2800000, guid: 539fd2274b23049d48993a6b1d8a10d3, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: 106c5cc4c76c646dea6d654713640294, type: 3} + 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} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMap: + m_Texture: {fileID: 2800000, guid: 1ad007c25893a4418ba1f09c7a8146eb, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _Texture2D: + 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: + - PixelSnap: 0 + - Vector1_55a8b126390543389171a7d049051d70: 0 + - Vector1_6eb44c5d2e6b4dbb93ad63ff27fda2b9: 0 + - _BumpScale: 1 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _EnableExternalAlpha: 0 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _QueueControl: 0 + - _QueueOffset: 0 + - _Smoothness: 0 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _UVSec: 0 + - _ZWrite: 1 + m_Colors: + - Color_af230b329c8c495b83c610ab1c4228f3: {r: 4, g: 4, b: 4, a: 1} + - Vector2_4594D2F0: {r: 1, g: 1, b: 0, a: 0} + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _Flip: {r: 1, g: 1, b: 1, a: 1} + - _LightDirection: {r: 3.36, g: 1.72, b: -1.35, a: 0} + - _RendererColor: {r: 1, g: 1, b: 1, a: 1} + m_BuildTextureStacks: [] + m_AllowLocking: 1 +--- !u!114 &9131573936083971337 +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/065_2D_Lights_SkinMesh/Rabbit/MATrabbit 1.mat.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/065_2D_Lights_SkinMesh/Rabbit/MATrabbit 1.mat.meta new file mode 100644 index 00000000000..d705ebc5dc8 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/065_2D_Lights_SkinMesh/Rabbit/MATrabbit 1.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 139e40328161f419cbb87a46bbe05c4b +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/065_2D_Lights_SkinMesh/Rabbit/Prefab_rabbit.prefab b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/065_2D_Lights_SkinMesh/Rabbit/Prefab_rabbit.prefab new file mode 100644 index 00000000000..c42bf72dd85 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/065_2D_Lights_SkinMesh/Rabbit/Prefab_rabbit.prefab @@ -0,0 +1,174 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1001 &6994157565141698803 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: -8679921383154817045, guid: 44c140d2f39da44cf99ca658382e0a55, type: 3} + propertyPath: m_LocalPosition.x + value: 1.966412 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 44c140d2f39da44cf99ca658382e0a55, type: 3} + propertyPath: m_LocalPosition.y + value: -0.85328794 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 44c140d2f39da44cf99ca658382e0a55, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 44c140d2f39da44cf99ca658382e0a55, type: 3} + propertyPath: m_LocalRotation.w + value: 0.04421809 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 44c140d2f39da44cf99ca658382e0a55, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 44c140d2f39da44cf99ca658382e0a55, type: 3} + propertyPath: m_LocalRotation.y + value: 0.9990219 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 44c140d2f39da44cf99ca658382e0a55, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 44c140d2f39da44cf99ca658382e0a55, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 44c140d2f39da44cf99ca658382e0a55, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: -545.069 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 44c140d2f39da44cf99ca658382e0a55, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8531248215242998404, guid: 44c140d2f39da44cf99ca658382e0a55, type: 3} + propertyPath: 'm_Materials.Array.data[0]' + value: + objectReference: {fileID: 2100000, guid: a166853b72a73457083eadd61644515d, type: 2} + - target: {fileID: -7823293702887809713, guid: 44c140d2f39da44cf99ca658382e0a55, type: 3} + propertyPath: 'm_Materials.Array.data[0]' + value: + objectReference: {fileID: 2100000, guid: a166853b72a73457083eadd61644515d, type: 2} + - target: {fileID: -4865184698720328861, guid: 44c140d2f39da44cf99ca658382e0a55, type: 3} + propertyPath: m_LocalRotation.w + value: 0.704138 + objectReference: {fileID: 0} + - target: {fileID: -4865184698720328861, guid: 44c140d2f39da44cf99ca658382e0a55, type: 3} + propertyPath: m_LocalRotation.x + value: -0.70413816 + objectReference: {fileID: 0} + - target: {fileID: -4865184698720328861, guid: 44c140d2f39da44cf99ca658382e0a55, type: 3} + propertyPath: m_LocalRotation.y + value: -0.06472729 + objectReference: {fileID: 0} + - target: {fileID: -4865184698720328861, guid: 44c140d2f39da44cf99ca658382e0a55, type: 3} + propertyPath: m_LocalRotation.z + value: -0.06472726 + objectReference: {fileID: 0} + - target: {fileID: -4865184698720328861, guid: 44c140d2f39da44cf99ca658382e0a55, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: -90 + objectReference: {fileID: 0} + - target: {fileID: -4865184698720328861, guid: 44c140d2f39da44cf99ca658382e0a55, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: -10.504 + objectReference: {fileID: 0} + - target: {fileID: -4085134581463511685, guid: 44c140d2f39da44cf99ca658382e0a55, type: 3} + propertyPath: 'm_Materials.Array.data[0]' + value: + objectReference: {fileID: 2100000, guid: a166853b72a73457083eadd61644515d, type: 2} + - target: {fileID: -3051815954447469673, guid: 44c140d2f39da44cf99ca658382e0a55, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -2641288237696090860, guid: 44c140d2f39da44cf99ca658382e0a55, type: 3} + propertyPath: 'm_Materials.Array.data[0]' + value: + objectReference: {fileID: 2100000, guid: 139e40328161f419cbb87a46bbe05c4b, type: 2} + - target: {fileID: -10312625975758130, guid: 44c140d2f39da44cf99ca658382e0a55, type: 3} + propertyPath: 'm_Materials.Array.data[0]' + value: + objectReference: {fileID: 2100000, guid: 139e40328161f419cbb87a46bbe05c4b, type: 2} + - target: {fileID: 257682520821521101, guid: 44c140d2f39da44cf99ca658382e0a55, type: 3} + propertyPath: 'm_Materials.Array.data[0]' + value: + objectReference: {fileID: 2100000, guid: a166853b72a73457083eadd61644515d, type: 2} + - target: {fileID: 579163500693744052, guid: 44c140d2f39da44cf99ca658382e0a55, type: 3} + propertyPath: 'm_Materials.Array.data[0]' + value: + objectReference: {fileID: 2100000, guid: a166853b72a73457083eadd61644515d, type: 2} + - target: {fileID: 919132149155446097, guid: 44c140d2f39da44cf99ca658382e0a55, type: 3} + propertyPath: m_Name + value: Prefab_rabbit + objectReference: {fileID: 0} + - target: {fileID: 1630794972795428178, guid: 44c140d2f39da44cf99ca658382e0a55, type: 3} + propertyPath: 'm_Materials.Array.data[0]' + value: + objectReference: {fileID: 2100000, guid: a166853b72a73457083eadd61644515d, type: 2} + - target: {fileID: 1991958964433702829, guid: 44c140d2f39da44cf99ca658382e0a55, type: 3} + propertyPath: 'm_Materials.Array.data[0]' + value: + objectReference: {fileID: 2100000, guid: 139e40328161f419cbb87a46bbe05c4b, type: 2} + - target: {fileID: 3169268832049026677, guid: 44c140d2f39da44cf99ca658382e0a55, type: 3} + propertyPath: m_LocalRotation.w + value: 0.70710266 + objectReference: {fileID: 0} + - target: {fileID: 3169268832049026677, guid: 44c140d2f39da44cf99ca658382e0a55, type: 3} + propertyPath: m_LocalRotation.x + value: -0.70710284 + objectReference: {fileID: 0} + - target: {fileID: 3169268832049026677, guid: 44c140d2f39da44cf99ca658382e0a55, type: 3} + propertyPath: m_LocalRotation.y + value: 0.0024045703 + objectReference: {fileID: 0} + - target: {fileID: 3169268832049026677, guid: 44c140d2f39da44cf99ca658382e0a55, type: 3} + propertyPath: m_LocalRotation.z + value: 0.0024045554 + objectReference: {fileID: 0} + - target: {fileID: 3169268832049026677, guid: 44c140d2f39da44cf99ca658382e0a55, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: -90 + objectReference: {fileID: 0} + - target: {fileID: 3169268832049026677, guid: 44c140d2f39da44cf99ca658382e0a55, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0.39 + objectReference: {fileID: 0} + - target: {fileID: 4767898868398730723, guid: 44c140d2f39da44cf99ca658382e0a55, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5074512353664290214, guid: 44c140d2f39da44cf99ca658382e0a55, type: 3} + propertyPath: 'm_Materials.Array.data[0]' + value: + objectReference: {fileID: 2100000, guid: a166853b72a73457083eadd61644515d, type: 2} + - target: {fileID: 8662617239381368188, guid: 44c140d2f39da44cf99ca658382e0a55, type: 3} + propertyPath: 'm_Materials.Array.data[0]' + value: + objectReference: {fileID: 2100000, guid: 139e40328161f419cbb87a46bbe05c4b, type: 2} + m_RemovedComponents: [] + m_RemovedGameObjects: + - {fileID: 116856396125860179, guid: 44c140d2f39da44cf99ca658382e0a55, type: 3} + - {fileID: 6366284564623985538, guid: 44c140d2f39da44cf99ca658382e0a55, type: 3} + - {fileID: -8469776780753482551, guid: 44c140d2f39da44cf99ca658382e0a55, type: 3} + - {fileID: -405469744395231964, guid: 44c140d2f39da44cf99ca658382e0a55, type: 3} + - {fileID: -6015716753734748851, guid: 44c140d2f39da44cf99ca658382e0a55, type: 3} + - {fileID: 65702495048144492, guid: 44c140d2f39da44cf99ca658382e0a55, type: 3} + - {fileID: 7974319562004025660, guid: 44c140d2f39da44cf99ca658382e0a55, type: 3} + - {fileID: 8513859187771203891, guid: 44c140d2f39da44cf99ca658382e0a55, type: 3} + - {fileID: -6425071276462417290, guid: 44c140d2f39da44cf99ca658382e0a55, type: 3} + - {fileID: 3131173972596537370, guid: 44c140d2f39da44cf99ca658382e0a55, type: 3} + - {fileID: 5089554664908748266, guid: 44c140d2f39da44cf99ca658382e0a55, type: 3} + - {fileID: -6047770818520962776, guid: 44c140d2f39da44cf99ca658382e0a55, type: 3} + - {fileID: -3287953760327315157, guid: 44c140d2f39da44cf99ca658382e0a55, type: 3} + - {fileID: -8700617353114198275, guid: 44c140d2f39da44cf99ca658382e0a55, type: 3} + - {fileID: -7355372455135308335, guid: 44c140d2f39da44cf99ca658382e0a55, type: 3} + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 44c140d2f39da44cf99ca658382e0a55, type: 3} diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/065_2D_Lights_SkinMesh/Rabbit/Prefab_rabbit.prefab.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/065_2D_Lights_SkinMesh/Rabbit/Prefab_rabbit.prefab.meta new file mode 100644 index 00000000000..0c0cc360c3f --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/065_2D_Lights_SkinMesh/Rabbit/Prefab_rabbit.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: e277024fb90a14f01bcf8eff8a7ae2ca +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/065_2D_Lights_SkinMesh/Rabbit/textures.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/065_2D_Lights_SkinMesh/Rabbit/textures.meta new file mode 100644 index 00000000000..623b584abec --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/065_2D_Lights_SkinMesh/Rabbit/textures.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d89a3a2fc1d27984ab580f69d0597fd0 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/065_2D_Lights_SkinMesh/Rabbit/textures/NormalMap.png b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/065_2D_Lights_SkinMesh/Rabbit/textures/NormalMap.png new file mode 100644 index 00000000000..58b95172711 Binary files /dev/null and b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/065_2D_Lights_SkinMesh/Rabbit/textures/NormalMap.png differ diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/065_2D_Lights_SkinMesh/Rabbit/textures/NormalMap.png.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/065_2D_Lights_SkinMesh/Rabbit/textures/NormalMap.png.meta new file mode 100644 index 00000000000..b4716166215 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/065_2D_Lights_SkinMesh/Rabbit/textures/NormalMap.png.meta @@ -0,0 +1,142 @@ +fileFormatVersion: 2 +guid: d17e49d624142453c8a863e0ac64900b +TextureImporter: + internalIDToNameTable: + - first: + 213: -5434094310243622409 + second: NormalMap_0 + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 2 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 1 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 4 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: + - serializedVersion: 2 + name: NormalMap_0 + rect: + serializedVersion: 2 + x: 0 + y: 0 + width: 4096 + height: 4096 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: -1 + bones: [] + spriteID: 7f125f114083694b0800000000000000 + internalID: -5434094310243622409 + vertices: [] + indices: + edges: [] + weights: [] + outline: [] + customData: + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/065_2D_Lights_SkinMesh/Rabbit/textures/NormalMap2.png b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/065_2D_Lights_SkinMesh/Rabbit/textures/NormalMap2.png new file mode 100644 index 00000000000..e43a5631f8b Binary files /dev/null and b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/065_2D_Lights_SkinMesh/Rabbit/textures/NormalMap2.png differ diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/065_2D_Lights_SkinMesh/Rabbit/textures/NormalMap2.png.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/065_2D_Lights_SkinMesh/Rabbit/textures/NormalMap2.png.meta new file mode 100644 index 00000000000..b0000108cb0 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/065_2D_Lights_SkinMesh/Rabbit/textures/NormalMap2.png.meta @@ -0,0 +1,142 @@ +fileFormatVersion: 2 +guid: 1ad007c25893a4418ba1f09c7a8146eb +TextureImporter: + internalIDToNameTable: + - first: + 213: -2477330374845486119 + second: NormalMap2_0 + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 2 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 1 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 4 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: + - serializedVersion: 2 + name: NormalMap2_0 + rect: + serializedVersion: 2 + x: 0 + y: 0 + width: 4096 + height: 4096 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: -1 + bones: [] + spriteID: 9dbac084621ce9dd0800000000000000 + internalID: -2477330374845486119 + vertices: [] + indices: + edges: [] + weights: [] + outline: [] + customData: + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/065_2D_Lights_SkinMesh/Rabbit/textures/baseMat Base Color.png b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/065_2D_Lights_SkinMesh/Rabbit/textures/baseMat Base Color.png new file mode 100644 index 00000000000..30e1a59a46e Binary files /dev/null and b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/065_2D_Lights_SkinMesh/Rabbit/textures/baseMat Base Color.png differ diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/065_2D_Lights_SkinMesh/Rabbit/textures/baseMat Base Color.png.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/065_2D_Lights_SkinMesh/Rabbit/textures/baseMat Base Color.png.meta new file mode 100644 index 00000000000..c9e4bc550ff --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/065_2D_Lights_SkinMesh/Rabbit/textures/baseMat Base Color.png.meta @@ -0,0 +1,208 @@ +fileFormatVersion: 2 +guid: 9f9f3017d358d44ccb736a7bd6592786 +TextureImporter: + internalIDToNameTable: + - first: + 213: -4901453384409387735 + second: baseMat Base Color_0 + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 2 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 4 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: CloudRendering + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Switch + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: GameCoreXboxOne + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: GameCoreScarlett + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: + - serializedVersion: 2 + name: baseMat Base Color_0 + rect: + serializedVersion: 2 + x: 0 + y: 0 + width: 4096 + height: 4096 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: -1 + bones: [] + spriteID: 92d642bad1a8afbb0800000000000000 + internalID: -4901453384409387735 + vertices: [] + indices: + edges: [] + weights: [] + outline: [] + customData: + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: [] + nameFileIdTable: + baseMat Base Color_0: -4901453384409387735 + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/065_2D_Lights_SkinMesh/Rabbit/textures/baseMat.001 Base Color.png b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/065_2D_Lights_SkinMesh/Rabbit/textures/baseMat.001 Base Color.png new file mode 100644 index 00000000000..3b51cba108f Binary files /dev/null and b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/065_2D_Lights_SkinMesh/Rabbit/textures/baseMat.001 Base Color.png differ diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/065_2D_Lights_SkinMesh/Rabbit/textures/baseMat.001 Base Color.png.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/065_2D_Lights_SkinMesh/Rabbit/textures/baseMat.001 Base Color.png.meta new file mode 100644 index 00000000000..5669b70fb99 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/065_2D_Lights_SkinMesh/Rabbit/textures/baseMat.001 Base Color.png.meta @@ -0,0 +1,208 @@ +fileFormatVersion: 2 +guid: 106c5cc4c76c646dea6d654713640294 +TextureImporter: + internalIDToNameTable: + - first: + 213: -7393405560883144865 + second: baseMat.001 Base Color_0 + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 2 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 4 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: CloudRendering + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Switch + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: GameCoreXboxOne + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: GameCoreScarlett + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: + - serializedVersion: 2 + name: baseMat.001 Base Color_0 + rect: + serializedVersion: 2 + x: 0 + y: 0 + width: 4096 + height: 4096 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: -1 + bones: [] + spriteID: f57992770d8556990800000000000000 + internalID: -7393405560883144865 + vertices: [] + indices: + edges: [] + weights: [] + outline: [] + customData: + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: [] + nameFileIdTable: + baseMat.001 Base Color_0: -7393405560883144865 + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/065_2D_Lights_SkinMesh/prefabs.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/065_2D_Lights_SkinMesh/prefabs.meta new file mode 100644 index 00000000000..40a1775275b --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/065_2D_Lights_SkinMesh/prefabs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: cbb0c2241d67a0547a4e6c12ebdacd7a +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/065_2D_Lights_SkinMesh/prefabs/Player.prefab b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/065_2D_Lights_SkinMesh/prefabs/Player.prefab new file mode 100644 index 00000000000..cb0b633d9b6 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/065_2D_Lights_SkinMesh/prefabs/Player.prefab @@ -0,0 +1,366 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &3676411556188011445 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4089589904225066195} + m_Layer: 0 + m_Name: Player + m_TagString: Player + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4089589904225066195 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3676411556188011445} + 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: 2451548672782375468} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &5088153130046533475 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5802010322089642880} + m_Layer: 0 + m_Name: GameObject + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5802010322089642880 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5088153130046533475} + 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: 162702002513768937} + m_Father: {fileID: 2451548672782375468} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &7154526518983292843 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2451548672782375468} + m_Layer: 0 + m_Name: ModelHolder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2451548672782375468 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7154526518983292843} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: -0.3420201, z: 0, w: 0.9396927} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 5802010322089642880} + m_Father: {fileID: 4089589904225066195} + m_LocalEulerAnglesHint: {x: 0, y: -40, z: 0} +--- !u!1001 &7266712863267315441 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 5802010322089642880} + m_Modifications: + - target: {fileID: 2588373538745142972, guid: e277024fb90a14f01bcf8eff8a7ae2ca, type: 3} + propertyPath: 'm_Materials.Array.data[0]' + value: + objectReference: {fileID: 2100000, guid: 139e40328161f419cbb87a46bbe05c4b, type: 2} + - target: {fileID: 3493289824497005922, guid: e277024fb90a14f01bcf8eff8a7ae2ca, type: 3} + propertyPath: m_Controller + value: + objectReference: {fileID: 9100000, guid: 2d7b1e5c4ab7f4bc7bc7abf2aa661718, type: 2} + - target: {fileID: 3493289824497005922, guid: e277024fb90a14f01bcf8eff8a7ae2ca, type: 3} + propertyPath: m_ApplyRootMotion + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3837926544611883733, guid: e277024fb90a14f01bcf8eff8a7ae2ca, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4454815228538954372, guid: e277024fb90a14f01bcf8eff8a7ae2ca, type: 3} + propertyPath: 'm_Materials.Array.data[0]' + value: + objectReference: {fileID: 2100000, guid: 139e40328161f419cbb87a46bbe05c4b, type: 2} + - target: {fileID: 4694871494070160037, guid: e277024fb90a14f01bcf8eff8a7ae2ca, type: 3} + propertyPath: 'm_Materials.Array.data[0]' + value: + objectReference: {fileID: 2100000, guid: a166853b72a73457083eadd61644515d, type: 2} + - target: {fileID: 5873819048351268437, guid: e277024fb90a14f01bcf8eff8a7ae2ca, type: 3} + propertyPath: 'm_Materials.Array.data[0]' + value: + objectReference: {fileID: 2100000, guid: a166853b72a73457083eadd61644515d, type: 2} + - target: {fileID: 6770068498251534610, guid: e277024fb90a14f01bcf8eff8a7ae2ca, type: 3} + propertyPath: 'm_Materials.Array.data[0]' + value: + objectReference: {fileID: 2100000, guid: 139e40328161f419cbb87a46bbe05c4b, type: 2} + - target: {fileID: 6938047261547499960, guid: e277024fb90a14f01bcf8eff8a7ae2ca, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: -19.444933 + objectReference: {fileID: 0} + - target: {fileID: 6938047261547499960, guid: e277024fb90a14f01bcf8eff8a7ae2ca, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: -179.99998 + objectReference: {fileID: 0} + - target: {fileID: 6938047261547499960, guid: e277024fb90a14f01bcf8eff8a7ae2ca, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 179.99998 + objectReference: {fileID: 0} + - target: {fileID: 7393367160705036056, guid: e277024fb90a14f01bcf8eff8a7ae2ca, type: 3} + propertyPath: m_LocalScale.x + value: 1.4224392 + objectReference: {fileID: 0} + - target: {fileID: 7393367160705036056, guid: e277024fb90a14f01bcf8eff8a7ae2ca, type: 3} + propertyPath: m_LocalScale.y + value: 1.4224392 + objectReference: {fileID: 0} + - target: {fileID: 7393367160705036056, guid: e277024fb90a14f01bcf8eff8a7ae2ca, type: 3} + propertyPath: m_LocalScale.z + value: 1.4224392 + objectReference: {fileID: 0} + - target: {fileID: 7393367160705036056, guid: e277024fb90a14f01bcf8eff8a7ae2ca, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7393367160705036056, guid: e277024fb90a14f01bcf8eff8a7ae2ca, type: 3} + propertyPath: m_LocalPosition.y + value: -0.5 + objectReference: {fileID: 0} + - target: {fileID: 7393367160705036056, guid: e277024fb90a14f01bcf8eff8a7ae2ca, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7393367160705036056, guid: e277024fb90a14f01bcf8eff8a7ae2ca, type: 3} + propertyPath: m_LocalRotation.w + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7393367160705036056, guid: e277024fb90a14f01bcf8eff8a7ae2ca, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 7393367160705036056, guid: e277024fb90a14f01bcf8eff8a7ae2ca, type: 3} + propertyPath: m_LocalRotation.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7393367160705036056, guid: e277024fb90a14f01bcf8eff8a7ae2ca, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 7393367160705036056, guid: e277024fb90a14f01bcf8eff8a7ae2ca, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7393367160705036056, guid: e277024fb90a14f01bcf8eff8a7ae2ca, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 180 + objectReference: {fileID: 0} + - target: {fileID: 7393367160705036056, guid: e277024fb90a14f01bcf8eff8a7ae2ca, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7913199402811717026, guid: e277024fb90a14f01bcf8eff8a7ae2ca, type: 3} + propertyPath: m_Name + value: Prefab_rabbit + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: + - targetCorrespondingSourceObject: {fileID: 2766357319078520933, guid: e277024fb90a14f01bcf8eff8a7ae2ca, type: 3} + insertIndex: -1 + addedObject: {fileID: 7735187074982730714} + - targetCorrespondingSourceObject: {fileID: 4830898078375414683, guid: e277024fb90a14f01bcf8eff8a7ae2ca, type: 3} + insertIndex: -1 + addedObject: {fileID: 6792582408273345432} + - targetCorrespondingSourceObject: {fileID: 122407450279352721, guid: e277024fb90a14f01bcf8eff8a7ae2ca, type: 3} + insertIndex: -1 + addedObject: {fileID: 2088253541290387654} + - targetCorrespondingSourceObject: {fileID: 7170282566175304951, guid: e277024fb90a14f01bcf8eff8a7ae2ca, type: 3} + insertIndex: -1 + addedObject: {fileID: 6874618301287306084} + - targetCorrespondingSourceObject: {fileID: 5184409598782005531, guid: e277024fb90a14f01bcf8eff8a7ae2ca, type: 3} + insertIndex: -1 + addedObject: {fileID: 4408175828972516724} + - targetCorrespondingSourceObject: {fileID: 6684387207265406333, guid: e277024fb90a14f01bcf8eff8a7ae2ca, type: 3} + insertIndex: -1 + addedObject: {fileID: 8808322202932438128} + m_SourcePrefab: {fileID: 100100000, guid: e277024fb90a14f01bcf8eff8a7ae2ca, type: 3} +--- !u!4 &162702002513768937 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 7393367160705036056, guid: e277024fb90a14f01bcf8eff8a7ae2ca, type: 3} + m_PrefabInstance: {fileID: 7266712863267315441} + m_PrefabAsset: {fileID: 0} +--- !u!1 &529589499924148742 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 7170282566175304951, guid: e277024fb90a14f01bcf8eff8a7ae2ca, type: 3} + m_PrefabInstance: {fileID: 7266712863267315441} + m_PrefabAsset: {fileID: 0} +--- !u!114 &6874618301287306084 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 529589499924148742} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ccc2b9cce089845138ffc162ca0cbb22, type: 3} + m_Name: + m_EditorClassIdentifier: + springForce: 80 + damping: 7 + maxAngle: 183.7 + velocityThreshold: 0.05 + responsiveness: 7.43 +--- !u!1 &2533896937519300586 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 5184409598782005531, guid: e277024fb90a14f01bcf8eff8a7ae2ca, type: 3} + m_PrefabInstance: {fileID: 7266712863267315441} + m_PrefabAsset: {fileID: 0} +--- !u!114 &4408175828972516724 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2533896937519300586} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ccc2b9cce089845138ffc162ca0cbb22, type: 3} + m_Name: + m_EditorClassIdentifier: + springForce: 80 + damping: 7 + maxAngle: 183.7 + velocityThreshold: 0.05 + responsiveness: 7.43 +--- !u!1 &2869427295756506474 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 4830898078375414683, guid: e277024fb90a14f01bcf8eff8a7ae2ca, type: 3} + m_PrefabInstance: {fileID: 7266712863267315441} + m_PrefabAsset: {fileID: 0} +--- !u!114 &6792582408273345432 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2869427295756506474} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ccc2b9cce089845138ffc162ca0cbb22, type: 3} + m_Name: + m_EditorClassIdentifier: + springForce: 80 + damping: 7 + maxAngle: 183.7 + velocityThreshold: 0.05 + responsiveness: 7.43 +--- !u!1 &4042889303845966732 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 6684387207265406333, guid: e277024fb90a14f01bcf8eff8a7ae2ca, type: 3} + m_PrefabInstance: {fileID: 7266712863267315441} + m_PrefabAsset: {fileID: 0} +--- !u!114 &8808322202932438128 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4042889303845966732} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ccc2b9cce089845138ffc162ca0cbb22, type: 3} + m_Name: + m_EditorClassIdentifier: + springForce: 80 + damping: 7 + maxAngle: 183.7 + velocityThreshold: 0.05 + responsiveness: 7.43 +--- !u!1 &4808893917694359188 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 2766357319078520933, guid: e277024fb90a14f01bcf8eff8a7ae2ca, type: 3} + m_PrefabInstance: {fileID: 7266712863267315441} + m_PrefabAsset: {fileID: 0} +--- !u!114 &7735187074982730714 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4808893917694359188} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ccc2b9cce089845138ffc162ca0cbb22, type: 3} + m_Name: + m_EditorClassIdentifier: + springForce: 80 + damping: 7 + maxAngle: 183.7 + velocityThreshold: 0.05 + responsiveness: 7.43 +--- !u!1 &7307772317500458848 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 122407450279352721, guid: e277024fb90a14f01bcf8eff8a7ae2ca, type: 3} + m_PrefabInstance: {fileID: 7266712863267315441} + m_PrefabAsset: {fileID: 0} +--- !u!114 &2088253541290387654 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7307772317500458848} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ccc2b9cce089845138ffc162ca0cbb22, type: 3} + m_Name: + m_EditorClassIdentifier: + springForce: 80 + damping: 7 + maxAngle: 183.7 + velocityThreshold: 0.05 + responsiveness: 7.43 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/065_2D_Lights_SkinMesh/prefabs/Player.prefab.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/065_2D_Lights_SkinMesh/prefabs/Player.prefab.meta new file mode 100644 index 00000000000..c699820ad56 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/065_2D_Lights_SkinMesh/prefabs/Player.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 9b40ed50f44de45b19eb4780897e047c +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Test/Runtime/Renderer2DTests.cs b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Test/Runtime/Renderer2DTests.cs index dc9d06d192e..bdcf0366b2e 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Test/Runtime/Renderer2DTests.cs +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Test/Runtime/Renderer2DTests.cs @@ -53,9 +53,9 @@ public void BaseRendererDoesNotCreateRenderTexturesIfStackIsEmpty() if (UnityEngine.Rendering.XRGraphicsAutomatedTests.enabled) return; - Assert.IsFalse(baseRenderer.createColorTexture); + Assert.IsFalse(baseRenderer.m_CreateColorTexture); - Assert.IsFalse(baseRenderer.createDepthTexture); + Assert.IsFalse(baseRenderer.m_CreateDepthTexture); } [Test] @@ -67,9 +67,9 @@ public void BaseRendererCreatesRenderTexturesIfStackIsNotEmpty() Renderer2D baseRenderer = m_BaseCameraData.scriptableRenderer as Renderer2D; - Assert.IsTrue(baseRenderer.createColorTexture); + Assert.IsTrue(baseRenderer.m_CreateColorTexture); - Assert.IsTrue(baseRenderer.createDepthTexture); + Assert.IsTrue(baseRenderer.m_CreateDepthTexture); } [Test] @@ -81,9 +81,9 @@ public void BaseRendererUsesSeparateDepthAttachmentFromColorTextureIfNoDepthSten Renderer2D baseRenderer = m_BaseCameraData.scriptableRenderer as Renderer2D; - Assert.IsTrue(baseRenderer.createColorTexture); + Assert.IsTrue(baseRenderer.m_CreateColorTexture); - Assert.IsTrue(baseRenderer.createDepthTexture); + Assert.IsTrue(baseRenderer.m_CreateDepthTexture); } [Test] @@ -96,8 +96,13 @@ public void OverlayRendererUsesRenderTexturesFromBase() Renderer2D baseRenderer = m_BaseCameraData.scriptableRenderer as Renderer2D; Renderer2D overlayRenderer = m_OverlayCameraData.scriptableRenderer as Renderer2D; +#if URP_COMPATIBILITY_MODE Assert.AreEqual(baseRenderer.m_ColorTextureHandle, overlayRenderer.m_ColorTextureHandle); Assert.AreEqual(baseRenderer.m_DepthTextureHandle, overlayRenderer.m_DepthTextureHandle); +#else + Assert.AreEqual(baseRenderer.m_RenderGraphCameraColorHandles, overlayRenderer.m_RenderGraphCameraColorHandles); + Assert.AreEqual(baseRenderer.m_RenderGraphCameraDepthHandle, overlayRenderer.m_RenderGraphCameraDepthHandle); +#endif } [Test] @@ -109,8 +114,8 @@ public void OverlayRendererSetsTheCreateTextureFlags() Renderer2D overlayRenderer = m_OverlayCameraData.scriptableRenderer as Renderer2D; - Assert.IsTrue(overlayRenderer.createColorTexture); - Assert.IsTrue(overlayRenderer.createDepthTexture); + Assert.IsTrue(overlayRenderer.m_CreateColorTexture); + Assert.IsTrue(overlayRenderer.m_CreateDepthTexture); } [Test] diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Test/Runtime/TilemapRenderer2DTests.cs b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Test/Runtime/TilemapRenderer2DTests.cs index 6895693377c..f8bf5b55c63 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Test/Runtime/TilemapRenderer2DTests.cs +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Test/Runtime/TilemapRenderer2DTests.cs @@ -207,6 +207,9 @@ public IEnumerator TilemapRenderer_IndividualMode_WithSameSpriteRenderers_SRPBat Assert.Greater(UnityStats.drawCalls, 0); } +#if UNITY_EDITOR_OSX + [Ignore("UUM-110269")] +#endif [UnityTest] public IEnumerator TilemapRenderer_IndividualMode_WithSameSpriteRenderers_DynamicBatched_SingleBatchDrawCall() { diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Packages/manifest.json b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Packages/manifest.json index 5c177b18c58..43cbfd85e37 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Packages/manifest.json +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Packages/manifest.json @@ -13,7 +13,6 @@ "com.unity.render-pipelines.universal": "file:../../../../../Packages/com.unity.render-pipelines.universal", "com.unity.render-pipelines.universal-config": "file:../../../../../Packages/com.unity.render-pipelines.universal-config", "com.unity.shadergraph": "file:../../../../../Packages/com.unity.shadergraph", - "com.unity.rendering.light-transport": "file:../../../../../Packages/com.unity.rendering.light-transport", "com.unity.testing.urp": "file:../../../Packages/com.unity.testing.urp", "com.unity.testing.common-graphics": "file:../../../Packages/com.unity.testing.common-graphics", "com.unity.visualeffectgraph": "file:../../../../../Packages/com.unity.visualeffectgraph", diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/ProjectSettings/ProjectSettings.asset b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/ProjectSettings/ProjectSettings.asset index de123da3aff..a961d1e30d5 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/ProjectSettings/ProjectSettings.asset +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/ProjectSettings/ProjectSettings.asset @@ -816,23 +816,15 @@ PlayerSettings: webGLMemoryGeometricGrowthCap: 96 webGLPowerPreference: 2 scriptingDefineSymbols: - Android: LWRP_DEBUG_STATIC_POSTFX;URP_COMPATIBILITY_MODE - EmbeddedLinux: URP_COMPATIBILITY_MODE - GameCoreScarlett: URP_COMPATIBILITY_MODE - GameCoreXboxOne: URP_COMPATIBILITY_MODE - Kepler: URP_COMPATIBILITY_MODE - Nintendo Switch: LWRP_DEBUG_STATIC_POSTFX;URP_COMPATIBILITY_MODE - PS4: LWRP_DEBUG_STATIC_POSTFX;URP_COMPATIBILITY_MODE - PS5: URP_COMPATIBILITY_MODE - QNX: URP_COMPATIBILITY_MODE - ReservedCFE: URP_COMPATIBILITY_MODE - Standalone: LWRP_DEBUG_STATIC_POSTFX;URP_COMPATIBILITY_MODE - VisionOS: URP_COMPATIBILITY_MODE - WebGL: LWRP_DEBUG_STATIC_POSTFX;URP_COMPATIBILITY_MODE - Windows Store Apps: LWRP_DEBUG_STATIC_POSTFX;URP_COMPATIBILITY_MODE - XboxOne: LWRP_DEBUG_STATIC_POSTFX;URP_COMPATIBILITY_MODE - iPhone: LWRP_DEBUG_STATIC_POSTFX;URP_COMPATIBILITY_MODE - tvOS: LWRP_DEBUG_STATIC_POSTFX;URP_COMPATIBILITY_MODE + Android: LWRP_DEBUG_STATIC_POSTFX + Nintendo Switch: LWRP_DEBUG_STATIC_POSTFX + PS4: LWRP_DEBUG_STATIC_POSTFX + Standalone: LWRP_DEBUG_STATIC_POSTFX + WebGL: LWRP_DEBUG_STATIC_POSTFX + Windows Store Apps: LWRP_DEBUG_STATIC_POSTFX + XboxOne: LWRP_DEBUG_STATIC_POSTFX + iPhone: LWRP_DEBUG_STATIC_POSTFX + tvOS: LWRP_DEBUG_STATIC_POSTFX additionalCompilerArguments: {} platformArchitecture: {} scriptingBackend: {} diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/CeramicTiles.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/CeramicTiles.mat index ddfec358aa5..e3aaa29528f 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/CeramicTiles.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/CeramicTiles.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -152,3 +152,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/Challenge-Brick.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/Challenge-Brick.mat index 350325a8790..c452635b2fd 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/Challenge-Brick.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/Challenge-Brick.mat @@ -140,6 +140,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &2253018316625577987 MonoBehaviour: m_ObjectHideFlags: 11 @@ -152,4 +153,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/Hole_mesh.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/Hole_mesh.mat index 49ecc2452eb..fcebb1555c5 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/Hole_mesh.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/Hole_mesh.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -154,3 +154,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/Hole_mesh_cutout.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/Hole_mesh_cutout.mat index f76c2a22acb..2f6401919e2 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/Hole_mesh_cutout.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/Hole_mesh_cutout.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -133,3 +133,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/IndustrialGlass.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/IndustrialGlass.mat index 211b870635d..d9b96355af5 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/IndustrialGlass.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/IndustrialGlass.mat @@ -142,6 +142,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &1816354734817690348 MonoBehaviour: m_ObjectHideFlags: 11 @@ -154,4 +155,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_Diffuse.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_Diffuse.mat index 3e88dce47cf..7f4e609ad3e 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_Diffuse.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_Diffuse.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -123,3 +123,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_DiffuseParticles.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_DiffuseParticles.mat index a801aee47c7..508beb00684 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_DiffuseParticles.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_DiffuseParticles.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -132,3 +132,4 @@ Material: - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_DiffuseParticlesWithTexture.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_DiffuseParticlesWithTexture.mat index 51ba59519df..96be60f9f5b 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_DiffuseParticlesWithTexture.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_DiffuseParticlesWithTexture.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -132,3 +132,4 @@ Material: - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} - _SpecColor: {r: 0.45641106, g: 0.45641106, b: 0.45641106, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_DiffuseTransparent.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_DiffuseTransparent.mat index dc1ea0cea00..afa9f58253b 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_DiffuseTransparent.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_DiffuseTransparent.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -125,3 +125,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_DiffuseTransparentParticles.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_DiffuseTransparentParticles.mat index d73811a3d05..25f33082bb7 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_DiffuseTransparentParticles.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_DiffuseTransparentParticles.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -139,3 +139,4 @@ Material: - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_DiffuseTransparentParticlesWithTexture.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_DiffuseTransparentParticlesWithTexture.mat index 4d3e4a7268a..8e89e919506 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_DiffuseTransparentParticlesWithTexture.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_DiffuseTransparentParticlesWithTexture.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -139,3 +139,4 @@ Material: - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_DiffuseTransparentWithTexture.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_DiffuseTransparentWithTexture.mat index 5875fa8d416..80a3bcbb3d1 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_DiffuseTransparentWithTexture.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_DiffuseTransparentWithTexture.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -125,3 +125,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_DiffuseUnlit.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_DiffuseUnlit.mat index f77259083c4..76cfb62bd86 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_DiffuseUnlit.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_DiffuseUnlit.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -122,3 +122,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_DiffuseUnlitParticlesTransparentWithTexture.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_DiffuseUnlitParticlesTransparentWithTexture.mat index 1abd433b5ef..cd6172703c7 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_DiffuseUnlitParticlesTransparentWithTexture.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_DiffuseUnlitParticlesTransparentWithTexture.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -143,3 +143,4 @@ Material: - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} - _SpecColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_DiffuseUnlitParticlesWithTexture.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_DiffuseUnlitParticlesWithTexture.mat index 500be379a82..235cf10bd7a 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_DiffuseUnlitParticlesWithTexture.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_DiffuseUnlitParticlesWithTexture.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -136,3 +136,4 @@ Material: - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} - _SpecColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_DiffuseUnlitShaderGraph.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_DiffuseUnlitShaderGraph.mat index 51b5164cc34..a3042b30eb7 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_DiffuseUnlitShaderGraph.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_DiffuseUnlitShaderGraph.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -132,3 +132,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_DiffuseUnlitTransparentWithTexture.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_DiffuseUnlitTransparentWithTexture.mat index 91b1deb69a6..23a22ab35bf 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_DiffuseUnlitTransparentWithTexture.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_DiffuseUnlitTransparentWithTexture.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -125,3 +125,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_DiffuseUnlitWithTexture.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_DiffuseUnlitWithTexture.mat index eb3d163cda1..4992eb5df84 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_DiffuseUnlitWithTexture.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_DiffuseUnlitWithTexture.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -122,3 +122,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_DiffuseWithTexture.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_DiffuseWithTexture.mat index 457836a29a1..2abfd8d76ba 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_DiffuseWithTexture.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_DiffuseWithTexture.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -121,3 +121,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_Material.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_Material.mat index fd2870a4a6c..de282c736b2 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_Material.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_Material.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -137,3 +137,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_MaterialParticles.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_MaterialParticles.mat index b627b67b4bc..bcaff4b6345 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_MaterialParticles.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_MaterialParticles.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -134,3 +134,4 @@ Material: - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_MaterialParticlesWithTexture.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_MaterialParticlesWithTexture.mat index b5d23855771..5cb91382277 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_MaterialParticlesWithTexture.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_MaterialParticlesWithTexture.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -134,3 +134,4 @@ Material: - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_MaterialShaderGraph.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_MaterialShaderGraph.mat index e9009f44c46..c76924e2e7c 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_MaterialShaderGraph.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_MaterialShaderGraph.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -127,3 +127,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_MaterialTransparent.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_MaterialTransparent.mat index 9d050501b0b..89fd424d37e 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_MaterialTransparent.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_MaterialTransparent.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -140,3 +140,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_MaterialTransparentParticles.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_MaterialTransparentParticles.mat index 5eefa27b880..8d6d5384af7 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_MaterialTransparentParticles.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_MaterialTransparentParticles.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -137,3 +137,4 @@ Material: - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_MaterialTransparentParticlesWithTexture.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_MaterialTransparentParticlesWithTexture.mat index be363cca6cf..1b0df5bd86a 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_MaterialTransparentParticlesWithTexture.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_MaterialTransparentParticlesWithTexture.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -137,3 +137,4 @@ Material: - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_MaterialTransparentShaderGraph.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_MaterialTransparentShaderGraph.mat index 2b5c419603f..81a76aeff98 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_MaterialTransparentShaderGraph.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_MaterialTransparentShaderGraph.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -127,3 +127,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_MaterialTransparentWithTexture.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_MaterialTransparentWithTexture.mat index 28dd921d13f..973aa5e4a75 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_MaterialTransparentWithTexture.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_MaterialTransparentWithTexture.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -141,3 +141,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_MaterialWithTexture.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_MaterialWithTexture.mat index 0bfb0afd872..37c8738ab21 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_MaterialWithTexture.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/LW_MaterialWithTexture.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -137,3 +137,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/PW_WoodLog.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/PW_WoodLog.mat index 78f00635c6e..4a6e192f97d 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/PW_WoodLog.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/PW_WoodLog.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -152,3 +152,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/PyramidsWall-v01.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/PyramidsWall-v01.mat index ac3f807b95c..ef5d1a2918c 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/PyramidsWall-v01.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/PyramidsWall-v01.mat @@ -98,7 +98,9 @@ Material: m_Offset: {x: 0, y: 0} m_Ints: [] m_Floats: + - _AddPrecomputedVelocity: 0 - _AlphaClip: 0 + - _AlphaToMask: 0 - _Blend: 0 - _BlendModePreserveSpecular: 1 - _BumpScale: 1 @@ -133,6 +135,7 @@ Material: - _Surface: 0 - _UVSec: 0 - _WorkflowMode: 1 + - _XRMotionVectorsPass: 1 - _ZWrite: 1 m_Colors: - _BaseColor: {r: 1, g: 1, b: 1, a: 1} @@ -140,6 +143,7 @@ Material: - _EmissionColor: {r: 4.594794, g: 4.594794, b: 4.594794, a: 1} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &4097738520251698563 MonoBehaviour: m_ObjectHideFlags: 11 @@ -152,4 +156,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/Roofing.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/Roofing.mat index 4c7f2df533c..edabe9ce025 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/Roofing.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/Roofing.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -153,3 +153,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/ShoreRockSand.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/ShoreRockSand.mat index a1bb2b3a10e..0347d55d87f 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/ShoreRockSand.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/ShoreRockSand.mat @@ -140,6 +140,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &329385301596340264 MonoBehaviour: m_ObjectHideFlags: 11 @@ -152,4 +153,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/UnlitColor.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/UnlitColor.mat index 3b1a282f9fc..8e466bfa8eb 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/UnlitColor.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/UnlitColor.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -99,3 +99,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/bark.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/bark.mat index 2099085dbde..5fce43acfb4 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/bark.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/bark.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -153,3 +153,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/herringbone_brick_floor.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/herringbone_brick_floor.mat index 148eb3be922..ed54e93f2b8 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/herringbone_brick_floor.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/herringbone_brick_floor.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -153,3 +153,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/metal_aluminium_directional.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/metal_aluminium_directional.mat index 1b299799ce9..142656eae36 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/metal_aluminium_directional.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/metal_aluminium_directional.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -153,3 +153,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/metal_brushed_copper.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/metal_brushed_copper.mat index efdcc1e2750..3c004d41481 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/metal_brushed_copper.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/metal_brushed_copper.mat @@ -140,6 +140,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &7345119257614298518 MonoBehaviour: m_ObjectHideFlags: 11 @@ -152,4 +153,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/red_paint.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/red_paint.mat index c17eb6a6bf1..619e3d08af7 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/red_paint.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/red_paint.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -152,3 +152,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/rocks_dirt_ground.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/rocks_dirt_ground.mat index fe28bf58770..4388767c815 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/rocks_dirt_ground.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Materials/rocks_dirt_ground.mat @@ -140,6 +140,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &1263833708553139920 MonoBehaviour: m_ObjectHideFlags: 11 @@ -152,4 +153,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Meshes/Adam/Materials/Crowd_LOD0_Mat_Limbs_metallic.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Meshes/Adam/Materials/Crowd_LOD0_Mat_Limbs_metallic.mat index 4a2b26a3797..f1237cdd8b4 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Meshes/Adam/Materials/Crowd_LOD0_Mat_Limbs_metallic.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Meshes/Adam/Materials/Crowd_LOD0_Mat_Limbs_metallic.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -145,3 +145,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Meshes/Adam/Materials/Crowd_LOD0_Mat_Limbs_spec.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Meshes/Adam/Materials/Crowd_LOD0_Mat_Limbs_spec.mat index 4a30c8336c7..a3e1da1d18f 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Meshes/Adam/Materials/Crowd_LOD0_Mat_Limbs_spec.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Meshes/Adam/Materials/Crowd_LOD0_Mat_Limbs_spec.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -146,3 +146,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Meshes/Adam/Materials/Crowd_LOD0_Mat_Torso_metallic.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Meshes/Adam/Materials/Crowd_LOD0_Mat_Torso_metallic.mat index bf43020d1eb..dd908715dc4 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Meshes/Adam/Materials/Crowd_LOD0_Mat_Torso_metallic.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Meshes/Adam/Materials/Crowd_LOD0_Mat_Torso_metallic.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -108,7 +108,9 @@ Material: m_Offset: {x: 0, y: 0} m_Ints: [] m_Floats: + - _AddPrecomputedVelocity: 0 - _AlphaClip: 0 + - _AlphaToMask: 0 - _Blend: 0 - _BlendModePreserveSpecular: 1 - _BumpScale: 1 @@ -139,6 +141,7 @@ Material: - _Surface: 0 - _UVSec: 0 - _WorkflowMode: 1 + - _XRMotionVectorsPass: 1 - _ZWrite: 1 m_Colors: - _BaseColor: {r: 1, g: 1, b: 1, a: 1} @@ -146,3 +149,4 @@ Material: - _EmissionColor: {r: 0.120834544, g: 0.73353785, b: 1, a: 1} - _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Meshes/Adam/Materials/Crowd_LOD0_Mat_Torso_spec.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Meshes/Adam/Materials/Crowd_LOD0_Mat_Torso_spec.mat index ae2167f0756..89bd120f9ca 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Meshes/Adam/Materials/Crowd_LOD0_Mat_Torso_spec.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Meshes/Adam/Materials/Crowd_LOD0_Mat_Torso_spec.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -109,7 +109,9 @@ Material: m_Offset: {x: 0, y: 0} m_Ints: [] m_Floats: + - _AddPrecomputedVelocity: 0 - _AlphaClip: 0 + - _AlphaToMask: 0 - _Blend: 0 - _BlendModePreserveSpecular: 1 - _BumpScale: 1 @@ -140,6 +142,7 @@ Material: - _Surface: 0 - _UVSec: 0 - _WorkflowMode: 0 + - _XRMotionVectorsPass: 1 - _ZWrite: 1 m_Colors: - _BaseColor: {r: 1, g: 1, b: 1, a: 1} @@ -147,3 +150,4 @@ Material: - _EmissionColor: {r: 0.120834544, g: 0.73353785, b: 1, a: 1} - _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Meshes/PBRSpheres/PBRtest_Spec.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Meshes/PBRSpheres/PBRtest_Spec.mat index 4aa18a0efb0..2dcdbebeb4c 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Meshes/PBRSpheres/PBRtest_Spec.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Meshes/PBRSpheres/PBRtest_Spec.mat @@ -131,6 +131,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &214017953261494582 MonoBehaviour: m_ObjectHideFlags: 11 @@ -143,4 +144,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Meshes/PBRSpheres/PBRtest_met.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Meshes/PBRSpheres/PBRtest_met.mat index b1b464dae66..e2a95c6b0ce 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Meshes/PBRSpheres/PBRtest_met.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/Meshes/PBRSpheres/PBRtest_met.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -143,3 +143,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Floor.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Floor.mat index d4ed1c6b0a5..73034a20757 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Floor.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Floor.mat @@ -183,4 +183,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ComplexLit_Opaque.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ComplexLit_Opaque.mat index ee0b0543922..6ef9edb7659 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ComplexLit_Opaque.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ComplexLit_Opaque.mat @@ -20,7 +20,8 @@ Material: m_CustomRenderQueue: 2000 stringTagMap: RenderType: Opaque - disabledShaderPasses: [] + disabledShaderPasses: + - MOTIONVECTORS m_LockedProperties: m_SavedProperties: serializedVersion: 3 @@ -157,6 +158,7 @@ Material: - _TwoSided: 2 - _WindQuality: 0 - _WorkflowMode: 1 + - _XRMotionVectorsPass: 1 - _ZWrite: 1 m_Colors: - _BaseColor: {r: 1, g: 1, b: 1, a: 1} @@ -183,4 +185,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ComplexLit_Opaque_AlphaClipped.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ComplexLit_Opaque_AlphaClipped.mat index 2d2506ec2fb..9404b6a6d45 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ComplexLit_Opaque_AlphaClipped.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ComplexLit_Opaque_AlphaClipped.mat @@ -21,7 +21,8 @@ Material: m_CustomRenderQueue: 2450 stringTagMap: RenderType: TransparentCutout - disabledShaderPasses: [] + disabledShaderPasses: + - MOTIONVECTORS m_LockedProperties: m_SavedProperties: serializedVersion: 3 @@ -158,6 +159,7 @@ Material: - _TwoSided: 2 - _WindQuality: 0 - _WorkflowMode: 1 + - _XRMotionVectorsPass: 1 - _ZWrite: 1 m_Colors: - _BaseColor: {r: 1, g: 1, b: 1, a: 1} @@ -184,4 +186,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ComplexLit_Opaque_AlphaClippedDetail.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ComplexLit_Opaque_AlphaClippedDetail.mat index c4266ac312f..f9407785df1 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ComplexLit_Opaque_AlphaClippedDetail.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ComplexLit_Opaque_AlphaClippedDetail.mat @@ -22,7 +22,8 @@ Material: m_CustomRenderQueue: 2450 stringTagMap: RenderType: TransparentCutout - disabledShaderPasses: [] + disabledShaderPasses: + - MOTIONVECTORS m_LockedProperties: m_SavedProperties: serializedVersion: 3 @@ -159,6 +160,7 @@ Material: - _TwoSided: 2 - _WindQuality: 0 - _WorkflowMode: 1 + - _XRMotionVectorsPass: 1 - _ZWrite: 1 m_Colors: - _BaseColor: {r: 1, g: 1, b: 1, a: 1} @@ -185,4 +187,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ComplexLit_Opaque_AlphaClippedDetailParallax.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ComplexLit_Opaque_AlphaClippedDetailParallax.mat index b0f627a0703..8bd4aeca396 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ComplexLit_Opaque_AlphaClippedDetailParallax.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ComplexLit_Opaque_AlphaClippedDetailParallax.mat @@ -23,7 +23,8 @@ Material: m_CustomRenderQueue: 2450 stringTagMap: RenderType: TransparentCutout - disabledShaderPasses: [] + disabledShaderPasses: + - MOTIONVECTORS m_LockedProperties: m_SavedProperties: serializedVersion: 3 @@ -160,6 +161,7 @@ Material: - _TwoSided: 2 - _WindQuality: 0 - _WorkflowMode: 1 + - _XRMotionVectorsPass: 1 - _ZWrite: 1 m_Colors: - _BaseColor: {r: 1, g: 1, b: 1, a: 1} @@ -186,4 +188,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ComplexLit_Opaque_AlphaClippedNormal.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ComplexLit_Opaque_AlphaClippedNormal.mat index 17a6947b322..c318d6b1fc4 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ComplexLit_Opaque_AlphaClippedNormal.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ComplexLit_Opaque_AlphaClippedNormal.mat @@ -22,7 +22,8 @@ Material: m_CustomRenderQueue: 2450 stringTagMap: RenderType: TransparentCutout - disabledShaderPasses: [] + disabledShaderPasses: + - MOTIONVECTORS m_LockedProperties: m_SavedProperties: serializedVersion: 3 @@ -159,6 +160,7 @@ Material: - _TwoSided: 2 - _WindQuality: 0 - _WorkflowMode: 1 + - _XRMotionVectorsPass: 1 - _ZWrite: 1 m_Colors: - _BaseColor: {r: 1, g: 1, b: 1, a: 1} @@ -185,4 +187,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ComplexLit_Opaque_AlphaClippedNormalDetail.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ComplexLit_Opaque_AlphaClippedNormalDetail.mat index 2f14e4b86f9..5bbf28b605d 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ComplexLit_Opaque_AlphaClippedNormalDetail.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ComplexLit_Opaque_AlphaClippedNormalDetail.mat @@ -23,7 +23,8 @@ Material: m_CustomRenderQueue: 2450 stringTagMap: RenderType: TransparentCutout - disabledShaderPasses: [] + disabledShaderPasses: + - MOTIONVECTORS m_LockedProperties: m_SavedProperties: serializedVersion: 3 @@ -160,6 +161,7 @@ Material: - _TwoSided: 2 - _WindQuality: 0 - _WorkflowMode: 1 + - _XRMotionVectorsPass: 1 - _ZWrite: 1 m_Colors: - _BaseColor: {r: 1, g: 1, b: 1, a: 1} @@ -186,4 +188,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ComplexLit_Opaque_AlphaClippedNormalDetailParallax.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ComplexLit_Opaque_AlphaClippedNormalDetailParallax.mat index d1dcb14fac1..b37f219b8bd 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ComplexLit_Opaque_AlphaClippedNormalDetailParallax.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ComplexLit_Opaque_AlphaClippedNormalDetailParallax.mat @@ -24,7 +24,8 @@ Material: m_CustomRenderQueue: 2450 stringTagMap: RenderType: TransparentCutout - disabledShaderPasses: [] + disabledShaderPasses: + - MOTIONVECTORS m_LockedProperties: m_SavedProperties: serializedVersion: 3 @@ -161,6 +162,7 @@ Material: - _TwoSided: 2 - _WindQuality: 0 - _WorkflowMode: 1 + - _XRMotionVectorsPass: 1 - _ZWrite: 1 m_Colors: - _BaseColor: {r: 1, g: 1, b: 1, a: 1} @@ -187,4 +189,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ComplexLit_Opaque_AlphaClippedNormalParallax.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ComplexLit_Opaque_AlphaClippedNormalParallax.mat index dd55fc64be8..8df73fa53f6 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ComplexLit_Opaque_AlphaClippedNormalParallax.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ComplexLit_Opaque_AlphaClippedNormalParallax.mat @@ -23,7 +23,8 @@ Material: m_CustomRenderQueue: 2450 stringTagMap: RenderType: TransparentCutout - disabledShaderPasses: [] + disabledShaderPasses: + - MOTIONVECTORS m_LockedProperties: m_SavedProperties: serializedVersion: 3 @@ -160,6 +161,7 @@ Material: - _TwoSided: 2 - _WindQuality: 0 - _WorkflowMode: 1 + - _XRMotionVectorsPass: 1 - _ZWrite: 1 m_Colors: - _BaseColor: {r: 1, g: 1, b: 1, a: 1} @@ -186,4 +188,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ComplexLit_Opaque_AlphaClippedParallax.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ComplexLit_Opaque_AlphaClippedParallax.mat index c3e01ba52e3..797f3dd135c 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ComplexLit_Opaque_AlphaClippedParallax.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ComplexLit_Opaque_AlphaClippedParallax.mat @@ -22,7 +22,8 @@ Material: m_CustomRenderQueue: 2450 stringTagMap: RenderType: TransparentCutout - disabledShaderPasses: [] + disabledShaderPasses: + - MOTIONVECTORS m_LockedProperties: m_SavedProperties: serializedVersion: 3 @@ -159,6 +160,7 @@ Material: - _TwoSided: 2 - _WindQuality: 0 - _WorkflowMode: 1 + - _XRMotionVectorsPass: 1 - _ZWrite: 1 m_Colors: - _BaseColor: {r: 1, g: 1, b: 1, a: 1} @@ -185,4 +187,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ComplexLit_Opaque_Detail.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ComplexLit_Opaque_Detail.mat index 70e30d88314..ddc564c9734 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ComplexLit_Opaque_Detail.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ComplexLit_Opaque_Detail.mat @@ -21,7 +21,8 @@ Material: m_CustomRenderQueue: 2000 stringTagMap: RenderType: Opaque - disabledShaderPasses: [] + disabledShaderPasses: + - MOTIONVECTORS m_LockedProperties: m_SavedProperties: serializedVersion: 3 @@ -158,6 +159,7 @@ Material: - _TwoSided: 2 - _WindQuality: 0 - _WorkflowMode: 1 + - _XRMotionVectorsPass: 1 - _ZWrite: 1 m_Colors: - _BaseColor: {r: 1, g: 1, b: 1, a: 1} @@ -184,4 +186,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ComplexLit_Opaque_DetailParallax.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ComplexLit_Opaque_DetailParallax.mat index 332eea317a5..02d3172fec7 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ComplexLit_Opaque_DetailParallax.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ComplexLit_Opaque_DetailParallax.mat @@ -22,7 +22,8 @@ Material: m_CustomRenderQueue: 2000 stringTagMap: RenderType: Opaque - disabledShaderPasses: [] + disabledShaderPasses: + - MOTIONVECTORS m_LockedProperties: m_SavedProperties: serializedVersion: 3 @@ -159,6 +160,7 @@ Material: - _TwoSided: 2 - _WindQuality: 0 - _WorkflowMode: 1 + - _XRMotionVectorsPass: 1 - _ZWrite: 1 m_Colors: - _BaseColor: {r: 1, g: 1, b: 1, a: 1} @@ -185,4 +187,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ComplexLit_Opaque_Normal.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ComplexLit_Opaque_Normal.mat index e25d8265cf2..7fae9a79f01 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ComplexLit_Opaque_Normal.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ComplexLit_Opaque_Normal.mat @@ -21,7 +21,8 @@ Material: m_CustomRenderQueue: 2000 stringTagMap: RenderType: Opaque - disabledShaderPasses: [] + disabledShaderPasses: + - MOTIONVECTORS m_LockedProperties: m_SavedProperties: serializedVersion: 3 @@ -158,6 +159,7 @@ Material: - _TwoSided: 2 - _WindQuality: 0 - _WorkflowMode: 1 + - _XRMotionVectorsPass: 1 - _ZWrite: 1 m_Colors: - _BaseColor: {r: 1, g: 1, b: 1, a: 1} @@ -184,4 +186,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ComplexLit_Opaque_NormalDetail.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ComplexLit_Opaque_NormalDetail.mat index 11aa2b29cc5..5d7bd7d7b0c 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ComplexLit_Opaque_NormalDetail.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ComplexLit_Opaque_NormalDetail.mat @@ -22,7 +22,8 @@ Material: m_CustomRenderQueue: 2000 stringTagMap: RenderType: Opaque - disabledShaderPasses: [] + disabledShaderPasses: + - MOTIONVECTORS m_LockedProperties: m_SavedProperties: serializedVersion: 3 @@ -159,6 +160,7 @@ Material: - _TwoSided: 2 - _WindQuality: 0 - _WorkflowMode: 1 + - _XRMotionVectorsPass: 1 - _ZWrite: 1 m_Colors: - _BaseColor: {r: 1, g: 1, b: 1, a: 1} @@ -185,4 +187,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ComplexLit_Opaque_NormalDetailParallax.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ComplexLit_Opaque_NormalDetailParallax.mat index 879c5297c86..d5055601023 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ComplexLit_Opaque_NormalDetailParallax.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ComplexLit_Opaque_NormalDetailParallax.mat @@ -23,7 +23,8 @@ Material: m_CustomRenderQueue: 2000 stringTagMap: RenderType: Opaque - disabledShaderPasses: [] + disabledShaderPasses: + - MOTIONVECTORS m_LockedProperties: m_SavedProperties: serializedVersion: 3 @@ -160,6 +161,7 @@ Material: - _TwoSided: 2 - _WindQuality: 0 - _WorkflowMode: 1 + - _XRMotionVectorsPass: 1 - _ZWrite: 1 m_Colors: - _BaseColor: {r: 1, g: 1, b: 1, a: 1} @@ -186,4 +188,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ComplexLit_Opaque_NormalParallax.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ComplexLit_Opaque_NormalParallax.mat index eaf0d991c6f..6d7337c3d8a 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ComplexLit_Opaque_NormalParallax.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ComplexLit_Opaque_NormalParallax.mat @@ -22,7 +22,8 @@ Material: m_CustomRenderQueue: 2000 stringTagMap: RenderType: Opaque - disabledShaderPasses: [] + disabledShaderPasses: + - MOTIONVECTORS m_LockedProperties: m_SavedProperties: serializedVersion: 3 @@ -159,6 +160,7 @@ Material: - _TwoSided: 2 - _WindQuality: 0 - _WorkflowMode: 1 + - _XRMotionVectorsPass: 1 - _ZWrite: 1 m_Colors: - _BaseColor: {r: 1, g: 1, b: 1, a: 1} @@ -185,4 +187,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ComplexLit_Opaque_Parallax.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ComplexLit_Opaque_Parallax.mat index a034c3692f5..ba5f2ea4821 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ComplexLit_Opaque_Parallax.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ComplexLit_Opaque_Parallax.mat @@ -21,7 +21,8 @@ Material: m_CustomRenderQueue: 2000 stringTagMap: RenderType: Opaque - disabledShaderPasses: [] + disabledShaderPasses: + - MOTIONVECTORS m_LockedProperties: m_SavedProperties: serializedVersion: 3 @@ -158,6 +159,7 @@ Material: - _TwoSided: 2 - _WindQuality: 0 - _WorkflowMode: 1 + - _XRMotionVectorsPass: 1 - _ZWrite: 1 m_Colors: - _BaseColor: {r: 1, g: 1, b: 1, a: 1} @@ -184,4 +186,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/Lit_Opaque.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/Lit_Opaque.mat index f2babd3a0c3..8a02bd26436 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/Lit_Opaque.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/Lit_Opaque.mat @@ -184,4 +184,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/Lit_Opaque_AlphaClipped.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/Lit_Opaque_AlphaClipped.mat index 65327bd5a0c..755287364c6 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/Lit_Opaque_AlphaClipped.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/Lit_Opaque_AlphaClipped.mat @@ -185,4 +185,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/Lit_Opaque_AlphaClippedDetail.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/Lit_Opaque_AlphaClippedDetail.mat index f331122b208..0dd3963ba60 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/Lit_Opaque_AlphaClippedDetail.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/Lit_Opaque_AlphaClippedDetail.mat @@ -186,4 +186,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/Lit_Opaque_AlphaClippedDetailParallax.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/Lit_Opaque_AlphaClippedDetailParallax.mat index c76d3bdb10b..6cf3833a5a3 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/Lit_Opaque_AlphaClippedDetailParallax.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/Lit_Opaque_AlphaClippedDetailParallax.mat @@ -186,4 +186,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/Lit_Opaque_AlphaClippedNormal.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/Lit_Opaque_AlphaClippedNormal.mat index c8e3eb863c9..ca8a6f2d708 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/Lit_Opaque_AlphaClippedNormal.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/Lit_Opaque_AlphaClippedNormal.mat @@ -186,4 +186,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/Lit_Opaque_AlphaClippedNormalDetail.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/Lit_Opaque_AlphaClippedNormalDetail.mat index 9d6c3b20c62..7356ace492e 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/Lit_Opaque_AlphaClippedNormalDetail.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/Lit_Opaque_AlphaClippedNormalDetail.mat @@ -187,4 +187,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/Lit_Opaque_AlphaClippedNormalDetailParallax.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/Lit_Opaque_AlphaClippedNormalDetailParallax.mat index 3d67fe40811..5c1f2a5634c 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/Lit_Opaque_AlphaClippedNormalDetailParallax.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/Lit_Opaque_AlphaClippedNormalDetailParallax.mat @@ -187,4 +187,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/Lit_Opaque_AlphaClippedNormalParallax.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/Lit_Opaque_AlphaClippedNormalParallax.mat index 52834284b8d..c4e51ee4c45 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/Lit_Opaque_AlphaClippedNormalParallax.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/Lit_Opaque_AlphaClippedNormalParallax.mat @@ -186,4 +186,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/Lit_Opaque_AlphaClippedParallax.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/Lit_Opaque_AlphaClippedParallax.mat index 9015a739040..09d0d5f8864 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/Lit_Opaque_AlphaClippedParallax.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/Lit_Opaque_AlphaClippedParallax.mat @@ -186,4 +186,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/Lit_Opaque_Detail.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/Lit_Opaque_Detail.mat index 1ad273f4e11..5aa4bfb037f 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/Lit_Opaque_Detail.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/Lit_Opaque_Detail.mat @@ -185,4 +185,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/Lit_Opaque_DetailParallax.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/Lit_Opaque_DetailParallax.mat index 98d169cd0a3..b2e108f429b 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/Lit_Opaque_DetailParallax.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/Lit_Opaque_DetailParallax.mat @@ -186,4 +186,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/Lit_Opaque_Normal.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/Lit_Opaque_Normal.mat index 397b9e7822e..13e2fbde586 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/Lit_Opaque_Normal.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/Lit_Opaque_Normal.mat @@ -185,4 +185,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/Lit_Opaque_NormalDetail.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/Lit_Opaque_NormalDetail.mat index 358eecbb95d..cc86d58755d 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/Lit_Opaque_NormalDetail.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/Lit_Opaque_NormalDetail.mat @@ -186,4 +186,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/Lit_Opaque_NormalDetailParallax.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/Lit_Opaque_NormalDetailParallax.mat index ce9d839123a..f1ebad7ef5c 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/Lit_Opaque_NormalDetailParallax.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/Lit_Opaque_NormalDetailParallax.mat @@ -187,4 +187,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/Lit_Opaque_NormalParallax.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/Lit_Opaque_NormalParallax.mat index 39db1e2ce91..a1693842ba8 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/Lit_Opaque_NormalParallax.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/Lit_Opaque_NormalParallax.mat @@ -185,4 +185,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/Lit_Opaque_Parallax.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/Lit_Opaque_Parallax.mat index 9715db8a8d3..10ed8daa63d 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/Lit_Opaque_Parallax.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/Lit_Opaque_Parallax.mat @@ -185,4 +185,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ParticlesLit_Opaque.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ParticlesLit_Opaque.mat index 8e80e703207..b5398d98212 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ParticlesLit_Opaque.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ParticlesLit_Opaque.mat @@ -156,4 +156,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ParticlesLit_Opaque_AlphaClipped.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ParticlesLit_Opaque_AlphaClipped.mat index a845bb0ac63..93bf6793cac 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ParticlesLit_Opaque_AlphaClipped.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ParticlesLit_Opaque_AlphaClipped.mat @@ -157,4 +157,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ParticlesLit_Opaque_AlphaClippedNormal.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ParticlesLit_Opaque_AlphaClippedNormal.mat index b725f97aa4d..a1a2df5fd8a 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ParticlesLit_Opaque_AlphaClippedNormal.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ParticlesLit_Opaque_AlphaClippedNormal.mat @@ -158,4 +158,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ParticlesLit_Opaque_Normal.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ParticlesLit_Opaque_Normal.mat index 61329776097..0b8953b4bc7 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ParticlesLit_Opaque_Normal.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ParticlesLit_Opaque_Normal.mat @@ -157,4 +157,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ParticlesSimpleLit_Opaque.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ParticlesSimpleLit_Opaque.mat index db416d7b1de..aa1520b225a 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ParticlesSimpleLit_Opaque.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ParticlesSimpleLit_Opaque.mat @@ -155,4 +155,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ParticlesSimpleLit_Opaque_AlphaClipped.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ParticlesSimpleLit_Opaque_AlphaClipped.mat index 57319fafab0..cb2c508429d 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ParticlesSimpleLit_Opaque_AlphaClipped.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ParticlesSimpleLit_Opaque_AlphaClipped.mat @@ -156,4 +156,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ParticlesSimpleLit_Opaque_AlphaClippedNormal.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ParticlesSimpleLit_Opaque_AlphaClippedNormal.mat index 76007f6d6fc..0bf7fa2f7e9 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ParticlesSimpleLit_Opaque_AlphaClippedNormal.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ParticlesSimpleLit_Opaque_AlphaClippedNormal.mat @@ -157,4 +157,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ParticlesSimpleLit_Opaque_Normal.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ParticlesSimpleLit_Opaque_Normal.mat index 9f5e57ce250..47fc8f51dda 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ParticlesSimpleLit_Opaque_Normal.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ParticlesSimpleLit_Opaque_Normal.mat @@ -156,4 +156,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ParticlesUnlit_Opaque.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ParticlesUnlit_Opaque.mat index 2af302c33e7..949cffa3540 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ParticlesUnlit_Opaque.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ParticlesUnlit_Opaque.mat @@ -155,4 +155,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ParticlesUnlit_Opaque_AlphaClipped.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ParticlesUnlit_Opaque_AlphaClipped.mat index f462e6ccced..ef61170c5ff 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ParticlesUnlit_Opaque_AlphaClipped.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ParticlesUnlit_Opaque_AlphaClipped.mat @@ -156,4 +156,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ParticlesUnlit_Opaque_AlphaClippedNormal.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ParticlesUnlit_Opaque_AlphaClippedNormal.mat index 1a3cf0779bb..3fdadf03593 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ParticlesUnlit_Opaque_AlphaClippedNormal.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ParticlesUnlit_Opaque_AlphaClippedNormal.mat @@ -157,4 +157,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ParticlesUnlit_Opaque_Normal.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ParticlesUnlit_Opaque_Normal.mat index befd7287088..0282fcd51cf 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ParticlesUnlit_Opaque_Normal.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/ParticlesUnlit_Opaque_Normal.mat @@ -156,4 +156,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/SimpleLit_Opaque.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/SimpleLit_Opaque.mat index 355b301afb3..6270211d468 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/SimpleLit_Opaque.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/SimpleLit_Opaque.mat @@ -157,4 +157,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/SimpleLit_Opaque_AlphaClipped.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/SimpleLit_Opaque_AlphaClipped.mat index 9e58f46c05e..f149365d8e6 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/SimpleLit_Opaque_AlphaClipped.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/SimpleLit_Opaque_AlphaClipped.mat @@ -158,4 +158,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/SimpleLit_Opaque_AlphaClippedNormal.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/SimpleLit_Opaque_AlphaClippedNormal.mat index d226994655d..b6ddd97324b 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/SimpleLit_Opaque_AlphaClippedNormal.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/SimpleLit_Opaque_AlphaClippedNormal.mat @@ -159,4 +159,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/SimpleLit_Opaque_Normal.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/SimpleLit_Opaque_Normal.mat index 51038c5b105..9eda1ef9eef 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/SimpleLit_Opaque_Normal.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/SimpleLit_Opaque_Normal.mat @@ -158,4 +158,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/Unlit_Opaque.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/Unlit_Opaque.mat index 000f829af01..8d60b0adebe 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/Unlit_Opaque.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/Unlit_Opaque.mat @@ -183,4 +183,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/Unlit_Opaque_AlphaClipped.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/Unlit_Opaque_AlphaClipped.mat index fba30becdb6..9ba515bf837 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/Unlit_Opaque_AlphaClipped.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Opaque/Unlit_Opaque_AlphaClipped.mat @@ -184,4 +184,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/SHARED_MAT_SG_NormalBlend.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/SHARED_MAT_SG_NormalBlend.mat index cbf501610d4..0cac883c6ff 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/SHARED_MAT_SG_NormalBlend.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/SHARED_MAT_SG_NormalBlend.mat @@ -72,4 +72,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/SHARED_MAT_SG_NormalStrength.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/SHARED_MAT_SG_NormalStrength.mat index 0a2fcd3acbf..b381f267ce7 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/SHARED_MAT_SG_NormalStrength.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/SHARED_MAT_SG_NormalStrength.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/SHARED_MAT_SG_NormalTriplanar.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/SHARED_MAT_SG_NormalTriplanar.mat index b3ea45478ae..be1a3ee1d93 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/SHARED_MAT_SG_NormalTriplanar.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/SHARED_MAT_SG_NormalTriplanar.mat @@ -63,4 +63,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ComplexLit_Transparent.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ComplexLit_Transparent.mat index 95a8311ed60..083f98ff516 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ComplexLit_Transparent.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ComplexLit_Transparent.mat @@ -25,6 +25,7 @@ Material: disabledShaderPasses: - DepthOnly - SHADOWCASTER + - MOTIONVECTORS m_LockedProperties: m_SavedProperties: serializedVersion: 3 @@ -161,6 +162,7 @@ Material: - _TwoSided: 2 - _WindQuality: 0 - _WorkflowMode: 1 + - _XRMotionVectorsPass: 1 - _ZWrite: 0 m_Colors: - _BaseColor: {r: 1, g: 1, b: 1, a: 1} @@ -187,4 +189,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ComplexLit_Transparent_AlphaClipped.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ComplexLit_Transparent_AlphaClipped.mat index 8bcd8cc2d48..7c768c26494 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ComplexLit_Transparent_AlphaClipped.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ComplexLit_Transparent_AlphaClipped.mat @@ -26,6 +26,7 @@ Material: disabledShaderPasses: - DepthOnly - SHADOWCASTER + - MOTIONVECTORS m_LockedProperties: m_SavedProperties: serializedVersion: 3 @@ -162,6 +163,7 @@ Material: - _TwoSided: 2 - _WindQuality: 0 - _WorkflowMode: 1 + - _XRMotionVectorsPass: 1 - _ZWrite: 0 m_Colors: - _BaseColor: {r: 1, g: 1, b: 1, a: 1} @@ -188,4 +190,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ComplexLit_Transparent_AlphaClippedDetail.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ComplexLit_Transparent_AlphaClippedDetail.mat index 98c0fbf558c..e72f9452b78 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ComplexLit_Transparent_AlphaClippedDetail.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ComplexLit_Transparent_AlphaClippedDetail.mat @@ -27,6 +27,7 @@ Material: disabledShaderPasses: - DepthOnly - SHADOWCASTER + - MOTIONVECTORS m_LockedProperties: m_SavedProperties: serializedVersion: 3 @@ -163,6 +164,7 @@ Material: - _TwoSided: 2 - _WindQuality: 0 - _WorkflowMode: 1 + - _XRMotionVectorsPass: 1 - _ZWrite: 0 m_Colors: - _BaseColor: {r: 1, g: 1, b: 1, a: 1} @@ -189,4 +191,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ComplexLit_Transparent_AlphaClippedDetailParallax.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ComplexLit_Transparent_AlphaClippedDetailParallax.mat index 7333b9f7905..a9f872b3f5b 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ComplexLit_Transparent_AlphaClippedDetailParallax.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ComplexLit_Transparent_AlphaClippedDetailParallax.mat @@ -28,6 +28,7 @@ Material: disabledShaderPasses: - DepthOnly - SHADOWCASTER + - MOTIONVECTORS m_LockedProperties: m_SavedProperties: serializedVersion: 3 @@ -164,6 +165,7 @@ Material: - _TwoSided: 2 - _WindQuality: 0 - _WorkflowMode: 1 + - _XRMotionVectorsPass: 1 - _ZWrite: 0 m_Colors: - _BaseColor: {r: 1, g: 1, b: 1, a: 1} @@ -190,4 +192,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ComplexLit_Transparent_AlphaClippedNormal.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ComplexLit_Transparent_AlphaClippedNormal.mat index 2ae2a28173c..a8201eea14e 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ComplexLit_Transparent_AlphaClippedNormal.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ComplexLit_Transparent_AlphaClippedNormal.mat @@ -27,6 +27,7 @@ Material: disabledShaderPasses: - DepthOnly - SHADOWCASTER + - MOTIONVECTORS m_LockedProperties: m_SavedProperties: serializedVersion: 3 @@ -163,6 +164,7 @@ Material: - _TwoSided: 2 - _WindQuality: 0 - _WorkflowMode: 1 + - _XRMotionVectorsPass: 1 - _ZWrite: 0 m_Colors: - _BaseColor: {r: 1, g: 1, b: 1, a: 1} @@ -189,4 +191,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ComplexLit_Transparent_AlphaClippedNormalDetail.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ComplexLit_Transparent_AlphaClippedNormalDetail.mat index f0781f63e59..132601a3a91 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ComplexLit_Transparent_AlphaClippedNormalDetail.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ComplexLit_Transparent_AlphaClippedNormalDetail.mat @@ -28,6 +28,7 @@ Material: disabledShaderPasses: - DepthOnly - SHADOWCASTER + - MOTIONVECTORS m_LockedProperties: m_SavedProperties: serializedVersion: 3 @@ -164,6 +165,7 @@ Material: - _TwoSided: 2 - _WindQuality: 0 - _WorkflowMode: 1 + - _XRMotionVectorsPass: 1 - _ZWrite: 0 m_Colors: - _BaseColor: {r: 1, g: 1, b: 1, a: 1} @@ -190,4 +192,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ComplexLit_Transparent_AlphaClippedNormalDetailParallax.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ComplexLit_Transparent_AlphaClippedNormalDetailParallax.mat index 39cea5f3284..7c760be9192 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ComplexLit_Transparent_AlphaClippedNormalDetailParallax.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ComplexLit_Transparent_AlphaClippedNormalDetailParallax.mat @@ -29,6 +29,7 @@ Material: disabledShaderPasses: - DepthOnly - SHADOWCASTER + - MOTIONVECTORS m_LockedProperties: m_SavedProperties: serializedVersion: 3 @@ -165,6 +166,7 @@ Material: - _TwoSided: 2 - _WindQuality: 0 - _WorkflowMode: 1 + - _XRMotionVectorsPass: 1 - _ZWrite: 0 m_Colors: - _BaseColor: {r: 1, g: 1, b: 1, a: 1} @@ -191,4 +193,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ComplexLit_Transparent_AlphaClippedNormalParallax.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ComplexLit_Transparent_AlphaClippedNormalParallax.mat index 014b8107281..527869fb01f 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ComplexLit_Transparent_AlphaClippedNormalParallax.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ComplexLit_Transparent_AlphaClippedNormalParallax.mat @@ -28,6 +28,7 @@ Material: disabledShaderPasses: - DepthOnly - SHADOWCASTER + - MOTIONVECTORS m_LockedProperties: m_SavedProperties: serializedVersion: 3 @@ -164,6 +165,7 @@ Material: - _TwoSided: 2 - _WindQuality: 0 - _WorkflowMode: 1 + - _XRMotionVectorsPass: 1 - _ZWrite: 0 m_Colors: - _BaseColor: {r: 1, g: 1, b: 1, a: 1} @@ -190,4 +192,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ComplexLit_Transparent_AlphaClippedParallax.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ComplexLit_Transparent_AlphaClippedParallax.mat index ea77ecaceba..93f9d3800c0 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ComplexLit_Transparent_AlphaClippedParallax.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ComplexLit_Transparent_AlphaClippedParallax.mat @@ -27,6 +27,7 @@ Material: disabledShaderPasses: - DepthOnly - SHADOWCASTER + - MOTIONVECTORS m_LockedProperties: m_SavedProperties: serializedVersion: 3 @@ -163,6 +164,7 @@ Material: - _TwoSided: 2 - _WindQuality: 0 - _WorkflowMode: 1 + - _XRMotionVectorsPass: 1 - _ZWrite: 0 m_Colors: - _BaseColor: {r: 1, g: 1, b: 1, a: 1} @@ -189,4 +191,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ComplexLit_Transparent_Detail.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ComplexLit_Transparent_Detail.mat index e103ecff9b7..7233f7bb74d 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ComplexLit_Transparent_Detail.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ComplexLit_Transparent_Detail.mat @@ -26,6 +26,7 @@ Material: disabledShaderPasses: - DepthOnly - SHADOWCASTER + - MOTIONVECTORS m_LockedProperties: m_SavedProperties: serializedVersion: 3 @@ -162,6 +163,7 @@ Material: - _TwoSided: 2 - _WindQuality: 0 - _WorkflowMode: 1 + - _XRMotionVectorsPass: 1 - _ZWrite: 0 m_Colors: - _BaseColor: {r: 1, g: 1, b: 1, a: 1} @@ -188,4 +190,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ComplexLit_Transparent_DetailParallax.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ComplexLit_Transparent_DetailParallax.mat index cb99d202961..c302bd227c9 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ComplexLit_Transparent_DetailParallax.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ComplexLit_Transparent_DetailParallax.mat @@ -189,4 +189,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ComplexLit_Transparent_Normal.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ComplexLit_Transparent_Normal.mat index 7da1bc66d7c..9a0730970f8 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ComplexLit_Transparent_Normal.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ComplexLit_Transparent_Normal.mat @@ -26,6 +26,7 @@ Material: disabledShaderPasses: - DepthOnly - SHADOWCASTER + - MOTIONVECTORS m_LockedProperties: m_SavedProperties: serializedVersion: 3 @@ -162,6 +163,7 @@ Material: - _TwoSided: 2 - _WindQuality: 0 - _WorkflowMode: 1 + - _XRMotionVectorsPass: 1 - _ZWrite: 0 m_Colors: - _BaseColor: {r: 1, g: 1, b: 1, a: 1} @@ -188,4 +190,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ComplexLit_Transparent_NormalDetail.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ComplexLit_Transparent_NormalDetail.mat index 22f5a00c2c4..1d90ad04b8c 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ComplexLit_Transparent_NormalDetail.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ComplexLit_Transparent_NormalDetail.mat @@ -27,6 +27,7 @@ Material: disabledShaderPasses: - DepthOnly - SHADOWCASTER + - MOTIONVECTORS m_LockedProperties: m_SavedProperties: serializedVersion: 3 @@ -163,6 +164,7 @@ Material: - _TwoSided: 2 - _WindQuality: 0 - _WorkflowMode: 1 + - _XRMotionVectorsPass: 1 - _ZWrite: 0 m_Colors: - _BaseColor: {r: 1, g: 1, b: 1, a: 1} @@ -189,4 +191,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ComplexLit_Transparent_NormalDetailParallax.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ComplexLit_Transparent_NormalDetailParallax.mat index 6c2b6c77630..7a44ab04461 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ComplexLit_Transparent_NormalDetailParallax.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ComplexLit_Transparent_NormalDetailParallax.mat @@ -28,6 +28,7 @@ Material: disabledShaderPasses: - DepthOnly - SHADOWCASTER + - MOTIONVECTORS m_LockedProperties: m_SavedProperties: serializedVersion: 3 @@ -164,6 +165,7 @@ Material: - _TwoSided: 2 - _WindQuality: 0 - _WorkflowMode: 1 + - _XRMotionVectorsPass: 1 - _ZWrite: 0 m_Colors: - _BaseColor: {r: 1, g: 1, b: 1, a: 1} @@ -190,4 +192,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ComplexLit_Transparent_NormalParallax.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ComplexLit_Transparent_NormalParallax.mat index b2d500c078a..a0e0dd8c58c 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ComplexLit_Transparent_NormalParallax.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ComplexLit_Transparent_NormalParallax.mat @@ -27,6 +27,7 @@ Material: disabledShaderPasses: - DepthOnly - SHADOWCASTER + - MOTIONVECTORS m_LockedProperties: m_SavedProperties: serializedVersion: 3 @@ -163,6 +164,7 @@ Material: - _TwoSided: 2 - _WindQuality: 0 - _WorkflowMode: 1 + - _XRMotionVectorsPass: 1 - _ZWrite: 0 m_Colors: - _BaseColor: {r: 1, g: 1, b: 1, a: 1} @@ -189,4 +191,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ComplexLit_Transparent_Parallax.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ComplexLit_Transparent_Parallax.mat index 1a2d499aafa..b728be55646 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ComplexLit_Transparent_Parallax.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ComplexLit_Transparent_Parallax.mat @@ -26,6 +26,7 @@ Material: disabledShaderPasses: - DepthOnly - SHADOWCASTER + - MOTIONVECTORS m_LockedProperties: m_SavedProperties: serializedVersion: 3 @@ -162,6 +163,7 @@ Material: - _TwoSided: 2 - _WindQuality: 0 - _WorkflowMode: 1 + - _XRMotionVectorsPass: 1 - _ZWrite: 0 m_Colors: - _BaseColor: {r: 1, g: 1, b: 1, a: 1} @@ -188,4 +190,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/Lit_Transparent.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/Lit_Transparent.mat index f4e06070166..dac357a297e 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/Lit_Transparent.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/Lit_Transparent.mat @@ -188,4 +188,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/Lit_Transparent_AlphaClipped.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/Lit_Transparent_AlphaClipped.mat index d1f81dd2b69..83d0f9ee312 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/Lit_Transparent_AlphaClipped.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/Lit_Transparent_AlphaClipped.mat @@ -189,4 +189,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/Lit_Transparent_AlphaClippedDetail.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/Lit_Transparent_AlphaClippedDetail.mat index bdc85f712bd..56668214ee4 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/Lit_Transparent_AlphaClippedDetail.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/Lit_Transparent_AlphaClippedDetail.mat @@ -190,4 +190,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/Lit_Transparent_AlphaClippedDetailParallax.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/Lit_Transparent_AlphaClippedDetailParallax.mat index b08119f39ee..bc0b3612735 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/Lit_Transparent_AlphaClippedDetailParallax.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/Lit_Transparent_AlphaClippedDetailParallax.mat @@ -190,4 +190,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/Lit_Transparent_AlphaClippedNormal.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/Lit_Transparent_AlphaClippedNormal.mat index 601666c3cdc..007a3ac49b1 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/Lit_Transparent_AlphaClippedNormal.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/Lit_Transparent_AlphaClippedNormal.mat @@ -190,4 +190,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/Lit_Transparent_AlphaClippedNormalDetail.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/Lit_Transparent_AlphaClippedNormalDetail.mat index 01d4303fbe3..64764be2ffa 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/Lit_Transparent_AlphaClippedNormalDetail.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/Lit_Transparent_AlphaClippedNormalDetail.mat @@ -191,4 +191,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/Lit_Transparent_AlphaClippedNormalDetailParallax.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/Lit_Transparent_AlphaClippedNormalDetailParallax.mat index 0573f48f228..5e2455d9c93 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/Lit_Transparent_AlphaClippedNormalDetailParallax.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/Lit_Transparent_AlphaClippedNormalDetailParallax.mat @@ -191,4 +191,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/Lit_Transparent_AlphaClippedNormalParallax.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/Lit_Transparent_AlphaClippedNormalParallax.mat index 19a1cc4dea6..27b1843d22c 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/Lit_Transparent_AlphaClippedNormalParallax.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/Lit_Transparent_AlphaClippedNormalParallax.mat @@ -190,4 +190,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/Lit_Transparent_AlphaClippedParallax.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/Lit_Transparent_AlphaClippedParallax.mat index 32ef5510d9c..232ddbc8f1e 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/Lit_Transparent_AlphaClippedParallax.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/Lit_Transparent_AlphaClippedParallax.mat @@ -190,4 +190,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/Lit_Transparent_Detail.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/Lit_Transparent_Detail.mat index 78e5ff3106e..fb948d1af74 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/Lit_Transparent_Detail.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/Lit_Transparent_Detail.mat @@ -189,4 +189,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/Lit_Transparent_DetailParallax.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/Lit_Transparent_DetailParallax.mat index 114408e3c28..b4ddfdb46dc 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/Lit_Transparent_DetailParallax.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/Lit_Transparent_DetailParallax.mat @@ -190,4 +190,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/Lit_Transparent_Normal.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/Lit_Transparent_Normal.mat index 6c3660cbdce..9bef7b848c3 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/Lit_Transparent_Normal.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/Lit_Transparent_Normal.mat @@ -189,4 +189,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/Lit_Transparent_NormalDetail.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/Lit_Transparent_NormalDetail.mat index 717453b2ac8..218496750ae 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/Lit_Transparent_NormalDetail.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/Lit_Transparent_NormalDetail.mat @@ -190,4 +190,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/Lit_Transparent_NormalDetailParallax.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/Lit_Transparent_NormalDetailParallax.mat index 919384e585c..13ef4c3dc56 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/Lit_Transparent_NormalDetailParallax.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/Lit_Transparent_NormalDetailParallax.mat @@ -191,4 +191,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/Lit_Transparent_NormalParallax.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/Lit_Transparent_NormalParallax.mat index d37b3271497..e5478824767 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/Lit_Transparent_NormalParallax.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/Lit_Transparent_NormalParallax.mat @@ -189,4 +189,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/Lit_Transparent_Parallax.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/Lit_Transparent_Parallax.mat index d767324b2bc..4e21b089b2b 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/Lit_Transparent_Parallax.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/Lit_Transparent_Parallax.mat @@ -189,4 +189,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ParticlesLit_Transparent.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ParticlesLit_Transparent.mat index 4c429b9dfff..bf73962303b 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ParticlesLit_Transparent.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ParticlesLit_Transparent.mat @@ -160,4 +160,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ParticlesLit_Transparent_AlphaClipped.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ParticlesLit_Transparent_AlphaClipped.mat index b262c7249f4..de9f26d5ebe 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ParticlesLit_Transparent_AlphaClipped.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ParticlesLit_Transparent_AlphaClipped.mat @@ -161,4 +161,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ParticlesLit_Transparent_AlphaClippedNormal.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ParticlesLit_Transparent_AlphaClippedNormal.mat index 989e8b92c67..ff49d4db734 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ParticlesLit_Transparent_AlphaClippedNormal.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ParticlesLit_Transparent_AlphaClippedNormal.mat @@ -162,4 +162,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ParticlesLit_Transparent_Normal.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ParticlesLit_Transparent_Normal.mat index 0f7914d6b6e..a08ebe4364c 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ParticlesLit_Transparent_Normal.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ParticlesLit_Transparent_Normal.mat @@ -161,4 +161,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ParticlesSimpleLit_Transparent.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ParticlesSimpleLit_Transparent.mat index b03a870b9b8..bf9b8afdd2f 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ParticlesSimpleLit_Transparent.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ParticlesSimpleLit_Transparent.mat @@ -158,4 +158,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ParticlesSimpleLit_Transparent_AlphaClipped.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ParticlesSimpleLit_Transparent_AlphaClipped.mat index f0294bb07a4..5a6fdd3ce1c 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ParticlesSimpleLit_Transparent_AlphaClipped.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ParticlesSimpleLit_Transparent_AlphaClipped.mat @@ -159,4 +159,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ParticlesSimpleLit_Transparent_AlphaClippedNormal.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ParticlesSimpleLit_Transparent_AlphaClippedNormal.mat index 271a1d6244e..ffaa97809eb 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ParticlesSimpleLit_Transparent_AlphaClippedNormal.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ParticlesSimpleLit_Transparent_AlphaClippedNormal.mat @@ -160,4 +160,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ParticlesSimpleLit_Transparent_Normal.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ParticlesSimpleLit_Transparent_Normal.mat index ef91441a2e5..b886cd79bc0 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ParticlesSimpleLit_Transparent_Normal.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ParticlesSimpleLit_Transparent_Normal.mat @@ -159,4 +159,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ParticlesUnlit_Transparent.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ParticlesUnlit_Transparent.mat index 27d5e54231d..a6cea11752d 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ParticlesUnlit_Transparent.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ParticlesUnlit_Transparent.mat @@ -158,4 +158,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ParticlesUnlit_Transparent_AlphaClipped.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ParticlesUnlit_Transparent_AlphaClipped.mat index 624a82eac16..697942ca253 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ParticlesUnlit_Transparent_AlphaClipped.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ParticlesUnlit_Transparent_AlphaClipped.mat @@ -159,4 +159,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ParticlesUnlit_Transparent_AlphaClippedNormal.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ParticlesUnlit_Transparent_AlphaClippedNormal.mat index c68e8b24eff..d111e3f747a 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ParticlesUnlit_Transparent_AlphaClippedNormal.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ParticlesUnlit_Transparent_AlphaClippedNormal.mat @@ -160,4 +160,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ParticlesUnlit_Transparent_Normal.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ParticlesUnlit_Transparent_Normal.mat index fe972b62c0e..7349808adf3 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ParticlesUnlit_Transparent_Normal.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/ParticlesUnlit_Transparent_Normal.mat @@ -159,4 +159,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/SimpleLit_Transparent.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/SimpleLit_Transparent.mat index 7b2425dd551..c92ca537590 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/SimpleLit_Transparent.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/SimpleLit_Transparent.mat @@ -161,4 +161,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/SimpleLit_Transparent_AlphaClipped.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/SimpleLit_Transparent_AlphaClipped.mat index 70e86fc059f..21b6256ae73 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/SimpleLit_Transparent_AlphaClipped.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/SimpleLit_Transparent_AlphaClipped.mat @@ -162,4 +162,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/SimpleLit_Transparent_AlphaClippedNormal.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/SimpleLit_Transparent_AlphaClippedNormal.mat index e3bfdc7ea59..a650212b146 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/SimpleLit_Transparent_AlphaClippedNormal.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/SimpleLit_Transparent_AlphaClippedNormal.mat @@ -163,4 +163,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/SimpleLit_Transparent_Normal.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/SimpleLit_Transparent_Normal.mat index 2ad23b7f6db..88b47236c91 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/SimpleLit_Transparent_Normal.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/SimpleLit_Transparent_Normal.mat @@ -162,4 +162,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/Unlit_Transparent.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/Unlit_Transparent.mat index c09c99c8af2..3b951792bb7 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/Unlit_Transparent.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/Unlit_Transparent.mat @@ -186,4 +186,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/Unlit_Transparent_AlphaClipped.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/Unlit_Transparent_AlphaClipped.mat index b99047a7264..6861359a5c1 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/Unlit_Transparent_AlphaClipped.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/SharedMaterials/Transparent/Unlit_Transparent_AlphaClipped.mat @@ -187,4 +187,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/000_DeferredPlus_Many.unity b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/000_DeferredPlus_Many.unity index 7c6920142ad..dac7dd80c71 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/000_DeferredPlus_Many.unity +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/000_DeferredPlus_Many.unity @@ -33651,7 +33651,7 @@ MonoBehaviour: PerPixelGammaThreshold: 0.003921569 PerPixelAlphaThreshold: 0.003921569 RMSEThreshold: 0 - AverageCorrectnessThreshold: 0.005 + AverageCorrectnessThreshold: 0.000005 IncorrectPixelsThreshold: 0.0000038146973 UseHDR: 0 UseBackBuffer: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/000_ForwardPlus_Many.unity b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/000_ForwardPlus_Many.unity index 30c5fe51d70..1c7d326fc5a 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/000_ForwardPlus_Many.unity +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/000_ForwardPlus_Many.unity @@ -32836,7 +32836,7 @@ MonoBehaviour: PerPixelGammaThreshold: 0.003921569 PerPixelAlphaThreshold: 0.003921569 RMSEThreshold: 0 - AverageCorrectnessThreshold: 0.005 + AverageCorrectnessThreshold: 0.000005 IncorrectPixelsThreshold: 0.0000038146973 UseHDR: 0 UseBackBuffer: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/001_SimpleCube/001_SimpleCube.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/001_SimpleCube/001_SimpleCube.mat index 0a28483f90d..dc08a3339e5 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/001_SimpleCube/001_SimpleCube.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/001_SimpleCube/001_SimpleCube.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -140,3 +140,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.97058815, g: 0.97058815, b: 0.97058815, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/002_Camera_Clip/002_CameraClip_Sphere.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/002_Camera_Clip/002_CameraClip_Sphere.mat index f6833fb8863..89e6f680eee 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/002_Camera_Clip/002_CameraClip_Sphere.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/002_Camera_Clip/002_CameraClip_Sphere.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -140,3 +140,4 @@ Material: - _ReflectColor: {r: 1, g: 1, b: 1, a: 1} - _SpecColor: {r: 1, g: 1, b: 1, a: 0.5} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/003_Camera_Ortho/003_CameraOrtho_Sphere.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/003_Camera_Ortho/003_CameraOrtho_Sphere.mat index 869a64443d2..bd6f7a9fd56 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/003_Camera_Ortho/003_CameraOrtho_Sphere.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/003_Camera_Ortho/003_CameraOrtho_Sphere.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -140,3 +140,4 @@ Material: - _ReflectColor: {r: 1, g: 1, b: 1, a: 1} - _SpecColor: {r: 1, g: 1, b: 1, a: 0.5} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/004_Camera_TargetTexture/004_CameraTargetTextureSphere.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/004_Camera_TargetTexture/004_CameraTargetTextureSphere.mat index 45069e56d81..9facce2cc62 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/004_Camera_TargetTexture/004_CameraTargetTextureSphere.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/004_Camera_TargetTexture/004_CameraTargetTextureSphere.mat @@ -102,7 +102,9 @@ Material: m_Offset: {x: 0, y: 0} m_Ints: [] m_Floats: + - _AddPrecomputedVelocity: 0 - _AlphaClip: 0 + - _AlphaToMask: 0 - _Blend: 0 - _BlendModePreserveSpecular: 1 - _BumpScale: 1 @@ -132,6 +134,7 @@ Material: - _SrcBlendAlpha: 1 - _Surface: 0 - _UVSec: 0 + - _XRMotionVectorsPass: 1 - _ZWrite: 1 m_Colors: - _BaseColor: {r: 0, g: 0, b: 0, a: 1} @@ -140,6 +143,7 @@ Material: - _ReflectColor: {r: 1, g: 1, b: 1, a: 1} - _SpecColor: {r: 1, g: 1, b: 1, a: 0.5} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &6474889523495581265 MonoBehaviour: m_ObjectHideFlags: 11 @@ -152,4 +156,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/004_Camera_TargetTexture/004_CameraTargetTextureSphereDepth.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/004_Camera_TargetTexture/004_CameraTargetTextureSphereDepth.mat index efb276c483c..e39c4ba8b9a 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/004_Camera_TargetTexture/004_CameraTargetTextureSphereDepth.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/004_Camera_TargetTexture/004_CameraTargetTextureSphereDepth.mat @@ -160,4 +160,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/004_Camera_TargetTexture/004_Camera_TargetTexture_Sphere.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/004_Camera_TargetTexture/004_Camera_TargetTexture_Sphere.mat index 6e00b5df0fa..12dbcb225fa 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/004_Camera_TargetTexture/004_Camera_TargetTexture_Sphere.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/004_Camera_TargetTexture/004_Camera_TargetTexture_Sphere.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -140,3 +140,4 @@ Material: - _ReflectColor: {r: 1, g: 1, b: 1, a: 1} - _SpecColor: {r: 1, g: 1, b: 1, a: 0.5} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/007_LitShaderMaps/007_LitShaderMaps_01_BaseWhite.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/007_LitShaderMaps/007_LitShaderMaps_01_BaseWhite.mat index fb78c660586..96544ceb15e 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/007_LitShaderMaps/007_LitShaderMaps_01_BaseWhite.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/007_LitShaderMaps/007_LitShaderMaps_01_BaseWhite.mat @@ -110,6 +110,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &4901046320368005149 MonoBehaviour: m_ObjectHideFlags: 11 @@ -122,4 +123,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/007_LitShaderMaps/007_LitShaderMaps_02_BaseColor.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/007_LitShaderMaps/007_LitShaderMaps_02_BaseColor.mat index f6731e33fa1..65b1546bc06 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/007_LitShaderMaps/007_LitShaderMaps_02_BaseColor.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/007_LitShaderMaps/007_LitShaderMaps_02_BaseColor.mat @@ -128,6 +128,7 @@ Material: - _ReflectColor: {r: 1, g: 1, b: 1, a: 1} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &1148464917096585531 MonoBehaviour: m_ObjectHideFlags: 11 @@ -140,4 +141,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/007_LitShaderMaps/007_LitShaderMaps_03_Specular.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/007_LitShaderMaps/007_LitShaderMaps_03_Specular.mat index 830e893e04e..8984ce38379 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/007_LitShaderMaps/007_LitShaderMaps_03_Specular.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/007_LitShaderMaps/007_LitShaderMaps_03_Specular.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -139,3 +139,4 @@ Material: - _ReflectColor: {r: 1, g: 1, b: 1, a: 1} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/007_LitShaderMaps/007_LitShaderMaps_04_Normal.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/007_LitShaderMaps/007_LitShaderMaps_04_Normal.mat index 80c92e9d8cf..e1285a22c9a 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/007_LitShaderMaps/007_LitShaderMaps_04_Normal.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/007_LitShaderMaps/007_LitShaderMaps_04_Normal.mat @@ -128,6 +128,7 @@ Material: - _ReflectColor: {r: 1, g: 1, b: 1, a: 1} - _SpecColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.182} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &5624294885565558276 MonoBehaviour: m_ObjectHideFlags: 11 @@ -140,4 +141,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/007_LitShaderMaps/007_LitShaderMaps_05_Emission.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/007_LitShaderMaps/007_LitShaderMaps_05_Emission.mat index b57886f7fe2..39e3d9ef59c 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/007_LitShaderMaps/007_LitShaderMaps_05_Emission.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/007_LitShaderMaps/007_LitShaderMaps_05_Emission.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -101,7 +101,9 @@ Material: m_Offset: {x: 0, y: 0} m_Ints: [] m_Floats: + - _AddPrecomputedVelocity: 0 - _AlphaClip: 0 + - _AlphaToMask: 0 - _Blend: 0 - _BlendModePreserveSpecular: 1 - _BumpScale: 1 @@ -131,6 +133,7 @@ Material: - _SrcBlendAlpha: 1 - _Surface: 0 - _UVSec: 0 + - _XRMotionVectorsPass: 1 - _ZWrite: 1 m_Colors: - _BaseColor: {r: 0, g: 0, b: 0, a: 1} @@ -139,3 +142,4 @@ Material: - _ReflectColor: {r: 1, g: 1, b: 1, a: 1} - _SpecColor: {r: 0, g: 0, b: 0, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/007_LitShaderMaps/007_LitShaderMaps_06_All.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/007_LitShaderMaps/007_LitShaderMaps_06_All.mat index 82e097f9c54..06bae28dd4d 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/007_LitShaderMaps/007_LitShaderMaps_06_All.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/007_LitShaderMaps/007_LitShaderMaps_06_All.mat @@ -90,7 +90,9 @@ Material: m_Offset: {x: 0, y: 0} m_Ints: [] m_Floats: + - _AddPrecomputedVelocity: 0 - _AlphaClip: 0 + - _AlphaToMask: 0 - _Blend: 0 - _BlendModePreserveSpecular: 1 - _BumpScale: 1 @@ -120,6 +122,7 @@ Material: - _SrcBlendAlpha: 1 - _Surface: 0 - _UVSec: 0 + - _XRMotionVectorsPass: 1 - _ZWrite: 1 m_Colors: - _BaseColor: {r: 1, g: 1, b: 1, a: 1} @@ -128,6 +131,7 @@ Material: - _ReflectColor: {r: 1, g: 1, b: 1, a: 1} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &6615595408240019016 MonoBehaviour: m_ObjectHideFlags: 11 @@ -140,4 +144,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/007_LitShaderMaps/007_LitShaderMaps_UnlitMatTexture_08.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/007_LitShaderMaps/007_LitShaderMaps_UnlitMatTexture_08.mat index 1668772a9bc..be462116966 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/007_LitShaderMaps/007_LitShaderMaps_UnlitMatTexture_08.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/007_LitShaderMaps/007_LitShaderMaps_UnlitMatTexture_08.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -138,3 +138,4 @@ Material: - _ReflectColor: {r: 1, g: 1, b: 1, a: 1} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/007_LitShaderMaps/007_LitShaderMaps_UnlitMat_07.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/007_LitShaderMaps/007_LitShaderMaps_UnlitMat_07.mat index 684965cf14d..a0419922b34 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/007_LitShaderMaps/007_LitShaderMaps_UnlitMat_07.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/007_LitShaderMaps/007_LitShaderMaps_UnlitMat_07.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -125,3 +125,4 @@ Material: - _ReflectColor: {r: 1, g: 1, b: 1, a: 1} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/008_AdditionalLights/mahogfloor-pbs.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/008_AdditionalLights/mahogfloor-pbs.mat index ba46b08cbbe..9bb63e41588 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/008_AdditionalLights/mahogfloor-pbs.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/008_AdditionalLights/mahogfloor-pbs.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -142,3 +142,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/008_AdditionalLights/plasticpattern-pbs.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/008_AdditionalLights/plasticpattern-pbs.mat index 958f6e7d241..125c9132a41 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/008_AdditionalLights/plasticpattern-pbs.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/008_AdditionalLights/plasticpattern-pbs.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -144,3 +144,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/008_AdditionalLights/redbricks-pbs.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/008_AdditionalLights/redbricks-pbs.mat index 5ebe7fa2d5e..c66f0f14c9a 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/008_AdditionalLights/redbricks-pbs.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/008_AdditionalLights/redbricks-pbs.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -139,3 +139,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaMapsColor0.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaMapsColor0.mat index f123e2e9f9f..755c685e3f4 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaMapsColor0.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaMapsColor0.mat @@ -139,6 +139,7 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 0.5966397, g: 0.39215535, b: 0.84096384, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &2378779546398475007 MonoBehaviour: m_ObjectHideFlags: 11 @@ -151,4 +152,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaMapsColor1.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaMapsColor1.mat index 1354619f9b6..e4448210e28 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaMapsColor1.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaMapsColor1.mat @@ -139,6 +139,7 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &2378779546398475007 MonoBehaviour: m_ObjectHideFlags: 11 @@ -151,4 +152,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaMapsColor10.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaMapsColor10.mat index a230c4e8f50..bef24e39261 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaMapsColor10.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaMapsColor10.mat @@ -139,6 +139,7 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 0.0032246113, g: 0.2959382, b: 0.43167323, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &2378779546398475007 MonoBehaviour: m_ObjectHideFlags: 11 @@ -151,4 +152,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaMapsColor2.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaMapsColor2.mat index 1dc2a7a79c2..9570b6ccc09 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaMapsColor2.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaMapsColor2.mat @@ -139,6 +139,7 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 0.36239022, g: 0.5487221, b: 0.71622443, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &2378779546398475007 MonoBehaviour: m_ObjectHideFlags: 11 @@ -151,4 +152,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaMapsColor3.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaMapsColor3.mat index 47cfc822b41..aae51f70ecc 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaMapsColor3.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaMapsColor3.mat @@ -139,6 +139,7 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 0.40228766, g: 0.79971635, b: 0.1784879, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &2378779546398475007 MonoBehaviour: m_ObjectHideFlags: 11 @@ -151,4 +152,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaMapsColor4.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaMapsColor4.mat index d551f94f52b..de43306a1f1 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaMapsColor4.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaMapsColor4.mat @@ -139,6 +139,7 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 0.9444618, g: 0.3520152, b: 0.5233397, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &2378779546398475007 MonoBehaviour: m_ObjectHideFlags: 11 @@ -151,4 +152,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaMapsColor5.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaMapsColor5.mat index 08eb68e3e27..695861ac76b 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaMapsColor5.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaMapsColor5.mat @@ -139,6 +139,7 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 0.48078424, g: 0.22251117, b: 0.8309896, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &2378779546398475007 MonoBehaviour: m_ObjectHideFlags: 11 @@ -151,4 +152,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaMapsColor6.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaMapsColor6.mat index 0f746c5e8a8..53e88a0afee 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaMapsColor6.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaMapsColor6.mat @@ -139,6 +139,7 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &2378779546398475007 MonoBehaviour: m_ObjectHideFlags: 11 @@ -151,4 +152,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaMapsColor7.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaMapsColor7.mat index 5c638b750ce..27f5570070f 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaMapsColor7.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaMapsColor7.mat @@ -139,6 +139,7 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 0.9732778, g: 0.7169291, b: 0.012085438, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &2378779546398475007 MonoBehaviour: m_ObjectHideFlags: 11 @@ -151,4 +152,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaMapsColor8.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaMapsColor8.mat index 6a8c42c08d8..55b6c73b4a7 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaMapsColor8.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaMapsColor8.mat @@ -139,6 +139,7 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 0.8123754, g: 0.023176432, b: 0.47052997, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &2378779546398475007 MonoBehaviour: m_ObjectHideFlags: 11 @@ -151,4 +152,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaMapsColor9.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaMapsColor9.mat index 3a4f113d431..a1e48dcef34 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaMapsColor9.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaMapsColor9.mat @@ -139,6 +139,7 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 0.38886005, g: 0.86969864, b: 0.91468906, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &2378779546398475007 MonoBehaviour: m_ObjectHideFlags: 11 @@ -151,4 +152,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaNoMapsColor0.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaNoMapsColor0.mat index d8bdd946ad2..92d5ad43aa2 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaNoMapsColor0.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaNoMapsColor0.mat @@ -138,6 +138,7 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 0.8548722, g: 0.69279027, b: 0.69431496, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &2378779546398475007 MonoBehaviour: m_ObjectHideFlags: 11 @@ -150,4 +151,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaNoMapsColor1.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaNoMapsColor1.mat index 12c2fcf5d9c..117f440e3e8 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaNoMapsColor1.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaNoMapsColor1.mat @@ -138,6 +138,7 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &2378779546398475007 MonoBehaviour: m_ObjectHideFlags: 11 @@ -150,4 +151,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaNoMapsColor10.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaNoMapsColor10.mat index 2bf08359c8e..269572a5208 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaNoMapsColor10.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaNoMapsColor10.mat @@ -138,6 +138,7 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 0.89305687, g: 0.41028804, b: 0.76269126, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &2378779546398475007 MonoBehaviour: m_ObjectHideFlags: 11 @@ -150,4 +151,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaNoMapsColor2.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaNoMapsColor2.mat index 654f8b75ac7..b65cdf6fc85 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaNoMapsColor2.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaNoMapsColor2.mat @@ -138,6 +138,7 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 0.05238068, g: 0.24221742, b: 0.9058827, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &2378779546398475007 MonoBehaviour: m_ObjectHideFlags: 11 @@ -150,4 +151,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaNoMapsColor3.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaNoMapsColor3.mat index 750ecbe9e75..5ec4feb5fbe 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaNoMapsColor3.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaNoMapsColor3.mat @@ -138,6 +138,7 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 0, g: 0, b: 0, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &2378779546398475007 MonoBehaviour: m_ObjectHideFlags: 11 @@ -150,4 +151,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaNoMapsColor4.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaNoMapsColor4.mat index 653d4c2518d..dcba6ba325b 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaNoMapsColor4.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaNoMapsColor4.mat @@ -138,6 +138,7 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 0.14697254, g: 0.9178493, b: 0.11209822, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &2378779546398475007 MonoBehaviour: m_ObjectHideFlags: 11 @@ -150,4 +151,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaNoMapsColor5.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaNoMapsColor5.mat index beba1f801f6..1b4453cde76 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaNoMapsColor5.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaNoMapsColor5.mat @@ -138,6 +138,7 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 1, g: 0, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &2378779546398475007 MonoBehaviour: m_ObjectHideFlags: 11 @@ -150,4 +151,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaNoMapsColor6.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaNoMapsColor6.mat index 1b16e05d758..a758c373bc6 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaNoMapsColor6.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaNoMapsColor6.mat @@ -138,6 +138,7 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 0, g: 1, b: 0, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &2378779546398475007 MonoBehaviour: m_ObjectHideFlags: 11 @@ -150,4 +151,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaNoMapsColor7.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaNoMapsColor7.mat index 69cac0cb82b..54ab894525e 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaNoMapsColor7.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaNoMapsColor7.mat @@ -138,6 +138,7 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 0.898159, g: 0.0252527, b: 0.3517434, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &2378779546398475007 MonoBehaviour: m_ObjectHideFlags: 11 @@ -150,4 +151,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaNoMapsColor8.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaNoMapsColor8.mat index 9ef9d1510f1..9b856a38079 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaNoMapsColor8.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaNoMapsColor8.mat @@ -138,6 +138,7 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 0.6630708, g: 0.07038939, b: 0.63143873, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &2378779546398475007 MonoBehaviour: m_ObjectHideFlags: 11 @@ -150,4 +151,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaNoMapsColor9.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaNoMapsColor9.mat index 6753c613fb4..07efec5ce4f 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaNoMapsColor9.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularAlbedoAlphaNoMapsColor9.mat @@ -138,6 +138,7 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 0.19069946, g: 0.47397536, b: 0.2004596, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &2378779546398475007 MonoBehaviour: m_ObjectHideFlags: 11 @@ -150,4 +151,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaMapsColor0.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaMapsColor0.mat index 1d34f4f72a2..ad286afd1f8 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaMapsColor0.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaMapsColor0.mat @@ -138,6 +138,7 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 0.6396359, g: 0.6553911, b: 0.16708767, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &2378779546398475007 MonoBehaviour: m_ObjectHideFlags: 11 @@ -150,4 +151,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaMapsColor1.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaMapsColor1.mat index 184585a1486..f36ad0ce5e3 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaMapsColor1.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaMapsColor1.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -151,3 +151,4 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 0, g: 0, b: 0, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaMapsColor10.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaMapsColor10.mat index 57ce35b21a6..dd4b0c32097 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaMapsColor10.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaMapsColor10.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -151,3 +151,4 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 0.26698142, g: 0.2313329, b: 0.9282466, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaMapsColor2.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaMapsColor2.mat index 496f16f0040..f95c8b9c747 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaMapsColor2.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaMapsColor2.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -151,3 +151,4 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 0.6645825, g: 0.48700708, b: 0.23606038, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaMapsColor3.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaMapsColor3.mat index ea3a1bafa07..62a23efd290 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaMapsColor3.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaMapsColor3.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -151,3 +151,4 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 0.6645111, g: 0.509484, b: 0.5236028, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaMapsColor4.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaMapsColor4.mat index 1dea2025a70..fe58fa7866c 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaMapsColor4.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaMapsColor4.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -151,3 +151,4 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 0.78057814, g: 0.6546382, b: 0.7431774, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaMapsColor5.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaMapsColor5.mat index 63d076f51de..f305f8832ff 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaMapsColor5.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaMapsColor5.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -151,3 +151,4 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 0.41827244, g: 0.2334615, b: 0.6026909, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaMapsColor6.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaMapsColor6.mat index a8d701fb2d5..74be46394c9 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaMapsColor6.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaMapsColor6.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -151,3 +151,4 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 0, g: 0, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaMapsColor7.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaMapsColor7.mat index b9d534464cc..0090d265263 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaMapsColor7.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaMapsColor7.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -151,3 +151,4 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 0.7432952, g: 0.41200238, b: 0.23370826, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaMapsColor8.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaMapsColor8.mat index d0f4bde2009..01909e73a74 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaMapsColor8.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaMapsColor8.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -151,3 +151,4 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 0.36810714, g: 0.2733484, b: 0.13229597, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaMapsColor9.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaMapsColor9.mat index f91a3b960c5..af73340c684 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaMapsColor9.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaMapsColor9.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -151,3 +151,4 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 0.2767195, g: 0.7864337, b: 0.067519665, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaNoMapsColor0.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaNoMapsColor0.mat index 5072c70430e..e8488e0e02e 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaNoMapsColor0.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaNoMapsColor0.mat @@ -137,6 +137,7 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 0.93979335, g: 0.6686727, b: 0.41962677, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &2378779546398475007 MonoBehaviour: m_ObjectHideFlags: 11 @@ -149,4 +150,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaNoMapsColor1.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaNoMapsColor1.mat index 585867a233f..f4b6300c0df 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaNoMapsColor1.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaNoMapsColor1.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -150,3 +150,4 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 0, g: 0, b: 0, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaNoMapsColor10.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaNoMapsColor10.mat index 62922baac62..602dbd45356 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaNoMapsColor10.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaNoMapsColor10.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -150,3 +150,4 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 0.235515, g: 0.43693548, b: 0.99629295, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaNoMapsColor2.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaNoMapsColor2.mat index 2b6f37b0389..adc958103c3 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaNoMapsColor2.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaNoMapsColor2.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -150,3 +150,4 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 0.5054048, g: 0.6437694, b: 0.013086677, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaNoMapsColor3.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaNoMapsColor3.mat index a578a78860e..e1cbcc0d03f 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaNoMapsColor3.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaNoMapsColor3.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -150,3 +150,4 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 0.5665006, g: 0.11578524, b: 0.30392796, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaNoMapsColor4.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaNoMapsColor4.mat index 8e577bdfd17..75b05a08b96 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaNoMapsColor4.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaNoMapsColor4.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -150,3 +150,4 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 0, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaNoMapsColor5.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaNoMapsColor5.mat index ee13ff3260c..fa40d21a125 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaNoMapsColor5.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaNoMapsColor5.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -150,3 +150,4 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 0.88197744, g: 0.40530545, b: 0.4116885, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaNoMapsColor6.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaNoMapsColor6.mat index 87484a26e43..7babf7521c8 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaNoMapsColor6.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaNoMapsColor6.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -150,3 +150,4 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 1, g: 0, b: 0, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaNoMapsColor7.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaNoMapsColor7.mat index 5387eb99d4c..cf3dc0264ec 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaNoMapsColor7.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaNoMapsColor7.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -150,3 +150,4 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 0.2935689, g: 0.5865571, b: 0.18267727, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaNoMapsColor8.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaNoMapsColor8.mat index 726d584182a..d9a2fe9542d 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaNoMapsColor8.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaNoMapsColor8.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -150,3 +150,4 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 0.89728105, g: 0.5676754, b: 0.3567497, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaNoMapsColor9.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaNoMapsColor9.mat index cdd3ff53e27..9c65316144b 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaNoMapsColor9.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/Color/PBRSpecularSpecularAlphaNoMapsColor9.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -150,3 +150,4 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 0.09358001, g: 0.33636266, b: 0.6998408, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaMaps0.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaMaps0.mat index 21ca834b914..a0cef7625c8 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaMaps0.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaMaps0.mat @@ -139,6 +139,7 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &2378779546398475007 MonoBehaviour: m_ObjectHideFlags: 11 @@ -151,4 +152,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaMaps1.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaMaps1.mat index e5b7c752138..ed1b6eba5a8 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaMaps1.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaMaps1.mat @@ -139,6 +139,7 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &2378779546398475007 MonoBehaviour: m_ObjectHideFlags: 11 @@ -151,4 +152,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaMaps10.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaMaps10.mat index 751be2a1e1a..746d52c4c83 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaMaps10.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaMaps10.mat @@ -139,6 +139,7 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &2378779546398475007 MonoBehaviour: m_ObjectHideFlags: 11 @@ -151,4 +152,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaMaps2.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaMaps2.mat index d8911976868..f404d8fad5f 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaMaps2.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaMaps2.mat @@ -139,6 +139,7 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &2378779546398475007 MonoBehaviour: m_ObjectHideFlags: 11 @@ -151,4 +152,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaMaps3.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaMaps3.mat index f12e22e039b..a28c2c355ef 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaMaps3.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaMaps3.mat @@ -139,6 +139,7 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &2378779546398475007 MonoBehaviour: m_ObjectHideFlags: 11 @@ -151,4 +152,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaMaps4.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaMaps4.mat index 50a222996ae..4d5a91aab1e 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaMaps4.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaMaps4.mat @@ -139,6 +139,7 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &2378779546398475007 MonoBehaviour: m_ObjectHideFlags: 11 @@ -151,4 +152,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaMaps5.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaMaps5.mat index 7f5a590e04d..eaa136ba35b 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaMaps5.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaMaps5.mat @@ -139,6 +139,7 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &2378779546398475007 MonoBehaviour: m_ObjectHideFlags: 11 @@ -151,4 +152,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaMaps6.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaMaps6.mat index 282f9ed1744..89eef40a9cb 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaMaps6.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaMaps6.mat @@ -139,6 +139,7 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &2378779546398475007 MonoBehaviour: m_ObjectHideFlags: 11 @@ -151,4 +152,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaMaps7.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaMaps7.mat index cab19bca8da..94fb3ea59af 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaMaps7.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaMaps7.mat @@ -139,6 +139,7 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &2378779546398475007 MonoBehaviour: m_ObjectHideFlags: 11 @@ -151,4 +152,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaMaps8.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaMaps8.mat index 3bd4ea21745..055aaacf102 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaMaps8.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaMaps8.mat @@ -139,6 +139,7 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &2378779546398475007 MonoBehaviour: m_ObjectHideFlags: 11 @@ -151,4 +152,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaMaps9.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaMaps9.mat index 00e976573fe..aa57a5e18b9 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaMaps9.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaMaps9.mat @@ -139,6 +139,7 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &2378779546398475007 MonoBehaviour: m_ObjectHideFlags: 11 @@ -151,4 +152,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaNoMaps0.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaNoMaps0.mat index 88596103ae1..e19b2e80a86 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaNoMaps0.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaNoMaps0.mat @@ -138,6 +138,7 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &2378779546398475007 MonoBehaviour: m_ObjectHideFlags: 11 @@ -150,4 +151,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaNoMaps1.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaNoMaps1.mat index 1b7f0206a19..02dd904b1b6 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaNoMaps1.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaNoMaps1.mat @@ -138,6 +138,7 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &2378779546398475007 MonoBehaviour: m_ObjectHideFlags: 11 @@ -150,4 +151,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaNoMaps10.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaNoMaps10.mat index f8f2078392d..c9031d15870 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaNoMaps10.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaNoMaps10.mat @@ -138,6 +138,7 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &2378779546398475007 MonoBehaviour: m_ObjectHideFlags: 11 @@ -150,4 +151,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaNoMaps2.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaNoMaps2.mat index 401f96492de..e5586b3678d 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaNoMaps2.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaNoMaps2.mat @@ -138,6 +138,7 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &2378779546398475007 MonoBehaviour: m_ObjectHideFlags: 11 @@ -150,4 +151,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaNoMaps3.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaNoMaps3.mat index 0306a89f484..d88c722ee20 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaNoMaps3.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaNoMaps3.mat @@ -138,6 +138,7 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &2378779546398475007 MonoBehaviour: m_ObjectHideFlags: 11 @@ -150,4 +151,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaNoMaps4.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaNoMaps4.mat index aaf01507102..5c5e8081414 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaNoMaps4.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaNoMaps4.mat @@ -138,6 +138,7 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &2378779546398475007 MonoBehaviour: m_ObjectHideFlags: 11 @@ -150,4 +151,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaNoMaps5.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaNoMaps5.mat index 294836852e4..43e99d6eb9c 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaNoMaps5.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaNoMaps5.mat @@ -138,6 +138,7 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &2378779546398475007 MonoBehaviour: m_ObjectHideFlags: 11 @@ -150,4 +151,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaNoMaps6.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaNoMaps6.mat index aa74981a5bb..4e8956c1f3d 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaNoMaps6.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaNoMaps6.mat @@ -138,6 +138,7 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &2378779546398475007 MonoBehaviour: m_ObjectHideFlags: 11 @@ -150,4 +151,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaNoMaps7.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaNoMaps7.mat index f698abc3cca..9a365a27f4c 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaNoMaps7.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaNoMaps7.mat @@ -138,6 +138,7 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &2378779546398475007 MonoBehaviour: m_ObjectHideFlags: 11 @@ -150,4 +151,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaNoMaps8.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaNoMaps8.mat index c3bd11f911a..6cbf25d197c 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaNoMaps8.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaNoMaps8.mat @@ -138,6 +138,7 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &2378779546398475007 MonoBehaviour: m_ObjectHideFlags: 11 @@ -150,4 +151,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaNoMaps9.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaNoMaps9.mat index a97d3c0294d..65c127c2b52 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaNoMaps9.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularAlbedoAlphaNoMaps9.mat @@ -138,6 +138,7 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &2378779546398475007 MonoBehaviour: m_ObjectHideFlags: 11 @@ -150,4 +151,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaMaps0.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaMaps0.mat index 3accd9424a8..2644bda54de 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaMaps0.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaMaps0.mat @@ -138,6 +138,7 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &2378779546398475007 MonoBehaviour: m_ObjectHideFlags: 11 @@ -150,4 +151,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaMaps1.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaMaps1.mat index a5be79044d8..f3813d8b282 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaMaps1.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaMaps1.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -151,3 +151,4 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaMaps10.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaMaps10.mat index 4a966f23bf5..eff613e6d05 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaMaps10.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaMaps10.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -151,3 +151,4 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaMaps2.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaMaps2.mat index 4c0235b0a16..f1b95cf44d0 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaMaps2.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaMaps2.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -151,3 +151,4 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaMaps3.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaMaps3.mat index 5474203bce4..51eb67d4cdd 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaMaps3.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaMaps3.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -151,3 +151,4 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaMaps4.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaMaps4.mat index 544d09fd399..8733b57ede4 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaMaps4.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaMaps4.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -151,3 +151,4 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaMaps5.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaMaps5.mat index 3abe47f0690..ffe457b4118 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaMaps5.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaMaps5.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -151,3 +151,4 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaMaps6.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaMaps6.mat index dfdc761c2de..8f7f730a907 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaMaps6.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaMaps6.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -151,3 +151,4 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaMaps7.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaMaps7.mat index a3755a14f38..86708c7c163 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaMaps7.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaMaps7.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -151,3 +151,4 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaMaps8.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaMaps8.mat index 310f9955d7f..c3ff925929c 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaMaps8.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaMaps8.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -151,3 +151,4 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaMaps9.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaMaps9.mat index 29ea90365cd..52cff0733de 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaMaps9.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaMaps9.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -151,3 +151,4 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaNoMaps0.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaNoMaps0.mat index 871965eaa21..e670864e072 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaNoMaps0.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaNoMaps0.mat @@ -137,6 +137,7 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &2378779546398475007 MonoBehaviour: m_ObjectHideFlags: 11 @@ -149,4 +150,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaNoMaps1.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaNoMaps1.mat index cc5e647848b..c6388cd525c 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaNoMaps1.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaNoMaps1.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -150,3 +150,4 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaNoMaps10.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaNoMaps10.mat index 316b725cad5..becfc315857 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaNoMaps10.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaNoMaps10.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -150,3 +150,4 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaNoMaps2.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaNoMaps2.mat index 3d37d554c29..890c829587d 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaNoMaps2.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaNoMaps2.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -150,3 +150,4 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaNoMaps3.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaNoMaps3.mat index 030b6a80b77..b47cd1efe28 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaNoMaps3.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaNoMaps3.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -150,3 +150,4 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaNoMaps4.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaNoMaps4.mat index 2ad5f2aa231..bfd1cadfbe0 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaNoMaps4.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaNoMaps4.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -150,3 +150,4 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaNoMaps5.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaNoMaps5.mat index ae5978bb670..3e7c40f6628 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaNoMaps5.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaNoMaps5.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -150,3 +150,4 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaNoMaps6.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaNoMaps6.mat index b4145362493..f4f2bedf4be 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaNoMaps6.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaNoMaps6.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -150,3 +150,4 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaNoMaps7.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaNoMaps7.mat index e3e016ca905..0784d50c079 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaNoMaps7.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaNoMaps7.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -150,3 +150,4 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaNoMaps8.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaNoMaps8.mat index a7046299e65..f0662e5266a 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaNoMaps8.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaNoMaps8.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -150,3 +150,4 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaNoMaps9.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaNoMaps9.mat index 9c2ace62904..18152b68f54 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaNoMaps9.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/011_PBS_EnvironmentBRDF_SpecularSpheres/NoColor/PBRSpecularSpecularAlphaNoMaps9.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -150,3 +150,4 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere.mat index 8a82688af2e..c63f9e83a52 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere.mat @@ -139,6 +139,7 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &2378779546398475007 MonoBehaviour: m_ObjectHideFlags: 11 @@ -151,4 +152,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere1.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere1.mat index 232ca61e020..808d3985111 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere1.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere1.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -152,3 +152,4 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere10.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere10.mat index 87d7f94c9ea..a5e21179c8e 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere10.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere10.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -152,3 +152,4 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere11.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere11.mat index e024b854362..7b20cbd7c54 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere11.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere11.mat @@ -139,6 +139,7 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &2195807599642219274 MonoBehaviour: m_ObjectHideFlags: 11 @@ -151,4 +152,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere12.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere12.mat index 0b26626f7d5..be6d083f93c 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere12.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere12.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -152,3 +152,4 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere13.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere13.mat index 370d9ea5168..5daa73ce229 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere13.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere13.mat @@ -139,6 +139,7 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &4968206030522163895 MonoBehaviour: m_ObjectHideFlags: 11 @@ -151,4 +152,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere14.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere14.mat index c9806208082..915849bf6a9 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere14.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere14.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -152,3 +152,4 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere15.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere15.mat index ddd4f12b9cc..4cead8b10a4 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere15.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere15.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -152,3 +152,4 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere16.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere16.mat index 6c21f0f38f1..1a8d22a6a99 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere16.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere16.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -152,3 +152,4 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere17.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere17.mat index 21f73868efc..2b837cbb114 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere17.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere17.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -152,3 +152,4 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere18.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere18.mat index 6de064497eb..4134c83aea0 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere18.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere18.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -152,3 +152,4 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere19.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere19.mat index b83db7d7199..a76212d32d2 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere19.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere19.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -152,3 +152,4 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere2.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere2.mat index 5ee4347b9ba..a58aa7c4888 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere2.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere2.mat @@ -139,6 +139,7 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &4650732631101754418 MonoBehaviour: m_ObjectHideFlags: 11 @@ -151,4 +152,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere20.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere20.mat index dfc38709f29..c7661bd92b6 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere20.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere20.mat @@ -139,6 +139,7 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &5953474538914956738 MonoBehaviour: m_ObjectHideFlags: 11 @@ -151,4 +152,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere21.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere21.mat index f2ad82e1b94..5c771c359e0 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere21.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere21.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -152,3 +152,4 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere3.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere3.mat index a5fd234a392..d3c1c65be7d 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere3.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere3.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -152,3 +152,4 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere4.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere4.mat index 92804cf3b67..baa5f13f598 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere4.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere4.mat @@ -139,6 +139,7 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &4243513974690905907 MonoBehaviour: m_ObjectHideFlags: 11 @@ -151,4 +152,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere5.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere5.mat index 19247d7cd50..40f869bc26a 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere5.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere5.mat @@ -139,6 +139,7 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &7489248718814999123 MonoBehaviour: m_ObjectHideFlags: 11 @@ -151,4 +152,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere6.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere6.mat index 7226e733e43..157dbe6b731 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere6.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere6.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -152,3 +152,4 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere7.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere7.mat index acf0a9ab994..4bafbd334d5 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere7.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere7.mat @@ -139,6 +139,7 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &4717768852030574692 MonoBehaviour: m_ObjectHideFlags: 11 @@ -151,4 +152,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere8.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere8.mat index 40b68ca2627..c4b5c92dfb5 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere8.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere8.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -152,3 +152,4 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere9.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere9.mat index 873da67cbde..06bc84d617e 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere9.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/012_PBS_EnvironmentBRDF_Spheres/PBRSphere9.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -152,3 +152,4 @@ Material: - _MetallicSpecColor: {r: 0, g: 0.19999996, b: 0.19999996, a: 0.2} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/013_CameraMulti_Splitscreen/Materials/blue.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/013_CameraMulti_Splitscreen/Materials/blue.mat index 6e839307144..bb10e952649 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/013_CameraMulti_Splitscreen/Materials/blue.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/013_CameraMulti_Splitscreen/Materials/blue.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -129,3 +129,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/013_CameraMulti_Splitscreen/Materials/green.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/013_CameraMulti_Splitscreen/Materials/green.mat index cc376dcef71..01efeb2f917 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/013_CameraMulti_Splitscreen/Materials/green.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/013_CameraMulti_Splitscreen/Materials/green.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -129,3 +129,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/013_CameraMulti_Splitscreen/Materials/red.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/013_CameraMulti_Splitscreen/Materials/red.mat index e7bb6141c77..f469bcb2b21 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/013_CameraMulti_Splitscreen/Materials/red.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/013_CameraMulti_Splitscreen/Materials/red.mat @@ -116,6 +116,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &4448076703450405270 MonoBehaviour: m_ObjectHideFlags: 11 @@ -128,4 +129,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/013_CameraMulti_Splitscreen/Materials/yellow.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/013_CameraMulti_Splitscreen/Materials/yellow.mat index 75374ba5c2f..eec3816b172 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/013_CameraMulti_Splitscreen/Materials/yellow.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/013_CameraMulti_Splitscreen/Materials/yellow.mat @@ -116,6 +116,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &3704495100615245849 MonoBehaviour: m_ObjectHideFlags: 11 @@ -128,4 +129,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/014_CameraMulti_MiniMap/red.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/014_CameraMulti_MiniMap/red.mat index 678d2f4c07e..5040b377e1d 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/014_CameraMulti_MiniMap/red.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/014_CameraMulti_MiniMap/red.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -129,3 +129,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/015_CameraMulti_FPSCam/blue.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/015_CameraMulti_FPSCam/blue.mat index 8fa2bbf7832..24358fab9cc 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/015_CameraMulti_FPSCam/blue.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/015_CameraMulti_FPSCam/blue.mat @@ -116,6 +116,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &7520433432322078338 MonoBehaviour: m_ObjectHideFlags: 11 @@ -128,4 +129,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/015_CameraMulti_FPSCam/red.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/015_CameraMulti_FPSCam/red.mat index 19e20122c17..e0788347fd0 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/015_CameraMulti_FPSCam/red.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/015_CameraMulti_FPSCam/red.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -129,3 +129,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/020_Lighting_BasicDirectional/PhysicallyBased_NoReceiveShadows.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/020_Lighting_BasicDirectional/PhysicallyBased_NoReceiveShadows.mat index 8b1da338c32..246562f9003 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/020_Lighting_BasicDirectional/PhysicallyBased_NoReceiveShadows.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/020_Lighting_BasicDirectional/PhysicallyBased_NoReceiveShadows.mat @@ -125,6 +125,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &7216049310591378603 MonoBehaviour: m_ObjectHideFlags: 11 @@ -137,4 +138,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/020_Lighting_BasicDirectional/SimpleLighting_NoReceiveShadows.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/020_Lighting_BasicDirectional/SimpleLighting_NoReceiveShadows.mat index 917b928c7ee..2c823f9690d 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/020_Lighting_BasicDirectional/SimpleLighting_NoReceiveShadows.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/020_Lighting_BasicDirectional/SimpleLighting_NoReceiveShadows.mat @@ -125,6 +125,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &1290122637615856472 MonoBehaviour: m_ObjectHideFlags: 11 @@ -137,4 +138,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/026_Shader_PBRscene/BenchDrill/materials/kabel.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/026_Shader_PBRscene/BenchDrill/materials/kabel.mat index c3558d77259..b5aee174e54 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/026_Shader_PBRscene/BenchDrill/materials/kabel.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/026_Shader_PBRscene/BenchDrill/materials/kabel.mat @@ -140,6 +140,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 0} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &4313290387182987576 MonoBehaviour: m_ObjectHideFlags: 11 @@ -152,4 +153,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/026_Shader_PBRscene/BenchDrill/materials/korpus.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/026_Shader_PBRscene/BenchDrill/materials/korpus.mat index d2a4f9a1ad9..766d34cccc2 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/026_Shader_PBRscene/BenchDrill/materials/korpus.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/026_Shader_PBRscene/BenchDrill/materials/korpus.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -112,7 +112,9 @@ Material: m_Offset: {x: 0, y: 0} m_Ints: [] m_Floats: + - _AddPrecomputedVelocity: 0 - _AlphaClip: 0 + - _AlphaToMask: 0 - _Blend: 0 - _BlendModePreserveSpecular: 1 - _BumpScale: 1 @@ -147,6 +149,7 @@ Material: - _Surface: 0 - _UVSec: 0 - _WorkflowMode: 1 + - _XRMotionVectorsPass: 1 - _ZWrite: 1 m_Colors: - _BaseColor: {r: 1, g: 1, b: 1, a: 1} @@ -154,3 +157,4 @@ Material: - _EmissionColor: {r: 4.594794, g: 3.0595748, b: 1.1339971, a: 1} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/026_Shader_PBRscene/BenchDrill/materials/kozhuh.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/026_Shader_PBRscene/BenchDrill/materials/kozhuh.mat index 8e7ce5dc42a..8b7d6e1d344 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/026_Shader_PBRscene/BenchDrill/materials/kozhuh.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/026_Shader_PBRscene/BenchDrill/materials/kozhuh.mat @@ -140,6 +140,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 0} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &6469696794627641041 MonoBehaviour: m_ObjectHideFlags: 11 @@ -152,4 +153,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/026_Shader_PBRscene/BenchDrill/materials/motor.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/026_Shader_PBRscene/BenchDrill/materials/motor.mat index 3f98639fc30..d83a4cc4a7d 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/026_Shader_PBRscene/BenchDrill/materials/motor.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/026_Shader_PBRscene/BenchDrill/materials/motor.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -153,3 +153,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 0} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/026_Shader_PBRscene/BenchDrill/materials/spindle.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/026_Shader_PBRscene/BenchDrill/materials/spindle.mat index 912c0d4b07b..faa6d565385 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/026_Shader_PBRscene/BenchDrill/materials/spindle.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/026_Shader_PBRscene/BenchDrill/materials/spindle.mat @@ -140,6 +140,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 0} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &391571561504505556 MonoBehaviour: m_ObjectHideFlags: 11 @@ -152,4 +153,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/026_Shader_PBRscene/BenchDrill/materials/stanina.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/026_Shader_PBRscene/BenchDrill/materials/stanina.mat index c6a0176a7bb..530a7811c4d 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/026_Shader_PBRscene/BenchDrill/materials/stanina.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/026_Shader_PBRscene/BenchDrill/materials/stanina.mat @@ -140,6 +140,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 0} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &1303672152882122231 MonoBehaviour: m_ObjectHideFlags: 11 @@ -152,4 +153,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/026_Shader_PBRscene/BenchDrill/materials/stanina_vk.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/026_Shader_PBRscene/BenchDrill/materials/stanina_vk.mat index 79f0ec532ef..6a702e4b41e 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/026_Shader_PBRscene/BenchDrill/materials/stanina_vk.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/026_Shader_PBRscene/BenchDrill/materials/stanina_vk.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -153,3 +153,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 0} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/026_Shader_PBRscene/BenchDrill/materials/top.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/026_Shader_PBRscene/BenchDrill/materials/top.mat index 70a7191cba8..a765a93afc2 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/026_Shader_PBRscene/BenchDrill/materials/top.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/026_Shader_PBRscene/BenchDrill/materials/top.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -153,3 +153,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 0} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/026_Shader_PBRscene/BenchDrill/materials/val.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/026_Shader_PBRscene/BenchDrill/materials/val.mat index c1c01a0cb3a..f7312050281 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/026_Shader_PBRscene/BenchDrill/materials/val.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/026_Shader_PBRscene/BenchDrill/materials/val.mat @@ -140,6 +140,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 0} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &6562641413808166721 MonoBehaviour: m_ObjectHideFlags: 11 @@ -152,4 +153,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/1.Lit-Cutout.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/1.Lit-Cutout.mat index 93e490df0b5..aa4e734bd97 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/1.Lit-Cutout.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/1.Lit-Cutout.mat @@ -123,6 +123,7 @@ Material: - _EmissionColor: {r: 4.594794, g: 4.594794, b: 4.594794, a: 1} - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &2924155635232868104 MonoBehaviour: m_ObjectHideFlags: 11 @@ -135,4 +136,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/1.Lit-Fade.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/1.Lit-Fade.mat index 279bc67273d..2230e433146 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/1.Lit-Fade.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/1.Lit-Fade.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -28,7 +28,8 @@ Material: - _EMISSION - _NORMALMAP - _SURFACE_TYPE_TRANSPARENT - m_InvalidKeywords: [] + m_InvalidKeywords: + - _FLIPBOOKBLENDING_OFF m_LightmapFlags: 2 m_EnableInstancingVariants: 0 m_DoubleSidedGI: 0 @@ -86,6 +87,7 @@ Material: m_Ints: [] m_Floats: - _AlphaClip: 0 + - _AlphaToMask: 0 - _Blend: 0 - _BlendModePreserveSpecular: 0 - _BlendOp: 0 @@ -136,3 +138,4 @@ Material: - _EmissionColor: {r: 4.594794, g: 4.594794, b: 4.594794, a: 1} - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/1.Lit-Shadow-Cutout.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/1.Lit-Shadow-Cutout.mat index dfdb182be78..0082abcf0f2 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/1.Lit-Shadow-Cutout.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/1.Lit-Shadow-Cutout.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -136,3 +136,4 @@ Material: - _EmissionColor: {r: 4.594794, g: 4.594794, b: 4.594794, a: 1} - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/1.Lit-Shadow-Fade.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/1.Lit-Shadow-Fade.mat index 28d1d722fb3..b4c6abd80ad 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/1.Lit-Shadow-Fade.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/1.Lit-Shadow-Fade.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -28,7 +28,8 @@ Material: - _EMISSION - _NORMALMAP - _SURFACE_TYPE_TRANSPARENT - m_InvalidKeywords: [] + m_InvalidKeywords: + - _FLIPBOOKBLENDING_OFF m_LightmapFlags: 2 m_EnableInstancingVariants: 0 m_DoubleSidedGI: 0 @@ -86,6 +87,7 @@ Material: m_Ints: [] m_Floats: - _AlphaClip: 0 + - _AlphaToMask: 0 - _Blend: 0 - _BlendModePreserveSpecular: 0 - _BlendOp: 0 @@ -136,3 +138,4 @@ Material: - _EmissionColor: {r: 4.594794, g: 4.594794, b: 4.594794, a: 1} - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/1.Lit-Shadow-Opaque.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/1.Lit-Shadow-Opaque.mat index 3339fab693f..ebeca80f0d7 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/1.Lit-Shadow-Opaque.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/1.Lit-Shadow-Opaque.mat @@ -15,7 +15,8 @@ Material: - _EMISSION - _METALLICSPECGLOSSMAP - _NORMALMAP - m_InvalidKeywords: [] + m_InvalidKeywords: + - _FLIPBOOKBLENDING_OFF m_LightmapFlags: 2 m_EnableInstancingVariants: 0 m_DoubleSidedGI: 0 @@ -71,6 +72,7 @@ Material: m_Ints: [] m_Floats: - _AlphaClip: 0 + - _AlphaToMask: 0 - _Blend: 0 - _BlendModePreserveSpecular: 1 - _BlendOp: 0 @@ -121,6 +123,7 @@ Material: - _EmissionColor: {r: 0.7806068, g: 4.594794, b: 0, a: 1} - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &5130783043215099687 MonoBehaviour: m_ObjectHideFlags: 11 @@ -133,4 +136,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/1.Lit-Shadow-Transparent.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/1.Lit-Shadow-Transparent.mat index 937ae30dd00..b388addba83 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/1.Lit-Shadow-Transparent.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/1.Lit-Shadow-Transparent.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -141,3 +141,4 @@ Material: - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} - _TintColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/2.Unlit-Additive.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/2.Unlit-Additive.mat index 3b6a80cdd04..8ac24b1ca8b 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/2.Unlit-Additive.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/2.Unlit-Additive.mat @@ -122,6 +122,7 @@ Material: - _EmissionColor: {r: 4.594794, g: 4.594794, b: 4.594794, a: 1} - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &7595174566679455379 MonoBehaviour: m_ObjectHideFlags: 11 @@ -134,4 +135,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/2.Unlit-CameraFading-Fade.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/2.Unlit-CameraFading-Fade.mat index 4b7f5aa5c0b..14e759b0f80 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/2.Unlit-CameraFading-Fade.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/2.Unlit-CameraFading-Fade.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -136,3 +136,4 @@ Material: - _EmissionColor: {r: 4.594794, g: 4.594794, b: 4.594794, a: 1} - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/2.Unlit-CameraFading-Transparent.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/2.Unlit-CameraFading-Transparent.mat index ce3086242eb..148ae4ac58e 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/2.Unlit-CameraFading-Transparent.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/2.Unlit-CameraFading-Transparent.mat @@ -123,6 +123,7 @@ Material: - _EmissionColor: {r: 4.594794, g: 4.594794, b: 4.594794, a: 1} - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &1119655945628308448 MonoBehaviour: m_ObjectHideFlags: 11 @@ -135,4 +136,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/2.Unlit-Modulate.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/2.Unlit-Modulate.mat index c79c9c855d1..557e6b88ad8 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/2.Unlit-Modulate.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/2.Unlit-Modulate.mat @@ -123,6 +123,7 @@ Material: - _EmissionColor: {r: 4.594794, g: 4.594794, b: 4.594794, a: 1} - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &4158709294018868473 MonoBehaviour: m_ObjectHideFlags: 11 @@ -135,4 +136,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/2.Unlit-SoftParticles-Fade.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/2.Unlit-SoftParticles-Fade.mat index 71ebbd9c16c..3041f880870 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/2.Unlit-SoftParticles-Fade.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/2.Unlit-SoftParticles-Fade.mat @@ -124,6 +124,7 @@ Material: - _EmissionColor: {r: 4.594794, g: 4.594794, b: 4.594794, a: 1} - _SoftParticleFadeParams: {r: 0, g: 1, b: 0, a: 0} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &6816448251434543432 MonoBehaviour: m_ObjectHideFlags: 11 @@ -136,4 +137,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/2.Unlit-SoftParticles-Transparent.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/2.Unlit-SoftParticles-Transparent.mat index 4c0b65836fe..7db6937f0d5 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/2.Unlit-SoftParticles-Transparent.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/2.Unlit-SoftParticles-Transparent.mat @@ -124,6 +124,7 @@ Material: - _EmissionColor: {r: 4.594794, g: 4.594794, b: 4.594794, a: 1} - _SoftParticleFadeParams: {r: 0, g: 1, b: 0, a: 0} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &1651253450045955903 MonoBehaviour: m_ObjectHideFlags: 11 @@ -136,4 +137,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/2.Unlit-Subtractive.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/2.Unlit-Subtractive.mat index 64ffe24ca40..1e0c1b5593d 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/2.Unlit-Subtractive.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/2.Unlit-Subtractive.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -136,3 +136,4 @@ Material: - _EmissionColor: {r: 4.594794, g: 4.594794, b: 4.594794, a: 1} - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/3.Lit-Additive.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/3.Lit-Additive.mat index 4e4c3d94087..1dad6484235 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/3.Lit-Additive.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/3.Lit-Additive.mat @@ -121,6 +121,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &4512445395021624393 MonoBehaviour: m_ObjectHideFlags: 11 @@ -133,4 +134,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/3.Lit-Color.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/3.Lit-Color.mat index 8892187f027..5eb665c4782 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/3.Lit-Color.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/3.Lit-Color.mat @@ -121,6 +121,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &5018780211658097140 MonoBehaviour: m_ObjectHideFlags: 11 @@ -133,4 +134,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/3.Lit-Difference.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/3.Lit-Difference.mat index 1d570429b59..a6efeff4489 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/3.Lit-Difference.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/3.Lit-Difference.mat @@ -121,6 +121,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &3407332257721997827 MonoBehaviour: m_ObjectHideFlags: 11 @@ -133,4 +134,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/3.Lit-Multiply.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/3.Lit-Multiply.mat index 74c858c1393..32cf56b3d84 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/3.Lit-Multiply.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/3.Lit-Multiply.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -133,3 +133,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/3.Lit-Overlay.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/3.Lit-Overlay.mat index 45009d4e3fe..e64077b8c35 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/3.Lit-Overlay.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/3.Lit-Overlay.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -134,3 +134,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/3.Lit-Subtractive.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/3.Lit-Subtractive.mat index e0730f4af7e..74db0e8601f 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/3.Lit-Subtractive.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/3.Lit-Subtractive.mat @@ -121,6 +121,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &607434661605134500 MonoBehaviour: m_ObjectHideFlags: 11 @@ -133,4 +134,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/4.Lit-Opaque.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/4.Lit-Opaque.mat index c4378b6d2e4..b70a2800280 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/4.Lit-Opaque.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/4.Lit-Opaque.mat @@ -15,7 +15,8 @@ Material: - _EMISSION - _METALLICSPECGLOSSMAP - _NORMALMAP - m_InvalidKeywords: [] + m_InvalidKeywords: + - _FLIPBOOKBLENDING_OFF m_LightmapFlags: 2 m_EnableInstancingVariants: 0 m_DoubleSidedGI: 0 @@ -71,6 +72,7 @@ Material: m_Ints: [] m_Floats: - _AlphaClip: 0 + - _AlphaToMask: 0 - _Blend: 0 - _BlendModePreserveSpecular: 1 - _BlendOp: 0 @@ -122,6 +124,7 @@ Material: - _EmissionColor: {r: 0.7806068, g: 4.594794, b: 0, a: 1} - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &6769237588484150783 MonoBehaviour: m_ObjectHideFlags: 11 @@ -134,4 +137,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/5.Lit-TwoSided.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/5.Lit-TwoSided.mat index 16a5ec36d05..720bec540cd 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/5.Lit-TwoSided.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/5.Lit-TwoSided.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -137,3 +137,4 @@ Material: - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} - _TintColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/5.Unlit-TwoSided.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/5.Unlit-TwoSided.mat index c77ba6ebe7a..4b22f5c3193 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/5.Unlit-TwoSided.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/5.Unlit-TwoSided.mat @@ -115,6 +115,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &3441735669689148505 MonoBehaviour: m_ObjectHideFlags: 11 @@ -127,4 +128,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/6.Lit-FlipBookSimple-Fade.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/6.Lit-FlipBookSimple-Fade.mat index e469659d6b9..89c2cfd9b68 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/6.Lit-FlipBookSimple-Fade.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/6.Lit-FlipBookSimple-Fade.mat @@ -74,6 +74,7 @@ Material: m_Ints: [] m_Floats: - _AlphaClip: 0 + - _AlphaToMask: 0 - _Blend: 0 - _BlendModePreserveSpecular: 0 - _BlendOp: 0 @@ -124,6 +125,7 @@ Material: - _EmissionColor: {r: 4.594794, g: 4.594794, b: 4.594794, a: 1} - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &5803572847513578147 MonoBehaviour: m_ObjectHideFlags: 11 @@ -136,4 +138,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/6.Unlit-FlipBookBlended-Fade.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/6.Unlit-FlipBookBlended-Fade.mat index 7f48c1392ff..f0923ebaf7b 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/6.Unlit-FlipBookBlended-Fade.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/6.Unlit-FlipBookBlended-Fade.mat @@ -122,6 +122,7 @@ Material: - _EmissionColor: {r: 4.594794, g: 4.594794, b: 4.594794, a: 1} - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &7046824391579358999 MonoBehaviour: m_ObjectHideFlags: 11 @@ -134,4 +135,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/7.Lit-Transparent.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/7.Lit-Transparent.mat index d498771aa1a..1c6456597cc 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/7.Lit-Transparent.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/7.Lit-Transparent.mat @@ -14,6 +14,7 @@ Material: m_ValidKeywords: - _ALPHAPREMULTIPLY_ON - _DISTORTION_ON + - _EMISSION - _NORMALMAP - _SURFACE_TYPE_TRANSPARENT m_InvalidKeywords: @@ -126,6 +127,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &6591741492913736838 MonoBehaviour: m_ObjectHideFlags: 11 @@ -138,4 +140,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/8.Lit-Distortion.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/8.Lit-Distortion.mat index a9a37f7a37d..ec829d9ea73 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/8.Lit-Distortion.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/8.Lit-Distortion.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -26,6 +26,7 @@ Material: m_ModifiedSerializedProperties: 0 m_ValidKeywords: - _DISTORTION_ON + - _EMISSION - _FLIPBOOKBLENDING_ON - _NORMALMAP - _SURFACE_TYPE_TRANSPARENT @@ -136,3 +137,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/Plane.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/Plane.mat index fdea55cdfa4..175dca2d417 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/Plane.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/037_Particles/Materials/Plane.mat @@ -128,6 +128,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 0} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &6319853491600825126 MonoBehaviour: m_ObjectHideFlags: 11 @@ -140,4 +141,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/040_UpgradeScene/Materials/CurrentMaterials/ArchesMaterial.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/040_UpgradeScene/Materials/CurrentMaterials/ArchesMaterial.mat index 4948e5cbeda..f0ff79f9b57 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/040_UpgradeScene/Materials/CurrentMaterials/ArchesMaterial.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/040_UpgradeScene/Materials/CurrentMaterials/ArchesMaterial.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -152,3 +152,4 @@ Material: - _SpecColor: {r: 0.33823532, g: 0.33823532, b: 0.33823532, a: 1} - _SpecularColor: {r: 0.22745098, g: 0.22745098, b: 0.22745098, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/040_UpgradeScene/Materials/CurrentMaterials/BloxMaterial.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/040_UpgradeScene/Materials/CurrentMaterials/BloxMaterial.mat index 348a4f08ee0..6c3cb1459e9 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/040_UpgradeScene/Materials/CurrentMaterials/BloxMaterial.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/040_UpgradeScene/Materials/CurrentMaterials/BloxMaterial.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -151,3 +151,4 @@ Material: - _SpecColor: {r: 0.21568628, g: 0.21568628, b: 0.21568628, a: 1} - _SpecularColor: {r: 0.25490198, g: 0.25490198, b: 0.25490198, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/040_UpgradeScene/Materials/CurrentMaterials/ClockGlassMaterial.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/040_UpgradeScene/Materials/CurrentMaterials/ClockGlassMaterial.mat index 771859bb62d..78cbd4fb4c1 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/040_UpgradeScene/Materials/CurrentMaterials/ClockGlassMaterial.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/040_UpgradeScene/Materials/CurrentMaterials/ClockGlassMaterial.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -156,3 +156,4 @@ Material: - _SpecColor: {r: 1, g: 1, b: 1, a: 0} - _SpecularColor: {r: 0.23921569, g: 0.23921569, b: 0.23921569, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/040_UpgradeScene/Materials/CurrentMaterials/ClockMaterial.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/040_UpgradeScene/Materials/CurrentMaterials/ClockMaterial.mat index 8a457e1a4ed..a37bd1e0554 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/040_UpgradeScene/Materials/CurrentMaterials/ClockMaterial.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/040_UpgradeScene/Materials/CurrentMaterials/ClockMaterial.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -153,3 +153,4 @@ Material: - _SpecColor: {r: 1, g: 1, b: 1, a: 1} - _SpecularColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/040_UpgradeScene/Materials/CurrentMaterials/DollhouseMaterial.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/040_UpgradeScene/Materials/CurrentMaterials/DollhouseMaterial.mat index a0f5c5be91f..604f0e463e2 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/040_UpgradeScene/Materials/CurrentMaterials/DollhouseMaterial.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/040_UpgradeScene/Materials/CurrentMaterials/DollhouseMaterial.mat @@ -140,6 +140,7 @@ Material: - _SpecColor: {r: 1, g: 1, b: 1, a: 1} - _SpecularColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &4430986222480757237 MonoBehaviour: m_ObjectHideFlags: 11 @@ -152,4 +153,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/040_UpgradeScene/Materials/CurrentMaterials/DrawersMaterial.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/040_UpgradeScene/Materials/CurrentMaterials/DrawersMaterial.mat index 19cde836042..af83ae412d5 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/040_UpgradeScene/Materials/CurrentMaterials/DrawersMaterial.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/040_UpgradeScene/Materials/CurrentMaterials/DrawersMaterial.mat @@ -140,6 +140,7 @@ Material: - _SpecColor: {r: 0.41911763, g: 0.41911763, b: 0.41911763, a: 1} - _SpecularColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &987105362078538165 MonoBehaviour: m_ObjectHideFlags: 11 @@ -152,4 +153,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/040_UpgradeScene/Materials/CurrentMaterials/EyesMaterial.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/040_UpgradeScene/Materials/CurrentMaterials/EyesMaterial.mat index c3c53acd652..f1cc555ad83 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/040_UpgradeScene/Materials/CurrentMaterials/EyesMaterial.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/040_UpgradeScene/Materials/CurrentMaterials/EyesMaterial.mat @@ -139,6 +139,7 @@ Material: - _SpecColor: {r: 0.5960784, g: 0.5960784, b: 0.5960784, a: 1} - _SpecularColor: {r: 0.49264705, g: 0.49264705, b: 0.49264705, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &8571290814737199059 MonoBehaviour: m_ObjectHideFlags: 11 @@ -151,4 +152,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/040_UpgradeScene/Materials/CurrentMaterials/FlareParticleMaterial.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/040_UpgradeScene/Materials/CurrentMaterials/FlareParticleMaterial.mat index ab955b278c2..0220b10c2ea 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/040_UpgradeScene/Materials/CurrentMaterials/FlareParticleMaterial.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/040_UpgradeScene/Materials/CurrentMaterials/FlareParticleMaterial.mat @@ -88,6 +88,7 @@ Material: - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} - _TintColor: {r: 1, g: 1, b: 1, a: 0.5019608} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &4710356110149861696 MonoBehaviour: m_ObjectHideFlags: 11 @@ -100,4 +101,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/040_UpgradeScene/Materials/CurrentMaterials/FluffParticleMaterial.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/040_UpgradeScene/Materials/CurrentMaterials/FluffParticleMaterial.mat index 3a809854a94..5e2e74cad8c 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/040_UpgradeScene/Materials/CurrentMaterials/FluffParticleMaterial.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/040_UpgradeScene/Materials/CurrentMaterials/FluffParticleMaterial.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -143,3 +143,4 @@ Material: - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} - _TintColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/040_UpgradeScene/Materials/CurrentMaterials/GunMaterial.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/040_UpgradeScene/Materials/CurrentMaterials/GunMaterial.mat index cbc7a6ff9fc..0248ff38a65 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/040_UpgradeScene/Materials/CurrentMaterials/GunMaterial.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/040_UpgradeScene/Materials/CurrentMaterials/GunMaterial.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -153,3 +153,4 @@ Material: - _SpecColor: {r: 1, g: 1, b: 1, a: 1} - _SpecularColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/040_UpgradeScene/Materials/CurrentMaterials/HearseMaterial.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/040_UpgradeScene/Materials/CurrentMaterials/HearseMaterial.mat index 9faa98b48a8..7b54c085070 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/040_UpgradeScene/Materials/CurrentMaterials/HearseMaterial.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/040_UpgradeScene/Materials/CurrentMaterials/HearseMaterial.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -153,3 +153,4 @@ Material: - _SpecColor: {r: 1, g: 1, b: 1, a: 1} - _SpecularColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/040_UpgradeScene/Materials/CurrentMaterials/HellephantMaterial.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/040_UpgradeScene/Materials/CurrentMaterials/HellephantMaterial.mat index 37e61225a74..004d69ebffb 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/040_UpgradeScene/Materials/CurrentMaterials/HellephantMaterial.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/040_UpgradeScene/Materials/CurrentMaterials/HellephantMaterial.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -121,8 +121,10 @@ Material: m_Offset: {x: 0, y: 0} m_Ints: [] m_Floats: + - _AddPrecomputedVelocity: 0 - _AlphaClip: 0 - _AlphaTestRef: 0.5 + - _AlphaToMask: 0 - _Blend: 0 - _BlendModePreserveSpecular: 1 - _BumpScale: 1 @@ -157,6 +159,7 @@ Material: - _Surface: 0 - _UVSec: 0 - _WorkflowMode: 0 + - _XRMotionVectorsPass: 1 - _ZWrite: 1 m_Colors: - _BaseColor: {r: 1, g: 1, b: 1, a: 1} @@ -168,3 +171,4 @@ Material: - _SpecColor: {r: 0.283737, g: 0.2845931, b: 0.30147058, a: 1} - _SpecularColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/040_UpgradeScene/Materials/CurrentMaterials/PlanksMaterial.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/040_UpgradeScene/Materials/CurrentMaterials/PlanksMaterial.mat index 030a5db29bc..b05eb392b39 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/040_UpgradeScene/Materials/CurrentMaterials/PlanksMaterial.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/040_UpgradeScene/Materials/CurrentMaterials/PlanksMaterial.mat @@ -140,6 +140,7 @@ Material: - _SpecColor: {r: 1, g: 1, b: 1, a: 1} - _SpecularColor: {r: 0.2509804, g: 0.2509804, b: 0.2509804, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &5984242074890382976 MonoBehaviour: m_ObjectHideFlags: 11 @@ -152,4 +153,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/040_UpgradeScene/Materials/CurrentMaterials/PlayerMaterial.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/040_UpgradeScene/Materials/CurrentMaterials/PlayerMaterial.mat index 5670c01c725..33f14235d0d 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/040_UpgradeScene/Materials/CurrentMaterials/PlayerMaterial.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/040_UpgradeScene/Materials/CurrentMaterials/PlayerMaterial.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -153,3 +153,4 @@ Material: - _SpecColor: {r: 0.25, g: 0.21323529, b: 0.21323529, a: 1} - _SpecularColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/040_UpgradeScene/Materials/CurrentMaterials/RobotMaterial.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/040_UpgradeScene/Materials/CurrentMaterials/RobotMaterial.mat index 4787a24b2a4..c59f31516b8 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/040_UpgradeScene/Materials/CurrentMaterials/RobotMaterial.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/040_UpgradeScene/Materials/CurrentMaterials/RobotMaterial.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -153,3 +153,4 @@ Material: - _SpecColor: {r: 0.20588237, g: 0.20588237, b: 0.20588237, a: 1} - _SpecularColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/040_UpgradeScene/Materials/CurrentMaterials/SpinningTopMaterial.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/040_UpgradeScene/Materials/CurrentMaterials/SpinningTopMaterial.mat index ada1d3b27b2..5a3fb26161c 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/040_UpgradeScene/Materials/CurrentMaterials/SpinningTopMaterial.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/040_UpgradeScene/Materials/CurrentMaterials/SpinningTopMaterial.mat @@ -139,6 +139,7 @@ Material: - _SpecColor: {r: 0.72794116, g: 0.72794116, b: 0.72794116, a: 1} - _SpecularColor: {r: 0.7882353, g: 0.7882353, b: 0.7882353, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &890071247540972588 MonoBehaviour: m_ObjectHideFlags: 11 @@ -151,4 +152,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/040_UpgradeScene/Materials/CurrentMaterials/StarMaterial.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/040_UpgradeScene/Materials/CurrentMaterials/StarMaterial.mat index 43f8af1282d..d9169464df2 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/040_UpgradeScene/Materials/CurrentMaterials/StarMaterial.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/040_UpgradeScene/Materials/CurrentMaterials/StarMaterial.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -109,8 +109,10 @@ Material: m_Offset: {x: 0, y: 0} m_Ints: [] m_Floats: + - _AddPrecomputedVelocity: 0 - _AlphaClip: 0 - _AlphaTestRef: 0.5 + - _AlphaToMask: 0 - _Blend: 0 - _BlendModePreserveSpecular: 1 - _BumpScale: 1 @@ -146,6 +148,7 @@ Material: - _Surface: 0 - _UVSec: 0 - _WorkflowMode: 1 + - _XRMotionVectorsPass: 1 - _ZWrite: 1 m_Colors: - _BaseColor: {r: 0.84277236, g: 0.9044118, b: 0.7448097, a: 1} @@ -156,3 +159,4 @@ Material: - _SpecColor: {r: 0.5441177, g: 1, b: 0.5661258, a: 1} - _SpecularColor: {r: 0.74264705, g: 0.74264705, b: 0.74264705, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/040_UpgradeScene/Materials/CurrentMaterials/TrainMaterial.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/040_UpgradeScene/Materials/CurrentMaterials/TrainMaterial.mat index 380836257ae..238b38199c1 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/040_UpgradeScene/Materials/CurrentMaterials/TrainMaterial.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/040_UpgradeScene/Materials/CurrentMaterials/TrainMaterial.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -152,3 +152,4 @@ Material: - _SpecColor: {r: 0.49264705, g: 0.49264705, b: 0.49264705, a: 1} - _SpecularColor: {r: 0.2205882, g: 0.2205882, b: 0.2205882, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/040_UpgradeScene/Materials/CurrentMaterials/WallMaterial.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/040_UpgradeScene/Materials/CurrentMaterials/WallMaterial.mat index 8184d4a0c34..f85eb357979 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/040_UpgradeScene/Materials/CurrentMaterials/WallMaterial.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/040_UpgradeScene/Materials/CurrentMaterials/WallMaterial.mat @@ -140,6 +140,7 @@ Material: - _SpecColor: {r: 0.5661765, g: 0.5661765, b: 0.5661765, a: 1} - _SpecularColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &4508372676771204003 MonoBehaviour: m_ObjectHideFlags: 11 @@ -152,4 +153,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/040_UpgradeScene/Materials/CurrentMaterials/ZombearMaterial.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/040_UpgradeScene/Materials/CurrentMaterials/ZombearMaterial.mat index d59312136d5..2a6ccab08d1 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/040_UpgradeScene/Materials/CurrentMaterials/ZombearMaterial.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/040_UpgradeScene/Materials/CurrentMaterials/ZombearMaterial.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -109,8 +109,10 @@ Material: m_Offset: {x: 0, y: 0} m_Ints: [] m_Floats: + - _AddPrecomputedVelocity: 0 - _AlphaClip: 0 - _AlphaTestRef: 0.5 + - _AlphaToMask: 0 - _Blend: 0 - _BlendModePreserveSpecular: 1 - _BumpScale: 1 @@ -145,6 +147,7 @@ Material: - _Surface: 0 - _UVSec: 0 - _WorkflowMode: 0 + - _XRMotionVectorsPass: 1 - _ZWrite: 1 m_Colors: - _BaseColor: {r: 1, g: 1, b: 1, a: 1} @@ -156,3 +159,4 @@ Material: - _SpecColor: {r: 0.283737, g: 0.2845931, b: 0.30147058, a: 1} - _SpecularColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/040_UpgradeScene/Materials/CurrentMaterials/ZombunnyMaterial.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/040_UpgradeScene/Materials/CurrentMaterials/ZombunnyMaterial.mat index 1ad7e9ef5bc..7f97620e1c4 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/040_UpgradeScene/Materials/CurrentMaterials/ZombunnyMaterial.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/040_UpgradeScene/Materials/CurrentMaterials/ZombunnyMaterial.mat @@ -96,8 +96,10 @@ Material: m_Offset: {x: 0, y: 0} m_Ints: [] m_Floats: + - _AddPrecomputedVelocity: 0 - _AlphaClip: 0 - _AlphaTestRef: 0.5 + - _AlphaToMask: 0 - _Blend: 0 - _BlendModePreserveSpecular: 1 - _BumpScale: 1 @@ -132,6 +134,7 @@ Material: - _Surface: 0 - _UVSec: 0 - _WorkflowMode: 0 + - _XRMotionVectorsPass: 1 - _ZWrite: 1 m_Colors: - _BaseColor: {r: 1, g: 1, b: 1, a: 1} @@ -143,6 +146,7 @@ Material: - _SpecColor: {r: 0.283737, g: 0.2845931, b: 0.30147058, a: 1} - _SpecularColor: {r: 0.22794116, g: 0.22794116, b: 0.22794116, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &7720935081963420072 MonoBehaviour: m_ObjectHideFlags: 11 @@ -155,4 +159,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/045_CustomLWPipe/045_IndustrialGlass.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/045_CustomLWPipe/045_IndustrialGlass.mat index e0cc1be5c23..5109eb696b9 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/045_CustomLWPipe/045_IndustrialGlass.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/045_CustomLWPipe/045_IndustrialGlass.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -156,3 +156,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graph_ScreenCoordinates/Shaders/Default.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graph_ScreenCoordinates/Shaders/Default.mat index 1585156af92..9dc45d6ec5f 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graph_ScreenCoordinates/Shaders/Default.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graph_ScreenCoordinates/Shaders/Default.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!114 &-8171547978189306769 MonoBehaviour: m_ObjectHideFlags: 11 @@ -39,7 +39,8 @@ Material: m_Parent: {fileID: 0} m_ModifiedSerializedProperties: 0 m_ValidKeywords: [] - m_InvalidKeywords: [] + m_InvalidKeywords: + - _EMISSION m_LightmapFlags: 2 m_EnableInstancingVariants: 0 m_DoubleSidedGI: 0 @@ -71,3 +72,4 @@ Material: - _QueueOffset: 0 m_Colors: [] m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graph_ScreenCoordinates/Shaders/DepthBehind.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graph_ScreenCoordinates/Shaders/DepthBehind.mat index f2b62fde236..699c08a2392 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graph_ScreenCoordinates/Shaders/DepthBehind.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graph_ScreenCoordinates/Shaders/DepthBehind.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!114 &-333123546222251186 MonoBehaviour: m_ObjectHideFlags: 11 @@ -71,3 +71,4 @@ Material: - _QueueOffset: 0 m_Colors: [] m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graph_ScreenCoordinates/Shaders/PixelPosition.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graph_ScreenCoordinates/Shaders/PixelPosition.mat index 2255949c2fd..42955b23c03 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graph_ScreenCoordinates/Shaders/PixelPosition.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graph_ScreenCoordinates/Shaders/PixelPosition.mat @@ -25,7 +25,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -71,3 +71,4 @@ Material: - _QueueOffset: 0 m_Colors: [] m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graph_ScreenCoordinates/Shaders/PixelPositionVertex.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graph_ScreenCoordinates/Shaders/PixelPositionVertex.mat index 19c5160c6dd..d224b65a8ad 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graph_ScreenCoordinates/Shaders/PixelPositionVertex.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graph_ScreenCoordinates/Shaders/PixelPositionVertex.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!114 &-4169051720481437959 MonoBehaviour: m_ObjectHideFlags: 11 @@ -71,3 +71,4 @@ Material: - _QueueOffset: 0 m_Colors: [] m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graph_ScreenCoordinates/Shaders/RawScreenPos.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graph_ScreenCoordinates/Shaders/RawScreenPos.mat index 22352f08392..246cf553195 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graph_ScreenCoordinates/Shaders/RawScreenPos.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graph_ScreenCoordinates/Shaders/RawScreenPos.mat @@ -58,6 +58,7 @@ Material: - _QueueOffset: 0 m_Colors: [] m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &7887555085291401323 MonoBehaviour: m_ObjectHideFlags: 11 @@ -70,4 +71,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graph_ScreenCoordinates/Shaders/SampleSceneBehind.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graph_ScreenCoordinates/Shaders/SampleSceneBehind.mat index 606b7676eda..da2db5647be 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graph_ScreenCoordinates/Shaders/SampleSceneBehind.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graph_ScreenCoordinates/Shaders/SampleSceneBehind.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -58,6 +58,7 @@ Material: - _QueueOffset: 0 m_Colors: [] m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &906743257956362863 MonoBehaviour: m_ObjectHideFlags: 11 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graph_ScreenCoordinates/Shaders/ScaledScreenParams.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graph_ScreenCoordinates/Shaders/ScaledScreenParams.mat index 1c84df8d3c7..90652e6f0ff 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graph_ScreenCoordinates/Shaders/ScaledScreenParams.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graph_ScreenCoordinates/Shaders/ScaledScreenParams.mat @@ -29,10 +29,18 @@ Material: m_Texture: {fileID: 2800000, guid: 3d0e17e76a814b74485ac2cc376f29b6, type: 3} m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} + - _Integer_46312bc1e894490db8ee08e0421bb39e_fontTexture_3750603965_Texture2D: + m_Texture: {fileID: 2800000, guid: 3d0e17e76a814b74485ac2cc376f29b6, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} - _Integer_b436cc2908114a75b4be16d1cda9c36f_fontTexture_3750603965: m_Texture: {fileID: 2800000, guid: 3d0e17e76a814b74485ac2cc376f29b6, type: 3} m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} + - _Integer_b436cc2908114a75b4be16d1cda9c36f_fontTexture_3750603965_Texture2D: + m_Texture: {fileID: 2800000, guid: 3d0e17e76a814b74485ac2cc376f29b6, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} - unity_Lightmaps: m_Texture: {fileID: 0} m_Scale: {x: 1, y: 1} @@ -53,6 +61,7 @@ Material: - _QueueOffset: 0 m_Colors: [] m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &4603590758495620777 MonoBehaviour: m_ObjectHideFlags: 11 @@ -65,7 +74,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!114 &5610391679363293911 MonoBehaviour: m_ObjectHideFlags: 11 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graph_ScreenCoordinates/Shaders/ScreenParams.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graph_ScreenCoordinates/Shaders/ScreenParams.mat index d6b31a6f946..1e3c41e8320 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graph_ScreenCoordinates/Shaders/ScreenParams.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graph_ScreenCoordinates/Shaders/ScreenParams.mat @@ -45,10 +45,18 @@ Material: m_Texture: {fileID: 2800000, guid: 3d0e17e76a814b74485ac2cc376f29b6, type: 3} m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} + - _Integer_46312bc1e894490db8ee08e0421bb39e_fontTexture_3750603965_Texture2D: + m_Texture: {fileID: 2800000, guid: 3d0e17e76a814b74485ac2cc376f29b6, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} - _Integer_b436cc2908114a75b4be16d1cda9c36f_fontTexture_3750603965: m_Texture: {fileID: 2800000, guid: 3d0e17e76a814b74485ac2cc376f29b6, type: 3} m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} + - _Integer_b436cc2908114a75b4be16d1cda9c36f_fontTexture_3750603965_Texture2D: + m_Texture: {fileID: 2800000, guid: 3d0e17e76a814b74485ac2cc376f29b6, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} - unity_Lightmaps: m_Texture: {fileID: 0} m_Scale: {x: 1, y: 1} @@ -114,6 +122,7 @@ Material: - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} - _EmissionColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &7303538327059455385 MonoBehaviour: m_ObjectHideFlags: 11 @@ -142,4 +151,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graph_ScreenCoordinates/Shaders/ScreenPos.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graph_ScreenCoordinates/Shaders/ScreenPos.mat index 73258dfe7d4..4de6f8c20da 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graph_ScreenCoordinates/Shaders/ScreenPos.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graph_ScreenCoordinates/Shaders/ScreenPos.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -106,6 +106,7 @@ Material: - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} - _EmissionColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &6118219494609761105 MonoBehaviour: m_ObjectHideFlags: 11 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graph_ScreenCoordinates/Shaders/ScreenPosVertex.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graph_ScreenCoordinates/Shaders/ScreenPosVertex.mat index dacccca1d64..b82b72b0173 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graph_ScreenCoordinates/Shaders/ScreenPosVertex.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graph_ScreenCoordinates/Shaders/ScreenPosVertex.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!114 &-6719822700950037565 MonoBehaviour: m_ObjectHideFlags: 11 @@ -135,3 +135,4 @@ Material: - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} - _EmissionColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graphs/Graphs/PBR_Cutout.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graphs/Graphs/PBR_Cutout.mat index 0d2b77bebe1..6a757e466f4 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graphs/Graphs/PBR_Cutout.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graphs/Graphs/PBR_Cutout.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -41,6 +41,10 @@ Material: m_Texture: {fileID: 2800000, guid: 5f951043386624d62a1d57cf247df28f, type: 3} m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} + - _SampleTexture2D_6267e7f36a40a78f9f41ccbb0ecf6ff5_Texture_1_Texture2D: + m_Texture: {fileID: 2800000, guid: 5f951043386624d62a1d57cf247df28f, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} - _SampleTexture2D_C7F54749_Texture: m_Texture: {fileID: 2800000, guid: 5f951043386624d62a1d57cf247df28f, type: 3} m_Scale: {x: 1, y: 1} @@ -71,3 +75,4 @@ Material: - _QueueOffset: 0 m_Colors: [] m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graphs/Graphs/PBR_Maps.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graphs/Graphs/PBR_Maps.mat index cc0bd42fd1c..21a845f5d9e 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graphs/Graphs/PBR_Maps.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graphs/Graphs/PBR_Maps.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -73,6 +73,10 @@ Material: m_Texture: {fileID: 2800000, guid: 3ce0dda97ceda47cc8cd5e56abbc88fc, type: 3} m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} + - _SampleTexture2D_b8cefc8c2601d786b7febdd4c9ea565e_Texture_1_Texture2D: + m_Texture: {fileID: 2800000, guid: 3ce0dda97ceda47cc8cd5e56abbc88fc, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} - unity_Lightmaps: m_Texture: {fileID: 0} m_Scale: {x: 1, y: 1} @@ -91,3 +95,4 @@ Material: - _QueueOffset: 0 m_Colors: [] m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graphs/Graphs/PBR_Meta.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graphs/Graphs/PBR_Meta.mat index 80a5102982a..5f06b58acd0 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graphs/Graphs/PBR_Meta.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graphs/Graphs/PBR_Meta.mat @@ -54,6 +54,7 @@ Material: - _QueueOffset: 0 m_Colors: [] m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &599612425908954852 MonoBehaviour: m_ObjectHideFlags: 11 @@ -66,4 +67,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graphs/Graphs/PBR_Transparent.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graphs/Graphs/PBR_Transparent.mat index e9de0a1a0d8..d362265893b 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graphs/Graphs/PBR_Transparent.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graphs/Graphs/PBR_Transparent.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -49,6 +49,10 @@ Material: m_Texture: {fileID: 2800000, guid: 24e5d18252f5a47e5b5c5186f46181cf, type: 3} m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} + - _SampleTexture2D_590cc01e211b30889fb3622ae0e53368_Texture_1_Texture2D: + m_Texture: {fileID: 2800000, guid: 24e5d18252f5a47e5b5c5186f46181cf, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} - _SampleTexture2D_5D75851F_Texture: m_Texture: {fileID: 2800000, guid: f49c8d7d101cf49a5bcd2a3817c328f2, type: 3} m_Scale: {x: 1, y: 1} @@ -57,6 +61,10 @@ Material: m_Texture: {fileID: 2800000, guid: da6593a3e4b5a48a397c434f13c1b203, type: 3} m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} + - _SampleTexture2D_6d8641184915c78d980d81f5f53da29c_Texture_1_Texture2D: + m_Texture: {fileID: 2800000, guid: da6593a3e4b5a48a397c434f13c1b203, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} - _SampleTexture2D_7D4B5843_Texture: m_Texture: {fileID: 2800000, guid: 24e5d18252f5a47e5b5c5186f46181cf, type: 3} m_Scale: {x: 1, y: 1} @@ -85,6 +93,10 @@ Material: m_Texture: {fileID: 2800000, guid: f49c8d7d101cf49a5bcd2a3817c328f2, type: 3} m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} + - _SampleTexture2D_ce150abb5aa7c18f89f3e033be867d17_Texture_1_Texture2D: + m_Texture: {fileID: 2800000, guid: f49c8d7d101cf49a5bcd2a3817c328f2, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} - unity_Lightmaps: m_Texture: {fileID: 0} m_Scale: {x: 1, y: 1} @@ -103,3 +115,4 @@ Material: - _QueueOffset: 0 m_Colors: [] m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graphs/Graphs/ShaderGraphs_Unlit_Alpha.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graphs/Graphs/ShaderGraphs_Unlit_Alpha.mat index 240a9552d1c..bacd7f3f214 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graphs/Graphs/ShaderGraphs_Unlit_Alpha.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graphs/Graphs/ShaderGraphs_Unlit_Alpha.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -56,3 +56,4 @@ Material: - _QueueOffset: 0 m_Colors: [] m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graphs/Graphs/ShaderGraphs_Unlit_PreMul.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graphs/Graphs/ShaderGraphs_Unlit_PreMul.mat index ff0593c41db..12e0eb7b0ea 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graphs/Graphs/ShaderGraphs_Unlit_PreMul.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graphs/Graphs/ShaderGraphs_Unlit_PreMul.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -56,3 +56,4 @@ Material: - _QueueOffset: 0 m_Colors: [] m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graphs/Graphs/Unlit_Cutout.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graphs/Graphs/Unlit_Cutout.mat index acbb509fce9..04608f8fd0d 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graphs/Graphs/Unlit_Cutout.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graphs/Graphs/Unlit_Cutout.mat @@ -28,6 +28,10 @@ Material: m_Texture: {fileID: 2800000, guid: 5f951043386624d62a1d57cf247df28f, type: 3} m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} + - _SampleTexture2D_68fba37da5510889bb9ca883333ab10e_Texture_1_Texture2D: + m_Texture: {fileID: 2800000, guid: 5f951043386624d62a1d57cf247df28f, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} - _SampleTexture2D_BA409B65_Texture: m_Texture: {fileID: 2800000, guid: 5f951043386624d62a1d57cf247df28f, type: 3} m_Scale: {x: 1, y: 1} @@ -58,6 +62,7 @@ Material: - _QueueOffset: 0 m_Colors: [] m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &7996778305891107488 MonoBehaviour: m_ObjectHideFlags: 11 @@ -70,4 +75,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graphs/Graphs/Unlit_Maps.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graphs/Graphs/Unlit_Maps.mat index ddff189f5cd..c511f76bf84 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graphs/Graphs/Unlit_Maps.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graphs/Graphs/Unlit_Maps.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -65,10 +65,18 @@ Material: m_Texture: {fileID: 2800000, guid: 3ce0dda97ceda47cc8cd5e56abbc88fc, type: 3} m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} + - _SampleTexture2D_ed57e971c273708099fc7ece455492a5_Texture_1_Texture2D: + m_Texture: {fileID: 2800000, guid: 3ce0dda97ceda47cc8cd5e56abbc88fc, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} - _Texture2DAsset_814fc238b3976c8fa5396683016c9661_Out_0: m_Texture: {fileID: 2800000, guid: 16c6ebdb11ab24af7acb0aaf9b6fb1da, type: 3} m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} + - _Texture2DAsset_814fc238b3976c8fa5396683016c9661_Out_0_Texture2D: + m_Texture: {fileID: 2800000, guid: 16c6ebdb11ab24af7acb0aaf9b6fb1da, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} - _Texture2DAsset_9B725AD9_Out: m_Texture: {fileID: 2800000, guid: 16c6ebdb11ab24af7acb0aaf9b6fb1da, type: 3} m_Scale: {x: 1, y: 1} @@ -100,3 +108,4 @@ Material: m_Colors: - Vector3_A9D9C453: {r: 1, g: 1, b: 1, a: 0} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graphs_Override/Graph/PBR_Cutout_Override.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graphs_Override/Graph/PBR_Cutout_Override.mat index ff7628352fe..af4e5f5d4b2 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graphs_Override/Graph/PBR_Cutout_Override.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graphs_Override/Graph/PBR_Cutout_Override.mat @@ -30,6 +30,10 @@ Material: m_Texture: {fileID: 2800000, guid: 5f951043386624d62a1d57cf247df28f, type: 3} m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} + - _SampleTexture2D_6267e7f36a40a78f9f41ccbb0ecf6ff5_Texture_1_Texture2D: + m_Texture: {fileID: 2800000, guid: 5f951043386624d62a1d57cf247df28f, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} - _SampleTexture2D_C7F54749_Texture: m_Texture: {fileID: 2800000, guid: 5f951043386624d62a1d57cf247df28f, type: 3} m_Scale: {x: 1, y: 1} @@ -57,6 +61,7 @@ Material: m_Ints: [] m_Floats: - _AlphaClip: 1 + - _AlphaToMask: 1 - _Blend: 0 - _BlendModePreserveSpecular: 0 - _CastShadows: 1 @@ -73,6 +78,7 @@ Material: - _ZWriteControl: 0 m_Colors: [] m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &7279824311112696321 MonoBehaviour: m_ObjectHideFlags: 11 @@ -85,4 +91,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graphs_Override/Graph/PBR_Maps_Override.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graphs_Override/Graph/PBR_Maps_Override.mat index 9e00d768877..85ad806534a 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graphs_Override/Graph/PBR_Maps_Override.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graphs_Override/Graph/PBR_Maps_Override.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -74,6 +74,10 @@ Material: m_Texture: {fileID: 2800000, guid: 3ce0dda97ceda47cc8cd5e56abbc88fc, type: 3} m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} + - _SampleTexture2D_b8cefc8c2601d786b7febdd4c9ea565e_Texture_1_Texture2D: + m_Texture: {fileID: 2800000, guid: 3ce0dda97ceda47cc8cd5e56abbc88fc, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} - unity_Lightmaps: m_Texture: {fileID: 0} m_Scale: {x: 1, y: 1} @@ -89,6 +93,7 @@ Material: m_Ints: [] m_Floats: - _AlphaClip: 0 + - _AlphaToMask: 0 - _Blend: 0 - _BlendModePreserveSpecular: 0 - _CastShadows: 1 @@ -105,3 +110,4 @@ Material: - _ZWriteControl: 0 m_Colors: [] m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graphs_Override/Graph/PBR_Meta_Override.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graphs_Override/Graph/PBR_Meta_Override.mat index 91e47b20ad1..288f6ca967b 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graphs_Override/Graph/PBR_Meta_Override.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graphs_Override/Graph/PBR_Meta_Override.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -81,3 +81,4 @@ Material: - _ZWriteControl: 0 m_Colors: [] m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graphs_Override/Graph/PBR_Transparent_Override.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graphs_Override/Graph/PBR_Transparent_Override.mat index 9046afa4db7..53dde55d3a3 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graphs_Override/Graph/PBR_Transparent_Override.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graphs_Override/Graph/PBR_Transparent_Override.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -53,6 +53,10 @@ Material: m_Texture: {fileID: 2800000, guid: 24e5d18252f5a47e5b5c5186f46181cf, type: 3} m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} + - _SampleTexture2D_590cc01e211b30889fb3622ae0e53368_Texture_1_Texture2D: + m_Texture: {fileID: 2800000, guid: 24e5d18252f5a47e5b5c5186f46181cf, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} - _SampleTexture2D_5D75851F_Texture: m_Texture: {fileID: 2800000, guid: f49c8d7d101cf49a5bcd2a3817c328f2, type: 3} m_Scale: {x: 1, y: 1} @@ -61,6 +65,10 @@ Material: m_Texture: {fileID: 2800000, guid: da6593a3e4b5a48a397c434f13c1b203, type: 3} m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} + - _SampleTexture2D_6d8641184915c78d980d81f5f53da29c_Texture_1_Texture2D: + m_Texture: {fileID: 2800000, guid: da6593a3e4b5a48a397c434f13c1b203, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} - _SampleTexture2D_7D4B5843_Texture: m_Texture: {fileID: 2800000, guid: 24e5d18252f5a47e5b5c5186f46181cf, type: 3} m_Scale: {x: 1, y: 1} @@ -89,6 +97,10 @@ Material: m_Texture: {fileID: 2800000, guid: f49c8d7d101cf49a5bcd2a3817c328f2, type: 3} m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} + - _SampleTexture2D_ce150abb5aa7c18f89f3e033be867d17_Texture_1_Texture2D: + m_Texture: {fileID: 2800000, guid: f49c8d7d101cf49a5bcd2a3817c328f2, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} - unity_Lightmaps: m_Texture: {fileID: 0} m_Scale: {x: 1, y: 1} @@ -121,3 +133,4 @@ Material: - _ZWriteControl: 0 m_Colors: [] m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graphs_Override/Graph/Unlit_Alpha_Override.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graphs_Override/Graph/Unlit_Alpha_Override.mat index 69b6f0ba4d0..0e595f8071f 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graphs_Override/Graph/Unlit_Alpha_Override.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graphs_Override/Graph/Unlit_Alpha_Override.mat @@ -57,6 +57,7 @@ Material: - _ZWriteControl: 0 m_Colors: [] m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &2730129777239706481 MonoBehaviour: m_ObjectHideFlags: 11 @@ -69,4 +70,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graphs_Override/Graph/Unlit_Cutout_Override.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graphs_Override/Graph/Unlit_Cutout_Override.mat index d7ab616c1bf..91bc2b479da 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graphs_Override/Graph/Unlit_Cutout_Override.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graphs_Override/Graph/Unlit_Cutout_Override.mat @@ -32,6 +32,10 @@ Material: m_Texture: {fileID: 2800000, guid: 5f951043386624d62a1d57cf247df28f, type: 3} m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} + - _SampleTexture2D_68fba37da5510889bb9ca883333ab10e_Texture_1_Texture2D: + m_Texture: {fileID: 2800000, guid: 5f951043386624d62a1d57cf247df28f, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} - _SampleTexture2D_BA409B65_Texture: m_Texture: {fileID: 2800000, guid: 5f951043386624d62a1d57cf247df28f, type: 3} m_Scale: {x: 1, y: 1} @@ -59,6 +63,7 @@ Material: m_Ints: [] m_Floats: - _AlphaClip: 1 + - _AlphaToMask: 0 - _Blend: 0 - _CastShadows: 1 - _Cull: 2 @@ -72,6 +77,7 @@ Material: - _ZWriteControl: 0 m_Colors: [] m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &8504936887793165086 MonoBehaviour: m_ObjectHideFlags: 11 @@ -84,4 +90,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graphs_Override/Graph/Unlit_Maps_Override.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graphs_Override/Graph/Unlit_Maps_Override.mat index c3f68025275..99abfbe691b 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graphs_Override/Graph/Unlit_Maps_Override.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graphs_Override/Graph/Unlit_Maps_Override.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -66,10 +66,18 @@ Material: m_Texture: {fileID: 2800000, guid: 3ce0dda97ceda47cc8cd5e56abbc88fc, type: 3} m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} + - _SampleTexture2D_ed57e971c273708099fc7ece455492a5_Texture_1_Texture2D: + m_Texture: {fileID: 2800000, guid: 3ce0dda97ceda47cc8cd5e56abbc88fc, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} - _Texture2DAsset_814fc238b3976c8fa5396683016c9661_Out_0: m_Texture: {fileID: 2800000, guid: 16c6ebdb11ab24af7acb0aaf9b6fb1da, type: 3} m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} + - _Texture2DAsset_814fc238b3976c8fa5396683016c9661_Out_0_Texture2D: + m_Texture: {fileID: 2800000, guid: 16c6ebdb11ab24af7acb0aaf9b6fb1da, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} - _Texture2DAsset_9B725AD9_Out: m_Texture: {fileID: 2800000, guid: 16c6ebdb11ab24af7acb0aaf9b6fb1da, type: 3} m_Scale: {x: 1, y: 1} @@ -97,6 +105,7 @@ Material: m_Ints: [] m_Floats: - _AlphaClip: 0 + - _AlphaToMask: 0 - _Blend: 0 - _CastShadows: 1 - _Cull: 2 @@ -111,3 +120,4 @@ Material: m_Colors: - Vector3_A9D9C453: {r: 1, g: 1, b: 1, a: 0} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graphs_Override/Graph/Unlit_PreMul_Override.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graphs_Override/Graph/Unlit_PreMul_Override.mat index 8a3dfc85e89..165a1d2ed9a 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graphs_Override/Graph/Unlit_PreMul_Override.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/050_Shader_Graphs_Override/Graph/Unlit_PreMul_Override.mat @@ -57,6 +57,7 @@ Material: - _ZWriteControl: 0 m_Colors: [] m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &4411414950232509884 MonoBehaviour: m_ObjectHideFlags: 11 @@ -69,4 +70,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred/Deferred_GBuffer_Alpha_Visualization_Renderer.asset b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred/Deferred_GBuffer_Alpha_Visualization_Renderer.asset deleted file mode 100644 index e146dd38e62..00000000000 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred/Deferred_GBuffer_Alpha_Visualization_Renderer.asset +++ /dev/null @@ -1,93 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!114 &-4989252576251722143 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4d661a87bf0d747eda25e011da3db58c, type: 3} - m_Name: DeferredGBufferVisualizationRenderFeature - m_EditorClassIdentifier: - m_Active: 1 - visualizeShader: {fileID: 4800000, guid: 05f75adf3dbb04d61937b7c461ab5b4f, type: 3} - visualizeAlphaChannel: 1 ---- !u!114 &11400000 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: de640fe3d0db1804a85f9fc8f5cadab6, type: 3} - m_Name: Deferred_GBuffer_Alpha_Visualization_Renderer - m_EditorClassIdentifier: - debugShaders: - debugReplacementPS: {fileID: 4800000, guid: cf852408f2e174538bcd9b7fda1c5ae7, - type: 3} - hdrDebugViewPS: {fileID: 4800000, guid: 573620ae32aec764abd4d728906d2587, type: 3} - probeVolumeSamplingDebugComputeShader: {fileID: 7200000, guid: 53626a513ea68ce47b59dc1299fe3959, - type: 3} - probeVolumeResources: - probeVolumeDebugShader: {fileID: 4800000, guid: e5c6678ed2aaa91408dd3df699057aae, - type: 3} - probeVolumeFragmentationDebugShader: {fileID: 4800000, guid: 03cfc4915c15d504a9ed85ecc404e607, - type: 3} - probeVolumeOffsetDebugShader: {fileID: 4800000, guid: 53a11f4ebaebf4049b3638ef78dc9664, - type: 3} - probeVolumeSamplingDebugShader: {fileID: 4800000, guid: 8f96cd657dc40064aa21efcc7e50a2e7, - type: 3} - probeSamplingDebugMesh: {fileID: -3555484719484374845, guid: 57d7c4c16e2765b47a4d2069b311bffe, - type: 3} - probeSamplingDebugTexture: {fileID: 2800000, guid: 24ec0e140fb444a44ab96ee80844e18e, - type: 3} - m_RendererFeatures: - - {fileID: -4989252576251722143} - m_RendererFeatureMap: 6146d051379dc2ba - m_UseNativeRenderPass: 0 - postProcessData: {fileID: 0} - xrSystemData: {fileID: 11400000, guid: 60e1133243b97e347b653163a8c01b64, type: 2} - shaders: - blitPS: {fileID: 4800000, guid: c17132b1f77d20942aa75f8429c0f8bc, type: 3} - copyDepthPS: {fileID: 4800000, guid: d6dae50ee9e1bfa4db75f19f99355220, type: 3} - screenSpaceShadowPS: {fileID: 0} - samplingPS: {fileID: 4800000, guid: 04c410c9937594faa893a11dceb85f7e, type: 3} - stencilDeferredPS: {fileID: 4800000, guid: e9155b26e1bc55942a41e518703fe304, type: 3} - fallbackErrorPS: {fileID: 4800000, guid: e6e9a19c3678ded42a3bc431ebef7dbd, type: 3} - fallbackLoadingPS: {fileID: 4800000, guid: 7f888aff2ac86494babad1c2c5daeee2, type: 3} - materialErrorPS: {fileID: 0} - coreBlitPS: {fileID: 4800000, guid: 93446b5c5339d4f00b85c159e1159b7c, type: 3} - coreBlitColorAndDepthPS: {fileID: 4800000, guid: d104b2fc1ca6445babb8e90b0758136b, - type: 3} - blitHDROverlay: {fileID: 4800000, guid: a89bee29cffa951418fc1e2da94d1959, type: 3} - cameraMotionVector: {fileID: 4800000, guid: c56b7e0d4c7cb484e959caeeedae9bbf, - type: 3} - screenSpaceLensFlare: {fileID: 4800000, guid: 701880fecb344ea4c9cd0db3407ab287, - type: 3} - dataDrivenLensFlare: {fileID: 4800000, guid: 6cda457ac28612740adb23da5d39ea92, - type: 3} - m_AssetVersion: 2 - m_OpaqueLayerMask: - serializedVersion: 2 - m_Bits: 4294967295 - m_TransparentLayerMask: - serializedVersion: 2 - m_Bits: 4294967295 - m_DefaultStencilState: - overrideStencilState: 0 - stencilReference: 0 - stencilCompareFunction: 8 - passOperation: 2 - failOperation: 0 - zFailOperation: 0 - m_ShadowTransparentReceive: 1 - m_RenderingMode: 1 - m_DepthPrimingMode: 0 - m_CopyDepthMode: 1 - m_AccurateGbufferNormals: 0 - m_IntermediateTextureMode: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred/Deferred_GBuffer_Visualization_RenderFeature.cs b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred/Deferred_GBuffer_Visualization_RenderFeature.cs deleted file mode 100644 index 1c87ecb0bcb..00000000000 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred/Deferred_GBuffer_Visualization_RenderFeature.cs +++ /dev/null @@ -1,172 +0,0 @@ -using System; -using UnityEngine; -using UnityEngine.Rendering; -using UnityEngine.Rendering.Universal; -using UnityEngine.Rendering.RenderGraphModule; - -public class Deferred_GBuffer_Visualization_RenderFeature : ScriptableRendererFeature -{ - public Shader visualizeShader; - public bool visualizeAlphaChannel = false; - private Material m_Material; - - class CustomRenderPass : ScriptableRenderPass - { - internal Material m_Material; - internal bool m_VisualizeAlphaChannel = false; - - public CustomRenderPass(Shader visualizeShader, bool visualizeAlphaChannel) - { - m_VisualizeAlphaChannel = visualizeAlphaChannel; - } - - public void Setup(Material material) - { - m_Material = material; - } - - // This method is called before executing the render pass. - // It can be used to configure render targets and their clear state. Also to create temporary render target textures. - // When empty this render pass will render to the active camera render target. - // You should never call CommandBuffer.SetRenderTarget. Instead call ConfigureTarget and ConfigureClear. - // The render pipeline will ensure target setup and clearing happens in a performant manner. - [Obsolete("This rendering path is for compatibility mode only (when Render Graph is disabled). Use Render Graph API instead.", false)] - public override void OnCameraSetup(CommandBuffer cmd, ref RenderingData renderingData) - { - } - - // Here you can implement the rendering logic. - // Use ScriptableRenderContext to issue drawing commands or execute command buffers - // https://docs.unity3d.com/ScriptReference/Rendering.ScriptableRenderContext.html - // You don't have to call ScriptableRenderContext.submit, the render pipeline will call it at specific points in the pipeline. - [Obsolete("This rendering path is for compatibility mode only (when Render Graph is disabled). Use Render Graph API instead.", false)] - public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) - { - CommandBuffer cmd = CommandBufferPool.Get(); - - ExecutePass(cmd, ref renderingData); - - context.ExecuteCommandBuffer(cmd); - cmd.Clear(); - - CommandBufferPool.Release(cmd); - } - - void ExecutePass(CommandBuffer cmd, ref RenderingData renderingData) - { - if (m_Material == null) - return; - - UniversalRenderer renderer = renderingData.cameraData.renderer as UniversalRenderer; - - #pragma warning disable CS0618 // Type or member is obsolete - ConfigureTarget(renderer?.cameraColorTargetHandle); - ConfigureClear(ClearFlag.Color, Color.yellow); - #pragma warning restore CS0618 // Type or member is obsolete - - if (m_Material) - { - CoreUtils.SetKeyword(m_Material,"VIS_ALPHA", m_VisualizeAlphaChannel); - cmd.DrawProcedural(Matrix4x4.identity, m_Material, 0, MeshTopology.Triangles, 3, 1); - } - } - - // Cleanup any allocated resources that were created during the execution of this render pass. - public override void OnCameraCleanup(CommandBuffer cmd) - { - } - - private class PassData - { - internal Material material; - internal bool visualizeAlphaChannel; - internal TextureHandle[] gBuffer; - } - - // Make sure this is consistent with DeferredLights.cs - private static readonly int s_GbufferLightingIndex = 3; // _GBuffer3 is the activeColorTexture - private static readonly int[] s_GBufferShaderPropertyIDs = new int[] - { - Shader.PropertyToID("_GBuffer0"), - Shader.PropertyToID("_GBuffer1"), - Shader.PropertyToID("_GBuffer2"), - Shader.PropertyToID("_GBuffer3"), - Shader.PropertyToID("_GBuffer4"), - Shader.PropertyToID("_GBuffer5"), - Shader.PropertyToID("_GBuffer6") - }; - - public override void RecordRenderGraph(RenderGraph renderGraph, ContextContainer frameData) - { - if (m_Material == null) - return; - - UniversalResourceData resourceData = frameData.Get(); - using (var builder = renderGraph.AddRasterRenderPass("Test GBuffer visualization.", out var passData)) - { - builder.SetRenderAttachment(resourceData.activeColorTexture, 0, AccessFlags.Write); - - for (int i = 0; i < resourceData.gBuffer.Length; i++) - { - if (i == s_GbufferLightingIndex) continue; - builder.UseTexture(resourceData.gBuffer[i]); - } - - passData.gBuffer = resourceData.gBuffer; - - passData.material = m_Material; - passData.visualizeAlphaChannel = m_VisualizeAlphaChannel; - - builder.SetRenderFunc(static (PassData data, RasterGraphContext context) => - { - CoreUtils.SetKeyword(data.material,"VIS_ALPHA", data.visualizeAlphaChannel); - - for (int i = 0; i < data.gBuffer.Length; i++) - { - if (i == s_GbufferLightingIndex) continue; - data.material.SetTexture(s_GBufferShaderPropertyIDs[i], data.gBuffer[i]); - } - - context.cmd.DrawProcedural(Matrix4x4.identity, data.material, 0, MeshTopology.Triangles, 3, 1); - }); - } - } - } - - CustomRenderPass m_ScriptablePass; - - /// - public override void Create() - { - m_ScriptablePass = new CustomRenderPass(visualizeShader, visualizeAlphaChannel); - - // Configures where the render pass should be injected. - m_ScriptablePass.renderPassEvent = RenderPassEvent.AfterRenderingTransparents; - } - - // Here you can inject one or multiple render passes in the renderer. - // This method is called when setting up the renderer once per-camera. - public override void AddRenderPasses(ScriptableRenderer renderer, ref RenderingData renderingData) - { - if (!GetMaterials()) - { - Debug.LogErrorFormat("{0}.AddRenderPasses(): Missing material. {1} render pass will not be added.", GetType().Name, name); - return; - } - - m_ScriptablePass.Setup(m_Material); - renderer.EnqueuePass(m_ScriptablePass); - } - - protected override void Dispose(bool disposing) - { - CoreUtils.Destroy(m_Material); - } - - private bool GetMaterials() - { - if (m_Material == null && visualizeShader != null) - m_Material = CoreUtils.CreateEngineMaterial(visualizeShader); - return m_Material != null; - } -} diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred/Deferred_GBuffer_Visualization_Shader.shader b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred/Deferred_GBuffer_Visualization_Shader.shader deleted file mode 100644 index 19c76ab1d7c..00000000000 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred/Deferred_GBuffer_Visualization_Shader.shader +++ /dev/null @@ -1,139 +0,0 @@ -Shader "Universal Render Pipeline/Deferred_GBuffer_Visualization_Shader" -{ - Properties - { - // BlendMode - [HideInInspector]_Surface("__surface", Float) = 0.0 - [HideInInspector]_Blend("__mode", Float) = 0.0 - [HideInInspector]_Cull("__cull", Float) = 2.0 - [HideInInspector][ToggleUI] _AlphaClip("__clip", Float) = 0.0 - [HideInInspector] _BlendOp("__blendop", Float) = 0.0 - [HideInInspector] _SrcBlend("__src", Float) = 1.0 - [HideInInspector] _DstBlend("__dst", Float) = 0.0 - [HideInInspector] _SrcBlendAlpha("__srcA", Float) = 1.0 - [HideInInspector] _DstBlendAlpha("__dstA", Float) = 0.0 - [HideInInspector] _ZWrite("__zw", Float) = 1.0 - } - - SubShader - { - Tags - { - "RenderType" = "Opaque" - "IgnoreProjector" = "True" - "UniversalMaterialType" = "Unlit" - "RenderPipeline" = "UniversalPipeline" - } - LOD 100 - - // ------------------------------------- - // Render State Commands - Blend [_SrcBlend][_DstBlend], [_SrcBlendAlpha][_DstBlendAlpha] - ZWrite [_ZWrite] - Cull [_Cull] - - Pass - { - Name "Deferred_GBuffer_Visualization" - - HLSLPROGRAM - #pragma target 2.0 - - // ------------------------------------- - // Shader Stages - #pragma vertex GBufferVisPassVertex - #pragma fragment GBufferVisPassFragment - - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GlobalSamplers.hlsl" - #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl" - #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/UnityInstancing.hlsl" - - #pragma multi_compile_fragment _ VIS_ALPHA - - TEXTURE2D_X(_GBuffer0); - TEXTURE2D_X(_GBuffer1); - TEXTURE2D_X(_GBuffer2); - TEXTURE2D_X(_GBuffer3); - - struct Attributes - { - uint vertexID : SV_VertexID; - UNITY_VERTEX_INPUT_INSTANCE_ID - }; - - struct Varyings - { - float4 positionCS : SV_POSITION; - float2 texcoord : TEXCOORD0; - - UNITY_VERTEX_INPUT_INSTANCE_ID - UNITY_VERTEX_OUTPUT_STEREO - }; - - Varyings GBufferVisPassVertex(Attributes input) - { - Varyings output; - UNITY_SETUP_INSTANCE_ID(input); - UNITY_TRANSFER_INSTANCE_ID(input, output); - UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(output); - - float4 pos = GetFullScreenTriangleVertexPosition(input.vertexID); - float2 uv = GetFullScreenTriangleTexCoord(input.vertexID); - - output.positionCS = pos; - output.texcoord = uv; - - return output; - } - - void GBufferVisPassFragment(Varyings input, out half4 outColor : SV_Target0) - { - UNITY_SETUP_INSTANCE_ID(input); - UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(input); - - outColor = float4(1,1,0,1); - - float2 uv = input.texcoord; - #ifndef UNITY_UV_STARTS_AT_TOP - uv.y = 1.0 - uv.y; - #endif - // Bottom row. - if(all(uv < float2(0.5, 0.5))) // GBuffer2 == normal.rgb, smoothness - { - float2 uvX = saturate(uv * 2); - outColor = SAMPLE_TEXTURE2D_X_LOD(_GBuffer2, sampler_PointClamp, uvX, 0); - } - else if(uv.x >= 0.5 && uv.y < 0.5) // GBuffer3 == GI.rgb - { - float2 uvX = saturate((uv - float2(0.5, 0.0)) * 2); - outColor = SAMPLE_TEXTURE2D_X_LOD(_GBuffer3, sampler_PointClamp, uvX, 0); - } - // Top row. - else if(uv.x < 0.5 && uv.y >= 0.5) // GBuffer0 == Color.rgb, material flags - { - float2 uvX = saturate((uv - float2(0.0, 0.5)) * 2); - outColor = SAMPLE_TEXTURE2D_X_LOD(_GBuffer0, sampler_PointClamp, uvX, 0); - } - else if(all(uv >= float2(0.5, 0.5))) // Gbuffer1 == Metallic.r/Specular.rgb, ambient occlusion - { - float2 uvX = saturate((uv - float2(0.5, 0.5)) * 2); - outColor = SAMPLE_TEXTURE2D_X_LOD(_GBuffer1, sampler_PointClamp, uvX, 0); - } - - // Visualize the alpha channel in rgb. - #ifdef VIS_ALPHA - outColor.rgb = outColor.aaa; - #endif - - // The testframework / refimages don't handle non-transparent alpha well, - // force alpha to 1 for visual test purposes. - // Comment out to check GBuffer alpha channels. - outColor.a = 1; - } - ENDHLSL - } - } - - FallBack "Hidden/Universal Render Pipeline/FallbackError" -} diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/Background.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/Background.mat index 52709d75c14..2d884797099 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/Background.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/Background.mat @@ -106,6 +106,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &7880880191620744913 MonoBehaviour: m_ObjectHideFlags: 11 @@ -118,4 +119,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/BakedLit_Additive.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/BakedLit_Additive.mat index cd7a8e85e2b..eb01e5cb810 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/BakedLit_Additive.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/BakedLit_Additive.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -135,3 +135,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/BakedLit_Alpha.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/BakedLit_Alpha.mat index c6634984398..394648ea8b7 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/BakedLit_Alpha.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/BakedLit_Alpha.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -135,3 +135,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/BakedLit_Multiply.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/BakedLit_Multiply.mat index f20077b9bff..8f99905fd75 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/BakedLit_Multiply.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/BakedLit_Multiply.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -137,3 +137,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/BakedLit_Premultiplied-Alpha.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/BakedLit_Premultiplied-Alpha.mat index 65c60c5a485..c10df41bae9 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/BakedLit_Premultiplied-Alpha.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/BakedLit_Premultiplied-Alpha.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -135,3 +135,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/ComplexLit_Additive.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/ComplexLit_Additive.mat index a088b038737..3a224e80a10 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/ComplexLit_Additive.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/ComplexLit_Additive.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -144,3 +144,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/ComplexLit_Alpha.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/ComplexLit_Alpha.mat index 3f0f664cc9a..bb004fad10a 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/ComplexLit_Alpha.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/ComplexLit_Alpha.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -144,3 +144,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/ComplexLit_Multiply.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/ComplexLit_Multiply.mat index 9379c528594..35c8e12bce3 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/ComplexLit_Multiply.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/ComplexLit_Multiply.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -145,3 +145,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/ComplexLit_Premultiplied-Alpha.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/ComplexLit_Premultiplied-Alpha.mat index 489e8ada2ae..70ae4dc93e7 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/ComplexLit_Premultiplied-Alpha.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/ComplexLit_Premultiplied-Alpha.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -144,3 +144,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/GraphLit_Additive.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/GraphLit_Additive.mat index cb601ceef94..491dd339b37 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/GraphLit_Additive.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/GraphLit_Additive.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -131,3 +131,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/GraphLit_Alpha Allow Material Override.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/GraphLit_Alpha Allow Material Override.mat index 270c0b18253..71eafaf6148 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/GraphLit_Alpha Allow Material Override.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/GraphLit_Alpha Allow Material Override.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -140,3 +140,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/GraphLit_Alpha.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/GraphLit_Alpha.mat index 55e12f801ea..d623da19498 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/GraphLit_Alpha.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/GraphLit_Alpha.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -131,3 +131,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/GraphLit_Multiply.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/GraphLit_Multiply.mat index 1c9dec1665f..16361a9c9c6 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/GraphLit_Multiply.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/GraphLit_Multiply.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -132,3 +132,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/GraphLit_Premultiplied-Alpha.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/GraphLit_Premultiplied-Alpha.mat index 6513a973957..50aac3d2288 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/GraphLit_Premultiplied-Alpha.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/GraphLit_Premultiplied-Alpha.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -132,3 +132,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/GraphUnLit_Additive.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/GraphUnLit_Additive.mat index cc6f7c3108a..bc8c284d2b2 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/GraphUnLit_Additive.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/GraphUnLit_Additive.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -131,3 +131,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/GraphUnLit_Alpha.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/GraphUnLit_Alpha.mat index efda1823ec1..f77afa78a26 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/GraphUnLit_Alpha.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/GraphUnLit_Alpha.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -131,3 +131,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/GraphUnLit_Multiply.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/GraphUnLit_Multiply.mat index 5a12b31ee1b..4cd92c28e91 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/GraphUnLit_Multiply.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/GraphUnLit_Multiply.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -132,3 +132,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/GraphUnLit_Premultiplied-Alpha.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/GraphUnLit_Premultiplied-Alpha.mat index 7f8c5c01c1e..3175a6331f5 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/GraphUnLit_Premultiplied-Alpha.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/GraphUnLit_Premultiplied-Alpha.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -132,3 +132,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/Lit_Additive.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/Lit_Additive.mat index de65830459f..e13649daaca 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/Lit_Additive.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/Lit_Additive.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -138,3 +138,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/Lit_Alpha.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/Lit_Alpha.mat index 19c7e4cf919..0a0b555659d 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/Lit_Alpha.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/Lit_Alpha.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -138,3 +138,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/Lit_Multiply.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/Lit_Multiply.mat index 498220fc204..704aa5eccab 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/Lit_Multiply.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/Lit_Multiply.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -140,3 +140,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/Lit_Premultiplied-Alpha.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/Lit_Premultiplied-Alpha.mat index 86397855e2a..acfa1ed8473 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/Lit_Premultiplied-Alpha.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/Lit_Premultiplied-Alpha.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -138,3 +138,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/SimpleLit_Additive.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/SimpleLit_Additive.mat index 681fd30c2ee..bb16604f24c 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/SimpleLit_Additive.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/SimpleLit_Additive.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -139,3 +139,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/SimpleLit_Alpha.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/SimpleLit_Alpha.mat index 40dfd79ff47..902a4f6dc8b 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/SimpleLit_Alpha.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/SimpleLit_Alpha.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -139,3 +139,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/SimpleLit_Multiply.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/SimpleLit_Multiply.mat index 80ada99be60..2fab07df62f 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/SimpleLit_Multiply.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/SimpleLit_Multiply.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -141,3 +141,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/SimpleLit_Premultiplied-Alpha.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/SimpleLit_Premultiplied-Alpha.mat index 02fd261e6c9..108b2bb2297 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/SimpleLit_Premultiplied-Alpha.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/SimpleLit_Premultiplied-Alpha.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -139,3 +139,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/Sphere_Additive.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/Sphere_Additive.mat index fe7d9e6fc7a..d5f29f4177f 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/Sphere_Additive.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/Sphere_Additive.mat @@ -125,6 +125,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &972890664720401907 MonoBehaviour: m_ObjectHideFlags: 11 @@ -137,4 +138,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/Sphere_Additive_PreserveSpec.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/Sphere_Additive_PreserveSpec.mat index 731b0bba629..9ab2b12a0df 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/Sphere_Additive_PreserveSpec.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/Sphere_Additive_PreserveSpec.mat @@ -127,6 +127,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &972890664720401907 MonoBehaviour: m_ObjectHideFlags: 11 @@ -139,4 +140,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/Sphere_Alpha.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/Sphere_Alpha.mat index cca63271d07..8658eba4f40 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/Sphere_Alpha.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/Sphere_Alpha.mat @@ -125,6 +125,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &972890664720401907 MonoBehaviour: m_ObjectHideFlags: 11 @@ -137,4 +138,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/Sphere_Alpha_PreserveSpec.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/Sphere_Alpha_PreserveSpec.mat index b31e0049df7..3b165cb5354 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/Sphere_Alpha_PreserveSpec.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/Sphere_Alpha_PreserveSpec.mat @@ -127,6 +127,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &972890664720401907 MonoBehaviour: m_ObjectHideFlags: 11 @@ -139,4 +140,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/Sphere_Graph_Additive.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/Sphere_Graph_Additive.mat index 8a4de7d00a7..63a55cd4d28 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/Sphere_Graph_Additive.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/Sphere_Graph_Additive.mat @@ -125,6 +125,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &972890664720401907 MonoBehaviour: m_ObjectHideFlags: 11 @@ -137,4 +138,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/Sphere_Graph_Additive_PreserveSpec.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/Sphere_Graph_Additive_PreserveSpec.mat index 28b761e30b6..afe65555ab1 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/Sphere_Graph_Additive_PreserveSpec.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/Sphere_Graph_Additive_PreserveSpec.mat @@ -125,6 +125,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &972890664720401907 MonoBehaviour: m_ObjectHideFlags: 11 @@ -137,4 +138,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/Sphere_Graph_Alpha.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/Sphere_Graph_Alpha.mat index b60f203fb7e..306fc57fdfb 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/Sphere_Graph_Alpha.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/Sphere_Graph_Alpha.mat @@ -125,6 +125,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &972890664720401907 MonoBehaviour: m_ObjectHideFlags: 11 @@ -137,4 +138,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/Sphere_Graph_Alpha_PreserveSpec.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/Sphere_Graph_Alpha_PreserveSpec.mat index 5d008a989b2..ed48998556d 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/Sphere_Graph_Alpha_PreserveSpec.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/Sphere_Graph_Alpha_PreserveSpec.mat @@ -125,6 +125,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &972890664720401907 MonoBehaviour: m_ObjectHideFlags: 11 @@ -137,4 +138,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/Unlit_Additive.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/Unlit_Additive.mat index 6551dbbe0d7..b3bc9fc2ee0 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/Unlit_Additive.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/Unlit_Additive.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -124,3 +124,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/Unlit_Alpha.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/Unlit_Alpha.mat index d368636b554..acb1d599693 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/Unlit_Alpha.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/Unlit_Alpha.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -124,3 +124,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/Unlit_Multiply.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/Unlit_Multiply.mat index ca286288e46..b15bb6f4bc7 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/Unlit_Multiply.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/Unlit_Multiply.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -126,3 +126,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/Unlit_Premultiplied-Alpha.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/Unlit_Premultiplied-Alpha.mat index 32199e7f146..33ae6cd28b3 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/Unlit_Premultiplied-Alpha.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/066_Blending/Unlit_Premultiplied-Alpha.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -124,3 +124,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/Background.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/Background.mat index 4181dc0e375..3fc8d88e36a 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/Background.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/Background.mat @@ -120,6 +120,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &1668322910448916066 MonoBehaviour: m_ObjectHideFlags: 11 @@ -132,4 +133,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/Lit_0_Alpha.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/Lit_0_Alpha.mat index cff57e5768d..38120774e92 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/Lit_0_Alpha.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/Lit_0_Alpha.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -139,3 +139,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/Lit_1_Premultiply.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/Lit_1_Premultiply.mat index 94a3adc901f..31fb251817e 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/Lit_1_Premultiply.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/Lit_1_Premultiply.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -137,3 +137,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/Lit_2_Additive.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/Lit_2_Additive.mat index e1a733d52ef..5ea797e22cd 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/Lit_2_Additive.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/Lit_2_Additive.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -139,3 +139,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/Lit_3_Multiply.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/Lit_3_Multiply.mat index 33cd74190fe..1679ef13373 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/Lit_3_Multiply.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/Lit_3_Multiply.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -139,3 +139,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/ParticleLit_0_Alpha.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/ParticleLit_0_Alpha.mat index 26a28747346..d118c0084f4 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/ParticleLit_0_Alpha.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/ParticleLit_0_Alpha.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -155,3 +155,4 @@ Material: - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/ParticleLit_1_Premultiply.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/ParticleLit_1_Premultiply.mat index 8d9419f21ca..b6cc83a8c44 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/ParticleLit_1_Premultiply.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/ParticleLit_1_Premultiply.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -152,3 +152,4 @@ Material: - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/ParticleLit_2_Additive.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/ParticleLit_2_Additive.mat index acd2f6cae45..4a207c9bda9 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/ParticleLit_2_Additive.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/ParticleLit_2_Additive.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -155,3 +155,4 @@ Material: - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/ParticleLit_3_Multiply.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/ParticleLit_3_Multiply.mat index a9b8d310cb3..4c6a95eb2f5 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/ParticleLit_3_Multiply.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/ParticleLit_3_Multiply.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -155,3 +155,4 @@ Material: - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/ParticleSimpleLit_0_Alpha.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/ParticleSimpleLit_0_Alpha.mat index c7c9e0cfd3a..dc2cbf2ab82 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/ParticleSimpleLit_0_Alpha.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/ParticleSimpleLit_0_Alpha.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -153,3 +153,4 @@ Material: - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} - _SpecColor: {r: 0.19999984, g: 0.19999984, b: 0.19999984, a: 0.75} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/ParticleSimpleLit_1_Premultiply.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/ParticleSimpleLit_1_Premultiply.mat index df31c44bd1b..5c928244238 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/ParticleSimpleLit_1_Premultiply.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/ParticleSimpleLit_1_Premultiply.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -153,3 +153,4 @@ Material: - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} - _SpecColor: {r: 0.19999984, g: 0.19999984, b: 0.19999984, a: 0.75} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/ParticleSimpleLit_2_Additive.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/ParticleSimpleLit_2_Additive.mat index b2fabc6f96e..3512aa8b769 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/ParticleSimpleLit_2_Additive.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/ParticleSimpleLit_2_Additive.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -153,3 +153,4 @@ Material: - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} - _SpecColor: {r: 0.19999984, g: 0.19999984, b: 0.19999984, a: 0.75} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/ParticleSimpleLit_3_Multiply.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/ParticleSimpleLit_3_Multiply.mat index bc04c3050c7..a8f0d40f868 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/ParticleSimpleLit_3_Multiply.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/ParticleSimpleLit_3_Multiply.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -156,3 +156,4 @@ Material: - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} - _SpecColor: {r: 0.19999984, g: 0.19999984, b: 0.19999984, a: 0.75} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/ParticleUnlit_0_Alpha.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/ParticleUnlit_0_Alpha.mat index c71c863fecb..44687a1883b 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/ParticleUnlit_0_Alpha.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/ParticleUnlit_0_Alpha.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -151,3 +151,4 @@ Material: - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/ParticleUnlit_1_Premultiply.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/ParticleUnlit_1_Premultiply.mat index 33ffcdfd09e..3fc2dda1728 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/ParticleUnlit_1_Premultiply.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/ParticleUnlit_1_Premultiply.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -151,3 +151,4 @@ Material: - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/ParticleUnlit_2_Additive.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/ParticleUnlit_2_Additive.mat index be92d9ff72e..faf28f568a3 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/ParticleUnlit_2_Additive.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/ParticleUnlit_2_Additive.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -151,3 +151,4 @@ Material: - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/ParticleUnlit_3_Multiply.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/ParticleUnlit_3_Multiply.mat index 3df9bba0199..05be514881c 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/ParticleUnlit_3_Multiply.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/ParticleUnlit_3_Multiply.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -154,3 +154,4 @@ Material: - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/SimpleLit_0_Alpha.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/SimpleLit_0_Alpha.mat index ba9bc9681a6..baae5477ffc 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/SimpleLit_0_Alpha.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/SimpleLit_0_Alpha.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -143,3 +143,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999486, g: 0.19999486, b: 0.19999486, a: 0.75} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/SimpleLit_1_Premultiply.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/SimpleLit_1_Premultiply.mat index c3ff711d5f8..6dac998a58e 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/SimpleLit_1_Premultiply.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/SimpleLit_1_Premultiply.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -141,3 +141,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999486, g: 0.19999486, b: 0.19999486, a: 0.75} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/SimpleLit_2_Additive.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/SimpleLit_2_Additive.mat index 11d30382923..c92a51bfa9f 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/SimpleLit_2_Additive.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/SimpleLit_2_Additive.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -143,3 +143,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999486, g: 0.19999486, b: 0.19999486, a: 0.75} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/SimpleLit__3_Multiply.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/SimpleLit__3_Multiply.mat index 5a1652b3559..3762d36cd4e 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/SimpleLit__3_Multiply.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/SimpleLit__3_Multiply.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -143,3 +143,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999486, g: 0.19999486, b: 0.19999486, a: 0.75} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/Unlit_0_Alpha.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/Unlit_0_Alpha.mat index d773d43375a..bc421e6cf24 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/Unlit_0_Alpha.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/Unlit_0_Alpha.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -136,3 +136,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/Unlit_1_Premultiply.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/Unlit_1_Premultiply.mat index 0c9b1d57cc6..4666e695f6a 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/Unlit_1_Premultiply.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/Unlit_1_Premultiply.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -136,3 +136,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/Unlit_2_Additive.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/Unlit_2_Additive.mat index 7b4612ebd91..3fadab4c6aa 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/Unlit_2_Additive.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/Unlit_2_Additive.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -136,3 +136,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/Unlit_3_Multiply.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/Unlit_3_Multiply.mat index ab4c0897f02..419f0a8c18d 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/Unlit_3_Multiply.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/067_Blending_Particles/Unlit_3_Multiply.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -138,3 +138,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/109_URPShadersAlphaOutput/109_CameraTargetTexture.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/109_URPShadersAlphaOutput/109_CameraTargetTexture.mat index ae0e37064b1..e2a9f263b5b 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/109_URPShadersAlphaOutput/109_CameraTargetTexture.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/109_URPShadersAlphaOutput/109_CameraTargetTexture.mat @@ -89,7 +89,9 @@ Material: m_Offset: {x: 0, y: 0} m_Ints: [] m_Floats: + - _AddPrecomputedVelocity: 0 - _AlphaClip: 0 + - _AlphaToMask: 0 - _Blend: 0 - _BlendOp: 0 - _BumpScale: 1 @@ -120,6 +122,7 @@ Material: - _SrcBlendAlpha: 1 - _Surface: 0 - _UVSec: 0 + - _XRMotionVectorsPass: 1 - _ZWrite: 1 m_Colors: - _BaseColor: {r: 1, g: 1, b: 1, a: 1} @@ -128,6 +131,7 @@ Material: - _ReflectColor: {r: 1, g: 1, b: 1, a: 1} - _SpecColor: {r: 1, g: 1, b: 1, a: 0.5} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &6474889523495581265 MonoBehaviour: m_ObjectHideFlags: 11 @@ -140,4 +144,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/109_URPShadersAlphaOutput/109_URPShadersAlphaOutputRenderTexture.renderTexture b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/109_URPShadersAlphaOutput/109_URPShadersAlphaOutputRenderTexture.renderTexture index 274de5fa9cb..13f3ae8d72e 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/109_URPShadersAlphaOutput/109_URPShadersAlphaOutputRenderTexture.renderTexture +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/109_URPShadersAlphaOutput/109_URPShadersAlphaOutputRenderTexture.renderTexture @@ -10,10 +10,8 @@ RenderTexture: m_ImageContentsHash: serializedVersion: 2 Hash: 00000000000000000000000000000000 - m_ForcedFallbackFormat: 4 - m_DownscaleFallback: 0 m_IsAlphaChannelOptional: 0 - serializedVersion: 5 + serializedVersion: 6 m_Width: 1280 m_Height: 720 m_AntiAliasing: 1 @@ -24,8 +22,10 @@ RenderTexture: m_GenerateMips: 1 m_SRGB: 0 m_UseDynamicScale: 0 + m_UseDynamicScaleExplicit: 0 m_BindMS: 0 m_EnableCompatibleFormat: 1 + m_EnableRandomWrite: 0 m_TextureSettings: serializedVersion: 2 m_FilterMode: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/110_URPShadersAlphaOutputRendererFeature/110_CameraTargetTexture.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/110_URPShadersAlphaOutputRendererFeature/110_CameraTargetTexture.mat index 2e168ef0a90..e9726278d18 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/110_URPShadersAlphaOutputRendererFeature/110_CameraTargetTexture.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/110_URPShadersAlphaOutputRendererFeature/110_CameraTargetTexture.mat @@ -89,7 +89,9 @@ Material: m_Offset: {x: 0, y: 0} m_Ints: [] m_Floats: + - _AddPrecomputedVelocity: 0 - _AlphaClip: 0 + - _AlphaToMask: 0 - _Blend: 0 - _BlendOp: 0 - _BumpScale: 1 @@ -120,6 +122,7 @@ Material: - _SrcBlendAlpha: 1 - _Surface: 0 - _UVSec: 0 + - _XRMotionVectorsPass: 1 - _ZWrite: 1 m_Colors: - _BaseColor: {r: 1, g: 1, b: 1, a: 1} @@ -128,6 +131,7 @@ Material: - _ReflectColor: {r: 1, g: 1, b: 1, a: 1} - _SpecColor: {r: 1, g: 1, b: 1, a: 0.5} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &6474889523495581265 MonoBehaviour: m_ObjectHideFlags: 11 @@ -140,4 +144,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/110_URPShadersAlphaOutputRendererFeature/110_URPShadersAlphaOutputRendererFeature.renderTexture b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/110_URPShadersAlphaOutputRendererFeature/110_URPShadersAlphaOutputRendererFeature.renderTexture index 12255e6ec9a..e8c9943254e 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/110_URPShadersAlphaOutputRendererFeature/110_URPShadersAlphaOutputRendererFeature.renderTexture +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/110_URPShadersAlphaOutputRendererFeature/110_URPShadersAlphaOutputRendererFeature.renderTexture @@ -10,10 +10,8 @@ RenderTexture: m_ImageContentsHash: serializedVersion: 2 Hash: 00000000000000000000000000000000 - m_ForcedFallbackFormat: 4 - m_DownscaleFallback: 0 m_IsAlphaChannelOptional: 0 - serializedVersion: 5 + serializedVersion: 6 m_Width: 1280 m_Height: 720 m_AntiAliasing: 1 @@ -24,8 +22,10 @@ RenderTexture: m_GenerateMips: 1 m_SRGB: 0 m_UseDynamicScale: 0 + m_UseDynamicScaleExplicit: 0 m_BindMS: 0 m_EnableCompatibleFormat: 1 + m_EnableRandomWrite: 0 m_TextureSettings: serializedVersion: 2 m_FilterMode: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/111_CameraStackMSAA/Blue.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/111_CameraStackMSAA/Blue.mat index cf4842eae6b..458f9f232b3 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/111_CameraStackMSAA/Blue.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/111_CameraStackMSAA/Blue.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -137,3 +137,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/111_CameraStackMSAA/Red.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/111_CameraStackMSAA/Red.mat index f49ed6f8043..bb8f15709f5 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/111_CameraStackMSAA/Red.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/111_CameraStackMSAA/Red.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -136,3 +136,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/111_CameraStackMSAA/White.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/111_CameraStackMSAA/White.mat index d3e67d3c359..e241902c7bb 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/111_CameraStackMSAA/White.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/111_CameraStackMSAA/White.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -136,3 +136,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/112_FogBasic/ComplexLit.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/112_FogBasic/ComplexLit.mat index d904a5e05f8..542bf9e02cb 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/112_FogBasic/ComplexLit.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/112_FogBasic/ComplexLit.mat @@ -125,6 +125,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &9056824679636152698 MonoBehaviour: m_ObjectHideFlags: 11 @@ -137,4 +138,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/112_FogBasic/Lit.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/112_FogBasic/Lit.mat index f743aabc541..a004b47003e 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/112_FogBasic/Lit.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/112_FogBasic/Lit.mat @@ -118,6 +118,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &9056824679636152698 MonoBehaviour: m_ObjectHideFlags: 11 @@ -130,4 +131,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/112_FogBasic/LitShaderGraph.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/112_FogBasic/LitShaderGraph.mat index 1af6e858812..da347cff97f 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/112_FogBasic/LitShaderGraph.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/112_FogBasic/LitShaderGraph.mat @@ -136,6 +136,7 @@ Material: - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &9056824679636152698 MonoBehaviour: m_ObjectHideFlags: 11 @@ -148,4 +149,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/112_FogBasic/ParticleLit.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/112_FogBasic/ParticleLit.mat index f83508ab274..ef316e381c7 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/112_FogBasic/ParticleLit.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/112_FogBasic/ParticleLit.mat @@ -135,6 +135,7 @@ Material: - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &9056824679636152698 MonoBehaviour: m_ObjectHideFlags: 11 @@ -147,4 +148,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/112_FogBasic/ParticleUnlit.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/112_FogBasic/ParticleUnlit.mat index 338d05c99d5..5e239962950 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/112_FogBasic/ParticleUnlit.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/112_FogBasic/ParticleUnlit.mat @@ -137,6 +137,7 @@ Material: - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &9056824679636152698 MonoBehaviour: m_ObjectHideFlags: 11 @@ -149,4 +150,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/112_FogBasic/SimpleLit.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/112_FogBasic/SimpleLit.mat index 9465b03d626..534d1b1604f 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/112_FogBasic/SimpleLit.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/112_FogBasic/SimpleLit.mat @@ -122,6 +122,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &9056824679636152698 MonoBehaviour: m_ObjectHideFlags: 11 @@ -134,4 +135,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/112_FogBasic/SpeedTreeBillboard_disabled.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/112_FogBasic/SpeedTreeBillboard_disabled.mat index c119d8ec7ab..b126c4d585b 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/112_FogBasic/SpeedTreeBillboard_disabled.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/112_FogBasic/SpeedTreeBillboard_disabled.mat @@ -249,6 +249,7 @@ Material: - _UvOffset: {r: 0, g: 0, b: 0, a: 0} - _UvTiling: {r: 1, g: 1, b: 0, a: 0} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &9056824679636152698 MonoBehaviour: m_ObjectHideFlags: 11 @@ -261,4 +262,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/112_FogBasic/TerrainLit_disabled.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/112_FogBasic/TerrainLit_disabled.mat index ddb05b26f17..abef5102310 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/112_FogBasic/TerrainLit_disabled.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/112_FogBasic/TerrainLit_disabled.mat @@ -191,6 +191,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &9056824679636152698 MonoBehaviour: m_ObjectHideFlags: 11 @@ -203,4 +204,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/112_FogBasic/Unlit.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/112_FogBasic/Unlit.mat index 82b8f35bfeb..13b7c2a5e87 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/112_FogBasic/Unlit.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/112_FogBasic/Unlit.mat @@ -119,6 +119,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &9056824679636152698 MonoBehaviour: m_ObjectHideFlags: 11 @@ -131,4 +132,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/112_FogBasic/UnlitShaderGraph.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/112_FogBasic/UnlitShaderGraph.mat index a6305949622..d6493b6b894 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/112_FogBasic/UnlitShaderGraph.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/112_FogBasic/UnlitShaderGraph.mat @@ -138,6 +138,7 @@ Material: - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &9056824679636152698 MonoBehaviour: m_ObjectHideFlags: 11 @@ -150,4 +151,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/119_CameraToRTWithViewportRect/MapRenderTexture.renderTexture b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/119_CameraToRTWithViewportRect/MapRenderTexture.renderTexture index 100e314a45a..3cb4884d132 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/119_CameraToRTWithViewportRect/MapRenderTexture.renderTexture +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/119_CameraToRTWithViewportRect/MapRenderTexture.renderTexture @@ -10,10 +10,8 @@ RenderTexture: m_ImageContentsHash: serializedVersion: 2 Hash: 00000000000000000000000000000000 - m_ForcedFallbackFormat: 4 - m_DownscaleFallback: 0 m_IsAlphaChannelOptional: 0 - serializedVersion: 5 + serializedVersion: 6 m_Width: 32 m_Height: 64 m_AntiAliasing: 1 @@ -24,8 +22,10 @@ RenderTexture: m_GenerateMips: 1 m_SRGB: 0 m_UseDynamicScale: 0 + m_UseDynamicScaleExplicit: 0 m_BindMS: 0 m_EnableCompatibleFormat: 1 + m_EnableRandomWrite: 0 m_TextureSettings: serializedVersion: 2 m_FilterMode: 0 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/124_CameraStackingClearRT/BottomLeftRT.renderTexture b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/124_CameraStackingClearRT/BottomLeftRT.renderTexture index f1e9300967a..f072e67dea0 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/124_CameraStackingClearRT/BottomLeftRT.renderTexture +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/124_CameraStackingClearRT/BottomLeftRT.renderTexture @@ -10,10 +10,8 @@ RenderTexture: m_ImageContentsHash: serializedVersion: 2 Hash: 00000000000000000000000000000000 - m_ForcedFallbackFormat: 4 - m_DownscaleFallback: 0 m_IsAlphaChannelOptional: 0 - serializedVersion: 5 + serializedVersion: 6 m_Width: 256 m_Height: 256 m_AntiAliasing: 1 @@ -24,8 +22,10 @@ RenderTexture: m_GenerateMips: 1 m_SRGB: 0 m_UseDynamicScale: 0 + m_UseDynamicScaleExplicit: 0 m_BindMS: 0 m_EnableCompatibleFormat: 1 + m_EnableRandomWrite: 0 m_TextureSettings: serializedVersion: 2 m_FilterMode: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/124_CameraStackingClearRT/BottomLeftTexture.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/124_CameraStackingClearRT/BottomLeftTexture.mat index 348ea8170c7..76f152c4dee 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/124_CameraStackingClearRT/BottomLeftTexture.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/124_CameraStackingClearRT/BottomLeftTexture.mat @@ -86,6 +86,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &2549847662200077430 MonoBehaviour: m_ObjectHideFlags: 11 @@ -98,4 +99,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/124_CameraStackingClearRT/BottomRightRT.renderTexture b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/124_CameraStackingClearRT/BottomRightRT.renderTexture index 595888ab196..e9f88298e46 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/124_CameraStackingClearRT/BottomRightRT.renderTexture +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/124_CameraStackingClearRT/BottomRightRT.renderTexture @@ -10,10 +10,8 @@ RenderTexture: m_ImageContentsHash: serializedVersion: 2 Hash: 00000000000000000000000000000000 - m_ForcedFallbackFormat: 4 - m_DownscaleFallback: 0 m_IsAlphaChannelOptional: 0 - serializedVersion: 5 + serializedVersion: 6 m_Width: 256 m_Height: 256 m_AntiAliasing: 1 @@ -24,8 +22,10 @@ RenderTexture: m_GenerateMips: 1 m_SRGB: 0 m_UseDynamicScale: 0 + m_UseDynamicScaleExplicit: 0 m_BindMS: 0 m_EnableCompatibleFormat: 1 + m_EnableRandomWrite: 0 m_TextureSettings: serializedVersion: 2 m_FilterMode: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/124_CameraStackingClearRT/BottomRightTexture.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/124_CameraStackingClearRT/BottomRightTexture.mat index 8abacd7414f..f853661e6c3 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/124_CameraStackingClearRT/BottomRightTexture.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/124_CameraStackingClearRT/BottomRightTexture.mat @@ -86,6 +86,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &2549847662200077430 MonoBehaviour: m_ObjectHideFlags: 11 @@ -98,4 +99,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/124_CameraStackingClearRT/TopLeftRT.renderTexture b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/124_CameraStackingClearRT/TopLeftRT.renderTexture index 62acd39f9d7..fa586715e16 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/124_CameraStackingClearRT/TopLeftRT.renderTexture +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/124_CameraStackingClearRT/TopLeftRT.renderTexture @@ -10,10 +10,8 @@ RenderTexture: m_ImageContentsHash: serializedVersion: 2 Hash: 00000000000000000000000000000000 - m_ForcedFallbackFormat: 4 - m_DownscaleFallback: 0 m_IsAlphaChannelOptional: 0 - serializedVersion: 5 + serializedVersion: 6 m_Width: 256 m_Height: 256 m_AntiAliasing: 1 @@ -24,8 +22,10 @@ RenderTexture: m_GenerateMips: 1 m_SRGB: 0 m_UseDynamicScale: 0 + m_UseDynamicScaleExplicit: 0 m_BindMS: 0 m_EnableCompatibleFormat: 1 + m_EnableRandomWrite: 0 m_TextureSettings: serializedVersion: 2 m_FilterMode: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/124_CameraStackingClearRT/TopLeftTexture.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/124_CameraStackingClearRT/TopLeftTexture.mat index a3e4d8e30a8..f45504479a5 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/124_CameraStackingClearRT/TopLeftTexture.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/124_CameraStackingClearRT/TopLeftTexture.mat @@ -86,6 +86,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &2549847662200077430 MonoBehaviour: m_ObjectHideFlags: 11 @@ -98,4 +99,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/124_CameraStackingClearRT/TopRightRT.renderTexture b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/124_CameraStackingClearRT/TopRightRT.renderTexture index 2032566d1a8..bcd7189d419 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/124_CameraStackingClearRT/TopRightRT.renderTexture +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/124_CameraStackingClearRT/TopRightRT.renderTexture @@ -10,10 +10,8 @@ RenderTexture: m_ImageContentsHash: serializedVersion: 2 Hash: 00000000000000000000000000000000 - m_ForcedFallbackFormat: 4 - m_DownscaleFallback: 0 m_IsAlphaChannelOptional: 0 - serializedVersion: 5 + serializedVersion: 6 m_Width: 256 m_Height: 256 m_AntiAliasing: 1 @@ -24,8 +22,10 @@ RenderTexture: m_GenerateMips: 1 m_SRGB: 0 m_UseDynamicScale: 0 + m_UseDynamicScaleExplicit: 0 m_BindMS: 0 m_EnableCompatibleFormat: 1 + m_EnableRandomWrite: 0 m_TextureSettings: serializedVersion: 2 m_FilterMode: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/124_CameraStackingClearRT/TopRightTexture.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/124_CameraStackingClearRT/TopRightTexture.mat index 0336899b281..56d6d0fed84 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/124_CameraStackingClearRT/TopRightTexture.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/124_CameraStackingClearRT/TopRightTexture.mat @@ -86,6 +86,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &2549847662200077430 MonoBehaviour: m_ObjectHideFlags: 11 @@ -98,4 +99,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/127_ClearRenderTexture/RTT.renderTexture b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/127_ClearRenderTexture/RTT.renderTexture index bac9a97d9cb..2b77aa1034f 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/127_ClearRenderTexture/RTT.renderTexture +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/127_ClearRenderTexture/RTT.renderTexture @@ -10,10 +10,8 @@ RenderTexture: m_ImageContentsHash: serializedVersion: 2 Hash: 00000000000000000000000000000000 - m_ForcedFallbackFormat: 4 - m_DownscaleFallback: 0 m_IsAlphaChannelOptional: 0 - serializedVersion: 5 + serializedVersion: 6 m_Width: 1024 m_Height: 1024 m_AntiAliasing: 1 @@ -24,8 +22,10 @@ RenderTexture: m_GenerateMips: 1 m_SRGB: 0 m_UseDynamicScale: 0 + m_UseDynamicScaleExplicit: 0 m_BindMS: 0 m_EnableCompatibleFormat: 1 + m_EnableRandomWrite: 0 m_TextureSettings: serializedVersion: 2 m_FilterMode: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/127_ClearRenderTexture/Unlit.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/127_ClearRenderTexture/Unlit.mat index f4b21e76dd3..82e75c7c230 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/127_ClearRenderTexture/Unlit.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/127_ClearRenderTexture/Unlit.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -99,3 +99,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/128_TBN/LitTBN.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/128_TBN/LitTBN.mat index 16a7b5454c0..93fc3fbdf97 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/128_TBN/LitTBN.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/128_TBN/LitTBN.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -137,3 +137,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/MappedBlue.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/MappedBlue.mat index 05e20e8dec3..e57064064a1 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/MappedBlue.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/MappedBlue.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -140,3 +140,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/SanityGreen.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/SanityGreen.mat index 92ec122f335..779d98802de 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/SanityGreen.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/SanityGreen.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -141,3 +141,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/TestRed_0.0_1.0.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/TestRed_0.0_1.0.mat index d1e668ec67e..6a3177ae1d8 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/TestRed_0.0_1.0.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/TestRed_0.0_1.0.mat @@ -127,6 +127,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &5803662984393955582 MonoBehaviour: m_ObjectHideFlags: 11 @@ -139,4 +140,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/TestRed_0.1_1.0.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/TestRed_0.1_1.0.mat index 73ab71d3264..c41f7e27d62 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/TestRed_0.1_1.0.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/TestRed_0.1_1.0.mat @@ -127,6 +127,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &600052807205652642 MonoBehaviour: m_ObjectHideFlags: 11 @@ -139,4 +140,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/TestRed_0.2_1.0.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/TestRed_0.2_1.0.mat index 84345de8f2d..60f0931cb95 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/TestRed_0.2_1.0.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/TestRed_0.2_1.0.mat @@ -127,6 +127,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &1341180211033807338 MonoBehaviour: m_ObjectHideFlags: 11 @@ -139,4 +140,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/TestRed_0.3_1.0.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/TestRed_0.3_1.0.mat index 6812ccdd431..f6c0216a8b4 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/TestRed_0.3_1.0.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/TestRed_0.3_1.0.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -140,3 +140,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/TestRed_0.4_1.0.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/TestRed_0.4_1.0.mat index 1657f8e9609..69de0c78d72 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/TestRed_0.4_1.0.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/TestRed_0.4_1.0.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -140,3 +140,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/TestRed_0.5_1.0.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/TestRed_0.5_1.0.mat index 92d5cda8183..8bc6dd07cb1 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/TestRed_0.5_1.0.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/TestRed_0.5_1.0.mat @@ -127,6 +127,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &3224356192896910156 MonoBehaviour: m_ObjectHideFlags: 11 @@ -139,4 +140,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/TestRed_0.6_1.0.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/TestRed_0.6_1.0.mat index 3d5b1dd72b9..3b5b8a39a43 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/TestRed_0.6_1.0.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/TestRed_0.6_1.0.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -140,3 +140,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/TestRed_0.7_1.0.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/TestRed_0.7_1.0.mat index dd4d75469f2..ef255ccf2fa 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/TestRed_0.7_1.0.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/TestRed_0.7_1.0.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -140,3 +140,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/TestRed_0.8_1.0.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/TestRed_0.8_1.0.mat index 1b8ac3b85d4..0348bdd0d29 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/TestRed_0.8_1.0.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/TestRed_0.8_1.0.mat @@ -127,6 +127,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &2951726706349672868 MonoBehaviour: m_ObjectHideFlags: 11 @@ -139,4 +140,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/TestRed_0.9_1.0.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/TestRed_0.9_1.0.mat index 29876001f66..45b2c3ef699 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/TestRed_0.9_1.0.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/TestRed_0.9_1.0.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -140,3 +140,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/TestRed_1.0_0.0.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/TestRed_1.0_0.0.mat index 3112662c3b1..7aa6a2e71bd 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/TestRed_1.0_0.0.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/TestRed_1.0_0.0.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -140,3 +140,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/TestRed_1.0_0.1.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/TestRed_1.0_0.1.mat index cbae8b4bf32..e418a7c29d0 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/TestRed_1.0_0.1.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/TestRed_1.0_0.1.mat @@ -127,6 +127,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &474736745994936570 MonoBehaviour: m_ObjectHideFlags: 11 @@ -139,4 +140,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/TestRed_1.0_0.2.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/TestRed_1.0_0.2.mat index 00582b51fa3..df748c4ad62 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/TestRed_1.0_0.2.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/TestRed_1.0_0.2.mat @@ -127,6 +127,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &8954382319200209357 MonoBehaviour: m_ObjectHideFlags: 11 @@ -139,4 +140,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/TestRed_1.0_0.3.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/TestRed_1.0_0.3.mat index b549534302b..b44a81721aa 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/TestRed_1.0_0.3.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/TestRed_1.0_0.3.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -140,3 +140,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/TestRed_1.0_0.4.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/TestRed_1.0_0.4.mat index 21e9e10daf3..dce3ea722be 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/TestRed_1.0_0.4.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/TestRed_1.0_0.4.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -140,3 +140,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/TestRed_1.0_0.5.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/TestRed_1.0_0.5.mat index 030a3a3117e..1dee0f182cd 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/TestRed_1.0_0.5.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/TestRed_1.0_0.5.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -140,3 +140,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/TestRed_1.0_0.6.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/TestRed_1.0_0.6.mat index 17c37c8fc85..aece780ee0d 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/TestRed_1.0_0.6.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/TestRed_1.0_0.6.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -140,3 +140,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/TestRed_1.0_0.7.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/TestRed_1.0_0.7.mat index 7b313e1cc23..e4d9bb9ba35 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/TestRed_1.0_0.7.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/TestRed_1.0_0.7.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -140,3 +140,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/TestRed_1.0_0.8.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/TestRed_1.0_0.8.mat index 47527a1f980..64e4c75192f 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/TestRed_1.0_0.8.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/TestRed_1.0_0.8.mat @@ -127,6 +127,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &4511345701272798427 MonoBehaviour: m_ObjectHideFlags: 11 @@ -139,4 +140,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/TestRed_1.0_0.9.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/TestRed_1.0_0.9.mat index 27252f83d49..5436c697de4 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/TestRed_1.0_0.9.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/TestRed_1.0_0.9.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -140,3 +140,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/TestRed_1.0_1.0.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/TestRed_1.0_1.0.mat index c49d735aa23..c243684277c 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/TestRed_1.0_1.0.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/130_ClearCoat/TestRed_1.0_1.0.mat @@ -127,6 +127,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &3403615243242511774 MonoBehaviour: m_ObjectHideFlags: 11 @@ -139,4 +140,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/131_ParallaxMapping/LitParallax.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/131_ParallaxMapping/LitParallax.mat index 37c301f93e0..6a8840575fd 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/131_ParallaxMapping/LitParallax.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/131_ParallaxMapping/LitParallax.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!114 &-2905550057155615101 MonoBehaviour: m_ObjectHideFlags: 11 @@ -403,3 +403,4 @@ Material: - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/131_ParallaxMapping/ParallaxMappingNode.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/131_ParallaxMapping/ParallaxMappingNode.mat index 6b0d5b8c178..2ef91c26015 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/131_ParallaxMapping/ParallaxMappingNode.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/131_ParallaxMapping/ParallaxMappingNode.mat @@ -361,6 +361,7 @@ Material: - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &847778799177982581 MonoBehaviour: m_ObjectHideFlags: 11 @@ -373,7 +374,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!114 &3764524467883863570 MonoBehaviour: m_ObjectHideFlags: 11 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/132_DetailMapping/Detail.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/132_DetailMapping/Detail.mat index b65c2e48d6b..e299441d3ba 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/132_DetailMapping/Detail.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/132_DetailMapping/Detail.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -138,3 +138,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/132_DetailMapping/Detail_BaseOnly.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/132_DetailMapping/Detail_BaseOnly.mat index 31b362c51d1..ac4869e41c5 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/132_DetailMapping/Detail_BaseOnly.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/132_DetailMapping/Detail_BaseOnly.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -138,3 +138,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/132_DetailMapping/Detail_BaseOnly_Scaled.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/132_DetailMapping/Detail_BaseOnly_Scaled.mat index 9c4cc309685..db9aa53963e 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/132_DetailMapping/Detail_BaseOnly_Scaled.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/132_DetailMapping/Detail_BaseOnly_Scaled.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -138,3 +138,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/132_DetailMapping/Detail_MainNormal.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/132_DetailMapping/Detail_MainNormal.mat index d66057a3e56..b25b6544788 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/132_DetailMapping/Detail_MainNormal.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/132_DetailMapping/Detail_MainNormal.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -139,3 +139,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/132_DetailMapping/Detail_Mask.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/132_DetailMapping/Detail_Mask.mat index 105ef6be470..2cc1e97648b 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/132_DetailMapping/Detail_Mask.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/132_DetailMapping/Detail_Mask.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -138,3 +138,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/132_DetailMapping/Detail_NormalOnly.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/132_DetailMapping/Detail_NormalOnly.mat index a08e3e16241..57fe0b8e07c 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/132_DetailMapping/Detail_NormalOnly.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/132_DetailMapping/Detail_NormalOnly.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -138,3 +138,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/132_DetailMapping/Detail_NormalOnly_Scaled8x.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/132_DetailMapping/Detail_NormalOnly_Scaled8x.mat index ad56b89c304..ef0899660e3 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/132_DetailMapping/Detail_NormalOnly_Scaled8x.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/132_DetailMapping/Detail_NormalOnly_Scaled8x.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -138,3 +138,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/132_DetailMapping/Detail_Tiling5x.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/132_DetailMapping/Detail_Tiling5x.mat index 80f48f9d82a..599a8b79556 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/132_DetailMapping/Detail_Tiling5x.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/132_DetailMapping/Detail_Tiling5x.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -138,3 +138,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/140_LightCookies/147_LightCookies_Shaders/LightCookie_BakedLit.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/140_LightCookies/147_LightCookies_Shaders/LightCookie_BakedLit.mat index 932a8a93318..1b105c51303 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/140_LightCookies/147_LightCookies_Shaders/LightCookie_BakedLit.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/140_LightCookies/147_LightCookies_Shaders/LightCookie_BakedLit.mat @@ -224,6 +224,7 @@ Material: - _UvOffset: {r: 0, g: 0, b: 0, a: 0} - _UvTiling: {r: 1, g: 1, b: 0, a: 0} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &7127231601584020478 MonoBehaviour: m_ObjectHideFlags: 11 @@ -236,4 +237,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/140_LightCookies/147_LightCookies_Shaders/LightCookie_ComplexLit.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/140_LightCookies/147_LightCookies_Shaders/LightCookie_ComplexLit.mat index 29906f0669e..d4930453544 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/140_LightCookies/147_LightCookies_Shaders/LightCookie_ComplexLit.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/140_LightCookies/147_LightCookies_Shaders/LightCookie_ComplexLit.mat @@ -125,6 +125,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &7127231601584020478 MonoBehaviour: m_ObjectHideFlags: 11 @@ -137,4 +138,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/140_LightCookies/147_LightCookies_Shaders/LightCookie_Lit.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/140_LightCookies/147_LightCookies_Shaders/LightCookie_Lit.mat index 9d422bcd2cf..9c5375c69bf 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/140_LightCookies/147_LightCookies_Shaders/LightCookie_Lit.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/140_LightCookies/147_LightCookies_Shaders/LightCookie_Lit.mat @@ -118,6 +118,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &7127231601584020478 MonoBehaviour: m_ObjectHideFlags: 11 @@ -130,4 +131,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/140_LightCookies/147_LightCookies_Shaders/LightCookie_Particles_Lit.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/140_LightCookies/147_LightCookies_Shaders/LightCookie_Particles_Lit.mat index 91c601318b6..f840319a8af 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/140_LightCookies/147_LightCookies_Shaders/LightCookie_Particles_Lit.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/140_LightCookies/147_LightCookies_Shaders/LightCookie_Particles_Lit.mat @@ -135,6 +135,7 @@ Material: - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &7127231601584020478 MonoBehaviour: m_ObjectHideFlags: 11 @@ -147,4 +148,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/140_LightCookies/147_LightCookies_Shaders/LightCookie_Particles_SimpleLit.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/140_LightCookies/147_LightCookies_Shaders/LightCookie_Particles_SimpleLit.mat index e091b766fde..685c60709be 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/140_LightCookies/147_LightCookies_Shaders/LightCookie_Particles_SimpleLit.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/140_LightCookies/147_LightCookies_Shaders/LightCookie_Particles_SimpleLit.mat @@ -133,6 +133,7 @@ Material: - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &7127231601584020478 MonoBehaviour: m_ObjectHideFlags: 11 @@ -145,4 +146,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/140_LightCookies/147_LightCookies_Shaders/LightCookie_Particles_Unlit.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/140_LightCookies/147_LightCookies_Shaders/LightCookie_Particles_Unlit.mat index 9a4fed41755..e490f262ed8 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/140_LightCookies/147_LightCookies_Shaders/LightCookie_Particles_Unlit.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/140_LightCookies/147_LightCookies_Shaders/LightCookie_Particles_Unlit.mat @@ -132,6 +132,7 @@ Material: - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &7127231601584020478 MonoBehaviour: m_ObjectHideFlags: 11 @@ -144,4 +145,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/140_LightCookies/147_LightCookies_Shaders/LightCookie_SG_Lit.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/140_LightCookies/147_LightCookies_Shaders/LightCookie_SG_Lit.mat index a73bae3c4e7..59559d88495 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/140_LightCookies/147_LightCookies_Shaders/LightCookie_SG_Lit.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/140_LightCookies/147_LightCookies_Shaders/LightCookie_SG_Lit.mat @@ -116,6 +116,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &7127231601584020478 MonoBehaviour: m_ObjectHideFlags: 11 @@ -128,4 +129,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/140_LightCookies/147_LightCookies_Shaders/LightCookie_SG_Unlit.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/140_LightCookies/147_LightCookies_Shaders/LightCookie_SG_Unlit.mat index 74d5b7ac447..c971516e8cf 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/140_LightCookies/147_LightCookies_Shaders/LightCookie_SG_Unlit.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/140_LightCookies/147_LightCookies_Shaders/LightCookie_SG_Unlit.mat @@ -116,6 +116,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &7127231601584020478 MonoBehaviour: m_ObjectHideFlags: 11 @@ -128,4 +129,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/140_LightCookies/147_LightCookies_Shaders/LightCookie_SimpleLit.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/140_LightCookies/147_LightCookies_Shaders/LightCookie_SimpleLit.mat index 169cafa8b8f..5f62fb31ff5 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/140_LightCookies/147_LightCookies_Shaders/LightCookie_SimpleLit.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/140_LightCookies/147_LightCookies_Shaders/LightCookie_SimpleLit.mat @@ -122,6 +122,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &7127231601584020478 MonoBehaviour: m_ObjectHideFlags: 11 @@ -134,4 +135,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/140_LightCookies/147_LightCookies_Shaders/LightCookie_Unlit.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/140_LightCookies/147_LightCookies_Shaders/LightCookie_Unlit.mat index 07e5dcf087e..c288ae7fcdf 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/140_LightCookies/147_LightCookies_Shaders/LightCookie_Unlit.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/140_LightCookies/147_LightCookies_Shaders/LightCookie_Unlit.mat @@ -119,6 +119,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &7127231601584020478 MonoBehaviour: m_ObjectHideFlags: 11 @@ -131,4 +132,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/161_FP16_BackBuffer/Background.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/161_FP16_BackBuffer/Background.mat index be05bda430f..db32ae1e473 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/161_FP16_BackBuffer/Background.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/161_FP16_BackBuffer/Background.mat @@ -119,6 +119,7 @@ Material: - _EmissionColor: {r: 1, g: 1, b: 1, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &3566201247283035050 MonoBehaviour: m_ObjectHideFlags: 11 @@ -131,4 +132,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/161_FP16_BackBuffer/ParticleWhiteTransparent.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/161_FP16_BackBuffer/ParticleWhiteTransparent.mat index 9303caaca88..0b9fd7511db 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/161_FP16_BackBuffer/ParticleWhiteTransparent.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/161_FP16_BackBuffer/ParticleWhiteTransparent.mat @@ -15,7 +15,7 @@ Material: - _EMISSION - _SURFACE_TYPE_TRANSPARENT m_InvalidKeywords: [] - m_LightmapFlags: 0 + m_LightmapFlags: 2 m_EnableInstancingVariants: 0 m_DoubleSidedGI: 0 m_CustomRenderQueue: 3000 @@ -87,7 +87,9 @@ Material: m_Offset: {x: 0, y: 0} m_Ints: [] m_Floats: + - _AddPrecomputedVelocity: 0 - _AlphaClip: 0 + - _AlphaToMask: 0 - _Blend: 0 - _BlendModePreserveSpecular: 0 - _BumpScale: 1 @@ -115,6 +117,7 @@ Material: - _SrcBlendAlpha: 1 - _Surface: 1 - _WorkflowMode: 1 + - _XRMotionVectorsPass: 1 - _ZWrite: 0 m_Colors: - _BaseColor: {r: 1, g: 1, b: 1, a: 0.12941177} @@ -122,6 +125,7 @@ Material: - _EmissionColor: {r: 1, g: 1, b: 1, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &6421356677785975880 MonoBehaviour: m_ObjectHideFlags: 11 @@ -134,4 +138,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/190_SampleDepth/CopyDepthPrepassFeature.cs b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/190_SampleDepth/CopyDepthPrepassFeature.cs index e4649266f02..c32326fb508 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/190_SampleDepth/CopyDepthPrepassFeature.cs +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/190_SampleDepth/CopyDepthPrepassFeature.cs @@ -32,11 +32,13 @@ public override void AddRenderPasses(ScriptableRenderer renderer, ref RenderingD copyDepthPasses.EnqueuePasses(renderer); } +#if URP_COMPATIBILITY_MODE [Obsolete("This rendering path is for compatibility mode only (when Render Graph is disabled). Use Render Graph API instead.", false)] public override void SetupRenderPasses(ScriptableRenderer renderer, in RenderingData renderingData) { copyDepthPasses.SetupForNonRGPath(renderer, renderingData.cameraData.cameraTargetDescriptor); } +#endif public override void Create() { @@ -83,6 +85,7 @@ public ThreeCopyDepths(ref Shader copyDepthShader) m_CopyDepthPass3 = new CopyDepthPass(RenderPassEvent.AfterRenderingOpaques, copyDepthShader, copyToDepth: true, copyResolvedDepth: true, customPassName: "Third Copy"); } +#if URP_COMPATIBILITY_MODE public void SetupForNonRGPath(ScriptableRenderer renderer, RenderTextureDescriptor cameraTextureDescriptor) { var depthDesc = cameraTextureDescriptor; @@ -103,6 +106,7 @@ public void SetupForNonRGPath(ScriptableRenderer renderer, RenderTextureDescript public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) { } +#endif internal void EnqueuePasses(ScriptableRenderer renderer) { diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/190_SampleDepth/ShaderGraphs_SphereIntersector.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/190_SampleDepth/ShaderGraphs_SphereIntersector.mat index c93dddffc0d..99cffd7b20f 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/190_SampleDepth/ShaderGraphs_SphereIntersector.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/190_SampleDepth/ShaderGraphs_SphereIntersector.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -68,3 +68,4 @@ Material: m_Colors: - Color_456FBD92: {r: 1, g: 0, b: 0, a: 0.5254902} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/190_SampleDepth/unlit.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/190_SampleDepth/unlit.mat index 0cd83cf037e..eefe0630893 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/190_SampleDepth/unlit.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/190_SampleDepth/unlit.mat @@ -86,6 +86,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &4553114880188406304 MonoBehaviour: m_ObjectHideFlags: 11 @@ -98,4 +99,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/206_Motion_Vectors/CaptureMotionVectorsPass.cs b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/206_Motion_Vectors/CaptureMotionVectorsPass.cs index 8f1a2a2e62f..ae7faaa62ef 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/206_Motion_Vectors/CaptureMotionVectorsPass.cs +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/206_Motion_Vectors/CaptureMotionVectorsPass.cs @@ -27,6 +27,7 @@ public void SetIntensity(float intensity) m_intensity = intensity; } +#if URP_COMPATIBILITY_MODE [Obsolete("This rendering path is for compatibility mode only (when Render Graph is disabled). Use Render Graph API instead.", false)] public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) { @@ -40,7 +41,7 @@ public override void Execute(ScriptableRenderContext context, ref RenderingData CommandBufferPool.Release(rawcmd); } - +#endif static void ExecutePass(RTHandle targetHandle, RasterCommandBuffer cmd, Camera camera, Material material, float motionIntensity) { diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/206_Motion_Vectors/SGMaterial.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/206_Motion_Vectors/SGMaterial.mat index bc0cdfcc657..8537d149e74 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/206_Motion_Vectors/SGMaterial.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/206_Motion_Vectors/SGMaterial.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -26,8 +26,9 @@ Material: m_Parent: {fileID: 0} m_ModifiedSerializedProperties: 0 m_ValidKeywords: [] - m_InvalidKeywords: [] - m_LightmapFlags: 0 + m_InvalidKeywords: + - _EMISSION + m_LightmapFlags: 2 m_EnableInstancingVariants: 0 m_DoubleSidedGI: 0 m_CustomRenderQueue: -1 @@ -56,3 +57,4 @@ Material: - _QueueOffset: 0 m_Colors: [] m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/210_Motion_Vectors/Materials/216_A_Unlit (Alembic).mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/210_Motion_Vectors/Materials/216_A_Unlit (Alembic).mat index 02593ccf375..f7748073556 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/210_Motion_Vectors/Materials/216_A_Unlit (Alembic).mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/210_Motion_Vectors/Materials/216_A_Unlit (Alembic).mat @@ -30,6 +30,7 @@ Material: - _AddPrecomputedVelocity: 1 m_Colors: [] m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &6349972338772946145 MonoBehaviour: m_ObjectHideFlags: 11 @@ -42,4 +43,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/210_Motion_Vectors/Materials/216_B_Lit (Alembic).mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/210_Motion_Vectors/Materials/216_B_Lit (Alembic).mat index 71eeae00ba7..cbda7e8b341 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/210_Motion_Vectors/Materials/216_B_Lit (Alembic).mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/210_Motion_Vectors/Materials/216_B_Lit (Alembic).mat @@ -30,6 +30,7 @@ Material: - _AddPrecomputedVelocity: 1 m_Colors: [] m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &3932072853787191375 MonoBehaviour: m_ObjectHideFlags: 11 @@ -42,4 +43,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/210_Motion_Vectors/Materials/216_C_SimpleLit (Alembic).mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/210_Motion_Vectors/Materials/216_C_SimpleLit (Alembic).mat index 7802a845ebf..6d29e316b90 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/210_Motion_Vectors/Materials/216_C_SimpleLit (Alembic).mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/210_Motion_Vectors/Materials/216_C_SimpleLit (Alembic).mat @@ -30,6 +30,7 @@ Material: - _AddPrecomputedVelocity: 1 m_Colors: [] m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &8745812590398274722 MonoBehaviour: m_ObjectHideFlags: 11 @@ -42,4 +43,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/210_Motion_Vectors/Materials/216_D_ComplexLit (Alembic).mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/210_Motion_Vectors/Materials/216_D_ComplexLit (Alembic).mat index c04ad5e1721..e3013d235d7 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/210_Motion_Vectors/Materials/216_D_ComplexLit (Alembic).mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/210_Motion_Vectors/Materials/216_D_ComplexLit (Alembic).mat @@ -30,6 +30,7 @@ Material: - _AddPrecomputedVelocity: 1 m_Colors: [] m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &6883100178681712770 MonoBehaviour: m_ObjectHideFlags: 11 @@ -42,4 +43,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/210_Motion_Vectors/Materials/216_E_BakedLit (Alembic).mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/210_Motion_Vectors/Materials/216_E_BakedLit (Alembic).mat index 44228069933..dde22aa9bab 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/210_Motion_Vectors/Materials/216_E_BakedLit (Alembic).mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/210_Motion_Vectors/Materials/216_E_BakedLit (Alembic).mat @@ -30,6 +30,7 @@ Material: - _AddPrecomputedVelocity: 1 m_Colors: [] m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &1601630681085413087 MonoBehaviour: m_ObjectHideFlags: 11 @@ -42,4 +43,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/210_Motion_Vectors/Materials/A_A_Unlit.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/210_Motion_Vectors/Materials/A_A_Unlit.mat index 269da6b37d7..d97c69c5371 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/210_Motion_Vectors/Materials/A_A_Unlit.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/210_Motion_Vectors/Materials/A_A_Unlit.mat @@ -145,6 +145,7 @@ Material: - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &5674179600840522689 MonoBehaviour: m_ObjectHideFlags: 11 @@ -157,4 +158,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/210_Motion_Vectors/Materials/A_B_Lit.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/210_Motion_Vectors/Materials/A_B_Lit.mat index ea46fe14f16..6dfbbba8213 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/210_Motion_Vectors/Materials/A_B_Lit.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/210_Motion_Vectors/Materials/A_B_Lit.mat @@ -120,6 +120,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &5674179600840522689 MonoBehaviour: m_ObjectHideFlags: 11 @@ -132,4 +133,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/210_Motion_Vectors/Materials/A_C_SimpleLit.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/210_Motion_Vectors/Materials/A_C_SimpleLit.mat index 464cfdd1c9e..fae616bb0d2 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/210_Motion_Vectors/Materials/A_C_SimpleLit.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/210_Motion_Vectors/Materials/A_C_SimpleLit.mat @@ -124,6 +124,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &5674179600840522689 MonoBehaviour: m_ObjectHideFlags: 11 @@ -136,4 +137,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/210_Motion_Vectors/Materials/A_D_ComplexLit.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/210_Motion_Vectors/Materials/A_D_ComplexLit.mat index 0cfe04663ad..79a4869e9cc 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/210_Motion_Vectors/Materials/A_D_ComplexLit.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/210_Motion_Vectors/Materials/A_D_ComplexLit.mat @@ -126,6 +126,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &5674179600840522689 MonoBehaviour: m_ObjectHideFlags: 11 @@ -138,4 +139,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/210_Motion_Vectors/Materials/A_E_BakedLit.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/210_Motion_Vectors/Materials/A_E_BakedLit.mat index e9a54dc9f79..4e431c31cb8 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/210_Motion_Vectors/Materials/A_E_BakedLit.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/210_Motion_Vectors/Materials/A_E_BakedLit.mat @@ -121,6 +121,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &5674179600840522689 MonoBehaviour: m_ObjectHideFlags: 11 @@ -133,4 +134,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/210_Motion_Vectors/Materials/B_A_Unlit.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/210_Motion_Vectors/Materials/B_A_Unlit.mat index 32949d934c8..fc014f816eb 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/210_Motion_Vectors/Materials/B_A_Unlit.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/210_Motion_Vectors/Materials/B_A_Unlit.mat @@ -146,6 +146,7 @@ Material: - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &5674179600840522689 MonoBehaviour: m_ObjectHideFlags: 11 @@ -158,4 +159,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/210_Motion_Vectors/Materials/B_B_Lit.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/210_Motion_Vectors/Materials/B_B_Lit.mat index c22a53fef17..a9f75fc9e52 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/210_Motion_Vectors/Materials/B_B_Lit.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/210_Motion_Vectors/Materials/B_B_Lit.mat @@ -121,6 +121,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &5674179600840522689 MonoBehaviour: m_ObjectHideFlags: 11 @@ -133,4 +134,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/210_Motion_Vectors/Materials/B_C_SimpleLit.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/210_Motion_Vectors/Materials/B_C_SimpleLit.mat index 1a436f5766c..75ff6181d9a 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/210_Motion_Vectors/Materials/B_C_SimpleLit.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/210_Motion_Vectors/Materials/B_C_SimpleLit.mat @@ -125,6 +125,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &5674179600840522689 MonoBehaviour: m_ObjectHideFlags: 11 @@ -137,4 +138,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/210_Motion_Vectors/Materials/B_D_ComplexLit.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/210_Motion_Vectors/Materials/B_D_ComplexLit.mat index 313c83c99e7..46a16803685 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/210_Motion_Vectors/Materials/B_D_ComplexLit.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/210_Motion_Vectors/Materials/B_D_ComplexLit.mat @@ -127,6 +127,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &5674179600840522689 MonoBehaviour: m_ObjectHideFlags: 11 @@ -139,4 +140,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/210_Motion_Vectors/Materials/B_E_BakedLit.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/210_Motion_Vectors/Materials/B_E_BakedLit.mat index e98632128d3..ef295c2fc8a 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/210_Motion_Vectors/Materials/B_E_BakedLit.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/210_Motion_Vectors/Materials/B_E_BakedLit.mat @@ -122,6 +122,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &5674179600840522689 MonoBehaviour: m_ObjectHideFlags: 11 @@ -134,4 +135,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/225_DepthPriming/Transparent.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/225_DepthPriming/Transparent.mat index 0d717fcb5e9..0cedaf747b8 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/225_DepthPriming/Transparent.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/225_DepthPriming/Transparent.mat @@ -122,6 +122,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &3256230158234068506 MonoBehaviour: m_ObjectHideFlags: 11 @@ -134,4 +135,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/230_Decals/Materials/Brick.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/230_Decals/Materials/Brick.mat index 8357ae9a6d1..f442e3d13d1 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/230_Decals/Materials/Brick.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/230_Decals/Materials/Brick.mat @@ -118,6 +118,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &1670177252790822087 MonoBehaviour: m_ObjectHideFlags: 11 @@ -130,4 +131,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/230_Decals/Materials/DecalAngleFade.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/230_Decals/Materials/DecalAngleFade.mat index 2ae3d61ba27..dbab51390cc 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/230_Decals/Materials/DecalAngleFade.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/230_Decals/Materials/DecalAngleFade.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -142,3 +142,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/230_Decals/Materials/DecalBase.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/230_Decals/Materials/DecalBase.mat index 477187c926e..7b915278866 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/230_Decals/Materials/DecalBase.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/230_Decals/Materials/DecalBase.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -142,3 +142,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/230_Decals/Materials/DecalCrossFade.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/230_Decals/Materials/DecalCrossFade.mat index 8bd3d06f118..57de5633cd5 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/230_Decals/Materials/DecalCrossFade.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/230_Decals/Materials/DecalCrossFade.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -141,3 +141,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/230_Decals/Materials/DecalEmission.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/230_Decals/Materials/DecalEmission.mat index b6f5502a76b..7d0763ac1af 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/230_Decals/Materials/DecalEmission.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/230_Decals/Materials/DecalEmission.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -145,3 +145,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/230_Decals/Materials/DecalNormal.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/230_Decals/Materials/DecalNormal.mat index eabd6f4185e..0b419ef5334 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/230_Decals/Materials/DecalNormal.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/230_Decals/Materials/DecalNormal.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -150,3 +150,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/230_Decals/Materials/DecalNormalMOS.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/230_Decals/Materials/DecalNormalMOS.mat index 0dd337b8d04..27608d20cfc 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/230_Decals/Materials/DecalNormalMOS.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/230_Decals/Materials/DecalNormalMOS.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -147,3 +147,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/230_Decals/Materials/DecalPriority1.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/230_Decals/Materials/DecalPriority1.mat index b7a4a6cd3c7..2c8a31ca535 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/230_Decals/Materials/DecalPriority1.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/230_Decals/Materials/DecalPriority1.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -142,3 +142,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/230_Decals/Materials/DecalPriority2.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/230_Decals/Materials/DecalPriority2.mat index aa80e60da5f..491b256c2c3 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/230_Decals/Materials/DecalPriority2.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/230_Decals/Materials/DecalPriority2.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -142,3 +142,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/230_Decals/Materials/DecalPriority3.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/230_Decals/Materials/DecalPriority3.mat index b744a861e0a..1c851911b00 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/230_Decals/Materials/DecalPriority3.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/230_Decals/Materials/DecalPriority3.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -142,3 +142,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/230_Decals/Materials/DecalViewBias.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/230_Decals/Materials/DecalViewBias.mat index a3d80fcd989..290a1ad5400 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/230_Decals/Materials/DecalViewBias.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/230_Decals/Materials/DecalViewBias.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -142,3 +142,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/230_Decals/Materials/LitRed.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/230_Decals/Materials/LitRed.mat index b4489efa28d..0e151f6e006 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/230_Decals/Materials/LitRed.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/230_Decals/Materials/LitRed.mat @@ -120,6 +120,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &1670177252790822087 MonoBehaviour: m_ObjectHideFlags: 11 @@ -132,4 +133,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/230_Decals/Materials/UnlitRed.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/230_Decals/Materials/UnlitRed.mat index 062a544afa9..f29332127d7 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/230_Decals/Materials/UnlitRed.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/230_Decals/Materials/UnlitRed.mat @@ -121,6 +121,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &1670177252790822087 MonoBehaviour: m_ObjectHideFlags: 11 @@ -133,4 +134,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/245_Normal_Reconstruction/NormalReconstructionTestFeature.cs b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/245_Normal_Reconstruction/NormalReconstructionTestFeature.cs index 02f55b73df7..37f67e876a4 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/245_Normal_Reconstruction/NormalReconstructionTestFeature.cs +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/245_Normal_Reconstruction/NormalReconstructionTestFeature.cs @@ -39,6 +39,7 @@ public void Setup(Material material) m_Material = material; } +#if URP_COMPATIBILITY_MODE [Obsolete("This rendering path is for compatibility mode only (when Render Graph is disabled). Use Render Graph API instead.", false)] public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) { @@ -51,6 +52,7 @@ public override void Execute(ScriptableRenderContext context, ref RenderingData CommandBufferPool.Release(cmd); } +#endif static void ExecutePass(RasterCommandBuffer cmd, in CameraData cameraData) { diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/248_LOD_CrossFade/Baked Lit 0.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/248_LOD_CrossFade/Baked Lit 0.mat index c2595652bfb..622e031aafa 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/248_LOD_CrossFade/Baked Lit 0.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/248_LOD_CrossFade/Baked Lit 0.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/248_LOD_CrossFade/Baked Lit 1.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/248_LOD_CrossFade/Baked Lit 1.mat index 019a534a2e2..843eb45f31c 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/248_LOD_CrossFade/Baked Lit 1.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/248_LOD_CrossFade/Baked Lit 1.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -133,3 +133,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/248_LOD_CrossFade/Complex Lit 0.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/248_LOD_CrossFade/Complex Lit 0.mat index f1076d5d059..306100ba6f9 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/248_LOD_CrossFade/Complex Lit 0.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/248_LOD_CrossFade/Complex Lit 0.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -140,3 +140,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/248_LOD_CrossFade/Complex Lit 1.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/248_LOD_CrossFade/Complex Lit 1.mat index 8434987d37a..1cb92963b0a 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/248_LOD_CrossFade/Complex Lit 1.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/248_LOD_CrossFade/Complex Lit 1.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -140,3 +140,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/248_LOD_CrossFade/Lit 0.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/248_LOD_CrossFade/Lit 0.mat index dac9ec25b3a..b820da468c3 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/248_LOD_CrossFade/Lit 0.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/248_LOD_CrossFade/Lit 0.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -134,3 +134,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/248_LOD_CrossFade/Lit 1.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/248_LOD_CrossFade/Lit 1.mat index e2491bd1b8b..3d6fa590f3c 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/248_LOD_CrossFade/Lit 1.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/248_LOD_CrossFade/Lit 1.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -134,3 +134,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/248_LOD_CrossFade/ShaderGraphLit_0.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/248_LOD_CrossFade/ShaderGraphLit_0.mat index b65b43bb808..4e04cea79b6 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/248_LOD_CrossFade/ShaderGraphLit_0.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/248_LOD_CrossFade/ShaderGraphLit_0.mat @@ -120,6 +120,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &7692442807441791222 MonoBehaviour: m_ObjectHideFlags: 11 @@ -132,4 +133,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/248_LOD_CrossFade/ShaderGraphLit_1.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/248_LOD_CrossFade/ShaderGraphLit_1.mat index 46e93c5d5fa..347b0ca2842 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/248_LOD_CrossFade/ShaderGraphLit_1.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/248_LOD_CrossFade/ShaderGraphLit_1.mat @@ -120,6 +120,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &7692442807441791222 MonoBehaviour: m_ObjectHideFlags: 11 @@ -132,4 +133,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/248_LOD_CrossFade/ShaderGraphUnlit_0.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/248_LOD_CrossFade/ShaderGraphUnlit_0.mat index 469b48c53e2..82916ef2735 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/248_LOD_CrossFade/ShaderGraphUnlit_0.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/248_LOD_CrossFade/ShaderGraphUnlit_0.mat @@ -120,6 +120,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &7692442807441791222 MonoBehaviour: m_ObjectHideFlags: 11 @@ -132,4 +133,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/248_LOD_CrossFade/ShaderGraphUnlit_1.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/248_LOD_CrossFade/ShaderGraphUnlit_1.mat index 5111cfa36ba..bdf92f1f014 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/248_LOD_CrossFade/ShaderGraphUnlit_1.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/248_LOD_CrossFade/ShaderGraphUnlit_1.mat @@ -120,6 +120,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &7692442807441791222 MonoBehaviour: m_ObjectHideFlags: 11 @@ -132,4 +133,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/248_LOD_CrossFade/Simple Lit 0.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/248_LOD_CrossFade/Simple Lit 0.mat index 7cc37c02f81..ff30670896d 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/248_LOD_CrossFade/Simple Lit 0.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/248_LOD_CrossFade/Simple Lit 0.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -136,3 +136,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/248_LOD_CrossFade/Simple Lit 1.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/248_LOD_CrossFade/Simple Lit 1.mat index ca34caf8349..d98872149dc 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/248_LOD_CrossFade/Simple Lit 1.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/248_LOD_CrossFade/Simple Lit 1.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -136,3 +136,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/248_LOD_CrossFade/Unlit 0.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/248_LOD_CrossFade/Unlit 0.mat index 2dda711e68c..9d52e860fcd 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/248_LOD_CrossFade/Unlit 0.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/248_LOD_CrossFade/Unlit 0.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -133,3 +133,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/248_LOD_CrossFade/Unlit 1.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/248_LOD_CrossFade/Unlit 1.mat index 3cb97ee693b..f55ed325f88 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/248_LOD_CrossFade/Unlit 1.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/248_LOD_CrossFade/Unlit 1.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -133,3 +133,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/250_AlphaToCoverage/A0C0.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/250_AlphaToCoverage/A0C0.mat index 54e3d05d301..0c16f7d88f2 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/250_AlphaToCoverage/A0C0.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/250_AlphaToCoverage/A0C0.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/250_AlphaToCoverage/A0C1.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/250_AlphaToCoverage/A0C1.mat index 636eafc2a77..4a5df5f77f3 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/250_AlphaToCoverage/A0C1.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/250_AlphaToCoverage/A0C1.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/250_AlphaToCoverage/A1C0.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/250_AlphaToCoverage/A1C0.mat index f3014fc4856..7eb63b5ad05 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/250_AlphaToCoverage/A1C0.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/250_AlphaToCoverage/A1C0.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/250_AlphaToCoverage/A1C1.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/250_AlphaToCoverage/A1C1.mat index 435702662a2..e2dc06f407e 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/250_AlphaToCoverage/A1C1.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/250_AlphaToCoverage/A1C1.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/250_AlphaToCoverage/Opaque.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/250_AlphaToCoverage/Opaque.mat index 1cdd252f527..e461bdc9c27 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/250_AlphaToCoverage/Opaque.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/250_AlphaToCoverage/Opaque.mat @@ -119,6 +119,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &5034727462125200120 MonoBehaviour: m_ObjectHideFlags: 11 @@ -131,4 +132,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/250_AlphaToCoverage/Opaque_Cutout.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/250_AlphaToCoverage/Opaque_Cutout.mat index 859e813b8ee..f79a5317434 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/250_AlphaToCoverage/Opaque_Cutout.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/250_AlphaToCoverage/Opaque_Cutout.mat @@ -120,6 +120,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &5034727462125200120 MonoBehaviour: m_ObjectHideFlags: 11 @@ -132,4 +133,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/250_AlphaToCoverage/Opaque_Cutout_Graph.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/250_AlphaToCoverage/Opaque_Cutout_Graph.mat index 8ad1fb1ed90..931afb71ea0 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/250_AlphaToCoverage/Opaque_Cutout_Graph.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/250_AlphaToCoverage/Opaque_Cutout_Graph.mat @@ -124,6 +124,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &5034727462125200120 MonoBehaviour: m_ObjectHideFlags: 11 @@ -136,4 +137,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/250_AlphaToCoverage/Opaque_Graph.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/250_AlphaToCoverage/Opaque_Graph.mat index dcce4513717..8d37223633f 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/250_AlphaToCoverage/Opaque_Graph.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/250_AlphaToCoverage/Opaque_Graph.mat @@ -124,6 +124,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &5034727462125200120 MonoBehaviour: m_ObjectHideFlags: 11 @@ -136,4 +137,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/250_AlphaToCoverage/ShaderGraph_NegCutoff.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/250_AlphaToCoverage/ShaderGraph_NegCutoff.mat index 66d8c7abd1a..6bf023348f4 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/250_AlphaToCoverage/ShaderGraph_NegCutoff.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/250_AlphaToCoverage/ShaderGraph_NegCutoff.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -26,7 +26,8 @@ Material: m_Parent: {fileID: 0} m_ModifiedSerializedProperties: 0 m_ValidKeywords: [] - m_InvalidKeywords: [] + m_InvalidKeywords: + - _EMISSION m_LightmapFlags: 2 m_EnableInstancingVariants: 0 m_DoubleSidedGI: 0 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/250_AlphaToCoverage/Transparent.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/250_AlphaToCoverage/Transparent.mat index 0901164f222..7f3ce916fd9 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/250_AlphaToCoverage/Transparent.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/250_AlphaToCoverage/Transparent.mat @@ -123,6 +123,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &5034727462125200120 MonoBehaviour: m_ObjectHideFlags: 11 @@ -135,4 +136,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/250_AlphaToCoverage/Transparent_Cutout.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/250_AlphaToCoverage/Transparent_Cutout.mat index 0970cdcf177..02a84bf9662 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/250_AlphaToCoverage/Transparent_Cutout.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/250_AlphaToCoverage/Transparent_Cutout.mat @@ -124,6 +124,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &5034727462125200120 MonoBehaviour: m_ObjectHideFlags: 11 @@ -136,4 +137,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/250_AlphaToCoverage/Transparent_Cutout_Graph.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/250_AlphaToCoverage/Transparent_Cutout_Graph.mat index 728e9fa4bd6..73830a055dc 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/250_AlphaToCoverage/Transparent_Cutout_Graph.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/250_AlphaToCoverage/Transparent_Cutout_Graph.mat @@ -124,6 +124,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &5034727462125200120 MonoBehaviour: m_ObjectHideFlags: 11 @@ -136,4 +137,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/250_AlphaToCoverage/Transparent_Graph.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/250_AlphaToCoverage/Transparent_Graph.mat index ce650bfe50f..b0b75cde239 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/250_AlphaToCoverage/Transparent_Graph.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/250_AlphaToCoverage/Transparent_Graph.mat @@ -124,6 +124,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &5034727462125200120 MonoBehaviour: m_ObjectHideFlags: 11 @@ -136,4 +137,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/251_ReplacementShader/BaseMaterial.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/251_ReplacementShader/BaseMaterial.mat index 3d4e3bb8967..e95d3680cf7 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/251_ReplacementShader/BaseMaterial.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/251_ReplacementShader/BaseMaterial.mat @@ -13,7 +13,8 @@ Material: m_Parent: {fileID: 0} m_ModifiedSerializedProperties: 0 m_ValidKeywords: [] - m_InvalidKeywords: [] + m_InvalidKeywords: + - _EMISSION m_LightmapFlags: 2 m_EnableInstancingVariants: 0 m_DoubleSidedGI: 0 @@ -49,6 +50,7 @@ Material: - _Smoothness: 0.5 m_Colors: [] m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &6408577964682505998 MonoBehaviour: m_ObjectHideFlags: 11 @@ -61,4 +63,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/251_ReplacementShader/OverrideMaterial.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/251_ReplacementShader/OverrideMaterial.mat index ca514d10f4c..9400f3cd90c 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/251_ReplacementShader/OverrideMaterial.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/251_ReplacementShader/OverrideMaterial.mat @@ -13,7 +13,8 @@ Material: m_Parent: {fileID: 0} m_ModifiedSerializedProperties: 0 m_ValidKeywords: [] - m_InvalidKeywords: [] + m_InvalidKeywords: + - _EMISSION m_LightmapFlags: 2 m_EnableInstancingVariants: 0 m_DoubleSidedGI: 0 @@ -49,6 +50,7 @@ Material: - _Smoothness: 0.2 m_Colors: [] m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &3066030666941389754 MonoBehaviour: m_ObjectHideFlags: 11 @@ -61,4 +63,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/252_RenderRequest/Materials/2DArrayMaterial.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/252_RenderRequest/Materials/2DArrayMaterial.mat index f25a0ba6ba5..3af31b17084 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/252_RenderRequest/Materials/2DArrayMaterial.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/252_RenderRequest/Materials/2DArrayMaterial.mat @@ -47,6 +47,7 @@ Material: - _QueueOffset: 0 m_Colors: [] m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &3052253946277034384 MonoBehaviour: m_ObjectHideFlags: 11 @@ -59,4 +60,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/252_RenderRequest/Materials/OnBeginCameraRender_InLoop.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/252_RenderRequest/Materials/OnBeginCameraRender_InLoop.mat index fc4977877cb..b0c2b10d896 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/252_RenderRequest/Materials/OnBeginCameraRender_InLoop.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/252_RenderRequest/Materials/OnBeginCameraRender_InLoop.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/252_RenderRequest/Materials/OnBeginContextRendering_InLoop.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/252_RenderRequest/Materials/OnBeginContextRendering_InLoop.mat index 21b6c379801..2cd5c4619df 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/252_RenderRequest/Materials/OnBeginContextRendering_InLoop.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/252_RenderRequest/Materials/OnBeginContextRendering_InLoop.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/252_RenderRequest/Materials/OnEndCameraRender_InLoop.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/252_RenderRequest/Materials/OnEndCameraRender_InLoop.mat index e77fb5565e4..0b826807ee8 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/252_RenderRequest/Materials/OnEndCameraRender_InLoop.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/252_RenderRequest/Materials/OnEndCameraRender_InLoop.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/252_RenderRequest/Materials/OnEndContextRendering_InLoop.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/252_RenderRequest/Materials/OnEndContextRendering_InLoop.mat index 317068c8b01..69c5ed6f020 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/252_RenderRequest/Materials/OnEndContextRendering_InLoop.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/252_RenderRequest/Materials/OnEndContextRendering_InLoop.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/252_RenderRequest/Materials/ScenarioMaterial.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/252_RenderRequest/Materials/ScenarioMaterial.mat index 7df5be11964..e69124d34f1 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/252_RenderRequest/Materials/ScenarioMaterial.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/252_RenderRequest/Materials/ScenarioMaterial.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/252_RenderRequest/Materials/Texture2DTarget.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/252_RenderRequest/Materials/Texture2DTarget.mat index 2121ab6e353..572fd91191e 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/252_RenderRequest/Materials/Texture2DTarget.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/252_RenderRequest/Materials/Texture2DTarget.mat @@ -135,4 +135,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/252_RenderRequest/Materials/Texture3DMaterial.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/252_RenderRequest/Materials/Texture3DMaterial.mat index becf524c65f..fa2d56f37a5 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/252_RenderRequest/Materials/Texture3DMaterial.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/252_RenderRequest/Materials/Texture3DMaterial.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -60,3 +60,4 @@ Material: - _QueueOffset: 0 m_Colors: [] m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/252_RenderRequest/Materials/cubeMaterial.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/252_RenderRequest/Materials/cubeMaterial.mat index 79949b9b7f6..192d19904d4 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/252_RenderRequest/Materials/cubeMaterial.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/252_RenderRequest/Materials/cubeMaterial.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/261_RenderingLayers_Surfaces/BakedLit.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/261_RenderingLayers_Surfaces/BakedLit.mat index 4a7cd809469..64d63f9fc21 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/261_RenderingLayers_Surfaces/BakedLit.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/261_RenderingLayers_Surfaces/BakedLit.mat @@ -121,6 +121,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &1670177252790822087 MonoBehaviour: m_ObjectHideFlags: 11 @@ -133,4 +134,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/261_RenderingLayers_Surfaces/ComplexLit.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/261_RenderingLayers_Surfaces/ComplexLit.mat index c8954537a36..a8c64122ce8 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/261_RenderingLayers_Surfaces/ComplexLit.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/261_RenderingLayers_Surfaces/ComplexLit.mat @@ -129,6 +129,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &1670177252790822087 MonoBehaviour: m_ObjectHideFlags: 11 @@ -141,4 +142,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/261_RenderingLayers_Surfaces/Lit.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/261_RenderingLayers_Surfaces/Lit.mat index 3e6fd3debb3..70cc59310ef 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/261_RenderingLayers_Surfaces/Lit.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/261_RenderingLayers_Surfaces/Lit.mat @@ -118,6 +118,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &1670177252790822087 MonoBehaviour: m_ObjectHideFlags: 11 @@ -130,4 +131,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/261_RenderingLayers_Surfaces/SGLit.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/261_RenderingLayers_Surfaces/SGLit.mat index 8e8800e59aa..2ab6f1807ce 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/261_RenderingLayers_Surfaces/SGLit.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/261_RenderingLayers_Surfaces/SGLit.mat @@ -125,6 +125,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &1670177252790822087 MonoBehaviour: m_ObjectHideFlags: 11 @@ -137,7 +138,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!114 &6651480106922981014 MonoBehaviour: m_ObjectHideFlags: 11 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/261_RenderingLayers_Surfaces/SGUnlit.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/261_RenderingLayers_Surfaces/SGUnlit.mat index f6cd6f54d47..759324fce0f 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/261_RenderingLayers_Surfaces/SGUnlit.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/261_RenderingLayers_Surfaces/SGUnlit.mat @@ -139,6 +139,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &1670177252790822087 MonoBehaviour: m_ObjectHideFlags: 11 @@ -151,4 +152,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/261_RenderingLayers_Surfaces/Unlit.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/261_RenderingLayers_Surfaces/Unlit.mat index 53f5b956ca2..3b0d75e63d3 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/261_RenderingLayers_Surfaces/Unlit.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/261_RenderingLayers_Surfaces/Unlit.mat @@ -120,6 +120,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &1670177252790822087 MonoBehaviour: m_ObjectHideFlags: 11 @@ -132,4 +133,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/262_RenderingLayers_Decals/Concrete.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/262_RenderingLayers_Decals/Concrete.mat index 4226e924257..814d50fac4f 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/262_RenderingLayers_Decals/Concrete.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/262_RenderingLayers_Decals/Concrete.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -132,3 +132,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/262_RenderingLayers_Decals/Decal.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/262_RenderingLayers_Decals/Decal.mat index e81395b1abe..900777d2b98 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/262_RenderingLayers_Decals/Decal.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/262_RenderingLayers_Decals/Decal.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -143,3 +143,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/280_HistoryRawColorDepth/280_HistoryVisualizerRendererFeature.cs b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/280_HistoryRawColorDepth/280_HistoryVisualizerRendererFeature.cs index df8ae2624a3..9298ef8c51a 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/280_HistoryRawColorDepth/280_HistoryVisualizerRendererFeature.cs +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/280_HistoryRawColorDepth/280_HistoryVisualizerRendererFeature.cs @@ -49,6 +49,7 @@ public void RequestHistory(UniversalCameraHistory historyManager) } } +#if URP_COMPATIBILITY_MODE // For the Execute path only. [Obsolete("This rendering path is for compatibility mode only (when Render Graph is disabled). Use Render Graph API instead.", false)] public override void OnCameraSetup(CommandBuffer cmd, ref RenderingData renderingData) @@ -68,6 +69,7 @@ public override void Execute(ScriptableRenderContext context, ref RenderingData CommandBufferPool.Release(cmd); } +#endif RTHandle GetHistorySourceTexture(UniversalCameraHistory historyManager, int multipassId) { @@ -93,6 +95,7 @@ RTHandle GetHistorySourceTexture(UniversalCameraHistory historyManager, int mult return historyTexture; } +#if URP_COMPATIBILITY_MODE void ExecutePass(CommandBuffer cmd, ref RenderingData renderingData) { if (m_Material == null) @@ -125,6 +128,7 @@ void ExecutePass(CommandBuffer cmd, ref RenderingData renderingData) cmd.DrawProcedural(Matrix4x4.identity, m_Material, 0, MeshTopology.Triangles, 3, 1); cmd.SetViewport(cam.pixelRect); } +#endif // Cleanup any allocated resources that were created during the execution of this render pass. public override void OnCameraCleanup(CommandBuffer cmd) diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/280_HistoryRawColorDepth/BrightBlue.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/280_HistoryRawColorDepth/BrightBlue.mat index ca0731cbbdd..de792796b69 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/280_HistoryRawColorDepth/BrightBlue.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/280_HistoryRawColorDepth/BrightBlue.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -131,6 +131,7 @@ Material: - _SrcBlendAlpha: 1 - _Surface: 0 - _WorkflowMode: 1 + - _XRMotionVectorsPass: 1 - _ZWrite: 1 m_Colors: - _BaseColor: {r: 0, g: 0, b: 1, a: 1} diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/280_HistoryRawColorDepth/BrightGreen.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/280_HistoryRawColorDepth/BrightGreen.mat index 75acfe65f42..d3de0d54ce9 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/280_HistoryRawColorDepth/BrightGreen.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/280_HistoryRawColorDepth/BrightGreen.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -135,6 +135,7 @@ Material: - _SrcBlendAlpha: 1 - _Surface: 0 - _WorkflowMode: 1 + - _XRMotionVectorsPass: 1 - _ZWrite: 1 m_Colors: - _BaseColor: {r: 0, g: 1, b: 0, a: 1} diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/280_HistoryRawColorDepth/BrightRed.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/280_HistoryRawColorDepth/BrightRed.mat index a832b5fd5a6..be75fca3c00 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/280_HistoryRawColorDepth/BrightRed.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/280_HistoryRawColorDepth/BrightRed.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -129,6 +129,7 @@ Material: - _SrcBlendAlpha: 1 - _Surface: 0 - _WorkflowMode: 1 + - _XRMotionVectorsPass: 1 - _ZWrite: 1 m_Colors: - _BaseColor: {r: 1, g: 0, b: 0, a: 1} diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/280_HistoryRawColorDepth/Visualizer.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/280_HistoryRawColorDepth/Visualizer.mat index 5280c6e8824..32b43243094 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/280_HistoryRawColorDepth/Visualizer.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/280_HistoryRawColorDepth/Visualizer.mat @@ -135,4 +135,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/290_DebugViews_MipMapMode/Materials/RT_MipMapMode.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/290_DebugViews_MipMapMode/Materials/RT_MipMapMode.mat index a4ee8b42c5a..04f55dca8ae 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/290_DebugViews_MipMapMode/Materials/RT_MipMapMode.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/290_DebugViews_MipMapMode/Materials/RT_MipMapMode.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/290_DebugViews_MipMapMode/Materials/ShaderGraph/Lit.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/290_DebugViews_MipMapMode/Materials/ShaderGraph/Lit.mat index d63ba44d256..e6a2c862077 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/290_DebugViews_MipMapMode/Materials/ShaderGraph/Lit.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/290_DebugViews_MipMapMode/Materials/ShaderGraph/Lit.mat @@ -28,7 +28,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/290_DebugViews_MipMapMode/Materials/ShaderGraph/SpriteCustom.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/290_DebugViews_MipMapMode/Materials/ShaderGraph/SpriteCustom.mat index cbdfeddeb76..a41d07a22f7 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/290_DebugViews_MipMapMode/Materials/ShaderGraph/SpriteCustom.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/290_DebugViews_MipMapMode/Materials/ShaderGraph/SpriteCustom.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!114 &-3710488720213049468 MonoBehaviour: m_ObjectHideFlags: 11 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/290_DebugViews_MipMapMode/Materials/ShaderGraph/SpriteLit.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/290_DebugViews_MipMapMode/Materials/ShaderGraph/SpriteLit.mat index 221d6005070..87980e41e2d 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/290_DebugViews_MipMapMode/Materials/ShaderGraph/SpriteLit.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/290_DebugViews_MipMapMode/Materials/ShaderGraph/SpriteLit.mat @@ -28,7 +28,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/290_DebugViews_MipMapMode/Materials/ShaderGraph/SpriteUnlit.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/290_DebugViews_MipMapMode/Materials/ShaderGraph/SpriteUnlit.mat index 00cdca7247e..064763a3b41 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/290_DebugViews_MipMapMode/Materials/ShaderGraph/SpriteUnlit.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/290_DebugViews_MipMapMode/Materials/ShaderGraph/SpriteUnlit.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!114 &-3710488720213049468 MonoBehaviour: m_ObjectHideFlags: 11 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/290_DebugViews_MipMapMode/Materials/ShaderGraph/Unlit.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/290_DebugViews_MipMapMode/Materials/ShaderGraph/Unlit.mat index 0293556eb30..4f1e93c487a 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/290_DebugViews_MipMapMode/Materials/ShaderGraph/Unlit.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/290_DebugViews_MipMapMode/Materials/ShaderGraph/Unlit.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!114 &-3710488720213049468 MonoBehaviour: m_ObjectHideFlags: 11 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/290_DebugViews_MipMapMode/Materials/URP/BakedLit.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/290_DebugViews_MipMapMode/Materials/URP/BakedLit.mat index cb8c21c6f01..25bed648765 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/290_DebugViews_MipMapMode/Materials/URP/BakedLit.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/290_DebugViews_MipMapMode/Materials/URP/BakedLit.mat @@ -138,4 +138,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/290_DebugViews_MipMapMode/Materials/URP/ComplexLit.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/290_DebugViews_MipMapMode/Materials/URP/ComplexLit.mat index 606c43d5310..70a3eeb1270 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/290_DebugViews_MipMapMode/Materials/URP/ComplexLit.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/290_DebugViews_MipMapMode/Materials/URP/ComplexLit.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/290_DebugViews_MipMapMode/Materials/URP/Lit.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/290_DebugViews_MipMapMode/Materials/URP/Lit.mat index d1023ac0d34..24ec744e626 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/290_DebugViews_MipMapMode/Materials/URP/Lit.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/290_DebugViews_MipMapMode/Materials/URP/Lit.mat @@ -138,4 +138,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/290_DebugViews_MipMapMode/Materials/URP/SimpleLit.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/290_DebugViews_MipMapMode/Materials/URP/SimpleLit.mat index 44797ae6b42..bf599c7cc25 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/290_DebugViews_MipMapMode/Materials/URP/SimpleLit.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/290_DebugViews_MipMapMode/Materials/URP/SimpleLit.mat @@ -141,4 +141,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/290_DebugViews_MipMapMode/Materials/URP/Unlit.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/290_DebugViews_MipMapMode/Materials/URP/Unlit.mat index a9f87a051e3..3d9933b9171 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/290_DebugViews_MipMapMode/Materials/URP/Unlit.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/290_DebugViews_MipMapMode/Materials/URP/Unlit.mat @@ -90,4 +90,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/300_RandomUAV/BlueUnlit.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/300_RandomUAV/BlueUnlit.mat index d5d4e7ea57d..63085e9c860 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/300_RandomUAV/BlueUnlit.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/300_RandomUAV/BlueUnlit.mat @@ -119,6 +119,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &1709716923035644981 MonoBehaviour: m_ObjectHideFlags: 11 @@ -131,4 +132,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/300_RandomUAV/GreenUnlit.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/300_RandomUAV/GreenUnlit.mat index 6439fd32be6..e4f542a34d5 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/300_RandomUAV/GreenUnlit.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/300_RandomUAV/GreenUnlit.mat @@ -119,6 +119,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &1709716923035644981 MonoBehaviour: m_ObjectHideFlags: 11 @@ -131,4 +132,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/300_RandomUAV/RandomUAVFeature.cs b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/300_RandomUAV/RandomUAVFeature.cs index 3cced9f7fee..8395d4390ca 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/300_RandomUAV/RandomUAVFeature.cs +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/300_RandomUAV/RandomUAVFeature.cs @@ -75,11 +75,13 @@ public RandomUAVPass(string profilerTag, string profilerTagOutput) m_ProfilingOutputSampler = new ProfilingSampler(profilerTagOutput); } +#if URP_COMPATIBILITY_MODE [Obsolete("This rendering path is for compatibility mode only (when Render Graph is disabled). Use Render Graph API instead.", false)] public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) { // Don't do anything as this is a RenderGraph only feature } +#endif public void Setup(ScriptableRenderer renderer, Material randomUAVFillMaterial, Material randomUAVReadWriteMaterial, Material randomUAVFinalOutputMaterial) { diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/300_RandomUAV/RedUnlit.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/300_RandomUAV/RedUnlit.mat index db44f143341..4c77ca86e50 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/300_RandomUAV/RedUnlit.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/300_RandomUAV/RedUnlit.mat @@ -119,6 +119,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &1709716923035644981 MonoBehaviour: m_ObjectHideFlags: 11 @@ -131,4 +132,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/300_RandomUAV/YellowUnlit.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/300_RandomUAV/YellowUnlit.mat index 1fffd03159b..d8501525166 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/300_RandomUAV/YellowUnlit.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/300_RandomUAV/YellowUnlit.mat @@ -119,6 +119,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &1709716923035644981 MonoBehaviour: m_ObjectHideFlags: 11 @@ -131,4 +132,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/310_Swapbuffer_Depth/Opaque.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/310_Swapbuffer_Depth/Opaque.mat index 9f22d73f242..8028bb75d69 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/310_Swapbuffer_Depth/Opaque.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/310_Swapbuffer_Depth/Opaque.mat @@ -133,4 +133,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/310_Swapbuffer_Depth/SwapbufferBlitFeature.cs b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/310_Swapbuffer_Depth/SwapbufferBlitFeature.cs index a7d0c8caa2d..3666ba490a4 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/310_Swapbuffer_Depth/SwapbufferBlitFeature.cs +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/310_Swapbuffer_Depth/SwapbufferBlitFeature.cs @@ -8,6 +8,7 @@ public class SwapbufferBlitFeature : ScriptableRendererFeature { class CustomRenderPass : ScriptableRenderPass { +#if URP_COMPATIBILITY_MODE // This method is called before executing the render pass. // It can be used to configure render targets and their clear state. Also to create temporary render target textures. // When empty this render pass will render to the active camera render target. @@ -32,6 +33,7 @@ public override void Execute(ScriptableRenderContext context, ref RenderingData context.ExecuteCommandBuffer(cmd); CommandBufferPool.Release(cmd); } +#endif public override void RecordRenderGraph(RenderGraph renderGraph, ContextContainer frameData) { diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/310_Swapbuffer_Depth/Transparent.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/310_Swapbuffer_Depth/Transparent.mat index 6c69c800f38..20d539a4389 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/310_Swapbuffer_Depth/Transparent.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/310_Swapbuffer_Depth/Transparent.mat @@ -137,4 +137,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/311_DepthCopyTransparent/Opaque.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/311_DepthCopyTransparent/Opaque.mat index de640357cab..e4cb9db3d39 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/311_DepthCopyTransparent/Opaque.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/311_DepthCopyTransparent/Opaque.mat @@ -133,4 +133,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/311_DepthCopyTransparent/Transparent.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/311_DepthCopyTransparent/Transparent.mat index c3472a22c53..022ded516d8 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/311_DepthCopyTransparent/Transparent.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/311_DepthCopyTransparent/Transparent.mat @@ -133,4 +133,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/320_CameraCaptureBridge/320_CaptureTextureQuad.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/320_CameraCaptureBridge/320_CaptureTextureQuad.mat index 768aa0c12a2..9df82e7c2f5 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/320_CameraCaptureBridge/320_CaptureTextureQuad.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/320_CameraCaptureBridge/320_CaptureTextureQuad.mat @@ -134,6 +134,7 @@ Material: - _SrcBlendAlpha: 1 - _Surface: 0 - _UVSec: 0 + - _XRMotionVectorsPass: 1 - _ZWrite: 1 m_Colors: - _BaseColor: {r: 0, g: 0, b: 0, a: 1} @@ -155,4 +156,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/320_CameraCaptureBridge/320_CaptureTextureSphere.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/320_CameraCaptureBridge/320_CaptureTextureSphere.mat index c48fc9286d2..778312e76a1 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/320_CameraCaptureBridge/320_CaptureTextureSphere.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/320_CameraCaptureBridge/320_CaptureTextureSphere.mat @@ -155,4 +155,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/325_DepthCopy/CaptureDepthFeature.cs b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/325_DepthCopy/CaptureDepthFeature.cs index 51798a31d24..e40cc72180a 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/325_DepthCopy/CaptureDepthFeature.cs +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/325_DepthCopy/CaptureDepthFeature.cs @@ -37,6 +37,7 @@ public void Setup(Material material) m_Material = material; } +#if URP_COMPATIBILITY_MODE [Obsolete("This rendering path is for compatibility mode only (when Render Graph is disabled). Use Render Graph API instead.", false)] public override void OnCameraSetup(CommandBuffer cmd, ref RenderingData renderingData) { @@ -67,6 +68,7 @@ public override void Execute(ScriptableRenderContext context, ref RenderingData CommandBufferPool.Release(cmd); } +#endif class CaptureDepthPassData { @@ -114,6 +116,7 @@ public DrawDepthPass(CaptureDepthPass capturePass) renderPassEvent = RenderPassEvent.AfterRendering; } +#if URP_COMPATIBILITY_MODE [Obsolete("This rendering path is for compatibility mode only (when Render Graph is disabled). Use Render Graph API instead.", false)] public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) { @@ -126,6 +129,7 @@ public override void Execute(ScriptableRenderContext context, ref RenderingData CommandBufferPool.Release(cmd); } +#endif class DrawDepthPassData { diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/325_DepthCopy/ForwardOnlyPlaneMaterial.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/325_DepthCopy/ForwardOnlyPlaneMaterial.mat index edb2c9ab924..726b2900eb9 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/325_DepthCopy/ForwardOnlyPlaneMaterial.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/325_DepthCopy/ForwardOnlyPlaneMaterial.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Packages/manifest.json b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Packages/manifest.json index 3aae731c56c..2c16280198a 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Packages/manifest.json +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Packages/manifest.json @@ -13,7 +13,6 @@ "com.unity.render-pipelines.universal": "file:../../../../../Packages/com.unity.render-pipelines.universal", "com.unity.render-pipelines.universal-config": "file:../../../../../Packages/com.unity.render-pipelines.universal-config", "com.unity.shadergraph": "file:../../../../../Packages/com.unity.shadergraph", - "com.unity.rendering.light-transport": "file:../../../../../Packages/com.unity.rendering.light-transport", "com.unity.test-framework": "file:../../../../../Packages/com.unity.test-framework", "com.unity.testframework.graphics": "file:../../../Packages/com.unity.test-framework.graphics", "com.unity.testing.urp": "file:../../../Packages/com.unity.testing.urp", diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/ProjectSettings/EditorBuildSettings.asset b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/ProjectSettings/EditorBuildSettings.asset index cc82b110ee3..762d6764f5c 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/ProjectSettings/EditorBuildSettings.asset +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/ProjectSettings/EditorBuildSettings.asset @@ -176,12 +176,6 @@ EditorBuildSettings: - enabled: 1 path: Assets/Scenes/058_LightLeak_PointLight.unity guid: 99c9720ab356a0642a771bea13969a05 - - enabled: 1 - path: Assets/Scenes/060_Deferred_GBuffer.unity - guid: f42c387ccdc6840159743027165e1b7c - - enabled: 1 - path: Assets/Scenes/060_Deferred_GBuffer_Alpha.unity - guid: e90c743b5f0d84d30bc98e6d5be68eca - enabled: 1 path: Assets/Scenes/066_Blending.unity guid: d27c51a5aecee4e0e9c29141a0819c8b @@ -569,5 +563,7 @@ EditorBuildSettings: - enabled: 1 path: Assets/Scenes/351_PrepassLayer.unity guid: e9d95e3bc94f8524dba39d89dbb09e9b - m_configObjects: {} + m_configObjects: + com.unity.xr.management.loader_settings: {fileID: 11400000, guid: 20e925b8abdd424429b17f709e9d00f8, + type: 2} m_UseUCBPForAssetBundles: 0 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/ProjectSettings/GraphicsSettings.asset b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/ProjectSettings/GraphicsSettings.asset index d0ef486db7c..93faad068fc 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/ProjectSettings/GraphicsSettings.asset +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/ProjectSettings/GraphicsSettings.asset @@ -115,6 +115,9 @@ GraphicsSettings: m_RenderPipelineGlobalSettingsMap: UnityEngine.Rendering.Universal.UniversalRenderPipeline: {fileID: 11400000, guid: de1a81e4609b24005835e55be8897384, type: 2} + UnityEditor.Rendering.DummyRenderPipeline: {fileID: 11400000, guid: c5514e40928c24e568cf97df2b3610dd, + type: 2} + UnityEngine.Rendering.Tests.RenderGraphTests+RenderGraphTestPipelineInstance: {fileID: 0} m_LightsUseLinearIntensity: 1 m_LightsUseColorTemperature: 1 m_LogWhenShaderIsCompiled: 0 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/ProjectSettings/MultiplayerManager.asset b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/ProjectSettings/MultiplayerManager.asset new file mode 100644 index 00000000000..2a936644e0d --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/ProjectSettings/MultiplayerManager.asset @@ -0,0 +1,7 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!655991488 &1 +MultiplayerManager: + m_ObjectHideFlags: 0 + m_EnableMultiplayerRoles: 0 + m_StrippingTypes: {} diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/ProjectSettings/ProjectSettings.asset b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/ProjectSettings/ProjectSettings.asset index 554d591e359..a21a4d25463 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/ProjectSettings/ProjectSettings.asset +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/ProjectSettings/ProjectSettings.asset @@ -49,6 +49,7 @@ PlayerSettings: m_StereoRenderingPath: 1 m_ActiveColorSpace: 1 unsupportedMSAAFallback: 0 + m_SpriteBatchMaxVertexCount: 65535 m_SpriteBatchVertexThreshold: 300 m_MTRendering: 1 mipStripping: 0 @@ -70,22 +71,22 @@ PlayerSettings: androidRenderOutsideSafeArea: 1 androidUseSwappy: 0 androidBlitType: 0 - androidResizableWindow: 0 + androidResizeableActivity: 0 androidDefaultWindowWidth: 1920 androidDefaultWindowHeight: 1080 androidMinimumWindowWidth: 400 androidMinimumWindowHeight: 300 androidFullscreenMode: 1 androidAutoRotationBehavior: 1 - androidApplicationEntry: 1 androidPredictiveBackSupport: 0 + androidApplicationEntry: 1 defaultIsNativeResolution: 0 macRetinaSupport: 1 runInBackground: 1 - captureSingleScreen: 0 muteOtherAudioSources: 0 Prepare IOS For Recording: 0 Force IOS Speakers When Recording: 0 + audioSpatialExperience: 0 deferSystemGesturesMode: 0 hideHomeButton: 0 submitAnalytics: 1 @@ -132,6 +133,7 @@ PlayerSettings: switchNVNMaxPublicSamplerIDCount: 0 switchMaxWorkerMultiple: 8 switchNVNGraphicsFirmwareMemory: 32 + switchGraphicsJobsSyncAfterKick: 1 vulkanNumSwapchainBuffers: 3 vulkanEnableSetSRGBWrite: 0 vulkanEnablePreTransform: 0 @@ -264,6 +266,7 @@ PlayerSettings: useCustomGradleSettingsTemplate: 0 useCustomProguardFile: 0 AndroidTargetArchitectures: 1 + AndroidAllowedArchitectures: -1 AndroidSplashScreenScale: 0 androidSplashScreen: {fileID: 0} AndroidKeystoreName: '{inproject}: ' @@ -273,6 +276,9 @@ PlayerSettings: AndroidBuildApkPerCpuArchitecture: 0 AndroidTVCompatibility: 1 AndroidIsGame: 1 + androidAppCategory: 3 + useAndroidAppCategory: 1 + androidAppCategoryOther: AndroidEnableTango: 0 androidEnableBanner: 1 androidUseLowAccuracyLocation: 0 @@ -539,6 +545,7 @@ PlayerSettings: iPhone: 1 tvOS: 1 m_BuildTargetGroupLightmapEncodingQuality: [] + m_BuildTargetGroupHDRCubemapEncodingQuality: [] m_BuildTargetGroupLightmapSettings: [] m_BuildTargetGroupLoadStoreDebugModeSettings: [] m_BuildTargetNormalMapEncoding: [] @@ -546,6 +553,7 @@ PlayerSettings: playModeTestRunnerEnabled: 1 runPlayModeTestAsEditModeTest: 0 actionOnDotNetUnhandledException: 1 + editorGfxJobOverride: 1 enableInternalProfiler: 0 logObjCUncaughtExceptions: 1 enableCrashReportAPI: 0 @@ -801,30 +809,22 @@ PlayerSettings: webGLMemoryLinearGrowthStep: 16 webGLMemoryGeometricGrowthStep: 0.2 webGLMemoryGeometricGrowthCap: 96 - webGLEnableWebGPU: 0 webGLPowerPreference: 2 webGLWebAssemblyTable: 0 webGLWebAssemblyBigInt: 0 webGLCloseOnQuit: 0 webWasm2023: 0 + webEnableSubmoduleStrippingCompatibility: 0 scriptingDefineSymbols: - Android: LWRP_DEBUG_STATIC_POSTFX;URP_COMPATIBILITY_MODE - EmbeddedLinux: URP_COMPATIBILITY_MODE - GameCoreScarlett: URP_COMPATIBILITY_MODE - GameCoreXboxOne: URP_COMPATIBILITY_MODE - Kepler: URP_COMPATIBILITY_MODE - Nintendo Switch: LWRP_DEBUG_STATIC_POSTFX;URP_COMPATIBILITY_MODE - PS4: LWRP_DEBUG_STATIC_POSTFX;URP_COMPATIBILITY_MODE - PS5: URP_COMPATIBILITY_MODE - QNX: URP_COMPATIBILITY_MODE - ReservedCFE: URP_COMPATIBILITY_MODE - Standalone: LWRP_DEBUG_STATIC_POSTFX;URP_COMPATIBILITY_MODE - VisionOS: URP_COMPATIBILITY_MODE - WebGL: LWRP_DEBUG_STATIC_POSTFX;URP_COMPATIBILITY_MODE - Windows Store Apps: LWRP_DEBUG_STATIC_POSTFX;URP_COMPATIBILITY_MODE - XboxOne: LWRP_DEBUG_STATIC_POSTFX;URP_COMPATIBILITY_MODE - iPhone: LWRP_DEBUG_STATIC_POSTFX;URP_COMPATIBILITY_MODE - tvOS: LWRP_DEBUG_STATIC_POSTFX;URP_COMPATIBILITY_MODE + Android: LWRP_DEBUG_STATIC_POSTFX + Nintendo Switch: LWRP_DEBUG_STATIC_POSTFX + PS4: LWRP_DEBUG_STATIC_POSTFX + Standalone: LWRP_DEBUG_STATIC_POSTFX + WebGL: LWRP_DEBUG_STATIC_POSTFX + Windows Store Apps: LWRP_DEBUG_STATIC_POSTFX + XboxOne: LWRP_DEBUG_STATIC_POSTFX + iPhone: LWRP_DEBUG_STATIC_POSTFX + tvOS: LWRP_DEBUG_STATIC_POSTFX additionalCompilerArguments: Standalone: - -warnaserror+ @@ -937,3 +937,6 @@ PlayerSettings: platformRequiresReadableAssets: 0 virtualTexturingSupportEnabled: 0 insecureHttpOption: 0 + androidVulkanDenyFilterList: [] + androidVulkanAllowFilterList: [] + androidVulkanDeviceFilterListAsset: {fileID: 0} diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/ProjectSettings/QualitySettings.asset b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/ProjectSettings/QualitySettings.asset index 2fae92d4b4f..fc87e25e2fd 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/ProjectSettings/QualitySettings.asset +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/ProjectSettings/QualitySettings.asset @@ -6,7 +6,7 @@ QualitySettings: serializedVersion: 5 m_CurrentQuality: 0 m_QualitySettings: - - serializedVersion: 4 + - serializedVersion: 5 name: 00->DefaultURPAsset pixelLightCount: 4 shadows: 2 @@ -34,6 +34,7 @@ QualitySettings: adaptiveVsyncExtraA: 0 adaptiveVsyncExtraB: 0 lodBias: 2 + meshLodThreshold: 1 maximumLODLevel: 0 enableLODCrossFade: 0 streamingMipmapsActive: 0 @@ -59,7 +60,7 @@ QualitySettings: terrainFadeLength: 5 terrainMaxTrees: 50 excludedTargetPlatforms: [] - - serializedVersion: 4 + - serializedVersion: 5 name: 01->Backbuffer pixelLightCount: 4 shadows: 2 @@ -87,6 +88,7 @@ QualitySettings: adaptiveVsyncExtraA: 0 adaptiveVsyncExtraB: 0 lodBias: 2 + meshLodThreshold: 1 maximumLODLevel: 0 enableLODCrossFade: 0 streamingMipmapsActive: 0 @@ -112,7 +114,7 @@ QualitySettings: terrainFadeLength: 5 terrainMaxTrees: 50 excludedTargetPlatforms: [] - - serializedVersion: 4 + - serializedVersion: 5 name: 02->140_LightCookie pixelLightCount: 4 shadows: 2 @@ -140,6 +142,7 @@ QualitySettings: adaptiveVsyncExtraA: 0 adaptiveVsyncExtraB: 0 lodBias: 2 + meshLodThreshold: 1 maximumLODLevel: 0 enableLODCrossFade: 0 streamingMipmapsActive: 0 @@ -165,7 +168,7 @@ QualitySettings: terrainFadeLength: 5 terrainMaxTrees: 50 excludedTargetPlatforms: [] - - serializedVersion: 4 + - serializedVersion: 5 name: 03->141_LightCookies_SmallAtlas pixelLightCount: 4 shadows: 2 @@ -193,6 +196,7 @@ QualitySettings: adaptiveVsyncExtraA: 0 adaptiveVsyncExtraB: 0 lodBias: 2 + meshLodThreshold: 1 maximumLODLevel: 0 enableLODCrossFade: 0 streamingMipmapsActive: 0 @@ -218,7 +222,7 @@ QualitySettings: terrainFadeLength: 5 terrainMaxTrees: 50 excludedTargetPlatforms: [] - - serializedVersion: 4 + - serializedVersion: 5 name: 04->142_LightCookies_AtlasFull2_deferred pixelLightCount: 4 shadows: 2 @@ -246,6 +250,7 @@ QualitySettings: adaptiveVsyncExtraA: 0 adaptiveVsyncExtraB: 0 lodBias: 2 + meshLodThreshold: 1 maximumLODLevel: 0 enableLODCrossFade: 0 streamingMipmapsActive: 0 @@ -271,7 +276,7 @@ QualitySettings: terrainFadeLength: 5 terrainMaxTrees: 50 excludedTargetPlatforms: [] - - serializedVersion: 4 + - serializedVersion: 5 name: 05->144_LightCookies_FormatConvert_Grayscale pixelLightCount: 4 shadows: 2 @@ -299,6 +304,7 @@ QualitySettings: adaptiveVsyncExtraA: 0 adaptiveVsyncExtraB: 0 lodBias: 2 + meshLodThreshold: 1 maximumLODLevel: 0 enableLODCrossFade: 0 streamingMipmapsActive: 0 @@ -324,7 +330,7 @@ QualitySettings: terrainFadeLength: 5 terrainMaxTrees: 50 excludedTargetPlatforms: [] - - serializedVersion: 4 + - serializedVersion: 5 name: 06->161_HDR_FP16_BackBuffer pixelLightCount: 4 shadows: 2 @@ -352,6 +358,7 @@ QualitySettings: adaptiveVsyncExtraA: 0 adaptiveVsyncExtraB: 0 lodBias: 2 + meshLodThreshold: 1 maximumLODLevel: 0 enableLODCrossFade: 0 streamingMipmapsActive: 0 @@ -377,7 +384,7 @@ QualitySettings: terrainFadeLength: 5 terrainMaxTrees: 50 excludedTargetPlatforms: [] - - serializedVersion: 4 + - serializedVersion: 5 name: 07->000_ForwardPlusRenderer pixelLightCount: 4 shadows: 2 @@ -405,6 +412,7 @@ QualitySettings: adaptiveVsyncExtraA: 0 adaptiveVsyncExtraB: 0 lodBias: 2 + meshLodThreshold: 1 maximumLODLevel: 0 enableLODCrossFade: 0 streamingMipmapsActive: 0 @@ -430,7 +438,7 @@ QualitySettings: terrainFadeLength: 5 terrainMaxTrees: 50 excludedTargetPlatforms: [] - - serializedVersion: 4 + - serializedVersion: 5 name: 08->248_LOD_CrossFadeURPAsset pixelLightCount: 4 shadows: 2 @@ -458,6 +466,7 @@ QualitySettings: adaptiveVsyncExtraA: 0 adaptiveVsyncExtraB: 0 lodBias: 2 + meshLodThreshold: 1 maximumLODLevel: 0 enableLODCrossFade: 1 streamingMipmapsActive: 0 @@ -483,7 +492,7 @@ QualitySettings: terrainFadeLength: 5 terrainMaxTrees: 50 excludedTargetPlatforms: [] - - serializedVersion: 4 + - serializedVersion: 5 name: 09->200_SSAOURPAsset pixelLightCount: 4 shadows: 2 @@ -511,6 +520,7 @@ QualitySettings: adaptiveVsyncExtraA: 0 adaptiveVsyncExtraB: 0 lodBias: 2 + meshLodThreshold: 1 maximumLODLevel: 0 enableLODCrossFade: 0 streamingMipmapsActive: 0 @@ -536,7 +546,7 @@ QualitySettings: terrainFadeLength: 5 terrainMaxTrees: 50 excludedTargetPlatforms: [] - - serializedVersion: 4 + - serializedVersion: 5 name: 10->DBufferURPAsset pixelLightCount: 4 shadows: 2 @@ -564,6 +574,7 @@ QualitySettings: adaptiveVsyncExtraA: 0 adaptiveVsyncExtraB: 0 lodBias: 2 + meshLodThreshold: 1 maximumLODLevel: 0 enableLODCrossFade: 0 streamingMipmapsActive: 0 @@ -589,7 +600,7 @@ QualitySettings: terrainFadeLength: 5 terrainMaxTrees: 50 excludedTargetPlatforms: [] - - serializedVersion: 4 + - serializedVersion: 5 name: 11->DBufferWithRenderingLayersURPAsset pixelLightCount: 4 shadows: 2 @@ -617,6 +628,7 @@ QualitySettings: adaptiveVsyncExtraA: 0 adaptiveVsyncExtraB: 0 lodBias: 2 + meshLodThreshold: 1 maximumLODLevel: 0 enableLODCrossFade: 0 streamingMipmapsActive: 0 @@ -642,7 +654,7 @@ QualitySettings: terrainFadeLength: 5 terrainMaxTrees: 50 excludedTargetPlatforms: [] - - serializedVersion: 4 + - serializedVersion: 5 name: 12->220_ScreenSpaceShadowsURPAsset pixelLightCount: 4 shadows: 2 @@ -670,6 +682,7 @@ QualitySettings: adaptiveVsyncExtraA: 0 adaptiveVsyncExtraB: 0 lodBias: 2 + meshLodThreshold: 1 maximumLODLevel: 0 enableLODCrossFade: 0 streamingMipmapsActive: 0 @@ -695,7 +708,7 @@ QualitySettings: terrainFadeLength: 5 terrainMaxTrees: 50 excludedTargetPlatforms: [] - - serializedVersion: 4 + - serializedVersion: 5 name: 13->SoftShadows pixelLightCount: 4 shadows: 2 @@ -723,6 +736,7 @@ QualitySettings: adaptiveVsyncExtraA: 0 adaptiveVsyncExtraB: 0 lodBias: 2 + meshLodThreshold: 1 maximumLODLevel: 0 enableLODCrossFade: 0 streamingMipmapsActive: 0 @@ -748,7 +762,7 @@ QualitySettings: terrainFadeLength: 5 terrainMaxTrees: 50 excludedTargetPlatforms: [] - - serializedVersion: 4 + - serializedVersion: 5 name: 14->280_DebugViews_MipMapMode pixelLightCount: 4 shadows: 2 @@ -776,6 +790,7 @@ QualitySettings: adaptiveVsyncExtraA: 0 adaptiveVsyncExtraB: 0 lodBias: 2 + meshLodThreshold: 1 maximumLODLevel: 0 enableLODCrossFade: 0 streamingMipmapsActive: 1 @@ -801,7 +816,7 @@ QualitySettings: terrainFadeLength: 5 terrainMaxTrees: 50 excludedTargetPlatforms: [] - - serializedVersion: 4 + - serializedVersion: 5 name: 15->311_DepthCopyTransparent pixelLightCount: 4 shadows: 2 @@ -829,6 +844,7 @@ QualitySettings: adaptiveVsyncExtraA: 0 adaptiveVsyncExtraB: 0 lodBias: 2 + meshLodThreshold: 1 maximumLODLevel: 0 enableLODCrossFade: 1 streamingMipmapsActive: 1 @@ -854,7 +870,7 @@ QualitySettings: terrainFadeLength: 5 terrainMaxTrees: 50 excludedTargetPlatforms: [] - - serializedVersion: 4 + - serializedVersion: 5 name: 16->DeferredPlusRenderer pixelLightCount: 4 shadows: 2 @@ -882,6 +898,7 @@ QualitySettings: adaptiveVsyncExtraA: 0 adaptiveVsyncExtraB: 0 lodBias: 2 + meshLodThreshold: 1 maximumLODLevel: 0 enableLODCrossFade: 0 streamingMipmapsActive: 0 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/ProjectSettings/SceneTemplateSettings.json b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/ProjectSettings/SceneTemplateSettings.json new file mode 100644 index 00000000000..ede5887b3a3 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/ProjectSettings/SceneTemplateSettings.json @@ -0,0 +1,121 @@ +{ + "templatePinStates": [], + "dependencyTypeInfos": [ + { + "userAdded": false, + "type": "UnityEngine.AnimationClip", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEditor.Animations.AnimatorController", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.AnimatorOverrideController", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEditor.Audio.AudioMixerController", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.ComputeShader", + "defaultInstantiationMode": 1 + }, + { + "userAdded": false, + "type": "UnityEngine.Cubemap", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.GameObject", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEditor.LightingDataAsset", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.LightingSettings", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.Material", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEditor.MonoScript", + "defaultInstantiationMode": 1 + }, + { + "userAdded": false, + "type": "UnityEngine.PhysicsMaterial", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.PhysicsMaterial2D", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.Rendering.PostProcessing.PostProcessProfile", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.Rendering.PostProcessing.PostProcessResources", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.Rendering.VolumeProfile", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEditor.SceneAsset", + "defaultInstantiationMode": 1 + }, + { + "userAdded": false, + "type": "UnityEngine.Shader", + "defaultInstantiationMode": 1 + }, + { + "userAdded": false, + "type": "UnityEngine.ShaderVariantCollection", + "defaultInstantiationMode": 1 + }, + { + "userAdded": false, + "type": "UnityEngine.Texture", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.Texture2D", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.Timeline.TimelineAsset", + "defaultInstantiationMode": 0 + } + ], + "defaultDependencyTypeInfo": { + "userAdded": false, + "type": "", + "defaultInstantiationMode": 1 + }, + "newSceneOverride": 0 +} \ No newline at end of file diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/ProjectSettings/ShaderGraphSettings.asset b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/ProjectSettings/ShaderGraphSettings.asset new file mode 100644 index 00000000000..e33ca2483e0 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/ProjectSettings/ShaderGraphSettings.asset @@ -0,0 +1,19 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &1 +MonoBehaviour: + m_ObjectHideFlags: 53 + 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: de02f9e1d18f588468e474319d09a723, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.ShaderGraph.Editor::UnityEditor.ShaderGraph.ShaderGraphProjectSettings + shaderVariantLimit: 2048 + overrideShaderVariantLimit: 0 + customInterpolatorErrorThreshold: 32 + customInterpolatorWarningThreshold: 16 + customHeatmapValues: {fileID: 0} diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/ProjectSettings/TagManager.asset b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/ProjectSettings/TagManager.asset index 87afb5bc39a..47e81e2fc4d 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/ProjectSettings/TagManager.asset +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/ProjectSettings/TagManager.asset @@ -51,3 +51,8 @@ TagManager: - Default - Layer 1 - HiddenObject + - Test Layer 4 + - Test Layer 5 + - + - + - diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/ProjectSettings/URPProjectSettings.asset b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/ProjectSettings/URPProjectSettings.asset index 08faf0336cf..64a8674a2a7 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/ProjectSettings/URPProjectSettings.asset +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/ProjectSettings/URPProjectSettings.asset @@ -12,4 +12,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 247994e1f5a72c2419c26a37e9334c01, type: 3} m_Name: m_EditorClassIdentifier: - m_LastMaterialVersion: 9 + m_LastMaterialVersion: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/ProjectSettings/VersionControlSettings.asset b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/ProjectSettings/VersionControlSettings.asset new file mode 100644 index 00000000000..979fd8eca84 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/ProjectSettings/VersionControlSettings.asset @@ -0,0 +1,7 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!890905787 &1 +VersionControlSettings: + m_ObjectHideFlags: 0 + m_Mode: Visible Meta Files + m_TrackPackagesOutsideProject: 0 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/UserSettings/EditorUserSettings.asset b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/UserSettings/EditorUserSettings.asset deleted file mode 100644 index 309e8a684c1..00000000000 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/UserSettings/EditorUserSettings.asset +++ /dev/null @@ -1,26 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!162 &1 -EditorUserSettings: - m_ObjectHideFlags: 0 - serializedVersion: 4 - m_ConfigSettings: - vcSharedLogLevel: - value: 0d5e400f0650 - flags: 0 - m_VCAutomaticAdd: 1 - m_VCDebugCom: 0 - m_VCDebugCmd: 0 - m_VCDebugOut: 0 - m_SemanticMergeMode: 2 - m_DesiredImportWorkerCount: 4 - m_StandbyImportWorkerCount: 2 - m_IdleImportWorkerShutdownDelay: 60000 - m_VCShowFailedCheckout: 1 - m_VCOverwriteFailedCheckoutAssets: 1 - m_VCProjectOverlayIcons: 1 - m_VCHierarchyOverlayIcons: 1 - m_VCOtherOverlayIcons: 1 - m_VCAllowAsyncUpdate: 1 - m_ArtifactGarbageCollection: 1 - m_CompressAssetsOnImport: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/CommonAssets/Materials/ShoreRockSand.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/CommonAssets/Materials/ShoreRockSand.mat new file mode 100644 index 00000000000..31bcf08e69c --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/CommonAssets/Materials/ShoreRockSand.mat @@ -0,0 +1,159 @@ +%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: ShoreRockSand + m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: + - _METALLICSPECGLOSSMAP + - _NORMALMAP + - _OCCLUSIONMAP + m_InvalidKeywords: [] + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 2000 + stringTagMap: + RenderType: Opaque + disabledShaderPasses: + - MOTIONVECTORS + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BaseMap: + m_Texture: {fileID: 2800000, guid: d0a1b9f1e613840e68be1dfa95c0775e, type: 3} + m_Scale: {x: 2, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 2800000, guid: f8cc2be1a75a3f4409715ed8971ba5fc, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ClearCoatMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _Cube: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 2, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: d0a1b9f1e613840e68be1dfa95c0775e, type: 3} + m_Scale: {x: 2, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 2800000, guid: 42cffefab1af6449688d2530dc476dfa, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicSpecGlossMap: + m_Texture: {fileID: 1017483294, guid: ca3d57f8671b14009bdd2faa22197660, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 2800000, guid: 217fe4b67df444afc9ba7dbd769e7424, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _AddPrecomputedVelocity: 0 + - _AlphaClip: 0 + - _AlphaToMask: 0 + - _Blend: 0 + - _BlendModePreserveSpecular: 1 + - _BumpScale: 1 + - _ClearCoat: 0 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _Cull: 2 + - _Cutoff: 0.5 + - _DetailAlbedoMapScale: 1 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _DstBlendAlpha: 0 + - _EnvironmentReflections: 1 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossinessSource: 0 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _ReceiveShadows: 1 + - _ReflectionSource: 0 + - _Shininess: 1 + - _Smoothness: 1 + - _SmoothnessTextureChannel: 0 + - _SpecSource: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _SrcBlendAlpha: 1 + - _Surface: 0 + - _UVSec: 0 + - _WorkflowMode: 1 + - _XRMotionVectorsPass: 1 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 1} + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _SpecColor: {r: 1, g: 1, b: 1, a: 1} + m_BuildTextureStacks: [] + m_AllowLocking: 1 +--- !u!114 &329385301596340264 +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: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/CommonAssets/Materials/ShoreRockSand.mat.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/CommonAssets/Materials/ShoreRockSand.mat.meta new file mode 100644 index 00000000000..157824291f5 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/CommonAssets/Materials/ShoreRockSand.mat.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: f30773260a1c741f8a7c39320a569fb4 +timeCreated: 1505138441 +licenseType: Pro +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/CommonAssets/Textures/MainComposition_basecolor.tif b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/CommonAssets/Textures/MainComposition_basecolor.tif new file mode 100644 index 00000000000..7b64638de01 Binary files /dev/null and b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/CommonAssets/Textures/MainComposition_basecolor.tif differ diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/CommonAssets/Textures/MainComposition_basecolor.tif.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/CommonAssets/Textures/MainComposition_basecolor.tif.meta new file mode 100644 index 00000000000..7e429f6089f --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/CommonAssets/Textures/MainComposition_basecolor.tif.meta @@ -0,0 +1,83 @@ +fileFormatVersion: 2 +guid: d0a1b9f1e613840e68be1dfa95c0775e +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 5 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/CommonAssets/Textures/MainComposition_metallic.tif b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/CommonAssets/Textures/MainComposition_metallic.tif new file mode 100644 index 00000000000..ad2460b14cc Binary files /dev/null and b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/CommonAssets/Textures/MainComposition_metallic.tif differ diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/CommonAssets/Textures/MainComposition_metallic.tif.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/CommonAssets/Textures/MainComposition_metallic.tif.meta new file mode 100644 index 00000000000..d9ff8c2cf4d --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/CommonAssets/Textures/MainComposition_metallic.tif.meta @@ -0,0 +1,83 @@ +fileFormatVersion: 2 +guid: 42cffefab1af6449688d2530dc476dfa +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 5 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/CommonAssets/Textures/MainComposition_normal.tif b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/CommonAssets/Textures/MainComposition_normal.tif new file mode 100644 index 00000000000..43d05bfb122 Binary files /dev/null and b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/CommonAssets/Textures/MainComposition_normal.tif differ diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/CommonAssets/Textures/MainComposition_normal.tif.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/CommonAssets/Textures/MainComposition_normal.tif.meta new file mode 100644 index 00000000000..a2b616b2091 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/CommonAssets/Textures/MainComposition_normal.tif.meta @@ -0,0 +1,195 @@ +fileFormatVersion: 2 +guid: f8cc2be1a75a3f4409715ed8971ba5fc +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 1 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 4 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: PS4 + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: CloudRendering + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Switch + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: iOS + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: PS5 + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + customData: + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/CommonAssets/URPAssets/060_Deferred.asset b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/CommonAssets/URPAssets/060_Deferred.asset new file mode 100644 index 00000000000..2e03a2be49b --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/CommonAssets/URPAssets/060_Deferred.asset @@ -0,0 +1,138 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: bf2edee5c58d82540a51f03df9d42094, type: 3} + m_Name: 060_Deferred + m_EditorClassIdentifier: + k_AssetVersion: 12 + k_AssetPreviousVersion: 12 + m_RendererType: 1 + m_RendererData: {fileID: 0} + m_RendererDataList: + - {fileID: 11400000, guid: 1f0ec70d2f6284f04a23236fd067dec1, type: 2} + m_DefaultRendererIndex: 0 + m_RequireDepthTexture: 0 + m_RequireOpaqueTexture: 0 + m_OpaqueDownsampling: 1 + m_SupportsTerrainHoles: 0 + m_SupportsHDR: 1 + m_HDRColorBufferPrecision: 0 + m_MSAA: 1 + m_RenderScale: 1 + m_UpscalingFilter: 0 + m_FsrOverrideSharpness: 0 + m_FsrSharpness: 0.92 + m_EnableLODCrossFade: 0 + m_LODCrossFadeDitheringType: 1 + m_ShEvalMode: 0 + m_LightProbeSystem: 0 + m_ProbeVolumeMemoryBudget: 1024 + m_ProbeVolumeBlendingMemoryBudget: 128 + m_SupportProbeVolumeGPUStreaming: 0 + m_SupportProbeVolumeDiskStreaming: 0 + m_SupportProbeVolumeScenarios: 0 + m_SupportProbeVolumeScenarioBlending: 0 + m_ProbeVolumeSHBands: 1 + m_MainLightRenderingMode: 1 + m_MainLightShadowsSupported: 1 + m_MainLightShadowmapResolution: 2048 + m_AdditionalLightsRenderingMode: 1 + m_AdditionalLightsPerObjectLimit: 8 + m_AdditionalLightShadowsSupported: 0 + m_AdditionalLightsShadowmapResolution: 256 + m_AdditionalLightsShadowResolutionTierLow: 128 + m_AdditionalLightsShadowResolutionTierMedium: 256 + m_AdditionalLightsShadowResolutionTierHigh: 512 + m_ReflectionProbeBlending: 0 + m_ReflectionProbeBoxProjection: 0 + m_ReflectionProbeAtlas: 0 + m_ShadowDistance: 56 + m_ShadowCascadeCount: 4 + m_Cascade2Split: 0.25 + m_Cascade3Split: {x: 0.154, y: 0.478} + m_Cascade4Split: {x: 0.067, y: 0.2, z: 0.467} + m_CascadeBorder: 0.1 + m_ShadowDepthBias: 1 + m_ShadowNormalBias: 1 + m_AnyShadowsSupported: 1 + m_SoftShadowsSupported: 0 + m_ConservativeEnclosingSphere: 0 + m_NumIterationsEnclosingSphere: 64 + m_SoftShadowQuality: 2 + m_AdditionalLightsCookieResolution: 2048 + m_AdditionalLightsCookieFormat: 3 + m_UseSRPBatcher: 1 + m_SupportsDynamicBatching: 0 + m_MixedLightingSupported: 0 + m_SupportsLightCookies: 0 + m_SupportsLightLayers: 0 + m_DebugLevel: 0 + m_StoreActionsOptimization: 0 + m_UseAdaptivePerformance: 1 + m_ColorGradingMode: 0 + m_ColorGradingLutSize: 32 + m_AllowPostProcessAlphaOutput: 0 + m_UseFastSRGBLinearConversion: 0 + m_SupportDataDrivenLensFlare: 0 + m_SupportScreenSpaceLensFlare: 0 + m_GPUResidentDrawerMode: 0 + m_SmallMeshScreenPercentage: 0 + m_GPUResidentDrawerEnableOcclusionCullingInCameras: 0 + m_ShadowType: 0 + m_LocalShadowsSupported: 1 + m_LocalShadowsAtlasResolution: 512 + m_MaxPixelLights: 4 + m_ShadowAtlasResolution: 2048 + m_VolumeFrameworkUpdateMode: 0 + m_VolumeProfile: {fileID: 0} + apvScenesData: + obsoleteSceneBounds: + m_Keys: [] + m_Values: [] + obsoleteHasProbeVolumes: + m_Keys: [] + m_Values: + m_PrefilteringModeMainLightShadows: 3 + m_PrefilteringModeAdditionalLight: 3 + m_PrefilteringModeAdditionalLightShadows: 2 + m_PrefilterXRKeywords: 1 + m_PrefilteringModeForwardPlus: 0 + m_PrefilteringModeDeferredRendering: 1 + m_PrefilteringModeScreenSpaceOcclusion: 0 + m_PrefilterDebugKeywords: 1 + m_PrefilterWriteRenderingLayers: 1 + m_PrefilterHDROutput: 1 + m_PrefilterAlphaOutput: 0 + m_PrefilterSSAODepthNormals: 1 + m_PrefilterSSAOSourceDepthLow: 1 + m_PrefilterSSAOSourceDepthMedium: 1 + m_PrefilterSSAOSourceDepthHigh: 1 + m_PrefilterSSAOInterleaved: 1 + m_PrefilterSSAOBlueNoise: 1 + m_PrefilterSSAOSampleCountLow: 1 + m_PrefilterSSAOSampleCountMedium: 1 + m_PrefilterSSAOSampleCountHigh: 1 + m_PrefilterDBufferMRT1: 1 + m_PrefilterDBufferMRT2: 1 + m_PrefilterDBufferMRT3: 1 + m_PrefilterSoftShadowsQualityLow: 0 + m_PrefilterSoftShadowsQualityMedium: 0 + m_PrefilterSoftShadowsQualityHigh: 0 + m_PrefilterSoftShadows: 0 + m_PrefilterScreenCoord: 1 + m_PrefilterNativeRenderPass: 0 + m_PrefilterUseLegacyLightmaps: 0 + m_PrefilterBicubicLightmapSampling: 0 + m_ShaderVariantLogLevel: 0 + m_ShadowCascades: 3 + m_Textures: + blueNoise64LTex: {fileID: 2800000, guid: e3d24661c1e055f45a7560c033dbb837, type: 3} + bayerMatrixTex: {fileID: 2800000, guid: f9ee4ed84c1d10c49aabb9b210b0fc44, type: 3} diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred/Deferred_GBuffer_Alpha_Visualization_Renderer.asset.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/CommonAssets/URPAssets/060_Deferred.asset.meta similarity index 79% rename from Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred/Deferred_GBuffer_Alpha_Visualization_Renderer.asset.meta rename to Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/CommonAssets/URPAssets/060_Deferred.asset.meta index 7fd1d9a9057..c8f3869b674 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred/Deferred_GBuffer_Alpha_Visualization_Renderer.asset.meta +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/CommonAssets/URPAssets/060_Deferred.asset.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 81c60c102f7364ff7a219d5723b5a355 +guid: 74dbe65f1a8b740f386acbe7cc6ec7d0 NativeFormatImporter: externalObjects: {} mainObjectFileID: 11400000 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/CommonAssets/URPAssets/060_Deferred_RL.asset b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/CommonAssets/URPAssets/060_Deferred_RL.asset new file mode 100644 index 00000000000..79311104f7b --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/CommonAssets/URPAssets/060_Deferred_RL.asset @@ -0,0 +1,138 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: bf2edee5c58d82540a51f03df9d42094, type: 3} + m_Name: 060_Deferred_RL + m_EditorClassIdentifier: + k_AssetVersion: 12 + k_AssetPreviousVersion: 12 + m_RendererType: 1 + m_RendererData: {fileID: 0} + m_RendererDataList: + - {fileID: 11400000, guid: 1f0ec70d2f6284f04a23236fd067dec1, type: 2} + m_DefaultRendererIndex: 0 + m_RequireDepthTexture: 0 + m_RequireOpaqueTexture: 0 + m_OpaqueDownsampling: 1 + m_SupportsTerrainHoles: 0 + m_SupportsHDR: 1 + m_HDRColorBufferPrecision: 0 + m_MSAA: 1 + m_RenderScale: 1 + m_UpscalingFilter: 0 + m_FsrOverrideSharpness: 0 + m_FsrSharpness: 0.92 + m_EnableLODCrossFade: 0 + m_LODCrossFadeDitheringType: 1 + m_ShEvalMode: 0 + m_LightProbeSystem: 0 + m_ProbeVolumeMemoryBudget: 1024 + m_ProbeVolumeBlendingMemoryBudget: 128 + m_SupportProbeVolumeGPUStreaming: 0 + m_SupportProbeVolumeDiskStreaming: 0 + m_SupportProbeVolumeScenarios: 0 + m_SupportProbeVolumeScenarioBlending: 0 + m_ProbeVolumeSHBands: 1 + m_MainLightRenderingMode: 1 + m_MainLightShadowsSupported: 1 + m_MainLightShadowmapResolution: 2048 + m_AdditionalLightsRenderingMode: 1 + m_AdditionalLightsPerObjectLimit: 8 + m_AdditionalLightShadowsSupported: 0 + m_AdditionalLightsShadowmapResolution: 256 + m_AdditionalLightsShadowResolutionTierLow: 128 + m_AdditionalLightsShadowResolutionTierMedium: 256 + m_AdditionalLightsShadowResolutionTierHigh: 512 + m_ReflectionProbeBlending: 0 + m_ReflectionProbeBoxProjection: 0 + m_ReflectionProbeAtlas: 0 + m_ShadowDistance: 56 + m_ShadowCascadeCount: 4 + m_Cascade2Split: 0.25 + m_Cascade3Split: {x: 0.154, y: 0.478} + m_Cascade4Split: {x: 0.067, y: 0.2, z: 0.467} + m_CascadeBorder: 0.1 + m_ShadowDepthBias: 1 + m_ShadowNormalBias: 1 + m_AnyShadowsSupported: 1 + m_SoftShadowsSupported: 0 + m_ConservativeEnclosingSphere: 0 + m_NumIterationsEnclosingSphere: 64 + m_SoftShadowQuality: 2 + m_AdditionalLightsCookieResolution: 2048 + m_AdditionalLightsCookieFormat: 3 + m_UseSRPBatcher: 1 + m_SupportsDynamicBatching: 0 + m_MixedLightingSupported: 0 + m_SupportsLightCookies: 0 + m_SupportsLightLayers: 1 + m_DebugLevel: 0 + m_StoreActionsOptimization: 0 + m_UseAdaptivePerformance: 1 + m_ColorGradingMode: 0 + m_ColorGradingLutSize: 32 + m_AllowPostProcessAlphaOutput: 0 + m_UseFastSRGBLinearConversion: 0 + m_SupportDataDrivenLensFlare: 0 + m_SupportScreenSpaceLensFlare: 0 + m_GPUResidentDrawerMode: 0 + m_SmallMeshScreenPercentage: 0 + m_GPUResidentDrawerEnableOcclusionCullingInCameras: 0 + m_ShadowType: 0 + m_LocalShadowsSupported: 1 + m_LocalShadowsAtlasResolution: 512 + m_MaxPixelLights: 4 + m_ShadowAtlasResolution: 2048 + m_VolumeFrameworkUpdateMode: 0 + m_VolumeProfile: {fileID: 0} + apvScenesData: + obsoleteSceneBounds: + m_Keys: [] + m_Values: [] + obsoleteHasProbeVolumes: + m_Keys: [] + m_Values: + m_PrefilteringModeMainLightShadows: 3 + m_PrefilteringModeAdditionalLight: 3 + m_PrefilteringModeAdditionalLightShadows: 2 + m_PrefilterXRKeywords: 1 + m_PrefilteringModeForwardPlus: 0 + m_PrefilteringModeDeferredRendering: 1 + m_PrefilteringModeScreenSpaceOcclusion: 0 + m_PrefilterDebugKeywords: 1 + m_PrefilterWriteRenderingLayers: 1 + m_PrefilterHDROutput: 1 + m_PrefilterAlphaOutput: 0 + m_PrefilterSSAODepthNormals: 1 + m_PrefilterSSAOSourceDepthLow: 1 + m_PrefilterSSAOSourceDepthMedium: 1 + m_PrefilterSSAOSourceDepthHigh: 1 + m_PrefilterSSAOInterleaved: 1 + m_PrefilterSSAOBlueNoise: 1 + m_PrefilterSSAOSampleCountLow: 1 + m_PrefilterSSAOSampleCountMedium: 1 + m_PrefilterSSAOSampleCountHigh: 1 + m_PrefilterDBufferMRT1: 1 + m_PrefilterDBufferMRT2: 1 + m_PrefilterDBufferMRT3: 1 + m_PrefilterSoftShadowsQualityLow: 0 + m_PrefilterSoftShadowsQualityMedium: 0 + m_PrefilterSoftShadowsQualityHigh: 0 + m_PrefilterSoftShadows: 0 + m_PrefilterScreenCoord: 1 + m_PrefilterNativeRenderPass: 0 + m_PrefilterUseLegacyLightmaps: 0 + m_PrefilterBicubicLightmapSampling: 0 + m_ShaderVariantLogLevel: 0 + m_ShadowCascades: 3 + m_Textures: + blueNoise64LTex: {fileID: 2800000, guid: e3d24661c1e055f45a7560c033dbb837, type: 3} + bayerMatrixTex: {fileID: 2800000, guid: f9ee4ed84c1d10c49aabb9b210b0fc44, type: 3} diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/CommonAssets/URPAssets/060_Deferred_RL.asset.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/CommonAssets/URPAssets/060_Deferred_RL.asset.meta new file mode 100644 index 00000000000..6a35f5cf673 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/CommonAssets/URPAssets/060_Deferred_RL.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: cdce6bfd7f7f62b4095e505055c7f5ff +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/CommonAssets/URPAssets/060_Deferred_SM.asset b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/CommonAssets/URPAssets/060_Deferred_SM.asset new file mode 100644 index 00000000000..303b7f85a67 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/CommonAssets/URPAssets/060_Deferred_SM.asset @@ -0,0 +1,138 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: bf2edee5c58d82540a51f03df9d42094, type: 3} + m_Name: 060_Deferred_SM + m_EditorClassIdentifier: + k_AssetVersion: 12 + k_AssetPreviousVersion: 12 + m_RendererType: 1 + m_RendererData: {fileID: 0} + m_RendererDataList: + - {fileID: 11400000, guid: 1f0ec70d2f6284f04a23236fd067dec1, type: 2} + m_DefaultRendererIndex: 0 + m_RequireDepthTexture: 0 + m_RequireOpaqueTexture: 0 + m_OpaqueDownsampling: 1 + m_SupportsTerrainHoles: 0 + m_SupportsHDR: 1 + m_HDRColorBufferPrecision: 0 + m_MSAA: 1 + m_RenderScale: 1 + m_UpscalingFilter: 0 + m_FsrOverrideSharpness: 0 + m_FsrSharpness: 0.92 + m_EnableLODCrossFade: 0 + m_LODCrossFadeDitheringType: 1 + m_ShEvalMode: 0 + m_LightProbeSystem: 0 + m_ProbeVolumeMemoryBudget: 1024 + m_ProbeVolumeBlendingMemoryBudget: 128 + m_SupportProbeVolumeGPUStreaming: 0 + m_SupportProbeVolumeDiskStreaming: 0 + m_SupportProbeVolumeScenarios: 0 + m_SupportProbeVolumeScenarioBlending: 0 + m_ProbeVolumeSHBands: 1 + m_MainLightRenderingMode: 1 + m_MainLightShadowsSupported: 1 + m_MainLightShadowmapResolution: 2048 + m_AdditionalLightsRenderingMode: 1 + m_AdditionalLightsPerObjectLimit: 8 + m_AdditionalLightShadowsSupported: 1 + m_AdditionalLightsShadowmapResolution: 2048 + m_AdditionalLightsShadowResolutionTierLow: 128 + m_AdditionalLightsShadowResolutionTierMedium: 256 + m_AdditionalLightsShadowResolutionTierHigh: 512 + m_ReflectionProbeBlending: 0 + m_ReflectionProbeBoxProjection: 0 + m_ReflectionProbeAtlas: 0 + m_ShadowDistance: 56 + m_ShadowCascadeCount: 4 + m_Cascade2Split: 0.25 + m_Cascade3Split: {x: 0.154, y: 0.478} + m_Cascade4Split: {x: 0.067, y: 0.2, z: 0.467} + m_CascadeBorder: 0.1 + m_ShadowDepthBias: 1 + m_ShadowNormalBias: 1 + m_AnyShadowsSupported: 1 + m_SoftShadowsSupported: 0 + m_ConservativeEnclosingSphere: 0 + m_NumIterationsEnclosingSphere: 64 + m_SoftShadowQuality: 2 + m_AdditionalLightsCookieResolution: 2048 + m_AdditionalLightsCookieFormat: 3 + m_UseSRPBatcher: 1 + m_SupportsDynamicBatching: 0 + m_MixedLightingSupported: 1 + m_SupportsLightCookies: 0 + m_SupportsLightLayers: 0 + m_DebugLevel: 0 + m_StoreActionsOptimization: 0 + m_UseAdaptivePerformance: 1 + m_ColorGradingMode: 0 + m_ColorGradingLutSize: 32 + m_AllowPostProcessAlphaOutput: 0 + m_UseFastSRGBLinearConversion: 0 + m_SupportDataDrivenLensFlare: 0 + m_SupportScreenSpaceLensFlare: 0 + m_GPUResidentDrawerMode: 0 + m_SmallMeshScreenPercentage: 0 + m_GPUResidentDrawerEnableOcclusionCullingInCameras: 0 + m_ShadowType: 0 + m_LocalShadowsSupported: 1 + m_LocalShadowsAtlasResolution: 512 + m_MaxPixelLights: 4 + m_ShadowAtlasResolution: 2048 + m_VolumeFrameworkUpdateMode: 0 + m_VolumeProfile: {fileID: 0} + apvScenesData: + obsoleteSceneBounds: + m_Keys: [] + m_Values: [] + obsoleteHasProbeVolumes: + m_Keys: [] + m_Values: + m_PrefilteringModeMainLightShadows: 3 + m_PrefilteringModeAdditionalLight: 3 + m_PrefilteringModeAdditionalLightShadows: 2 + m_PrefilterXRKeywords: 1 + m_PrefilteringModeForwardPlus: 0 + m_PrefilteringModeDeferredRendering: 1 + m_PrefilteringModeScreenSpaceOcclusion: 0 + m_PrefilterDebugKeywords: 1 + m_PrefilterWriteRenderingLayers: 1 + m_PrefilterHDROutput: 1 + m_PrefilterAlphaOutput: 0 + m_PrefilterSSAODepthNormals: 1 + m_PrefilterSSAOSourceDepthLow: 1 + m_PrefilterSSAOSourceDepthMedium: 1 + m_PrefilterSSAOSourceDepthHigh: 1 + m_PrefilterSSAOInterleaved: 1 + m_PrefilterSSAOBlueNoise: 1 + m_PrefilterSSAOSampleCountLow: 1 + m_PrefilterSSAOSampleCountMedium: 1 + m_PrefilterSSAOSampleCountHigh: 1 + m_PrefilterDBufferMRT1: 1 + m_PrefilterDBufferMRT2: 1 + m_PrefilterDBufferMRT3: 1 + m_PrefilterSoftShadowsQualityLow: 0 + m_PrefilterSoftShadowsQualityMedium: 0 + m_PrefilterSoftShadowsQualityHigh: 0 + m_PrefilterSoftShadows: 0 + m_PrefilterScreenCoord: 1 + m_PrefilterNativeRenderPass: 0 + m_PrefilterUseLegacyLightmaps: 0 + m_PrefilterBicubicLightmapSampling: 0 + m_ShaderVariantLogLevel: 0 + m_ShadowCascades: 3 + m_Textures: + blueNoise64LTex: {fileID: 2800000, guid: e3d24661c1e055f45a7560c033dbb837, type: 3} + bayerMatrixTex: {fileID: 2800000, guid: f9ee4ed84c1d10c49aabb9b210b0fc44, type: 3} diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/CommonAssets/URPAssets/060_Deferred_SM.asset.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/CommonAssets/URPAssets/060_Deferred_SM.asset.meta new file mode 100644 index 00000000000..1e919ae8134 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/CommonAssets/URPAssets/060_Deferred_SM.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0752e08e6d4698c4395ee36140d15a0c +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/CommonAssets/URPAssets/060_Deferred_SM_RL.asset b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/CommonAssets/URPAssets/060_Deferred_SM_RL.asset new file mode 100644 index 00000000000..a17e7755b72 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/CommonAssets/URPAssets/060_Deferred_SM_RL.asset @@ -0,0 +1,138 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: bf2edee5c58d82540a51f03df9d42094, type: 3} + m_Name: 060_Deferred_SM_RL + m_EditorClassIdentifier: + k_AssetVersion: 12 + k_AssetPreviousVersion: 12 + m_RendererType: 1 + m_RendererData: {fileID: 0} + m_RendererDataList: + - {fileID: 11400000, guid: 1f0ec70d2f6284f04a23236fd067dec1, type: 2} + m_DefaultRendererIndex: 0 + m_RequireDepthTexture: 0 + m_RequireOpaqueTexture: 0 + m_OpaqueDownsampling: 1 + m_SupportsTerrainHoles: 0 + m_SupportsHDR: 1 + m_HDRColorBufferPrecision: 0 + m_MSAA: 1 + m_RenderScale: 1 + m_UpscalingFilter: 0 + m_FsrOverrideSharpness: 0 + m_FsrSharpness: 0.92 + m_EnableLODCrossFade: 0 + m_LODCrossFadeDitheringType: 1 + m_ShEvalMode: 0 + m_LightProbeSystem: 0 + m_ProbeVolumeMemoryBudget: 1024 + m_ProbeVolumeBlendingMemoryBudget: 128 + m_SupportProbeVolumeGPUStreaming: 0 + m_SupportProbeVolumeDiskStreaming: 0 + m_SupportProbeVolumeScenarios: 0 + m_SupportProbeVolumeScenarioBlending: 0 + m_ProbeVolumeSHBands: 1 + m_MainLightRenderingMode: 1 + m_MainLightShadowsSupported: 1 + m_MainLightShadowmapResolution: 2048 + m_AdditionalLightsRenderingMode: 1 + m_AdditionalLightsPerObjectLimit: 8 + m_AdditionalLightShadowsSupported: 1 + m_AdditionalLightsShadowmapResolution: 2048 + m_AdditionalLightsShadowResolutionTierLow: 128 + m_AdditionalLightsShadowResolutionTierMedium: 256 + m_AdditionalLightsShadowResolutionTierHigh: 512 + m_ReflectionProbeBlending: 0 + m_ReflectionProbeBoxProjection: 0 + m_ReflectionProbeAtlas: 0 + m_ShadowDistance: 56 + m_ShadowCascadeCount: 4 + m_Cascade2Split: 0.25 + m_Cascade3Split: {x: 0.154, y: 0.478} + m_Cascade4Split: {x: 0.067, y: 0.2, z: 0.467} + m_CascadeBorder: 0.1 + m_ShadowDepthBias: 1 + m_ShadowNormalBias: 1 + m_AnyShadowsSupported: 1 + m_SoftShadowsSupported: 0 + m_ConservativeEnclosingSphere: 0 + m_NumIterationsEnclosingSphere: 64 + m_SoftShadowQuality: 2 + m_AdditionalLightsCookieResolution: 2048 + m_AdditionalLightsCookieFormat: 3 + m_UseSRPBatcher: 1 + m_SupportsDynamicBatching: 0 + m_MixedLightingSupported: 1 + m_SupportsLightCookies: 0 + m_SupportsLightLayers: 1 + m_DebugLevel: 0 + m_StoreActionsOptimization: 0 + m_UseAdaptivePerformance: 1 + m_ColorGradingMode: 0 + m_ColorGradingLutSize: 32 + m_AllowPostProcessAlphaOutput: 0 + m_UseFastSRGBLinearConversion: 0 + m_SupportDataDrivenLensFlare: 0 + m_SupportScreenSpaceLensFlare: 0 + m_GPUResidentDrawerMode: 0 + m_SmallMeshScreenPercentage: 0 + m_GPUResidentDrawerEnableOcclusionCullingInCameras: 0 + m_ShadowType: 0 + m_LocalShadowsSupported: 1 + m_LocalShadowsAtlasResolution: 512 + m_MaxPixelLights: 4 + m_ShadowAtlasResolution: 2048 + m_VolumeFrameworkUpdateMode: 0 + m_VolumeProfile: {fileID: 0} + apvScenesData: + obsoleteSceneBounds: + m_Keys: [] + m_Values: [] + obsoleteHasProbeVolumes: + m_Keys: [] + m_Values: + m_PrefilteringModeMainLightShadows: 3 + m_PrefilteringModeAdditionalLight: 3 + m_PrefilteringModeAdditionalLightShadows: 2 + m_PrefilterXRKeywords: 1 + m_PrefilteringModeForwardPlus: 0 + m_PrefilteringModeDeferredRendering: 1 + m_PrefilteringModeScreenSpaceOcclusion: 0 + m_PrefilterDebugKeywords: 1 + m_PrefilterWriteRenderingLayers: 1 + m_PrefilterHDROutput: 1 + m_PrefilterAlphaOutput: 0 + m_PrefilterSSAODepthNormals: 1 + m_PrefilterSSAOSourceDepthLow: 1 + m_PrefilterSSAOSourceDepthMedium: 1 + m_PrefilterSSAOSourceDepthHigh: 1 + m_PrefilterSSAOInterleaved: 1 + m_PrefilterSSAOBlueNoise: 1 + m_PrefilterSSAOSampleCountLow: 1 + m_PrefilterSSAOSampleCountMedium: 1 + m_PrefilterSSAOSampleCountHigh: 1 + m_PrefilterDBufferMRT1: 1 + m_PrefilterDBufferMRT2: 1 + m_PrefilterDBufferMRT3: 1 + m_PrefilterSoftShadowsQualityLow: 0 + m_PrefilterSoftShadowsQualityMedium: 0 + m_PrefilterSoftShadowsQualityHigh: 0 + m_PrefilterSoftShadows: 0 + m_PrefilterScreenCoord: 1 + m_PrefilterNativeRenderPass: 0 + m_PrefilterUseLegacyLightmaps: 0 + m_PrefilterBicubicLightmapSampling: 0 + m_ShaderVariantLogLevel: 0 + m_ShadowCascades: 3 + m_Textures: + blueNoise64LTex: {fileID: 2800000, guid: e3d24661c1e055f45a7560c033dbb837, type: 3} + bayerMatrixTex: {fileID: 2800000, guid: f9ee4ed84c1d10c49aabb9b210b0fc44, type: 3} diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/CommonAssets/URPAssets/060_Deferred_SM_RL.asset.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/CommonAssets/URPAssets/060_Deferred_SM_RL.asset.meta new file mode 100644 index 00000000000..42b32e84ac0 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/CommonAssets/URPAssets/060_Deferred_SM_RL.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2050474a1bd6e964390881456a2e5a86 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/044_Lighting_ReflectionProbe.unity b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/044_Lighting_ReflectionProbe.unity index 567292a45a9..a0df0d67d02 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/044_Lighting_ReflectionProbe.unity +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/044_Lighting_ReflectionProbe.unity @@ -13,7 +13,7 @@ OcclusionCullingSettings: --- !u!104 &2 RenderSettings: m_ObjectHideFlags: 0 - serializedVersion: 9 + serializedVersion: 10 m_Fog: 0 m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} m_FogMode: 3 @@ -38,13 +38,12 @@ RenderSettings: m_ReflectionIntensity: 1 m_CustomReflection: {fileID: 8900000, guid: ab064d5acac1440b4926ae4037cb7ab2, type: 3} m_Sun: {fileID: 0} - m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} m_UseRadianceAmbientProbe: 0 --- !u!157 &3 LightmapSettings: m_ObjectHideFlags: 0 - serializedVersion: 12 - m_GIWorkflowMode: 1 + serializedVersion: 13 + m_BakeOnSceneLoad: 0 m_GISettings: serializedVersion: 2 m_BounceScale: 1 @@ -94,9 +93,9 @@ LightmapSettings: m_ExportTrainingData: 0 m_TrainingDataDestination: TrainingData m_LightProbeSampleCountMultiplier: 4 - m_LightingDataAsset: {fileID: 112000002, guid: 18096e6043a09494fa39dee95347f5f7, + m_LightingDataAsset: {fileID: 112000000, guid: 319ce89ebaa0c48c6ac389662801fead, type: 2} - m_LightingSettings: {fileID: 4890085278179872738, guid: e8892ec9d8e7333409d15605a91e8873, + m_LightingSettings: {fileID: 4890085278179872738, guid: 47fdbdcfc93004661b160099a2dfcfd5, type: 2} --- !u!196 &4 NavMeshSettings: @@ -147,13 +146,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 291141014} + serializedVersion: 2 m_LocalRotation: {x: 0.2223021, y: -0.044622105, z: 0.19167629, w: 0.95490885} m_LocalPosition: {x: -0.6, y: 0.6, z: -0.6} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1906372180} - m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 26.21, y: 0, z: 22.7} --- !u!23 &291141016 MeshRenderer: @@ -172,6 +171,11 @@ MeshRenderer: m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 4294967295 m_RendererPriority: 0 m_Materials: @@ -193,6 +197,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -231,15 +236,14 @@ Light: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 298594188} m_Enabled: 1 - serializedVersion: 10 + serializedVersion: 12 m_Type: 2 - m_Shape: 0 m_Color: {r: 0, g: 0, b: 0, a: 1} m_Intensity: 1 m_Range: 10 m_SpotAngle: 30 m_InnerSpotAngle: 21.80208 - m_CookieSize: 10 + m_CookieSize2D: {x: 10, y: 10} m_Shadows: m_Type: 0 m_Resolution: -1 @@ -283,8 +287,12 @@ Light: m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} m_UseBoundingSphereOverride: 0 m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 m_ShadowRadius: 0 m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 --- !u!4 &298594190 Transform: m_ObjectHideFlags: 0 @@ -292,13 +300,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 298594188} + serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 5.4599686, y: -1.1068102, z: 9.665782} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 6 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &298594191 MonoBehaviour: @@ -312,17 +320,23 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} m_Name: m_EditorClassIdentifier: - m_Version: 3 m_UsePipelineSettings: 1 m_AdditionalLightsShadowResolutionTier: 2 - m_LightLayerMask: 1 - m_RenderingLayers: 1 m_CustomShadowLayers: 0 - m_ShadowLayerMask: 1 - m_ShadowRenderingLayers: 1 m_LightCookieSize: {x: 1, y: 1} m_LightCookieOffset: {x: 0, y: 0} m_SoftShadowQuality: 0 + m_RenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_ShadowRenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_Version: 4 + m_LightLayerMask: 1 + m_ShadowLayerMask: 1 + m_RenderingLayers: 1 + m_ShadowRenderingLayers: 1 --- !u!1 &307659644 GameObject: m_ObjectHideFlags: 0 @@ -348,13 +362,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 307659644} + serializedVersion: 2 m_LocalRotation: {x: 0.2223021, y: -0.044622105, z: 0.19167629, w: 0.95490885} m_LocalPosition: {x: -0.6, y: 0.6, z: -0.6} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1241399228} - m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 26.21, y: 0, z: 22.7} --- !u!23 &307659646 MeshRenderer: @@ -373,6 +387,11 @@ MeshRenderer: m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 4294967295 m_RendererPriority: 0 m_Materials: @@ -394,6 +413,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -431,13 +451,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 312870006} + serializedVersion: 2 m_LocalRotation: {x: 0.2223021, y: -0.044622105, z: 0.19167629, w: 0.95490885} m_LocalPosition: {x: 0.6, y: 2.4, z: 0.6} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1241399228} - m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 26.21, y: 0, z: 22.7} --- !u!23 &312870008 MeshRenderer: @@ -456,6 +476,11 @@ MeshRenderer: m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 4294967295 m_RendererPriority: 0 m_Materials: @@ -477,6 +502,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -514,13 +540,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 360074575} + serializedVersion: 2 m_LocalRotation: {x: 0.2223021, y: -0.044622105, z: 0.19167629, w: 0.95490885} m_LocalPosition: {x: 0.6, y: 2.4, z: 0.6} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1906372180} - m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 26.21, y: 0, z: 22.7} --- !u!23 &360074577 MeshRenderer: @@ -539,6 +565,11 @@ MeshRenderer: m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 4294967295 m_RendererPriority: 0 m_Materials: @@ -560,6 +591,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -662,13 +694,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 657955513} + serializedVersion: 2 m_LocalRotation: {x: 0.2223021, y: -0.044622105, z: 0.19167629, w: 0.95490885} m_LocalPosition: {x: 0.6, y: 2.4, z: 0.6} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1288802639} - m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 26.21, y: 0, z: 22.7} --- !u!23 &657955515 MeshRenderer: @@ -687,6 +719,11 @@ MeshRenderer: m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 4294967295 m_RendererPriority: 0 m_Materials: @@ -708,6 +745,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -755,6 +793,7 @@ MonoBehaviour: ImageComparisonSettings: TargetWidth: 640 TargetHeight: 360 + TargetMSAASamples: 1 PerPixelCorrectnessThreshold: 0.005 PerPixelGammaThreshold: 0.003921569 PerPixelAlphaThreshold: 0.003921569 @@ -768,7 +807,10 @@ MonoBehaviour: ActivePixelTests: 7 WaitFrames: 0 XRCompatible: 1 + gpuDrivenCompatible: 1 CheckMemoryAllocation: 1 + renderBackendCompatibility: 2 + SetBackBufferResolution: 0 --- !u!81 &971756571 AudioListener: m_ObjectHideFlags: 0 @@ -843,13 +885,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 971756569} + serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 1.5, z: -9.89} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1071677612 GameObject: @@ -876,13 +918,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1071677612} + serializedVersion: 2 m_LocalRotation: {x: 0.2223021, y: -0.044622105, z: 0.19167629, w: 0.95490885} m_LocalPosition: {x: -0.6, y: 2.4, z: 0.6} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1288802639} - m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 26.21, y: 0, z: 22.7} --- !u!23 &1071677614 MeshRenderer: @@ -901,6 +943,11 @@ MeshRenderer: m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 4294967295 m_RendererPriority: 0 m_Materials: @@ -922,6 +969,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -959,13 +1007,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1123016088} + serializedVersion: 2 m_LocalRotation: {x: 0.2223021, y: -0.044622105, z: 0.19167629, w: 0.95490885} m_LocalPosition: {x: 0.6, y: 0.6, z: -0.6} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1906372180} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 26.21, y: 0, z: 22.7} --- !u!23 &1123016090 MeshRenderer: @@ -984,6 +1032,11 @@ MeshRenderer: m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 4294967295 m_RendererPriority: 0 m_Materials: @@ -1005,6 +1058,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -1074,13 +1128,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1160527758} + serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 3.39, y: 1.5, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 9 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1161206970 GameObject: @@ -1108,15 +1162,14 @@ Light: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1161206970} m_Enabled: 1 - serializedVersion: 10 + serializedVersion: 12 m_Type: 1 - m_Shape: 0 m_Color: {r: 1, g: 1, b: 1, a: 1} m_Intensity: 6 m_Range: 10 m_SpotAngle: 30 m_InnerSpotAngle: 21.80208 - m_CookieSize: 10 + m_CookieSize2D: {x: 10, y: 10} m_Shadows: m_Type: 2 m_Resolution: -1 @@ -1160,8 +1213,12 @@ Light: m_BoundingSphereOverride: {x: 7.215475e+22, y: 8e-44, z: 0, w: 3e-45} m_UseBoundingSphereOverride: 0 m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 m_ShadowRadius: 0 m_ShadowAngle: 5 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 --- !u!4 &1161206972 Transform: m_ObjectHideFlags: 0 @@ -1169,13 +1226,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1161206970} + serializedVersion: 2 m_LocalRotation: {x: 0.7132504, y: 0, z: 0, w: 0.7009094} m_LocalPosition: {x: 0, y: 3, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 91, y: 0, z: 0} --- !u!114 &1161206973 MonoBehaviour: @@ -1189,17 +1246,23 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} m_Name: m_EditorClassIdentifier: - m_Version: 3 m_UsePipelineSettings: 1 m_AdditionalLightsShadowResolutionTier: 2 - m_LightLayerMask: 1 - m_RenderingLayers: 1 m_CustomShadowLayers: 0 - m_ShadowLayerMask: 1 - m_ShadowRenderingLayers: 1 m_LightCookieSize: {x: 1, y: 1} m_LightCookieOffset: {x: 0, y: 0} m_SoftShadowQuality: 0 + m_RenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_ShadowRenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_Version: 4 + m_LightLayerMask: 1 + m_ShadowLayerMask: 1 + m_RenderingLayers: 1 + m_ShadowRenderingLayers: 1 --- !u!1 &1176034412 GameObject: m_ObjectHideFlags: 0 @@ -1225,13 +1288,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1176034412} + serializedVersion: 2 m_LocalRotation: {x: 0.2223021, y: -0.044622105, z: 0.19167629, w: 0.95490885} m_LocalPosition: {x: -0.6, y: 0.6, z: -0.6} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1288802639} - m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 26.21, y: 0, z: 22.7} --- !u!23 &1176034414 MeshRenderer: @@ -1250,6 +1313,11 @@ MeshRenderer: m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 4294967295 m_RendererPriority: 0 m_Materials: @@ -1271,6 +1339,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -1308,13 +1377,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1178234604} + serializedVersion: 2 m_LocalRotation: {x: 0.2223021, y: -0.044622105, z: 0.19167629, w: 0.95490885} m_LocalPosition: {x: 0.6, y: 0.6, z: -0.6} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1288802639} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 26.21, y: 0, z: 22.7} --- !u!23 &1178234606 MeshRenderer: @@ -1333,6 +1402,11 @@ MeshRenderer: m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 4294967295 m_RendererPriority: 0 m_Materials: @@ -1354,6 +1428,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -1389,6 +1464,7 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1241399227} + serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: -3.24, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} @@ -1399,7 +1475,6 @@ Transform: - {fileID: 312870007} - {fileID: 1586801685} m_Father: {fileID: 0} - m_RootOrder: 8 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1288802638 GameObject: @@ -1424,6 +1499,7 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1288802638} + 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} @@ -1434,7 +1510,6 @@ Transform: - {fileID: 657955514} - {fileID: 1071677613} m_Father: {fileID: 0} - m_RootOrder: 5 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1586801684 GameObject: @@ -1461,13 +1536,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1586801684} + serializedVersion: 2 m_LocalRotation: {x: 0.2223021, y: -0.044622105, z: 0.19167629, w: 0.95490885} m_LocalPosition: {x: -0.6, y: 2.4, z: 0.6} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1241399228} - m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 26.21, y: 0, z: 22.7} --- !u!23 &1586801686 MeshRenderer: @@ -1486,6 +1561,11 @@ MeshRenderer: m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 4294967295 m_RendererPriority: 0 m_Materials: @@ -1507,6 +1587,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -1544,13 +1625,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1791333535} + serializedVersion: 2 m_LocalRotation: {x: 0.2223021, y: -0.044622105, z: 0.19167629, w: 0.95490885} m_LocalPosition: {x: -0.6, y: 2.4, z: 0.6} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1906372180} - m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 26.21, y: 0, z: 22.7} --- !u!23 &1791333537 MeshRenderer: @@ -1569,6 +1650,11 @@ MeshRenderer: m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 4294967295 m_RendererPriority: 0 m_Materials: @@ -1590,6 +1676,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -1659,13 +1746,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1847326191} + serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 1.5, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1906372179 GameObject: @@ -1690,6 +1777,7 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1906372179} + serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 3.22, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} @@ -1700,7 +1788,6 @@ Transform: - {fileID: 360074576} - {fileID: 1791333536} m_Father: {fileID: 0} - m_RootOrder: 7 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1971466564 GameObject: @@ -1727,13 +1814,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1971466564} + serializedVersion: 2 m_LocalRotation: {x: 0.2223021, y: -0.044622105, z: 0.19167629, w: 0.95490885} m_LocalPosition: {x: 0.6, y: 0.6, z: -0.6} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1241399228} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 26.21, y: 0, z: 22.7} --- !u!23 &1971466566 MeshRenderer: @@ -1752,6 +1839,11 @@ MeshRenderer: m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 4294967295 m_RendererPriority: 0 m_Materials: @@ -1773,6 +1865,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -1815,6 +1908,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: qualityLevelIndex: 0 + callbacks: [] --- !u!4 &2145830756 Transform: m_ObjectHideFlags: 0 @@ -1822,11 +1916,25 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2145830754} + serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0.38117677, y: 6.107272, z: 0.46914768} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1660057539 &9223372036854775807 +SceneRoots: + m_ObjectHideFlags: 0 + m_Roots: + - {fileID: 2145830756} + - {fileID: 971756575} + - {fileID: 1161206972} + - {fileID: 473298562} + - {fileID: 1847326193} + - {fileID: 1288802639} + - {fileID: 298594190} + - {fileID: 1906372180} + - {fileID: 1241399228} + - {fileID: 1160527760} diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/044_Lighting_ReflectionProbe/044_Lighting_ReflectionProbe.lighting b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/044_Lighting_ReflectionProbe/044_Lighting_ReflectionProbe.lighting new file mode 100644 index 00000000000..2fd82e9510c --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/044_Lighting_ReflectionProbe/044_Lighting_ReflectionProbe.lighting @@ -0,0 +1,69 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!850595691 &4890085278179872738 +LightingSettings: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: 044_Lighting_ReflectionProbe + serializedVersion: 10 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 0 + m_RealtimeEnvironmentLighting: 1 + m_BounceScale: 1 + m_AlbedoBoost: 1 + m_IndirectOutputScale: 1 + m_UsingShadowmask: 1 + m_BakeBackend: 2 + m_LightmapMaxSize: 1024 + m_LightmapSizeFixed: 0 + m_UseMipmapLimits: 1 + m_BakeResolution: 40 + m_Padding: 2 + m_LightmapCompression: 3 + m_LightmapPackingMode: 0 + m_LightmapPackingMethod: 1 + m_XAtlasPackingAttempts: 16384 + m_XAtlasBruteForce: 0 + m_XAtlasBlockAlign: 0 + m_XAtlasRepackUnderutilizedLightmaps: 1 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAO: 0 + m_MixedBakeMode: 2 + m_LightmapsBakeMode: 1 + m_FilterMode: 1 + m_LightmapParameters: {fileID: 15204, guid: 0000000000000000f000000000000000, type: 0} + m_ExportTrainingData: 0 + m_EnableWorkerProcessBaking: 1 + m_TrainingDataDestination: TrainingData + m_RealtimeResolution: 2 + m_ForceWhiteAlbedo: 0 + m_ForceUpdates: 0 + m_PVRCulling: 1 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 512 + m_PVREnvironmentSampleCount: 256 + m_PVREnvironmentReferencePointCount: 2048 + m_LightProbeSampleCountMultiplier: 4 + m_PVRBounces: 2 + m_PVRMinBounces: 2 + m_PVREnvironmentImportanceSampling: 1 + m_PVRFilteringMode: 1 + m_PVRDenoiserTypeDirect: 1 + m_PVRDenoiserTypeIndirect: 1 + m_PVRDenoiserTypeAO: 1 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 1 + m_PVRFilteringGaussRadiusAO: 1 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_RespectSceneVisibilityWhenBakingGI: 0 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/044_Lighting_ReflectionProbe/044_Lighting_ReflectionProbe.lighting.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/044_Lighting_ReflectionProbe/044_Lighting_ReflectionProbe.lighting.meta new file mode 100644 index 00000000000..09effbb5b11 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/044_Lighting_ReflectionProbe/044_Lighting_ReflectionProbe.lighting.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 47fdbdcfc93004661b160099a2dfcfd5 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 4890085278179872738 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/044_Lighting_ReflectionProbe/044_ReflectionProbe.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/044_Lighting_ReflectionProbe/044_ReflectionProbe.mat index f71413e3a41..de860724e34 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/044_Lighting_ReflectionProbe/044_ReflectionProbe.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/044_Lighting_ReflectionProbe/044_ReflectionProbe.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -140,3 +140,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/044_Lighting_ReflectionProbe/044_ReflectionProbeRough.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/044_Lighting_ReflectionProbe/044_ReflectionProbeRough.mat index 842f7276e60..152cce8131b 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/044_Lighting_ReflectionProbe/044_ReflectionProbeRough.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/044_Lighting_ReflectionProbe/044_ReflectionProbeRough.mat @@ -126,6 +126,7 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &696773388402950971 MonoBehaviour: m_ObjectHideFlags: 11 @@ -138,4 +139,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/044_Lighting_ReflectionProbe/044_ReflectionProbeTextured.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/044_Lighting_ReflectionProbe/044_ReflectionProbeTextured.mat index 4a8f774e1ba..27beaacf861 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/044_Lighting_ReflectionProbe/044_ReflectionProbeTextured.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/044_Lighting_ReflectionProbe/044_ReflectionProbeTextured.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -140,3 +140,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/044_Lighting_ReflectionProbe/044_ReflectionProbeTextured_rough.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/044_Lighting_ReflectionProbe/044_ReflectionProbeTextured_rough.mat index 76232aae8bc..80e87c2dae4 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/044_Lighting_ReflectionProbe/044_ReflectionProbeTextured_rough.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/044_Lighting_ReflectionProbe/044_ReflectionProbeTextured_rough.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -144,3 +144,4 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred.meta similarity index 100% rename from Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred.meta rename to Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred.meta diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/060_Shadowmask.lighting b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/060_Shadowmask.lighting new file mode 100644 index 00000000000..808d9b97471 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/060_Shadowmask.lighting @@ -0,0 +1,69 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!850595691 &4890085278179872738 +LightingSettings: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: 060_Shadowmask + serializedVersion: 10 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 0 + m_RealtimeEnvironmentLighting: 1 + m_BounceScale: 1 + m_AlbedoBoost: 1 + m_IndirectOutputScale: 1 + m_UsingShadowmask: 1 + m_BakeBackend: 2 + m_LightmapMaxSize: 1024 + m_LightmapSizeFixed: 0 + m_UseMipmapLimits: 1 + m_BakeResolution: 40 + m_Padding: 2 + m_LightmapCompression: 3 + m_LightmapPackingMode: 0 + m_LightmapPackingMethod: 1 + m_XAtlasPackingAttempts: 16384 + m_XAtlasBruteForce: 0 + m_XAtlasBlockAlign: 0 + m_XAtlasRepackUnderutilizedLightmaps: 1 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAO: 0 + m_MixedBakeMode: 2 + m_LightmapsBakeMode: 1 + m_FilterMode: 1 + m_LightmapParameters: {fileID: 15204, guid: 0000000000000000f000000000000000, type: 0} + m_ExportTrainingData: 0 + m_EnableWorkerProcessBaking: 1 + m_TrainingDataDestination: TrainingData + m_RealtimeResolution: 2 + m_ForceWhiteAlbedo: 0 + m_ForceUpdates: 0 + m_PVRCulling: 1 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 512 + m_PVREnvironmentSampleCount: 256 + m_PVREnvironmentReferencePointCount: 2048 + m_LightProbeSampleCountMultiplier: 4 + m_PVRBounces: 2 + m_PVRMinBounces: 2 + m_PVREnvironmentImportanceSampling: 0 + m_PVRFilteringMode: 1 + m_PVRDenoiserTypeDirect: 1 + m_PVRDenoiserTypeIndirect: 1 + m_PVRDenoiserTypeAO: 1 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 1 + m_PVRFilteringGaussRadiusAO: 1 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_RespectSceneVisibilityWhenBakingGI: 0 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/060_Shadowmask.lighting.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/060_Shadowmask.lighting.meta new file mode 100644 index 00000000000..83a3ad71eac --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/060_Shadowmask.lighting.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 21e7a57e9de4c1641a8080793caace7d +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 4890085278179872738 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred/Deferred_ComplexLit_Graph.shadergraph b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Deferred_ComplexLit_Graph.shadergraph similarity index 99% rename from Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred/Deferred_ComplexLit_Graph.shadergraph rename to Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Deferred_ComplexLit_Graph.shadergraph index 97275b55cd0..db922a50b6b 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred/Deferred_ComplexLit_Graph.shadergraph +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Deferred_ComplexLit_Graph.shadergraph @@ -128,6 +128,7 @@ "m_OutputNode": { "m_Id": "" }, + "m_SubDatas": [], "m_ActiveTargets": [ { "m_Id": "b439bb209ef84a4aa08c77adf19ac190" @@ -615,6 +616,7 @@ "m_AlphaClip": false, "m_CastShadows": true, "m_ReceiveShadows": true, + "m_DisableTint": false, "m_AdditionalMotionVectorMode": 0, "m_AlembicMotionVectors": false, "m_SupportsLODCrossFade": false, @@ -695,7 +697,7 @@ "m_Hidden": false, "m_ShaderOutputName": "Metallic", "m_StageCapability": 2, - "m_Value": 0.0, + "m_Value": 0.10000000149011612, "m_DefaultValue": 0.0, "m_Labels": [] } diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred/Deferred_ComplexLit_Graph.shadergraph.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Deferred_ComplexLit_Graph.shadergraph.meta similarity index 100% rename from Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred/Deferred_ComplexLit_Graph.shadergraph.meta rename to Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Deferred_ComplexLit_Graph.shadergraph.meta diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred/Deferred_ComplexLit_O.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Deferred_ComplexLit_O.mat similarity index 98% rename from Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred/Deferred_ComplexLit_O.mat rename to Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Deferred_ComplexLit_O.mat index bac84e7a199..efeafd0b418 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred/Deferred_ComplexLit_O.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Deferred_ComplexLit_O.mat @@ -107,7 +107,7 @@ Material: - _GlossMapScale: 0 - _Glossiness: 0 - _GlossyReflections: 0 - - _Metallic: 0 + - _Metallic: 0.1 - _OcclusionStrength: 1 - _Parallax: 0.005 - _QueueOffset: 0 @@ -119,6 +119,7 @@ Material: - _SrcBlendAlpha: 1 - _Surface: 0 - _WorkflowMode: 1 + - _XRMotionVectorsPass: 1 - _ZWrite: 1 m_Colors: - _BaseColor: {r: 0.7529412, g: 0.5019608, b: 0, a: 1} @@ -139,4 +140,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred/Deferred_ComplexLit_O.mat.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Deferred_ComplexLit_O.mat.meta similarity index 100% rename from Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred/Deferred_ComplexLit_O.mat.meta rename to Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Deferred_ComplexLit_O.mat.meta diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred/Deferred_ComplexLit_SG_C.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Deferred_ComplexLit_SG_C.mat similarity index 99% rename from Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred/Deferred_ComplexLit_SG_C.mat rename to Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Deferred_ComplexLit_SG_C.mat index a82f70dded1..52aabb4d6d0 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred/Deferred_ComplexLit_SG_C.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Deferred_ComplexLit_SG_C.mat @@ -151,4 +151,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred/Deferred_ComplexLit_SG_C.mat.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Deferred_ComplexLit_SG_C.mat.meta similarity index 100% rename from Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred/Deferred_ComplexLit_SG_C.mat.meta rename to Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Deferred_ComplexLit_SG_C.mat.meta diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred/Deferred_GBuffer_Visualization_Material.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Deferred_GBuffer_Visualization_Material.mat similarity index 100% rename from Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred/Deferred_GBuffer_Visualization_Material.mat rename to Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Deferred_GBuffer_Visualization_Material.mat diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred/Deferred_GBuffer_Visualization_Material.mat.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Deferred_GBuffer_Visualization_Material.mat.meta similarity index 100% rename from Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred/Deferred_GBuffer_Visualization_Material.mat.meta rename to Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Deferred_GBuffer_Visualization_Material.mat.meta diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Deferred_GBuffer_Visualization_RenderFeature.cs b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Deferred_GBuffer_Visualization_RenderFeature.cs new file mode 100644 index 00000000000..6e08c88b5ea --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Deferred_GBuffer_Visualization_RenderFeature.cs @@ -0,0 +1,269 @@ +using System; +using UnityEngine; +using UnityEngine.Rendering; +using UnityEngine.Rendering.Universal; +using UnityEngine.Rendering.RenderGraphModule; + +public class Deferred_GBuffer_Visualization_RenderFeature : ScriptableRendererFeature +{ + public Shader visualizeShader; + Material m_Material; + + static readonly string[] s_ShaderKeywordNames = + { + "GBUFFER_0", + "GBUFFER_1", + "GBUFFER_2", + "GBUFFER_ALPHA_A", + "GBUFFER_ALPHA_B", + "GBUFFER_RL", + "GBUFFER_SM", + }; + + LocalKeyword[] m_ShaderKeywords; + + class CustomRenderPass : ScriptableRenderPass + { + internal Material m_Material; + internal LocalKeyword[] m_ShaderKeywords; + + public void Setup(Material material, LocalKeyword[] shaderKeywords) + { + m_Material = material; + m_ShaderKeywords = shaderKeywords; + } + +#if !UNITY_6000_3_OR_NEWER || URP_COMPATIBILITY_MODE + // This method is called before executing the render pass. + // It can be used to configure render targets and their clear state. Also to create temporary render target textures. + // When empty this render pass will render to the active camera render target. + // You should never call CommandBuffer.SetRenderTarget. Instead call ConfigureTarget and ConfigureClear. + // The render pipeline will ensure target setup and clearing happens in a performant manner. + [Obsolete("This rendering path is for compatibility mode only (when Render Graph is disabled). Use Render Graph API instead.", false)] + public override void OnCameraSetup(CommandBuffer cmd, ref RenderingData renderingData) + { + } + + // Here you can implement the rendering logic. + // Use ScriptableRenderContext to issue drawing commands or execute command buffers + // https://docs.unity3d.com/ScriptReference/Rendering.ScriptableRenderContext.html + // You don't have to call ScriptableRenderContext.submit, the render pipeline will call it at specific points in the pipeline. + [Obsolete("This rendering path is for compatibility mode only (when Render Graph is disabled). Use Render Graph API instead.", false)] + public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) + { + CommandBuffer cmd = CommandBufferPool.Get(); + + UniversalRenderer renderer = renderingData.cameraData.renderer as UniversalRenderer; + + #pragma warning disable CS0618 // Type or member is obsolete + ConfigureTarget(renderer?.cameraColorTargetHandle); + ConfigureClear(ClearFlag.Color, Color.yellow); + #pragma warning restore CS0618 // Type or member is obsolete + + ExecutePass(cmd, m_Material, renderer.cameraColorTargetHandle.referenceSize, m_ShaderKeywords); + + context.ExecuteCommandBuffer(cmd); + cmd.Clear(); + + CommandBufferPool.Release(cmd); + } + + static void ExecutePass(CommandBuffer cmd, Material material, Vector2Int targetSize, LocalKeyword[] shaderKeywords) + { + if (material == null) + return; + + const int Width = 3; + const int Height = 3; + + int tileWidthPixel = targetSize.x / Width; + int tileHeightPixel = targetSize.y / Height; + + LocalKeyword gBufferKeywordOld = shaderKeywords[shaderKeywords.Length - 1]; + + for (int y = 0; y < Height; ++y) + { + int yCoord = tileHeightPixel * y; + + for (int x = 0; x < Width; ++x) + { + int gBufferIdx = y * Width + x; + int xCoord = tileWidthPixel * x; + + cmd.SetKeyword(material, gBufferKeywordOld, false); + + if (gBufferIdx < shaderKeywords.Length) + { + LocalKeyword gBufferKeyword = shaderKeywords[gBufferIdx]; + cmd.SetKeyword(material, gBufferKeyword, true); + gBufferKeywordOld = gBufferKeyword; + } + + cmd.SetViewport(new Rect(xCoord, yCoord, tileWidthPixel, tileHeightPixel)); + cmd.DrawProcedural(Matrix4x4.identity, material, 0, MeshTopology.Triangles, 3, 1); + } + } + } +#endif + + static void ExecutePass(RasterCommandBuffer cmd, Material material, Vector2Int targetSize, LocalKeyword[] shaderKeywords) + { + if (material == null) + return; + + const int Width = 3; + const int Height = 3; + + int tileWidthPixel = targetSize.x / Width; + int tileHeightPixel = targetSize.y / Height; + + LocalKeyword gBufferKeywordOld = shaderKeywords[shaderKeywords.Length - 1]; + + for (int y = 0; y < Height; ++y) + { + int yCoord = tileHeightPixel * y; + + for (int x = 0; x < Width; ++x) + { + int gBufferIdx = y * Width + x; + int xCoord = tileWidthPixel * x; + + cmd.SetKeyword(material, gBufferKeywordOld, false); + + if (gBufferIdx < shaderKeywords.Length) + { + LocalKeyword gBufferKeyword = shaderKeywords[gBufferIdx]; + cmd.SetKeyword(material, gBufferKeyword, true); + gBufferKeywordOld = gBufferKeyword; + } + + cmd.SetViewport(new Rect(xCoord, yCoord, tileWidthPixel, tileHeightPixel)); + cmd.DrawProcedural(Matrix4x4.identity, material, 0, MeshTopology.Triangles, 3, 1); + } + } + } + + // Cleanup any allocated resources that were created during the execution of this render pass. + public override void OnCameraCleanup(CommandBuffer cmd) + { + } + + private class PassData + { + internal Material material; + internal Vector2Int targetSize; + internal TextureHandle[] gBufferHandles; + internal LocalKeyword[] shaderKeywords; + } + + private static readonly int s_GbufferLightingIndex = 3; // _GBuffer3 is the activeColorTexture + + private static readonly string[] s_GBufferTexBindslotNames = + { + "_GBuffer0", + "_GBuffer1", + "_GBuffer2", + "", // Unused, color target + "_CameraDepthTexture", + "_GBuffer4", + "_GBuffer5", + "_GBuffer6" + }; + + public override void RecordRenderGraph(RenderGraph renderGraph, ContextContainer frameData) + { + if (m_Material == null) + return; + + UniversalResourceData resourceData = frameData.Get(); + using (var builder = renderGraph.AddRasterRenderPass("Test GBuffer visualization.", out var passData)) + { + builder.SetRenderAttachment(resourceData.activeColorTexture, 0, AccessFlags.WriteAll); + + passData.gBufferHandles = resourceData.gBuffer; + + // We cannot use the input attachment path here, because we do not want fbfetch + // so instead, we will fake the non fbfetch path even tho it's available. + // Basically, we're emulating compatibility (no NRP) mode here. + for (int i = 0; i < resourceData.gBuffer.Length; i++) + { + if (i == s_GbufferLightingIndex) + continue; + + builder.UseTexture(resourceData.gBuffer[i]); + } + + passData.material = m_Material; + passData.targetSize = resourceData.activeColorTexture.GetDescriptor(renderGraph).CalculateFinalDimensions(); + passData.shaderKeywords = m_ShaderKeywords; + + builder.AllowGlobalStateModification(true); + + builder.SetRenderFunc(static (PassData data, RasterGraphContext context) => + { + context.cmd.ClearRenderTarget(false, true, Color.yellow); + + for (int i = 0; i < data.gBufferHandles.Length; i++) + { + if (i == s_GbufferLightingIndex) + continue; + + context.cmd.SetGlobalTexture(s_GBufferTexBindslotNames[i], data.gBufferHandles[i]); // Bind as normal textures + } + + ExecutePass(context.cmd, data.material, data.targetSize, data.shaderKeywords); + }); + } + } + } + + CustomRenderPass m_ScriptablePass; + + /// + public override void Create() + { + m_ScriptablePass = new CustomRenderPass { + // Configures where the render pass should be injected. + renderPassEvent = RenderPassEvent.AfterRenderingTransparents, + }; + } + + // Here you can inject one or multiple render passes in the renderer. + // This method is called when setting up the renderer once per-camera. + public override void AddRenderPasses(ScriptableRenderer renderer, ref RenderingData renderingData) + { + if (!GetMaterials()) + { + Debug.LogErrorFormat("{0}.AddRenderPasses(): Missing material. {1} render pass will not be added.", GetType().Name, name); + return; + } + + m_ScriptablePass.Setup(m_Material, m_ShaderKeywords); + renderer.EnqueuePass(m_ScriptablePass); + } + + protected override void Dispose(bool disposing) + { + CoreUtils.Destroy(m_Material); + } + + bool GetMaterials() + { + if (m_Material == null && visualizeShader != null) + { + m_Material = CoreUtils.CreateEngineMaterial(visualizeShader); + } + + if (m_ShaderKeywords == null) + { + m_ShaderKeywords = new LocalKeyword[s_ShaderKeywordNames.Length]; + + for (int i = 0; i < s_ShaderKeywordNames.Length; i++) + { + m_ShaderKeywords[i] = new LocalKeyword(m_Material.shader, s_ShaderKeywordNames[i]); + } + } + + return m_Material != null; + } +} diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred/Deferred_GBuffer_Visualization_RenderFeature.cs.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Deferred_GBuffer_Visualization_RenderFeature.cs.meta similarity index 100% rename from Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred/Deferred_GBuffer_Visualization_RenderFeature.cs.meta rename to Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Deferred_GBuffer_Visualization_RenderFeature.cs.meta diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred/Deferred_GBuffer_Visualization_Renderer.asset b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Deferred_GBuffer_Visualization_Renderer.asset similarity index 68% rename from Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred/Deferred_GBuffer_Visualization_Renderer.asset rename to Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Deferred_GBuffer_Visualization_Renderer.asset index c4e6985f32b..17d415ac412 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred/Deferred_GBuffer_Visualization_Renderer.asset +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Deferred_GBuffer_Visualization_Renderer.asset @@ -14,7 +14,6 @@ MonoBehaviour: m_EditorClassIdentifier: m_Active: 1 visualizeShader: {fileID: 4800000, guid: 05f75adf3dbb04d61937b7c461ab5b4f, type: 3} - visualizeAlphaChannel: 0 --- !u!114 &11400000 MonoBehaviour: m_ObjectHideFlags: 0 @@ -46,32 +45,17 @@ MonoBehaviour: type: 3} probeSamplingDebugTexture: {fileID: 2800000, guid: 24ec0e140fb444a44ab96ee80844e18e, type: 3} + probeVolumeBlendStatesCS: {fileID: 0} m_RendererFeatures: - {fileID: -4989252576251722143} m_RendererFeatureMap: 6146d051379dc2ba m_UseNativeRenderPass: 0 - postProcessData: {fileID: 0} xrSystemData: {fileID: 11400000, guid: 60e1133243b97e347b653163a8c01b64, type: 2} - shaders: - blitPS: {fileID: 4800000, guid: c17132b1f77d20942aa75f8429c0f8bc, type: 3} - copyDepthPS: {fileID: 4800000, guid: d6dae50ee9e1bfa4db75f19f99355220, type: 3} - screenSpaceShadowPS: {fileID: 0} - samplingPS: {fileID: 4800000, guid: 04c410c9937594faa893a11dceb85f7e, type: 3} - stencilDeferredPS: {fileID: 4800000, guid: e9155b26e1bc55942a41e518703fe304, type: 3} - fallbackErrorPS: {fileID: 4800000, guid: e6e9a19c3678ded42a3bc431ebef7dbd, type: 3} - fallbackLoadingPS: {fileID: 4800000, guid: 7f888aff2ac86494babad1c2c5daeee2, type: 3} - materialErrorPS: {fileID: 0} - coreBlitPS: {fileID: 4800000, guid: 93446b5c5339d4f00b85c159e1159b7c, type: 3} - coreBlitColorAndDepthPS: {fileID: 4800000, guid: d104b2fc1ca6445babb8e90b0758136b, - type: 3} - blitHDROverlay: {fileID: 4800000, guid: a89bee29cffa951418fc1e2da94d1959, type: 3} - cameraMotionVector: {fileID: 4800000, guid: c56b7e0d4c7cb484e959caeeedae9bbf, - type: 3} - screenSpaceLensFlare: {fileID: 4800000, guid: 701880fecb344ea4c9cd0db3407ab287, - type: 3} - dataDrivenLensFlare: {fileID: 4800000, guid: 6cda457ac28612740adb23da5d39ea92, - type: 3} - m_AssetVersion: 2 + postProcessData: {fileID: 0} + m_AssetVersion: 3 + m_PrepassLayerMask: + serializedVersion: 2 + m_Bits: 4294967295 m_OpaqueLayerMask: serializedVersion: 2 m_Bits: 4294967295 @@ -89,5 +73,7 @@ MonoBehaviour: m_RenderingMode: 1 m_DepthPrimingMode: 0 m_CopyDepthMode: 1 + m_DepthAttachmentFormat: 0 + m_DepthTextureFormat: 0 m_AccurateGbufferNormals: 0 m_IntermediateTextureMode: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred/Deferred_GBuffer_Visualization_Renderer.asset.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Deferred_GBuffer_Visualization_Renderer.asset.meta similarity index 100% rename from Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred/Deferred_GBuffer_Visualization_Renderer.asset.meta rename to Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Deferred_GBuffer_Visualization_Renderer.asset.meta diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Deferred_GBuffer_Visualization_Shader.shader b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Deferred_GBuffer_Visualization_Shader.shader new file mode 100644 index 00000000000..ca1cc1da698 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Deferred_GBuffer_Visualization_Shader.shader @@ -0,0 +1,173 @@ +Shader "Universal Render Pipeline/Deferred_GBuffer_Visualization_Shader" +{ + Properties + { + // BlendMode + [HideInInspector]_Surface("__surface", Float) = 0.0 + [HideInInspector]_Blend("__mode", Float) = 0.0 + [HideInInspector]_Cull("__cull", Float) = 2.0 + [HideInInspector][ToggleUI] _AlphaClip("__clip", Float) = 0.0 + [HideInInspector] _BlendOp("__blendop", Float) = 0.0 + [HideInInspector] _SrcBlend("__src", Float) = 1.0 + [HideInInspector] _DstBlend("__dst", Float) = 0.0 + [HideInInspector] _SrcBlendAlpha("__srcA", Float) = 1.0 + [HideInInspector] _DstBlendAlpha("__dstA", Float) = 0.0 + [HideInInspector] _ZWrite("__zw", Float) = 1.0 + } + + SubShader + { + Tags + { + "RenderType" = "Opaque" + "IgnoreProjector" = "True" + "UniversalMaterialType" = "Unlit" + "RenderPipeline" = "UniversalPipeline" + } + LOD 100 + + // ------------------------------------- + // Render State Commands + Blend [_SrcBlend][_DstBlend], [_SrcBlendAlpha][_DstBlendAlpha] + ZWrite [_ZWrite] + Cull [_Cull] + + Pass + { + Name "Deferred_GBuffer_Visualization" + + HLSLPROGRAM + #pragma target 2.0 + + // ------------------------------------- + // Shader Stages + #pragma vertex GBufferVisPassVertex + #pragma fragment GBufferVisPassFragment + + #pragma multi_compile_local_fragment _ GBUFFER_0 GBUFFER_1 GBUFFER_2 GBUFFER_ALPHA_A GBUFFER_ALPHA_B GBUFFER_RL GBUFFER_SM + #pragma multi_compile_fragment _ _LIGHT_LAYERS + #pragma multi_compile_fragment _ SHADOWS_SHADOWMASK _DEFERRED_MIXED_LIGHTING + #pragma multi_compile_fragment _ _GBUFFER_NORMALS_OCT + + #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" + #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl" + #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/UnityInstancing.hlsl" + #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/GBufferInput.hlsl" + + struct Attributes + { + uint vertexID : SV_VertexID; + UNITY_VERTEX_INPUT_INSTANCE_ID + }; + + struct Varyings + { + float4 positionCS : SV_POSITION; + float2 texcoord : TEXCOORD0; + + UNITY_VERTEX_INPUT_INSTANCE_ID + UNITY_VERTEX_OUTPUT_STEREO + }; + + Varyings GBufferVisPassVertex(Attributes input) + { + Varyings output; + UNITY_SETUP_INSTANCE_ID(input); + UNITY_TRANSFER_INSTANCE_ID(input, output); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(output); + + float4 pos = GetFullScreenTriangleVertexPosition(input.vertexID); + float2 uv = GetFullScreenTriangleTexCoord(input.vertexID); + + output.positionCS = pos; + output.texcoord = uv; + + return output; + } + + void GBufferVisPassFragment(Varyings input, out half4 outColor : SV_Target0) + { + UNITY_SETUP_INSTANCE_ID(input); + UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(input); + + outColor = float4(0, 0, 0, 1); + + half4 gBuffer0; + half4 gBuffer1; + half4 gBuffer2; + float gBufferDepth; + uint gBufferRenderingLayers; + half4 gBufferShadowMask; + + uint2 positionSS = uint2(input.texcoord * (_ScreenSize.xy - uint2(1, 1)) + float2(0.5, 0.5)); + + LoadGBuffers(positionSS, gBuffer0, gBuffer1, gBuffer2, gBufferDepth, gBufferRenderingLayers, gBufferShadowMask); + + #if defined(GBUFFER_0) + const uint mode = 0; + #elif defined(GBUFFER_1) + const uint mode = 1; + #elif defined(GBUFFER_2) + const uint mode = 2; + #elif defined(GBUFFER_ALPHA_A) + const uint mode = 3; + #elif defined(GBUFFER_ALPHA_B) + const uint mode = 4; + #elif defined(GBUFFER_RL) && defined(GBUFFER_FEATURE_RENDERING_LAYERS) + const uint mode = 5; + #elif defined(GBUFFER_SM) && defined(GBUFFER_FEATURE_SHADOWMASK) + const uint mode = 6; + #else + const uint mode = input.positionCS.x / 8 % 7; + #endif + + switch (mode) + { + default: // 0 + outColor = gBuffer0; + break; + case 1: + outColor = gBuffer1; + break; + case 2: + outColor.rgb = UnpackGBufferNormal(gBuffer2.rgb) * 0.5 + 0.5; // Unpack normal & normalize 0..1 + break; + case 3: + outColor.r = gBuffer0.a; + outColor.g = 1.0 - gBuffer1.a; // Occlusion, invert for sanity + outColor.b = gBuffer2.a; + break; + case 4: + outColor.r = Linear01DepthFromNear(gBufferDepth, _ZBufferParams); // Linear depth + #if defined(GBUFFER_FEATURE_SHADOWMASK) + outColor.g = gBufferShadowMask.a; // Shadow mask alpha channel + #endif + #if defined(GBUFFER_FEATURE_RENDERING_LAYERS) + outColor.b = half((gBufferRenderingLayers >> 24) & uint(255)) / (half)255.0; // Rendering Layers upper bits (only matters for 32bit RL) + #endif + break; + case 5: + #if defined(GBUFFER_FEATURE_RENDERING_LAYERS) + outColor.r = half((gBufferRenderingLayers >> 0) & uint(255)) / (half)255.0; // Unpack uint32 -> unorm8888 + outColor.g = half((gBufferRenderingLayers >> 8) & uint(255)) / (half)255.0; + outColor.b = half((gBufferRenderingLayers >> 16) & uint(255)) / (half)255.0; + #endif + break; + case 6: + #if defined(GBUFFER_FEATURE_SHADOWMASK) + outColor = gBufferShadowMask; + #endif + break; + } + + // The testframework / refimages don't handle non-transparent alpha well, + // force alpha to 1 for visual test purposes. + // Comment out to check GBuffer alpha channels. + outColor.a = 1; + } + ENDHLSL + } + } + + FallBack "Hidden/Universal Render Pipeline/FallbackError" +} diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred/Deferred_GBuffer_Visualization_Shader.shader.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Deferred_GBuffer_Visualization_Shader.shader.meta similarity index 100% rename from Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred/Deferred_GBuffer_Visualization_Shader.shader.meta rename to Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Deferred_GBuffer_Visualization_Shader.shader.meta diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred/Deferred_Lit_B.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Deferred_Lit_B.mat similarity index 98% rename from Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred/Deferred_Lit_B.mat rename to Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Deferred_Lit_B.mat index 3d0922f3f77..30defe1ab63 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred/Deferred_Lit_B.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Deferred_Lit_B.mat @@ -101,7 +101,7 @@ Material: - _GlossMapScale: 0 - _Glossiness: 0 - _GlossyReflections: 0 - - _Metallic: 0 + - _Metallic: 0.1 - _OcclusionStrength: 1 - _Parallax: 0.005 - _QueueOffset: 0 @@ -113,6 +113,7 @@ Material: - _SrcBlendAlpha: 1 - _Surface: 0 - _WorkflowMode: 1 + - _XRMotionVectorsPass: 1 - _ZWrite: 1 m_Colors: - _BaseColor: {r: 0, g: 0, b: 0.7529412, a: 1} @@ -133,4 +134,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred/Deferred_Lit_B.mat.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Deferred_Lit_B.mat.meta similarity index 100% rename from Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred/Deferred_Lit_B.mat.meta rename to Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Deferred_Lit_B.mat.meta diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred/Deferred_Lit_Graph.shadergraph b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Deferred_Lit_Graph.shadergraph similarity index 99% rename from Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred/Deferred_Lit_Graph.shadergraph rename to Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Deferred_Lit_Graph.shadergraph index 3ab8f5bc0ec..12cd1a3f97f 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred/Deferred_Lit_Graph.shadergraph +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Deferred_Lit_Graph.shadergraph @@ -116,6 +116,7 @@ "m_OutputNode": { "m_Id": "" }, + "m_SubDatas": [], "m_ActiveTargets": [ { "m_Id": "b439bb209ef84a4aa08c77adf19ac190" @@ -554,6 +555,7 @@ "m_AlphaClip": false, "m_CastShadows": true, "m_ReceiveShadows": true, + "m_DisableTint": false, "m_AdditionalMotionVectorMode": 0, "m_AlembicMotionVectors": false, "m_SupportsLODCrossFade": false, @@ -619,7 +621,7 @@ "m_Hidden": false, "m_ShaderOutputName": "Metallic", "m_StageCapability": 2, - "m_Value": 0.0, + "m_Value": 0.10000000149011612, "m_DefaultValue": 0.0, "m_Labels": [] } diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred/Deferred_Lit_Graph.shadergraph.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Deferred_Lit_Graph.shadergraph.meta similarity index 100% rename from Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred/Deferred_Lit_Graph.shadergraph.meta rename to Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Deferred_Lit_Graph.shadergraph.meta diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred/Deferred_Lit_SG_V.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Deferred_Lit_SG_V.mat similarity index 99% rename from Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred/Deferred_Lit_SG_V.mat rename to Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Deferred_Lit_SG_V.mat index 4fa43b2c75c..ee19a1ac381 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred/Deferred_Lit_SG_V.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Deferred_Lit_SG_V.mat @@ -151,4 +151,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred/Deferred_Lit_SG_V.mat.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Deferred_Lit_SG_V.mat.meta similarity index 100% rename from Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred/Deferred_Lit_SG_V.mat.meta rename to Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Deferred_Lit_SG_V.mat.meta diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred/Deferred_SimpleLit_G.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Deferred_SimpleLit_G.mat similarity index 97% rename from Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred/Deferred_SimpleLit_G.mat rename to Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Deferred_SimpleLit_G.mat index 870c414a2f2..4f2df5d8ccf 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred/Deferred_SimpleLit_G.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Deferred_SimpleLit_G.mat @@ -118,12 +118,13 @@ Material: - _SrcBlendAlpha: 1 - _Surface: 0 - _WorkflowMode: 1 + - _XRMotionVectorsPass: 1 - _ZWrite: 1 m_Colors: - _BaseColor: {r: 0, g: 0.7529412, b: 0, a: 1} - _Color: {r: 0, g: 0.7529412, b: 0, a: 1} - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - - _SpecColor: {r: 1, g: 1, b: 1, a: 0.7} + - _SpecColor: {r: 0, g: 0.49803922, b: 1, a: 0.7} m_BuildTextureStacks: [] m_AllowLocking: 1 --- !u!114 &6380172852636000544 @@ -138,4 +139,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred/Deferred_SimpleLit_G.mat.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Deferred_SimpleLit_G.mat.meta similarity index 100% rename from Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred/Deferred_SimpleLit_G.mat.meta rename to Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Deferred_SimpleLit_G.mat.meta diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred/Deferred_Unlit_Graph.shadergraph b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Deferred_Unlit_Graph.shadergraph similarity index 99% rename from Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred/Deferred_Unlit_Graph.shadergraph rename to Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Deferred_Unlit_Graph.shadergraph index 855915c7467..bb8afc7e9b3 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred/Deferred_Unlit_Graph.shadergraph +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Deferred_Unlit_Graph.shadergraph @@ -86,6 +86,7 @@ "m_OutputNode": { "m_Id": "" }, + "m_SubDatas": [], "m_ActiveTargets": [ { "m_Id": "44ebde2d057846548c1fb21ee177b88c" @@ -188,6 +189,7 @@ "m_AlphaClip": false, "m_CastShadows": true, "m_ReceiveShadows": true, + "m_DisableTint": false, "m_AdditionalMotionVectorMode": 0, "m_AlembicMotionVectors": false, "m_SupportsLODCrossFade": false, diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred/Deferred_Unlit_Graph.shadergraph.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Deferred_Unlit_Graph.shadergraph.meta similarity index 100% rename from Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred/Deferred_Unlit_Graph.shadergraph.meta rename to Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Deferred_Unlit_Graph.shadergraph.meta diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred/Deferred_Unlit_R.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Deferred_Unlit_R.mat similarity index 99% rename from Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred/Deferred_Unlit_R.mat rename to Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Deferred_Unlit_R.mat index e6bace6726f..94632becc98 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred/Deferred_Unlit_R.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Deferred_Unlit_R.mat @@ -135,4 +135,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred/Deferred_Unlit_R.mat.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Deferred_Unlit_R.mat.meta similarity index 100% rename from Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred/Deferred_Unlit_R.mat.meta rename to Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Deferred_Unlit_R.mat.meta diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred/Deferred_Unlit_SG_Y.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Deferred_Unlit_SG_Y.mat similarity index 99% rename from Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred/Deferred_Unlit_SG_Y.mat rename to Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Deferred_Unlit_SG_Y.mat index 6fdda6c6300..9ccfc6574ab 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred/Deferred_Unlit_SG_Y.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Deferred_Unlit_SG_Y.mat @@ -136,4 +136,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred/Deferred_Unlit_SG_Y.mat.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Deferred_Unlit_SG_Y.mat.meta similarity index 100% rename from Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred/Deferred_Unlit_SG_Y.mat.meta rename to Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Deferred_Unlit_SG_Y.mat.meta diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/LightingData.asset b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/LightingData.asset new file mode 100644 index 00000000000..c46e3060698 Binary files /dev/null and b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/LightingData.asset differ diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/LightingData.asset.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/LightingData.asset.meta new file mode 100644 index 00000000000..56a9098b1d5 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/LightingData.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6ff54c6bedcf13d41b88955fce7910d6 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 112000000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Lightmap-0_comp_dir.png b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Lightmap-0_comp_dir.png new file mode 100644 index 00000000000..5b58244c9e3 Binary files /dev/null and b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Lightmap-0_comp_dir.png differ diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Lightmap-0_comp_dir.png.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Lightmap-0_comp_dir.png.meta new file mode 100644 index 00000000000..59e38aec938 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Lightmap-0_comp_dir.png.meta @@ -0,0 +1,169 @@ +fileFormatVersion: 2 +guid: 7ef4488260ecaf24bbbbf29b34a89963 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 3 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 12 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 4 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 2 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: GameCoreXboxOne + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: CloudRendering + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Switch + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: GameCoreScarlett + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + customData: + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Lightmap-0_comp_light.exr b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Lightmap-0_comp_light.exr new file mode 100644 index 00000000000..6b2c76922bd Binary files /dev/null and b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Lightmap-0_comp_light.exr differ diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Lightmap-0_comp_light.exr.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Lightmap-0_comp_light.exr.meta new file mode 100644 index 00000000000..ebadb10c824 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Lightmap-0_comp_light.exr.meta @@ -0,0 +1,169 @@ +fileFormatVersion: 2 +guid: eeee5ba08eeb061459ce538e4caad652 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 3 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 0 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 6 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 4 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 2 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: GameCoreXboxOne + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: CloudRendering + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Switch + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: GameCoreScarlett + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + customData: + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Lightmap-0_comp_shadowmask.png b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Lightmap-0_comp_shadowmask.png new file mode 100644 index 00000000000..b4df71dcba7 Binary files /dev/null and b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Lightmap-0_comp_shadowmask.png differ diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Lightmap-0_comp_shadowmask.png.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Lightmap-0_comp_shadowmask.png.meta new file mode 100644 index 00000000000..f30aed0929e --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Lightmap-0_comp_shadowmask.png.meta @@ -0,0 +1,169 @@ +fileFormatVersion: 2 +guid: 47926ae73a5400642a693d6100534ba5 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 3 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 0 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 11 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 4 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 2 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: GameCoreXboxOne + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: CloudRendering + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Switch + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: GameCoreScarlett + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + customData: + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Lightmap-1_comp_dir.png b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Lightmap-1_comp_dir.png new file mode 100644 index 00000000000..f5ac4f8108c Binary files /dev/null and b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Lightmap-1_comp_dir.png differ diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Lightmap-1_comp_dir.png.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Lightmap-1_comp_dir.png.meta new file mode 100644 index 00000000000..5b18d318a7a --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Lightmap-1_comp_dir.png.meta @@ -0,0 +1,169 @@ +fileFormatVersion: 2 +guid: 97c253bd1a680d64d83283f82b4953c9 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 3 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 12 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 4 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 2 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: GameCoreXboxOne + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: CloudRendering + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Switch + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: GameCoreScarlett + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + customData: + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Lightmap-1_comp_light.exr b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Lightmap-1_comp_light.exr new file mode 100644 index 00000000000..815772f117d Binary files /dev/null and b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Lightmap-1_comp_light.exr differ diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Lightmap-1_comp_light.exr.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Lightmap-1_comp_light.exr.meta new file mode 100644 index 00000000000..806b1e59795 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Lightmap-1_comp_light.exr.meta @@ -0,0 +1,169 @@ +fileFormatVersion: 2 +guid: d71558c10e89c26428a3c9499e06d8af +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 3 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 0 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 6 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 4 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 2 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: GameCoreXboxOne + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: CloudRendering + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Switch + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: GameCoreScarlett + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + customData: + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Lightmap-1_comp_shadowmask.png b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Lightmap-1_comp_shadowmask.png new file mode 100644 index 00000000000..d03d7732235 Binary files /dev/null and b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Lightmap-1_comp_shadowmask.png differ diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Lightmap-1_comp_shadowmask.png.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Lightmap-1_comp_shadowmask.png.meta new file mode 100644 index 00000000000..0f9971ed125 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred/Lightmap-1_comp_shadowmask.png.meta @@ -0,0 +1,169 @@ +fileFormatVersion: 2 +guid: 89f97db8a88960e46a69088c4db890a9 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 3 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 0 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 11 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 4 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 2 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: GameCoreXboxOne + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: CloudRendering + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Switch + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: GameCoreScarlett + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + customData: + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred_GBuffer.unity b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred_GBuffer.unity similarity index 91% rename from Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred_GBuffer.unity rename to Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred_GBuffer.unity index e26bc7a1178..48619d8dea4 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred_GBuffer.unity +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred_GBuffer.unity @@ -38,12 +38,12 @@ RenderSettings: m_ReflectionIntensity: 1 m_CustomReflection: {fileID: 0} m_Sun: {fileID: 0} - m_IndirectSpecularColor: {r: 0.18028378, g: 0.22571412, b: 0.30692285, a: 1} m_UseRadianceAmbientProbe: 0 --- !u!157 &3 LightmapSettings: m_ObjectHideFlags: 0 - serializedVersion: 12 + serializedVersion: 13 + m_BakeOnSceneLoad: 0 m_GISettings: serializedVersion: 2 m_BounceScale: 1 @@ -178,6 +178,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -199,6 +202,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -219,129 +223,12 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 65625740} serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: -6, y: 2, z: 0} m_LocalScale: {x: 4, y: 4, z: 4} m_ConstrainProportionsScale: 1 m_Children: [] - m_Father: {fileID: 0} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &202023670 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 202023673} - - component: {fileID: 202023672} - - component: {fileID: 202023671} - m_Layer: 0 - m_Name: Point Light - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &202023671 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 202023670} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Version: 3 - m_UsePipelineSettings: 1 - m_AdditionalLightsShadowResolutionTier: 2 - m_LightLayerMask: 1 - m_RenderingLayers: 1 - m_CustomShadowLayers: 0 - m_ShadowLayerMask: 1 - m_ShadowRenderingLayers: 1 - m_LightCookieSize: {x: 1, y: 1} - m_LightCookieOffset: {x: 0, y: 0} - m_SoftShadowQuality: 0 ---- !u!108 &202023672 -Light: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 202023670} - m_Enabled: 1 - serializedVersion: 11 - m_Type: 2 - m_Color: {r: 1, g: 0, b: 0, a: 1} - m_Intensity: 1 - m_Range: 20 - m_SpotAngle: 30 - m_InnerSpotAngle: 21.80208 - m_CookieSize: 10 - m_Shadows: - m_Type: 0 - m_Resolution: -1 - m_CustomResolution: -1 - m_Strength: 1 - m_Bias: 0.05 - m_NormalBias: 0.4 - m_NearPlane: 0.2 - m_CullingMatrixOverride: - e00: 1 - e01: 0 - e02: 0 - e03: 0 - e10: 0 - e11: 1 - e12: 0 - e13: 0 - e20: 0 - e21: 0 - e22: 1 - e23: 0 - e30: 0 - e31: 0 - e32: 0 - e33: 1 - m_UseCullingMatrixOverride: 0 - m_Cookie: {fileID: 0} - m_DrawHalo: 0 - m_Flare: {fileID: 0} - m_RenderMode: 0 - m_CullingMask: - serializedVersion: 2 - m_Bits: 4294967295 - m_RenderingLayerMask: 1 - m_Lightmapping: 4 - m_LightShadowCasterMode: 0 - m_AreaSize: {x: 1, y: 1} - m_BounceIntensity: 1 - m_ColorTemperature: 6570 - m_UseColorTemperature: 0 - m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} - m_UseBoundingSphereOverride: 0 - m_UseViewFrustumForShadowCasterCull: 1 - m_ShadowRadius: 0 - m_ShadowAngle: 0 ---- !u!4 &202023673 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 202023670} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: -5, z: -1} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} + m_Father: {fileID: 1449545855} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &318533621 GameObject: @@ -402,6 +289,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -423,6 +313,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -443,12 +334,12 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 318533621} serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 6, y: 2, z: 0} m_LocalScale: {x: 4, y: 4, z: 4} m_ConstrainProportionsScale: 1 m_Children: [] - m_Father: {fileID: 0} + m_Father: {fileID: 1449545855} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &570808776 GameObject: @@ -509,6 +400,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -530,6 +424,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -550,12 +445,12 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 570808776} serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 2, y: 2, z: 0} m_LocalScale: {x: 4, y: 4, z: 4} m_ConstrainProportionsScale: 1 m_Children: [] - m_Father: {fileID: 0} + m_Father: {fileID: 1449545855} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &829075400 GameObject: @@ -616,6 +511,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -637,6 +535,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -657,12 +556,12 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 829075400} serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: -2, z: 0} m_LocalScale: {x: 4, y: 4, z: 4} m_ConstrainProportionsScale: 1 m_Children: [] - m_Father: {fileID: 0} + m_Father: {fileID: 1449545855} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &878973496 GameObject: @@ -723,6 +622,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -744,6 +646,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -764,12 +667,12 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 878973496} serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + 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_Father: {fileID: 1449545855} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &961636401 GameObject: @@ -807,7 +710,7 @@ MonoBehaviour: m_RequiresOpaqueTextureOption: 2 m_CameraType: 0 m_Cameras: [] - m_RendererIndex: 17 + m_RendererIndex: -1 m_VolumeLayerMask: serializedVersion: 2 m_Bits: 1 @@ -826,14 +729,14 @@ MonoBehaviour: m_ScreenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0} m_RequiresDepthTexture: 0 m_RequiresColorTexture: 0 - m_Version: 2 m_TaaSettings: - quality: 3 - frameInfluence: 0.1 - jitterScale: 1 - mipBias: 0 - varianceClampScale: 0.9 - contrastAdaptiveSharpening: 0 + m_Quality: 3 + m_FrameInfluence: 0.1 + m_JitterScale: 1 + m_MipBias: 0 + m_VarianceClampScale: 0.9 + m_ContrastAdaptiveSharpening: 0 + m_Version: 2 --- !u!20 &961636404 Camera: m_ObjectHideFlags: 0 @@ -865,9 +768,9 @@ Camera: y: 0 width: 1 height: 1 - near clip plane: 0.3 - far clip plane: 1000 - field of view: 60 + near clip plane: 7.3 + far clip plane: 7.65 + field of view: 10 orthographic: 0 orthographic size: 5 m_Depth: -1 @@ -894,7 +797,7 @@ Transform: m_GameObject: {fileID: 961636401} serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -7.85} + m_LocalPosition: {x: 0, y: 0, z: -7.6} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] @@ -920,7 +823,7 @@ MonoBehaviour: PerPixelGammaThreshold: 0.003921569 PerPixelAlphaThreshold: 0.003921569 RMSEThreshold: 0 - AverageCorrectnessThreshold: 0.0025 + AverageCorrectnessThreshold: 0.001 IncorrectPixelsThreshold: 0.0000038146973 UseHDR: 0 UseBackBuffer: 0 @@ -929,7 +832,9 @@ MonoBehaviour: ActivePixelTests: -1 WaitFrames: 0 XRCompatible: 1 + gpuDrivenCompatible: 1 CheckMemoryAllocation: 1 + renderBackendCompatibility: 2 SetBackBufferResolution: 0 --- !u!1 &1010744422 GameObject: @@ -961,17 +866,23 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} m_Name: m_EditorClassIdentifier: - m_Version: 3 m_UsePipelineSettings: 1 m_AdditionalLightsShadowResolutionTier: 2 - m_LightLayerMask: 1 - m_RenderingLayers: 1 m_CustomShadowLayers: 0 - m_ShadowLayerMask: 1 - m_ShadowRenderingLayers: 1 m_LightCookieSize: {x: 1, y: 1} m_LightCookieOffset: {x: 0, y: 0} m_SoftShadowQuality: 0 + m_RenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_ShadowRenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_Version: 4 + m_LightLayerMask: 1 + m_ShadowLayerMask: 1 + m_RenderingLayers: 1 + m_ShadowRenderingLayers: 1 --- !u!108 &1010744424 Light: m_ObjectHideFlags: 0 @@ -980,14 +891,14 @@ Light: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1010744422} m_Enabled: 1 - serializedVersion: 11 + serializedVersion: 12 m_Type: 1 m_Color: {r: 1, g: 1, b: 1, a: 1} m_Intensity: 1 m_Range: 10 m_SpotAngle: 30 m_InnerSpotAngle: 21.80208 - m_CookieSize: 10 + m_CookieSize2D: {x: 10, y: 10} m_Shadows: m_Type: 2 m_Resolution: -1 @@ -1031,8 +942,12 @@ Light: m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} m_UseBoundingSphereOverride: 0 m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 m_ShadowRadius: 0 m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 --- !u!4 &1010744425 Transform: m_ObjectHideFlags: 0 @@ -1107,6 +1022,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -1128,6 +1046,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -1148,12 +1067,12 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1190471343} serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: -2, y: 2, z: 0} m_LocalScale: {x: 4, y: 4, z: 4} m_ConstrainProportionsScale: 1 m_Children: [] - m_Father: {fileID: 0} + m_Father: {fileID: 1449545855} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1269189928 GameObject: @@ -1214,6 +1133,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -1235,6 +1157,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -1255,11 +1178,51 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1269189928} serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 4, y: -2, z: 0} m_LocalScale: {x: 4, y: 4, z: 4} m_ConstrainProportionsScale: 1 m_Children: [] + m_Father: {fileID: 1449545855} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1449545854 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1449545855} + m_Layer: 0 + m_Name: Root + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1449545855 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1449545854} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.15, y: 0.15, z: 0.15} + m_ConstrainProportionsScale: 1 + m_Children: + - {fileID: 1521124719} + - {fileID: 65625744} + - {fileID: 1190471347} + - {fileID: 570808780} + - {fileID: 318533625} + - {fileID: 1458745972} + - {fileID: 829075404} + - {fileID: 1269189932} + - {fileID: 878973500} m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1458745968 @@ -1321,6 +1284,9 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -1342,6 +1308,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -1362,12 +1329,12 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1458745968} serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: -4, y: -2, z: 0} m_LocalScale: {x: 4, y: 4, z: 4} m_ConstrainProportionsScale: 1 m_Children: [] - m_Father: {fileID: 0} + m_Father: {fileID: 1449545855} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1521124715 GameObject: @@ -1428,10 +1395,13 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 2100000, guid: da9b80098755d4473bd0041bd485d6ed, type: 2} + - {fileID: 2100000, guid: f30773260a1c741f8a7c39320a569fb4, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -1449,6 +1419,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -1469,12 +1440,12 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1521124715} serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 16, y: 9, z: 0.1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 0} + m_Father: {fileID: 1449545855} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1698873373 GameObject: @@ -1505,7 +1476,8 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 4f1decc188d2f3146ab93291a5c743e9, type: 3} m_Name: m_EditorClassIdentifier: - qualityLevelIndex: 0 + qualityLevelIndex: 10 + callbacks: [] --- !u!4 &1698873375 Transform: m_ObjectHideFlags: 0 @@ -1528,13 +1500,4 @@ SceneRoots: - {fileID: 1698873375} - {fileID: 961636405} - {fileID: 1010744425} - - {fileID: 1521124719} - - {fileID: 65625744} - - {fileID: 1190471347} - - {fileID: 570808780} - - {fileID: 318533625} - - {fileID: 1458745972} - - {fileID: 829075404} - - {fileID: 1269189932} - - {fileID: 202023673} - - {fileID: 878973500} + - {fileID: 1449545855} diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred_GBuffer.unity.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred_GBuffer.unity.meta similarity index 100% rename from Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred_GBuffer.unity.meta rename to Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred_GBuffer.unity.meta diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred_GBuffer_Alpha.unity b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred_GBuffer_RL.unity similarity index 90% rename from Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred_GBuffer_Alpha.unity rename to Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred_GBuffer_RL.unity index d87f9bd2e6c..f3d4ca7c4c3 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/060_Deferred_GBuffer_Alpha.unity +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred_GBuffer_RL.unity @@ -38,12 +38,12 @@ RenderSettings: m_ReflectionIntensity: 1 m_CustomReflection: {fileID: 0} m_Sun: {fileID: 0} - m_IndirectSpecularColor: {r: 0.18028378, g: 0.22571412, b: 0.30692285, a: 1} m_UseRadianceAmbientProbe: 0 --- !u!157 &3 LightmapSettings: m_ObjectHideFlags: 0 - serializedVersion: 12 + serializedVersion: 13 + m_BakeOnSceneLoad: 0 m_GISettings: serializedVersion: 2 m_BounceScale: 1 @@ -178,7 +178,10 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 - m_RenderingLayerMask: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 2 m_RendererPriority: 0 m_Materials: - {fileID: 2100000, guid: d0341a47ec4c841ad86e3bbcbf7ef84f, type: 2} @@ -199,6 +202,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -219,129 +223,12 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 65625740} serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: -6, y: 2, z: 0} m_LocalScale: {x: 4, y: 4, z: 4} m_ConstrainProportionsScale: 1 m_Children: [] - m_Father: {fileID: 0} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &202023670 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 202023673} - - component: {fileID: 202023672} - - component: {fileID: 202023671} - m_Layer: 0 - m_Name: Point Light - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &202023671 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 202023670} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Version: 3 - m_UsePipelineSettings: 1 - m_AdditionalLightsShadowResolutionTier: 2 - m_LightLayerMask: 1 - m_RenderingLayers: 1 - m_CustomShadowLayers: 0 - m_ShadowLayerMask: 1 - m_ShadowRenderingLayers: 1 - m_LightCookieSize: {x: 1, y: 1} - m_LightCookieOffset: {x: 0, y: 0} - m_SoftShadowQuality: 0 ---- !u!108 &202023672 -Light: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 202023670} - m_Enabled: 1 - serializedVersion: 11 - m_Type: 2 - m_Color: {r: 1, g: 0, b: 0, a: 1} - m_Intensity: 1 - m_Range: 20 - m_SpotAngle: 30 - m_InnerSpotAngle: 21.80208 - m_CookieSize: 10 - m_Shadows: - m_Type: 0 - m_Resolution: -1 - m_CustomResolution: -1 - m_Strength: 1 - m_Bias: 0.05 - m_NormalBias: 0.4 - m_NearPlane: 0.2 - m_CullingMatrixOverride: - e00: 1 - e01: 0 - e02: 0 - e03: 0 - e10: 0 - e11: 1 - e12: 0 - e13: 0 - e20: 0 - e21: 0 - e22: 1 - e23: 0 - e30: 0 - e31: 0 - e32: 0 - e33: 1 - m_UseCullingMatrixOverride: 0 - m_Cookie: {fileID: 0} - m_DrawHalo: 0 - m_Flare: {fileID: 0} - m_RenderMode: 0 - m_CullingMask: - serializedVersion: 2 - m_Bits: 4294967295 - m_RenderingLayerMask: 1 - m_Lightmapping: 4 - m_LightShadowCasterMode: 0 - m_AreaSize: {x: 1, y: 1} - m_BounceIntensity: 1 - m_ColorTemperature: 6570 - m_UseColorTemperature: 0 - m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} - m_UseBoundingSphereOverride: 0 - m_UseViewFrustumForShadowCasterCull: 1 - m_ShadowRadius: 0 - m_ShadowAngle: 0 ---- !u!4 &202023673 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 202023670} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: -5, z: -1} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} + m_Father: {fileID: 1449545855} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &318533621 GameObject: @@ -402,7 +289,10 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 - m_RenderingLayerMask: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 15 m_RendererPriority: 0 m_Materials: - {fileID: 2100000, guid: 9f88666de509042afafe5f55bc937b74, type: 2} @@ -423,6 +313,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -443,12 +334,12 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 318533621} serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 6, y: 2, z: 0} m_LocalScale: {x: 4, y: 4, z: 4} m_ConstrainProportionsScale: 1 m_Children: [] - m_Father: {fileID: 0} + m_Father: {fileID: 1449545855} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &570808776 GameObject: @@ -509,7 +400,10 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 - m_RenderingLayerMask: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 7 m_RendererPriority: 0 m_Materials: - {fileID: 2100000, guid: 0d1047310b0ac4c56a8e4436385f2347, type: 2} @@ -530,6 +424,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -550,12 +445,12 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 570808776} serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 2, y: 2, z: 0} m_LocalScale: {x: 4, y: 4, z: 4} m_ConstrainProportionsScale: 1 m_Children: [] - m_Father: {fileID: 0} + m_Father: {fileID: 1449545855} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &829075400 GameObject: @@ -616,7 +511,10 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 - m_RenderingLayerMask: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 63 m_RendererPriority: 0 m_Materials: - {fileID: 2100000, guid: d4d9a10f9be044c0eb903a5c8a00fa25, type: 2} @@ -637,6 +535,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -657,12 +556,123 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 829075400} serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: -2, z: 0} m_LocalScale: {x: 4, y: 4, z: 4} m_ConstrainProportionsScale: 1 m_Children: [] - m_Father: {fileID: 0} + m_Father: {fileID: 1449545855} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &878973496 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 878973500} + - component: {fileID: 878973499} + - component: {fileID: 878973498} + - component: {fileID: 878973497} + m_Layer: 0 + m_Name: ShaderRef + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!65 &878973497 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 878973496} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &878973498 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 878973496} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &878973499 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 878973496} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &878973500 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 878973496} + 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: 1449545855} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &961636401 GameObject: @@ -700,7 +710,7 @@ MonoBehaviour: m_RequiresOpaqueTextureOption: 2 m_CameraType: 0 m_Cameras: [] - m_RendererIndex: 18 + m_RendererIndex: -1 m_VolumeLayerMask: serializedVersion: 2 m_Bits: 1 @@ -719,14 +729,14 @@ MonoBehaviour: m_ScreenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0} m_RequiresDepthTexture: 0 m_RequiresColorTexture: 0 - m_Version: 2 m_TaaSettings: - quality: 3 - frameInfluence: 0.1 - jitterScale: 1 - mipBias: 0 - varianceClampScale: 0.9 - contrastAdaptiveSharpening: 0 + m_Quality: 3 + m_FrameInfluence: 0.1 + m_JitterScale: 1 + m_MipBias: 0 + m_VarianceClampScale: 0.9 + m_ContrastAdaptiveSharpening: 0 + m_Version: 2 --- !u!20 &961636404 Camera: m_ObjectHideFlags: 0 @@ -758,9 +768,9 @@ Camera: y: 0 width: 1 height: 1 - near clip plane: 0.3 - far clip plane: 1000 - field of view: 60 + near clip plane: 7.3 + far clip plane: 7.65 + field of view: 10 orthographic: 0 orthographic size: 5 m_Depth: -1 @@ -787,7 +797,7 @@ Transform: m_GameObject: {fileID: 961636401} serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -7.85} + m_LocalPosition: {x: 0, y: 0, z: -7.6} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] @@ -813,7 +823,7 @@ MonoBehaviour: PerPixelGammaThreshold: 0.003921569 PerPixelAlphaThreshold: 0.003921569 RMSEThreshold: 0 - AverageCorrectnessThreshold: 0.0025 + AverageCorrectnessThreshold: 0.001 IncorrectPixelsThreshold: 0.0000038146973 UseHDR: 0 UseBackBuffer: 0 @@ -822,7 +832,9 @@ MonoBehaviour: ActivePixelTests: -1 WaitFrames: 0 XRCompatible: 1 + gpuDrivenCompatible: 1 CheckMemoryAllocation: 1 + renderBackendCompatibility: 2 SetBackBufferResolution: 0 --- !u!1 &1010744422 GameObject: @@ -854,17 +866,23 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} m_Name: m_EditorClassIdentifier: - m_Version: 3 m_UsePipelineSettings: 1 m_AdditionalLightsShadowResolutionTier: 2 - m_LightLayerMask: 1 - m_RenderingLayers: 1 m_CustomShadowLayers: 0 - m_ShadowLayerMask: 1 - m_ShadowRenderingLayers: 1 m_LightCookieSize: {x: 1, y: 1} m_LightCookieOffset: {x: 0, y: 0} m_SoftShadowQuality: 0 + m_RenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_ShadowRenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_Version: 4 + m_LightLayerMask: 1 + m_ShadowLayerMask: 1 + m_RenderingLayers: 1 + m_ShadowRenderingLayers: 1 --- !u!108 &1010744424 Light: m_ObjectHideFlags: 0 @@ -873,14 +891,14 @@ Light: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1010744422} m_Enabled: 1 - serializedVersion: 11 + serializedVersion: 12 m_Type: 1 m_Color: {r: 1, g: 1, b: 1, a: 1} m_Intensity: 1 m_Range: 10 m_SpotAngle: 30 m_InnerSpotAngle: 21.80208 - m_CookieSize: 10 + m_CookieSize2D: {x: 10, y: 10} m_Shadows: m_Type: 2 m_Resolution: -1 @@ -924,8 +942,12 @@ Light: m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} m_UseBoundingSphereOverride: 0 m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 m_ShadowRadius: 0 m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 --- !u!4 &1010744425 Transform: m_ObjectHideFlags: 0 @@ -941,113 +963,6 @@ Transform: m_Children: [] m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} ---- !u!1 &1115557141 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1115557145} - - component: {fileID: 1115557144} - - component: {fileID: 1115557143} - - component: {fileID: 1115557142} - m_Layer: 0 - m_Name: ShaderRef - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!65 &1115557142 -BoxCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1115557141} - m_Material: {fileID: 0} - m_IncludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_ExcludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_LayerOverridePriority: 0 - m_IsTrigger: 0 - m_ProvidesContacts: 0 - m_Enabled: 1 - serializedVersion: 3 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!23 &1115557143 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1115557141} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RayTracingAccelStructBuildFlagsOverride: 0 - m_RayTracingAccelStructBuildFlags: 1 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!33 &1115557144 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1115557141} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!4 &1115557145 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1115557141} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 10} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1190471343 GameObject: m_ObjectHideFlags: 0 @@ -1107,7 +1022,10 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 - m_RenderingLayerMask: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 3 m_RendererPriority: 0 m_Materials: - {fileID: 2100000, guid: 7ad1b489ce18c4b4cbd0a851deb9e10d, type: 2} @@ -1128,6 +1046,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -1148,12 +1067,12 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1190471343} serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: -2, y: 2, z: 0} m_LocalScale: {x: 4, y: 4, z: 4} m_ConstrainProportionsScale: 1 m_Children: [] - m_Father: {fileID: 0} + m_Father: {fileID: 1449545855} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1269189928 GameObject: @@ -1214,7 +1133,10 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 - m_RenderingLayerMask: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 4294967295 m_RendererPriority: 0 m_Materials: - {fileID: 2100000, guid: c67bc245325b24fabb57406085ff3cf9, type: 2} @@ -1235,6 +1157,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -1255,11 +1178,51 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1269189928} serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 4, y: -2, z: 0} m_LocalScale: {x: 4, y: 4, z: 4} m_ConstrainProportionsScale: 1 m_Children: [] + m_Father: {fileID: 1449545855} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1449545854 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1449545855} + m_Layer: 0 + m_Name: Root + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1449545855 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1449545854} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.15, y: 0.15, z: 0.15} + m_ConstrainProportionsScale: 1 + m_Children: + - {fileID: 1521124719} + - {fileID: 65625744} + - {fileID: 1190471347} + - {fileID: 570808780} + - {fileID: 318533625} + - {fileID: 1458745972} + - {fileID: 829075404} + - {fileID: 1269189932} + - {fileID: 878973500} m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1458745968 @@ -1321,7 +1284,10 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 - m_RenderingLayerMask: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 31 m_RendererPriority: 0 m_Materials: - {fileID: 2100000, guid: 7ce354a4fbd5f4da29ab84be2123934a, type: 2} @@ -1342,6 +1308,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -1362,12 +1329,12 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1458745968} serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: -4, y: -2, z: 0} m_LocalScale: {x: 4, y: 4, z: 4} m_ConstrainProportionsScale: 1 m_Children: [] - m_Father: {fileID: 0} + m_Father: {fileID: 1449545855} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1521124715 GameObject: @@ -1428,10 +1395,13 @@ MeshRenderer: m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 2100000, guid: da9b80098755d4473bd0041bd485d6ed, type: 2} + - {fileID: 2100000, guid: f30773260a1c741f8a7c39320a569fb4, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -1449,6 +1419,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -1469,12 +1440,12 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1521124715} serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 16, y: 9, z: 0.1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 0} + m_Father: {fileID: 1449545855} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1698873373 GameObject: @@ -1505,7 +1476,8 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 4f1decc188d2f3146ab93291a5c743e9, type: 3} m_Name: m_EditorClassIdentifier: - qualityLevelIndex: 0 + qualityLevelIndex: 11 + callbacks: [] --- !u!4 &1698873375 Transform: m_ObjectHideFlags: 0 @@ -1528,13 +1500,4 @@ SceneRoots: - {fileID: 1698873375} - {fileID: 961636405} - {fileID: 1010744425} - - {fileID: 1521124719} - - {fileID: 65625744} - - {fileID: 1190471347} - - {fileID: 570808780} - - {fileID: 318533625} - - {fileID: 1458745972} - - {fileID: 829075404} - - {fileID: 1269189932} - - {fileID: 202023673} - - {fileID: 1115557145} + - {fileID: 1449545855} diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred_GBuffer_RL.unity.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred_GBuffer_RL.unity.meta new file mode 100644 index 00000000000..55995dcdf9c --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred_GBuffer_RL.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 52cecf6c3df26dc4aa286c58c3984921 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred_GBuffer_SM.unity b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred_GBuffer_SM.unity new file mode 100644 index 00000000000..e680b2ade1b --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred_GBuffer_SM.unity @@ -0,0 +1,1889 @@ +%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: 1 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 12 + m_Resolution: 2 + m_BakeResolution: 40 + m_AtlasSize: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_ReflectionCompression: 2 + m_MixedBakeMode: 2 + m_BakeBackend: 1 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 512 + m_PVRBounces: 2 + m_PVREnvironmentSampleCount: 256 + m_PVREnvironmentReferencePointCount: 2048 + m_PVRFilteringMode: 1 + m_PVRDenoiserTypeDirect: 1 + m_PVRDenoiserTypeIndirect: 1 + m_PVRDenoiserTypeAO: 1 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVREnvironmentMIS: 1 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightProbeSampleCountMultiplier: 4 + m_LightingDataAsset: {fileID: 112000000, guid: 6ff54c6bedcf13d41b88955fce7910d6, + type: 2} + m_LightingSettings: {fileID: 4890085278179872738, guid: 21e7a57e9de4c1641a8080793caace7d, + type: 2} +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 3 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + buildHeightMesh: 0 + maxJobWorkers: 0 + preserveTilesOutsideBounds: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &65625740 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 65625744} + - component: {fileID: 65625743} + - component: {fileID: 65625742} + - component: {fileID: 65625741} + m_Layer: 0 + m_Name: SphereUnlit + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!135 &65625741 +SphereCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 65625740} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Radius: 0.5 + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &65625742 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 65625740} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: d0341a47ec4c841ad86e3bbcbf7ef84f, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &65625743 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 65625740} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &65625744 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 65625740} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -6, y: 2, z: 0} + m_LocalScale: {x: 4, y: 4, z: 4} + m_ConstrainProportionsScale: 1 + m_Children: [] + m_Father: {fileID: 1449545855} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &151237842 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 151237845} + - component: {fileID: 151237844} + - component: {fileID: 151237843} + m_Layer: 0 + m_Name: Spot Light_2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!114 &151237843 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 151237842} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Runtime::UnityEngine.Rendering.Universal.UniversalAdditionalLightData + m_UsePipelineSettings: 1 + m_AdditionalLightsShadowResolutionTier: 2 + m_CustomShadowLayers: 0 + m_LightCookieSize: {x: 1, y: 1} + m_LightCookieOffset: {x: 0, y: 0} + m_SoftShadowQuality: 0 + m_RenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_ShadowRenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_Version: 4 + m_LightLayerMask: 1 + m_ShadowLayerMask: 1 + m_RenderingLayers: 1 + m_ShadowRenderingLayers: 1 +--- !u!108 &151237844 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 151237842} + m_Enabled: 1 + serializedVersion: 12 + m_Type: 0 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Intensity: 1 + m_Range: 2.8992448 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize2D: {x: 10, y: 10} + m_Shadows: + m_Type: 1 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 1 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 +--- !u!4 &151237845 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 151237842} + serializedVersion: 2 + m_LocalRotation: {x: 0.7071068, y: -0, z: -0, w: 0.7071068} + m_LocalPosition: {x: 4, y: 8.486666, z: 0.12666665} + m_LocalScale: {x: 6.666666, y: 6.666666, z: 6.666666} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1449545855} + m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0} +--- !u!1 &318533621 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 318533625} + - component: {fileID: 318533624} + - component: {fileID: 318533623} + - component: {fileID: 318533622} + m_Layer: 0 + m_Name: SphereComplexLit + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!135 &318533622 +SphereCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 318533621} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Radius: 0.5 + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &318533623 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 318533621} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 9f88666de509042afafe5f55bc937b74, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &318533624 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 318533621} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &318533625 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 318533621} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 6, y: 2, z: 0} + m_LocalScale: {x: 4, y: 4, z: 4} + m_ConstrainProportionsScale: 1 + m_Children: [] + m_Father: {fileID: 1449545855} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &570808776 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 570808780} + - component: {fileID: 570808779} + - component: {fileID: 570808778} + - component: {fileID: 570808777} + m_Layer: 0 + m_Name: SphereLit + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!135 &570808777 +SphereCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 570808776} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Radius: 0.5 + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &570808778 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 570808776} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 0d1047310b0ac4c56a8e4436385f2347, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &570808779 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 570808776} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &570808780 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 570808776} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 2, y: 2, z: 0} + m_LocalScale: {x: 4, y: 4, z: 4} + m_ConstrainProportionsScale: 1 + m_Children: [] + m_Father: {fileID: 1449545855} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &829075400 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 829075404} + - component: {fileID: 829075403} + - component: {fileID: 829075402} + - component: {fileID: 829075401} + m_Layer: 0 + m_Name: SphereLit_SG + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!135 &829075401 +SphereCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 829075400} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Radius: 0.5 + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &829075402 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 829075400} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: d4d9a10f9be044c0eb903a5c8a00fa25, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &829075403 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 829075400} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &829075404 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 829075400} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: -2, z: 0} + m_LocalScale: {x: 4, y: 4, z: 4} + m_ConstrainProportionsScale: 1 + m_Children: [] + m_Father: {fileID: 1449545855} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &878973496 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 878973500} + - component: {fileID: 878973499} + - component: {fileID: 878973498} + - component: {fileID: 878973497} + m_Layer: 0 + m_Name: ShaderRef + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!65 &878973497 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 878973496} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &878973498 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 878973496} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &878973499 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 878973496} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &878973500 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 878973496} + 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: 1449545855} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &961636401 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 961636405} + - component: {fileID: 961636404} + - component: {fileID: 961636402} + - component: {fileID: 961636406} + 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 &961636402 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 961636401} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a79441f348de89743a2939f4d699eac1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_RenderShadows: 1 + m_RequiresDepthTextureOption: 2 + m_RequiresOpaqueTextureOption: 2 + m_CameraType: 0 + m_Cameras: [] + m_RendererIndex: -1 + m_VolumeLayerMask: + serializedVersion: 2 + m_Bits: 1 + m_VolumeTrigger: {fileID: 0} + m_VolumeFrameworkUpdateModeOption: 2 + m_RenderPostProcessing: 0 + m_Antialiasing: 0 + m_AntialiasingQuality: 2 + m_StopNaN: 0 + m_Dithering: 0 + m_ClearDepth: 1 + m_AllowXRRendering: 1 + m_AllowHDROutput: 1 + m_UseScreenCoordOverride: 0 + m_ScreenSizeOverride: {x: 0, y: 0, z: 0, w: 0} + m_ScreenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0} + m_RequiresDepthTexture: 0 + m_RequiresColorTexture: 0 + m_TaaSettings: + m_Quality: 3 + m_FrameInfluence: 0.1 + m_JitterScale: 1 + m_MipBias: 0 + m_VarianceClampScale: 0.9 + m_ContrastAdaptiveSharpening: 0 + m_Version: 2 +--- !u!20 &961636404 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 961636401} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_Iso: 200 + m_ShutterSpeed: 0.005 + m_Aperture: 16 + m_FocusDistance: 10 + m_FocalLength: 50 + m_BladeCount: 5 + m_Curvature: {x: 2, y: 11} + m_BarrelClipping: 0.25 + m_Anamorphism: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 7.3 + far clip plane: 7.65 + field of view: 10 + orthographic: 0 + orthographic size: 5 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &961636405 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 961636401} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -7.6} + 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 &961636406 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 961636401} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 73231aa468d81ea49bc3d914080de185, type: 3} + m_Name: + m_EditorClassIdentifier: + ImageComparisonSettings: + TargetWidth: 960 + TargetHeight: 540 + TargetMSAASamples: 4 + PerPixelCorrectnessThreshold: 0.001 + PerPixelGammaThreshold: 0.003921569 + PerPixelAlphaThreshold: 0.003921569 + RMSEThreshold: 0 + AverageCorrectnessThreshold: 0.001 + IncorrectPixelsThreshold: 0.0000038146973 + UseHDR: 0 + UseBackBuffer: 0 + ImageResolution: 3 + ActiveImageTests: 1 + ActivePixelTests: -1 + WaitFrames: 0 + XRCompatible: 1 + gpuDrivenCompatible: 1 + CheckMemoryAllocation: 1 + renderBackendCompatibility: 2 + SetBackBufferResolution: 0 +--- !u!1 &1010744422 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1010744425} + - component: {fileID: 1010744424} + - component: {fileID: 1010744423} + m_Layer: 0 + m_Name: Directional Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!114 &1010744423 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1010744422} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UsePipelineSettings: 1 + m_AdditionalLightsShadowResolutionTier: 2 + m_CustomShadowLayers: 0 + m_LightCookieSize: {x: 1, y: 1} + m_LightCookieOffset: {x: 0, y: 0} + m_SoftShadowQuality: 0 + m_RenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_ShadowRenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_Version: 4 + m_LightLayerMask: 1 + m_ShadowLayerMask: 1 + m_RenderingLayers: 1 + m_ShadowRenderingLayers: 1 +--- !u!108 &1010744424 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1010744422} + m_Enabled: 1 + serializedVersion: 12 + m_Type: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Intensity: 1 + m_Range: 10 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize2D: {x: 10, y: 10} + m_Shadows: + m_Type: 2 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 1 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 1 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 +--- !u!4 &1010744425 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1010744422} + serializedVersion: 2 + m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} + m_LocalPosition: {x: 0, y: 3, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} +--- !u!1 &1108158146 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1108158149} + - component: {fileID: 1108158148} + - component: {fileID: 1108158147} + m_Layer: 0 + m_Name: Spot Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!114 &1108158147 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1108158146} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Runtime::UnityEngine.Rendering.Universal.UniversalAdditionalLightData + m_UsePipelineSettings: 1 + m_AdditionalLightsShadowResolutionTier: 2 + m_CustomShadowLayers: 0 + m_LightCookieSize: {x: 1, y: 1} + m_LightCookieOffset: {x: 0, y: 0} + m_SoftShadowQuality: 0 + m_RenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_ShadowRenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_Version: 4 + m_LightLayerMask: 1 + m_ShadowLayerMask: 1 + m_RenderingLayers: 1 + m_ShadowRenderingLayers: 1 +--- !u!108 &1108158148 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1108158146} + m_Enabled: 1 + serializedVersion: 12 + m_Type: 0 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Intensity: 1 + m_Range: 2.8992448 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize2D: {x: 10, y: 10} + m_Shadows: + m_Type: 1 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 1 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 +--- !u!4 &1108158149 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1108158146} + serializedVersion: 2 + m_LocalRotation: {x: 0.7071068, y: -0, z: -0, w: 0.7071068} + m_LocalPosition: {x: -4.62, y: 8.486666, z: 0.12666665} + m_LocalScale: {x: 6.666666, y: 6.666666, z: 6.666666} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1449545855} + m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0} +--- !u!1 &1190471343 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1190471347} + - component: {fileID: 1190471346} + - component: {fileID: 1190471345} + - component: {fileID: 1190471344} + m_Layer: 0 + m_Name: SphereSimpleLit + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!135 &1190471344 +SphereCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1190471343} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Radius: 0.5 + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1190471345 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1190471343} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 7ad1b489ce18c4b4cbd0a851deb9e10d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1190471346 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1190471343} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &1190471347 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1190471343} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -2, y: 2, z: 0} + m_LocalScale: {x: 4, y: 4, z: 4} + m_ConstrainProportionsScale: 1 + m_Children: [] + m_Father: {fileID: 1449545855} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1269189928 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1269189932} + - component: {fileID: 1269189931} + - component: {fileID: 1269189930} + - component: {fileID: 1269189929} + m_Layer: 0 + m_Name: SphereComplexLit_SG + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!135 &1269189929 +SphereCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1269189928} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Radius: 0.5 + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1269189930 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1269189928} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: c67bc245325b24fabb57406085ff3cf9, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1269189931 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1269189928} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &1269189932 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1269189928} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 4, y: -2, z: 0} + m_LocalScale: {x: 4, y: 4, z: 4} + m_ConstrainProportionsScale: 1 + m_Children: [] + m_Father: {fileID: 1449545855} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1449545854 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1449545855} + m_Layer: 0 + m_Name: Root + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!4 &1449545855 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1449545854} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.15, y: 0.15, z: 0.15} + m_ConstrainProportionsScale: 1 + m_Children: + - {fileID: 1521124719} + - {fileID: 65625744} + - {fileID: 1190471347} + - {fileID: 570808780} + - {fileID: 318533625} + - {fileID: 1458745972} + - {fileID: 829075404} + - {fileID: 1269189932} + - {fileID: 878973500} + - {fileID: 1108158149} + - {fileID: 1783946179} + - {fileID: 151237845} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1458745968 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1458745972} + - component: {fileID: 1458745971} + - component: {fileID: 1458745970} + - component: {fileID: 1458745969} + m_Layer: 0 + m_Name: SphereUnlit_SG + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!135 &1458745969 +SphereCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1458745968} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Radius: 0.5 + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1458745970 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1458745968} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 7ce354a4fbd5f4da29ab84be2123934a, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1458745971 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1458745968} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &1458745972 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1458745968} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -4, y: -2, z: 0} + m_LocalScale: {x: 4, y: 4, z: 4} + m_ConstrainProportionsScale: 1 + m_Children: [] + m_Father: {fileID: 1449545855} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1521124715 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1521124719} + - component: {fileID: 1521124718} + - component: {fileID: 1521124717} + - component: {fileID: 1521124716} + m_Layer: 0 + m_Name: Cube + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!65 &1521124716 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1521124715} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1521124717 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1521124715} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: f30773260a1c741f8a7c39320a569fb4, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1521124718 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1521124715} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &1521124719 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1521124715} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 16, y: 9, z: 0.1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1449545855} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1698873373 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1698873375} + - component: {fileID: 1698873374} + m_Layer: 0 + m_Name: SelectQualitySetting + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1698873374 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1698873373} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4f1decc188d2f3146ab93291a5c743e9, type: 3} + m_Name: + m_EditorClassIdentifier: + qualityLevelIndex: 12 + callbacks: [] +--- !u!4 &1698873375 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1698873373} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -1.5195698, y: 1.3765798, z: 0.5559635} + 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 &1783946176 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1783946179} + - component: {fileID: 1783946178} + - component: {fileID: 1783946177} + m_Layer: 0 + m_Name: Spot Light_1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!114 &1783946177 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1783946176} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Runtime::UnityEngine.Rendering.Universal.UniversalAdditionalLightData + m_UsePipelineSettings: 1 + m_AdditionalLightsShadowResolutionTier: 2 + m_CustomShadowLayers: 0 + m_LightCookieSize: {x: 1, y: 1} + m_LightCookieOffset: {x: 0, y: 0} + m_SoftShadowQuality: 0 + m_RenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_ShadowRenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_Version: 4 + m_LightLayerMask: 1 + m_ShadowLayerMask: 1 + m_RenderingLayers: 1 + m_ShadowRenderingLayers: 1 +--- !u!108 &1783946178 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1783946176} + m_Enabled: 1 + serializedVersion: 12 + m_Type: 0 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Intensity: 1 + m_Range: 2.8992448 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize2D: {x: 10, y: 10} + m_Shadows: + m_Type: 1 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 1 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 +--- !u!4 &1783946179 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1783946176} + serializedVersion: 2 + m_LocalRotation: {x: 0.7071068, y: -0, z: -0, w: 0.7071068} + m_LocalPosition: {x: -0.17999999, y: 8.486666, z: 0.12666665} + m_LocalScale: {x: 6.666666, y: 6.666666, z: 6.666666} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1449545855} + m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0} +--- !u!1660057539 &9223372036854775807 +SceneRoots: + m_ObjectHideFlags: 0 + m_Roots: + - {fileID: 1698873375} + - {fileID: 961636405} + - {fileID: 1010744425} + - {fileID: 1449545855} diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred_GBuffer_SM.unity.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred_GBuffer_SM.unity.meta new file mode 100644 index 00000000000..a6c48b72a1b --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred_GBuffer_SM.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f2035ac89ba7a9c4ba830476068b652d +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred_GBuffer_SM_RL.unity b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred_GBuffer_SM_RL.unity new file mode 100644 index 00000000000..ac7803a0d99 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred_GBuffer_SM_RL.unity @@ -0,0 +1,1889 @@ +%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: 1 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 12 + m_Resolution: 2 + m_BakeResolution: 40 + m_AtlasSize: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_ReflectionCompression: 2 + m_MixedBakeMode: 2 + m_BakeBackend: 1 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 512 + m_PVRBounces: 2 + m_PVREnvironmentSampleCount: 256 + m_PVREnvironmentReferencePointCount: 2048 + m_PVRFilteringMode: 1 + m_PVRDenoiserTypeDirect: 1 + m_PVRDenoiserTypeIndirect: 1 + m_PVRDenoiserTypeAO: 1 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVREnvironmentMIS: 1 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightProbeSampleCountMultiplier: 4 + m_LightingDataAsset: {fileID: 112000000, guid: 6ff54c6bedcf13d41b88955fce7910d6, + type: 2} + m_LightingSettings: {fileID: 4890085278179872738, guid: 21e7a57e9de4c1641a8080793caace7d, + type: 2} +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 3 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + buildHeightMesh: 0 + maxJobWorkers: 0 + preserveTilesOutsideBounds: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &65625740 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 65625744} + - component: {fileID: 65625743} + - component: {fileID: 65625742} + - component: {fileID: 65625741} + m_Layer: 0 + m_Name: SphereUnlit + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!135 &65625741 +SphereCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 65625740} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Radius: 0.5 + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &65625742 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 65625740} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 2 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: d0341a47ec4c841ad86e3bbcbf7ef84f, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &65625743 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 65625740} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &65625744 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 65625740} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -6, y: 2, z: 0} + m_LocalScale: {x: 4, y: 4, z: 4} + m_ConstrainProportionsScale: 1 + m_Children: [] + m_Father: {fileID: 1449545855} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &151237842 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 151237845} + - component: {fileID: 151237844} + - component: {fileID: 151237843} + m_Layer: 0 + m_Name: Spot Light_2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!114 &151237843 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 151237842} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Runtime::UnityEngine.Rendering.Universal.UniversalAdditionalLightData + m_UsePipelineSettings: 1 + m_AdditionalLightsShadowResolutionTier: 2 + m_CustomShadowLayers: 0 + m_LightCookieSize: {x: 1, y: 1} + m_LightCookieOffset: {x: 0, y: 0} + m_SoftShadowQuality: 0 + m_RenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_ShadowRenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_Version: 4 + m_LightLayerMask: 1 + m_ShadowLayerMask: 1 + m_RenderingLayers: 1 + m_ShadowRenderingLayers: 1 +--- !u!108 &151237844 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 151237842} + m_Enabled: 1 + serializedVersion: 12 + m_Type: 0 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Intensity: 1 + m_Range: 2.8992448 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize2D: {x: 10, y: 10} + m_Shadows: + m_Type: 1 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 1 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 +--- !u!4 &151237845 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 151237842} + serializedVersion: 2 + m_LocalRotation: {x: 0.7071068, y: -0, z: -0, w: 0.7071068} + m_LocalPosition: {x: 4, y: 8.486666, z: 0.12666665} + m_LocalScale: {x: 6.666666, y: 6.666666, z: 6.666666} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1449545855} + m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0} +--- !u!1 &318533621 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 318533625} + - component: {fileID: 318533624} + - component: {fileID: 318533623} + - component: {fileID: 318533622} + m_Layer: 0 + m_Name: SphereComplexLit + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!135 &318533622 +SphereCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 318533621} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Radius: 0.5 + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &318533623 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 318533621} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 15 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 9f88666de509042afafe5f55bc937b74, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &318533624 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 318533621} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &318533625 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 318533621} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 6, y: 2, z: 0} + m_LocalScale: {x: 4, y: 4, z: 4} + m_ConstrainProportionsScale: 1 + m_Children: [] + m_Father: {fileID: 1449545855} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &570808776 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 570808780} + - component: {fileID: 570808779} + - component: {fileID: 570808778} + - component: {fileID: 570808777} + m_Layer: 0 + m_Name: SphereLit + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!135 &570808777 +SphereCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 570808776} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Radius: 0.5 + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &570808778 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 570808776} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 7 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 0d1047310b0ac4c56a8e4436385f2347, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &570808779 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 570808776} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &570808780 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 570808776} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 2, y: 2, z: 0} + m_LocalScale: {x: 4, y: 4, z: 4} + m_ConstrainProportionsScale: 1 + m_Children: [] + m_Father: {fileID: 1449545855} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &829075400 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 829075404} + - component: {fileID: 829075403} + - component: {fileID: 829075402} + - component: {fileID: 829075401} + m_Layer: 0 + m_Name: SphereLit_SG + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!135 &829075401 +SphereCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 829075400} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Radius: 0.5 + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &829075402 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 829075400} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 127 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: d4d9a10f9be044c0eb903a5c8a00fa25, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &829075403 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 829075400} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &829075404 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 829075400} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: -2, z: 0} + m_LocalScale: {x: 4, y: 4, z: 4} + m_ConstrainProportionsScale: 1 + m_Children: [] + m_Father: {fileID: 1449545855} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &878973496 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 878973500} + - component: {fileID: 878973499} + - component: {fileID: 878973498} + - component: {fileID: 878973497} + m_Layer: 0 + m_Name: ShaderRef + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!65 &878973497 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 878973496} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &878973498 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 878973496} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &878973499 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 878973496} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &878973500 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 878973496} + 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: 1449545855} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &961636401 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 961636405} + - component: {fileID: 961636404} + - component: {fileID: 961636402} + - component: {fileID: 961636406} + 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 &961636402 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 961636401} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a79441f348de89743a2939f4d699eac1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_RenderShadows: 1 + m_RequiresDepthTextureOption: 2 + m_RequiresOpaqueTextureOption: 2 + m_CameraType: 0 + m_Cameras: [] + m_RendererIndex: -1 + m_VolumeLayerMask: + serializedVersion: 2 + m_Bits: 1 + m_VolumeTrigger: {fileID: 0} + m_VolumeFrameworkUpdateModeOption: 2 + m_RenderPostProcessing: 0 + m_Antialiasing: 0 + m_AntialiasingQuality: 2 + m_StopNaN: 0 + m_Dithering: 0 + m_ClearDepth: 1 + m_AllowXRRendering: 1 + m_AllowHDROutput: 1 + m_UseScreenCoordOverride: 0 + m_ScreenSizeOverride: {x: 0, y: 0, z: 0, w: 0} + m_ScreenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0} + m_RequiresDepthTexture: 0 + m_RequiresColorTexture: 0 + m_TaaSettings: + m_Quality: 3 + m_FrameInfluence: 0.1 + m_JitterScale: 1 + m_MipBias: 0 + m_VarianceClampScale: 0.9 + m_ContrastAdaptiveSharpening: 0 + m_Version: 2 +--- !u!20 &961636404 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 961636401} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_Iso: 200 + m_ShutterSpeed: 0.005 + m_Aperture: 16 + m_FocusDistance: 10 + m_FocalLength: 50 + m_BladeCount: 5 + m_Curvature: {x: 2, y: 11} + m_BarrelClipping: 0.25 + m_Anamorphism: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 7.3 + far clip plane: 7.65 + field of view: 10 + orthographic: 0 + orthographic size: 5 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &961636405 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 961636401} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -7.6} + 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 &961636406 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 961636401} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 73231aa468d81ea49bc3d914080de185, type: 3} + m_Name: + m_EditorClassIdentifier: + ImageComparisonSettings: + TargetWidth: 960 + TargetHeight: 540 + TargetMSAASamples: 4 + PerPixelCorrectnessThreshold: 0.001 + PerPixelGammaThreshold: 0.003921569 + PerPixelAlphaThreshold: 0.003921569 + RMSEThreshold: 0 + AverageCorrectnessThreshold: 0.001 + IncorrectPixelsThreshold: 0.0000038146973 + UseHDR: 0 + UseBackBuffer: 0 + ImageResolution: 3 + ActiveImageTests: 1 + ActivePixelTests: -1 + WaitFrames: 0 + XRCompatible: 1 + gpuDrivenCompatible: 1 + CheckMemoryAllocation: 1 + renderBackendCompatibility: 2 + SetBackBufferResolution: 0 +--- !u!1 &1010744422 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1010744425} + - component: {fileID: 1010744424} + - component: {fileID: 1010744423} + m_Layer: 0 + m_Name: Directional Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!114 &1010744423 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1010744422} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UsePipelineSettings: 1 + m_AdditionalLightsShadowResolutionTier: 2 + m_CustomShadowLayers: 0 + m_LightCookieSize: {x: 1, y: 1} + m_LightCookieOffset: {x: 0, y: 0} + m_SoftShadowQuality: 0 + m_RenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_ShadowRenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_Version: 4 + m_LightLayerMask: 1 + m_ShadowLayerMask: 1 + m_RenderingLayers: 1 + m_ShadowRenderingLayers: 1 +--- !u!108 &1010744424 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1010744422} + m_Enabled: 1 + serializedVersion: 12 + m_Type: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Intensity: 1 + m_Range: 10 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize2D: {x: 10, y: 10} + m_Shadows: + m_Type: 2 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 1 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 1 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 +--- !u!4 &1010744425 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1010744422} + serializedVersion: 2 + m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} + m_LocalPosition: {x: 0, y: 3, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} +--- !u!1 &1108158146 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1108158149} + - component: {fileID: 1108158148} + - component: {fileID: 1108158147} + m_Layer: 0 + m_Name: Spot Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!114 &1108158147 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1108158146} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Runtime::UnityEngine.Rendering.Universal.UniversalAdditionalLightData + m_UsePipelineSettings: 1 + m_AdditionalLightsShadowResolutionTier: 2 + m_CustomShadowLayers: 0 + m_LightCookieSize: {x: 1, y: 1} + m_LightCookieOffset: {x: 0, y: 0} + m_SoftShadowQuality: 0 + m_RenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_ShadowRenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_Version: 4 + m_LightLayerMask: 1 + m_ShadowLayerMask: 1 + m_RenderingLayers: 1 + m_ShadowRenderingLayers: 1 +--- !u!108 &1108158148 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1108158146} + m_Enabled: 1 + serializedVersion: 12 + m_Type: 0 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Intensity: 1 + m_Range: 2.8992448 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize2D: {x: 10, y: 10} + m_Shadows: + m_Type: 1 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 1 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 +--- !u!4 &1108158149 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1108158146} + serializedVersion: 2 + m_LocalRotation: {x: 0.7071068, y: -0, z: -0, w: 0.7071068} + m_LocalPosition: {x: -4.62, y: 8.486666, z: 0.12666665} + m_LocalScale: {x: 6.666666, y: 6.666666, z: 6.666666} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1449545855} + m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0} +--- !u!1 &1190471343 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1190471347} + - component: {fileID: 1190471346} + - component: {fileID: 1190471345} + - component: {fileID: 1190471344} + m_Layer: 0 + m_Name: SphereSimpleLit + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!135 &1190471344 +SphereCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1190471343} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Radius: 0.5 + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1190471345 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1190471343} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 3 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 7ad1b489ce18c4b4cbd0a851deb9e10d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1190471346 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1190471343} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &1190471347 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1190471343} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -2, y: 2, z: 0} + m_LocalScale: {x: 4, y: 4, z: 4} + m_ConstrainProportionsScale: 1 + m_Children: [] + m_Father: {fileID: 1449545855} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1269189928 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1269189932} + - component: {fileID: 1269189931} + - component: {fileID: 1269189930} + - component: {fileID: 1269189929} + m_Layer: 0 + m_Name: SphereComplexLit_SG + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!135 &1269189929 +SphereCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1269189928} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Radius: 0.5 + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1269189930 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1269189928} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 4294967295 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: c67bc245325b24fabb57406085ff3cf9, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1269189931 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1269189928} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &1269189932 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1269189928} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 4, y: -2, z: 0} + m_LocalScale: {x: 4, y: 4, z: 4} + m_ConstrainProportionsScale: 1 + m_Children: [] + m_Father: {fileID: 1449545855} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1449545854 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1449545855} + m_Layer: 0 + m_Name: Root + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!4 &1449545855 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1449545854} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.15, y: 0.15, z: 0.15} + m_ConstrainProportionsScale: 1 + m_Children: + - {fileID: 1521124719} + - {fileID: 65625744} + - {fileID: 1190471347} + - {fileID: 570808780} + - {fileID: 318533625} + - {fileID: 1458745972} + - {fileID: 829075404} + - {fileID: 1269189932} + - {fileID: 878973500} + - {fileID: 1108158149} + - {fileID: 1783946179} + - {fileID: 151237845} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1458745968 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1458745972} + - component: {fileID: 1458745971} + - component: {fileID: 1458745970} + - component: {fileID: 1458745969} + m_Layer: 0 + m_Name: SphereUnlit_SG + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!135 &1458745969 +SphereCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1458745968} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Radius: 0.5 + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1458745970 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1458745968} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 63 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 7ce354a4fbd5f4da29ab84be2123934a, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1458745971 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1458745968} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &1458745972 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1458745968} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -4, y: -2, z: 0} + m_LocalScale: {x: 4, y: 4, z: 4} + m_ConstrainProportionsScale: 1 + m_Children: [] + m_Father: {fileID: 1449545855} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1521124715 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1521124719} + - component: {fileID: 1521124718} + - component: {fileID: 1521124717} + - component: {fileID: 1521124716} + m_Layer: 0 + m_Name: Cube + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!65 &1521124716 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1521124715} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1521124717 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1521124715} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: f30773260a1c741f8a7c39320a569fb4, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1521124718 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1521124715} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &1521124719 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1521124715} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 16, y: 9, z: 0.1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1449545855} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1698873373 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1698873375} + - component: {fileID: 1698873374} + m_Layer: 0 + m_Name: SelectQualitySetting + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1698873374 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1698873373} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4f1decc188d2f3146ab93291a5c743e9, type: 3} + m_Name: + m_EditorClassIdentifier: + qualityLevelIndex: 13 + callbacks: [] +--- !u!4 &1698873375 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1698873373} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -1.5195698, y: 1.3765798, z: 0.5559635} + 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 &1783946176 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1783946179} + - component: {fileID: 1783946178} + - component: {fileID: 1783946177} + m_Layer: 0 + m_Name: Spot Light_1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!114 &1783946177 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1783946176} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Runtime::UnityEngine.Rendering.Universal.UniversalAdditionalLightData + m_UsePipelineSettings: 1 + m_AdditionalLightsShadowResolutionTier: 2 + m_CustomShadowLayers: 0 + m_LightCookieSize: {x: 1, y: 1} + m_LightCookieOffset: {x: 0, y: 0} + m_SoftShadowQuality: 0 + m_RenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_ShadowRenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_Version: 4 + m_LightLayerMask: 1 + m_ShadowLayerMask: 1 + m_RenderingLayers: 1 + m_ShadowRenderingLayers: 1 +--- !u!108 &1783946178 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1783946176} + m_Enabled: 1 + serializedVersion: 12 + m_Type: 0 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Intensity: 1 + m_Range: 2.8992448 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize2D: {x: 10, y: 10} + m_Shadows: + m_Type: 1 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 1 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 +--- !u!4 &1783946179 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1783946176} + serializedVersion: 2 + m_LocalRotation: {x: 0.7071068, y: -0, z: -0, w: 0.7071068} + m_LocalPosition: {x: -0.17999999, y: 8.486666, z: 0.12666665} + m_LocalScale: {x: 6.666666, y: 6.666666, z: 6.666666} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1449545855} + m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0} +--- !u!1660057539 &9223372036854775807 +SceneRoots: + m_ObjectHideFlags: 0 + m_Roots: + - {fileID: 1698873375} + - {fileID: 961636405} + - {fileID: 1010744425} + - {fileID: 1449545855} diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred_GBuffer_SM_RL.unity.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred_GBuffer_SM_RL.unity.meta new file mode 100644 index 00000000000..38cd9c462e2 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/060_Deferred_GBuffer_SM_RL.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 2ee4b403aeaa260459292449c493f70f +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/231_APV_Subtractive_NoRealtimeShadows.lighting b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/231_APV_Subtractive_NoRealtimeShadows.lighting index ea41653f90c..2be3c808f26 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/231_APV_Subtractive_NoRealtimeShadows.lighting +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/231_APV_Subtractive_NoRealtimeShadows.lighting @@ -32,7 +32,6 @@ LightingSettings: m_FilterMode: 1 m_LightmapParameters: {fileID: 15204, guid: 0000000000000000f000000000000000, type: 0} m_ExportTrainingData: 0 - m_EnableWorkerProcessBaking: 1 m_TrainingDataDestination: TrainingData m_RealtimeResolution: 2 m_ForceWhiteAlbedo: 0 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Packages/manifest.json b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Packages/manifest.json index a1b2453c4c5..5abf08d4ec1 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Packages/manifest.json +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Packages/manifest.json @@ -12,7 +12,6 @@ "com.unity.render-pipelines.universal": "file:../../../../../Packages/com.unity.render-pipelines.universal", "com.unity.render-pipelines.universal-config": "file:../../../../../Packages/com.unity.render-pipelines.universal-config", "com.unity.shadergraph": "file:../../../../../Packages/com.unity.shadergraph", - "com.unity.rendering.light-transport": "file:../../../../../Packages/com.unity.rendering.light-transport", "com.unity.test-framework": "file:../../../../../Packages/com.unity.test-framework", "com.unity.testframework.graphics": "file:../../../Packages/com.unity.test-framework.graphics", "com.unity.testing.urp": "file:../../../Packages/com.unity.testing.urp", diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/ProjectSettings/EditorBuildSettings.asset b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/ProjectSettings/EditorBuildSettings.asset index 118a58a6743..865dd4f54a7 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/ProjectSettings/EditorBuildSettings.asset +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/ProjectSettings/EditorBuildSettings.asset @@ -56,6 +56,18 @@ EditorBuildSettings: - enabled: 1 path: Assets/Scenes/055_Lighting_Attenuation_Spot_Point.unity guid: 362b9a0c21a9b4e798504044c7604e80 + - enabled: 1 + path: Assets/Scenes/060_Deferred_GBuffer.unity + guid: f42c387ccdc6840159743027165e1b7c + - enabled: 1 + path: Assets/Scenes/060_Deferred_GBuffer_RL.unity + guid: 52cecf6c3df26dc4aa286c58c3984921 + - enabled: 1 + path: Assets/Scenes/060_Deferred_GBuffer_SM.unity + guid: f2035ac89ba7a9c4ba830476068b652d + - enabled: 1 + path: Assets/Scenes/060_Deferred_GBuffer_SM_RL.unity + guid: 2ee4b403aeaa260459292449c493f70f - enabled: 1 path: Assets/Scenes/117_SkyboxReflectionTestProjection.unity guid: f5310a9ab278ec748b2091bf7ba966a7 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/ProjectSettings/ProjectSettings.asset b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/ProjectSettings/ProjectSettings.asset index bcaeba2145b..74dcbfd99cb 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/ProjectSettings/ProjectSettings.asset +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/ProjectSettings/ProjectSettings.asset @@ -701,23 +701,15 @@ PlayerSettings: webGLWebAssemblyBigInt: 0 webGLCloseOnQuit: 0 scriptingDefineSymbols: - Android: LWRP_DEBUG_STATIC_POSTFX;URP_COMPATIBILITY_MODE - EmbeddedLinux: URP_COMPATIBILITY_MODE - GameCoreScarlett: URP_COMPATIBILITY_MODE - GameCoreXboxOne: URP_COMPATIBILITY_MODE - Kepler: URP_COMPATIBILITY_MODE - Nintendo Switch: LWRP_DEBUG_STATIC_POSTFX;URP_COMPATIBILITY_MODE - PS4: LWRP_DEBUG_STATIC_POSTFX;URP_COMPATIBILITY_MODE - PS5: URP_COMPATIBILITY_MODE - QNX: URP_COMPATIBILITY_MODE - ReservedCFE: URP_COMPATIBILITY_MODE - Standalone: LWRP_DEBUG_STATIC_POSTFX;URP_COMPATIBILITY_MODE - VisionOS: URP_COMPATIBILITY_MODE - WebGL: LWRP_DEBUG_STATIC_POSTFX;URP_COMPATIBILITY_MODE - Windows Store Apps: LWRP_DEBUG_STATIC_POSTFX;URP_COMPATIBILITY_MODE - XboxOne: LWRP_DEBUG_STATIC_POSTFX;URP_COMPATIBILITY_MODE - iPhone: LWRP_DEBUG_STATIC_POSTFX;URP_COMPATIBILITY_MODE - tvOS: LWRP_DEBUG_STATIC_POSTFX;URP_COMPATIBILITY_MODE + Android: LWRP_DEBUG_STATIC_POSTFX + Nintendo Switch: LWRP_DEBUG_STATIC_POSTFX + PS4: LWRP_DEBUG_STATIC_POSTFX + Standalone: LWRP_DEBUG_STATIC_POSTFX + WebGL: LWRP_DEBUG_STATIC_POSTFX + Windows Store Apps: LWRP_DEBUG_STATIC_POSTFX + XboxOne: LWRP_DEBUG_STATIC_POSTFX + iPhone: LWRP_DEBUG_STATIC_POSTFX + tvOS: LWRP_DEBUG_STATIC_POSTFX additionalCompilerArguments: Standalone: - -warnaserror+ diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/ProjectSettings/QualitySettings.asset b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/ProjectSettings/QualitySettings.asset index a39bd9cf072..257da5eb2f2 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/ProjectSettings/QualitySettings.asset +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/ProjectSettings/QualitySettings.asset @@ -536,6 +536,222 @@ QualitySettings: terrainFadeLength: 5 terrainMaxTrees: 50 excludedTargetPlatforms: [] + - serializedVersion: 5 + name: 10->060_Deferred + pixelLightCount: 4 + shadows: 2 + shadowResolution: 2 + shadowProjection: 1 + shadowCascades: 4 + shadowDistance: 150 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 1 + skinWeights: 4 + globalTextureMipmapLimit: 0 + textureMipmapLimitSettings: [] + anisotropicTextures: 2 + antiAliasing: 0 + softParticles: 1 + softVegetation: 1 + realtimeReflectionProbes: 1 + billboardsFaceCameraPosition: 1 + useLegacyDetailDistribution: 1 + adaptiveVsync: 0 + vSyncCount: 1 + realtimeGICPUUsage: 25 + adaptiveVsyncExtraA: 0 + adaptiveVsyncExtraB: 0 + lodBias: 2 + meshLodThreshold: 1 + maximumLODLevel: 0 + enableLODCrossFade: 0 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 4096 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 4 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + customRenderPipeline: {fileID: 11400000, guid: 74dbe65f1a8b740f386acbe7cc6ec7d0, + type: 2} + terrainQualityOverrides: 0 + terrainPixelError: 1 + terrainDetailDensityScale: 1 + terrainBasemapDistance: 1000 + terrainDetailDistance: 80 + terrainTreeDistance: 5000 + terrainBillboardStart: 50 + terrainFadeLength: 5 + terrainMaxTrees: 50 + excludedTargetPlatforms: [] + - serializedVersion: 5 + name: 11->060_Deferred_RL + pixelLightCount: 4 + shadows: 2 + shadowResolution: 2 + shadowProjection: 1 + shadowCascades: 4 + shadowDistance: 150 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 1 + skinWeights: 4 + globalTextureMipmapLimit: 0 + textureMipmapLimitSettings: [] + anisotropicTextures: 2 + antiAliasing: 0 + softParticles: 1 + softVegetation: 1 + realtimeReflectionProbes: 1 + billboardsFaceCameraPosition: 1 + useLegacyDetailDistribution: 1 + adaptiveVsync: 0 + vSyncCount: 1 + realtimeGICPUUsage: 25 + adaptiveVsyncExtraA: 0 + adaptiveVsyncExtraB: 0 + lodBias: 2 + meshLodThreshold: 1 + maximumLODLevel: 0 + enableLODCrossFade: 0 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 4096 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 4 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + customRenderPipeline: {fileID: 11400000, guid: cdce6bfd7f7f62b4095e505055c7f5ff, + type: 2} + terrainQualityOverrides: 0 + terrainPixelError: 1 + terrainDetailDensityScale: 1 + terrainBasemapDistance: 1000 + terrainDetailDistance: 80 + terrainTreeDistance: 5000 + terrainBillboardStart: 50 + terrainFadeLength: 5 + terrainMaxTrees: 50 + excludedTargetPlatforms: [] + - serializedVersion: 5 + name: 12->060_Deferred_SM + pixelLightCount: 4 + shadows: 2 + shadowResolution: 2 + shadowProjection: 1 + shadowCascades: 4 + shadowDistance: 150 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 1 + skinWeights: 4 + globalTextureMipmapLimit: 0 + textureMipmapLimitSettings: [] + anisotropicTextures: 2 + antiAliasing: 0 + softParticles: 1 + softVegetation: 1 + realtimeReflectionProbes: 1 + billboardsFaceCameraPosition: 1 + useLegacyDetailDistribution: 1 + adaptiveVsync: 0 + vSyncCount: 1 + realtimeGICPUUsage: 25 + adaptiveVsyncExtraA: 0 + adaptiveVsyncExtraB: 0 + lodBias: 2 + meshLodThreshold: 1 + maximumLODLevel: 0 + enableLODCrossFade: 0 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 4096 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 4 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + customRenderPipeline: {fileID: 11400000, guid: 0752e08e6d4698c4395ee36140d15a0c, + type: 2} + terrainQualityOverrides: 0 + terrainPixelError: 1 + terrainDetailDensityScale: 1 + terrainBasemapDistance: 1000 + terrainDetailDistance: 80 + terrainTreeDistance: 5000 + terrainBillboardStart: 50 + terrainFadeLength: 5 + terrainMaxTrees: 50 + excludedTargetPlatforms: [] + - serializedVersion: 5 + name: 13->060_Deferred_RL_SM + pixelLightCount: 4 + shadows: 2 + shadowResolution: 2 + shadowProjection: 1 + shadowCascades: 4 + shadowDistance: 150 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 1 + skinWeights: 4 + globalTextureMipmapLimit: 0 + textureMipmapLimitSettings: [] + anisotropicTextures: 2 + antiAliasing: 0 + softParticles: 1 + softVegetation: 1 + realtimeReflectionProbes: 1 + billboardsFaceCameraPosition: 1 + useLegacyDetailDistribution: 1 + adaptiveVsync: 0 + vSyncCount: 1 + realtimeGICPUUsage: 25 + adaptiveVsyncExtraA: 0 + adaptiveVsyncExtraB: 0 + lodBias: 2 + meshLodThreshold: 1 + maximumLODLevel: 0 + enableLODCrossFade: 0 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 4096 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 4 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + customRenderPipeline: {fileID: 11400000, guid: 2050474a1bd6e964390881456a2e5a86, + type: 2} + terrainQualityOverrides: 0 + terrainPixelError: 1 + terrainDetailDensityScale: 1 + terrainBasemapDistance: 1000 + terrainDetailDistance: 80 + terrainTreeDistance: 5000 + terrainBillboardStart: 50 + terrainFadeLength: 5 + terrainMaxTrees: 50 + excludedTargetPlatforms: [] m_TextureMipmapLimitGroupNames: [] m_PerPlatformDefaultQuality: Android: 0 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_PostPro/Assets/Scenes/250_ScreenCoordOverrideRenderPass/ScreenCoordOverrideRenderPass.cs b/Tests/SRPTests/Projects/UniversalGraphicsTest_PostPro/Assets/Scenes/250_ScreenCoordOverrideRenderPass/ScreenCoordOverrideRenderPass.cs index 2b9160418a7..6af943c4dd2 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_PostPro/Assets/Scenes/250_ScreenCoordOverrideRenderPass/ScreenCoordOverrideRenderPass.cs +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_PostPro/Assets/Scenes/250_ScreenCoordOverrideRenderPass/ScreenCoordOverrideRenderPass.cs @@ -17,6 +17,7 @@ public void Setup(RenderPassEvent renderPassEvent, Material material) m_Material = material; } +#if URP_COMPATIBILITY_MODE [Obsolete("This rendering path is for compatibility mode only (when Render Graph is disabled). Use Render Graph API instead.", false)] public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) { @@ -35,6 +36,7 @@ public override void Execute(ScriptableRenderContext context, ref RenderingData context.ExecuteCommandBuffer(cmd); CommandBufferPool.Release(cmd); } +#endif public void Cleanup() { diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_PostPro/Packages/manifest.json b/Tests/SRPTests/Projects/UniversalGraphicsTest_PostPro/Packages/manifest.json index dd2a21bb2a5..fe94eeeb911 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_PostPro/Packages/manifest.json +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_PostPro/Packages/manifest.json @@ -11,7 +11,6 @@ "com.unity.render-pipelines.core": "file:../../../../../Packages/com.unity.render-pipelines.core", "com.unity.render-pipelines.universal": "file:../../../../../Packages/com.unity.render-pipelines.universal", "com.unity.render-pipelines.universal-config": "file:../../../../../Packages/com.unity.render-pipelines.universal-config", - "com.unity.rendering.light-transport": "file:../../../../../Packages/com.unity.rendering.light-transport", "com.unity.shadergraph": "file:../../../../../Packages/com.unity.shadergraph", "com.unity.test-framework": "file:../../../../../Packages/com.unity.test-framework", "com.unity.testframework.graphics": "file:../../../Packages/com.unity.test-framework.graphics", diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_PostPro/ProjectSettings/ProjectSettings.asset b/Tests/SRPTests/Projects/UniversalGraphicsTest_PostPro/ProjectSettings/ProjectSettings.asset index 1b2f7a9eb47..e5518e18169 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_PostPro/ProjectSettings/ProjectSettings.asset +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_PostPro/ProjectSettings/ProjectSettings.asset @@ -706,24 +706,16 @@ PlayerSettings: webGLWebAssemblyBigInt: 0 webGLCloseOnQuit: 0 scriptingDefineSymbols: - : LWRP_DEBUG_STATIC_POSTFX;URP_COMPATIBILITY_MODE - Android: LWRP_DEBUG_STATIC_POSTFX;URP_COMPATIBILITY_MODE - EmbeddedLinux: URP_COMPATIBILITY_MODE - GameCoreScarlett: URP_COMPATIBILITY_MODE - GameCoreXboxOne: URP_COMPATIBILITY_MODE - Kepler: URP_COMPATIBILITY_MODE - Nintendo Switch: LWRP_DEBUG_STATIC_POSTFX;URP_COMPATIBILITY_MODE - PS4: LWRP_DEBUG_STATIC_POSTFX;URP_COMPATIBILITY_MODE - PS5: URP_COMPATIBILITY_MODE - QNX: URP_COMPATIBILITY_MODE - ReservedCFE: URP_COMPATIBILITY_MODE - Standalone: LWRP_DEBUG_STATIC_POSTFX;URP_COMPATIBILITY_MODE - VisionOS: URP_COMPATIBILITY_MODE - WebGL: LWRP_DEBUG_STATIC_POSTFX;URP_COMPATIBILITY_MODE - Windows Store Apps: LWRP_DEBUG_STATIC_POSTFX;URP_COMPATIBILITY_MODE - XboxOne: LWRP_DEBUG_STATIC_POSTFX;URP_COMPATIBILITY_MODE - iPhone: LWRP_DEBUG_STATIC_POSTFX;URP_COMPATIBILITY_MODE - tvOS: LWRP_DEBUG_STATIC_POSTFX;URP_COMPATIBILITY_MODE + : LWRP_DEBUG_STATIC_POSTFX + Android: LWRP_DEBUG_STATIC_POSTFX + Nintendo Switch: LWRP_DEBUG_STATIC_POSTFX + PS4: LWRP_DEBUG_STATIC_POSTFX + Standalone: LWRP_DEBUG_STATIC_POSTFX + WebGL: LWRP_DEBUG_STATIC_POSTFX + Windows Store Apps: LWRP_DEBUG_STATIC_POSTFX + XboxOne: LWRP_DEBUG_STATIC_POSTFX + iPhone: LWRP_DEBUG_STATIC_POSTFX + tvOS: LWRP_DEBUG_STATIC_POSTFX additionalCompilerArguments: Standalone: - -warnaserror+ diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/CommonAssets/MotionVectorVisualization/CaptureMotionVectorsPass.cs b/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/CommonAssets/MotionVectorVisualization/CaptureMotionVectorsPass.cs index ee1003aced1..6557c35506c 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/CommonAssets/MotionVectorVisualization/CaptureMotionVectorsPass.cs +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/CommonAssets/MotionVectorVisualization/CaptureMotionVectorsPass.cs @@ -22,6 +22,7 @@ public void SetIntensity(float intensity) m_intensity = intensity; } +#if URP_COMPATIBILITY_MODE public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) { //Todo: test code is not working for XR @@ -35,7 +36,7 @@ public override void Execute(ScriptableRenderContext context, ref RenderingData CommandBufferPool.Release(cmd); } - +#endif static void ExecutePass(RTHandle targetHandle, CommandBuffer cmd, bool isGameCamera, Material material, float motionIntensity) { diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Packages/manifest.json b/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Packages/manifest.json index 3d9947a006f..b45281ceac7 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Packages/manifest.json +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Packages/manifest.json @@ -12,7 +12,6 @@ "com.unity.render-pipelines.universal": "file:../../../../../Packages/com.unity.render-pipelines.universal", "com.unity.render-pipelines.universal-config": "file:../../../../../Packages/com.unity.render-pipelines.universal-config", "com.unity.shadergraph": "file:../../../../../Packages/com.unity.shadergraph", - "com.unity.rendering.light-transport": "file:../../../../../Packages/com.unity.rendering.light-transport", "com.unity.test-framework": "file:../../../../../Packages/com.unity.test-framework", "com.unity.testframework.graphics": "file:../../../Packages/com.unity.test-framework.graphics", "com.unity.testing.urp": "file:../../../Packages/com.unity.testing.urp", diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/ProjectSettings/ProjectSettings.asset b/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/ProjectSettings/ProjectSettings.asset index 427b486239b..f622392d472 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/ProjectSettings/ProjectSettings.asset +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/ProjectSettings/ProjectSettings.asset @@ -707,23 +707,15 @@ PlayerSettings: webGLCloseOnQuit: 0 webWasm2023: 0 scriptingDefineSymbols: - Android: LWRP_DEBUG_STATIC_POSTFX;URP_COMPATIBILITY_MODE - EmbeddedLinux: URP_COMPATIBILITY_MODE - GameCoreScarlett: URP_COMPATIBILITY_MODE - GameCoreXboxOne: URP_COMPATIBILITY_MODE - Kepler: URP_COMPATIBILITY_MODE - Nintendo Switch: LWRP_DEBUG_STATIC_POSTFX;URP_COMPATIBILITY_MODE - PS4: LWRP_DEBUG_STATIC_POSTFX;URP_COMPATIBILITY_MODE - PS5: URP_COMPATIBILITY_MODE - QNX: URP_COMPATIBILITY_MODE - ReservedCFE: URP_COMPATIBILITY_MODE - Standalone: LWRP_DEBUG_STATIC_POSTFX;URP_COMPATIBILITY_MODE - VisionOS: URP_COMPATIBILITY_MODE - WebGL: LWRP_DEBUG_STATIC_POSTFX;URP_COMPATIBILITY_MODE - Windows Store Apps: LWRP_DEBUG_STATIC_POSTFX;URP_COMPATIBILITY_MODE - XboxOne: LWRP_DEBUG_STATIC_POSTFX;URP_COMPATIBILITY_MODE - iPhone: LWRP_DEBUG_STATIC_POSTFX;URP_COMPATIBILITY_MODE - tvOS: LWRP_DEBUG_STATIC_POSTFX;URP_COMPATIBILITY_MODE + Android: LWRP_DEBUG_STATIC_POSTFX + Nintendo Switch: LWRP_DEBUG_STATIC_POSTFX + PS4: LWRP_DEBUG_STATIC_POSTFX + Standalone: LWRP_DEBUG_STATIC_POSTFX + WebGL: LWRP_DEBUG_STATIC_POSTFX + Windows Store Apps: LWRP_DEBUG_STATIC_POSTFX + XboxOne: LWRP_DEBUG_STATIC_POSTFX + iPhone: LWRP_DEBUG_STATIC_POSTFX + tvOS: LWRP_DEBUG_STATIC_POSTFX additionalCompilerArguments: {} platformArchitecture: {} scriptingBackend: diff --git a/Tests/SRPTests/Projects/VisualEffectGraph_HDRP/Assets/AllTests/Editor/Tests/CustomHLSLOperatorTest.cs b/Tests/SRPTests/Projects/VisualEffectGraph_HDRP/Assets/AllTests/Editor/Tests/CustomHLSLOperatorTest.cs index 1e007936fba..686de0a41d0 100644 --- a/Tests/SRPTests/Projects/VisualEffectGraph_HDRP/Assets/AllTests/Editor/Tests/CustomHLSLOperatorTest.cs +++ b/Tests/SRPTests/Projects/VisualEffectGraph_HDRP/Assets/AllTests/Editor/Tests/CustomHLSLOperatorTest.cs @@ -786,15 +786,18 @@ void Check_Multiple_Usage_Buffer_Sanity_Check(string source) string vfxPath = "Assets/AllTests/Editor/Tests/Repro_UUM_66018.vfx"; Assert.IsTrue(AssetDatabase.AssetPathExists(vfxPath)); - var vfx = AssetDatabase.LoadAssetAtPath(vfxPath).GetResource(); + var asset = AssetDatabase.LoadAssetAtPath(vfxPath); + var vfx = asset.GetResource(); vfx.GetOrCreateGraph().SetCompilationMode(VFXCompilationMode.Edition); + vfx.GetOrCreateGraph().CompileAndUpdateAsset(asset); yield return null; var sourceEdition = Check_Multiple_Usage_Buffer_Get_Source(vfx); Assert.IsNotNull(sourceEdition); vfx.GetOrCreateGraph().SetCompilationMode(VFXCompilationMode.Runtime); + vfx.GetOrCreateGraph().CompileAndUpdateAsset(asset); yield return null; var sourceRuntime = Check_Multiple_Usage_Buffer_Get_Source(vfx); diff --git a/Tests/SRPTests/Projects/VisualEffectGraph_HDRP/Assets/AllTests/Editor/Tests/VFXControllerTests.cs b/Tests/SRPTests/Projects/VisualEffectGraph_HDRP/Assets/AllTests/Editor/Tests/VFXControllerTests.cs index fca1ad974e3..7dc45e3f76e 100644 --- a/Tests/SRPTests/Projects/VisualEffectGraph_HDRP/Assets/AllTests/Editor/Tests/VFXControllerTests.cs +++ b/Tests/SRPTests/Projects/VisualEffectGraph_HDRP/Assets/AllTests/Editor/Tests/VFXControllerTests.cs @@ -1171,61 +1171,6 @@ public void UniqueDefaultSystemNames() Assert.IsTrue(uniqueSystemNames.Count() == count, "Some GPU systems have the same name or are null or empty."); } - [Test] - public void ConvertToSubgraph() - { - //Create a new vfx based on the usual template - var templateString = System.IO.File.ReadAllText(VFXTestCommon.simpleParticleSystemPath); - System.IO.File.WriteAllText(testSubgraphAssetName, templateString); - - VFXViewWindow window = VFXViewWindow.GetWindow(); - window.LoadAsset(AssetDatabase.LoadAssetAtPath(testAssetName), null); - - VFXConvertSubgraph.ConvertToSubgraphContext(window.graphView, window.graphView.Query().ToList().Where(t => !(t.controller.model is VFXBasicSpawner)).Select(t => t.controller).Cast(), Rect.zero, testSubgraphSubAssetName); - - window.graphView.controller = null; - } - - [Test] - public void Subgraph_Event_Link_To_Spawn() - { - VFXViewWindow window = VFXViewWindow.GetWindow(); - window.LoadAsset(AssetDatabase.LoadAssetAtPath(testAssetName), null); - - //Create Spawner in subgraph - { - var spawner = ScriptableObject.CreateInstance(); - m_ViewController.graph.AddChild(spawner); - m_ViewController.LightApplyChanges(); - - var controller = window.graphView.Query().ToList().Select(t => t.controller).Cast(); - Assert.AreEqual(1, controller.Count()); - VFXConvertSubgraph.ConvertToSubgraphContext(window.graphView, controller, Rect.zero, testSubgraphSubAssetName); - } - - var subGraphController = m_ViewController.allChildren.OfType().FirstOrDefault(o => o.model is VFXSubgraphContext); - Assert.IsNotNull(subGraphController); - - //Create Event Context & Link the two input flow - var subGraphContext = subGraphController.model; - var eventContext = ScriptableObject.CreateInstance(); - - Assert.IsTrue(VFXContext.CanLink(eventContext, subGraphContext, 0, 0)); - Assert.IsTrue(VFXContext.CanLink(eventContext, subGraphContext, 0, 1)); - - eventContext.LinkTo(subGraphContext, 0, 0); - eventContext.LinkTo(subGraphContext, 0, 1); - - var flow = eventContext.outputFlowSlot.First().link; - Assert.AreEqual(2, flow.Count()); - Assert.IsTrue(flow.All(o => o.context == subGraphContext)); - Assert.IsTrue(flow.Any(o => o.slotIndex == 0)); - Assert.IsTrue(flow.Any(o => o.slotIndex == 1)); - - window.graphView.controller = null; - } - - //Regression test for case 1345426 [UnityTest] public IEnumerator ConvertToSubGraphOperator() diff --git a/Tests/SRPTests/Projects/VisualEffectGraph_HDRP/Assets/AllTests/Editor/Tests/VFXCopyPasteTests.cs b/Tests/SRPTests/Projects/VisualEffectGraph_HDRP/Assets/AllTests/Editor/Tests/VFXCopyPasteTests.cs index 3ecc86a7dab..82c67d527eb 100644 --- a/Tests/SRPTests/Projects/VisualEffectGraph_HDRP/Assets/AllTests/Editor/Tests/VFXCopyPasteTests.cs +++ b/Tests/SRPTests/Projects/VisualEffectGraph_HDRP/Assets/AllTests/Editor/Tests/VFXCopyPasteTests.cs @@ -398,7 +398,7 @@ public void CreateTemplate() VFXView view = window.graphView; view.controller = m_ViewController; - view.CreateTemplateSystem(VFXTestCommon.simpleParticleSystemPath, Vector2.zero, null); + view.CreateTemplateSystem(VFXTestCommon.simpleParticleSystemPath, Vector2.zero, null, false); } [Test] diff --git a/Tests/SRPTests/Projects/VisualEffectGraph_HDRP/Assets/AllTests/Editor/Tests/VFXShaderGenerationTests.cs b/Tests/SRPTests/Projects/VisualEffectGraph_HDRP/Assets/AllTests/Editor/Tests/VFXShaderGenerationTests.cs index d4200e9cf49..d02e24f6e9f 100644 --- a/Tests/SRPTests/Projects/VisualEffectGraph_HDRP/Assets/AllTests/Editor/Tests/VFXShaderGenerationTests.cs +++ b/Tests/SRPTests/Projects/VisualEffectGraph_HDRP/Assets/AllTests/Editor/Tests/VFXShaderGenerationTests.cs @@ -452,6 +452,36 @@ void CheckShaderStructs(string source, uint[] expectedResults) CheckShaderStructs(meshOutputSrc, new uint[] { 9, 5, 7, 6 }); } + [Test] + public void ShaderGraph_Insure_GlobalProperties_No_Leak_In_Interpolator() + { + var vfxPath = "Assets/AllTests/VFXTests/GraphicsTests/35_ShaderGraphGenerationFTP/VFX/VFX - GlobalShaderProperty.vfx"; + AssetDatabase.ImportAsset(vfxPath); + var vfx = AssetDatabase.LoadAssetAtPath(vfxPath).GetResource(); + Assert.IsNotNull(vfx); + + var source = vfx.GetShaderSource(2); + Assert.IsTrue(source.Contains("float4 _VFXGlobalColor;")); + + var graphPropertiesFields = VFXTestShaderSrcUtils.GetStructFieldsFromSource(source, "GraphProperties", "ForwardOnly"); + var fragInputFields = VFXTestShaderSrcUtils.GetStructFieldsFromSource(source, "FragInputsVFX", "ForwardOnly"); + var varyingsFields = VFXTestShaderSrcUtils.GetStructFieldsFromSource(source, "VaryingsMeshToPS", "ForwardOnly"); + var packedVaryingFields = VFXTestShaderSrcUtils.GetStructFieldsFromSource(source, "PackedVaryingsMeshToPS", "ForwardOnly"); + + Assert.AreEqual(0, graphPropertiesFields.Length); + Assert.AreEqual(0, fragInputFields.Length); + Assert.AreEqual(3, varyingsFields.Length); + Assert.AreEqual(3, packedVaryingFields.Length); + + Assert.AreEqual("positionCS", varyingsFields[0].name); + Assert.AreEqual("positionRWS", varyingsFields[1].name); + Assert.AreEqual("instanceID", varyingsFields[2].name); + + Assert.AreEqual("positionCS", packedVaryingFields[0].name); + Assert.AreEqual("positionRWS", packedVaryingFields[1].name); + Assert.AreEqual("instanceID", packedVaryingFields[2].name); + } + public class WrapperWindow : EditorWindow { public Action onGUIDelegate; diff --git a/Tests/SRPTests/Projects/VisualEffectGraph_HDRP/Packages/manifest.json b/Tests/SRPTests/Projects/VisualEffectGraph_HDRP/Packages/manifest.json index 6ada2d325e8..fbc6d9ada57 100644 --- a/Tests/SRPTests/Projects/VisualEffectGraph_HDRP/Packages/manifest.json +++ b/Tests/SRPTests/Projects/VisualEffectGraph_HDRP/Packages/manifest.json @@ -11,14 +11,13 @@ "com.unity.render-pipelines.high-definition-config": "file:../../../../../Packages/com.unity.render-pipelines.high-definition-config", "com.unity.shaderanalysis": "file:../../../../../Packages/com.unity.shaderanalysis", "com.unity.shadergraph": "file:../../../../../Packages/com.unity.shadergraph", - "com.unity.rendering.light-transport": "file:../../../../../Packages/com.unity.rendering.light-transport", "com.unity.test-framework.graphics.performance": "file:../../../Packages/com.unity.test-framework.graphics.performance", "com.unity.testing.common-graphics": "file:../../../Packages/com.unity.testing.common-graphics", "com.unity.testing.visualeffectgraph": "file:../../../Packages/com.unity.testing.visualeffectgraph", "com.unity.testing.xr": "file:../../../Packages/com.unity.testing.xr", "com.unity.timeline": "1.8.8", "com.unity.ugui": "2.0.0", - "com.unity.ui.test-framework": "file:../../../../../Tests/EditModeAndPlayModeTests/UIElements/Packages/com.unity.ui.test-framework", + "com.unity.ui.test-framework": "file:../../../../../Packages/com.unity.ui.test-framework", "com.unity.visualeffectgraph": "file:../../../../../Packages/com.unity.visualeffectgraph", "com.unity.testframework.graphics": "file:../../../Packages/com.unity.test-framework.graphics", "com.unity.test-framework": "file:../../../../../Packages/com.unity.test-framework", diff --git a/Tests/SRPTests/Projects/VisualEffectGraph_URP/Assets/GraphicsTests/104_ShaderGraphGenerationFTP.unity b/Tests/SRPTests/Projects/VisualEffectGraph_URP/Assets/GraphicsTests/104_ShaderGraphGenerationFTP.unity index 12ed2eceaba..dc47fc2b11b 100644 --- a/Tests/SRPTests/Projects/VisualEffectGraph_URP/Assets/GraphicsTests/104_ShaderGraphGenerationFTP.unity +++ b/Tests/SRPTests/Projects/VisualEffectGraph_URP/Assets/GraphicsTests/104_ShaderGraphGenerationFTP.unity @@ -158,6 +158,8 @@ VFXRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 257 m_RendererPriority: 0 m_StaticBatchInfo: @@ -177,6 +179,7 @@ VFXRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -276,6 +279,8 @@ VFXRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_StaticBatchInfo: @@ -295,6 +300,7 @@ VFXRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -438,6 +444,8 @@ MeshRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -459,6 +467,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -502,6 +511,8 @@ VFXRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 257 m_RendererPriority: 0 m_StaticBatchInfo: @@ -521,6 +532,7 @@ VFXRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -616,6 +628,8 @@ VFXRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 257 m_RendererPriority: 0 m_StaticBatchInfo: @@ -635,6 +649,7 @@ VFXRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -745,6 +760,8 @@ VFXRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 257 m_RendererPriority: 0 m_StaticBatchInfo: @@ -764,6 +781,7 @@ VFXRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -844,6 +862,8 @@ VFXRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_StaticBatchInfo: @@ -863,6 +883,7 @@ VFXRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -1038,6 +1059,8 @@ MeshRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -1059,6 +1082,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -1332,7 +1356,6 @@ MonoBehaviour: 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 @@ -1340,6 +1363,7 @@ MonoBehaviour: m_MipBias: 0 m_VarianceClampScale: 0.9 m_ContrastAdaptiveSharpening: 0 + m_Version: 2 --- !u!1 &360942860 GameObject: m_ObjectHideFlags: 0 @@ -1379,6 +1403,8 @@ VFXRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 257 m_RendererPriority: 0 m_StaticBatchInfo: @@ -1398,6 +1424,7 @@ VFXRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -1529,6 +1556,8 @@ MeshRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -1550,6 +1579,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -1629,6 +1659,8 @@ MeshRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -1650,6 +1682,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -1708,6 +1741,8 @@ VFXRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_StaticBatchInfo: @@ -1727,6 +1762,7 @@ VFXRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -1816,6 +1852,7 @@ Transform: - {fileID: 114583036} - {fileID: 639801375} - {fileID: 672512872} + - {fileID: 1933003378} m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &573328488 @@ -1879,6 +1916,8 @@ MeshRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -1900,6 +1939,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -2002,6 +2042,8 @@ MeshRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -2023,6 +2065,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -2066,6 +2109,8 @@ VFXRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 257 m_RendererPriority: 0 m_StaticBatchInfo: @@ -2085,6 +2130,7 @@ VFXRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -2195,6 +2241,8 @@ VFXRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_StaticBatchInfo: @@ -2214,6 +2262,7 @@ VFXRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -2315,6 +2364,8 @@ MeshRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -2336,6 +2387,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -2409,6 +2461,8 @@ VFXRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_StaticBatchInfo: @@ -2428,6 +2482,7 @@ VFXRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -2508,6 +2563,8 @@ VFXRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 257 m_RendererPriority: 0 m_StaticBatchInfo: @@ -2527,6 +2584,7 @@ VFXRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -2652,6 +2710,8 @@ MeshRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -2673,6 +2733,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -2731,6 +2792,8 @@ VFXRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 257 m_RendererPriority: 0 m_StaticBatchInfo: @@ -2750,6 +2813,7 @@ VFXRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -2845,6 +2909,8 @@ VFXRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 257 m_RendererPriority: 0 m_StaticBatchInfo: @@ -2864,6 +2930,7 @@ VFXRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -3039,17 +3106,23 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} m_Name: m_EditorClassIdentifier: - m_Version: 3 m_UsePipelineSettings: 1 m_AdditionalLightsShadowResolutionTier: 2 - m_LightLayerMask: 1 - m_RenderingLayers: 1 m_CustomShadowLayers: 0 - m_ShadowLayerMask: 1 - m_ShadowRenderingLayers: 1 m_LightCookieSize: {x: 1, y: 1} m_LightCookieOffset: {x: 0, y: 0} m_SoftShadowQuality: 1 + m_RenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_ShadowRenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_Version: 4 + m_LightLayerMask: 1 + m_ShadowLayerMask: 1 + m_RenderingLayers: 1 + m_ShadowRenderingLayers: 1 --- !u!1 &934684564 GameObject: m_ObjectHideFlags: 0 @@ -3110,6 +3183,8 @@ MeshRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -3131,6 +3206,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -3225,6 +3301,8 @@ MeshRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -3246,6 +3324,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -3325,6 +3404,8 @@ MeshRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -3346,6 +3427,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -3410,6 +3492,8 @@ MeshRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -3431,6 +3515,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -3560,6 +3645,8 @@ MeshRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 257 m_RendererPriority: 0 m_Materials: @@ -3581,6 +3668,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -3685,6 +3773,8 @@ MeshRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -3706,6 +3796,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -3749,6 +3840,8 @@ VFXRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 257 m_RendererPriority: 0 m_StaticBatchInfo: @@ -3768,6 +3861,7 @@ VFXRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -3899,6 +3993,8 @@ MeshRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -3920,6 +4016,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -3984,6 +4081,8 @@ MeshRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -4005,6 +4104,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -4099,6 +4199,8 @@ MeshRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -4120,6 +4222,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -4163,6 +4266,8 @@ VFXRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 257 m_RendererPriority: 0 m_StaticBatchInfo: @@ -4182,6 +4287,7 @@ VFXRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -4313,6 +4419,8 @@ MeshRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -4334,6 +4442,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -4413,6 +4522,8 @@ MeshRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -4434,6 +4545,112 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!1 &1588082746 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1588082747} + - component: {fileID: 1588082749} + - component: {fileID: 1588082748} + m_Layer: 0 + m_Name: 'Text: Non Exposed' + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1588082747 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1588082746} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0.85, y: -0.4, z: 0} + m_LocalScale: {x: 0.82, y: 0.82, z: 0.82} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 2045132519} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!102 &1588082748 +TextMesh: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1588082746} + m_Text: 'Non Exposed + + Property' + m_OffsetZ: 0 + m_CharacterSize: 0.03 + m_LineSpacing: 1 + m_Anchor: 4 + m_Alignment: 1 + m_TabSize: 4 + m_FontSize: 27 + m_FontStyle: 0 + m_RichText: 1 + m_Font: {fileID: 12800000, guid: 74a5091d8707f334b9a5c31ef71a64ba, type: 3} + m_Color: + serializedVersion: 2 + rgba: 4294967295 +--- !u!23 &1588082749 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1588082746} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 74a5091d8707f334b9a5c31ef71a64ba, type: 3} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -4513,6 +4730,8 @@ MeshRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -4534,6 +4753,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -4577,6 +4797,8 @@ VFXRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_StaticBatchInfo: @@ -4596,6 +4818,7 @@ VFXRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -4721,6 +4944,8 @@ MeshRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -4742,6 +4967,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -4836,6 +5062,8 @@ MeshRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -4857,6 +5085,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -4922,6 +5151,8 @@ MeshRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -4943,6 +5174,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -5009,6 +5241,8 @@ VFXRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 257 m_RendererPriority: 0 m_StaticBatchInfo: @@ -5028,6 +5262,7 @@ VFXRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -5159,6 +5394,8 @@ MeshRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -5180,10 +5417,128 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 m_AdditionalVertexStreams: {fileID: 0} +--- !u!1 &1933003377 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1933003378} + - component: {fileID: 1933003380} + - component: {fileID: 1933003379} + m_Layer: 0 + m_Name: VFX - Non Exposed Properties + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1933003378 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1933003377} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 1, y: 0.655, z: -0.823} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 481649549} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!73398921 &1933003379 +VFXRenderer: + serializedVersion: 1 + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1933003377} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 0 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!2083052967 &1933003380 +VisualEffect: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1933003377} + m_Enabled: 1 + m_Asset: {fileID: 8926484042661614526, guid: 3c59c1e09772c604ca36c130f6cf1d6b, type: 3} + m_InitialEventName: OnPlay + m_InitialEventNameOverriden: 0 + m_StartSeed: 0 + m_ResetSeedOnPlay: 1 + m_AllowInstancing: 1 + m_ResourceVersion: 1 + m_PropertySheet: + m_Float: + m_Array: [] + m_Vector2f: + m_Array: [] + m_Vector3f: + m_Array: [] + m_Vector4f: + m_Array: [] + m_Uint: + m_Array: [] + m_Int: + m_Array: [] + m_Matrix4x4f: + m_Array: [] + m_AnimationCurve: + m_Array: [] + m_Gradient: + m_Array: [] + m_NamedObject: + m_Array: [] + m_Bool: + m_Array: [] --- !u!1 &1985405117 GameObject: m_ObjectHideFlags: 0 @@ -5238,6 +5593,8 @@ VFXRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 257 m_RendererPriority: 0 m_StaticBatchInfo: @@ -5257,6 +5614,7 @@ VFXRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -5427,6 +5785,7 @@ Transform: - {fileID: 591357239} - {fileID: 2117761861} - {fileID: 1284519955} + - {fileID: 1588082747} m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &2117761860 @@ -5504,6 +5863,8 @@ MeshRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -5525,6 +5886,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 diff --git a/Tests/SRPTests/Projects/VisualEffectGraph_URP/Assets/GraphicsTests/104_ShaderGraphGenerationFTP/Shaders/SG_Non_Exposed_0.shadergraph b/Tests/SRPTests/Projects/VisualEffectGraph_URP/Assets/GraphicsTests/104_ShaderGraphGenerationFTP/Shaders/SG_Non_Exposed_0.shadergraph new file mode 100644 index 00000000000..6e4cc7ef492 --- /dev/null +++ b/Tests/SRPTests/Projects/VisualEffectGraph_URP/Assets/GraphicsTests/104_ShaderGraphGenerationFTP/Shaders/SG_Non_Exposed_0.shadergraph @@ -0,0 +1,473 @@ +{ + "m_SGVersion": 3, + "m_Type": "UnityEditor.ShaderGraph.GraphData", + "m_ObjectId": "f8073a6a35fb4af58ff0c5e0cfd3bb4e", + "m_Properties": [ + { + "m_Id": "73e69f1e598a4ff5bba7c4f2a5b3d68c" + } + ], + "m_Keywords": [], + "m_Dropdowns": [], + "m_CategoryData": [ + { + "m_Id": "eea6aa4ced144bf4bc45964548f077d8" + } + ], + "m_Nodes": [ + { + "m_Id": "5d6aa68b32104cf59aa067dce48fbb09" + }, + { + "m_Id": "5d4f3f057c2146d58e1619b47a0c6404" + }, + { + "m_Id": "5320db37066d4ac399fac9b9ea6d763d" + }, + { + "m_Id": "dd47e0a917534dcfaa2c6c1ed9bc4154" + }, + { + "m_Id": "1be4383ee7de4f5fbbe3003778e35ab5" + } + ], + "m_GroupDatas": [], + "m_StickyNoteDatas": [], + "m_Edges": [ + { + "m_OutputSlot": { + "m_Node": { + "m_Id": "1be4383ee7de4f5fbbe3003778e35ab5" + }, + "m_SlotId": 0 + }, + "m_InputSlot": { + "m_Node": { + "m_Id": "dd47e0a917534dcfaa2c6c1ed9bc4154" + }, + "m_SlotId": 0 + } + } + ], + "m_VertexContext": { + "m_Position": { + "x": 0.0, + "y": 0.0 + }, + "m_Blocks": [ + { + "m_Id": "5d6aa68b32104cf59aa067dce48fbb09" + }, + { + "m_Id": "5d4f3f057c2146d58e1619b47a0c6404" + }, + { + "m_Id": "5320db37066d4ac399fac9b9ea6d763d" + } + ] + }, + "m_FragmentContext": { + "m_Position": { + "x": 0.0, + "y": 200.0 + }, + "m_Blocks": [ + { + "m_Id": "dd47e0a917534dcfaa2c6c1ed9bc4154" + } + ] + }, + "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": "ec9ef162c16f41039513ff8308fda40f" + } + ] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.NormalMaterialSlot", + "m_ObjectId": "0a782aa2701444b48ad5519893bf3071", + "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": 0, + "m_Type": "UnityEditor.ShaderGraph.PropertyNode", + "m_ObjectId": "1be4383ee7de4f5fbbe3003778e35ab5", + "m_Group": { + "m_Id": "" + }, + "m_Name": "Property", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": -230.00001525878907, + "y": 237.0, + "width": 175.0, + "height": 34.0 + } + }, + "m_Slots": [ + { + "m_Id": "4484eb1e6a114e31a7c5b3d7a9ac3bd9" + } + ], + "synonyms": [], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_DismissedVersion": 0, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_Property": { + "m_Id": "73e69f1e598a4ff5bba7c4f2a5b3d68c" + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector3MaterialSlot", + "m_ObjectId": "4484eb1e6a114e31a7c5b3d7a9ac3bd9", + "m_Id": 0, + "m_DisplayName": "NonExposedVector3", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "Out", + "m_StageCapability": 3, + "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_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.BlockNode", + "m_ObjectId": "5320db37066d4ac399fac9b9ea6d763d", + "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": "78507007c9654a38ae63374b85f29bab" + } + ], + "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": "5d4f3f057c2146d58e1619b47a0c6404", + "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": "0a782aa2701444b48ad5519893bf3071" + } + ], + "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.BlockNode", + "m_ObjectId": "5d6aa68b32104cf59aa067dce48fbb09", + "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": "c9cfe2816a9b4c368610c4ec64ee216a" + } + ], + "synonyms": [], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_DismissedVersion": 0, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_SerializedDescriptor": "VertexDescription.Position" +} + +{ + "m_SGVersion": 1, + "m_Type": "UnityEditor.ShaderGraph.Internal.Vector3ShaderProperty", + "m_ObjectId": "73e69f1e598a4ff5bba7c4f2a5b3d68c", + "m_Guid": { + "m_GuidSerialized": "2e5b589c-d424-421b-9e83-6768c5a6ba3a" + }, + "promotedFromAssetID": "", + "promotedFromCategoryName": "", + "promotedOrdering": -1, + "m_Name": "NonExposedVector3", + "m_DefaultRefNameVersion": 1, + "m_RefNameGeneratedByDisplayName": "NonExposedVector3", + "m_DefaultReferenceName": "_NonExposedVector3", + "m_OverrideReferenceName": "", + "m_GeneratePropertyBlock": false, + "m_UseCustomSlotLabel": false, + "m_CustomSlotLabel": "", + "m_DismissedVersion": 0, + "m_Precision": 0, + "overrideHLSLDeclaration": true, + "hlslDeclarationOverride": 2, + "m_Hidden": false, + "m_PerRendererData": false, + "m_customAttributes": [], + "m_Value": { + "x": 0.0, + "y": 0.0, + "z": 0.0, + "w": 0.0 + } +} + +{ + "m_SGVersion": 2, + "m_Type": "UnityEditor.Rendering.Universal.ShaderGraph.UniversalUnlitSubTarget", + "m_ObjectId": "746b3d1d7fb644c783c51672ec3c1591" +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.TangentMaterialSlot", + "m_ObjectId": "78507007c9654a38ae63374b85f29bab", + "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.ColorRGBMaterialSlot", + "m_ObjectId": "8ffcbffb436240c0ae41e712a98e3f09", + "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.PositionMaterialSlot", + "m_ObjectId": "c9cfe2816a9b4c368610c4ec64ee216a", + "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.BlockNode", + "m_ObjectId": "dd47e0a917534dcfaa2c6c1ed9bc4154", + "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": "8ffcbffb436240c0ae41e712a98e3f09" + } + ], + "synonyms": [], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_DismissedVersion": 0, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_SerializedDescriptor": "SurfaceDescription.BaseColor" +} + +{ + "m_SGVersion": 1, + "m_Type": "UnityEditor.Rendering.Universal.ShaderGraph.UniversalTarget", + "m_ObjectId": "ec9ef162c16f41039513ff8308fda40f", + "m_Datas": [], + "m_ActiveSubTarget": { + "m_Id": "746b3d1d7fb644c783c51672ec3c1591" + }, + "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": true +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.CategoryData", + "m_ObjectId": "eea6aa4ced144bf4bc45964548f077d8", + "m_Name": "", + "m_ChildObjectList": [ + { + "m_Id": "73e69f1e598a4ff5bba7c4f2a5b3d68c" + } + ] +} + diff --git a/Tests/SRPTests/Projects/VisualEffectGraph_URP/Assets/GraphicsTests/104_ShaderGraphGenerationFTP/Shaders/SG_Non_Exposed_0.shadergraph.meta b/Tests/SRPTests/Projects/VisualEffectGraph_URP/Assets/GraphicsTests/104_ShaderGraphGenerationFTP/Shaders/SG_Non_Exposed_0.shadergraph.meta new file mode 100644 index 00000000000..8b8a8109e1b --- /dev/null +++ b/Tests/SRPTests/Projects/VisualEffectGraph_URP/Assets/GraphicsTests/104_ShaderGraphGenerationFTP/Shaders/SG_Non_Exposed_0.shadergraph.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: efa293df11e578a43bdb0bcfe6bd8730 +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: 625f186215c104763be7675aa2d941aa, type: 3} diff --git a/Tests/SRPTests/Projects/VisualEffectGraph_URP/Assets/GraphicsTests/104_ShaderGraphGenerationFTP/Shaders/SG_Non_Exposed_128.shadergraph b/Tests/SRPTests/Projects/VisualEffectGraph_URP/Assets/GraphicsTests/104_ShaderGraphGenerationFTP/Shaders/SG_Non_Exposed_128.shadergraph new file mode 100644 index 00000000000..d677c20a6aa --- /dev/null +++ b/Tests/SRPTests/Projects/VisualEffectGraph_URP/Assets/GraphicsTests/104_ShaderGraphGenerationFTP/Shaders/SG_Non_Exposed_128.shadergraph @@ -0,0 +1,473 @@ +{ + "m_SGVersion": 3, + "m_Type": "UnityEditor.ShaderGraph.GraphData", + "m_ObjectId": "f8073a6a35fb4af58ff0c5e0cfd3bb4e", + "m_Properties": [ + { + "m_Id": "73e69f1e598a4ff5bba7c4f2a5b3d68c" + } + ], + "m_Keywords": [], + "m_Dropdowns": [], + "m_CategoryData": [ + { + "m_Id": "eea6aa4ced144bf4bc45964548f077d8" + } + ], + "m_Nodes": [ + { + "m_Id": "5d6aa68b32104cf59aa067dce48fbb09" + }, + { + "m_Id": "5d4f3f057c2146d58e1619b47a0c6404" + }, + { + "m_Id": "5320db37066d4ac399fac9b9ea6d763d" + }, + { + "m_Id": "dd47e0a917534dcfaa2c6c1ed9bc4154" + }, + { + "m_Id": "1be4383ee7de4f5fbbe3003778e35ab5" + } + ], + "m_GroupDatas": [], + "m_StickyNoteDatas": [], + "m_Edges": [ + { + "m_OutputSlot": { + "m_Node": { + "m_Id": "1be4383ee7de4f5fbbe3003778e35ab5" + }, + "m_SlotId": 0 + }, + "m_InputSlot": { + "m_Node": { + "m_Id": "dd47e0a917534dcfaa2c6c1ed9bc4154" + }, + "m_SlotId": 0 + } + } + ], + "m_VertexContext": { + "m_Position": { + "x": 0.0, + "y": 0.0 + }, + "m_Blocks": [ + { + "m_Id": "5d6aa68b32104cf59aa067dce48fbb09" + }, + { + "m_Id": "5d4f3f057c2146d58e1619b47a0c6404" + }, + { + "m_Id": "5320db37066d4ac399fac9b9ea6d763d" + } + ] + }, + "m_FragmentContext": { + "m_Position": { + "x": 0.0, + "y": 200.0 + }, + "m_Blocks": [ + { + "m_Id": "dd47e0a917534dcfaa2c6c1ed9bc4154" + } + ] + }, + "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": "ec9ef162c16f41039513ff8308fda40f" + } + ] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.NormalMaterialSlot", + "m_ObjectId": "0a782aa2701444b48ad5519893bf3071", + "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": 0, + "m_Type": "UnityEditor.ShaderGraph.PropertyNode", + "m_ObjectId": "1be4383ee7de4f5fbbe3003778e35ab5", + "m_Group": { + "m_Id": "" + }, + "m_Name": "Property", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": -230.00001525878907, + "y": 237.0, + "width": 175.0, + "height": 34.0 + } + }, + "m_Slots": [ + { + "m_Id": "4484eb1e6a114e31a7c5b3d7a9ac3bd9" + } + ], + "synonyms": [], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_DismissedVersion": 0, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_Property": { + "m_Id": "73e69f1e598a4ff5bba7c4f2a5b3d68c" + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector3MaterialSlot", + "m_ObjectId": "4484eb1e6a114e31a7c5b3d7a9ac3bd9", + "m_Id": 0, + "m_DisplayName": "NonExposedVector3", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "Out", + "m_StageCapability": 3, + "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_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.BlockNode", + "m_ObjectId": "5320db37066d4ac399fac9b9ea6d763d", + "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": "78507007c9654a38ae63374b85f29bab" + } + ], + "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": "5d4f3f057c2146d58e1619b47a0c6404", + "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": "0a782aa2701444b48ad5519893bf3071" + } + ], + "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.BlockNode", + "m_ObjectId": "5d6aa68b32104cf59aa067dce48fbb09", + "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": "c9cfe2816a9b4c368610c4ec64ee216a" + } + ], + "synonyms": [], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_DismissedVersion": 0, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_SerializedDescriptor": "VertexDescription.Position" +} + +{ + "m_SGVersion": 1, + "m_Type": "UnityEditor.ShaderGraph.Internal.Vector3ShaderProperty", + "m_ObjectId": "73e69f1e598a4ff5bba7c4f2a5b3d68c", + "m_Guid": { + "m_GuidSerialized": "2e5b589c-d424-421b-9e83-6768c5a6ba3a" + }, + "promotedFromAssetID": "", + "promotedFromCategoryName": "", + "promotedOrdering": -1, + "m_Name": "NonExposedVector3", + "m_DefaultRefNameVersion": 1, + "m_RefNameGeneratedByDisplayName": "NonExposedVector3", + "m_DefaultReferenceName": "_NonExposedVector3", + "m_OverrideReferenceName": "", + "m_GeneratePropertyBlock": false, + "m_UseCustomSlotLabel": false, + "m_CustomSlotLabel": "", + "m_DismissedVersion": 0, + "m_Precision": 0, + "overrideHLSLDeclaration": true, + "hlslDeclarationOverride": 2, + "m_Hidden": false, + "m_PerRendererData": false, + "m_customAttributes": [], + "m_Value": { + "x": 0.5, + "y": 0.5, + "z": 0.5, + "w": 0.0 + } +} + +{ + "m_SGVersion": 2, + "m_Type": "UnityEditor.Rendering.Universal.ShaderGraph.UniversalUnlitSubTarget", + "m_ObjectId": "746b3d1d7fb644c783c51672ec3c1591" +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.TangentMaterialSlot", + "m_ObjectId": "78507007c9654a38ae63374b85f29bab", + "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.ColorRGBMaterialSlot", + "m_ObjectId": "8ffcbffb436240c0ae41e712a98e3f09", + "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.PositionMaterialSlot", + "m_ObjectId": "c9cfe2816a9b4c368610c4ec64ee216a", + "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.BlockNode", + "m_ObjectId": "dd47e0a917534dcfaa2c6c1ed9bc4154", + "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": "8ffcbffb436240c0ae41e712a98e3f09" + } + ], + "synonyms": [], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_DismissedVersion": 0, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_SerializedDescriptor": "SurfaceDescription.BaseColor" +} + +{ + "m_SGVersion": 1, + "m_Type": "UnityEditor.Rendering.Universal.ShaderGraph.UniversalTarget", + "m_ObjectId": "ec9ef162c16f41039513ff8308fda40f", + "m_Datas": [], + "m_ActiveSubTarget": { + "m_Id": "746b3d1d7fb644c783c51672ec3c1591" + }, + "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": true +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.CategoryData", + "m_ObjectId": "eea6aa4ced144bf4bc45964548f077d8", + "m_Name": "", + "m_ChildObjectList": [ + { + "m_Id": "73e69f1e598a4ff5bba7c4f2a5b3d68c" + } + ] +} + diff --git a/Tests/SRPTests/Projects/VisualEffectGraph_URP/Assets/GraphicsTests/104_ShaderGraphGenerationFTP/Shaders/SG_Non_Exposed_128.shadergraph.meta b/Tests/SRPTests/Projects/VisualEffectGraph_URP/Assets/GraphicsTests/104_ShaderGraphGenerationFTP/Shaders/SG_Non_Exposed_128.shadergraph.meta new file mode 100644 index 00000000000..d4d1690c28b --- /dev/null +++ b/Tests/SRPTests/Projects/VisualEffectGraph_URP/Assets/GraphicsTests/104_ShaderGraphGenerationFTP/Shaders/SG_Non_Exposed_128.shadergraph.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 5c0ce12caf0a9154bb522d4660da1ab0 +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: 625f186215c104763be7675aa2d941aa, type: 3} diff --git a/Tests/SRPTests/Projects/VisualEffectGraph_URP/Assets/GraphicsTests/104_ShaderGraphGenerationFTP/Shaders/SG_Non_Exposed_256.shadergraph b/Tests/SRPTests/Projects/VisualEffectGraph_URP/Assets/GraphicsTests/104_ShaderGraphGenerationFTP/Shaders/SG_Non_Exposed_256.shadergraph new file mode 100644 index 00000000000..30bb191436c --- /dev/null +++ b/Tests/SRPTests/Projects/VisualEffectGraph_URP/Assets/GraphicsTests/104_ShaderGraphGenerationFTP/Shaders/SG_Non_Exposed_256.shadergraph @@ -0,0 +1,473 @@ +{ + "m_SGVersion": 3, + "m_Type": "UnityEditor.ShaderGraph.GraphData", + "m_ObjectId": "f8073a6a35fb4af58ff0c5e0cfd3bb4e", + "m_Properties": [ + { + "m_Id": "73e69f1e598a4ff5bba7c4f2a5b3d68c" + } + ], + "m_Keywords": [], + "m_Dropdowns": [], + "m_CategoryData": [ + { + "m_Id": "eea6aa4ced144bf4bc45964548f077d8" + } + ], + "m_Nodes": [ + { + "m_Id": "5d6aa68b32104cf59aa067dce48fbb09" + }, + { + "m_Id": "5d4f3f057c2146d58e1619b47a0c6404" + }, + { + "m_Id": "5320db37066d4ac399fac9b9ea6d763d" + }, + { + "m_Id": "dd47e0a917534dcfaa2c6c1ed9bc4154" + }, + { + "m_Id": "1be4383ee7de4f5fbbe3003778e35ab5" + } + ], + "m_GroupDatas": [], + "m_StickyNoteDatas": [], + "m_Edges": [ + { + "m_OutputSlot": { + "m_Node": { + "m_Id": "1be4383ee7de4f5fbbe3003778e35ab5" + }, + "m_SlotId": 0 + }, + "m_InputSlot": { + "m_Node": { + "m_Id": "dd47e0a917534dcfaa2c6c1ed9bc4154" + }, + "m_SlotId": 0 + } + } + ], + "m_VertexContext": { + "m_Position": { + "x": 0.0, + "y": 0.0 + }, + "m_Blocks": [ + { + "m_Id": "5d6aa68b32104cf59aa067dce48fbb09" + }, + { + "m_Id": "5d4f3f057c2146d58e1619b47a0c6404" + }, + { + "m_Id": "5320db37066d4ac399fac9b9ea6d763d" + } + ] + }, + "m_FragmentContext": { + "m_Position": { + "x": 0.0, + "y": 200.0 + }, + "m_Blocks": [ + { + "m_Id": "dd47e0a917534dcfaa2c6c1ed9bc4154" + } + ] + }, + "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": "ec9ef162c16f41039513ff8308fda40f" + } + ] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.NormalMaterialSlot", + "m_ObjectId": "0a782aa2701444b48ad5519893bf3071", + "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": 0, + "m_Type": "UnityEditor.ShaderGraph.PropertyNode", + "m_ObjectId": "1be4383ee7de4f5fbbe3003778e35ab5", + "m_Group": { + "m_Id": "" + }, + "m_Name": "Property", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": -230.00001525878907, + "y": 237.0, + "width": 175.0, + "height": 34.0 + } + }, + "m_Slots": [ + { + "m_Id": "4484eb1e6a114e31a7c5b3d7a9ac3bd9" + } + ], + "synonyms": [], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_DismissedVersion": 0, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_Property": { + "m_Id": "73e69f1e598a4ff5bba7c4f2a5b3d68c" + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector3MaterialSlot", + "m_ObjectId": "4484eb1e6a114e31a7c5b3d7a9ac3bd9", + "m_Id": 0, + "m_DisplayName": "NonExposedVector3", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "Out", + "m_StageCapability": 3, + "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_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.BlockNode", + "m_ObjectId": "5320db37066d4ac399fac9b9ea6d763d", + "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": "78507007c9654a38ae63374b85f29bab" + } + ], + "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": "5d4f3f057c2146d58e1619b47a0c6404", + "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": "0a782aa2701444b48ad5519893bf3071" + } + ], + "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.BlockNode", + "m_ObjectId": "5d6aa68b32104cf59aa067dce48fbb09", + "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": "c9cfe2816a9b4c368610c4ec64ee216a" + } + ], + "synonyms": [], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_DismissedVersion": 0, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_SerializedDescriptor": "VertexDescription.Position" +} + +{ + "m_SGVersion": 1, + "m_Type": "UnityEditor.ShaderGraph.Internal.Vector3ShaderProperty", + "m_ObjectId": "73e69f1e598a4ff5bba7c4f2a5b3d68c", + "m_Guid": { + "m_GuidSerialized": "2e5b589c-d424-421b-9e83-6768c5a6ba3a" + }, + "promotedFromAssetID": "", + "promotedFromCategoryName": "", + "promotedOrdering": -1, + "m_Name": "NonExposedVector3", + "m_DefaultRefNameVersion": 1, + "m_RefNameGeneratedByDisplayName": "NonExposedVector3", + "m_DefaultReferenceName": "_NonExposedVector3", + "m_OverrideReferenceName": "", + "m_GeneratePropertyBlock": false, + "m_UseCustomSlotLabel": false, + "m_CustomSlotLabel": "", + "m_DismissedVersion": 0, + "m_Precision": 0, + "overrideHLSLDeclaration": true, + "hlslDeclarationOverride": 2, + "m_Hidden": false, + "m_PerRendererData": false, + "m_customAttributes": [], + "m_Value": { + "x": 1.0, + "y": 1.0, + "z": 1.0, + "w": 0.0 + } +} + +{ + "m_SGVersion": 2, + "m_Type": "UnityEditor.Rendering.Universal.ShaderGraph.UniversalUnlitSubTarget", + "m_ObjectId": "746b3d1d7fb644c783c51672ec3c1591" +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.TangentMaterialSlot", + "m_ObjectId": "78507007c9654a38ae63374b85f29bab", + "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.ColorRGBMaterialSlot", + "m_ObjectId": "8ffcbffb436240c0ae41e712a98e3f09", + "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.PositionMaterialSlot", + "m_ObjectId": "c9cfe2816a9b4c368610c4ec64ee216a", + "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.BlockNode", + "m_ObjectId": "dd47e0a917534dcfaa2c6c1ed9bc4154", + "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": "8ffcbffb436240c0ae41e712a98e3f09" + } + ], + "synonyms": [], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_DismissedVersion": 0, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_SerializedDescriptor": "SurfaceDescription.BaseColor" +} + +{ + "m_SGVersion": 1, + "m_Type": "UnityEditor.Rendering.Universal.ShaderGraph.UniversalTarget", + "m_ObjectId": "ec9ef162c16f41039513ff8308fda40f", + "m_Datas": [], + "m_ActiveSubTarget": { + "m_Id": "746b3d1d7fb644c783c51672ec3c1591" + }, + "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": true +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.CategoryData", + "m_ObjectId": "eea6aa4ced144bf4bc45964548f077d8", + "m_Name": "", + "m_ChildObjectList": [ + { + "m_Id": "73e69f1e598a4ff5bba7c4f2a5b3d68c" + } + ] +} + diff --git a/Tests/SRPTests/Projects/VisualEffectGraph_URP/Assets/GraphicsTests/104_ShaderGraphGenerationFTP/Shaders/SG_Non_Exposed_256.shadergraph.meta b/Tests/SRPTests/Projects/VisualEffectGraph_URP/Assets/GraphicsTests/104_ShaderGraphGenerationFTP/Shaders/SG_Non_Exposed_256.shadergraph.meta new file mode 100644 index 00000000000..78190cd9edb --- /dev/null +++ b/Tests/SRPTests/Projects/VisualEffectGraph_URP/Assets/GraphicsTests/104_ShaderGraphGenerationFTP/Shaders/SG_Non_Exposed_256.shadergraph.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: a4c512a64bdd7d348a16833045884835 +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: 625f186215c104763be7675aa2d941aa, type: 3} diff --git a/Tests/SRPTests/Projects/VisualEffectGraph_URP/Assets/GraphicsTests/104_ShaderGraphGenerationFTP/VFX/VFX - Non Exposed.vfx b/Tests/SRPTests/Projects/VisualEffectGraph_URP/Assets/GraphicsTests/104_ShaderGraphGenerationFTP/VFX/VFX - Non Exposed.vfx new file mode 100644 index 00000000000..a10319c87be --- /dev/null +++ b/Tests/SRPTests/Projects/VisualEffectGraph_URP/Assets/GraphicsTests/104_ShaderGraphGenerationFTP/VFX/VFX - Non Exposed.vfx @@ -0,0 +1,2094 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &114340500867371532 +MonoBehaviour: + m_ObjectHideFlags: 1 + 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: d01270efd3285ea4a9d6c555cb0a8027, type: 3} + m_Name: VFXUI + m_EditorClassIdentifier: + groupInfos: [] + stickyNoteInfos: [] + categories: [] + uiBounds: + serializedVersion: 2 + x: 369 + y: -1374 + width: 1312 + height: 1373 +--- !u!114 &114350483966674976 +MonoBehaviour: + m_ObjectHideFlags: 1 + 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: 7d4c867f6b72b714dbb5fd1780afe208, type: 3} + m_Name: 104_SG_Non_Exposed + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661614608} + - {fileID: 8926484042661614613} + - {fileID: 8926484042661614860} + - {fileID: 8926484042661614887} + - {fileID: 8926484042661614903} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_UIInfos: {fileID: 114340500867371532} + m_CustomAttributes: [] + m_ParameterInfo: [] + m_ImportDependencies: [] + m_GraphVersion: 19 + m_ResourceVersion: 1 + m_SubgraphDependencies: [] + m_CategoryPath: +--- !u!2058629511 &8926484042661614527 +VisualEffectResource: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: 104_SG_Non_Exposed + m_Graph: {fileID: 114350483966674976} + m_Infos: + m_RendererSettings: + motionVectorGenerationMode: 0 + shadowCastingMode: 1 + rayTracingMode: 0 + receiveShadows: 0 + reflectionProbeUsage: 0 + lightProbeUsage: 0 + m_CullingFlags: 3 + m_UpdateMode: 0 + m_PreWarmDeltaTime: 0.05 + m_PreWarmStepCount: 0 + m_InitialEventName: OnPlay + m_InstancingMode: 0 + m_InstancingCapacity: 64 +--- !u!114 &8926484042661614608 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 73a13919d81fb7444849bae8b5c812a2, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: + - {fileID: 8926484042661614856} + m_UIPosition: {x: 877, y: -1374} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: [] + m_Label: Spawn system + m_Data: {fileID: 8926484042661614609} + m_InputFlowSlot: + - link: [] + - link: [] + m_OutputFlowSlot: + - link: + - context: {fileID: 8926484042661614613} + slotIndex: 0 + loopDuration: 0 + loopCount: 0 + delayBeforeLoop: 0 + delayAfterLoop: 0 +--- !u!114 &8926484042661614609 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f68759077adc0b143b6e1c101e82065e, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + title: + m_Owners: + - {fileID: 8926484042661614608} +--- !u!114 &8926484042661614613 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9dfea48843f53fc438eabc12a3a30abc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 877, y: -937} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661614774} + m_OutputSlots: [] + m_Label: Initialize Particles + m_Data: {fileID: 8926484042661614627} + m_InputFlowSlot: + - link: + - context: {fileID: 8926484042661614608} + slotIndex: 0 + m_OutputFlowSlot: + - link: + - context: {fileID: 8926484042661614860} + slotIndex: 0 + - context: {fileID: 8926484042661614887} + slotIndex: 0 + - context: {fileID: 8926484042661614903} + slotIndex: 0 +--- !u!114 &8926484042661614627 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d78581a96eae8bf4398c282eb0b098bd, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + title: Simple Loop + m_Owners: + - {fileID: 8926484042661614613} + - {fileID: 8926484042661614860} + - {fileID: 8926484042661614887} + - {fileID: 8926484042661614903} + dataType: 0 + capacity: 1 + stripCapacity: 1 + particlePerStripCount: 32 + needsComputeBounds: 0 + boundsMode: 1 + m_Space: 0 +--- !u!114 &8926484042661614774 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1b605c022ee79394a8a776c0869b3f9a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661614775} + - {fileID: 8926484042661614779} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614774} + m_MasterData: + m_Owner: {fileID: 8926484042661614613} + m_Value: + m_Type: + m_SerializableType: UnityEditor.VFX.AABox, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"center":{"x":0.0,"y":0.0,"z":0.0},"size":{"x":1.0,"y":1.0,"z":1.0}}' + m_Space: 0 + m_Property: + name: bounds + m_serializedType: + m_SerializableType: UnityEditor.VFX.AABox, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614775 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614774} + m_Children: + - {fileID: 8926484042661614776} + - {fileID: 8926484042661614777} + - {fileID: 8926484042661614778} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614774} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: -1 + m_Property: + name: center + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614776 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614775} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614774} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: -1 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614777 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614775} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614774} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: -1 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614778 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614775} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614774} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: -1 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614779 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614774} + m_Children: + - {fileID: 8926484042661614780} + - {fileID: 8926484042661614781} + - {fileID: 8926484042661614782} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614774} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: -1 + m_Property: + name: size + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614780 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614779} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614774} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: -1 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614781 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614779} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614774} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: -1 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614782 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614779} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614774} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: -1 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614856 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5e382412bb691334bb79457a6c127924, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.VisualEffectGraph.Editor::UnityEditor.VFX.VFXSpawnerBurst + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614608} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661614857} + - {fileID: 8926484042661614858} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661614859} + repeat: 0 + spawnMode: 0 + delayMode: 0 +--- !u!114 &8926484042661614857 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.VisualEffectGraph.Editor::UnityEditor.VFX.VFXSlotFloat + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614857} + m_MasterData: + m_Owner: {fileID: 8926484042661614856} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: -1 + m_Property: + name: Count + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614858 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.VisualEffectGraph.Editor::UnityEditor.VFX.VFXSlotFloat + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614858} + m_MasterData: + m_Owner: {fileID: 8926484042661614856} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: -1 + m_Property: + name: Delay + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614859 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.VisualEffectGraph.Editor::UnityEditor.VFX.VFXSlotBool + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614859} + m_MasterData: + m_Owner: {fileID: 8926484042661614856} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: -1 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614860 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9956086b52aebe1449639a9ac65802c2, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.VisualEffectGraph.Editor::UnityEditor.VFX.VFXComposedParticleOutput + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: + - {fileID: 8926484042661614869} + - {fileID: 8926484042661614871} + - {fileID: 8926484042661614880} + m_UIPosition: {x: 369, y: -396} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: [] + m_Label: 0 + m_Data: {fileID: 8926484042661614627} + m_InputFlowSlot: + - link: + - context: {fileID: 8926484042661614613} + slotIndex: 0 + m_OutputFlowSlot: + - link: [] + blendMode: 1 + cullMode: 0 + zWriteMode: 0 + zTestMode: 0 + useAlphaClipping: 0 + generateMotionVector: 0 + excludeFromTUAndAA: 0 + sortingPriority: 0 + m_SubOutputs: + - {fileID: 8926484042661614868} + useBaseColorMap: 3 + colorMapping: 0 + uvMode: 0 + flipbookLayout: 0 + flipbookBlendFrames: 0 + flipbookMotionVectors: 0 + useSoftParticle: 0 + vfxSystemSortPriority: 0 + sort: 0 + sortMode: 0 + revertSorting: 0 + indirectDraw: 0 + computeCulling: 0 + frustumCulling: 0 + castShadows: 0 + useExposureWeight: 0 + enableRayTracing: 0 + decimationFactor: 1 + raytracedScaleMode: 0 + needsOwnSort: 0 + needsOwnAabbBuffer: 0 + m_Topology: + rid: 1000 + m_Shading: + rid: 1001 + references: + version: 2 + RefIds: + - rid: 1000 + type: {class: ParticleTopologyPlanarPrimitive, ns: UnityEditor.VFX, asm: Unity.VisualEffectGraph.Editor} + data: + primitiveType: 1 + - rid: 1001 + type: {class: ParticleShadingShaderGraph, ns: UnityEditor.VFX, asm: Unity.VisualEffectGraph.Editor} + data: + shaderGraph: {fileID: 4333940904281232215, guid: efa293df11e578a43bdb0bcfe6bd8730, + type: 3} + materialSettings: + m_PropertyNames: [] + m_PropertyValues: [] + renderQueue: -1 +--- !u!114 &8926484042661614868 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 388ad3b1dc9c6ae45b630f914fab638f, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Editor::UnityEditor.VFX.URP.VFXURPSubOutput + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 +--- !u!114 &8926484042661614869 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d16c6aeaef944094b9a1633041804207, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614860} + m_Children: [] + m_UIPosition: {x: 0, y: 2} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661614870} + mode: 0 + axes: 4 + faceRay: 1 +--- !u!114 &8926484042661614870 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614870} + m_MasterData: + m_Owner: {fileID: 8926484042661614869} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: -1 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614871 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.VisualEffectGraph.Editor::UnityEditor.VFX.Block.SetAttribute + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614860} + m_Children: [] + m_UIPosition: {x: 0, y: 77} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661614872} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661614873} + attribute: size + Composition: 0 + Source: 0 + Random: 0 + channels: 6 +--- !u!114 &8926484042661614872 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.VisualEffectGraph.Editor::UnityEditor.VFX.VFXSlotFloat + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614872} + m_MasterData: + m_Owner: {fileID: 8926484042661614871} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.2 + m_Space: -1 + m_Property: + name: _Size + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614873 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.VisualEffectGraph.Editor::UnityEditor.VFX.VFXSlotBool + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614873} + m_MasterData: + m_Owner: {fileID: 8926484042661614871} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: -1 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614880 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.VisualEffectGraph.Editor::UnityEditor.VFX.Block.SetAttribute + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614860} + m_Children: [] + m_UIPosition: {x: 0, y: 151} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661614881} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661614886} + attribute: position + Composition: 0 + Source: 0 + Random: 0 + channels: 6 +--- !u!114 &8926484042661614881 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5265657162cc1a241bba03a3b0476d99, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.VisualEffectGraph.Editor::UnityEditor.VFX.VFXSlotPosition + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661614882} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614881} + m_MasterData: + m_Owner: {fileID: 8926484042661614880} + m_Value: + m_Type: + m_SerializableType: UnityEditor.VFX.Position, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"position":{"x":0.15000000596046449,"y":0.0,"z":0.0}}' + m_Space: 0 + m_Property: + name: _Position + m_serializedType: + m_SerializableType: UnityEditor.VFX.Position, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614882 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.VisualEffectGraph.Editor::UnityEditor.VFX.VFXSlotFloat3 + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614881} + m_Children: + - {fileID: 8926484042661614883} + - {fileID: 8926484042661614884} + - {fileID: 8926484042661614885} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614881} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: -1 + m_Property: + name: position + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614883 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.VisualEffectGraph.Editor::UnityEditor.VFX.VFXSlotFloat + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614882} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614881} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: -1 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614884 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.VisualEffectGraph.Editor::UnityEditor.VFX.VFXSlotFloat + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614882} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614881} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: -1 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614885 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.VisualEffectGraph.Editor::UnityEditor.VFX.VFXSlotFloat + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614882} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614881} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: -1 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614886 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.VisualEffectGraph.Editor::UnityEditor.VFX.VFXSlotBool + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614886} + m_MasterData: + m_Owner: {fileID: 8926484042661614880} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: -1 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614887 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9956086b52aebe1449639a9ac65802c2, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.VisualEffectGraph.Editor::UnityEditor.VFX.VFXComposedParticleOutput + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: + - {fileID: 8926484042661614890} + - {fileID: 8926484042661614893} + - {fileID: 8926484042661614896} + m_UIPosition: {x: 793, y: -396} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: [] + m_Label: 128 + m_Data: {fileID: 8926484042661614627} + m_InputFlowSlot: + - link: + - context: {fileID: 8926484042661614613} + slotIndex: 0 + m_OutputFlowSlot: + - link: [] + blendMode: 1 + cullMode: 0 + zWriteMode: 0 + zTestMode: 0 + useAlphaClipping: 0 + generateMotionVector: 0 + excludeFromTUAndAA: 0 + sortingPriority: 0 + m_SubOutputs: + - {fileID: 8926484042661614892} + useBaseColorMap: 3 + colorMapping: 0 + uvMode: 0 + flipbookLayout: 0 + flipbookBlendFrames: 0 + flipbookMotionVectors: 0 + useSoftParticle: 0 + vfxSystemSortPriority: 0 + sort: 0 + sortMode: 0 + revertSorting: 0 + indirectDraw: 0 + computeCulling: 0 + frustumCulling: 0 + castShadows: 0 + useExposureWeight: 0 + enableRayTracing: 0 + decimationFactor: 1 + raytracedScaleMode: 0 + needsOwnSort: 0 + needsOwnAabbBuffer: 0 + m_Topology: + rid: 2166849807757606915 + m_Shading: + rid: 2166849807757606916 + references: + version: 2 + RefIds: + - rid: 2166849807757606915 + type: {class: ParticleTopologyPlanarPrimitive, ns: UnityEditor.VFX, asm: Unity.VisualEffectGraph.Editor} + data: + primitiveType: 1 + - rid: 2166849807757606916 + type: {class: ParticleShadingShaderGraph, ns: UnityEditor.VFX, asm: Unity.VisualEffectGraph.Editor} + data: + shaderGraph: {fileID: 4333940904281232215, guid: 5c0ce12caf0a9154bb522d4660da1ab0, + type: 3} + materialSettings: + m_PropertyNames: [] + m_PropertyValues: [] + renderQueue: -1 +--- !u!114 &8926484042661614890 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d16c6aeaef944094b9a1633041804207, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.VisualEffectGraph.Editor::UnityEditor.VFX.Block.Orient + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614887} + m_Children: [] + m_UIPosition: {x: 0, y: 2} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661614891} + mode: 0 + axes: 4 + faceRay: 1 +--- !u!114 &8926484042661614891 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.VisualEffectGraph.Editor::UnityEditor.VFX.VFXSlotBool + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614891} + m_MasterData: + m_Owner: {fileID: 8926484042661614890} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: -1 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614892 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 388ad3b1dc9c6ae45b630f914fab638f, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Editor::UnityEditor.VFX.URP.VFXURPSubOutput + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 +--- !u!114 &8926484042661614893 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.VisualEffectGraph.Editor::UnityEditor.VFX.Block.SetAttribute + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614887} + m_Children: [] + m_UIPosition: {x: 0, y: 77} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661614894} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661614895} + attribute: size + Composition: 0 + Source: 0 + Random: 0 + channels: 6 +--- !u!114 &8926484042661614894 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.VisualEffectGraph.Editor::UnityEditor.VFX.VFXSlotFloat + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614894} + m_MasterData: + m_Owner: {fileID: 8926484042661614893} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.2 + m_Space: -1 + m_Property: + name: _Size + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614895 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.VisualEffectGraph.Editor::UnityEditor.VFX.VFXSlotBool + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614895} + m_MasterData: + m_Owner: {fileID: 8926484042661614893} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: -1 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614896 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.VisualEffectGraph.Editor::UnityEditor.VFX.Block.SetAttribute + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614887} + m_Children: [] + m_UIPosition: {x: 0, y: 151} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661614897} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661614902} + attribute: position + Composition: 0 + Source: 0 + Random: 0 + channels: 6 +--- !u!114 &8926484042661614897 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5265657162cc1a241bba03a3b0476d99, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.VisualEffectGraph.Editor::UnityEditor.VFX.VFXSlotPosition + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661614898} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614897} + m_MasterData: + m_Owner: {fileID: 8926484042661614896} + m_Value: + m_Type: + m_SerializableType: UnityEditor.VFX.Position, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"position":{"x":0.4000000059604645,"y":0.0,"z":0.0}}' + m_Space: 0 + m_Property: + name: _Position + m_serializedType: + m_SerializableType: UnityEditor.VFX.Position, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614898 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.VisualEffectGraph.Editor::UnityEditor.VFX.VFXSlotFloat3 + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614897} + m_Children: + - {fileID: 8926484042661614899} + - {fileID: 8926484042661614900} + - {fileID: 8926484042661614901} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614897} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: -1 + m_Property: + name: position + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614899 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.VisualEffectGraph.Editor::UnityEditor.VFX.VFXSlotFloat + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614898} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614897} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: -1 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614900 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.VisualEffectGraph.Editor::UnityEditor.VFX.VFXSlotFloat + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614898} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614897} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: -1 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614901 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.VisualEffectGraph.Editor::UnityEditor.VFX.VFXSlotFloat + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614898} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614897} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: -1 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614902 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.VisualEffectGraph.Editor::UnityEditor.VFX.VFXSlotBool + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614902} + m_MasterData: + m_Owner: {fileID: 8926484042661614896} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: -1 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614903 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9956086b52aebe1449639a9ac65802c2, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.VisualEffectGraph.Editor::UnityEditor.VFX.VFXComposedParticleOutput + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: + - {fileID: 8926484042661614906} + - {fileID: 8926484042661614909} + - {fileID: 8926484042661614912} + m_UIPosition: {x: 1257, y: -396} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: [] + m_Label: 256 + m_Data: {fileID: 8926484042661614627} + m_InputFlowSlot: + - link: + - context: {fileID: 8926484042661614613} + slotIndex: 0 + m_OutputFlowSlot: + - link: [] + blendMode: 1 + cullMode: 0 + zWriteMode: 0 + zTestMode: 0 + useAlphaClipping: 0 + generateMotionVector: 0 + excludeFromTUAndAA: 0 + sortingPriority: 0 + m_SubOutputs: + - {fileID: 8926484042661614908} + useBaseColorMap: 3 + colorMapping: 0 + uvMode: 0 + flipbookLayout: 0 + flipbookBlendFrames: 0 + flipbookMotionVectors: 0 + useSoftParticle: 0 + vfxSystemSortPriority: 0 + sort: 0 + sortMode: 0 + revertSorting: 0 + indirectDraw: 0 + computeCulling: 0 + frustumCulling: 0 + castShadows: 0 + useExposureWeight: 0 + enableRayTracing: 0 + decimationFactor: 1 + raytracedScaleMode: 0 + needsOwnSort: 0 + needsOwnAabbBuffer: 0 + m_Topology: + rid: 2166849807757606919 + m_Shading: + rid: 2166849807757606920 + references: + version: 2 + RefIds: + - rid: 2166849807757606919 + type: {class: ParticleTopologyPlanarPrimitive, ns: UnityEditor.VFX, asm: Unity.VisualEffectGraph.Editor} + data: + primitiveType: 1 + - rid: 2166849807757606920 + type: {class: ParticleShadingShaderGraph, ns: UnityEditor.VFX, asm: Unity.VisualEffectGraph.Editor} + data: + shaderGraph: {fileID: 4333940904281232215, guid: a4c512a64bdd7d348a16833045884835, + type: 3} + materialSettings: + m_PropertyNames: [] + m_PropertyValues: [] + renderQueue: -1 +--- !u!114 &8926484042661614906 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d16c6aeaef944094b9a1633041804207, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.VisualEffectGraph.Editor::UnityEditor.VFX.Block.Orient + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614903} + m_Children: [] + m_UIPosition: {x: 702.0974, y: 190.44534} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661614907} + mode: 0 + axes: 4 + faceRay: 1 +--- !u!114 &8926484042661614907 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.VisualEffectGraph.Editor::UnityEditor.VFX.VFXSlotBool + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614907} + m_MasterData: + m_Owner: {fileID: 8926484042661614906} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: -1 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614908 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 388ad3b1dc9c6ae45b630f914fab638f, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Editor::UnityEditor.VFX.URP.VFXURPSubOutput + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 +--- !u!114 &8926484042661614909 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.VisualEffectGraph.Editor::UnityEditor.VFX.Block.SetAttribute + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614903} + m_Children: [] + m_UIPosition: {x: 702.0974, y: 265.44534} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661614910} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661614911} + attribute: size + Composition: 0 + Source: 0 + Random: 0 + channels: 6 +--- !u!114 &8926484042661614910 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.VisualEffectGraph.Editor::UnityEditor.VFX.VFXSlotFloat + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614910} + m_MasterData: + m_Owner: {fileID: 8926484042661614909} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.2 + m_Space: -1 + m_Property: + name: _Size + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614911 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.VisualEffectGraph.Editor::UnityEditor.VFX.VFXSlotBool + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614911} + m_MasterData: + m_Owner: {fileID: 8926484042661614909} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: -1 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614912 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.VisualEffectGraph.Editor::UnityEditor.VFX.Block.SetAttribute + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614903} + m_Children: [] + m_UIPosition: {x: 702.0974, y: 339.44534} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661614913} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661614918} + attribute: position + Composition: 0 + Source: 0 + Random: 0 + channels: 6 +--- !u!114 &8926484042661614913 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5265657162cc1a241bba03a3b0476d99, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.VisualEffectGraph.Editor::UnityEditor.VFX.VFXSlotPosition + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661614914} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614913} + m_MasterData: + m_Owner: {fileID: 8926484042661614912} + m_Value: + m_Type: + m_SerializableType: UnityEditor.VFX.Position, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"position":{"x":0.6499999761581421,"y":0.0,"z":0.0}}' + m_Space: 0 + m_Property: + name: _Position + m_serializedType: + m_SerializableType: UnityEditor.VFX.Position, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614914 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.VisualEffectGraph.Editor::UnityEditor.VFX.VFXSlotFloat3 + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614913} + m_Children: + - {fileID: 8926484042661614915} + - {fileID: 8926484042661614916} + - {fileID: 8926484042661614917} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614913} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: -1 + m_Property: + name: position + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614915 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.VisualEffectGraph.Editor::UnityEditor.VFX.VFXSlotFloat + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614914} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614913} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: -1 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614916 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.VisualEffectGraph.Editor::UnityEditor.VFX.VFXSlotFloat + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614914} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614913} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: -1 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614917 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.VisualEffectGraph.Editor::UnityEditor.VFX.VFXSlotFloat + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614914} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614913} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: -1 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614918 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.VisualEffectGraph.Editor::UnityEditor.VFX.VFXSlotBool + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614918} + m_MasterData: + m_Owner: {fileID: 8926484042661614912} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: -1 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] diff --git a/Tests/SRPTests/Projects/VisualEffectGraph_URP/Assets/GraphicsTests/104_ShaderGraphGenerationFTP/VFX/VFX - Non Exposed.vfx.meta b/Tests/SRPTests/Projects/VisualEffectGraph_URP/Assets/GraphicsTests/104_ShaderGraphGenerationFTP/VFX/VFX - Non Exposed.vfx.meta new file mode 100644 index 00000000000..109f4a96292 --- /dev/null +++ b/Tests/SRPTests/Projects/VisualEffectGraph_URP/Assets/GraphicsTests/104_ShaderGraphGenerationFTP/VFX/VFX - Non Exposed.vfx.meta @@ -0,0 +1,14 @@ +fileFormatVersion: 2 +guid: 3c59c1e09772c604ca36c130f6cf1d6b +VisualEffectImporter: + externalObjects: {} + serializedVersion: 1 + template: + name: + category: + description: + icon: {instanceID: 0} + thumbnail: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/VisualEffectGraph_URP/Assets/GraphicsTests/Scripts/OutputTextureFeature.cs b/Tests/SRPTests/Projects/VisualEffectGraph_URP/Assets/GraphicsTests/Scripts/OutputTextureFeature.cs index f9e19ec6018..d0f6ea4ec2f 100644 --- a/Tests/SRPTests/Projects/VisualEffectGraph_URP/Assets/GraphicsTests/Scripts/OutputTextureFeature.cs +++ b/Tests/SRPTests/Projects/VisualEffectGraph_URP/Assets/GraphicsTests/Scripts/OutputTextureFeature.cs @@ -66,6 +66,7 @@ public void Setup(ScriptableRenderer renderer, Material material, ScriptableRend ConfigureInput(inputRequirement); } +#if URP_COMPATIBILITY_MODE // Here you can implement the rendering logic. // Use ScriptableRenderContext to issue drawing commands or execute command buffers // https://docs.unity3d.com/ScriptReference/Rendering.ScriptableRenderContext.html @@ -88,6 +89,7 @@ public override void Execute(ScriptableRenderContext context, ref RenderingData context.ExecuteCommandBuffer(cmd); CommandBufferPool.Release(cmd); } +#endif internal class PassData { diff --git a/Tests/SRPTests/Projects/VisualEffectGraph_URP/Packages/manifest.json b/Tests/SRPTests/Projects/VisualEffectGraph_URP/Packages/manifest.json index 9fa526f3088..b3b56d24f7b 100644 --- a/Tests/SRPTests/Projects/VisualEffectGraph_URP/Packages/manifest.json +++ b/Tests/SRPTests/Projects/VisualEffectGraph_URP/Packages/manifest.json @@ -10,7 +10,6 @@ "com.unity.render-pipelines.universal-config": "file:../../../../../Packages/com.unity.render-pipelines.universal-config", "com.unity.shaderanalysis": "file:../../../../../Packages/com.unity.shaderanalysis", "com.unity.shadergraph": "file:../../../../../Packages/com.unity.shadergraph", - "com.unity.rendering.light-transport": "file:../../../../../Packages/com.unity.rendering.light-transport", "com.unity.test-framework.graphics.performance": "file:../../../Packages/com.unity.test-framework.graphics.performance", "com.unity.testing.visualeffectgraph": "file:../../../Packages/com.unity.testing.visualeffectgraph", "com.unity.testing.common-graphics": "file:../../../Packages/com.unity.testing.common-graphics",