diff --git a/Packages/com.unity.render-pipelines.core/Documentation~/advanced-properties.md b/Packages/com.unity.render-pipelines.core/Documentation~/advanced-properties.md index 0534d9daf74..36c7ee4ac05 100644 --- a/Packages/com.unity.render-pipelines.core/Documentation~/advanced-properties.md +++ b/Packages/com.unity.render-pipelines.core/Documentation~/advanced-properties.md @@ -10,7 +10,7 @@ There is a global state per user that stores if Unity displays **advanced proper Not every component or Volume Override includes advanced properties. If one does, it has a contextual menu to the right of each property section header that includes additional properties. To expose advanced properties for that section, open the contextual menu and click **Advanced Properties**. -For an example, see the **Water Surface** component in [High Definition Render Pipeline (HDRP)](https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@latest). +For an example, refer to the **Water Surface** component in [High Definition Render Pipeline (HDRP)](https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@latest?subfolder=/manual/settings-and-properties-related-to-the-water-system.html). By default only standard properties are shown. 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 d6a78d50983..bb0cfd5493d 100644 --- a/Packages/com.unity.render-pipelines.core/Editor/RenderGraph/RenderGraphViewer.cs +++ b/Packages/com.unity.render-pipelines.core/Editor/RenderGraph/RenderGraphViewer.cs @@ -1656,12 +1656,18 @@ void InitializePersistentElements() void OnGraphRegistered(RenderGraph graph) { + if (m_RegisteredGraphs.ContainsKey(graph)) + return; + m_RegisteredGraphs.Add(graph, new HashSet()); RebuildHeaderUI(); } void OnGraphUnregistered(RenderGraph graph) { + if (!m_RegisteredGraphs.ContainsKey(graph)) + return; + m_RegisteredGraphs.Remove(graph); RebuildHeaderUI(); if (m_RegisteredGraphs.Count == 0) diff --git a/Packages/com.unity.render-pipelines.core/Editor/Volume/VolumeComponentEditor.cs b/Packages/com.unity.render-pipelines.core/Editor/Volume/VolumeComponentEditor.cs index bb64826d8aa..1792269b435 100644 --- a/Packages/com.unity.render-pipelines.core/Editor/Volume/VolumeComponentEditor.cs +++ b/Packages/com.unity.render-pipelines.core/Editor/Volume/VolumeComponentEditor.cs @@ -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..69af1c4dcdc 100644 --- a/Packages/com.unity.render-pipelines.core/Editor/Volume/VolumeComponentListEditor.cs +++ b/Packages/com.unity.render-pipelines.core/Editor/Volume/VolumeComponentListEditor.cs @@ -236,11 +236,14 @@ public void OnGUI() // Even if the asset is not dirty, the list of component may have been changed by another inspector. // In this case, only the hash will tell us that we need to refresh. - if (asset.isDirty || asset.GetComponentListHashCode() != m_CurrentHashCode) + if (asset.dirtyState != VolumeProfile.DirtyState.None || asset.GetComponentListHashCode() != m_CurrentHashCode) { RefreshEditors(); VolumeManager.instance.OnVolumeProfileChanged(asset); - asset.isDirty = false; + + if ((asset.dirtyState & VolumeProfile.DirtyState.DirtyByProfileReset) != 0) + UnityEditorInternal.InternalEditorUtility.RepaintAllViews(); + asset.dirtyState = VolumeProfile.DirtyState.None; } if (m_IsDefaultVolumeProfile && VolumeManager.instance.isInitialized && m_EditorsByCategory.Count == 0) @@ -445,13 +448,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/GPUDriven/Debug/DebugDisplayGPUResidentDrawer.cs b/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/Debug/DebugDisplayGPUResidentDrawer.cs index 1df80681bf8..773befe1252 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 @@ -1,6 +1,9 @@ using System; using System.Collections.Generic; using Unity.Collections; +#if UNITY_EDITOR +using UnityEditor; +#endif using static UnityEngine.Rendering.DebugUI; using static UnityEngine.Rendering.DebugUI.Widget; @@ -106,6 +109,7 @@ private static InstanceOcclusionEventStats GetInstanceOcclusionEventStats(int pa else return new InstanceOcclusionEventStats(); } + static class Strings { public const string drawerSettingsContainerName = "GPU Resident Drawer Settings"; @@ -144,6 +148,7 @@ private static int GetInstanceOcclusionEventCount() { return GPUResidentDrawer.GetDebugStats()?.instanceOcclusionEventStats.Length ?? 0; } + private static DebugUI.Table.Row AddInstanceCullerViewDataRow(int viewIndex) { return new DebugUI.Table.Row @@ -154,9 +159,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.InstanceIDToObject(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 }, } }; @@ -182,6 +210,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 @@ -191,13 +229,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.InstanceIDToObject(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)) }, } }; } @@ -298,6 +350,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/GPUResidentDrawer.cs b/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/GPUResidentDrawer.cs index 63b56b98bb7..b5fdf4eccce 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/GPUResidentDrawer.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/GPUResidentDrawer.cs @@ -530,7 +530,7 @@ private void UpdateSelection() rendererIDs[i] = renderers[i] ? renderers[i].GetInstanceID() : 0; m_Batcher.UpdateSelectedRenderers(rendererIDs); - + rendererIDs.Dispose(); Profiler.EndSample(); @@ -597,8 +597,8 @@ private void PostPostLateUpdate() ProcessRenderers(rendererData, unsupportedRenderers.AsArray()); Profiler.EndSample(); - Profiler.BeginSample("GPUResidentDrawer.ProcessRendererMaterialChanges"); - ProcessRendererMaterialChanges(rendererData.changedID, supportedChangedMaterials.AsArray(), supportedChangedPackedMaterialDatas.AsArray()); + Profiler.BeginSample("GPUResidentDrawer.ProcessRendererMaterialAndMeshChanges"); + ProcessRendererMaterialAndMeshChanges(rendererData.changedID, supportedChangedMaterials.AsArray(), supportedChangedPackedMaterialDatas.AsArray(), meshDataSorted.changedID); Profiler.EndSample(); lodGroupTransformData.Dispose(); @@ -620,7 +620,7 @@ private void PostPostLateUpdate() UpdateSelection(); m_IsSelectionDirty = false; } - + m_FrameUpdateNeeded = false; #endif } @@ -655,9 +655,9 @@ private void ProcessLODGroups(NativeArray changedID, NativeArray destr m_BatchersContext.TransformLODGroups(transformedID); } - private void ProcessRendererMaterialChanges(NativeArray excludedRenderers, NativeArray changedMaterials, NativeArray changedPackedMaterialDatas) + private void ProcessRendererMaterialAndMeshChanges(NativeArray excludedRenderers, NativeArray changedMaterials, NativeArray changedPackedMaterialDatas, NativeArray changedMeshes) { - if (changedMaterials.Length == 0) + if (changedMaterials.Length == 0 && changedMeshes.Length == 0) return; Profiler.BeginSample("GPUResidentDrawer.GetMaterialsWithChangedPackedMaterial"); @@ -669,7 +669,7 @@ private void ProcessRendererMaterialChanges(NativeArray excludedRenderers, Profiler.EndSample(); - if (filteredMaterials.Count == 0) + if (filteredMaterials.Count == 0 && changedMeshes.Length == 0) { filteredMaterials.Dispose(); updatePackedMaterialCacheJob.Complete(); @@ -679,14 +679,14 @@ private void ProcessRendererMaterialChanges(NativeArray excludedRenderers, var sortedExcludedRenderers = new NativeArray(excludedRenderers, Allocator.TempJob); if (sortedExcludedRenderers.Length > 0) { - Profiler.BeginSample("ProcessRendererMaterialChanges.Sort"); + Profiler.BeginSample("ProcessRendererMaterialAndMeshChanges.Sort"); sortedExcludedRenderers.ParallelSort().Complete(); Profiler.EndSample(); } - Profiler.BeginSample("GPUResidentDrawer.FindRenderersFromMaterials"); + Profiler.BeginSample("GPUResidentDrawer.FindRenderersFromMaterialsOrMeshes"); - NativeList renderersWithChangedMaterials = FindRenderersFromMaterials(sortedExcludedRenderers, filteredMaterials, Allocator.TempJob); + var (renderersWithChangedMaterials, renderersWithChangedMeshes) = FindRenderersFromMaterialsOrMeshes(sortedExcludedRenderers, filteredMaterials, changedMeshes, Allocator.TempJob); filteredMaterials.Dispose(); Profiler.EndSample(); @@ -694,22 +694,35 @@ private void ProcessRendererMaterialChanges(NativeArray excludedRenderers, sortedExcludedRenderers.Dispose(); updatePackedMaterialCacheJob.Complete(); - if (renderersWithChangedMaterials.Length == 0) + if (renderersWithChangedMaterials.Length == 0 && renderersWithChangedMeshes.Length == 0) { renderersWithChangedMaterials.Dispose(); + renderersWithChangedMeshes.Dispose(); return; } Profiler.BeginSample("GPUResidentDrawer.UpdateRenderers"); { - var materialChangedInstances = new NativeArray(renderersWithChangedMaterials.Length, Allocator.TempJob, NativeArrayOptions.UninitializedMemory); - ScheduleQueryRendererGroupInstancesJob(renderersWithChangedMaterials.AsArray(), materialChangedInstances).Complete(); + var changedMaterialsCount = renderersWithChangedMaterials.Length; + var changedMeshesCount = renderersWithChangedMeshes.Length; + var totalCount = changedMaterialsCount + changedMeshesCount; + + var changedInstances = new NativeArray(totalCount, Allocator.TempJob, NativeArrayOptions.UninitializedMemory); + var changedRenderers = new NativeArray(totalCount, Allocator.TempJob, NativeArrayOptions.UninitializedMemory); + + NativeArray.Copy(renderersWithChangedMaterials.AsArray(), changedRenderers, changedMaterialsCount); + NativeArray.Copy(renderersWithChangedMeshes.AsArray(), changedRenderers.GetSubArray(changedMaterialsCount, changedMeshesCount), changedMeshesCount); + + ScheduleQueryRendererGroupInstancesJob(changedRenderers, changedInstances).Complete(); - m_Batcher.DestroyDrawInstances(materialChangedInstances); - materialChangedInstances.Dispose(); + m_Batcher.DestroyDrawInstances(changedInstances); m_Batcher.UpdateRenderers(renderersWithChangedMaterials.AsArray(), true); + m_Batcher.UpdateRenderers(renderersWithChangedMeshes.AsArray(), false); + changedInstances.Dispose(); + changedRenderers.Dispose(); renderersWithChangedMaterials.Dispose(); + renderersWithChangedMeshes.Dispose(); } Profiler.EndSample(); } @@ -814,14 +827,8 @@ private void ClassifyMaterials(NativeArray materials, out NativeList u if (materials.Length > 0) { - new ClassifyMaterialsJob - { - materialIDs = materials.AsReadOnly(), - batchMaterialHash = m_Batcher.instanceCullingBatcher.batchMaterialHash.AsReadOnly(), - unsupportedMaterialIDs = unsupportedMaterials, - supportedMaterialIDs = supportedMaterials, - supportedPackedMaterialDatas = supportedPackedMaterialDatas - }.Run(); + GPUResidentDrawerBurst.ClassifyMaterials(materials, m_Batcher.instanceCullingBatcher.batchMaterialHash.AsReadOnly(), + ref supportedMaterials, ref unsupportedMaterials, ref supportedPackedMaterialDatas); } } @@ -831,13 +838,8 @@ private NativeList FindUnsupportedRenderers(NativeArray unsupportedMat if (unsupportedMaterials.Length > 0) { - new FindUnsupportedRenderersJob - { - unsupportedMaterials = unsupportedMaterials.AsReadOnly(), - materialIDArrays = m_BatchersContext.sharedInstanceData.materialIDArrays, - rendererGroups = m_BatchersContext.sharedInstanceData.rendererGroupIDs, - unsupportedRenderers = unsupportedRenderers, - }.Run(); + GPUResidentDrawerBurst.FindUnsupportedRenderers(unsupportedMaterials, m_BatchersContext.sharedInstanceData.materialIDArrays, + m_BatchersContext.sharedInstanceData.rendererGroupIDs, ref unsupportedRenderers); } return unsupportedRenderers; @@ -847,125 +849,58 @@ private NativeHashSet GetMaterialsWithChangedPackedMaterial(NativeArray filteredMaterials = new NativeHashSet(materials.Length, allocator); - new GetMaterialsWithChangedPackedMaterialJob - { - materialIDs = materials.AsReadOnly(), - packedMaterialDatas = packedMaterialDatas.AsReadOnly(), - packedMaterialHash = batcher.instanceCullingBatcher.packedMaterialHash.AsReadOnly(), - filteredMaterials = filteredMaterials - }.Run(); + GPUResidentDrawerBurst.GetMaterialsWithChangedPackedMaterial(materials, packedMaterialDatas, + batcher.instanceCullingBatcher.packedMaterialHash.AsReadOnly(), ref filteredMaterials); return filteredMaterials; } - private NativeList FindRenderersFromMaterials(NativeArray sortedExcludeRenderers, NativeHashSet materials, Allocator rendererListAllocator) + private (NativeList renderersWithMaterials, NativeList renderersWithMeshes) FindRenderersFromMaterialsOrMeshes(NativeArray sortedExcludeRenderers, NativeHashSet materials, NativeArray meshes, Allocator rendererListAllocator) { var sharedInstanceData = m_BatchersContext.sharedInstanceData; - NativeList renderers = new NativeList(sharedInstanceData.rendererGroupIDs.Length, rendererListAllocator); + NativeList renderersWithMaterials = new NativeList(sharedInstanceData.rendererGroupIDs.Length, rendererListAllocator); + NativeList renderersWithMeshes = new NativeList(sharedInstanceData.rendererGroupIDs.Length, rendererListAllocator); - var jobHandle = new FindRenderersFromMaterialJob + var jobHandle = new FindRenderersFromMaterialOrMeshJob { materialIDs = materials.AsReadOnly(), materialIDArrays = sharedInstanceData.materialIDArrays, + meshIDs = meshes.AsReadOnly(), + meshIDArray = sharedInstanceData.meshIDs, rendererGroupIDs = sharedInstanceData.rendererGroupIDs, sortedExcludeRendererIDs = sortedExcludeRenderers.AsReadOnly(), - selectedRenderGroups = renderers.AsParallelWriter(), - }.ScheduleBatch(sharedInstanceData.rendererGroupIDs.Length, FindRenderersFromMaterialJob.k_BatchSize); + selectedRenderGroupsForMaterials = renderersWithMaterials.AsParallelWriter(), + selectedRenderGroupsForMeshes = renderersWithMeshes.AsParallelWriter() + }.ScheduleBatch(sharedInstanceData.rendererGroupIDs.Length, FindRenderersFromMaterialOrMeshJob.k_BatchSize); jobHandle.Complete(); - return renderers; + return (renderersWithMaterials, renderersWithMeshes); } [BurstCompile(DisableSafetyChecks = true, OptimizeFor = OptimizeFor.Performance)] - private struct ClassifyMaterialsJob : IJob - { - [ReadOnly] public NativeParallelHashMap.ReadOnly batchMaterialHash; - [ReadOnly] public NativeArray.ReadOnly materialIDs; - - public NativeList supportedMaterialIDs; - public NativeList unsupportedMaterialIDs; - public NativeList supportedPackedMaterialDatas; - - public void Execute() - { - var usedMaterialIDs = new NativeList(4, Allocator.TempJob); - - foreach (var materialID in materialIDs) - { - if (batchMaterialHash.ContainsKey(materialID)) - usedMaterialIDs.Add(materialID); - } - - if (usedMaterialIDs.IsEmpty) - { - usedMaterialIDs.Dispose(); - return; - } - - unsupportedMaterialIDs.Resize(usedMaterialIDs.Length, NativeArrayOptions.UninitializedMemory); - supportedMaterialIDs.Resize(usedMaterialIDs.Length, NativeArrayOptions.UninitializedMemory); - supportedPackedMaterialDatas.Resize(usedMaterialIDs.Length, NativeArrayOptions.UninitializedMemory); - - int unsupportedMaterialCount = GPUDrivenProcessor.ClassifyMaterials(usedMaterialIDs.AsArray(), unsupportedMaterialIDs.AsArray(), supportedMaterialIDs.AsArray(), supportedPackedMaterialDatas.AsArray()); - - unsupportedMaterialIDs.Resize(unsupportedMaterialCount, NativeArrayOptions.ClearMemory); - supportedMaterialIDs.Resize(usedMaterialIDs.Length - unsupportedMaterialCount, NativeArrayOptions.ClearMemory); - supportedPackedMaterialDatas.Resize(supportedMaterialIDs.Length, NativeArrayOptions.ClearMemory); - - usedMaterialIDs.Dispose(); - } - } - - [BurstCompile(DisableSafetyChecks = true, OptimizeFor = OptimizeFor.Performance)] - private struct FindUnsupportedRenderersJob : IJob - { - [ReadOnly] public NativeArray.ReadOnly unsupportedMaterials; - [ReadOnly] public NativeArray.ReadOnly materialIDArrays; - [ReadOnly] public NativeArray.ReadOnly rendererGroups; - - public NativeList unsupportedRenderers; - - public unsafe void Execute() - { - if (unsupportedMaterials.Length == 0) - return; - - for (int arrayIndex = 0; arrayIndex < materialIDArrays.Length; arrayIndex++) - { - var materialIDs = materialIDArrays[arrayIndex]; - int rendererID = rendererGroups[arrayIndex]; - - for (int i = 0; i < materialIDs.Length; i++) - { - int materialID = materialIDs[i]; - - if (unsupportedMaterials.Contains(materialID)) - { - unsupportedRenderers.Add(rendererID); - break; - } - } - } - } - } - - [BurstCompile(DisableSafetyChecks = true, OptimizeFor = OptimizeFor.Performance)] - private unsafe struct FindRenderersFromMaterialJob : IJobParallelForBatch + private unsafe struct FindRenderersFromMaterialOrMeshJob : IJobParallelForBatch { public const int k_BatchSize = 128; [ReadOnly] public NativeHashSet.ReadOnly materialIDs; [ReadOnly] public NativeArray.ReadOnly materialIDArrays; + [ReadOnly] public NativeArray.ReadOnly meshIDs; + [ReadOnly] public NativeArray.ReadOnly meshIDArray; [ReadOnly] public NativeArray.ReadOnly rendererGroupIDs; [ReadOnly] public NativeArray.ReadOnly sortedExcludeRendererIDs; - [WriteOnly] public NativeList.ParallelWriter selectedRenderGroups; + [WriteOnly] public NativeList.ParallelWriter selectedRenderGroupsForMaterials; + [WriteOnly] public NativeList.ParallelWriter selectedRenderGroupsForMeshes; public void Execute(int startIndex, int count) { - int* renderersToAddPtr = stackalloc int[k_BatchSize]; - var renderersToAdd = new UnsafeList(renderersToAddPtr, k_BatchSize); - renderersToAdd.Length = 0; + int* renderersToAddForMaterialsPtr = stackalloc int[k_BatchSize]; + var renderersToAddForMaterials = new UnsafeList(renderersToAddForMaterialsPtr, k_BatchSize); + renderersToAddForMaterials.Length = 0; + + int* renderersToAddForMeshesPtr = stackalloc int[k_BatchSize]; + var renderersToAddForMeshes = new UnsafeList(renderersToAddForMeshesPtr, k_BatchSize); + renderersToAddForMeshes.Length = 0; for (int index = 0; index < count; index++) { @@ -976,45 +911,33 @@ public void Execute(int startIndex, int count) if (sortedExcludeRendererIDs.BinarySearch(rendererID) >= 0) continue; - var rendererMaterials = materialIDArrays[rendererIndex]; - - for (int materialIndex = 0; materialIndex < rendererMaterials.Length; materialIndex++) { - var materialID = rendererMaterials[materialIndex]; - if (materialIDs.Contains(materialID)) + var meshID = meshIDArray[rendererIndex]; + if (meshIDs.Contains(meshID)) { - renderersToAdd.AddNoResize(rendererID); - break; + renderersToAddForMeshes.AddNoResize(rendererID); + // We can skip the material check if we found a mesh match since at this point + // the renderer is already added and will be processed by the mesh branch + continue; } } - } - - selectedRenderGroups.AddRangeNoResize(renderersToAddPtr, renderersToAdd.Length); - } - } - - [BurstCompile(DisableSafetyChecks = true, OptimizeFor = OptimizeFor.Performance)] - private struct GetMaterialsWithChangedPackedMaterialJob : IJob - { - [ReadOnly] public NativeArray.ReadOnly materialIDs; - [ReadOnly] public NativeArray.ReadOnly packedMaterialDatas; - [ReadOnly] public NativeParallelHashMap.ReadOnly packedMaterialHash; - - [WriteOnly] public NativeHashSet filteredMaterials; - - public void Execute() - { - for (int index = 0; index < materialIDs.Length ; index++) - { - var materialID = materialIDs[index]; - var newPackedMaterialData = packedMaterialDatas[index]; - - // Has its packed material changed? If the material isn't in the packed material cache, consider the material has changed. - if (packedMaterialHash.TryGetValue(materialID, out var packedMaterial) && packedMaterial.Equals(newPackedMaterialData)) - continue; + { + var rendererMaterials = materialIDArrays[rendererIndex]; - filteredMaterials.Add(materialID); + for (int materialIndex = 0; materialIndex < rendererMaterials.Length; materialIndex++) + { + var materialID = rendererMaterials[materialIndex]; + if (materialIDs.Contains(materialID)) + { + renderersToAddForMaterials.AddNoResize(rendererID); + break; + } + } + } } + + selectedRenderGroupsForMaterials.AddRangeNoResize(renderersToAddForMaterialsPtr, renderersToAddForMaterials.Length); + selectedRenderGroupsForMeshes.AddRangeNoResize(renderersToAddForMeshesPtr, renderersToAddForMeshes.Length); } } } diff --git a/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/GPUResidentDrawerBurst.cs b/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/GPUResidentDrawerBurst.cs new file mode 100644 index 00000000000..ddb0db8c566 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/GPUResidentDrawerBurst.cs @@ -0,0 +1,80 @@ +using Unity.Collections; +using UnityEngine.Rendering; +using Unity.Burst; + +namespace UnityEngine.Rendering +{ + [BurstCompile] + internal static class GPUResidentDrawerBurst + { + [BurstCompile(DisableSafetyChecks = true, OptimizeFor = OptimizeFor.Performance)] + public static void ClassifyMaterials(in NativeArray materialIDs, in NativeParallelHashMap.ReadOnly batchMaterialHash, + ref NativeList supportedMaterialIDs, ref NativeList unsupportedMaterialIDs, ref NativeList supportedPackedMaterialDatas) + { + var usedMaterialIDs = new NativeList(4, Allocator.Temp); + + foreach (var materialID in materialIDs) + { + if (batchMaterialHash.ContainsKey(materialID)) + usedMaterialIDs.Add(materialID); + } + + if (usedMaterialIDs.IsEmpty) + { + usedMaterialIDs.Dispose(); + return; + } + + unsupportedMaterialIDs.Resize(usedMaterialIDs.Length, NativeArrayOptions.UninitializedMemory); + supportedMaterialIDs.Resize(usedMaterialIDs.Length, NativeArrayOptions.UninitializedMemory); + supportedPackedMaterialDatas.Resize(usedMaterialIDs.Length, NativeArrayOptions.UninitializedMemory); + + int unsupportedMaterialCount = GPUDrivenProcessor.ClassifyMaterials(usedMaterialIDs.AsArray(), unsupportedMaterialIDs.AsArray(), supportedMaterialIDs.AsArray(), supportedPackedMaterialDatas.AsArray()); + + unsupportedMaterialIDs.Resize(unsupportedMaterialCount, NativeArrayOptions.ClearMemory); + supportedMaterialIDs.Resize(usedMaterialIDs.Length - unsupportedMaterialCount, NativeArrayOptions.ClearMemory); + supportedPackedMaterialDatas.Resize(supportedMaterialIDs.Length, NativeArrayOptions.ClearMemory); + + usedMaterialIDs.Dispose(); + } + + [BurstCompile(DisableSafetyChecks = true, OptimizeFor = OptimizeFor.Performance)] + public static void FindUnsupportedRenderers(in NativeArray unsupportedMaterials, in NativeArray.ReadOnly materialIDArrays, in NativeArray.ReadOnly rendererGroups, + ref NativeList unsupportedRenderers) + { + for (int arrayIndex = 0; arrayIndex < materialIDArrays.Length; arrayIndex++) + { + var materialIDs = materialIDArrays[arrayIndex]; + int rendererID = rendererGroups[arrayIndex]; + + for (int i = 0; i < materialIDs.Length; i++) + { + int materialID = materialIDs[i]; + + if (unsupportedMaterials.Contains(materialID)) + { + unsupportedRenderers.Add(rendererID); + break; + } + } + } + } + + [BurstCompile(DisableSafetyChecks = true, OptimizeFor = OptimizeFor.Performance)] + public static void GetMaterialsWithChangedPackedMaterial(in NativeArray materialIDs, in NativeArray packedMaterialDatas, + in NativeParallelHashMap.ReadOnly packedMaterialHash, ref NativeHashSet filteredMaterials) + { + for (int index = 0; index < materialIDs.Length ; index++) + { + var materialID = materialIDs[index]; + var newPackedMaterialData = packedMaterialDatas[index]; + + // Has its packed material changed? If the material isn't in the packed material cache, consider the material has changed. + if (packedMaterialHash.TryGetValue(materialID, out var packedMaterial) && packedMaterial.Equals(newPackedMaterialData)) + continue; + + filteredMaterials.Add(materialID); + } + } + } +} diff --git a/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/GPUResidentDrawerBurst.cs.meta b/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/GPUResidentDrawerBurst.cs.meta new file mode 100644 index 00000000000..ececc7dd30e --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/GPUResidentDrawerBurst.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 2f50a3b1f0997d342837e27ab3b95e6f \ No newline at end of file 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 a980a3e23fb..1c2066490ee 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/InstanceCuller.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/InstanceCuller.cs @@ -429,7 +429,21 @@ bool IsInstanceFlipped(int rendererIndex) return instanceData.localToWorldIsFlippedBits.Get(instanceIndex); } - unsafe public void Execute(int batchIndex) + + 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 int configCount = binningConfig.visibilityConfigCount; @@ -529,7 +543,12 @@ unsafe 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); + } } } } @@ -854,7 +873,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 { @@ -1215,6 +1234,7 @@ public void Execute(int instanceIndex) internal enum InstanceCullerSplitDebugCounter { VisibleInstances, + VisiblePrimitives, DrawCommands, Count, } @@ -1293,7 +1313,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], }); } @@ -1442,8 +1465,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 { @@ -1452,8 +1477,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, }); } } @@ -1531,25 +1558,6 @@ internal void Init(GPUResidentDrawerResources resources, DebugRendererBatcherSta m_CommandBuffer.name = "EnsureValidOcclusionTestResults"; } - [BurstCompile(DisableSafetyChecks = true, OptimizeFor = OptimizeFor.Performance)] - private unsafe struct SetupCullingJobInput : IJob - { - public float lodBias; - [NativeDisableUnsafePtrRestriction] public BatchCullingContext* context; - [NativeDisableUnsafePtrRestriction] public ReceiverPlanes* receiverPlanes; - [NativeDisableUnsafePtrRestriction] public ReceiverSphereCuller* receiverSphereCuller; - [NativeDisableUnsafePtrRestriction] public FrustumPlaneCuller* frustumPlaneCuller; - [NativeDisableUnsafePtrRestriction] public float* screenRelativeMetric; - - public void Execute() - { - *receiverPlanes = ReceiverPlanes.Create(*context, Allocator.TempJob); - *receiverSphereCuller = ReceiverSphereCuller.Create(*context, Allocator.TempJob); - *frustumPlaneCuller = FrustumPlaneCuller.Create(*context, receiverPlanes->planes.AsArray(), *receiverSphereCuller, Allocator.TempJob); - *screenRelativeMetric = LODGroupRenderingUtils.CalculateScreenRelativeMetric(context->lodParameters, lodBias); - } - } - private unsafe JobHandle CreateFrustumCullingJob( in BatchCullingContext cc, in CPUInstanceData.ReadOnly instanceData, @@ -1561,7 +1569,7 @@ private unsafe JobHandle CreateFrustumCullingJob( NativeArray rendererVisibilityMasks, NativeArray rendererCrossFadeValues) { - Assert.IsTrue(cc.cullingSplits.Length <= 6, "InstanceCullingBatcher supports up to 6 culling splits."); + Assert.IsTrue(cc.cullingSplits.Length <= 6, "InstanceCuller supports up to 6 culling splits."); ReceiverPlanes receiverPlanes; ReceiverSphereCuller receiverSphereCuller; @@ -1570,16 +1578,8 @@ private unsafe JobHandle CreateFrustumCullingJob( fixed (BatchCullingContext* contextPtr = &cc) { - new SetupCullingJobInput() - { - lodBias = QualitySettings.lodBias, - context = contextPtr, - frustumPlaneCuller = &frustumPlaneCuller, - receiverPlanes = &receiverPlanes, - receiverSphereCuller = &receiverSphereCuller, - screenRelativeMetric = &screenRelativeMetric, - - }.Run(); + InstanceCullerBurst.SetupCullingJobInput(QualitySettings.lodBias, contextPtr, &receiverPlanes, &receiverSphereCuller, + &frustumPlaneCuller, &screenRelativeMetric); } if (occlusionCullingCommon != null) @@ -2296,6 +2296,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/InstanceCullerBurst.cs b/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/InstanceCullerBurst.cs new file mode 100644 index 00000000000..d123762dfd3 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/InstanceCullerBurst.cs @@ -0,0 +1,19 @@ +using Unity.Collections; +using Unity.Burst; + +namespace UnityEngine.Rendering +{ + [BurstCompile] + internal static class InstanceCullerBurst + { + [BurstCompile(DisableSafetyChecks = true, OptimizeFor = OptimizeFor.Performance)] + public static unsafe void SetupCullingJobInput(float lodBias, BatchCullingContext* context, ReceiverPlanes* receiverPlanes, + ReceiverSphereCuller* receiverSphereCuller, FrustumPlaneCuller* frustumPlaneCuller, float* screenRelativeMetric) + { + *receiverPlanes = ReceiverPlanes.Create(*context, Allocator.TempJob); + *receiverSphereCuller = ReceiverSphereCuller.Create(*context, Allocator.TempJob); + *frustumPlaneCuller = FrustumPlaneCuller.Create(*context, receiverPlanes->planes.AsArray(), *receiverSphereCuller, Allocator.TempJob); + *screenRelativeMetric = LODGroupRenderingUtils.CalculateScreenRelativeMetric(context->lodParameters, lodBias); + } + } +} diff --git a/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/InstanceCullerBurst.cs.meta b/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/InstanceCullerBurst.cs.meta new file mode 100644 index 00000000000..dc1b8acb849 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/InstanceCullerBurst.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 99f3de5decfa27b47a4ab725fc059f50 \ No newline at end of file diff --git a/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/InstanceCullingBatcher.cs b/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/InstanceCullingBatcher.cs index 75378aee01c..c2b526d25f3 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/InstanceCullingBatcher.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/InstanceCullingBatcher.cs @@ -384,245 +384,6 @@ public void Execute() } } - [BurstCompile(DisableSafetyChecks = true, OptimizeFor = OptimizeFor.Performance)] - internal struct CreateDrawBatchesJob : IJob - { - [ReadOnly] public bool implicitInstanceIndices; - [ReadOnly] public NativeArray instances; - [ReadOnly] public GPUDrivenRendererGroupData rendererData; - [ReadOnly] public NativeParallelHashMap.ReadOnly batchMeshHash; - [ReadOnly] public NativeParallelHashMap.ReadOnly batchMaterialHash; - [ReadOnly] public NativeParallelHashMap.ReadOnly packedMaterialDataHash; - - public NativeParallelHashMap rangeHash; - public NativeList drawRanges; - public NativeParallelHashMap batchHash; - public NativeList drawBatches; - - [WriteOnly] public NativeList drawInstances; - - private ref DrawRange EditDrawRange(in RangeKey key) - { - int drawRangeIndex; - - if (!rangeHash.TryGetValue(key, out drawRangeIndex)) - { - var drawRange = new DrawRange { key = key, drawCount = 0, drawOffset = 0 }; - drawRangeIndex = drawRanges.Length; - rangeHash.Add(key, drawRangeIndex); - drawRanges.Add(drawRange); - } - - ref DrawRange data = ref drawRanges.ElementAt(drawRangeIndex); - Assert.IsTrue(data.key.Equals(key)); - - return ref data; - } - - private ref DrawBatch EditDrawBatch(in DrawKey key, in SubMeshDescriptor subMeshDescriptor) - { - var procInfo = new MeshProceduralInfo(); - procInfo.topology = subMeshDescriptor.topology; - procInfo.baseVertex = (uint)subMeshDescriptor.baseVertex; - procInfo.firstIndex = (uint)subMeshDescriptor.indexStart; - procInfo.indexCount = (uint)subMeshDescriptor.indexCount; - - int drawBatchIndex; - - if (!batchHash.TryGetValue(key, out drawBatchIndex)) - { - var drawBatch = new DrawBatch() { key = key, instanceCount = 0, instanceOffset = 0, procInfo = procInfo }; - drawBatchIndex = drawBatches.Length; - batchHash.Add(key, drawBatchIndex); - drawBatches.Add(drawBatch); - } - - ref DrawBatch data = ref drawBatches.ElementAt(drawBatchIndex); - Assert.IsTrue(data.key.Equals(key)); - - return ref data; - } - - public void ProcessRenderer(int i) - { - var meshIndex = rendererData.meshIndex[i]; - var meshID = rendererData.meshID[meshIndex]; - var submeshCount = rendererData.subMeshCount[meshIndex]; - var subMeshDescOffset = rendererData.subMeshDescOffset[meshIndex]; - var batchMeshID = batchMeshHash[meshID]; - var rendererGroupID = rendererData.rendererGroupID[i]; - var startSubMesh = rendererData.subMeshStartIndex[i]; - var gameObjectLayer = rendererData.gameObjectLayer[i]; - var renderingLayerMask = rendererData.renderingLayerMask[i]; - var materialsOffset = rendererData.materialsOffset[i]; - var materialsCount = rendererData.materialsCount[i]; - var lightmapIndex = rendererData.lightmapIndex[i]; - var packedRendererData = rendererData.packedRendererData[i]; - var rendererPriority = rendererData.rendererPriority[i]; - - int instanceCount; - int instanceOffset; - - if (implicitInstanceIndices) - { - instanceCount = 1; - instanceOffset = i; - } - else - { - instanceCount = rendererData.instancesCount[i]; - instanceOffset = rendererData.instancesOffset[i]; - } - - if (instanceCount == 0) - return; - - const int kLightmapIndexMask = 0xffff; - const int kLightmapIndexInfluenceOnly = 0xfffe; - - var overridenComponents = InstanceComponentGroup.Default; - - // Add per-instance wind parameters - if(packedRendererData.hasTree) - overridenComponents |= InstanceComponentGroup.Wind; - - var lmIndexMasked = lightmapIndex & kLightmapIndexMask; - - // Object doesn't have a valid lightmap Index, -> uses probes for lighting - if (lmIndexMasked >= kLightmapIndexInfluenceOnly) - { - // Only add the component when needed to store blended results (shader will use the ambient probe when not present) - if (packedRendererData.lightProbeUsage == LightProbeUsage.BlendProbes) - overridenComponents |= InstanceComponentGroup.LightProbe; - } - else - { - // Add per-instance lightmap parameters - overridenComponents |= InstanceComponentGroup.Lightmap; - } - - // Scan all materials once to retrieve whether this renderer is indirect-compatible or not (and store it in the RangeKey). - Span packedMaterialDatas = stackalloc GPUDrivenPackedMaterialData[materialsCount]; - - var supportsIndirect = true; - for (int matIndex = 0; matIndex < materialsCount; ++matIndex) - { - if (matIndex >= submeshCount) - { - Debug.LogWarning("Material count in the shared material list is higher than sub mesh count for the mesh. Object may be corrupted."); - continue; - } - - var materialIndex = rendererData.materialIndex[materialsOffset + matIndex]; - GPUDrivenPackedMaterialData packedMaterialData; - - if (rendererData.packedMaterialData.Length > 0) - { - packedMaterialData = rendererData.packedMaterialData[materialIndex]; - } - else - { - var materialID = rendererData.materialID[materialIndex]; - bool isFound = packedMaterialDataHash.TryGetValue(materialID, out packedMaterialData); - Assert.IsTrue(isFound, "Packed material data not found."); - } - supportsIndirect &= packedMaterialData.isIndirectSupported; - - packedMaterialDatas[matIndex] = packedMaterialData; - } - - var rangeKey = new RangeKey - { - layer = (byte)gameObjectLayer, - renderingLayerMask = renderingLayerMask, - motionMode = packedRendererData.motionVecGenMode, - shadowCastingMode = packedRendererData.shadowCastingMode, - staticShadowCaster = packedRendererData.staticShadowCaster, - rendererPriority = rendererPriority, - supportsIndirect = supportsIndirect - }; - - ref DrawRange drawRange = ref EditDrawRange(rangeKey); - - for (int matIndex = 0; matIndex < materialsCount; ++matIndex) - { - if (matIndex >= submeshCount) - { - Debug.LogWarning("Material count in the shared material list is higher than sub mesh count for the mesh. Object may be corrupted."); - continue; - } - - var materialIndex = rendererData.materialIndex[materialsOffset + matIndex]; - var materialID = rendererData.materialID[materialIndex]; - var packedMaterialData = packedMaterialDatas[matIndex]; - - if (materialID == 0) - { - Debug.LogWarning("Material in the shared materials list is null. Object will be partially rendered."); - continue; - } - - batchMaterialHash.TryGetValue(materialID, out BatchMaterialID batchMaterialID); - - // We always provide crossfade value packed in instance index. We don't use None even if there is no LOD to not split the batch. - var flags = BatchDrawCommandFlags.LODCrossFadeValuePacked; - - // Let the engine know if we've opted out of lightmap texture arrays - flags |= BatchDrawCommandFlags.UseLegacyLightmapsKeyword; - - // assume that a custom motion vectors pass contains deformation motion, so should always output motion vectors - // (otherwise this flag is set dynamically during culling only when the transform is changing) - if (packedMaterialData.isMotionVectorsPassEnabled) - flags |= BatchDrawCommandFlags.HasMotion; - - if (packedMaterialData.isTransparent) - flags |= BatchDrawCommandFlags.HasSortingPosition; - - { - var submeshIndex = startSubMesh + matIndex; - var subMeshDesc = rendererData.subMeshDesc[subMeshDescOffset + submeshIndex]; - - var drawKey = new DrawKey - { - materialID = batchMaterialID, - meshID = batchMeshID, - submeshIndex = submeshIndex, - flags = flags, - transparentInstanceId = packedMaterialData.isTransparent ? rendererGroupID : 0, - range = rangeKey, - overridenComponents = (uint)overridenComponents, - // When we've opted out of lightmap texture arrays, we - // need to pass in a valid lightmap index. The engine - // uses this index for sorting and for breaking the - // batch when lightmaps change across draw calls, and - // for binding the correct light map. - lightmapIndex = lightmapIndex - }; - - ref DrawBatch drawBatch = ref EditDrawBatch(drawKey, subMeshDesc); - - if (drawBatch.instanceCount == 0) - ++drawRange.drawCount; - - drawBatch.instanceCount += instanceCount; - - for (int j = 0; j < instanceCount; ++j) - { - var instanceIndex = instanceOffset + j; - InstanceHandle instance = instances[instanceIndex]; - drawInstances.Add(new DrawInstance { key = drawKey, instanceIndex = instance.index }); - } - } - } - } - - public void Execute() - { - for (int i = 0; i < rendererData.rendererGroupID.Length; ++i) - ProcessRenderer(i); - } - } - internal class CPUDrawInstanceData { public NativeList drawInstances => m_DrawInstances; @@ -720,23 +481,16 @@ public void RebuildDrawListsIfNeeded() internalDrawIndex.Dispose(); } - public unsafe void DestroyDrawInstanceIndices(NativeArray drawInstanceIndicesToDestroy) + public void DestroyDrawInstanceIndices(NativeArray drawInstanceIndicesToDestroy) { Profiler.BeginSample("DestroyDrawInstanceIndices.ParallelSort"); drawInstanceIndicesToDestroy.ParallelSort().Complete(); Profiler.EndSample(); - var removeDrawInstanceIndicesJob = new RemoveDrawInstanceIndicesJob - { - drawInstanceIndices = drawInstanceIndicesToDestroy, - drawInstances = m_DrawInstances, - drawBatches = m_DrawBatches, - drawRanges = m_DrawRanges, - batchHash = m_BatchHash, - rangeHash = m_RangeHash - }; - - removeDrawInstanceIndicesJob.Run(); + Profiler.BeginSample("DestroyDrawInstanceIndices.RemoveDrawInstanceIndices"); + InstanceCullingBatcherBurst.RemoveDrawInstanceIndices(drawInstanceIndicesToDestroy, ref m_DrawInstances, ref m_RangeHash, + ref m_BatchHash, ref m_DrawRanges, ref m_DrawBatches); + Profiler.EndSample(); } public unsafe void DestroyDrawInstances(NativeArray destroyedInstances) @@ -1150,20 +904,14 @@ public void BuildBatch( RegisterBatchMeshes(rendererData.meshID); } - new CreateDrawBatchesJob - { - implicitInstanceIndices = rendererData.instancesCount.Length == 0, - instances = instances, - rendererData = rendererData, - batchMeshHash = m_BatchMeshHash.AsReadOnly(), - batchMaterialHash = m_BatchMaterialHash.AsReadOnly(), - packedMaterialDataHash = m_PackedMaterialHash.AsReadOnly(), - rangeHash = m_DrawInstanceData.rangeHash, - drawRanges = m_DrawInstanceData.drawRanges, - batchHash = m_DrawInstanceData.batchHash, - drawBatches = m_DrawInstanceData.drawBatches, - drawInstances = m_DrawInstanceData.drawInstances - }.Run(); + var rangeHash = m_DrawInstanceData.rangeHash; + var drawRanges = m_DrawInstanceData.drawRanges; + var batchHash = m_DrawInstanceData.batchHash; + var drawBatches = m_DrawInstanceData.drawBatches; + var drawInstances = m_DrawInstanceData.drawInstances; + + InstanceCullingBatcherBurst.CreateDrawBatches(rendererData.instancesCount.Length == 0, instances, rendererData, + m_BatchMeshHash, m_BatchMaterialHash, m_PackedMaterialHash, ref rangeHash, ref drawRanges, ref batchHash, ref drawBatches, ref drawInstances); m_DrawInstanceData.NeedsRebuild(); UpdateInstanceDataBufferLayoutVersion(); diff --git a/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/InstanceCullingBatcherBurst.cs b/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/InstanceCullingBatcherBurst.cs new file mode 100644 index 00000000000..b3e353d661b --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/InstanceCullingBatcherBurst.cs @@ -0,0 +1,301 @@ +using System; +using Unity.Collections; +using Unity.Burst; +using Unity.Collections.LowLevel.Unsafe; +using Unity.Jobs; +using Unity.Mathematics; +using UnityEngine.Assertions; + +namespace UnityEngine.Rendering +{ + [BurstCompile] + internal static class InstanceCullingBatcherBurst + { + private static void RemoveDrawRange(in RangeKey key, ref NativeParallelHashMap rangeHash, ref NativeList drawRanges) + { + int drawRangeIndex = rangeHash[key]; + + ref DrawRange lastDrawRange = ref drawRanges.ElementAt(drawRanges.Length - 1); + rangeHash[lastDrawRange.key] = drawRangeIndex; + + rangeHash.Remove(key); + drawRanges.RemoveAtSwapBack(drawRangeIndex); + } + + private static void RemoveDrawBatch(in DrawKey key, ref NativeList drawRanges, ref NativeParallelHashMap rangeHash, + ref NativeParallelHashMap batchHash, ref NativeList drawBatches) + { + int drawBatchIndex = batchHash[key]; + + int drawRangeIndex = rangeHash[key.range]; + ref DrawRange drawRange = ref drawRanges.ElementAt(drawRangeIndex); + + Assert.IsTrue(drawRange.drawCount > 0); + + if (--drawRange.drawCount == 0) + RemoveDrawRange(drawRange.key, ref rangeHash, ref drawRanges); + + ref DrawBatch lastDrawBatch = ref drawBatches.ElementAt(drawBatches.Length - 1); + batchHash[lastDrawBatch.key] = drawBatchIndex; + + batchHash.Remove(key); + drawBatches.RemoveAtSwapBack(drawBatchIndex); + } + + [BurstCompile(DisableSafetyChecks = true, OptimizeFor = OptimizeFor.Performance)] + public static unsafe void RemoveDrawInstanceIndices(in NativeArray drawInstanceIndices, ref NativeList drawInstances, ref NativeParallelHashMap rangeHash, + ref NativeParallelHashMap batchHash, ref NativeList drawRanges, ref NativeList drawBatches) + { + var drawInstancesPtr = (DrawInstance*)drawInstances.GetUnsafePtr(); + var drawInstancesNewBack = drawInstances.Length - 1; + + for (int indexRev = drawInstanceIndices.Length - 1; indexRev >= 0; --indexRev) + { + int indexToRemove = drawInstanceIndices[indexRev]; + DrawInstance* drawInstance = drawInstancesPtr + indexToRemove; + + int drawBatchIndex = batchHash[drawInstance->key]; + ref DrawBatch drawBatch = ref drawBatches.ElementAt(drawBatchIndex); + + Assert.IsTrue(drawBatch.instanceCount > 0); + + if (--drawBatch.instanceCount == 0) + RemoveDrawBatch(drawBatch.key, ref drawRanges, ref rangeHash, ref batchHash, ref drawBatches); + + UnsafeUtility.MemCpy(drawInstance, drawInstancesPtr + drawInstancesNewBack--, sizeof(DrawInstance)); + } + + drawInstances.ResizeUninitialized(drawInstancesNewBack + 1); + } + + private static ref DrawRange EditDrawRange(in RangeKey key, NativeParallelHashMap rangeHash, NativeList drawRanges) + { + int drawRangeIndex; + + if (!rangeHash.TryGetValue(key, out drawRangeIndex)) + { + var drawRange = new DrawRange { key = key, drawCount = 0, drawOffset = 0 }; + drawRangeIndex = drawRanges.Length; + rangeHash.Add(key, drawRangeIndex); + drawRanges.Add(drawRange); + } + + ref DrawRange data = ref drawRanges.ElementAt(drawRangeIndex); + Assert.IsTrue(data.key.Equals(key)); + + return ref data; + } + + private static ref DrawBatch EditDrawBatch(in DrawKey key, in SubMeshDescriptor subMeshDescriptor, NativeParallelHashMap batchHash, NativeList drawBatches) + { + var procInfo = new MeshProceduralInfo(); + procInfo.topology = subMeshDescriptor.topology; + procInfo.baseVertex = (uint)subMeshDescriptor.baseVertex; + procInfo.firstIndex = (uint)subMeshDescriptor.indexStart; + procInfo.indexCount = (uint)subMeshDescriptor.indexCount; + + int drawBatchIndex; + + if (!batchHash.TryGetValue(key, out drawBatchIndex)) + { + var drawBatch = new DrawBatch() { key = key, instanceCount = 0, instanceOffset = 0, procInfo = procInfo }; + drawBatchIndex = drawBatches.Length; + batchHash.Add(key, drawBatchIndex); + drawBatches.Add(drawBatch); + } + + ref DrawBatch data = ref drawBatches.ElementAt(drawBatchIndex); + Assert.IsTrue(data.key.Equals(key)); + + return ref data; + } + + private static void ProcessRenderer(int i, bool implicitInstanceIndices, in GPUDrivenRendererGroupData rendererData, + NativeParallelHashMap batchMeshHash, NativeParallelHashMap packedMaterialDataHash, + NativeParallelHashMap batchMaterialHash, NativeArray instances, NativeList drawInstances, + NativeParallelHashMap rangeHash, NativeList drawRanges, NativeParallelHashMap batchHash, + NativeList drawBatches) + { + var meshIndex = rendererData.meshIndex[i]; + var meshID = rendererData.meshID[meshIndex]; + var submeshCount = rendererData.subMeshCount[meshIndex]; + var subMeshDescOffset = rendererData.subMeshDescOffset[meshIndex]; + var batchMeshID = batchMeshHash[meshID]; + var rendererGroupID = rendererData.rendererGroupID[i]; + var startSubMesh = rendererData.subMeshStartIndex[i]; + var gameObjectLayer = rendererData.gameObjectLayer[i]; + var renderingLayerMask = rendererData.renderingLayerMask[i]; + var materialsOffset = rendererData.materialsOffset[i]; + var materialsCount = rendererData.materialsCount[i]; + var lightmapIndex = rendererData.lightmapIndex[i]; + var packedRendererData = rendererData.packedRendererData[i]; + var rendererPriority = rendererData.rendererPriority[i]; + + int instanceCount; + int instanceOffset; + + if (implicitInstanceIndices) + { + instanceCount = 1; + instanceOffset = i; + } + else + { + instanceCount = rendererData.instancesCount[i]; + instanceOffset = rendererData.instancesOffset[i]; + } + + if (instanceCount == 0) + return; + + const int kLightmapIndexMask = 0xffff; + const int kLightmapIndexInfluenceOnly = 0xfffe; + + var overridenComponents = InstanceComponentGroup.Default; + + // Add per-instance wind parameters + if(packedRendererData.hasTree) + overridenComponents |= InstanceComponentGroup.Wind; + + var lmIndexMasked = lightmapIndex & kLightmapIndexMask; + + // Object doesn't have a valid lightmap Index, -> uses probes for lighting + if (lmIndexMasked >= kLightmapIndexInfluenceOnly) + { + // Only add the component when needed to store blended results (shader will use the ambient probe when not present) + if (packedRendererData.lightProbeUsage == LightProbeUsage.BlendProbes) + overridenComponents |= InstanceComponentGroup.LightProbe; + } + else + { + // Add per-instance lightmap parameters + overridenComponents |= InstanceComponentGroup.Lightmap; + } + + // Scan all materials once to retrieve whether this renderer is indirect-compatible or not (and store it in the RangeKey). + Span packedMaterialDatas = stackalloc GPUDrivenPackedMaterialData[materialsCount]; + + var supportsIndirect = true; + for (int matIndex = 0; matIndex < materialsCount; ++matIndex) + { + if (matIndex >= submeshCount) + { + Debug.LogWarning("Material count in the shared material list is higher than sub mesh count for the mesh. Object may be corrupted."); + continue; + } + + var materialIndex = rendererData.materialIndex[materialsOffset + matIndex]; + GPUDrivenPackedMaterialData packedMaterialData; + + if (rendererData.packedMaterialData.Length > 0) + { + packedMaterialData = rendererData.packedMaterialData[materialIndex]; + } + else + { + var materialID = rendererData.materialID[materialIndex]; + bool isFound = packedMaterialDataHash.TryGetValue(materialID, out packedMaterialData); + Assert.IsTrue(isFound, "Packed material data not found."); + } + supportsIndirect &= packedMaterialData.isIndirectSupported; + + packedMaterialDatas[matIndex] = packedMaterialData; + } + + var rangeKey = new RangeKey + { + layer = (byte)gameObjectLayer, + renderingLayerMask = renderingLayerMask, + motionMode = packedRendererData.motionVecGenMode, + shadowCastingMode = packedRendererData.shadowCastingMode, + staticShadowCaster = packedRendererData.staticShadowCaster, + rendererPriority = rendererPriority, + supportsIndirect = supportsIndirect + }; + + ref DrawRange drawRange = ref EditDrawRange(rangeKey, rangeHash, drawRanges); + + for (int matIndex = 0; matIndex < materialsCount; ++matIndex) + { + if (matIndex >= submeshCount) + { + Debug.LogWarning("Material count in the shared material list is higher than sub mesh count for the mesh. Object may be corrupted."); + continue; + } + + var materialIndex = rendererData.materialIndex[materialsOffset + matIndex]; + var materialID = rendererData.materialID[materialIndex]; + var packedMaterialData = packedMaterialDatas[matIndex]; + + if (materialID == 0) + { + Debug.LogWarning("Material in the shared materials list is null. Object will be partially rendered."); + continue; + } + + batchMaterialHash.TryGetValue(materialID, out BatchMaterialID batchMaterialID); + + // We always provide crossfade value packed in instance index. We don't use None even if there is no LOD to not split the batch. + var flags = BatchDrawCommandFlags.LODCrossFadeValuePacked; + + // Let the engine know if we've opted out of lightmap texture arrays + flags |= BatchDrawCommandFlags.UseLegacyLightmapsKeyword; + + // assume that a custom motion vectors pass contains deformation motion, so should always output motion vectors + // (otherwise this flag is set dynamically during culling only when the transform is changing) + if (packedMaterialData.isMotionVectorsPassEnabled) + flags |= BatchDrawCommandFlags.HasMotion; + + if (packedMaterialData.isTransparent) + flags |= BatchDrawCommandFlags.HasSortingPosition; + + { + var submeshIndex = startSubMesh + matIndex; + var subMeshDesc = rendererData.subMeshDesc[subMeshDescOffset + submeshIndex]; + var drawKey = new DrawKey + { + materialID = batchMaterialID, + meshID = batchMeshID, + submeshIndex = submeshIndex, + flags = flags, + transparentInstanceId = packedMaterialData.isTransparent ? rendererGroupID : 0, + range = rangeKey, + overridenComponents = (uint)overridenComponents, + // When we've opted out of lightmap texture arrays, we + // need to pass in a valid lightmap index. The engine + // uses this index for sorting and for breaking the + // batch when lightmaps change across draw calls, and + // for binding the correct light map. + lightmapIndex = lightmapIndex + }; + + ref DrawBatch drawBatch = ref EditDrawBatch(drawKey, subMeshDesc, batchHash, drawBatches); + + if (drawBatch.instanceCount == 0) + ++drawRange.drawCount; + + drawBatch.instanceCount += instanceCount; + + for (int j = 0; j < instanceCount; ++j) + { + var instanceIndex = instanceOffset + j; + InstanceHandle instance = instances[instanceIndex]; + drawInstances.Add(new DrawInstance { key = drawKey, instanceIndex = instance.index }); + } + } + } + } + + [BurstCompile(DisableSafetyChecks = true, OptimizeFor = OptimizeFor.Performance)] + public static void CreateDrawBatches(bool implicitInstanceIndices, in NativeArray instances, in GPUDrivenRendererGroupData rendererData, + in NativeParallelHashMap batchMeshHash, in NativeParallelHashMap batchMaterialHash, + in NativeParallelHashMap packedMaterialDataHash, + ref NativeParallelHashMap rangeHash, ref NativeList drawRanges, ref NativeParallelHashMap batchHash, ref NativeList drawBatches, + ref NativeList drawInstances) + { + for (int i = 0; i < rendererData.rendererGroupID.Length; ++i) + ProcessRenderer(i, implicitInstanceIndices, rendererData, batchMeshHash, packedMaterialDataHash, batchMaterialHash, instances, + drawInstances, rangeHash, drawRanges, batchHash, drawBatches); + } + } +} diff --git a/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/InstanceCullingBatcherBurst.cs.meta b/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/InstanceCullingBatcherBurst.cs.meta new file mode 100644 index 00000000000..1b344d835a7 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/InstanceCullingBatcherBurst.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 07b72b6a7afa9b448b3103bb66d57ca0 \ No newline at end of file diff --git a/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/InstanceData/InstanceDataSystem.Jobs.cs b/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/InstanceData/InstanceDataSystem.Jobs.cs index 27c3fd30ed1..5de08a63be5 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/InstanceData/InstanceDataSystem.Jobs.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/InstanceData/InstanceDataSystem.Jobs.cs @@ -482,213 +482,6 @@ public void Execute(int chunk_index) } } - [BurstCompile(DisableSafetyChecks = true, OptimizeFor = OptimizeFor.Performance)] - private struct ReallocateInstancesJob : IJob - { - [ReadOnly] public bool implicitInstanceIndices; - [ReadOnly] public NativeArray rendererGroupIDs; - [ReadOnly] public NativeArray packedRendererData; - [ReadOnly] public NativeArray instanceOffsets; - [ReadOnly] public NativeArray instanceCounts; - - public InstanceAllocators instanceAllocators; - public CPUInstanceData instanceData; - public CPUSharedInstanceData sharedInstanceData; - public NativeArray instances; - public NativeParallelMultiHashMap rendererGroupInstanceMultiHash; - - public void Execute() - { - for (int i = 0; i < rendererGroupIDs.Length; ++i) - { - var rendererGroupID = rendererGroupIDs[i]; - var hasTree = packedRendererData[i].hasTree; - - int instanceCount; - int instanceOffset; - - if (implicitInstanceIndices) - { - instanceCount = 1; - instanceOffset = i; - } - else - { - instanceCount = instanceCounts[i]; - instanceOffset = instanceOffsets[i]; - } - - SharedInstanceHandle sharedInstance; - - if (rendererGroupInstanceMultiHash.TryGetFirstValue(rendererGroupID, out var instance, out var it)) - { - sharedInstance = instanceData.Get_SharedInstance(instance); - - int currentInstancesCount = sharedInstanceData.Get_RefCount(sharedInstance); - int instancesToFreeCount = currentInstancesCount - instanceCount; - - if (instancesToFreeCount > 0) - { - bool success = true; - int freedInstancesCount = 0; - - for (int j = 0; j < instanceCount; ++j) - success = rendererGroupInstanceMultiHash.TryGetNextValue(out instance, ref it); - - Assert.IsTrue(success); - - while (success) - { - instanceData.Remove(instance); - instanceAllocators.FreeInstance(instance); - - rendererGroupInstanceMultiHash.Remove(it); - ++freedInstancesCount; - success = rendererGroupInstanceMultiHash.TryGetNextValue(out instance, ref it); - } - - Assert.AreEqual(instancesToFreeCount, freedInstancesCount); - } - } - else - { - sharedInstance = instanceAllocators.AllocateSharedInstance(); - sharedInstanceData.AddNoGrow(sharedInstance); - } - - if (instanceCount > 0) - { - sharedInstanceData.Set_RefCount(sharedInstance, instanceCount); - - for (int j = 0; j < instanceCount; ++j) - { - int instanceIndex = instanceOffset + j; - - if (instances[instanceIndex].valid) - continue; - - InstanceHandle newInstance; - - if (!hasTree) - newInstance = instanceAllocators.AllocateInstance(InstanceType.MeshRenderer); - else - newInstance = instanceAllocators.AllocateInstance(InstanceType.SpeedTree); - - instanceData.AddNoGrow(newInstance); - int index = instanceData.InstanceToIndex(newInstance); - instanceData.sharedInstances[index] = sharedInstance; - instanceData.movedInCurrentFrameBits.Set(index, false); - instanceData.movedInPreviousFrameBits.Set(index, false); - instanceData.visibleInPreviousFrameBits.Set(index, false); - - rendererGroupInstanceMultiHash.Add(rendererGroupID, newInstance); - instances[instanceIndex] = newInstance; - } - } - else - { - sharedInstanceData.Remove(sharedInstance); - instanceAllocators.FreeSharedInstance(sharedInstance); - } - } - } - } - - [BurstCompile(DisableSafetyChecks = true, OptimizeFor = OptimizeFor.Performance)] - private struct FreeInstancesJob : IJob - { - [ReadOnly] public NativeArray instances; - - public InstanceAllocators instanceAllocators; - public CPUInstanceData instanceData; - public CPUSharedInstanceData sharedInstanceData; - public NativeParallelMultiHashMap rendererGroupInstanceMultiHash; - - public void Execute() - { - foreach (var instance in instances) - { - if (!instanceData.IsValidInstance(instance)) - continue; - - int instanceIndex = instanceData.InstanceToIndex(instance); - SharedInstanceHandle sharedInstance = instanceData.sharedInstances[instanceIndex]; - int sharedInstanceIndex = sharedInstanceData.SharedInstanceToIndex(sharedInstance); - int refCount = sharedInstanceData.refCounts[sharedInstanceIndex]; - var rendererGroupID = sharedInstanceData.rendererGroupIDs[sharedInstanceIndex]; - - Assert.IsTrue(refCount > 0); - - if (refCount > 1) - { - sharedInstanceData.refCounts[sharedInstanceIndex] = refCount - 1; - } - else - { - sharedInstanceData.Remove(sharedInstance); - instanceAllocators.FreeSharedInstance(sharedInstance); - } - - instanceData.Remove(instance); - instanceAllocators.FreeInstance(instance); - - //@ This will have quadratic cost. Optimize later. - for (bool success = rendererGroupInstanceMultiHash.TryGetFirstValue(rendererGroupID, out var i, out var it); success;) - { - if (instance.Equals(i)) - { - rendererGroupInstanceMultiHash.Remove(it); - break; - } - success = rendererGroupInstanceMultiHash.TryGetNextValue(out i, ref it); - } - } - } - } - - [BurstCompile(DisableSafetyChecks = true, OptimizeFor = OptimizeFor.Performance)] - private struct FreeRendererGroupInstancesJob : IJob - { - [ReadOnly] public NativeArray rendererGroupsID; - - public InstanceAllocators instanceAllocators; - public CPUInstanceData instanceData; - public CPUSharedInstanceData sharedInstanceData; - public NativeParallelMultiHashMap rendererGroupInstanceMultiHash; - - public void Execute() - { - foreach (var rendererGroupID in rendererGroupsID) - { - for (bool success = rendererGroupInstanceMultiHash.TryGetFirstValue(rendererGroupID, out var instance, out var it); success;) - { - SharedInstanceHandle sharedInstance = instanceData.Get_SharedInstance(instance); - int sharedInstanceIndex = sharedInstanceData.SharedInstanceToIndex(sharedInstance); - int refCount = sharedInstanceData.refCounts[sharedInstanceIndex]; - - Assert.IsTrue(refCount > 0); - - if (refCount > 1) - { - sharedInstanceData.refCounts[sharedInstanceIndex] = refCount - 1; - } - else - { - sharedInstanceData.Remove(sharedInstance); - instanceAllocators.FreeSharedInstance(sharedInstance); - } - - instanceData.Remove(instance); - instanceAllocators.FreeInstance(instance); - - success = rendererGroupInstanceMultiHash.TryGetNextValue(out instance, ref it); - } - - rendererGroupInstanceMultiHash.Remove(rendererGroupID); - } - } - } - [BurstCompile(DisableSafetyChecks = true, OptimizeFor = OptimizeFor.Performance)] private unsafe struct UpdateRendererInstancesJob : IJobParallelFor { diff --git a/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/InstanceData/InstanceDataSystem.cs b/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/InstanceData/InstanceDataSystem.cs index 9ed79f922ae..1649aeec519 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/InstanceData/InstanceDataSystem.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/InstanceData/InstanceDataSystem.cs @@ -475,24 +475,21 @@ public unsafe void ReallocateAndGetInstances(in GPUDrivenRendererGroupData rende m_InstanceData.EnsureFreeInstances(newInstancesCount); m_SharedInstanceData.EnsureFreeInstances(newSharedInstancesCount); - new ReallocateInstancesJob { implicitInstanceIndices = implicitInstanceIndices, rendererGroupInstanceMultiHash = m_RendererGroupInstanceMultiHash, - instanceAllocators = m_InstanceAllocators, sharedInstanceData = m_SharedInstanceData, instanceData = m_InstanceData, - rendererGroupIDs = rendererData.rendererGroupID, packedRendererData = rendererData.packedRendererData, instanceOffsets = rendererData.instancesOffset, - instanceCounts = rendererData.instancesCount, instances = instances }.Run(); + InstanceDataSystemBurst.ReallocateInstances(implicitInstanceIndices, rendererData.rendererGroupID, rendererData.packedRendererData, + rendererData.instancesOffset, rendererData.instancesCount, ref m_InstanceAllocators, ref m_InstanceData, + ref m_SharedInstanceData, ref instances, ref m_RendererGroupInstanceMultiHash); } public void FreeRendererGroupInstances(NativeArray rendererGroupsID) { - new FreeRendererGroupInstancesJob { rendererGroupInstanceMultiHash = m_RendererGroupInstanceMultiHash, - instanceAllocators = m_InstanceAllocators, sharedInstanceData = m_SharedInstanceData, instanceData = m_InstanceData, - rendererGroupsID = rendererGroupsID }.Run(); + InstanceDataSystemBurst.FreeRendererGroupInstances(rendererGroupsID.AsReadOnly(), ref m_InstanceAllocators, ref m_InstanceData, + ref m_SharedInstanceData, ref m_RendererGroupInstanceMultiHash); } public void FreeInstances(NativeArray instances) { - new FreeInstancesJob { rendererGroupInstanceMultiHash = m_RendererGroupInstanceMultiHash, - instanceAllocators = m_InstanceAllocators, sharedInstanceData = m_SharedInstanceData, instanceData = m_InstanceData, - instances = instances }.Run(); + InstanceDataSystemBurst.FreeInstances(instances.AsReadOnly(), ref m_InstanceAllocators, ref m_InstanceData, + ref m_SharedInstanceData, ref m_RendererGroupInstanceMultiHash); } public JobHandle ScheduleUpdateInstanceDataJob(NativeArray instances, in GPUDrivenRendererGroupData rendererData, NativeParallelHashMap lodGroupDataMap) diff --git a/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/InstanceData/InstanceDataSystemBurst.cs b/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/InstanceData/InstanceDataSystemBurst.cs new file mode 100644 index 00000000000..986472f5e62 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/InstanceData/InstanceDataSystemBurst.cs @@ -0,0 +1,191 @@ +using Unity.Collections; +using Unity.Burst; +using UnityEngine.Assertions; + +namespace UnityEngine.Rendering +{ + [BurstCompile] + internal static class InstanceDataSystemBurst + { + [BurstCompile(DisableSafetyChecks = true, OptimizeFor = OptimizeFor.Performance)] + public static void ReallocateInstances(bool implicitInstanceIndices, in NativeArray rendererGroupIDs, in NativeArray packedRendererData, + in NativeArray instanceOffsets, in NativeArray instanceCounts, ref InstanceAllocators instanceAllocators, ref CPUInstanceData instanceData, + ref CPUSharedInstanceData sharedInstanceData, ref NativeArray instances, + ref NativeParallelMultiHashMap rendererGroupInstanceMultiHash) + { + for (int i = 0; i < rendererGroupIDs.Length; ++i) + { + var rendererGroupID = rendererGroupIDs[i]; + var hasTree = packedRendererData[i].hasTree; + + int instanceCount; + int instanceOffset; + + if (implicitInstanceIndices) + { + instanceCount = 1; + instanceOffset = i; + } + else + { + instanceCount = instanceCounts[i]; + instanceOffset = instanceOffsets[i]; + } + + SharedInstanceHandle sharedInstance; + + if (rendererGroupInstanceMultiHash.TryGetFirstValue(rendererGroupID, out var instance, out var it)) + { + sharedInstance = instanceData.Get_SharedInstance(instance); + + int currentInstancesCount = sharedInstanceData.Get_RefCount(sharedInstance); + int instancesToFreeCount = currentInstancesCount - instanceCount; + + if (instancesToFreeCount > 0) + { + bool success = true; + int freedInstancesCount = 0; + + for (int j = 0; j < instanceCount; ++j) + success = rendererGroupInstanceMultiHash.TryGetNextValue(out instance, ref it); + + Assert.IsTrue(success); + + while (success) + { + var idx = instanceData.InstanceToIndex(instance); + instanceData.Remove(instance); + + instanceAllocators.FreeInstance(instance); + + rendererGroupInstanceMultiHash.Remove(it); + ++freedInstancesCount; + success = rendererGroupInstanceMultiHash.TryGetNextValue(out instance, ref it); + } + + Assert.AreEqual(instancesToFreeCount, freedInstancesCount); + } + } + else + { + sharedInstance = instanceAllocators.AllocateSharedInstance(); + sharedInstanceData.AddNoGrow(sharedInstance); + } + + if (instanceCount > 0) + { + sharedInstanceData.Set_RefCount(sharedInstance, instanceCount); + + for (int j = 0; j < instanceCount; ++j) + { + int instanceIndex = instanceOffset + j; + + if (instances[instanceIndex].valid) + continue; + + InstanceHandle newInstance; + + if (!hasTree) + newInstance = instanceAllocators.AllocateInstance(InstanceType.MeshRenderer); + else + newInstance = instanceAllocators.AllocateInstance(InstanceType.SpeedTree); + + instanceData.AddNoGrow(newInstance); + int index = instanceData.InstanceToIndex(newInstance); + instanceData.sharedInstances[index] = sharedInstance; + instanceData.movedInCurrentFrameBits.Set(index, false); + instanceData.movedInPreviousFrameBits.Set(index, false); + instanceData.visibleInPreviousFrameBits.Set(index, false); + + rendererGroupInstanceMultiHash.Add(rendererGroupID, newInstance); + instances[instanceIndex] = newInstance; + } + } + else + { + sharedInstanceData.Remove(sharedInstance); + instanceAllocators.FreeSharedInstance(sharedInstance); + } + } + } + + [BurstCompile(DisableSafetyChecks = true, OptimizeFor = OptimizeFor.Performance)] + public static void FreeRendererGroupInstances(in NativeArray.ReadOnly rendererGroupsID, ref InstanceAllocators instanceAllocators, ref CPUInstanceData instanceData, + ref CPUSharedInstanceData sharedInstanceData, ref NativeParallelMultiHashMap rendererGroupInstanceMultiHash) + { + foreach (var rendererGroupID in rendererGroupsID) + { + for (bool success = rendererGroupInstanceMultiHash.TryGetFirstValue(rendererGroupID, out var instance, out var it); success;) + { + SharedInstanceHandle sharedInstance = instanceData.Get_SharedInstance(instance); + int sharedInstanceIndex = sharedInstanceData.SharedInstanceToIndex(sharedInstance); + int refCount = sharedInstanceData.refCounts[sharedInstanceIndex]; + + Assert.IsTrue(refCount > 0); + + if (refCount > 1) + { + sharedInstanceData.refCounts[sharedInstanceIndex] = refCount - 1; + } + else + { + sharedInstanceData.Remove(sharedInstance); + instanceAllocators.FreeSharedInstance(sharedInstance); + } + + var idx = instanceData.InstanceToIndex(instance); + instanceData.Remove(instance); + instanceAllocators.FreeInstance(instance); + + success = rendererGroupInstanceMultiHash.TryGetNextValue(out instance, ref it); + } + + rendererGroupInstanceMultiHash.Remove(rendererGroupID); + } + } + + + [BurstCompile(DisableSafetyChecks = true, OptimizeFor = OptimizeFor.Performance)] + public static void FreeInstances(in NativeArray.ReadOnly instances, ref InstanceAllocators instanceAllocators, ref CPUInstanceData instanceData, + ref CPUSharedInstanceData sharedInstanceData, ref NativeParallelMultiHashMap rendererGroupInstanceMultiHash) + { + foreach (var instance in instances) + { + if (!instanceData.IsValidInstance(instance)) + continue; + + int instanceIndex = instanceData.InstanceToIndex(instance); + SharedInstanceHandle sharedInstance = instanceData.sharedInstances[instanceIndex]; + int sharedInstanceIndex = sharedInstanceData.SharedInstanceToIndex(sharedInstance); + int refCount = sharedInstanceData.refCounts[sharedInstanceIndex]; + var rendererGroupID = sharedInstanceData.rendererGroupIDs[sharedInstanceIndex]; + + Assert.IsTrue(refCount > 0); + + if (refCount > 1) + { + sharedInstanceData.refCounts[sharedInstanceIndex] = refCount - 1; + } + else + { + sharedInstanceData.Remove(sharedInstance); + instanceAllocators.FreeSharedInstance(sharedInstance); + } + + instanceData.Remove(instance); + instanceAllocators.FreeInstance(instance); + + //@ This will have quadratic cost. Optimize later. + for (bool success = rendererGroupInstanceMultiHash.TryGetFirstValue(rendererGroupID, out var i, out var it); success;) + { + if (instance.Equals(i)) + { + rendererGroupInstanceMultiHash.Remove(it); + break; + } + success = rendererGroupInstanceMultiHash.TryGetNextValue(out i, ref it); + } + } + } + } +} diff --git a/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/InstanceData/InstanceDataSystemBurst.cs.meta b/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/InstanceData/InstanceDataSystemBurst.cs.meta new file mode 100644 index 00000000000..8613808fb3e --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/InstanceData/InstanceDataSystemBurst.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 302f596d55264be4ba359e52ec407766 \ No newline at end of file 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/GPUDriven/LODGroupDataPool.cs b/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/LODGroupDataPool.cs index 42705f501e6..b9e47a3b1f7 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/LODGroupDataPool.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/LODGroupDataPool.cs @@ -86,52 +86,6 @@ public unsafe void Execute(int index) } } - [BurstCompile(DisableSafetyChecks = true, OptimizeFor = OptimizeFor.Performance)] - internal unsafe struct AllocateOrGetLODGroupDataInstancesJob : IJob - { - [ReadOnly] public NativeArray lodGroupsID; - - public NativeList lodGroupsData; - public NativeList lodGroupCullingData; - public NativeParallelHashMap lodGroupDataHash; - public NativeList freeLODGroupDataHandles; - - [WriteOnly] public NativeArray lodGroupInstances; - - [NativeDisableUnsafePtrRestriction] public int* previousRendererCount; - - public void Execute() - { - int freeHandlesCount = freeLODGroupDataHandles.Length; - int lodDataLength = lodGroupsData.Length; - - for (int i = 0; i < lodGroupsID.Length; ++i) - { - int lodGroupID = lodGroupsID[i]; - - if (!lodGroupDataHash.TryGetValue(lodGroupID, out var lodGroupInstance)) - { - if (freeHandlesCount == 0) - lodGroupInstance = new GPUInstanceIndex() { index = lodDataLength++ }; - else - lodGroupInstance = freeLODGroupDataHandles[--freeHandlesCount]; - - lodGroupDataHash.TryAdd(lodGroupID, lodGroupInstance); - } - else - { - *previousRendererCount += lodGroupsData.ElementAt(lodGroupInstance.index).rendererCount; - } - - lodGroupInstances[i] = lodGroupInstance; - } - - freeLODGroupDataHandles.ResizeUninitialized(freeHandlesCount); - lodGroupsData.ResizeUninitialized(lodDataLength); - lodGroupCullingData.ResizeUninitialized(lodDataLength); - } - } - [BurstCompile(DisableSafetyChecks = true, OptimizeFor = OptimizeFor.Performance)] internal unsafe struct UpdateLODGroupDataJob : IJobParallelFor { @@ -219,38 +173,6 @@ public void Execute(int index) } } - [BurstCompile(DisableSafetyChecks = true, OptimizeFor = OptimizeFor.Performance)] - internal unsafe struct FreeLODGroupDataJob : IJob - { - [ReadOnly] public NativeArray destroyedLODGroupsID; - - public NativeList lodGroupsData; - public NativeParallelHashMap lodGroupDataHash; - public NativeList freeLODGroupDataHandles; - - [NativeDisableUnsafePtrRestriction] public int* removedRendererCount; - - public void Execute() - { - foreach (int lodGroupID in destroyedLODGroupsID) - { - if (lodGroupDataHash.TryGetValue(lodGroupID, out var lodGroupInstance)) - { - Assert.IsTrue(lodGroupInstance.valid); - - lodGroupDataHash.Remove(lodGroupID); - freeLODGroupDataHandles.Add(lodGroupInstance); - - ref LODGroupData lodGroupData = ref lodGroupsData.ElementAt(lodGroupInstance.index); - Assert.IsTrue(lodGroupData.valid); - - *removedRendererCount += lodGroupData.rendererCount; - lodGroupData.valid = false; - } - } - } - } - internal class LODGroupDataPool : IDisposable { private NativeList m_LODGroupData; @@ -329,18 +251,9 @@ public unsafe void UpdateLODGroupData(in GPUDrivenLODGroupData inputData) var lodGroupInstances = new NativeArray(inputData.lodGroupID.Length, Allocator.TempJob, NativeArrayOptions.UninitializedMemory); - int previousRendererCount = 0; - - new AllocateOrGetLODGroupDataInstancesJob - { - lodGroupsID = inputData.lodGroupID, - lodGroupsData = m_LODGroupData, - lodGroupCullingData = m_LODGroupCullingData, - lodGroupDataHash = m_LODGroupDataHash, - freeLODGroupDataHandles = m_FreeLODGroupDataHandles, - lodGroupInstances = lodGroupInstances, - previousRendererCount = &previousRendererCount - }.Run(); + int previousRendererCount = LODGroupDataPoolBurst.AllocateOrGetLODGroupDataInstances(inputData.lodGroupID, + ref m_LODGroupData, ref m_LODGroupCullingData, + ref m_LODGroupDataHash, ref m_FreeLODGroupDataHandles, ref lodGroupInstances); m_CrossfadedRendererCount -= previousRendererCount; Assert.IsTrue(m_CrossfadedRendererCount >= 0); @@ -367,21 +280,12 @@ public unsafe void UpdateLODGroupData(in GPUDrivenLODGroupData inputData) lodGroupInstances.Dispose(); } - public unsafe void FreeLODGroupData(NativeArray destroyedLODGroupsID) + public void FreeLODGroupData(NativeArray destroyedLODGroupsID) { if (destroyedLODGroupsID.Length == 0) return; - int removedRendererCount = 0; - - new FreeLODGroupDataJob - { - destroyedLODGroupsID = destroyedLODGroupsID, - lodGroupsData = m_LODGroupData, - lodGroupDataHash = m_LODGroupDataHash, - freeLODGroupDataHandles = m_FreeLODGroupDataHandles, - removedRendererCount = &removedRendererCount - }.Run(); + int removedRendererCount = LODGroupDataPoolBurst.FreeLODGroupData(destroyedLODGroupsID, ref m_LODGroupData, ref m_LODGroupDataHash, ref m_FreeLODGroupDataHandles); m_CrossfadedRendererCount -= removedRendererCount; Assert.IsTrue(m_CrossfadedRendererCount >= 0); diff --git a/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/LODGroupDataPoolBurst.cs b/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/LODGroupDataPoolBurst.cs new file mode 100644 index 00000000000..efe0342a9fe --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/LODGroupDataPoolBurst.cs @@ -0,0 +1,72 @@ +using Unity.Collections; +using Unity.Burst; +using UnityEngine.Assertions; + +namespace UnityEngine.Rendering +{ + [BurstCompile] + internal static class LODGroupDataPoolBurst + { + [BurstCompile(DisableSafetyChecks = true, OptimizeFor = OptimizeFor.Performance)] + public static int FreeLODGroupData(in NativeArray destroyedLODGroupsID, ref NativeList lodGroupsData, + ref NativeParallelHashMap lodGroupDataHash, ref NativeList freeLODGroupDataHandles) + { + int removedRendererCount = 0; + + foreach (int lodGroupID in destroyedLODGroupsID) + { + if (lodGroupDataHash.TryGetValue(lodGroupID, out var lodGroupInstance)) + { + Assert.IsTrue(lodGroupInstance.valid); + + lodGroupDataHash.Remove(lodGroupID); + freeLODGroupDataHandles.Add(lodGroupInstance); + + ref LODGroupData lodGroupData = ref lodGroupsData.ElementAt(lodGroupInstance.index); + Assert.IsTrue(lodGroupData.valid); + + removedRendererCount += lodGroupData.rendererCount; + lodGroupData.valid = false; + } + } + + return removedRendererCount; + } + + [BurstCompile(DisableSafetyChecks = true, OptimizeFor = OptimizeFor.Performance)] + public static int AllocateOrGetLODGroupDataInstances(in NativeArray lodGroupsID, ref NativeList lodGroupsData, ref NativeList lodGroupCullingData, + ref NativeParallelHashMap lodGroupDataHash, ref NativeList freeLODGroupDataHandles, ref NativeArray lodGroupInstances) + { + int freeHandlesCount = freeLODGroupDataHandles.Length; + int lodDataLength = lodGroupsData.Length; + int previousRendererCount = 0; + + for (int i = 0; i < lodGroupsID.Length; ++i) + { + int lodGroupID = lodGroupsID[i]; + + if (!lodGroupDataHash.TryGetValue(lodGroupID, out var lodGroupInstance)) + { + if (freeHandlesCount == 0) + lodGroupInstance = new GPUInstanceIndex() { index = lodDataLength++ }; + else + lodGroupInstance = freeLODGroupDataHandles[--freeHandlesCount]; + + lodGroupDataHash.TryAdd(lodGroupID, lodGroupInstance); + } + else + { + previousRendererCount += lodGroupsData.ElementAt(lodGroupInstance.index).rendererCount; + } + + lodGroupInstances[i] = lodGroupInstance; + } + + freeLODGroupDataHandles.ResizeUninitialized(freeHandlesCount); + lodGroupsData.ResizeUninitialized(lodDataLength); + lodGroupCullingData.ResizeUninitialized(lodDataLength); + + return previousRendererCount; + } + } +} diff --git a/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/LODGroupDataPoolBurst.cs.meta b/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/LODGroupDataPoolBurst.cs.meta new file mode 100644 index 00000000000..6e2ab16b7ac --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/LODGroupDataPoolBurst.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: ad57195e4230c9344a64d902de871991 \ No newline at end of file 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 71906191fb2..6ece01ffb8a 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 @@ -1685,6 +1685,9 @@ internal bool EnsureCurrentBakingSet(ProbeVolumeBakingSet bakingSet) //Ensure that all currently loaded scenes belong to the same set. foreach (var data in perSceneDataList) { + if (UnityEditor.SceneManagement.EditorSceneManager.IsPreviewScene(data.gameObject.scene)) + continue; // Ignore preview scenes - they are needed to make closed subscenes work + var set = ProbeVolumeBakingSet.GetBakingSetForScene(data.gameObject.scene); if (set != bakingSet) return 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/ProbeVolumePerSceneData.cs b/Packages/com.unity.render-pipelines.core/Runtime/Lighting/ProbeVolume/ProbeVolumePerSceneData.cs index 4fc973f5ecb..6cc04a608ad 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/Lighting/ProbeVolume/ProbeVolumePerSceneData.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/Lighting/ProbeVolume/ProbeVolumePerSceneData.cs @@ -95,7 +95,7 @@ internal void QueueSceneRemoval() void OnEnable() { - #if UNITY_EDITOR +#if UNITY_EDITOR // In the editor, always refresh the GUID as it may become out of date is scene is duplicated or other weird things // This field is serialized, so it will be available in standalones, where it can't change anymore. // Only change the GUID if the new one is valid. @@ -105,7 +105,7 @@ void OnEnable() sceneGUID = newGUID; EditorUtility.SetDirty(this); } - #endif +#endif ProbeReferenceVolume.instance.RegisterPerSceneData(this); } 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/IRenderGraphBuilder.cs b/Packages/com.unity.render-pipelines.core/Runtime/RenderGraph/IRenderGraphBuilder.cs index cb9e6d8e235..ceb9ff8c9b9 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/RenderGraph/IRenderGraphBuilder.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/RenderGraph/IRenderGraphBuilder.cs @@ -228,6 +228,10 @@ void SetRenderAttachment(TextureHandle tex, int index, AccessFlags flags = Acces /// 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. 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 f28e73577bb..8913e109977 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/RenderGraph/RenderGraph.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/RenderGraph/RenderGraph.cs @@ -529,7 +529,7 @@ public void Cleanup() nativeCompiler?.Cleanup(); m_CompilationCache?.Clear(); - + DelegateHashCodeUtils.ClearCache(); } @@ -751,6 +751,25 @@ public TextureHandle CreateTexture(TextureHandle texture) return m_Resources.CreateTexture(m_Resources.GetTextureResourceDesc(texture.handle)); } + /// + /// Create a new Render Graph Texture resource using the descriptor from another texture. + /// + /// + /// This API cannot be called during the Render Graph execution, please call it outside of SetRenderFunc(). + /// + /// Texture from which the descriptor should be used. + /// The destination texture name. + /// Texture needs to be cleared on first use. + /// A new TextureHandle. + public TextureHandle CreateTexture(TextureHandle texture, string name, bool clear = false) + { + var destinationDesc = GetTextureDesc(texture); + destinationDesc.name = name; + destinationDesc.clearBuffer = clear; + + return m_Resources.CreateTexture(destinationDesc); + } + /// /// Create a new Render Graph Texture if the passed handle is invalid and use said handle as output. /// If the passed handle is valid, no texture is created. 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 c5248f752fc..5c1eac073cf 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 { @@ -399,6 +400,8 @@ public void SetRenderAttachment(TextureHandle tex, int index, AccessFlags flags, 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 @@ -514,6 +517,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/RenderGraphUtilsBlit.cs b/Packages/com.unity.render-pipelines.core/Runtime/RenderGraph/RenderGraphUtilsBlit.cs index 922466b7b00..7eece9d0a40 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,9 +30,53 @@ 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) { + if (!IsFramebufferFetchEmulationMSAASupportedOnCurrentPlatform()) + return false; + return Blitter.CanCopyMSAA(sourceDesc); } + 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; + } + class CopyPassData { public bool isMSAA; @@ -90,7 +137,7 @@ public static void AddCopyPass( // It would have 1 if the MSAA pass is not able to be used for target and 2 otherwise. // https://docs.unity3d.com/2017.4/Documentation/Manual/SL-ShaderCompileTargets.html // https://learn.microsoft.com/en-us/windows/win32/direct3dhlsl/dx-graphics-hlsl-to-get-sample-position - if (isMSAA && !Blitter.CanCopyMSAA(sourceDesc)) + if (isMSAA && !CanAddCopyPassMSAA(sourceDesc)) throw new ArgumentException("Target does not support MSAA for AddCopyPass. Please use the blit alternative or use non MSAA textures."); using (var builder = graph.AddRasterRenderPass(passName, out var passData, file, line)) 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/Volume/Volume.cs b/Packages/com.unity.render-pipelines.core/Runtime/Volume/Volume.cs index 82ff5a11cc3..b804106496f 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/Volume/Volume.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/Volume/Volume.cs @@ -10,6 +10,7 @@ namespace UnityEngine.Rendering [CurrentPipelineHelpURL("Volumes")] [ExecuteAlways] [AddComponentMenu("Miscellaneous/Volume")] + [Icon("Packages/com.unity.render-pipelines.core/Editor/Icons/Processed/Volume Icon.asset")] public class Volume : MonoBehaviour, IVolume { [SerializeField, FormerlySerializedAs("isGlobal")] diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Volume/Volume.cs.meta b/Packages/com.unity.render-pipelines.core/Runtime/Volume/Volume.cs.meta index e59941be5a4..e3aa1d2d2ec 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/Volume/Volume.cs.meta +++ b/Packages/com.unity.render-pipelines.core/Runtime/Volume/Volume.cs.meta @@ -5,7 +5,7 @@ MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 - icon: {fileID: 2800000, guid: 32b23d5d74f3aee4f9364e34e2f59379, type: 3} + icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: 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 421eadd82a3..d007439ee8c 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/Volume/VolumeManager.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/Volume/VolumeManager.cs @@ -137,11 +137,23 @@ public sealed partial class VolumeManager .OrderBy(i => i.Item1) .ToList(); } + + Type[] m_BaseComponentTypeArray; /// /// The current list of all available types that derive from . /// - public Type[] baseComponentTypeArray { get; internal set; } // internal only for tests + public Type[] baseComponentTypeArray + { + get + { + if (isInitialized) + return m_BaseComponentTypeArray; + + throw new InvalidOperationException($"{nameof(VolumeManager)}.{nameof(instance)}.{nameof(baseComponentTypeArray)} cannot be called before the {nameof(VolumeManager)} is initialized. (See {nameof(VolumeManager)}.{nameof(instance)}.{nameof(isInitialized)} and {nameof(RenderPipelineManager)} for creation callback)."); + } + internal set => m_BaseComponentTypeArray = value; // internal only for tests + } /// /// Global default profile that provides default values for volume components. VolumeManager applies @@ -242,13 +254,19 @@ public void Initialize(VolumeProfile globalDefaultVolumeProfile = null, VolumePr Debug.Assert(m_CreatedVolumeStacks.Count == 0); LoadBaseTypes(GraphicsSettings.currentRenderPipelineAssetType); + InitializeInternal(globalDefaultVolumeProfile, qualityDefaultVolumeProfile); + } + + //This is called by test where the basetypes are tuned for the purpose of the test. + internal void InitializeInternal(VolumeProfile globalDefaultVolumeProfile = null, VolumeProfile qualityDefaultVolumeProfile = null) + { InitializeVolumeComponents(); globalDefaultProfile = globalDefaultVolumeProfile; qualityDefaultProfile = qualityDefaultVolumeProfile; EvaluateVolumeDefaultState(); - m_DefaultStack = CreateStack(); + m_DefaultStack = CreateStackInternal(); stack = m_DefaultStack; isInitialized = true; @@ -347,9 +365,17 @@ public void OnVolumeComponentChanged(VolumeComponent component) /// /// public VolumeStack CreateStack() + { + if (!isInitialized) + throw new InvalidOperationException($"{nameof(VolumeManager)}.{nameof(instance)}.{nameof(CreateStack)}() cannot be called before the {nameof(VolumeManager)} is initialized. (See {nameof(VolumeManager)}.{nameof(instance)}.{nameof(isInitialized)} and {nameof(RenderPipelineManager)} for creation callback)."); + + return CreateStackInternal(); + } + + VolumeStack CreateStackInternal() { var stack = new VolumeStack(); - stack.Reload(baseComponentTypeArray); + stack.Reload(m_BaseComponentTypeArray); m_CreatedVolumeStacks.Add(stack); return stack; } @@ -421,15 +447,18 @@ internal void LoadBaseTypes(Type pipelineAssetType) list.Add(t); } - baseComponentTypeArray = list.ToArray(); + m_BaseComponentTypeArray = list.ToArray(); } } internal void InitializeVolumeComponents() { + if (m_BaseComponentTypeArray == null || m_BaseComponentTypeArray.Length == 0) + return; + // Call custom static Init method if present var flags = BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic; - foreach (var type in baseComponentTypeArray) + foreach (var type in m_BaseComponentTypeArray) { var initMethod = type.GetMethod("Init", flags); if (initMethod != null) @@ -440,9 +469,9 @@ internal void InitializeVolumeComponents() } // Evaluate static default values for VolumeComponents, which is the baseline to reset the values to at the start of Update. - internal void EvaluateVolumeDefaultState() + void EvaluateVolumeDefaultState() { - if (baseComponentTypeArray == null || baseComponentTypeArray.Length == 0) + if (m_BaseComponentTypeArray == null || m_BaseComponentTypeArray.Length == 0) return; using var profilerScope = k_ProfilerMarkerEvaluateVolumeDefaultState.Auto(); @@ -453,7 +482,7 @@ internal void EvaluateVolumeDefaultState() // First, default-construct all VolumeComponents List componentsDefaultStateList = new(); - foreach (var type in baseComponentTypeArray) + foreach (var type in m_BaseComponentTypeArray) { componentsDefaultStateList.Add((VolumeComponent) ScriptableObject.CreateInstance(type)); } diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Volume/VolumeProfile.cs b/Packages/com.unity.render-pipelines.core/Runtime/Volume/VolumeProfile.cs index 60803debd48..14ec9612a4c 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/Volume/VolumeProfile.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/Volume/VolumeProfile.cs @@ -22,8 +22,28 @@ public sealed class VolumeProfile : ScriptableObject /// A dirty check used to redraw the profile inspector when something has changed. This is /// currently only used in the editor. /// - [NonSerialized] - public bool isDirty = true; // Editor only, doesn't have any use outside of it + [Obsolete("This field was only public for editor access. #from(6000.0)")] + public bool isDirty + { + get => dirtyState != DirtyState.None; + set + { + if (value) + dirtyState |= DirtyState.Other; + else + dirtyState &= ~DirtyState.Other; + } + } + + [Flags] internal enum DirtyState + { + None = 0, + DirtyByComponentChange = 1, + DirtyByProfileReset = 2, + Other = 4 + } + + internal DirtyState dirtyState; void OnEnable() { @@ -55,9 +75,7 @@ internal void OnDisable() /// Volume Profile editor when you modify the Asset via script instead of the Inspector. /// public void Reset() - { - isDirty = true; - } + => dirtyState |= DirtyState.DirtyByProfileReset; /// /// Adds a to this Volume Profile. @@ -99,7 +117,7 @@ public VolumeComponent Add(Type type, bool overrides = false) #endif component.SetAllOverridesTo(overrides); components.Add(component); - isDirty = true; + dirtyState |= DirtyState.DirtyByComponentChange; return component; } @@ -141,7 +159,7 @@ public void Remove(Type type) if (toRemove >= 0) { components.RemoveAt(toRemove); - isDirty = true; + dirtyState |= DirtyState.DirtyByComponentChange; } } 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 65c9de7b120..22cc97617b8 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; @@ -105,6 +106,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 /// @@ -480,6 +497,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 aa80bd23d70..62f25ce4d13 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/XR/XRSystem.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/XR/XRSystem.cs @@ -533,6 +533,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/Tests/Editor/GPUDriven/GPUDrivenRenderingTests.cs b/Packages/com.unity.render-pipelines.core/Tests/Editor/GPUDriven/GPUDrivenRenderingTests.cs index 15002f73570..ba1539168d1 100644 --- a/Packages/com.unity.render-pipelines.core/Tests/Editor/GPUDriven/GPUDrivenRenderingTests.cs +++ b/Packages/com.unity.render-pipelines.core/Tests/Editor/GPUDriven/GPUDrivenRenderingTests.cs @@ -189,10 +189,11 @@ public void TestInstanceCullingTier0() var callbackCounter = new BoxedCounter(); cpuDrivenDesc.onCompleteCallback = (JobHandle jobHandle, in BatchCullingContext cc, in BatchCullingOutput cullingOutput) => { + jobHandle.Complete(); + if (cc.viewType != BatchCullingViewType.Camera) return; - jobHandle.Complete(); BatchCullingOutputDrawCommands drawCommands = cullingOutput.drawCommands[0]; var materials = new NativeParallelHashSet(10, Allocator.Temp); @@ -221,6 +222,8 @@ public void TestInstanceCullingTier0() using (var brg = new GPUResidentBatcher(brgContext, cpuDrivenDesc, gpuDrivenProcessor)) { + brg.OnBeginContextRendering(); + brg.UpdateRenderers(objIDs.AsArray()); var cameraObject = new GameObject("myCamera"); @@ -228,6 +231,8 @@ public void TestInstanceCullingTier0() SubmitCameraRenderRequest(mainCamera); + brg.OnEndContextRendering(); + Assert.AreEqual(1, callbackCounter.Value); mainCamera = null; @@ -268,16 +273,19 @@ public void TestSceneViewHiddenRenderersCullingTier0() cpuDrivenDesc.onCompleteCallback = (JobHandle jobHandle, in BatchCullingContext cc, in BatchCullingOutput cullingOutput) => { + jobHandle.Complete(); + if (cc.viewType != BatchCullingViewType.Camera) return; - jobHandle.Complete(); BatchCullingOutputDrawCommands drawCommands = cullingOutput.drawCommands[0]; callbackCounter.Value = drawCommands.visibleInstanceCount; }; using (var brg = new GPUResidentBatcher(brgContext, cpuDrivenDesc, gpuDrivenProcessor)) { + brg.OnBeginContextRendering(); + brg.UpdateRenderers(objIDs); var cameraObject = new GameObject("SceneViewCamera"); @@ -298,6 +306,8 @@ public void TestSceneViewHiddenRenderersCullingTier0() brg.OnEndCameraRendering(mainCamera); Assert.AreEqual(callbackCounter.Value, 1); + brg.OnEndContextRendering(); + GameObject.DestroyImmediate(cameraObject); brgContext.ScheduleQueryRendererGroupInstancesJob(objIDs, instances).Complete(); brg.DestroyDrawInstances(instances); @@ -346,10 +356,11 @@ public void TestMultipleMetadata() var cpuDrivenDesc = InstanceCullingBatcherDesc.NewDefault(); cpuDrivenDesc.onCompleteCallback = (JobHandle jobHandle, in BatchCullingContext cc, in BatchCullingOutput cullingOutput) => { + jobHandle.Complete(); + if (cc.viewType != BatchCullingViewType.Camera) return; - jobHandle.Complete(); BatchCullingOutputDrawCommands drawCommands = cullingOutput.drawCommands[0]; var drawCommandCount = 0U; @@ -370,6 +381,8 @@ public void TestMultipleMetadata() using (var brg = new GPUResidentBatcher(brgContext, cpuDrivenDesc, gpuDrivenProcessor)) { + brg.OnBeginContextRendering(); + brg.UpdateRenderers(objIDs.AsArray()); var cameraObject = new GameObject("myCamera"); @@ -377,6 +390,8 @@ public void TestMultipleMetadata() SubmitCameraRenderRequest(mainCamera); + brg.OnEndContextRendering(); + mainCamera = null; GameObject.DestroyImmediate(cameraObject); @@ -458,10 +473,11 @@ public void TestCPULODSelection() var expectedDrawCommandCount = 2; cpuDrivenDesc.onCompleteCallback = (JobHandle jobHandle, in BatchCullingContext cc, in BatchCullingOutput cullingOutput) => { + jobHandle.Complete(); + if (cc.viewType != BatchCullingViewType.Camera) return; - jobHandle.Complete(); BatchCullingOutputDrawCommands drawCommands = cullingOutput.drawCommands[0]; var drawCommandCount = 0U; @@ -482,6 +498,8 @@ public void TestCPULODSelection() using (var brg = new GPUResidentBatcher(brgContext, cpuDrivenDesc, gpuDrivenProcessor)) { + brg.OnBeginContextRendering(); + brgContext.UpdateLODGroups(lodGroupInstancesID.AsArray()); brg.UpdateRenderers(objIDs.AsArray()); @@ -526,6 +544,8 @@ public void TestCPULODSelection() expectedDrawCommandCount = 1; SubmitCameraRenderRequest(mainCamera); + brg.OnEndContextRendering(); + Assert.AreEqual(7, callbackCounter.Value); mainCamera = null; @@ -611,10 +631,11 @@ public void TestCPULODCrossfade() var expectedDrawCommandCount = 0; cpuDrivenDesc.onCompleteCallback = (JobHandle jobHandle, in BatchCullingContext cc, in BatchCullingOutput cullingOutput) => { + jobHandle.Complete(); + if (cc.viewType != BatchCullingViewType.Camera) return; - jobHandle.Complete(); BatchCullingOutputDrawCommands drawCommands = cullingOutput.drawCommands[0]; unsafe @@ -633,6 +654,8 @@ public void TestCPULODCrossfade() using (var brg = new GPUResidentBatcher(brgContext, cpuDrivenDesc, gpuDrivenProcessor)) { + brg.OnBeginContextRendering(); + brgContext.UpdateLODGroups(lodGroupInstancesID.AsArray()); brg.UpdateRenderers(objIDs.AsArray()); @@ -684,6 +707,8 @@ public void TestCPULODCrossfade() cameraObject.transform.position = new Vector3(0.0f, 0.0f, -4.0f); SubmitCameraRenderRequest(mainCamera); + brg.OnEndContextRendering(); + mainCamera = null; GameObject.DestroyImmediate(cameraObject); @@ -744,10 +769,11 @@ public void TestGpuDrivenSmallMeshCulling() var expectedDrawCommandCount = 0; cpuDrivenDesc.onCompleteCallback = (JobHandle jobHandle, in BatchCullingContext cc, in BatchCullingOutput cullingOutput) => { + jobHandle.Complete(); + if (cc.viewType != BatchCullingViewType.Camera) return; - jobHandle.Complete(); BatchCullingOutputDrawCommands drawCommands = cullingOutput.drawCommands[0]; unsafe @@ -766,6 +792,8 @@ public void TestGpuDrivenSmallMeshCulling() using (var brg = new GPUResidentBatcher(brgContext, cpuDrivenDesc, gpuDrivenProcessor)) { + brg.OnBeginContextRendering(); + brg.UpdateRenderers(objIDs.AsArray()); var cameraObject = new GameObject("myCamera"); @@ -801,6 +829,8 @@ public void TestGpuDrivenSmallMeshCulling() cameraObject.transform.position = new Vector3(0.0f, 0.0f, -10.0f); SubmitCameraRenderRequest(mainCamera); + brg.OnEndContextRendering(); + mainCamera = null; GameObject.DestroyImmediate(cameraObject); diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Ambient-Occlusion.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Ambient-Occlusion.md index c6b4f3172e9..55dca7373d0 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Ambient-Occlusion.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Ambient-Occlusion.md @@ -1,24 +1,24 @@ -# Ambient occlusion +# Assign an ambient occlusion texture -The High Definition Render Pipeline (HDRP) uses ambient occlusion to approximate ambient light on a GameObject’s surface that has been cast by details present in the Material but not the surface geometry. Since these details don't exist on the model, you must provide an ambient occlusion Texture for HDRP to occlude indirect lighting (lighting from Lightmaps, [Light Probes](https://docs.unity3d.com/Manual/LightProbes.html) or Ambient Light Probes). HDRP also uses the ambient occlusion Texture to calculate specular occlusion. It calculates specular occlusion from the Camera's view vector and the ambient occlusion Texture to dim reflections in cavities. +To assign an [ambient occlusion texture](ambient-occlusion-introduction.md) to a GameObject, follow these steps: -To generate an ambient occlusion Texture, you can use external software like: +1. Use an external software package to create a single-channel ambient occlusion texture that maps the corners and crevices where light is occluded. Use values closer to `0` to indicate more occlusion, and values closer to `1` to indicate less occlusion. -* xNormal -* Substance Designer or Painter -* Knald +1. Create a [mask map](Mask-Map-and-Detail-Map.md#MaskMap) texture, and use the ambient occlusion texture as the green channel. -When authoring ambient occlusion Textures, be aware that a value of 0 specifies an area that's fully occluded and a value of 1 specifies an area that's fully visible. +1. Import the mask map texture into Unity. -When you create the Texture, you must apply it to a Material. To do this, you must use the green channel of a [mask map](Mask-Map-and-Detail-Map.md#MaskMap). +1. Select a material in the **Project** window, then drag the mask map texture into the **Occlusion** (⊙) property of the **Inspector** window. + +HDRP also uses the ambient occlusion texture to calculate specular occlusion, by reducing the intensity of reflections in corners. **Note**: Ambient occlusion in a Lit Shader using [deferred rendering](Forward-And-Deferred-Rendering.md) affects emission due to a technical constraint. Lit Shaders that use [forward rendering](Forward-And-Deferred-Rendering.md) don't have this constraint and don't affect emission. -## Properties +For more information about ambient occlusion texture properties in an HDRP material, refer to the material in [Materials and surfaces](materials-and-surfaces.md). -The ambient occlusion properties are located in the **Mask Map** section of the **Surface Inputs** foldout of your material's **Inspector** window. +## Additional resources -| Property | Description | -| ------------------------------- | ------------------------------------------------------------ | -| **Mask Map - Green channel** | Assign the ambient occlusion map in the green channel of the **Mask Map** Texture. HDRP uses the green channel of this map to calculate ambient occlusion. | -| **Ambient Occlusion Remapping** | Remaps the ambient occlusion map in the green channel of the **Mask Map** between the minimum and maximum values you define on the slider. These values are between 0 and 1.

• Drag the left handle to the right to make the ambient occlusion more subtle.
• Drag the right handle to the left to apply ambient occlusion to the whole Material. This is useful when the GameObject this Material is on is occluded by a dynamic GameObject.

This property only appears when you assign a Texture to the **Mask Map**. | +- [Screen space ambient occlusion (SSAO)](Override-Ambient-Occlusion.md) +- [Ray-traced ambient occlusion (RTAO)](Ray-Traced-Ambient-Occlusion.md) +- [Mask and detail maps](Mask-Map-and-Detail-Map.md#MaskMap) +- [Textures](https://docs.unity3d.com/Manual/Textures-landing.html) diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Environment-Lighting.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Environment-Lighting.md index 4fc7276e640..c81788ce915 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Environment-Lighting.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Environment-Lighting.md @@ -1,52 +1,26 @@ -# Create environment lighting +# Environment lighting -Environment lighting allows you to simulate lighting coming from the surroundings of your Scene. It is common to use environment lighting to simulate sky lighting, but you can also use it to simulate a colored ambient light, or a lighting studio. -In the High Definition Render Pipeline (HDRP), there are two parts to environment lighting: +Simulate light from the surroundings of your scene, for example the sky or a lighting studio, in the High Definition Render Pipeline (HDRP). -* The visual environment, controlled by the [Visual Environment Volume override](visual-environment-volume-override-reference.md). This controls the skybox that you can see through the Camera and represents the visual side of the environment lighting. With the[ built-in render pipeline](https://docs.unity3d.com/Manual/SL-RenderPipeline.html), you customize visual environment lighting settings on a per-Scene basis. In contrast, HDRP's Visual Environment uses the [Volume](understand-volumes.md) framework to smoothly interpolate between different sets of environment lighting settings for your sky (and fog) within the same Scene. -* The lighting environment, controlled by the **Environment (HDRP)** section of the Lighting window. HDRP uses the lighting environment to calculate indirect ambient lighting for your Scene. It does not use the Volume framework as HDRP's indirect ambient lighting currently only supports one source of environment lighting. +HDRP does the following to create environment lighting: -Essentially, you use the visual environment to control how the sky looks in your Scene and use the lighting environment to control how the sky contributes to indirect ambient lighting. +1. Renders a background, for example an HDRI sky texture or a gradient. For more information, refer to [Sky](sky.md). -For information about the [Lighting window](https://docs.unity3d.com/Manual/lighting-window.html) **Environment (HDRP)** properties, refer to +2. Uses the sky to calculate how the GameObjects in your scene receive [indirect ambient light](https://docs.unity3d.com/Manual/lighting-ambient-light.html). To control the light, use the [**Environment (HDRP)** tab of the Lighting window](reference-lighting-environment.md). -## Visual Environment -The Visual Environment is a Volume override that tells HDRP what type of [sky](HDRP-Features.md#sky) you want to see through Cameras that the Volume affects. For information on how to customize Visual Environments, see the [Visual Environment](visual-environment-volume-override-reference.md) documentation. +## How HDRP calculates ambient light -Your Unity Project’s [HDRP Asset](HDRP-Asset.md) has the following properties that also affect all Visual Environments: +Depending on your settings and baked lighting, HDRP fetches the sky color for a GameObject from one of the following: -* **Reflection Size**: Controls the resolution of the sky cube map. Unity uses this cube map as a fallback Reflection Probe for areas that local Reflection Probes do not affect. It has no effect on the quality of the sky directly seen through the camera. -* **Lighting Override Mask**: A LayerMask that allows you to decouple the sky seen through the Camera from the one that affects the ambient lighting. For example, you might want a dark sky at night time, but to have brighter lighting so that you can still see clearly. See [Decoupling the visual environment from the lighting environment](#DecoupleVisualEnvironment). +- The default [ambient light probe](https://docs.unity3d.com/6000.2/Documentation/ScriptReference/RenderSettings-ambientProbe.html), which captures either the static sky in the **Environment (HDRP)** tab of the Lighting window, or the dynamic sky at runtime from the **Visual Environment** volume override. +- Baked lightmap textures from [lightmapping](https://docs.unity3d.com/Manual/Lightmapping-baking-before-runtime.html). +- Realtime lightmap textures from [Enlighten Realtime Global Illumination](https://docs.unity3d.com/Manual/realtime-gi-using-enlighten-landing.html). +- [Adaptive Probe Volumes](probevolumes.md). +- [Screen space global illumination](Override-Screen-Space-GI.md) or [ray-traced global illumination](ray-traced-global-illumination.md). -### HDRP built-in sky types +**Note:** HDRP calculates the ambient Light Probe on the GPU, then uses asynchronous readback on the CPU, so the lighting is one frame late. -HDRP has three built-in [sky types](HDRP-Features.md#sky): +## Additional resources -* [HDRI Sky](create-an-hdri-sky.md) -* [Gradient Sky](create-a-gradient-sky.md) -* [Physically Based Sky](create-a-physically-based-sky.md) - -HDRP also allows you to implement your own sky types that display a background and handle environment lighting. See the [Customizing HDRP](create-a-custom-sky.md) documentation for instructions on how to implement your own sky. - -**Note**: The **Procedural Sky** is deprecated and no longer built into HDRP. For information on how to add Procedural Sky to your HDRP Project, see the [Upgrading from 2019.2 to 2019.3 guide](Upgrading-From-2019.2-to-2019.3.md#ProceduralSky). - - - -## Decouple the visual environment from the lighting environment - -You can use the sky **Lighting Override Mask** in your Unity Project’s HDRP Asset to separate the Visual Environment from the environment lighting. If you set the **Lighting Override Mask** to **Nothing**, or to a group of Layers that have no Volumes on them, then no Layer acts as an override. This means that environment lighting comes from all Volumes that affect a Camera. If you set the **Lighting Override Mask** to include Layers that have Volumes on them, HDRP only uses Volumes on these Layers to calculate environment lighting. - -An example of where you would want to decouple the sky lighting from the visual sky, and use a different Volume Profile for each, is when you have an [HDRI Sky](create-an-hdri-sky.md) that includes sunlight. To make the sun visible at runtime in your application, your sky background must show an HDRI sky that features the sun. To achieve real-time lighting from the sun, you must use a Directional [Light](Light-Component.md) in your Scene and, for the baking process, use an HDRI sky that is identical to the first one but does not include the sun. If you were to use an HDRI sky that includes the sun to bake the lighting, the sun would contribute to the lighting twice (once from the Directional Light, and once from the baking process) and make the lighting look unrealistic. - -## Ambient light probe - -HDRP uses the ambient Light Probe as the final fallback for indirect diffuse lighting. For more information, refer to [Ambient light probe](ambient-light-probe.md). - -## Ambient Reflection Probe - -HDRP uses the ambient Reflection Probe as a fallback for indirect specular lighting. This means that it only affects areas that local Reflection Probes, Screen Space Reflection, and raytraced reflections do not affect. - - -## Reflection - -Reflection Probes work like Cameras; they use the Volume system, and therefore use environment lighting from the sky, which you set in the Visual Environment of the Volume that affects them. For more information, refer to [Reflection](Reflection-in-HDRP.md). +- [Configure environment lighting](ambient-lighting-configure.md) +- [Ambient light](https://docs.unity3d.com/Manual/lighting-ambient-light.html) diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/HDR-Output.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/HDR-Output.md index 66ff54a9c7a..b02f7127c5c 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/HDR-Output.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/HDR-Output.md @@ -13,7 +13,7 @@ To activate HDR output, navigate to **Project Settings > Player** > **Other Sett > **Note**: Only enable **Use HDR Display Output** if you need the main display to use HDR Output. -HDR Output will be active only in Game View and in Player. Currently the feature is not working on DirectX 11 on PC, please use DirectX 12 to make use of it. +HDR Output is only active in the Player when using DirectX 11, and both in the Player and Game View when using DirectX 12. ## HDR tonemapping in HDRP @@ -91,5 +91,3 @@ HDRP only supports HDR Output on the following platforms: * HDRP Supported Devices that use Metal * Consoles * XR devices with HDR support - -> **Note**: DirectX 11 only supports HDR Output in the Player, it does not support HDR Output in the Editor. 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 0b99edacdd1..5a4c789fdf3 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 @@ -2,52 +2,70 @@ The High Definition Render Pipeline (HDRP) Asset controls the global rendering settings of your Project and creates an instance of the render pipeline. -Unity only allocates memory and builds shader variants for features you enable in the HDRP Asset. This means that you can disable features your project does not use to save memory. Since certain features require shader variants or other resources when Unity builds your project, you can only enable and disable features at edit time. However, it is possible to toggle the rendering of particular features at runtime, just not using the HDRP Asset. Instead, [Frame-Settings](Frame-Settings.md) control the features that cameras in the scene render. Frame Settings can only toggle features that are enabled in the HDRP Asset; they cannot enable features that are disabled. +Unity only allocates memory and builds shader variants for features you enable in the HDRP Asset. This means that you can disable features your project doesn't use to save memory. Because certain features require shader variants or other resources when Unity builds your project, you can only enable and disable features at edit time. However, it's possible to toggle the rendering of particular features at runtime, just not using the HDRP Asset. Instead, [Frame-Settings](Frame-Settings.md) control the features that cameras in the scene render. Frame Settings can only toggle features that are enabled in the HDRP Asset; they can't enable features that are disabled. ## Rendering -| **Property** | **Sub-property** | **Description** | +| **Property** | **Subproperty** | **Description** | |-|-|-| -| **Color Buffer Format** || The format of the color buffer that HDRP uses for rendering. Using R16G16B16A16 instead of R11G11B10 doubles the memory usage, but helps avoid banding. R16G16B16A16 is also required for [Alpha-Output](Alpha-Output.md). | -| **Lit Shader Mode** || Use the drop-down to choose which mode HDRP uses for the [Lit Shader](lit-material.md).
• **Forward Only**: forces HDRP to only use forward rendering for Lit Shaders.
• **Deferred Only**: forces HDRP to use deferred rendering for Lit Shaders (HDRP still renders advanced Materials using forward rendering).
• **Both**: allows the Camera to use deferred and forward rendering.

Select **Both** to allow you to switch between forward and deferred rendering for Lit Shaders at runtime per Camera. Selecting a specific mode reduces build time and Shader memory because HDRP requires less Shader variants, but it is not possible to switch from one mode to the other at runtime. | -| **- Multisample Anti-aliasing Quality** || Use the drop-down to set the number of samples HDRP uses for multisample anti-aliasing (MSAA). The larger the sample count, the better the quality. Select **None** to disable MSAA.
This property is only visible when **Lit Shader Mode** is set to **Forward Only** or **Both**. | -| **Motion Vectors** || Enable the checkbox to enable motion vector support in HDRP. HDRP uses motion vectors for effects like screen space reflection (SSR) and motion blur. When disabled, motion blur has no effect and HDRP calculates SSR with lower quality. | -| **Runtime Debug Display** || Enable the checkbox to enable HDRP to use debug modes from the [Rendering Debugger](use-the-rendering-debugger.md) at runtime. Disable the checkbox to reduce build time and shader memory. This disables all property override options, all lighting debug modes, and all material property debug modes except GBuffer debug. | -| **Runtime AOV API** || Enable the checkbox to enable HDRP able to use the AOV API (rendering of material properties and lighting modes) at runtime. Disable this checkbox to reduce build time and shader memory. This disables all material properties and lighting modes. | | -| **Terrain Hole** || Enable the checkbox to enable suppot for [Terrain Holes](https://docs.unity3d.com/2019.3/Documentation/Manual/terrain-PaintHoles.html) in HDRP. If you do not enable this, Terrain Holes are not visible in your Scene. | -| **Transparent Backface** || Enable the checkbox to enable support for transparent back-face render passes in HDRP. If your Unity Project does not need to make a transparent back-face pass, disable this checkbox to reduce build time. | -| **Transparent Depth Prepass** || Enable the checkbox to enable support for transparent depth render prepasses in HDRP. If your Unity Project does not need to make a transparent depth prepass, disable this checkbox to reduce build time. | -| **Transparent Depth Postpass** || Enable the checkbox to enable support for transparent depth render postpasses in HDRP. If your Unity Project does not make use of a transparent depth postpass, disable this checkbox to reduce build time. | -| **Custom Pass** || Enable the checkbox to enable support for [custom passes](Custom-Pass.md) in HDRP. If your Unity Project does not use custom passes, disable this checkbox to save memory. | -| - **Custom Buffer Format** || Specify the texture format for the custom buffer. If you experience banding issues due to your custom passes, you can change it to either `R11G11B10` if you don't need alpha, or `R16G16B16A16` if you do need alpha. | -| **Realtime Raytracing (Preview)** || Enable the checkbox to enable HDRP realtime ray tracing (Preview). It requires ray tracing-compatible hardware. For more information, refer to [Ray Tracing Getting Started](Ray-Tracing-Getting-Started.md). | -| **Visual Effects Ray Tracing (Preview)** || Enable the checkbox to enable support for ray tracing with Visual Effects in HDRP. **Realtime Raytracing (Preview)** must be enabled. | -| **Supported Ray Tracing Mode (Preview)** || Select the supported modes for ray tracing effects (**Performance**, **Quality**, or **Both**). For more information, refer to [Ray Tracing Getting Started](Ray-Tracing-Getting-Started.md). | -| - **LOD Bias** || Set the value that Cameras use to calculate their LOD bias. The Camera uses this value differently depending on the **LOD Bias Mode** you select. | -| - **Maximum LOD Level** || Set the value that Cameras use to calculate their maximum level of detail. The Camera uses this value differently depending on the **Maximum LOD Level Mode** you select. | -| **GPU Resident Drawer**||The GPU Resident Drawer automatically uses the [`BatchRendererGroup`](https://docs.unity3d.com/Manual/batch-renderer-group.html) API to draw GameObjects with GPU instancing. Refer to [Use the GPU Resident Drawer](gpu-resident-drawer.md) for more information.

  • **Disabled**: Unity doesn't automatically draw GameObjects with GPU instancing.
  • **Instanced Drawing**: Unity automatically draws GameObjects with GPU instancing.
| -|| **Small-Mesh Screen-Percentage** | Set the screen percentage Unity uses to cull small GameObjects, to speed up rendering. Unity culls GameObjects that fill less of the screen than this value. This setting might not work if you use your own [Level of Detail (LOD) meshes](https://docs.unity3d.com/Manual/LevelOfDetail.html). Set the value to 0 to stop Unity culling small GameObjects.

To prevent Unity culling an individual GameObject that covers less screen space than this value, go to the **Inspector** window for the GameObject and add a **Disallow Small Mesh Culling** component. | -|| **GPU Occlusion Culling** | Enable Unity using the GPU instead of the CPU to exclude GameObjects from rendering when they're hidden behind other GameObjects. Refer to [Use GPU occlusion culling](gpu-culling.md) for more information. | +| **Color Buffer Format** | N/A | The format of the color buffer that HDRP uses for rendering. Using R16G16B16A16 instead of R11G11B10 doubles the memory usage, but helps avoid banding. R16G16B16A16 is also required for [Alpha-Output](Alpha-Output.md). | +| **Lit Shader Mode** | N/A | Use the drop-down to choose which mode HDRP uses for the [Lit Shader](lit-material.md).
• **Forward Only**: forces HDRP to only use forward rendering for Lit Shaders.
• **Deferred Only**: forces HDRP to use deferred rendering for Lit Shaders (HDRP still renders advanced Materials using forward rendering).
• **Both**: allows the Camera to use deferred and forward rendering.

Select **Both** to allow you to switch between forward and deferred rendering for Lit Shaders at runtime per Camera. Selecting a specific mode reduces build time and Shader memory because HDRP requires less Shader variants, but it's not possible to switch from one mode to the other at runtime. | +| N/A | **Multisample Anti-aliasing Quality** | Use the drop-down to set the number of samples HDRP uses for multisample anti-aliasing (MSAA). The larger the sample count, the better the quality. Select **None** to disable MSAA.
This property is only visible when **Lit Shader Mode** is set to **Forward Only** or **Both**. | +| **Motion Vectors** | N/A | Enable the checkbox to enable motion vector support in HDRP. HDRP uses motion vectors for effects like screen space reflection (SSR) and motion blur. When disabled, motion blur has no effect and HDRP calculates SSR with lower quality. | +| **Runtime Debug Display** | N/A | Enable the checkbox to enable HDRP to use debug modes from the [Rendering Debugger](use-the-rendering-debugger.md) at runtime. Disable the checkbox to reduce build time and shader memory. This disables all property override options, all lighting debug modes, and all material property debug modes except GBuffer debug. | +| **Runtime AOV API** | N/A | Enable the checkbox to enable HDRP able to use the AOV API (rendering of material properties and lighting modes) at runtime. Disable this checkbox to reduce build time and shader memory. This disables all material properties and lighting modes. | +| **Terrain Hole** | N/A | Enable the checkbox to enable support for [Terrain Holes](https://docs.unity3d.com/2019.3/Documentation/Manual/terrain-PaintHoles.html) in HDRP. If you don't enable this, Terrain Holes aren't visible in your Scene. | +| **Transparent Backface** | N/A | Enable the checkbox to enable support for transparent back-face render passes in HDRP. If your Unity Project doesn't need to make a transparent back-face pass, disable this checkbox to reduce build time. | +| **Transparent Depth Prepass** | N/A | Enable the checkbox to enable support for transparent depth render prepasses in HDRP. If your Unity Project doesn't need to make a transparent depth prepass, disable this checkbox to reduce build time. | +| **Transparent Depth Postpass** | N/A | Enable the checkbox to enable support for transparent depth render postpasses in HDRP. If your Unity Project doesn't make use of a transparent depth postpass, disable this checkbox to reduce build time. | +| **Custom Pass** | N/A | Enable the checkbox to enable support for [custom passes](Custom-Pass.md) in HDRP. If your Unity Project doesn't use custom passes, disable this checkbox to save memory. | +| - **Custom Buffer Format** | N/A | Specify the texture format for the custom buffer. If you experience banding issues due to your custom passes, you can change it to either `R11G11B10` if you don't need alpha, or `R16G16B16A16` if you do need alpha. | +| **Realtime Raytracing (Preview)** | N/A | Enable the checkbox to enable HDRP realtime ray tracing (Preview). It requires ray tracing-compatible hardware. For more information, refer to [Ray Tracing Getting Started](Ray-Tracing-Getting-Started.md). | +| **Visual Effects Ray Tracing (Preview)** | N/A | Enable the checkbox to enable support for ray tracing with Visual Effects in HDRP. **Realtime Raytracing (Preview)** must be enabled. | +| **Supported Ray Tracing Mode (Preview)** | N/A | Select the supported modes for ray tracing effects (**Performance**, **Quality**, or **Both**). For more information, refer to [Ray Tracing Getting Started](Ray-Tracing-Getting-Started.md). | +| - **LOD Bias** | N/A | Set the value that Cameras use to calculate their LOD bias. The Camera uses this value differently depending on the **LOD Bias Mode** you select. | +| - **Maximum LOD Level** | N/A | Set the value that Cameras use to calculate their maximum level of detail. The Camera uses this value differently depending on the **Maximum LOD Level Mode** you select. | +| **GPU Resident Drawer** | N/A | The GPU Resident Drawer automatically uses the [`BatchRendererGroup`](https://docs.unity3d.com/Manual/batch-renderer-group.html) API to draw GameObjects with GPU instancing. Refer to [Use the GPU Resident Drawer](gpu-resident-drawer.md) for more information.

  • **Disabled**: Unity doesn't automatically draw GameObjects with GPU instancing.
  • **Instanced Drawing**: Unity automatically draws GameObjects with GPU instancing.
| +| N/A | **Small-Mesh Screen-Percentage** | Set the screen percentage Unity uses to cull small GameObjects, to speed up rendering. Unity culls GameObjects that fill less of the screen than this value. This setting might not work if you use your own [Level of Detail (LOD) meshes](https://docs.unity3d.com/Manual/LevelOfDetail.html). Set the value to 0 to stop Unity culling small GameObjects.

To prevent Unity culling an individual GameObject that covers less screen space than this value, go to the **Inspector** window for the GameObject and add a **Disallow Small Mesh Culling** component. | +| N/A | **GPU Occlusion Culling** | Enable Unity using the GPU instead of the CPU to exclude GameObjects from rendering when they're hidden behind other GameObjects. Refer to [Use GPU occlusion culling](gpu-culling.md) for more information. | ### Decals -These settings control the draw distance and resolution of the decals atlas that HDRP uses when it renders decals projected onto transparent surfaces. +Enable the checkbox to make HDRP support decals in your Unity Project. -| **Property** | **Description** | -| -------------------------------------------- | ------------------------------------------------------------ | -| **Enable** | Enable the checkbox to make HDRP support decals in your Unity Project. | -| **- Draw Distance** | The maximum distance from the Camera at which Unity draws Decals. | -| **- Atlas Width** | The Decal Atlas width. This atlas stores all decals that project onto transparent surfaces. | -| **- Atlas Height** | The Decal Atlas height. This atlas stores all decals that project onto transparent surfaces. | -| ***- Transparent Texture Resolution Tiers*** | Set the resolution that transparent textures take up within the decal atlas. The same resolution is used for all textures of a material (base color, normal, mask). | -| **- Low** | Set the transparent texture resolution to this quality. DecalProjectors with their **Transparent Texture Resolution** set to **Low** use this resolution for their textures in the decal atlas. | -| **- Medium** | Set the transparent texture resolution to this quality. DecalProjectors with their **Transparent Texture Resolution** set to **Medium** use this resolution for their textures in the decal atlas. | -| **- High** | Set the transparent texture resolution to this quality. DecalProjectors with their **Transparent Texture Resolution** set to **High** use this resolution for their textures in the decal atlas. | -| **- Metal and Ambient Occlusion properties** | Enable the checkbox to allow decals to affect metallic and ambient occlusion Material properties. Enabling this feature has a performance impact. | -| **- Maximum Clustered Decals on Screen** | The maximum number of clustered decals that can affect transparent GameObjects on screen. Clustered decals refer to a list of decals that HDRP uses when it renders transparent GameObjects. | -| **- Layers** | Enable the checkbox to allow decals to only affect specific layers.| +These settings control the various decal parameters like draw distance and activation of decal layers. + + + +#### Transparent surfaces + +This table lists the available global settings for decals in HDRP that apply specifically to transparent surfaces and describes their functions. + +They allow configuration of the atlas that HDRP uses when it renders decals projected onto transparent surfaces. + +| **Property** | **Description** | +|--------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| **Atlas Width** | The Decal Atlas width. This atlas stores all decals that project onto transparent surfaces. | +| **Atlas Height** | The Decal Atlas height. This atlas stores all decals that project onto transparent surfaces. | +| **Transparent Texture Resolution Tiers** | Set the resolution that transparent textures take up within the decal atlas. The same resolution is used for all textures of a material (base color, normal, mask). | +| **Low** | Set the transparent texture resolution to this quality. Decal Projectors with their **Transparent Texture Resolution** set to **Low** use this resolution for their textures in the decal atlas. | +| **Medium** | Set the transparent texture resolution to this quality. Decal Projectors with their **Transparent Texture Resolution** set to **Medium** use this resolution for their textures in the decal atlas. | +| **High** | Set the transparent texture resolution to this quality. Decal Projectors with their **Transparent Texture Resolution** set to **High** use this resolution for their textures in the decal atlas. | +| **Maximum Clustered Decals on Screen** | The maximum number of clustered decals that can affect transparent GameObjects on screen. Clustered decals refer to a list of decals that HDRP uses when it renders transparent GameObjects. | + + + +#### Opaque surfaces + +This table lists the available global settings for decals in HDRP that apply specifically to opaque surfaces and describes their functions. + +| **Property** | **Description** | +|--------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| **Draw Distance** | The maximum distance from the Camera at which Unity draws Decals. | +| **Metal and Ambient Occlusion properties** | Enable the checkbox to allow decals to affect metallic and ambient occlusion Material properties. Enabling this feature has a performance impact. | +| **Layers** | Enable the checkbox to allow decals to only affect specific layers. | ### Dynamic Resolution @@ -81,7 +99,7 @@ The following properties are available only if you add **DLSS** to **Advanced Up |-|-| | **DLSS Mode** | Sets whether DLSS prioritizes quality or performance. The options are:
  • **Maximum Quality**
  • **Balanced**
  • **Maximum Performance**
  • **Ultra Performance**
| | **DLSS Injection Point** | Sets when DLSS runs in the rendering pipeline. For more information, refer to [Injection points dropdown](#injection-points). | -| **DLSS Use Optimal Settings** | Enables DLSS controlling screen percentage automatically. | +| **DLSS Use Optimal Settings** | Enables DLSS to control screen percentage automatically. | #### FSR2 settings @@ -120,7 +138,7 @@ The following property is available only if you add **STP** to **Advanced Upscal | **Property** | **Description** | | -------------- | ------------------------------------------------------------ | | **Enable** | Enable the checkbox to sample the thickness of GameObjects to use in a shader graph material. For more information, refer to [Sample and use material thickness](Compute-Thickness.md). | -| **Resolution** | Set the resolution of a material’s thickness:
•**Quarter**: Renders the thickness at quarter the current screen resolution.
•**Half**: Renders the thickness at half the current screen resolution. This resolution is the best balance of detail and performance.
•**Full**: Renders the thickness at full screen resolution. | +| **Resolution** | Set the resolution of a material’s thickness:
•**Quarter**: Renders the thickness at a quarter of the current screen resolution.
•**Half**: Renders the thickness at half the current screen resolution. This resolution is the best balance of detail and performance.
•**Full**: Renders the thickness at full screen resolution. | | **Layer Mask** | Select one or more layers to compute the thickness of. | @@ -138,18 +156,17 @@ The following property is available only if you add **STP** to **Advanced Upscal ### Light Probe Lighting Use these settings in the **Quality** > **HDRP** menu to configure [Adaptive Probe Volumes](probevolumes.md). -| **Property** | **Sub-property** | **Description** | -|-|-|-| -| **Light Probe System** ||
  • **Light Probe Groups (Legacy)**: Use the same [Light Probe Group system](https://docs.unity3d.com/Manual/class-LightProbeGroup.html) as the Built-In Render Pipeline.
  • **Adaptive Probe Volumes**: Use [Adaptive Probe Volumes](probevolumes.md).
| -|| **Memory Budget** | Limits the width and height of the textures that store baked Global Illumination data, which determines the amount of memory Unity sets aside to store baked Adaptive Probe Volume data. These textures have a fixed depth.
Options:
  • **Memory Budget Low**
  • **Memory Budget Medium**
  • **Memory Budget High**
| -|| **SH Bands** | Determines the [spherical harmonics (SH) bands](https://docs.unity3d.com/Manual/LightProbes-TechnicalInformation.html) Unity uses to store probe data. L2 provides more precise results, but uses more system resources.
Options:
  • **Spherical Harmonics L1**
  • **Spherical Harmonics L2**
| -| **Lighting Scenarios** || Enable to use Lighting Scenarios. Refer to [Bake different lighting setups using Lighting Scenarios](probevolumes-bakedifferentlightingsetups.md) for more information. | -|| **Scenario Blending** | Enable blending between different Lighting Scenarios. This uses more memory and makes rendering slower. | -|| **Scenario Blending Memory Budget** | Limits the width and height of the textures that Unity uses to blend between Lighting Scenarios. This determines the amount of memory Unity sets aside to store Lighting Scenario blending data, and store data while doing the blending operation. These textures have a fixed depth.
Options:
• **Memory Budget Low**
• **Memory Budget Medium**
• **Memory Budget High** | -| **Enable GPU Streaming** || Enable to stream Adaptive Probe Volume data from CPU memory to GPU memory at runtime. Refer to [Streaming Adaptive Probe Volumes](probevolumes-streaming.md) for more information. | -| **Enable Disk Streaming** || Enable to stream Adaptive Probe Volume data from disk to CPU memory at runtime. [Streaming Adaptive Probe Volumes](probevolumes-streaming.md) for more information. | -| **Estimated GPU Memory Cost** || Indicates the amount of texture data used by Adaptive Probe Volumes in your project. This includes textures used both for Global Illumination and Lighting Scenario blending. | - +| **Property** | **Subproperty** | **Description** | +|---------------------------|-------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| **Light Probe System** | N/A |
  • **Light Probe Groups (Legacy)**: Use the same [Light Probe Group system](https://docs.unity3d.com/Manual/class-LightProbeGroup.html) as the Built-In Render Pipeline.
  • **Adaptive Probe Volumes**: Use [Adaptive Probe Volumes](probevolumes.md).
| +| N/A | **Memory Budget** | Limits the width and height of the textures that store baked Global Illumination data, which determines the amount of memory Unity sets aside to store baked Adaptive Probe Volume data. These textures have a fixed depth.
Options:
  • **Memory Budget Low**
  • **Memory Budget Medium**
  • **Memory Budget High**
| +| N/A | **SH Bands** | Determines the [spherical harmonics (SH) bands](https://docs.unity3d.com/Manual/LightProbes-TechnicalInformation.html) Unity uses to store probe data. L2 provides more precise results, but uses more system resources.
Options:
  • **Spherical Harmonics L1**
  • **Spherical Harmonics L2**
| +| **Lighting Scenarios** | N/A | Enable to use Lighting Scenarios. Refer to [Bake different lighting setups using Lighting Scenarios](probevolumes-bakedifferentlightingsetups.md) for more information. | +| N/A | **Scenario Blending** | Enable blending between different Lighting Scenarios. This uses more memory and makes rendering slower. | +| N/A | **Scenario Blending Memory Budget** | Limits the width and height of the textures that Unity uses to blend between Lighting Scenarios. This determines the amount of memory Unity sets aside to store Lighting Scenario blending data, and store data while doing the blending operation. These textures have a fixed depth.
Options:
• **Memory Budget Low**
• **Memory Budget Medium**
• **Memory Budget High** | +| **Enable GPU Streaming** | N/A | Enable to stream Adaptive Probe Volume data from CPU memory to GPU memory at runtime. Refer to [Streaming Adaptive Probe Volumes](probevolumes-streaming.md) for more information. | +| **Enable Disk Streaming** | N/A | Enable to stream Adaptive Probe Volume data from disk to CPU memory at runtime. [Streaming Adaptive Probe Volumes](probevolumes-streaming.md) for more information. | +| **Estimated GPU Memory Cost** | N/A | Indicates the amount of texture data used by Adaptive Probe Volumes in your project. This includes textures used both for Global Illumination and Lighting Scenario blending. | ### Cookies Use the Cookie settings to configure the maximum resolution of the atlas and it's format. A bigger resolution means that you can have more cookies on screen at one time or use bigger cookies texture in general. Increasing for format will allow you to handle HDR cookies and have better precision at the cost of memory. @@ -157,33 +174,33 @@ Use the Cookie settings to configure the maximum resolution of the atlas and it' | **Property** | **Description** | | ---------------------- | ------------------------------------------------------------ | | **2D Atlas Size** | Use the drop-down to select the maximum size for 2D cookie atlas. HDRP uses 2D cookies for Directional, Spot Lights and Area Lights. | -| **2D Atlas Last Valid Mip** | Adds padding to prevent area light cookie border to be cut but can blur the texture a lot if too high values are used. Generally the default value (0) works well in most cases. | +| **2D Atlas Last Valid Mip** | Adds padding to prevent area light cookie border from being cut but can blur the texture a lot if too high values are used. Generally the default value (0) works well in most cases. | | **Cookie Format** | The format of the cookies that HDRP will use, using R16G16B16A16 instead of R11G11B10 will double the memory usage but help you to avoid banding and adds the support for EXR cookies. | ### Reflections Use the Reflection settings to configure the max number and resolution of the probes and whether Unity should compress the Reflection Probe cache or not. The Reflection Probe cache is runtime memory that HDRP reserves for Reflection Probes. The cache is a first in, first out list that stores the currently visible Reflection Probes. -| **Property** | **Description** | -| ---------------------------------------- | ------------------------------------------------------------ | -| **Screen Space Reflection** | Enable the checkbox to make HDRP support [screen space reflection](https://docs.unity3d.com/Manual/PostProcessing-ScreenSpaceReflection.html). SSR is a technique for calculating reflections by reusing screen space data. | -| **- Transparent** | Enable the checkbox to make HDRP support [screen space reflection](https://docs.unity3d.com/Manual/PostProcessing-ScreenSpaceReflection.html) on transparent materials. This feature requires the transparent depth render prepasses to be enabled on the HDRP asset.| -| **Reflection and Planar Probes Format** | Color format used for reflection and planar probes. | -| **Compress Baked Reflection Probes** | Compress baked [Reflection Probe](Reflection-Probe.md) data, which conserves disk space. | -| **Reflection 2D Atlas Size** | Select a resolution for the cube and planar probe atlases to define the quantity of reflection probes you can render simultaneously, and their resolution. | -| **Reflection 2D Atlas Last Valid Cube Mip** | Add padding to hide sharp seams in Reflection Probe cube mip data. Values above 3 can blur the probe texture too much. | -| **Reflection 2D Atlas Last Valid Planar Mip** | Add padding to hide sharp seams in Reflection Probe planar mip data. Values above 0 can blur the probe texture too much. | -| ***Cube Resolution Tiers*** | | -| **- L** | Define the lowest possible resolution for cube Reflection Probes in this project. | -| **- M** | Define the medium resolution for cube Reflection Probes in this project. | -| **- H** | Define the highest possible resolution for cube Reflection Probes in this project. | -| ***Planar Resolution Tiers*** | | -| **- L** | Define the lowest possible resolution for planar Reflection Probes in this project. | -| **- M** | Define the medium resolution for planar Reflection Probes in this project. | -| **- H** | Define the highest possible resolution for planar Reflection Probes in this project. | -| **Max Cube Reflection On Screen** | The maximum number of cube reflections on screen at once. | -| **Max Planar Reflection On Screen** | The maximum number of planar reflections on screen at once. | -| **Decrease Reflection Probe Resolution To Fit** | Decrease the Planar and Reflection Probe resolution in the reflection 2D atlas if this texture doesn't fit in the atlas. | +| **Property** | **Subproperty** | **Description** | +|-------------------------------------------------|---|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| **Screen Space Reflection** | N/A | Enable the checkbox to make HDRP support [screen space reflection](https://docs.unity3d.com/Manual/PostProcessing-ScreenSpaceReflection.html). SSR is a technique for calculating reflections by reusing screen space data. | +| N/A | **Transparent** | Enable the checkbox to make HDRP support [screen space reflection](https://docs.unity3d.com/Manual/PostProcessing-ScreenSpaceReflection.html) on transparent materials. This feature requires the transparent depth render prepasses to be enabled on the HDRP asset. | +| **Reflection and Planar Probes Format** | N/A | Color format used for reflection and planar probes. | +| **Compress Baked Reflection Probes** | N/A | Compress baked [Reflection Probe](Reflection-Probe.md) data, which conserves disk space. | +| **Reflection 2D Atlas Size** | N/A | Select a resolution for the cube and planar probe atlases to define the quantity of reflection probes you can render simultaneously, and their resolution. | +| **Reflection 2D Atlas Last Valid Cube Mip** | N/A | Add padding to hide sharp seams in Reflection Probe cube mip data. Values above 3 can blur the probe texture too much. | +| **Reflection 2D Atlas Last Valid Planar Mip** | N/A | Add padding to hide sharp seams in Reflection Probe planar mip data. Values above 0 can blur the probe texture too much. | +| **Cube Resolution Tiers** | N/A | N/A | +| N/A | **L** | Define the lowest possible resolution for cube Reflection Probes in this project. | +| N/A | **M** | Define the medium resolution for cube Reflection Probes in this project. | +| N/A | **H** | Define the highest possible resolution for cube Reflection Probes in this project. | +| **Planar Resolution Tiers** | N/A | | +| N/A | **L** | Define the lowest possible resolution for planar Reflection Probes in this project. | +| N/A | **M** | Define the medium resolution for planar Reflection Probes in this project. | +| N/A | **H** | Define the highest possible resolution for planar Reflection Probes in this project. | +| **Max Cube Reflection On Screen** | N/A | The maximum number of cube reflections on screen at once. | +| **Max Planar Reflection On Screen** | N/A | The maximum number of planar reflections on screen at once. | +| **Decrease Reflection Probe Resolution To Fit** | N/A | Decrease the Planar and Reflection Probe resolution in the reflection 2D atlas if this texture doesn't fit in the atlas. | @@ -221,16 +238,15 @@ The three sections here are: - **Punctual Light Shadows** - **Area Light Shadows** -They all share the same properties, except **Directional Light Shadows** which does not include **Resolution** or **Dynamic Rescale** and **Cached Shadow Atlas Resolution**. +They all share the same properties, except **Directional Light Shadows** which doesn't include **Resolution** or **Dynamic Rescale** and **Cached Shadow Atlas Resolution**. -| **Property** | **Description** | +| **Light Atlas property** | **Description** | | ------------------- | ------------------------------------------------------------ | -| ***Light Atlas*** | | | **Resolution** | Use the drop-down to select the resolution of the shadow atlas. | | **Precision** | Use the drop-down to select the precision of the shadow map. This sets the bit depth of each pixel of the shadow map. **16 bit** is faster and uses less memory at the expense of precision. | | **Dynamic Rescale** | Enable the checkbox to allow HDRP to rescale the shadow atlas if all the shadows on the screen don't currently fit onto it. | -| ***Shadow Resolution Tiers*** | | +| **Shadow Resolution Tiers** | **Description** | | ---------------------------------- | ------------------------------------------------------------ | | **L** | Set the resolution of shadows set to this quality. Light's with their **Resolution** set to **Low** use this resolution for their shadows. | | **M** | Set the resolution of shadows set to this quality. Light's with their **Resolution** set to **Medium** use this resolution for their shadows. | @@ -283,12 +299,12 @@ Use these settings to enable or disable settings relating to lighting in HDRP. ## Material -| **Property** | **Description** | -| ------------------------------- | ------------------------------------------------------------ | -| **Distortion** | Enable the checkbox to make HDRP support distortion. If your Unity Project does not use distortion, disable this checkbox to reduce build time. | -| **Subsurface Scattering** | Enable the checkbox to make HDRP support subsurface scattering (SSS). SSS describes light penetration of the surface of a translucent object | -| **- High Quality** | Enable the checkbox to increase the SSS Sample Count and enable high quality subsurface scattering. Increasing the sample count greatly increases the performance cost of the Subsurface Scattering effect. | -| **Fabric BSDF Convolution** | By default, Fabric Materials reuse the Reflection Probes that HDRP calculates for the Lit Shader (GGX BRDF). Enable the checkbox to make HDRP calculate another version of each Reflection Probe for the Fabric Shader, creating more accurate lighting effects. This increases the resource intensity because HDRP must condition two Reflection Probes instead of one. It also reduces the number of visible Reflection Probes in the current view by half because the size of the cache that stores Reflection Probe data does not change and must now store both versions of each Reflection Probe. | +| **Property** | **Subproperty** | **Description** | +|-----------------------------|---|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| **Distortion** | N/A | Enable the checkbox to make HDRP support distortion. If your Unity Project doesn't use distortion, disable this checkbox to reduce build time. | +| **Subsurface Scattering** | N/A | Enable the checkbox to make HDRP support subsurface scattering (SSS). SSS describes light penetration of the surface of a translucent object | +| N/A | **High Quality** | Enable the checkbox to increase the SSS Sample Count and enable high quality subsurface scattering. Increasing the sample count greatly increases the performance cost of the Subsurface Scattering effect. | +| **Fabric BSDF Convolution** | N/A | By default, Fabric Materials reuse the Reflection Probes that HDRP calculates for the Lit Shader (GGX BRDF). Enable the checkbox to make HDRP calculate another version of each Reflection Probe for the Fabric Shader, creating more accurate lighting effects. This increases the resource intensity because HDRP must condition two Reflection Probes instead of one. It also reduces the number of visible Reflection Probes in the current view by half because the size of the cache that stores Reflection Probe data doesn't change and must now store both versions of each Reflection Probe. | ## Post-processing @@ -307,5 +323,5 @@ These settings define the quality levels (low, medium, high) related to post pro | ----------------------- | --------------------------------------------------------------- | | **CPU Cache Size** | Amount of CPU memory (in MB) that can be allocated by the Streaming Virtual Texturing system to cache texture data. | | **GPU Cache Size per Format** | Amount of GPU memory (in MB) that can be allocated per format by the Streaming Virtual Texturing system to cache texture data. The value assigned to None is used for all unspecified formats. | -| **Preload Textures Per Frame** | The number of textures Unity tries to preload their least detailed mipmap levels (least being 128x128) into GPU memory per frame. Use this to avoid texture pop-in. The range is 0 through 1024. The default is 0, which disables preloading. | -| **Preload Mip Count** | The number of mipmap levels to preload. The range is 1 through 9. The default is 1, which preloads only the highest mipmap level with the smallest size (128x128 pixels, the size of a Streaming Virtual Texturing tile). | +| **Preload Textures Per Frame** | The number of textures Unity tries to preload their least detailed mipmap levels (least being 128×128) into GPU memory per frame. Use this to avoid texture pop-in. The range is 0 through 1024. The default is 0, which disables preloading. | +| **Preload Mip Count** | The number of mipmap levels to preload. The range is 1 through 9. The default is 1, which preloads only the highest mipmap level with the smallest size (128×128 pixels, the size of a Streaming Virtual Texturing tile). | diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/HDRP-Features.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/HDRP-Features.md index a94887282ba..e5811fdd08b 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/HDRP-Features.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/HDRP-Features.md @@ -674,7 +674,7 @@ HDRP provides an API you can use to [modify materials from script](modify-materi ### Lighting architecture -HDRP uses a hybrid tile and cluster renderer for [forward and deferred rendering](Forward-And-Deferred-Rendering.md) of opaque and transparent GameObjects. This creates a local light list to allow HDRP to render a high number of Lights. Use the forward renderer to light more complex Materials, such as those that use subsurface scattering or are anisotropic. Use the deferred renderer to increase the processing speed of lighting for common Materials, such as standard Lit or Unlit Materials. For more information on HDRP's lighting architecture, including an explanation of tile and cluster rendering, see the [lighting pipeline documentation](https://docs.unity3d.com/Manual/BestPracticeLightingPipelines). +HDRP uses a hybrid tile and cluster renderer for [forward and deferred rendering](Forward-And-Deferred-Rendering.md) of opaque and transparent GameObjects. This creates a local light list to allow HDRP to render a high number of Lights. Use the forward renderer to light more complex Materials, such as those that use subsurface scattering or are anisotropic. Use the deferred renderer to increase the processing speed of lighting for common Materials, such as standard Lit or Unlit Materials. For more information on HDRP's lighting architecture, including an explanation of tile and cluster rendering, see the [lighting pipeline documentation](https://docs.unity3d.com/Manual/BestPracticeLightingPipelines.html). #### Light count limit diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/aocomparison.png b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/aocomparison.png new file mode 100644 index 00000000000..f12006d0bb2 Binary files /dev/null and b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/aocomparison.png differ diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/profile_diffuse_power-2.jpg b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/profile_diffuse_power-2.jpg index 4c822c17376..6986a138bca 100644 Binary files a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/profile_diffuse_power-2.jpg and b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/profile_diffuse_power-2.jpg differ diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/profile_diffuse_power.jpg b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/profile_diffuse_power.jpg index cce0e7a0f47..e8f0f147a95 100644 Binary files a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/profile_diffuse_power.jpg and b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/profile_diffuse_power.jpg differ diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/ssao-rtao-comparison.jpg b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/ssao-rtao-comparison.jpg new file mode 100644 index 00000000000..946d0d65092 Binary files /dev/null and b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/ssao-rtao-comparison.jpg differ 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~/Override-Ambient-Occlusion.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Override-Ambient-Occlusion.md index c05a1f3ec90..04bf97b10f5 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Override-Ambient-Occlusion.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Override-Ambient-Occlusion.md @@ -1,37 +1,36 @@ -# Screen Space Ambient Occlusion (SSAO) +# Screen space ambient occlusion (SSAO) -The **Screen Space Ambient Occlusion** override is a real-time, full-screen lighting effect available in the High Definition Render Pipeline (HDRP). This effect approximates [ambient occlusion](https://en.wikipedia.org/wiki/Ambient_occlusion) in the current field of view. It approximates the intensity and position of ambient light on a GameObject’s surface, based on the light in the Scene and the environment around the GameObject. To achieve this, it darkens creases, holes, intersections, and surfaces that are close to one another. In real life, these areas tend to block out, or occlude, ambient light, and so appear darker. +The Screen Space Ambient Occlusion (SSAO) volume override simulates [ambient occlusion](ambient-occlusion-introduction.md) in real-time. -For information on how to use a Texture to specify ambient occlusion caused by details present in a GameObject's Material but not on it's surface geometry, see [Ambient Occlusion](Ambient-Occlusion.md). +![A single-channel screen space ambient occlusion texture of a gothic corridor. The scene is white with shades of grey representing corners and crevices.](Images/RayTracedAmbientOcclusion1.png)
+A single-channel screen space ambient occlusion texture of a gothic corridor. The scene is white with shades of grey representing corners and crevices. -HDRP implements [ray-traced ambient occlusion](Ray-Traced-Ambient-Occlusion.md) on top of this override. This means that the properties visible in the Inspector change depending on whether you enable ray tracing. +For each frame, SSAO creates a texture containing occluded areas in the camera view, which HDRP uses to reduce indirect lighting in those areas. - +SSAO doesn't affect direct lighting, or the indirect light from Reflection Probes. -## Enable Screen Space Ambient Occlusion +A screen-space effect only processes what's on-screen, so objects outside the camera view don't occlude objects in the camera view. You can sometimes see this at the edges of the screen. To include off-screen objects for better results, enable [Ray-traced ambient occlusion](Ray-Traced-Ambient-Occlusion.md) instead. -[!include[](snippets/Volume-Override-Enable-Override.md)] +## Enable screen space ambient occlusion -* To enable SSAO in your HDRP Asset go to **Lighting** > **Screen Space Ambient Occlusion**. -* To enable SSAO in your Frame Settings go to **Edit** > **Project Settings** > **Graphics** > **Pipeline Specific Settings** > **HDRP** > **Frame Settings (Default Values)** > **Camera** > **Lighting** > **Screen Space Ambient Occlusion**. +Follow these steps: - +1. Enable screen space ambient occlusion in your project. -## Use Screen Space Ambient Occlusion + [!include[](snippets/Volume-Override-Enable-Override.md)] -**Screen Space Ambient Occlusion** uses the [Volume](understand-volumes.md) framework, so to enable and modify **Screen Space Ambient Occlusion** properties, you must add an **Screen Space Ambient Occlusion** override to a [Volume](understand-volumes.md) in your Scene. To add **Ambient Occlusion** to a Volume: + * To enable SSAO in your HDRP Asset, go to **Lighting** > **Screen Space Ambient Occlusion**. + * To enable SSAO in your Frame Settings, go to **Edit** > **Project Settings** > **Graphics** > **Pipeline Specific Settings** > **HDRP** > **Frame Settings (Default Values)** > **Camera** > **Lighting** > **Screen Space Ambient Occlusion**. -1. In the Scene or Hierarchy view, select a GameObject that contains a Volume component to view it in the Inspector. -2. In the Inspector, navigate to **Add Override** > **Lighting** and click on **Ambient Occlusion**. - HDRP now applies **Ambient Occlusion** to any Camera this Volume affects. +2. [Add a volume component](set-up-a-volume.md#add-a-volume) to any GameObject in your scene. -[!include[](snippets/volume-override-api.md)] +3. Select the GameObject, then in the **Inspector** window select **Add Override** > **Lighting** > **Ambient Occlusion**. + HDRP now applies screen space ambient occlusion to any camera this volume affects. -## Limitations +To access and control the volume override at runtime, refer to [Volume scripting API](Volumes-API.md#changing-volume-profile-properties). -### Screen-space ambient occlusion - -A screen-space effect only processes what's on the screen at a given point. This means that objects outside of the field of view can't visually occlude objects in the view. You can sometimes see this on the edges of the screen. -When rendering [Reflection Probes](Reflection-Probe.md) screen space ambient occlusion isn't supported. +## Additional resources +- [Assign an ambient occlusion texture](Ambient-Occlusion.md) +- [Ray-traced ambient occlusion](Ray-Traced-Ambient-Occlusion.md) diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Override-Contact-Shadows.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Override-Contact-Shadows.md index beeb0b453ca..53b0dc5afc9 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Override-Contact-Shadows.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Override-Contact-Shadows.md @@ -1,7 +1,7 @@ # Use contact shadows -Contact Shadows are shadows that HDRP [ray marches](Glossary.md#RayMarching) in screen space, inside the depth buffer, at a close range. They provide small, detailed, shadows for details in geometry that shadow maps can't usually capture. +Contact Shadows are shadows that HDRP [ray marches](Glossary.md#RayMarching) in screen space, inside the depth buffer, at a close range. Use Contact Shadows to provide shadows for geometry details that regular shadow mapping algorithms usually fail to capture. + -The Contact Shadows [Volume Override](volume-component.md) specifies properties which control the behavior of Contact Shadows. Contact Shadows are shadows that The High Definition Render Pipeline (HDRP) [ray marches](Glossary.md#RayMarching) in screen space inside the depth buffer. The goal of using Contact Shadows is to capture small details that regular shadow mapping algorithms fail to capture. 24 Lights (Direction, Point or Spot) can cast Contact Shadows at a time. @@ -30,6 +30,8 @@ Enable the following properties: You can enable Contact Shadows on a per Light basis for Directional, Point, and Spot Lights. Tick the **Enable** checkbox under the **Contact Shadows** drop-down in the **Shadows** section of each Light to indicate that HDRP should calculate Contact Shadows for that Light. +If you use both contact shadows and [realtime shadows](realtime-shadows.md), there might be a visible seam between the two types of shadow. To avoid this issue, set shadow maps to use a high resolution. For more information, refer to [Control shadow resolution and quality](Shadows-in-HDRP.md). + **Note**: A Light casts Contact Shadows for every Mesh Renderer that uses a Material that writes to the depth buffer. This is regardless of whether you enable or disable the **Cast Shadows** property on the Mesh Renderer. This means that you can disable **Cast Shadows** on small GameObjects/props and still have them cast Contact Shadows. This is good if you do not want HDRP to render these GameObjects in shadow maps. If you do not want this behavior, use Shader Graph to author a Material that does not write to the depth buffer. [!include[](snippets/volume-override-api.md)] diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Ray-Traced-Ambient-Occlusion.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Ray-Traced-Ambient-Occlusion.md index 26229ec3049..53779d05e60 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Ray-Traced-Ambient-Occlusion.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Ray-Traced-Ambient-Occlusion.md @@ -1,26 +1,25 @@ # Ray-traced ambient occlusion -Ray-Traced Ambient Occlusion is a ray tracing feature in the High Definition Render Pipeline (HDRP). It is an alternative to HDRP's s [screen space ambient occlusion](Override-Ambient-Occlusion.md), with a more accurate ray-traced solution that can use off-screen data. +Ray-traced ambient occlusion (RTAO) is an alternative to [screen space ambient occlusion](Override-Ambient-Occlusion.md) that's more accurate because it uses off-screen data. -![An example of a screen space ambient occlusion texture.](Images/RayTracedAmbientOcclusion1.png) +![A single-channel occlusion texture of a gothic corridor. The screen space ambient occlusion texture on the left has fewer details and lighter shadows than the ray-traced ambient occlusion texture on the right.](Images/ssao-rtao-comparison.jpg)
+A single-channel occlusion texture of a gothic corridor. The screen space ambient occlusion texture on the left has fewer details and lighter shadows than the ray-traced ambient occlusion texture on the right. -**Screen space ambient occlusion** +Follow these steps: -![An example of a ray-traced ambient occlusion texture.](Images/RayTracedAmbientOcclusion2.png) +1. [Enable screen space ambient occlusion](Override-Ambient-Occlusion.md#enable-screen-space-ambient-occlusion). -**Ray-traced ambient occlusion** +1. [Set up ray tracing](Ray-Tracing-Getting-Started.md) in your HDRP project. -For information about ray tracing in HDRP, and how to set up your HDRP Project to support ray tracing, see [Getting started with ray tracing](Ray-Tracing-Getting-Started.md). +1. Select the GameObject with the volume override you created in step 1. -To troubleshoot this effect, HDRP provides an Ambient Occlusion [Debug Mode](Ray-Tracing-Debug.md) and a Ray Tracing Acceleration Structure [Debug Mode](Ray-Tracing-Debug.md) in Lighting Full Screen Debug Mode. +1. In the Inspector window of the **Screen Space Ambient Occlusion** override, enable **Ray Tracing**. -## Use ray-traced ambient occlusion +To control the effect, refer to the **Ray-traced** properties on the [Ambient occlusion reference](reference-ambient-occlusion.md) page. -Because this feature is an alternative to the [Ambient Occlusion](Override-Ambient-Occlusion.md) Volume Override, the initial setup is very similar. To setup ray traced ambient occlusion, first follow the [Enabling Ambient Occlusion](Override-Ambient-Occlusion.md#enable-screen-space-ambient-occlusion) and [Using Ambient Occlusion](Override-Ambient-Occlusion.md#use-screen-space-ambient-occlusion) steps. After you setup the Ambient Occlusion override, to make it use ray tracing: +To troubleshoot ray-traced ambient occlusion, HDRP provides an Ambient Occlusion [Debug Mode](Ray-Tracing-Debug.md) and a Ray Tracing Acceleration Structure [Debug Mode](Ray-Tracing-Debug.md) in Lighting Full Screen Debug Mode. -1. In the Frame Settings for your Cameras, enable **Ray Tracing**. -2. Select the [Ambient Occlusion](Override-Ambient-Occlusion.md) override and, in the Inspector, enable **Ray Tracing**. If you do not see a **Ray Tracing** option, make sure your HDRP Project supports ray tracing. For information on setting up ray tracing in HDRP, see [Getting started with ray tracing](Ray-Tracing-Getting-Started.md). +## Additional resources -## Properties - -HDRP implements ray-traced ambient occlusion on top of the Ambient Occlusion override. For information on the properties that control this effect, see [Ambient occlusion reference](reference-ambient-occlusion.md). +- [Assign an ambient occlusion texture](Ambient-Occlusion.md) for each GameObject. +- [Screen space ambient occlusion (SSAO)](Override-Ambient-Occlusion.md), which uses information from the whole screen. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Ray-Traced-Shadows.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Ray-Traced-Shadows.md index ae7bc9b52a9..03eec488a97 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Ray-Traced-Shadows.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Ray-Traced-Shadows.md @@ -73,7 +73,7 @@ Ray-traced Directional Light shadows without colored shadows | **Sample Count** | Controls the number of rays that HDRP uses per pixel, per frame. Higher values produce more accurate shadows. Increasing this value increases execution time linearly. | | **Color Shadow** | Allows transparent and transmissive GameObjects to cast colored shadows. A Material can only cast colored shadows when its [**Refraction Model**](Surface-Type.md#transparency-inputs) is set to **Thin**, **Box** or **Sphere**. | | **Denoise** | Enables the spatio-temporal filter that HDRP uses to remove noise from the ray-traced shadows; making them smoother. | -| - **Denoiser Radius** | Controls the radius of the spatio-temporal filter. | +| - **Denoiser Radius** | Increases or decreases the blurriness between ray traced shadows, by controlling the radius of the spatio-temporal filter. |
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Ray-Tracing-Getting-Started.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Ray-Tracing-Getting-Started.md index ebfbcdf0781..5c390b600a9 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Ray-Tracing-Getting-Started.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Ray-Tracing-Getting-Started.md @@ -48,15 +48,19 @@ To set up ray tracing manually, you need to: #### Upgrade to DirectX 12 -HDRP enables DirextX12 by default. To enable DirectX 12 manually: +In Unity 6, DirectX 12 is enabled by default. -1. Open the Project Settings window (menu: **Edit** > **Project Settings**), then select the **Player** tab. -2. Select the **Other Settings** drop-down, and in the **Rendering** section, disable Auto Graphics API for Windows. This exposes the Graphics APIs for Windows section. -3. In the **Graphics APIs for Windows** section, click the plus (**+**) button and select **Direct3d12**. -4. Unity uses Direct3d11 by default. To make Unity use Direct3d12, move **Direct3d12 (Experimental)** to the top of the list. -5. To apply the changes, you may need to restart the Unity Editor. If a window prompt appears telling you to restart the Editor, click **Restart Editor** in the window. +To enable DirectX 12 manually: -The Unity Editor window should now include the <DX12> tag in the title bar. +1. Go to **Edit** > **Project Settings** > **Player** > **Other Settings**. + +1. In the **Rendering** section, disable **Auto Graphics API for Windows**. + + This exposes the Graphics APIs for Windows section. + +1. Make sure **Direct3D12** is at the top of the list. + + If you made any changes to the rendering settings, you might be prompted to restart the Unity Editor. 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 3488bc431bb..b8332193f6e 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~/TableOfContents.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/TableOfContents.md index 61062fbc95e..a50e877cd3f 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/TableOfContents.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/TableOfContents.md @@ -60,9 +60,10 @@ * [View and control a light from its perspective](lights-placement-tool.md) * [Use light rendering layers](Rendering-Layers.md) * [Ambient lighting](ambient-lighting.md) - * [Create environment lighting](Environment-Lighting.md) - * [Ambient occlusion](Ambient-Occlusion.md) - * [Ambient light probe](ambient-light-probe.md) + * [Environment lighting](Environment-Lighting.md) + * [Configure environment lighting](ambient-lighting-configure.md) + * [Ambient occlusion](ambient-occlusion-introduction.md) + * [Assign an ambient occlusion texture](Ambient-Occlusion.md) * [Screen Space Ambient Occlusion (SSAO)](Override-Ambient-Occlusion.md) * [Control exposure](Override-Exposure.md) * [Shadows](shadows.md) @@ -192,6 +193,7 @@ * [Create realistic clouds (volumetric clouds)](create-realistic-clouds-volumetric-clouds.md) * [Create simple clouds (Cloud Layer)](create-simple-clouds-cloud-layer.md) * [Create custom cloud effects](create-custom-cloud-effects.md) + * [Troubleshooting Volumetric Clouds rendering issues](troubleshooting-volumetric-clouds-rendering-issues.md) * [Fog](fog.md) * [Understand fog](Understand-Fog.md) * [Create a global fog effect](create-a-global-fog-effect.md) @@ -382,7 +384,7 @@ * [Shader materials reference](shader-materials-reference.md) * [HDRP material reference](reference-hdrp-materials.md) * [Alpha Clipping reference](Alpha-Clipping.md) - * [Ambient Occlusion reference](Ambient-Occlusion.md) + * [Ambient Occlusion reference](reference-ambient-occlusion.md) * [Displacement Mode reference](Displacement-Mode.md) * [Double Sided reference](Double-Sided.md) * [Geometric Specular Anti-aliasing reference](Geometric-Specular-Anti-Aliasing.md) diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/ambient-light-probe.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/ambient-light-probe.md deleted file mode 100644 index 2d68a78aa6c..00000000000 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/ambient-light-probe.md +++ /dev/null @@ -1,17 +0,0 @@ -## Understand the ambient light probe - -HDRP uses the ambient Light Probe as the final fallback for indirect diffuse lighting. It affects: - -- All Mesh Renderers if there is no indirect ambient light computed for the Scene (this applies when Unity has not computed any lightmaps or Light Probes for the Scene) -- Mesh Renderers that have their **Light Probe Mode** set to **Off** -- Volumetric fog if the Global Light Probe dimmer is set to a value above 0 - -The ambient Light Probe can be static (generated only once from the static lighting sky set in the HDRP **Environment (HDRP)**panel) or dynamic (updated at runtime from the sky currently in use). - -***\*Note\****: If there is a ***\*Light Probe group\**** in your Scene and you have computed indirect ambient lighting, then the Ambient Light Probe only affects Mesh Renderers that have their ***\*Light Probe Mode\**** set to ***\*Off\****, and that have ***\*Volumetric fog\**** (if it’s enabled in the Scene). - -### Limitations of dynamic ambient mode - -The Ambient Light Probe always affects your scene one frame late after HDRP calculates it. This is because HDRP calculates Ambient Light Probes on the GPU and then uses asynchronous readback on the CPU. - -As a result, the ambient lighting might not match the actual lighting and cause visual artifacts. This can happen when you use the dynamic ambient mode and use reflection probes that update on demand. \ No newline at end of file diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/ambient-lighting-configure.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/ambient-lighting-configure.md new file mode 100644 index 00000000000..8eea9aafb54 --- /dev/null +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/ambient-lighting-configure.md @@ -0,0 +1,38 @@ +# Configure environment lighting + +Control how your scene receives light from the environment. + +## Make scene elements use the ambient light probe + +If you have lightmap textures or Light Probes in your scene, HDRP doesn't use the ambient light probe by default. + +To set objects and fog to use the ambient light probe, follow these steps: + +1. Select a GameObject, then in the **Mesh Renderer** component disable the GameObject from receiving light from global illumination. +1. In the **Fog** volume override, in the **Volumetric Fog** section, set **GI Dimmer** to 0. + + + +## Decouple lighting from the sky + +To decouple lighting from the sky, use a lighting override mask. For example, you can do the following: + +- Render a dark sky, but calculate brighter lighting on GameObjects so they display clearly. +- Use a directional light for a moving sun, but a sky background that excludes the sun to avoid double lighting. + +First, create a volume with the sky you want to use for lighting: + +1. Create a new sky and fog global volume. From the main menu, select **GameObject** > **Volume** > **Sky and Fog Global Volume**. +1. Select the volume, then use the **Visual Environment** volume override to set the type of sky you want HDRP to use for lighting. +1. At the top of the **Inspector** window, open the **Layers** dropdown and set the volume to a different layer. + +You can now set HDRP to use the layer for lighting, without affecting the sky background: + +1. From the main menu, select **Edit** > **Project Settings**. +1. Go to **Quality** > **HDRP**. +1. In the **Lighting** > **Sky** section, set **Lighting Override Mask** to the layer. + +## Additional resources + +- [Environment lighting](Environment-lighting.md) +- [Ambient light](https://docs.unity3d.com/Manual/lighting-ambient-light.html) diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/ambient-lighting.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/ambient-lighting.md index 13fc88c7c6e..35aa2e91f66 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/ambient-lighting.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/ambient-lighting.md @@ -1,18 +1,17 @@ # Ambient lighting -Create and control indirect diffuse lighting. +Create and control light from the environment in your scene in the High Definition Render Pipeline (HDRP), to create more realistic lighting. -|Page|Description| +|**Topic**|**Description**| |-|-| -|[Create environment lighting](Environment-lighting.md)|Simulate light that comes from the surroundings of a scene.| -|[Ambient occlusion](Ambient-Occlusion.md)| Apply ambient occlusion to a material. | -|[Screen Space Ambient Occlusion (SSAO)](Override-Ambient-Occlusion.md)|Enable and use the Screen Space Ambient Occlusion (SSAO) volume override. | -|[Ambient light probe](ambient-light-probe.md)| Learn about the method that HDRP uses as the fallback for indirect diffuse lighting. | -|[Adaptive Probe Volumes](probevolumes.md)| Learn about the method that HDRP proposes for baked indirect diffuse lighting. | - +|[Environment lighting](Environment-lighting.md)| Learn about how HDRP calculates ambient light in your scene. | +|[Configure environment lighting](ambient-lighting-configure.md)| Make scene elements use the ambient probe, or decouple lighting from the sky. | +|[Ambient occlusion](ambient-occlusion-introduction.md)| Learn about darkening corners in areas where it's difficult for indirect light to reach.| +|[Assign an ambient occlusion texture](Ambient-Occlusion.md)| Use a texture to create ambient occlusion for a GameObject. | +|[Screen space ambient occlusion (SSAO)](Override-Ambient-Occlusion.md)| Use a volume override to create ambient occlusion across the screen. | ## Additional resources + +- [Ray-traced ambient occlusion (RTAO)](Ray-Traced-Ambient-Occlusion.md) +- [Adaptive Probe Volumes](probevolumes.md) - [Volumetric Lighting](Volumetric-Lighting.md) -- [Ambient Occlusion](Override-Ambient-Occlusion.md) -- [Visual Environment volume override reference](visual-environment-volume-override-reference.md) -- [Fog Volume Override reference](fog-volume-override-reference.md) diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/ambient-occlusion-introduction.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/ambient-occlusion-introduction.md new file mode 100644 index 00000000000..8a376d8f8f2 --- /dev/null +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/ambient-occlusion-introduction.md @@ -0,0 +1,23 @@ +# Ambient occlusion + +Ambient occlusion (AO) darkens corners in areas where surfaces are close to each other and difficult for indirect light to reach. + +The High Definition Render Pipeline (HDRP) can create ambient occlusion by reducing how much light a surface gets from indirect ambient light sources. For more information about indirect ambient light, refer to [Environment lighting](environment-lighting.md). + +**Note:** Ambient occlusion doesn't affect direct lighting. + +To enable ambient occlusion, use one of the following methods: + +- [Assign an ambient occlusion texture](Ambient-Occlusion.md) for each GameObject. +- [Screen space ambient occlusion (SSAO)](Override-Ambient-Occlusion.md), which uses information from the whole screen. SSAO is enabled by default. +- [Ray-traced ambient occlusion (RTAO)](Ray-Traced-Ambient-Occlusion.md), which uses information from beyond the screen. + +If you create an ambient occlusion texture, HDRP also uses it to calculate specular occlusion, by reducing the intensity of reflections in corners. + +Four versions of a scene with dragon statues in a brick dungeon, lit brightly from above. With no ambient occlusion, there are no shadows in corners and crevices. Ambient occlusion, SSAO with ambient occlusion, and RTAO with ambient occlusion give progressively better results.
+Four versions of a scene with dragon statues in a brick dungeon, lit brightly from above. With no ambient occlusion, there are no shadows in corners and crevices. Ambient occlusion, SSAO with ambient occlusion, and RTAO with ambient occlusion give progressively better results. + +## Additional resources + +- [Ambient light](https://docs.unity3d.com/Manual/lighting-ambient-light.html) +- [Reflection and refraction](Reflection-in-HDRP.md) diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/clouds.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/clouds.md index 9d0d30130c5..1c0bac613c7 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/clouds.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/clouds.md @@ -8,3 +8,6 @@ The High Definition Render Pipeline (HDRP) includes two cloud solutions that you | [Create realistic clouds (volumetric clouds)](create-realistic-clouds-volumetric-clouds.md) | Use a Volumetric Clouds Volume Override to create interactable clouds that can render shadows, and receive fog and volumetric light. | | [Create simple clouds (Cloud Layer)](create-simple-clouds-cloud-layer.md) | Use a Cloud Layer Volume Override to create a simple representation of clouds using a 2D texture rendered on top of the sky. | | [Create custom cloud effects](create-custom-cloud-effects.md) | Create your own custom clouds with their own properties and shaders, while still keeping the clouds consistent with HDRP's lighting pipeline. | +| [Troubleshooting Volumetric Clouds rendering issues](troubleshooting-volumetric-clouds-rendering-issues.md) | Prevent far-away clouds from disappearing when the camera moves along the y-axis, especially when traversing the clouds. | + +* diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/decal-material-inspector-reference.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/decal-material-inspector-reference.md index 65b1846ef88..5f7db91cb3e 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/decal-material-inspector-reference.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/decal-material-inspector-reference.md @@ -10,53 +10,53 @@ Refer to [Decals](decals.md) for more information. ### Surface Options -These properties allow you to set the affected attributes of the Material the decal is project onto when HDRP renders it into the Scene. +View and edit these properties to affect the attributes of the material the decal is projected onto when HDRP renders it into the scene. -| **Property** | **Description** | -| ------------------------------- | ------------------------------------------------------------ | -| **Affect BaseColor** | Enable the checkbox to make this decal use the **baseColor** properties. Otherwise the decal has no baseColor effect. Regardless of whether you enable or disable this property, HDRP still uses the alpha channel of the base color as an opacity for the other properties. | -| **Affect Normal** | Enable the checkbox to make the decal use the **normal** property. Otherwise, the decal does not modify the normals of the receiving Material. | -| **Affect Metal** | Enable the checkbox to make the decal use the metallic property of its **Mask Map**. Otherwise the decal has no metallic effect. Uses the red channel of the **Mask Map**.
This property only appears when you enable the **Metal and Ambient Occlusion properties** checkbox in your [HDRP Asset](HDRP-Asset.md#Decals). | -| **Affect Ambient Occlusion** | Enable the checkbox to make the decal use the ambient occlusion property of its **Mask Map**. Otherwise the decal has no ambient occlusion effect. Uses the green channel of the **Mask Map**.
This property only appears when you enable the **Metal and Ambient Occlusion properties** checkbox in your [HDRP Asset](HDRP-Asset.md#Decals). | -| **Affect Smoothness** | Enable the checkbox to make the decal use the smoothness property of its **Mask Map**. Otherwise the decal has no smoothness effect. Uses the alpha channel of the **Mask Map**.
| -| **Affect Emissive** | Enable the checkbox to make this decal emissive. When enabled, this Material appears self-illuminated and acts as a visible source of light. This property does not work with transparent receiving Materials. Emissive decals always give an additive positive contribution. This property does not affect the existing emissive properties of the Materials assigned to a GameObject. | +| **Property** | **Description** | +|------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| **Affect BaseColor** | Enable the checkbox to make this decal use the **baseColor** properties. Otherwise the decal has no baseColor effect. Regardless of whether you enable or disable this property, HDRP still uses the alpha channel of the base color as an opacity for the other properties.

Applies to both opaque and transparent surfaces. | +| **Affect Normal** | Enable the checkbox to make the decal use the **normal** property. Otherwise, the decal does not modify the normals of the receiving Material.

Applies to both opaque and transparent surfaces. | +| **Affect Metal** | Enable the checkbox to make the decal use the metallic property of its **Mask Map**. Otherwise the decal has no metallic effect. Uses the red channel of the **Mask Map**.

This property only appears when you enable the **Metal and Ambient Occlusion properties** checkbox in your [HDRP Asset](HDRP-Asset.md#Decals).

Applies to opaque surfaces only. | +| **Affect Ambient Occlusion** | Enable the checkbox to make the decal use the ambient occlusion property of its **Mask Map**. Otherwise the decal has no ambient occlusion effect. Uses the green channel of the **Mask Map**.

This property only appears when you enable the **Metal and Ambient Occlusion properties** checkbox in your [HDRP Asset](HDRP-Asset.md#Decals).

Applies to opaque surfaces only. | +| **Affect Smoothness** | Enable the checkbox to make the decal use the smoothness property of its **Mask Map**. Otherwise the decal has no smoothness effect. Uses the alpha channel of the **Mask Map**.

Applies to both opaque and transparent surfaces. | +| **Affect Emissive** | Enable the checkbox to make this decal emissive. When enabled, this Material appears self-illuminated and acts as a visible source of light. This property does not work with transparent receiving Materials. Emissive decals always give an additive positive contribution. This property does not affect the existing emissive properties of the Materials assigned to a GameObject.

Applies to opaque surfaces only. | ### Surface Inputs These properties allow you to set the inputs that affect the behavior of the decal when HDRP renders it into the Scene. -| **Property** | **Description** | -| ------------------------------- | ------------------------------------------------------------ | -| **Base Map / Opacity** | Allows you to specify a Texture for the decal as well as modify the decal’s base color and opacity. | -| **Normal Map** | A map that modifies the normal property of the Material the decal projects onto. If no normal is provided, a default normal poting up in tangent space is used. | -| **Normal Opacity channel** | Use this drop-down to select the source of normal map opacity. You can select either **Base Color Map Alpha**, **Mask Map Blue** or **Mask Opacity**:
• **Base Color Map Alpha**: Uses the alpha channel of the **Base Map**’s color picker as opacity.
• **Mask Map Blue**: Uses the blue channel of the **Mask Map** as opacity.
• **Opacity Mask**: Uses the Mask Opacity. | -| **Mask Map** | Assign a [channel-packed Texture](Glossary.md#ChannelPacking) with the following Material maps in its RGBA channels.
• **Red**: Stores the metallic map.
• **Green**: Stores the ambient occlusion map.
• **Blue**: Stores the opacity mask map.
• **Alpha**: Stores the smoothness map.
For more information on channel-packed Textures and the mask map, see [mask map](Mask-Map-and-Detail-Map.md#MaskMap). | -| **Metallic** | Use the slider to set the strength of the metallic effect of the decal. Choose a value from 0 and 1 where 0 means no effect and 1 means full effect.
This property only appears when you enable the **Metal and Ambient Occlusion properties** checkbox in your [HDRP Asset](HDRP-Asset.md#Decals). | -| **Ambient Occlusion** | Use the slider to set the strength of the ambient occlusion effect of the decal.
This property only appears when you enable the **Metal and Ambient Occlusion properties** checkbox in your [HDRP Asset](HDRP-Asset.md#Decals). | -| **Smoothness** | Use the slider to set the strength of the smoothness of the decal. | -| **Metallic Remapping** | Remaps the metallic values from the **Mask Map** to the range you specify. Rather than [clamping](https://docs.unity3d.com/ScriptReference/Mathf.Clamp.html) values to the new range, it condenses the original range down to the new range uniformly.
This property only appears when you enable the **Metal and Ambient Occlusion properties** checkbox in your [HDRP Asset](HDRP-Asset.md#Decals). | -| **AO Remapping** | Remaps the ambient occlusion values from the **Mask Map** to the range you specify. Rather than [clamping](https://docs.unity3d.com/ScriptReference/Mathf.Clamp.html) values to the new range, it condenses the original range down to the new range uniformly.
This property only appears when you enable the **Metal and Ambient Occlusion properties** checkbox in your [HDRP Asset](HDRP-Asset.md#Decals). | -| **Smoothness Remapping** | Remaps the smoothness values from the **Mask Map** to the range you specify. Rather than [clamping](https://docs.unity3d.com/ScriptReference/Mathf.Clamp.html) values to the new range, it condenses the original range down to the new range uniformly. | -| **Mask Opacity channel** | Use this drop-down to select the source of the **Mask Map** opacity. You can select either **Base Color Map Alpha**, **Mask Map Blue** or **Mask Opacity**:
• **Base Color Map Alpha**: Uses the alpha channel of the **Base Map**’s color picker as opacity.
• **Mask Map Blue**: Uses the blue channel of the **Mask Map** as opacity.
• **Opacity Mask**: Uses the Mask Opacity. | -| **Scale Mask Map Blue Channel** | Use the slider to set the multiplier for the opacity (blue channel of the **Mask Map**). A value of 0 means no effect and a value of 1 means full effect. | -| **Mask opacity** | Use the slider to set the opacity value to use for Mettalic, Ambient Occlusion and Smoothness if **Mask Opacity channel** is setup to Mask Opacity. A value of 0 means no effect and a value of 1 means full effect. | -| **Global Opacity** | Use the slider to set the opacity of the decal. The lower the value, the more transparent the decal. The opacity combine with all the other opacity control. | -| **Use Emission Intensity** | Enable the checkbox to use a separate LDR color and intensity value to set the emission color for this Material. Disable this checkbox to only use an HDR color to handle the color and emission color intensity. | -| **Emission Map** | Assign a Texture that this Material uses for emission. You can also use the color picker to select a color that HDRP multiplies by the Texture. If you do not set an emission texture then HDRP only uses the HDR color to calculate the final emissive color of the Material. You can set the intensity of the HDR color within the HDR color picker. | -| **Emission Intensity** | Set the overall strength of the emission effect for this Material. Use the drop-down to select one of the following [physical light units](Physical-Light-Units.md) to use for intensity:
• [Luminance](Physical-Light-Units.md#Nits)
• [EV100](Physical-Light-Units.md#EV)
This property only appears when you enable the **Use Emission Intensity** checkbox. | +| **Property** | **Description** | +|---------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| **Base Map / Opacity** | Allows you to specify a Texture for the decal as well as modify the decal’s base color and opacity.

Applies to both opaque and transparent surfaces. | +| **Normal Map** | A map that modifies the normal property of the Material the decal projects onto. If no normal is provided, a default normal poting up in tangent space is used.

Applies to both opaque and transparent surfaces. | +| **Normal Opacity channel** | Use this drop-down to select the source of normal map opacity. You can select either **Base Color Map Alpha**, **Mask Map Blue** or **Mask Opacity**:

• **Base Color Map Alpha**: Uses the alpha channel of the **Base Map**’s color picker as opacity.

• **Mask Map Blue**: Uses the blue channel of the **Mask Map** as opacity.

• **Opacity Mask**: Uses the Mask Opacity.

Applies to both opaque and transparent surfaces. | +| **Mask Map** | Assign a [channel-packed Texture](Glossary.md#ChannelPacking) with the following Material maps in its RGBA channels.

• **Red**: Stores the metallic map.

• **Green**: Stores the ambient occlusion map.

• **Blue**: Stores the opacity mask map.

• **Alpha**: Stores the smoothness map.

For more information on channel-packed Textures and the mask map, see [mask map](Mask-Map-and-Detail-Map.md#MaskMap).

Applies to opaque surfaces only. | +| **Metallic** | Use the slider to set the strength of the metallic effect of the decal. Choose a value from 0 and 1 where 0 means no effect and 1 means full effect.

This property only appears when you enable the **Metal and Ambient Occlusion properties** checkbox in your [HDRP Asset](HDRP-Asset.md#Decals).

Applies to opaque surfaces only. | +| **Ambient Occlusion** | Use the slider to set the strength of the ambient occlusion effect of the decal.

This property only appears when you enable the **Metal and Ambient Occlusion properties** checkbox in your [HDRP Asset](HDRP-Asset.md#Decals).

Applies to opaque surfaces only. | +| **Smoothness** | Use the slider to set the strength of the smoothness of the decal.

Applies to both opaque and transparent surfaces. | +| **Metallic Remapping** | Remaps the metallic values from the **Mask Map** to the range you specify. Rather than [clamping](https://docs.unity3d.com/ScriptReference/Mathf.Clamp.html) values to the new range, it condenses the original range down to the new range uniformly.

This property only appears when you enable the **Metal and Ambient Occlusion properties** checkbox in your [HDRP Asset](HDRP-Asset.md#Decals).

Applies to opaque surfaces only. | +| **AO Remapping** | Remaps the ambient occlusion values from the **Mask Map** to the range you specify. Rather than [clamping](https://docs.unity3d.com/ScriptReference/Mathf.Clamp.html) values to the new range, it condenses the original range down to the new range uniformly.

This property only appears when you enable the **Metal and Ambient Occlusion properties** checkbox in your [HDRP Asset](HDRP-Asset.md#Decals).

Applies to opaque surfaces only. | +| **Smoothness Remapping** | Remaps the smoothness values from the **Mask Map** to the range you specify. Rather than [clamping](https://docs.unity3d.com/ScriptReference/Mathf.Clamp.html) values to the new range, it condenses the original range down to the new range uniformly.

Applies to both opaque and transparent surfaces. | +| **Mask Opacity channel** | Use this drop-down to select the source of the **Mask Map** opacity. You can select either **Base Color Map Alpha**, **Mask Map Blue** or **Mask Opacity**:

• **Base Color Map Alpha**: Uses the alpha channel of the **Base Map**’s color picker as opacity.

• **Mask Map Blue**: Uses the blue channel of the **Mask Map** as opacity.

• **Opacity Mask**: Uses the Mask Opacity.

Applies to both opaque and transparent surfaces. | +| **Scale Mask Map Blue Channel** | Use the slider to set the multiplier for the opacity (blue channel of the **Mask Map**). A value of 0 means no effect and a value of 1 means full effect.

Applies to both opaque and transparent surfaces. | +| **Mask opacity** | Use the slider to set the opacity value to use for Mettalic, Ambient Occlusion and Smoothness if **Mask Opacity channel** is setup to Mask Opacity. A value of 0 means no effect and a value of 1 means full effect.

Applies to both opaque and transparent surfaces. | +| **Global Opacity** | Use the slider to set the opacity of the decal. The lower the value, the more transparent the decal. The opacity combine with all the other opacity control.

Applies to both opaque and transparent surfaces. | +| **Use Emission Intensity** | Enable the checkbox to use a separate LDR color and intensity value to set the emission color for this Material. Disable this checkbox to only use an HDR color to handle the color and emission color intensity.

Applies to opaque surfaces only. | +| **Emission Map** | Assign a Texture that this Material uses for emission. You can also use the color picker to select a color that HDRP multiplies by the Texture. If you do not set an emission texture then HDRP only uses the HDR color to calculate the final emissive color of the Material. You can set the intensity of the HDR color within the HDR color picker.

Applies to opaque surfaces only. | +| **Emission Intensity** | Set the overall strength of the emission effect for this Material. Use the drop-down to select one of the following [physical light units](Physical-Light-Units.md) to use for intensity:

• [Luminance](Physical-Light-Units.md#Nits)

• [EV100](Physical-Light-Units.md#EV)

This property only appears when you enable the **Use Emission Intensity** checkbox.

Applies to opaque surfaces only. | ### Sorting Inputs These properties allow you to change the rendering behavior of the decal. -| **Property** | **Description** | -| -------------------------- | ------------------------------------------------------------ | -| **Draw Order** | Controls the order in which HDRP draws decals in the Scene. HDRP draws decals with lower values first, so it draws decals with a higher draw order value on top of those with lower values. This feature works for decals projected on opaque and transparent surfaces. Additionally, if you have multiple Decal Materials with the same **Draw Order**, the order HDRP renders them in depends on the order you create the Materials. HDRP renders Decal Materials you create first before those you create later with the same **Draw Order**, or Materials that you load first from an AssetBundle.
To control the order of Mesh decals using the same Material, you should set the priority value on the MeshRenderer of the Mesh decals. | -| **Mesh Decal Bias Type** | Determines the type of bias that HDRP applies to the decal’s Mesh to stop it from overlapping with other Meshes. The options are:
• **Depth Bias**: Applies a bias to the final depth value,
• **View Bias**: Applies a world-space bias (in meters) alongside the view vector. | -| **- Mesh Decal View Bias** | A world-space bias (in meters) that HDRP applies to the decal’s Mesh to stop it from overlapping with other Meshes along the view vector. A positive value draws the decal in front of any overlapping Mesh, while a negative value offsets the decal and draws it behind. This property only affects decal Materials directly attached to GameObjects with a Mesh Renderer, so Decal Projectors do not use this property. This property is only visible if **Mesh Decal Bias Type** is set to **View Bias**. | -| **Mesh Decal Depth Bias** | A depth bias that HDRP applies to the decal’s Mesh to stop it from overlapping with other Meshes. A negative value draws the decal in front of any overlapping Mesh, while a positive value offsets the decal and draw it behind. This property only affects decal Materials directly attached to GameObjects with a Mesh Renderer, so Decal Projectors do not use this property. This property is only visible if **Mesh Decal Bias Type** is set to **Depth Bias**. | +| **Property** | **Description** | +|---------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| **Draw Order** | Controls the order in which HDRP draws decals in the Scene. HDRP draws decals with lower values first, so it draws decals with a higher draw order value on top of those with lower values. This feature works for decals projected on opaque and transparent surfaces. Additionally, if you have multiple Decal Materials with the same **Draw Order**, the order HDRP renders them in depends on the order you create the Materials. HDRP renders Decal Materials you create first before those you create later with the same **Draw Order**, or Materials that you load first from an AssetBundle.

To control the order of Mesh decals using the same Material, you should set the priority value on the MeshRenderer of the Mesh decals.

Applies to both opaque and transparent surfaces. | +| **Mesh Decal Bias Type** | Determines the type of bias that HDRP applies to the decal’s Mesh to stop it from overlapping with other Meshes. The options are:

• **Depth Bias**: Applies a bias to the final depth value,

• **View Bias**: Applies a world-space bias (in meters) alongside the view vector.

Applies to both opaque and transparent surfaces. | +| **Mesh Decal View Bias** | A world-space bias (in meters) that HDRP applies to the decal’s Mesh to stop it from overlapping with other Meshes along the view vector. A positive value draws the decal in front of any overlapping Mesh, while a negative value offsets the decal and draws it behind. This property only affects decal Materials directly attached to GameObjects with a Mesh Renderer, so Decal Projectors do not use this property. This property is only visible if **Mesh Decal Bias Type** is set to **View Bias**.

Applies to both opaque and transparent surfaces. | +| **Mesh Decal Depth Bias** | A depth bias that HDRP applies to the decal’s Mesh to stop it from overlapping with other Meshes. A negative value draws the decal in front of any overlapping Mesh, while a positive value offsets the decal and draw it behind. This property only affects decal Materials directly attached to GameObjects with a Mesh Renderer, so Decal Projectors do not use this property. This property is only visible if **Mesh Decal Bias Type** is set to **Depth Bias**.

Applies to both opaque and transparent surfaces. | ### HDRP Asset properties -You can edit global settings that apply to all decals in your Scene in your Unity Project’s HDRP Asset. For information on these properties, see the [**Decals** section of the HDRP Asset documentation](HDRP-Asset.md#Decals). +You can edit global settings that apply to all decals in your Scene in your Unity Project’s HDRP Asset. For information on these properties, refer to the [**Decals** section of the HDRP Asset documentation](HDRP-Asset.md#Decals). diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/diffusion-profile-reference.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/diffusion-profile-reference.md index 035615c337e..43049f16107 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/diffusion-profile-reference.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/diffusion-profile-reference.md @@ -43,8 +43,8 @@ The following image shows the effect of dual lobes on a human face model, with * The following image shows the effect of increasing **Diffuse Shading Power** on a human face model. - - + +
Drag the slider to compare the images. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/probevolumes-lighting-panel-reference.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/probevolumes-lighting-panel-reference.md index ddc24e4b37a..eaff6d3b3a5 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/probevolumes-lighting-panel-reference.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/probevolumes-lighting-panel-reference.md @@ -1,103 +1,41 @@ # Adaptive Probe Volumes panel properties -This page explains the properties in the **Adaptive Probe Volumes** panel in Lighting settings. To open the panel, from the main menu select **Window** > **Rendering** > **Lighting** > **Adaptive Probe Volumes**. +This page explains the properties in the **Adaptive Probe Volumes** panel in Lighting settings. To open the panel, from the main menu select **Window** > **Rendering** > **Lighting** > **Adaptive Probe Volumes**. ## Baking -To open Baking Set properties, either select the Baking Set asset in the Project window, or from the main menu select **Window** > **Rendering** > **Lighting** > **Adaptive Probe Volumes** tab. +To open Baking Set properties, either select the Baking Set asset in the Project window, or from the main menu select **Window** > **Rendering** > **Lighting** > **Adaptive Probe Volumes** tab. ### Baking - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDescription
Baking Mode
Single SceneUse only the active scene to calculate the lighting data in Adaptive Probe Volumes.
Baking SetUse the scenes in this Baking Set to calculate the lighting data in Adaptive Probe Volumes.
Current Baking SetThe current Baking Set asset.
Scenes in Baking SetLists the scenes in the current Baking Set.
Status: Indicates whether the scene is loaded.
Bake: When enabled, HDRP generates lighting for this scene.
Use + and - to add or remove a scene from the active Baking Set.
Use the two-line icon to the left of each scene to drag the scene up or down in the list.
+|Property |Description | +|:---|:---| +|**Baking Mode** |
  • **Single Scene:** Use only the active scene to calculate the lighting data in Adaptive Probe Volumes.
  • **Baking Set:** Use the scenes in this Baking Set to calculate the lighting data in Adaptive Probe Volumes.
| +|**Current Baking Set** |The current Baking Set asset. | +|**Scenes in Baking Set** |Lists the scenes in the current Baking Set:
  • **Status:** Indicates whether the scene is loaded.
  • **Bake:** When enabled, HDRP generates lighting for this scene.
Use + and − to add add or remove a scene from the active Baking Set. Use the two-line icon to the left of each scene to drag the scene up or down in the list. | ### Probe Placement - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDescription
Probe Positions
RecalculateRecalculate probe positions during baking, to accommodate changes in scene geometry. Refer to Bake different lighting setups with Lighting Scenarios for more information.
Don't RecalculateDon't recalculate probe positions during baking. This keeps the probe positions the same as the last successful bake, which means HDRP can blend probes in different Lighting Scenarios. Refer to Bake different lighting setups with Lighting Scenarios for more information.
Min Probe SpacingThe minimum distance between probes, in meters. Refer to Configure the size and density of Adaptive Probe Volumes for more information.
Max Probe SpacingThe maximum distance between probes, in meters. Refer to Configure the size and density of Adaptive Probe Volumes for more information.
Renderer Filter Settings
Layer MaskSpecify the Layers HDRP considers when it generates probe positions. Select a Layer to enable or disable it.
Min Renderer SizeThe smallest Renderer size HDRP considers when it places probes.
+|Property |Description | +|:---|:---| +|**Probe Positions** |
  • **Recalculate:** Recalculate probe positions during baking, to accommodate changes in scene geometry. Refer to [Bake different lighting setups with Lighting Scenarios](probevolumes-bakedifferentlightingsetups.md) for more information.
  • **Don't Recalculate:** Don't recalculate probe positions during baking. This keeps the probe positions the same as the last successful bake, which means HDRP can blend probes in different Lighting Scenarios. Refer to [Bake different lighting setups with Lighting Scenarios](probevolumes-bakedifferentlightingsetups.md) for more information.
| +|**Min Probe Spacing** | The minimum distance between probes, in meters. Refer to [Configure the size and density of Adaptive Probe Volumes](probevolumes-changedensity.md) for more information. | +|**Max Probe Spacing** |The maximum distance between probes, in meters. Refer to [Configure the size and density of Adaptive Probe Volumes](probevolumes-changedensity.md) for more information. | +|**Renderer Filter Settings** |
  • **Layer Mask:** Specify the [Layers](xref:um-layers) HDRP considers when it generates probe positions. Select a Layer to enable or disable it.
  • **Min Renderer Size:** The smallest Renderer size HDRP considers when it places probes.
| + ### Lighting Scenarios This section appears only if you enable **Lighting Scenarios** under **Light Probe Lighting** in the [HDRP Asset](HDRP-Asset.md). -| **Property** ||| **Description** | -|-|-|-|-| -| **Scenarios** ||| Lists the Lighting Scenarios in the Baking Set. To rename a Lighting Scenario, double-click its name. | -|| **Active** || Set the currently loaded Lighting Scenario, which HDRP writes to when you select **Generate Lighting**. | -|| **Status** || Indicates the status of the active Lighting Scenario. | -||| **Invalid Scenario** | A warning icon appears if the active Lighting Scenario is baked but HDRP can't load it anymore, for example if another Lighting Scenario has been baked that caused changes in the probe subdivision. | -||| **Not Baked** | An information icon appears if you haven't baked any lighting data for the active Lighting Scenario.| -||| **Not Loaded** | An information icon appears if scenes in the Baking Set aren't currently loaded in the Hierarchy window, so HDRP can't determine the Lighting Scenario status. | +|Property |Description | +|:---|:---| +|**Scenarios** |Lists the Lighting Scenarios in the Baking Set. To rename a Lighting Scenario, double-click its name.
  • **Active:** Set the currently loaded Lighting Scenario, which HDRP writes to when you select **Generate Lighting**.
  • **Status:** Indicates the status of the active Lighting Scenario:
    • **Invalid Scenario:** A warning icon appears if the active Lighting Scenario is baked but HDRP can't load it anymore, for example if another Lighting Scenario has been baked that caused changes in the probe subdivision.
    • **Not Baked:** An information icon appears if you haven't baked any lighting data for the active Lighting Scenario.
    • **Not Loaded:** An information icon appears if scenes in the Baking Set aren't currently loaded in the Hierarchy window, so HDRP can't determine the Lighting Scenario status.
    | ## Sky Occlusion Settings | **Property** | **Description** | -|-|-| +|:-|:-| | **Sky Occlusion** | Enable [sky occlusion](probevolumes-skyocclusion.md). | | **Samples** | Set the number of samples Unity uses to calculate the light each probe receives from the sky. Higher values increase the accuracy of the sky occlusion data, but increasing baking time. The default value is 2048. | | **Bounces** | Set the number of times Unity bounces light from the sky off objects when calculating the sky occlusion data. Higher values increase the accuracy of the sky occlusion data, but increase baking time. Use higher values if objects block the direct view from probes to the sky. The default value is 2. | @@ -106,70 +44,14 @@ This section appears only if you enable **Lighting Scenarios** under **Light Pro ## Probe Invalidity Settings - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    PropertyDescription
    Probe Dilation Settings
    Enable DilationWhen enabled, HDRP replaces data in invalid probes with data from nearby valid probes. Enabled by default. Refer to Fix issues with Adaptive Probe Volumes.
    Search RadiusDetermine how far from an invalid probe HDRP searches for valid neighbors. Higher values include more distant probes that might be in different lighting conditions than the invalid probe, resulting in unwanted behaviors such as light leaks.
    Validity ThresholdSet the ratio of backfaces a probe samples before HDRP considers it invalid. Higher values mean HDRP is more likely to mark a probe invalid.
    Dilation IterationsSet the number of times Unity repeats the dilation calculation. This increases the spread of dilation effect, but increases the time HDRP needs to calculate probe lighting.
    Squared Distance WeightingEnable weighing the contribution of neighbouring probes by squared distance, rather than linear distance. Probes that are closer to invalid probes will contribute more to the lighting data.
    Virtual Offset Settings
    Enable Virtual Offset Enable HDRP moving the capture point of invalid probes into a valid area. Refer to Fix issues with Adaptive Probe Volumes.
    Search Distance MultiplierSet the length of the sampling ray HDRP uses to search for valid probe positions. High values might cause unwanted results, such as probe capture points pushing through neighboring geometry.
    Geometry BiasSet how far HDRP pushes a probe's capture point out of geometry after one of its sampling rays hits geometry.
    Ray Origin biasSet the distance between a probe's center and the point HDRP uses as the origin of each sampling ray. High values might cause unwanted results, such as rays missing nearby occluding geometry.
    Layer MaskSpecify which layers HDRP includes in collision calculations for [Virtual Offset](probevolumes-fixissues.md).
    Refresh Virtual Offset DebugRe-run the virtual offset simulation to preview updated results, without affecting baked data.
    +|Property |Description | +|:---|:---| +|**Probe Dilation Settings** |
    • **Enable Dilation:** When enabled, HDRP replaces data in invalid probes with data from nearby valid probes. Enabled by default. Refer to [Fix issues with Adaptive Probe Volumes](probevolumes-fixissues.md).
    • **Search Radius:** Determine how far from an invalid probe HDRP searches for valid neighbors. Higher values include more distant probes that might be in different lighting conditions than the invalid probe, resulting in unwanted behaviors such as light leaks.
    • **Validity Threshold:** Set the ratio of backfaces a probe samples before HDRP considers it invalid. Higher values mean HDRP is more likely to mark a probe invalid.
    • **Dilation Iterations:** Set the number of times Unity repeats the dilation calculation. This increases the spread of dilation effect, but increases the time HDRP needs to calculate probe lighting.
    • **Squared Distance Weighting:** Enable weighing the contribution of neighboring probes by squared distance, rather than linear distance. Probes that are closer to invalid probes will contribute more to the lighting data.
    | +|**Virtual Offset Settings** |
    • **Enable Virtual Offset:** Enable HDRP moving the capture point of invalid probes into a valid area. Refer to [Fix issues with Adaptive Probe Volumes](probevolumes-fixissues.md).
    • **Search Distance Multiplier:** Set the length of the sampling ray HDRP uses to search for valid probe positions. High values might cause unwanted results, such as probe capture points pushing through neighboring geometry.
    • **Geometry Bias:** Set how far HDRP pushes a probe's capture point out of geometry after one of its sampling rays hits geometry.
    • **Ray Origin bias:** Set the distance between a probe's center and the point HDRP uses as the origin of each sampling ray. High values might cause unwanted results, such as rays missing nearby occluding geometry.
    • **Layer Mask:** Specify which layers HDRP includes in collision calculations for [Virtual Offset](probevolumes-fixissues.md).
    • **Refresh Virtual Offset Debug:** Re-run the virtual offset simulation to preview updated results, without affecting baked data.
    | ### Adaptive Probe Volume Disk Usage -| **Property** | **Description** | -|-|-| +| Property | Description | +|:-|:-| | **Scenario Size** | Indicates how much space on disk is used by the currently selected Lighting Scenario. | -| **Baking Set Size** | Indicates how much space on disk is used by all the baked Light Probe data for the currently selected Baking Set. This includes the data for all Lighting Scenarios, and the data shared by all Lighting Scenarios. +| **Baking Set Size** | Indicates how much space on disk is used by all the baked Light Probe data for the currently selected Baking Set. This includes the data for all Lighting Scenarios, and the data shared by all Lighting Scenarios.| diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/reference-ambient-occlusion.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/reference-ambient-occlusion.md index d9f60296378..4b00cfb514c 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/reference-ambient-occlusion.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/reference-ambient-occlusion.md @@ -1,4 +1,4 @@ -# Ambient Occlusion reference +# Screen Space Ambient Occlusion (SSAO) volume override reference ## Properties 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 eb941d397ac..140e8df499b 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 @@ -9,34 +9,25 @@ The properties available for Lights are in separate sections. Each section conta - [Volumetrics](#Volumetric) - [Shadows](#Shadow) -### Animation +## Animation To make the Light work with the **Animation window**, when you click on the **Add Property** button, you need to use the properties inside the **HD Additional Light Data** component and not inside the Light component itself. If you do edit the properties inside the Light component, this modifies the built-in light values, which HDRP doesn't support. Alternatively, you can use the record button and modify the values directly inside the Inspector. -### General +## General **General** properties control the type of Light, how HDRP processes this Light, and whether this Light affects everything in the Scene or just GameObjects on a specific Rendering Layer. | **Property** | **Description** | | ------------------------ | ------------------------------------------------------------ | -| **Type** | Defines the Light’s type. Lights of different Types behave differently, so when you change the **Type**, the properties change in the Inspector. Possible types are:
    • Directional
    • Point
    • Spot
    • Area | +| **Type** | Defines the Light’s type. Lights of different Types behave differently, so when you change the **Type**, the properties change in the Inspector. For more information, refer to [Types of Light component](xref:um-lighting). Possible types are:
    • Directional
    • Point
    • Spot
    • Area | | **Mode** | Specify the [Light Mode](https://docs.unity3d.com/Manual/LightModes.html) that HDRP uses to determine how to bake a Light, if at all. Possible modes are:
    • [Realtime](https://docs.unity3d.com/Manual/LightMode-Realtime.html): Unity performs the lighting calculations for Realtime Lights at runtime, once per frame.
    • [Mixed](https://docs.unity3d.com/Manual/LightMode-Mixed.html): Mixed Lights combine elements of both realtime and baked lighting.
    • [Baked](https://docs.unity3d.com/Manual/LightMode-Baked.html): Unity performs lighting calculations for Baked Lights in the Unity Editor, and saves the results to disk as lighting data. Note that soft falloff/range attenuation isn't supported for Baked Area Lights. | | **Rendering Layer Mask** | Defines which Rendering Layers this Light affects. The affected Light only lights up Mesh Renderers or Terrain with a matching **Rendering Layer Mask**. To use this property:
    • Set up [light layers](Rendering-Layers.md) in your project.
    • Enable [advanced properties](https://docs.unity3d.com/Packages/com.unity.render-pipelines.core@latest?subfolder=/manual/advanced-properties.html) for this section. | -#### Light Types guide - -| **Type** | **Description** | -| --------------- | ------------------------------------------------------------ | -| **Spot** | Emits light from a specified location and range over which the light diminishes. A Spot Light constrains the light it emits to an angle, which results in a cone-shaped region of illumination. The center of the cone points in the forward direction (z-axis) of the Light GameObject. Light also diminishes at the edges of the Spot Light’s cone. Increase the **Spot Angle** to increase the width of the cone. | -| **Directional** | Creates effects that are similar to sunlight in your Scene. Like sunlight, Directional Lights are distant light sources that HDRP treats as though they are infinitely far away. A Directional Light doesn't have any identifiable source position, and you can place the Light GameObject anywhere in the Scene.
    A **Directional Light** illuminates all GameObjects in the Scene as if the Light rays are parallel and always from the same direction. The Light disregards the distance between the Light itself and the target GameObject, so the Light doesn't diminish with distance | -| **Point** | Projects light out equally in all directions from a point in space. The direction of light hitting a surface is the line from the point of contact back to the center of the Light GameObject. The light intensity diminishes with increased distance from the Light, and it reaches zero at the distance specified in the **Range** field.
    Light intensity is inversely proportional to the square of the distance from the source. This is known as the [Inverse-square law](https://en.wikipedia.org/wiki/Inverse-square_law), and is similar to how light behaves in the real world. | -| **Area** | Projects light from a surface. Light shines in all directions uniformly from the surface of the rectangle. | - -### Shape +## Shape These settings define the area this Light affects. Each Light **Type** has its own unique **Shape** properties. @@ -54,7 +45,7 @@ These settings define the area this Light affects. Each Light **Type** has its o -#### Directional Light +### Directional Light | **Property** | **Description** | | -------------------- | ------------------------------------------------------------ | @@ -62,60 +53,67 @@ These settings define the area this Light affects. Each Light **Type** has its o -#### Point Light +### Point Light | **Property** | **Description** | | ------------ | ------------------------------------------------------------ | | **Radius** | Defines the radius of the light source. This has an impact on the size of specular highlights, diffuse lighting falloff and the smoothness of baked shadows and ray-traced shadows. | -#### Area Light +### Area Light -| **Property** | **Description** | -| ------------ | ------------------------------------------------------------ | -| **Shape** | HDRP Area Lights can use three shapes.
    • **Rectangle** : Projects light from a rectangle shape at the GameObject’s position and orientation, in perpendicular direction, out to a certain **Range**.
    • **Tube** : Projects light from a single line at the GameObject’s position in every direction, out to a certain **Range**. This shape is only for **Realtime Mode** at the moment.
    • **Disc** : Projects light from a disc shape at the GameObject’s position and orientation, in perpendicular direction, out to a certain **Range**. This shape is only for **Baked Mode** at the moment. | -| **Size X** | For **Rectangle**. Defines the horizontal size of the Rectangle Light. | -| **Size Y** | For **Rectangle**. Defines the vertical size of the Rectangle Light. | -| **Length** | For **Tube**. Defines the length of the Tube Light. The center of the Light is the Transform Position and the Light itself extends out from the center symmetrically. The **Length** is the distance from one end of the tube to the other. | -| **Radius** | For **Disc**. Define the radius of the Disc Light. | +| **Property** | **Description** | +| -- | -- | +| **Shape** | HDRP Area Lights can use three shapes.
    • **Rectangle** : Projects light from a rectangle shape at the GameObject’s position and orientation, perpendicularly, out to a certain **Range**.
    • **Tube** : Projects light from a single line at the GameObject’s position in every direction, out to a certain **Range**. This shape is only for **Realtime Mode** at the moment.
    • **Disc** : Projects light from a disc shape at the GameObject’s position and orientation, perpendicularly, out to a certain **Range**. This shape is only for **Baked Mode** at the moment. | +| **Size X** | For **Rectangle**. Defines the horizontal size of the Rectangle Light. | +| **Size Y** | For **Rectangle**. Defines the vertical size of the Rectangle Light. | +| **Length** | For **Tube**. Defines the length of the Tube Light. The center of the Light is the Transform Position and the Light itself extends out from the center symmetrically. The **Length** is the distance from one end of the tube to the other. | +| **Radius** | For **Disc**. Define the radius of the Disc Light. | -### Celestial Body (Directional only) +## Celestial Body (Directional only) These settings define the behavior of the light when you use it as a celestial body with the [Physically Based Sky](create-a-physically-based-sky.md). | **Property** | **Description** | | -------------------- | ------------------------------------------------------------ | | **Affect Physically Based Sky** | When using a **Physically Based Sky**, this displays a sun disc in the sky in this Light's direction. The diameter, color, and intensity of the sun disc match the properties of this Directional Light.
    This property only appears when you enable [additional properties](More-Options.md) for this section. | -| **- Diameter Multiplier** | Controls the size of the sun disk by multiplying or overriding the value of the angular diameter. This allows artificially increasing the size of the celestial body on screen without impacting the specular highlights or softness of shadows. Additionally, if the sun is only a few pixels large and very bright, you might experience flickering when using bloom. Using an angular diameter multiplier for rendering the disk will solve this. | -| **- Distance** | Controls the distance of the sun disc. This is useful if you have multiple sun discs in the sky and want to change their sort order. HDRP draws sun discs with smaller **Distance** values on top of those with larger **Distance** values. | -| **- Surface Color** | Sets a 2D (disk) Texture and color multiplier for the surface of the celestial body. Rotate the light component on the Z axis to rotate this texture. | -| **- Shading** | Specify the light source used for shading of the Celestial Body.
    • **Emission** : Used to simulate a Sun. The celestial body will emit light based on the intensity parameter set in the Emission section.
    • **Reflect Sun Light** : Used to simulate moons or planets. The celestial body will be illuminated by a directionaly light.
    • **Manual** : Used to simulate moons or planets with complete control over the phase angle and rotation, as well as the reflected light intensity. | -| **-- Sun Light Override** | Specifiy the Directional Light that should illuminate this Celestial Body. If not specified, HDRP will use the directional light in the scene with the highest intensity. | -| **-- Earthshine** | Controls the intensity of the light reflected from the planet onto the Celestial Body. | -| **-- Sun Color** | Color of the artificial light source in **Manual** mode. | -| **-- Sun Intensity** | Intensity of the artificial light source in **Manual** mode. | -| **-- Phase** | Controls the area of the surface illuminated by the Sun in **Manual** mode. A phase value of 0.5 means the surface is fully illuminated. | -| **-- Phase Rotation** | Rotates the Light Source relatively to the Celestial Body in **Manual** mode. | -| **- Flare Size** | Controls the size of the flare around the celestial body (in degrees). This is not a physically realist behavior but can be used to simulate sun flare when not using bloom or aerosol anisotropy of the PBR Sky.| -| **- Flare Falloff** | Controls the falloff rate of flare intensity as the angle from the light increases. | -| **- Flare Tint** | Controls the tint of the flare of the celestial body. | -| **- Flare Multiplier** | Multiplier applied on the flare intensity. | +| **Angular Diameter** | Controls the size of the sun disk by multiplying or overriding the value of the angular diameter. A higher angular diameter artificially increases the size of the celestial body on screen without impacting the specular highlights or softness of shadows. If the sun is only a few pixels large and very bright, you can also increase the angular diameter to avoid flickering when using bloom. | +| **Distance** | Controls the distance of the sun disc. This is useful if you have multiple sun discs in the sky and want to change their sort order. HDRP draws sun discs with smaller **Distance** values on top of those with larger **Distance** values. | +| **Surface Color** | Sets a 2D (disk) Texture and color multiplier for the surface of the celestial body. Rotate the light component on the Z axis to rotate this texture. | +| **Shading** | Specify the light source used for the shading of the Celestial Body.
    • **Emission** : Simulates a Sun. The celestial body emits light based on the intensity parameter set in the Emission section.
    • **Reflect Sun Light** : Simulates moons or planets. The celestial body is illuminated by a directional light.
    • **Manual** : Simulates moons or planets with complete control over the phase angle and rotation, as well as the reflected light intensity. | +| **Flare Size** | Controls the size of the flare around the celestial body (in degrees). This is not a physically realist behavior but can be used to simulate sun flare when not using bloom or aerosol anisotropy of the PBR Sky.| +| **Flare Falloff** | Controls the falloff rate of flare intensity as the angle from the light increases. | +| **Flare Tint** | Controls the tint of the flare of the celestial body. | +| **Flare Multiplier** | Multiplies the flare intensity. | + +### Shading settings + +The following settings appear depending on the value of the **Shading** property. + +| **Property** | **Description** | +|-|-| +| **Sun Light Override** | Specify the Directional Light that should illuminate this Celestial Body. If not specified, HDRP uses the directional light in the scene with the highest intensity. | +| **Earthshine** | Controls the intensity of the light reflected from the planet onto the Celestial Body. | +| **Sun Color** | Sets the color of the artificial light source in **Manual** mode. | +| **Sun Intensity** | Sets the intensity of the artificial light source in **Manual** mode. | +| **Phase** | Controls the area of the surface illuminated by the Sun in **Manual** mode. A phase value of 0.5 means the surface is fully illuminated. | +| **Phase Rotation** | Rotates the light source relatively to the celestial body in **Manual** mode. | -### Emission +## Emission These settings define the emissive behavior of your Light. You can set the Light’s color, strength, and maximum range. If you don't see these properties in the Light Inspector, make sure you enable [advanced properties](https://docs.unity3d.com/Packages/com.unity.render-pipelines.core@latest?subfolder=/manual/advanced-properties.html). Most Lights share **Emission** properties. Below are the list of properties that more than one Light **Type** share, followed by unique properties only available for a single Light **Type**. -#### Shared Properties +### Shared Properties | **Property** | **Description** | | --------------------------- | ------------------------------------------------------------ | -| **Color Temperature** | Enable the checkbox to set the color temperature mode for this Light. Color Temperature mode adjusts the color of your Light based on a red-to-blue kelvin temperature scale. When enabled, this hides the **Color** property and exposes **Filter** and **Temperature**. Disable this checkbox to only display the **Color** field in the Inspector and use that as the Light color, without the temperature. | -| **- Filter** | Allows you to select the color of the Light’s filter using the color picker. HDRP uses this and the **Temperature** property to calculate the final color of the Light. | -| **- Temperature** | Allows you to select a temperature that HDRP uses to calculate a color on a red-to-blue kelvin temperature scale. You can move the slider along the scale itself, or specify an exact temperature value in the field below the slider scale.
    This property includes an icon to the right of the slider which represents the light source that best matches the current value set. The icon is also a button which you can click to access a list of preset values that match real world light sources. | +| **Light Appearance** | Selects how to set the color of the Light. The options are:
    • Color: Displays the Color property so you can set the color of the Light.
    • Filter and Temperature : Displays the Filter and Temperature properties. Set the color of the Light based on a red-to-blue kelvin temperature scale.
    | | **Color** | Allows you to select the color of the Light using the color picker. | +| **Filter** | Allows you to select the color of the Light’s filter using the color picker. HDRP uses this and the **Temperature** property to calculate the final color of the Light. | +| **Temperature** | Select a temperature on a red-to-blue kelvin scale that HDRP uses to calculate a color. Move the slider along the scale, or specify an exact temperature value in the field below the scale.
    The icon to the right of the slider represents the light source that best matches the current value set. Click the icon to access a list of preset values that match real-world light sources. | | **Intensity** | The strength of the Light. Intensity is expressed in the following units:
    • A Spot Light can use [Lumen](Physical-Light-Units.md#Lumen), [Candela](Physical-Light-Units.md#Candela), [Lux](Physical-Light-Units.md#Lux), and [EV100](Physical-Light-Units.md#EV).
    • A Directional Light can only use **Lux**.
    • A Point Light can use **Lumen**, **Candela**, **Lux**, and **EV100**.
    • A Area Light can use **Lumen**, [Nits](Physical-Light-Units.md#Nits), and **EV100**.

    Generally, the further the light travels from its source, the weaker it gets. The only exception to this is the **Directional Light** which has the same intensity regardless of distance. For the rest of the Light types, lower values cause light to diminish closer to the source. Higher values cause light to diminish further away from the source.

    This property includes an icon to the right of the slider which represents the light source that best matches the current value set. The icon is also a button which you can click to access a list of preset values that match real world light sources. | | **Range** | The range of influence for this Light. Defines how far the emitted light reaches. This property is available for all **Light Types** except **Directional**. | | **Indirect Multiplier** | The intensity of [indirect](https://docs.unity3d.com/Manual/LightModes-TechnicalInformation.html) light in your Scene. A value of 1 mimics realistic light behavior. A value of 0 disables indirect lighting for this Light. If both **Realtime** and **Baked** Global Illumination are disabled in Lighting Settings (menu: **Window > Rendering > Lighting Settings**), the Indirect Multiplier has no effect. | @@ -131,13 +129,13 @@ These settings define the emissive behavior of your Light. You can set the Light | **Include For Ray Tracing** | Enable the checkbox to make this Light active when you enable the **Ray Tracing** [Frame Setting](Frame-Settings.md) on the Camera. This applies to rasterization and [ray tracing](Ray-Tracing-Getting-Started.md) passes.
    This property only appears when you enable [advanced properties](https://docs.unity3d.com/Packages/com.unity.render-pipelines.core@latest?subfolder=/manual/advanced-properties.html) for this section. It's only available in Realtime or Mixed light **Mode**. | | **Include For Path Tracing** | Enable the checkbox to make this Light active when [Path Tracing](Ray-Tracing-Path-Tracing.md) is enabled. | -#### Spot Light +### Spot Light | **Property** | **Description** | | ------------- | ------------------------------------------------------------ | | **Reflector** | Enable the checkbox to simulate a reflective surface behind the Spot Light. Spot Lights are Point Lights that are partly occluded at the back by a reflective surface. Simulating this reflective surface increases the intensity of the Spot Light because the reflective surface reflects light originally directed backwards to focus the intensity in the Spot Light’s direction. | -#### Directional Light +### Directional Light | **Property** | **Description** | | ------------ | ------------------------------------------------------------ | @@ -146,40 +144,35 @@ These settings define the emissive behavior of your Light. You can set the Light -### Volumetrics +## Volumetrics These settings define the volumetric behavior of this Light. Alter these settings to change how this Light behaves with [Atmospheric Scattering](Atmospheric-Scattering.md). All Light **Types** share the same **Volumetric** properties, except **Area** Light. It's only available in Realtime or Mixed light **Mode**. -#### Shared Properties - | **Property** | **Description** | | ----------------- | ------------------------------------------------------------ | -| **Enable** | Enable the checkbox to simulate light scattering through volumetric fog. Enabling this property allows you to edit the **Dimmer** and **Shadow Dimmer** properties. | -| **Dimmer** | Dims 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. | +| **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 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. | -### **Shadows** +## **Shadows** Use this section to adjust the Shadows cast by this Light. Unity exposes extra properties in this section depending on the **Mode** you set in the [General](#general) section. Unity also exposes extra properties depending on the **Filtering Quality** set in your Unity Project’s [HDRP Asset](HDRP-Asset.md). -• For more information on shadow filtering in HDRP, see [Shadow Filtering](Shadows-in-HDRP.md##ShadowFiltering). - -• For a list of the available filter quality presets in HDRP, see the [Filtering Qualities table](HDRP-Asset.md#filtering-quality). - -#### Properties +For more information on shadow filtering in HDRP, refer to [Shadow Filtering](Shadows-in-HDRP.md##ShadowFiltering). +For a list of the available filter quality presets in HDRP, refer to the [Filtering Qualities table](HDRP-Asset.md#filtering-quality). -##### Shadow Map +### Shadow Map 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**. | @@ -199,7 +192,7 @@ This section is only available in Realtime or Mixed light **Mode**. | **Custom Shadow Layers** | Enable the checkbox to use a different [Rendering Layer Mask](Rendering-Layers.md) for shadows than the one used for lighting. If you enable this feature, then HDRP uses the **Shadow Layers** drop-down in this section for shadowing. If you disable it, then HDRP uses the **Rendering Layer Mask** drop-down in the **General** section for shadowing.
    This property only appears when you enable [advanced properties](https://docs.unity3d.com/Packages/com.unity.render-pipelines.core@latest?subfolder=/manual/advanced-properties.html) for this section. To access this property, enable **Light Layers** in your [HDRP Asset](HDRP-Asset.md). | | **Shadow Layers** | Use the drop-down to set the [Rendering Layer Mask](Rendering-Layers.md) HDRP uses for shadowing. This Light therefore only casts shadows for GameObjects that use a matching Rendering Layer. For more information about using Rendering Layers for shadowing, see [Shadow Light Layers](Rendering-Layers.md#ShadowLightLayers).
    This property only appears when you enable [advanced properties](https://docs.unity3d.com/Packages/com.unity.render-pipelines.core@latest?subfolder=/manual/advanced-properties.html) for this section. To access this property, enable the **Custom Shadow Layers** checkbox. | -##### Contact Shadows +### Contact Shadows This section is only available in Realtime or Mixed light **Mode**. @@ -207,7 +200,7 @@ This section is only available in Realtime or Mixed light **Mode**. | ------------ | ------------------------------------------------------------ | | **Enable** | Add [Contact Shadows](Override-Contact-Shadows.md) to this Light. Use the drop-down to select a quality mode for the Contact Shadows. Select **Custom** to expose a checkbox that allows you to enable or disable Contact Shadows at will. | -##### Baked Shadows +### Baked Shadows This section is only available in Baked light **Mode**. @@ -216,13 +209,18 @@ This section is only available in Baked light **Mode**. | **Enable** | Enable the checkbox to let this Light cast shadows. | | **Near Plane** | The distance, in meters, from the Light that GameObjects begin to cast shadows. | -##### High Filtering Quality properties +### High Quality Settings In your [HDRP Asset](HDRP-Asset.md), select **High** from the **Filtering Quality** drop-down to expose the following properties. -| **Property** | **Description** | -| ------------------------------ | ------------------------------------------------------------ | -| **Shadow Softness** | Defines the behavior of area light shadows. Higher softness values mimic a larger emission radius while lower values mimic a [punctual light](Glossary.md#PunctualLight). High values increase shadow blur depending on the distance between the pixel receiving the shadow and the shadow caster. | -| **Blocker Sample Count** | The number of samples HDRP uses to evaluate the distance between the pixel receiving the shadow and the shadow caster. Higher values give better accuracy. | -| **Filter Sample Count** | The number of samples HDRP uses to blur shadows. Higher values give smoother results. | -| **Minimum Size of the Filter** | The minimum size of the whole shadow’s blur effect, no matter the distance between the pixel and the shadow caster. Higher values give blurrier results. | +| **Property** | **Description** | +|-|-| +| **Max Penumbra Size** | Sets the maximum blurriness of the edge of shadows that HDRP calculates as percentage-closer soft shadows (PCSS). If you increase this value, you might need to increase **Blocker Sample Count** and **Filter Sample Count** to maintain shadow quality. | +| **Max Sampling Distance** | Sets the distance from the shadow receiver where the edge of shadows reaches the **Max Penumbra Size**. Lower values reduce light bleeding, but might increase self-shadowing. | +| **Min Filter** | The minimum size of the whole shadow’s blur effect, no matter the distance between the pixel and the shadow caster. Higher values give blurrier results. | +| **Min Filter Max Angular Diameter** | Specifies how small shadows can get before HDRP uses the **Min Filter** size. Lower values help reduce self-shadowing. Higher values might increase light bleeding. | +| **Blocker Search Angular Diameter** | Specifies how much of the shadow map HDRP searches to find shadow casters, also known as blockers. Increasing this value might detect hidden or close shadow casters, but might also increase self-shadowing. | +| **Blocker Sampling Clump Exponent** | Adjusts the distribution of samples when HDRP searches for shadow casters in the shadow map. Higher values concentrate samples closer to the center, affecting the accuracy and blurriness of the shadow edge. | +| **Blocker Sample Count** | Sets the number of samples HDRP uses to calculate the distance between the pixel receiving the shadow and the shadow caster. Higher values give better accuracy. | +| **Filter Sample Count** | Sets the number of samples HDRP uses to blur shadows. Higher values give smoother results. | +| **Radius Scale for Softness** | Scales the radius that HDRP uses to calculate blurriness from the light source. Higher values give larger, blurrier results. | diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/reference-lighting-environment.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/reference-lighting-environment.md index c0ae1669000..0816b33c9d9 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/reference-lighting-environment.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/reference-lighting-environment.md @@ -1,4 +1,4 @@ -# Lighting environment reference +# Lighting window Environment (HDRP) tab reference The **Environment (HDRP)** is a section in the [Lighting window](https://docs.unity3d.com/Manual/lighting-window.html) that allows you to specify which sky to use for indirect ambient light in HDRP. To open the window, select **Window > Rendering > Lighting > Environment**. 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 d3257b11a27..2c3f2d1b6db 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 @@ -33,7 +33,7 @@ The **Decals** panel has tools that you can use to debug [decals](decal-material The **display stats** panel is only visible in play mode. You can use it to debug performance issues in your project. -Use the [runtime shortcuts](#Navigation at runtime) to open the Display stats window in the scene view at runtime. +Use the [runtime shortcuts](use-the-rendering-debugger.md#how-to-access-the-rendering-debugger) to open the Display stats window in the scene view at runtime. @@ -220,7 +220,7 @@ These settings make it possible for you to visualize [Adaptive Probe Volumes](pr | **Property** | **Sub-property** | **Description** | |--------------------------|--------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | **Display Probes** | N/A | Display probes. | -| **Display Probes** | **Probe Shading Mode** | Set what the Rendering Debugger displays. The options are:
    • SH: Display the [spherical harmonics (SH) lighting data](https://docs.unity3d.com/Manual/LightProbes-TechnicalInformation.html) for the final color calculation. The number of bands depends on the **SH Bands** setting in the active [HDRP Asset](HDRP-Asset.md).
    • SHL0: Display the spherical harmonics (SH) lighting data with only the first band.
    • SHL0L1: Display the spherical Harmonics (SH) lighting data with the first two bands.
    • Validity: Display whether probes are valid, based on the number of backfaces the probe samples. Refer to [Fix issues with Adaptive Probe Volumes](probevolumes-fixissues.md) for more information about probe validity.
    • Probe Validity Over Dilation Threshold: Display red if a probe samples too many backfaces, based on the **Validity Threshold** set in the [Adaptive Probe Volumes panel](probevolumes-lighting-panel-reference.md). This means the probe can't be baked or sampled.
    • Invalidated By Touchup Volumes: Display probes that a [Probe Adjustment Volume component](probevolumes-adjustment-volume-component-reference.md) has made invalid.
    • Size: Display a different color for each size of [brick](probevolumes-concept.md).
    • Sky Occlusion SH: If you enable [sky occlusion](probevolumes-skyocclusion.md), this setting displays the amount of indirect light the probe receives from the sky that bounced off static GameObjects. The value is a scalar, so it displays as a shade of gray.
    • Sky Direction: Display a green circle that represents the direction from the probe to the sky. This setting displays a red circle if Unity can't calculate the direction, or **Sky Direction** in the [Adaptive Probe Volumes panel](probevolumes-lighting-panel-reference.md) is disabled.
    | +| **Display Probes** | **Probe Shading Mode** | Set what the Rendering Debugger displays. The options are:
    • SH: Display the [spherical harmonics (SH) lighting data](https://docs.unity3d.com/Manual/LightProbes-TechnicalInformation.html) for the final color calculation. The number of bands depends on the **SH Bands** setting in the active [HDRP Asset](HDRP-Asset.md).
    • SHL0: Display the spherical harmonics (SH) lighting data with only the first band.
    • SHL0L1: Display the spherical Harmonics (SH) lighting data with the first two bands.
    • Validity: Display whether probes are valid, based on the number of backfaces the probe samples. Refer to [Fix issues with Adaptive Probe Volumes](probevolumes-fixissues.md) for more information about probe validity.
    • Probe Validity Over Dilation Threshold: Display red if a probe samples too many backfaces, based on the **Validity Threshold** set in the [Adaptive Probe Volumes panel](probevolumes-lighting-panel-reference.md). This means the probe can't be baked or sampled.
    • Invalidated By Adjustment Volumes: Display probes that a [Probe Adjustment Volume component](probevolumes-adjustment-volume-component-reference.md) has made invalid.
    • Size: Display a different color for each size of [brick](probevolumes-concept.md).
    • Sky Occlusion SH: If you enable [sky occlusion](probevolumes-skyocclusion.md), this setting displays the amount of indirect light the probe receives from the sky that bounced off static GameObjects. The value is a scalar, so it displays as a shade of gray.
    • Sky Direction: Display a green circle that represents the direction from the probe to the sky. This setting displays a red circle if Unity can't calculate the direction, or **Sky Direction** in the [Adaptive Probe Volumes panel](../probevolumes-lighting-panel-reference) is disabled.
    • **Probe Occlusion**: Displays whether probes are affected by lights that have their [Light Mode](https://docs.unity3d.com/Manual/LightModes-choose) set to **Mixed**, if you set [Lighting Mode](https://docs.unity3d.com/Manual/lighting-mode) to Shadowmask. Each probe displays up to four overlapping lights.
    | | **Display Probes** | **Debug Size** | Set the size of the displayed probes. The default is 0.3. | | **Display Probes** | **Exposure Compensation** | Set the brightness of the displayed probes. Decrease the value to increase brightness. The default is 0. This property appears only if you set **Probe Shading Mode** to **SH**, **SHL0**, or **SHL0L1**. | | **Display Probes** | **Max Subdivisions Displayed** | Set the lowest probe density to display. For example, set this to 0 to display only the highest probe density. | 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~/sky.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/sky.md index 30ae0cfd283..d0a1fb35cbc 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/sky.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/sky.md @@ -2,6 +2,8 @@ Create different types of sky in the High Definition Render Pipeline (HDRP). +**Note**: Procedural sky is deprecated and no longer built into HDRP. For information on how to add Procedural Sky to your HDRP Project, see the [Upgrading from 2019.2 to 2019.3 guide](Upgrading-From-2019.2-to-2019.3.md#ProceduralSky). + | Page | Description | |-|-| | [Understand sky](understand-sky.md) | Understand the different ways you can create sky in HDRP. | diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/stp/stp-upscaler.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/stp/stp-upscaler.md index 1db366b1a29..213587849d0 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/stp/stp-upscaler.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/stp/stp-upscaler.md @@ -28,7 +28,7 @@ To enable STP in the High Definition Render Pipeline (HDRP), do the following: 2. In the Inspector, go to **Rendering** > **Dynamic Resolution** and select **Enable**. -2. In the list **Advanced Upsaclers by Priority**, click the **+** button and select **STP** to add it to the list. +2. In the list **Advanced Upscalers by Priority**, click the **+** button and select **STP** to add it to the list. 3. Set **Dynamic Resolution Type** to **Hardware**. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/troubleshooting-volumetric-clouds-rendering-issues.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/troubleshooting-volumetric-clouds-rendering-issues.md new file mode 100644 index 00000000000..a2d60158e32 --- /dev/null +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/troubleshooting-volumetric-clouds-rendering-issues.md @@ -0,0 +1,23 @@ +# Troubleshooting Volumetric Clouds rendering issues + +Prevent far-away clouds from disappearing when the camera moves along the y-axis, especially when traversing the clouds. + +## Symptoms + +Far-away clouds disappear as the camera moves along the y-axis when the **Rendering Space** is set to **World**. + +## Cause + +To enhance performance, the default number of steps used to evaluate the clouds' transmittance is low. This causes the clouds further away to disappear as the camera moves along the y-axis. + +**Note:** In Unity 6, the default rendering space was changed to **World**, making this issue more noticeable than in Unity 2022 LTS, where **Camera** was the default setting. + +## Resolution + +To prevent far-away clouds from disappearing, increase the **Num Primary Steps** value in the **Quality** section of the **Volumetric Clouds** override. + +**Important:** A high **Num Primary Steps** value can hinder performance. Adjust this setting with caution. + +## Additional resources + +- [Create realistic clouds (volumetric clouds)](create-realistic-clouds-volumetric-clouds.md) diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/understand-decals.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/understand-decals.md index e95871efd55..a6c1c006b1f 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/understand-decals.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/understand-decals.md @@ -5,32 +5,38 @@ The High Definition Render Pipeline (HDRP) includes the following ways to create - Use a Decal Mesh and manually position the decal. - Use the [Decal Projector](decal-projector-reference.md) component to project the decal. -To use these methods, you need to create a decal Material. A decal Material is a Material that uses the Decal Shader or Decal Master Stack. You can then place or project your decal Material into a Scene. +To use these methods, you need to create a decal material. A decal material is a material that uses the Decal Shader or Decal Master Stack. You can then place or project your decal material into a Scene. ![Rocky ground with two dark iridescent oil patches.](Images/HDRPFeatures-DecalShader.png) Refer to [Use decals](use-decals.md) for more information. +## How Unity organises decals + +For [decals applied to opaque surfaces](HDRP-Asset.md#decalopaque), HDRP uses a [decal atlas](HDRP-Asset.md#Decals) to store and manage decal textures. A decal atlas is a texture resource that combines multiple opaque decal textures into one. HDRP shares this resource across general opaque decal types in the scene. + +For [decals applied to transparent surfaces](HDRP-Asset.md#decaltransparent) (such as water or glass), HDRP uses clustered structures to store and manage decal textures. HDRP doesn't use decal atlases for transparent surfaces. + ## Decal Projector -When the Decal Projector component projects decals into the Scene, they interact with the Scene’s lighting and wrap around Meshes. You can use thousands of decals in your Scene simultaneously because HDRP instances them. This means that the rendering process is not resource intensive as long as the decals use the same Material. +When the Decal Projector component projects decals into the Scene, they interact with the Scene’s lighting and wrap around Meshes. You can use thousands of decals in your Scene simultaneously because HDRP instances them. This means that the rendering process isn't resource intensive as long as the decals use the same material. -The Decal Projector also supports [Decal Layers](use-decals.md#decal-layers) which means you can control which Materials receive decals on a Layer by Layer basis. +The Decal Projector also supports [Decal Layers](use-decals.md#decal-layers) which means you can control which materials receive decals on a Layer by Layer basis. -![A stony forest floor in the Scene view, with a rectanglar area represnting a Decal Projector above a reflective puddle.](Images/DecalProjector1.png) +![A stony forest floor in the Scene view, with a rectangular area representing a Decal Projector above a reflective puddle.](Images/DecalProjector1.png) ## Limitations -- A Decal Projector can only affect transparent Materials when you use the [Decal Shader](decal-material-inspector-reference.md). +- A Decal Projector can only affect transparent materials when you use the [Decal Shader](decal-material-inspector-reference.md). -- The Decal Shader does not support emissive on Transparent Materials and does support Decal Layers. +- The Decal Shader doesn't support emissive on transparent materials and does support Decal Layers. -- Decal Meshes can only affect opaque Materials with either a [Decal Shader](decal-material-inspector-reference.md) or a [Decal Master Stack](decal-master-stack-reference.md). +- Decal Meshes can only affect opaque materials with either a [Decal Shader](decal-material-inspector-reference.md) or a [Decal Master Stack](decal-master-stack-reference.md). -- Decal Meshes do not support Decal Layers. +- Decal Meshes don't support Decal Layers. -### Migration of data previous to Unity 2020.2 +### Migration of data before Unity 2020.2 -When you convert a project from 2020.2, Mesh renderers and Terrain do not receive any decals by default. +When you convert a project from 2020.2, Mesh renderers and Terrain don't receive any decals by default. This is because, before Unity 2020.2, the default value for the **Rendering Layer Mask** for new Mesh Renderers and Terrain doesn't include Decal Layer flags. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/water-use-the-water-system-in-your-project.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/water-use-the-water-system-in-your-project.md index d3064798f95..703f2948f7c 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/water-use-the-water-system-in-your-project.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/water-use-the-water-system-in-your-project.md @@ -36,7 +36,7 @@ Open **Game Object** > **Water Surface** and select a surface type. You can also use a [Water shader graph](settings-and-properties-related-to-the-water-system.md) to create a Water material. ### Adjust Scene view Effects options -If water surface movement lags and stutters in the Scene view, open the Effects menu in the [View Options](https://docs.unity3d.com/2023.1/Documentation/Manual/ViewModes.html) toolbar and enable the **Always Refresh** option. +If water surface movement lags and stutters in the Scene view, open the Effects menu in the [View Options](https://docs.unity3d.com/Manual/ViewModes.html) toolbar and enable the **Always Refresh** option. ## Configuration examples You can adjust the properties to simulate the appearance of a calm or stormy day, clean or dirty water. Here are a few examples of the kinds of adjustments you might make to simulate different water conditions. 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 78c94c8aa18..62f10b2168a 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 @@ -630,9 +630,9 @@ void UpdateSizeOfOneTarget(DecalProjector currentTarget) m_SizeValues[axe].floatValue = newSize; } - internal void MinMaxSliderWithFields(GUIContent label, ref float minValue, ref float maxValue, float minLimit, float maxLimit) + internal void MinMaxSliderWithFields(Rect rect, GUIContent label, ref float minValue, ref float maxValue, float minLimit, float maxLimit) { - var rect = EditorGUILayout.GetControlRect(); + // Reserve label space and push the slider rect to the right rect = EditorGUI.PrefixLabel(rect, label); const float fieldWidth = 40, padding = 4; @@ -662,6 +662,45 @@ internal void MinMaxSliderWithFields(GUIContent label, ref float minValue, ref f } } + void DoRenderingLayerMask() + { + Rect rect = EditorGUILayout.GetControlRect(true, 18f); + EditorGUI.BeginProperty(rect, k_DecalLayerMaskContent, m_DecalLayerMask); + + var mask = m_DecalLayerMask.uintValue; + EditorGUI.BeginChangeCheck(); + mask = EditorGUI.RenderingLayerMaskField(rect, k_DecalLayerMaskContent, (RenderingLayerMask)mask, EditorStyles.layerMaskField); + if (EditorGUI.EndChangeCheck()) + { + m_DecalLayerMask.intValue = unchecked((int) mask); + serializedObject.ApplyModifiedProperties(); + } + + EditorGUI.EndProperty(); + } + + void DoAngleFade() + { + // The slider edits 2 different properties. Both can be overridden separately. + var rect = EditorGUILayout.GetControlRect(); + EditorGUI.BeginProperty(rect, k_AngleFadeContent, m_StartAngleFadeProperty); + EditorGUI.BeginProperty(rect, k_AngleFadeContent, m_EndAngleFadeProperty); + + float angleFadeMinValue = m_StartAngleFadeProperty.floatValue; + float angleFadeMaxValue = m_EndAngleFadeProperty.floatValue; + EditorGUI.BeginChangeCheck(); + MinMaxSliderWithFields(rect,k_AngleFadeContent, ref angleFadeMinValue, ref angleFadeMaxValue, 0.0f, 180.0f); + if (EditorGUI.EndChangeCheck()) + { + m_StartAngleFadeProperty.floatValue = angleFadeMinValue; + m_EndAngleFadeProperty.floatValue = angleFadeMaxValue; + serializedObject.ApplyModifiedProperties(); + } + + EditorGUI.EndProperty(); + EditorGUI.EndProperty(); + } + public override void OnInspectorGUI() { bool supportDecals = false; @@ -735,14 +774,7 @@ public override void OnInspectorGUI() decalLayerEnabled = supportDecals && hdrp.currentPlatformRenderPipelineSettings.supportDecalLayers; using (new EditorGUI.DisabledScope(!decalLayerEnabled)) { - var mask = m_DecalLayerMask.uintValue; - EditorGUI.BeginChangeCheck(); - mask = EditorGUILayout.RenderingLayerMaskField(k_DecalLayerMaskContent, mask); - if (EditorGUI.EndChangeCheck()) - { - m_DecalLayerMask.intValue = unchecked((int) mask); - EditorUtility.SetDirty(m_DecalLayerMask.serializedObject.targetObject); - } + DoRenderingLayerMask(); } } @@ -758,15 +790,7 @@ public override void OnInspectorGUI() EditorGUILayout.PropertyField(m_FadeScaleProperty, k_FadeScaleContent); using (new EditorGUI.DisabledScope(!decalLayerEnabled)) { - float angleFadeMinValue = m_StartAngleFadeProperty.floatValue; - float angleFadeMaxValue = m_EndAngleFadeProperty.floatValue; - EditorGUI.BeginChangeCheck(); - MinMaxSliderWithFields(k_AngleFadeContent, ref angleFadeMinValue, ref angleFadeMaxValue, 0.0f, 180.0f); - if (EditorGUI.EndChangeCheck()) - { - m_StartAngleFadeProperty.floatValue = angleFadeMinValue; - m_EndAngleFadeProperty.floatValue = angleFadeMaxValue; - } + DoAngleFade(); } if (!decalLayerEnabled) @@ -985,7 +1009,7 @@ public override void Action(int instanceId, string pathName, string resourceFile } if (shader != null) - { + { var material = new Material(shader); AssetDatabase.CreateAsset(material, materialName); ProjectWindowUtil.ShowCreatedAsset(material); diff --git a/Packages/com.unity.render-pipelines.high-definition/Editor/Material/FogVolume/FogVolumePropertyBlock.cs b/Packages/com.unity.render-pipelines.high-definition/Editor/Material/FogVolume/FogVolumePropertyBlock.cs index 1400885baf9..fd745434799 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Editor/Material/FogVolume/FogVolumePropertyBlock.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Editor/Material/FogVolume/FogVolumePropertyBlock.cs @@ -20,6 +20,7 @@ internal class Styles public static GUIContent blendMode = new GUIContent("Blend Mode", "Determines how the fog volume will blend with other fogs in the scene."); public static GUIContent singleScatteringAlbedo = new GUIContent("Single Scattering Albedo", "The color this fog scatters light to."); public static GUIContent fogDistance = new GUIContent("Fog Distance", "Density at the base of the fog. Determines how far you can see through the fog in meters."); + public static GUIContent debugSymbolsText = new GUIContent("Debug Symbols", "When enabled, HDRP activates d3d11 debug symbols for this Shader."); } protected override string title => "Fog Volume Options"; @@ -35,6 +36,9 @@ protected override void CreatePropertyGUI() // AddProperty(Styles.singleScatteringAlbedo, () => fogData.singleScatteringAlbedo, (newValue) => fogData.singleScatteringAlbedo = newValue); // AddProperty(Styles.fogDistance, () => fogData.fogDistance, (newValue) => fogData.fogDistance = newValue); AddProperty(Styles.blendMode, () => fogData.blendMode, (newValue) => fogData.blendMode = newValue); + + if (Unsupported.IsDeveloperMode()) + AddProperty(Styles.debugSymbolsText, () => systemData.debugSymbols, (newValue) => systemData.debugSymbols = newValue); } } } diff --git a/Packages/com.unity.render-pipelines.high-definition/Editor/Material/FogVolume/ShaderGraph/FogVolumeSubTarget.cs b/Packages/com.unity.render-pipelines.high-definition/Editor/Material/FogVolume/ShaderGraph/FogVolumeSubTarget.cs index 5d10995ee62..3b5279bbe55 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Editor/Material/FogVolume/ShaderGraph/FogVolumeSubTarget.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Editor/Material/FogVolume/ShaderGraph/FogVolumeSubTarget.cs @@ -172,7 +172,7 @@ PassCollection GetVoxelizePasses() { // Definition displayName = HDShaderPassNames.s_FogVolumeVoxelizeStr, - referenceName = "SHADERPASS_FOGVOLUME_VOXELIZATION", + referenceName = "SHADERPASS_FOG_VOLUME_VOXELIZATION", lightMode = HDShaderPassNames.s_FogVolumeVoxelizeStr, useInPreview = false, @@ -200,7 +200,7 @@ PassDescriptor ShaderGraphPreviewPass() { // Definition displayName = "ShaderGraphPreview", - referenceName = "SHADERPASS_FOGVOLUME_PREVIEW", + referenceName = "SHADERPASS_FOG_VOLUME_PREVIEW", lightMode = "ShaderGraphPreview", useInPreview = true, @@ -228,7 +228,7 @@ PassDescriptor ShaderGraphOverdrawDebugPass() { // Definition displayName = HDShaderPassNames.s_VolumetricFogVFXOverdrawDebugStr, - referenceName = "SHADERPASS_FOGVOLUME_OVERDRAW_DEBUG", + referenceName = "SHADERPASS_FOG_VOLUME_OVERDRAW_DEBUG", lightMode = HDShaderPassNames.s_VolumetricFogVFXOverdrawDebugStr, useInPreview = true, @@ -308,6 +308,7 @@ static class FogVolumeIncludes const string kPacking = "Packages/com.unity.render-pipelines.core/ShaderLibrary/Packing.hlsl"; const string kColor = "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl"; const string kFunctions = "Packages/com.unity.shadergraph/ShaderGraphLibrary/Functions.hlsl"; + const string kVoxelizationTransforms = "Packages/com.unity.render-pipelines.high-definition/Editor/Material/FogVolume/ShaderGraph/VoxelizationTransforms.hlsl"; const string kVoxelizePass = "Packages/com.unity.render-pipelines.high-definition/Editor/Material/FogVolume/ShaderGraph/ShaderPassVoxelize.hlsl"; const string kPreviewPass = "Packages/com.unity.render-pipelines.high-definition/Editor/Material/FogVolume/ShaderGraph/ShaderPassPreview.hlsl"; const string kOverdrawPass = "Packages/com.unity.render-pipelines.high-definition/Editor/Material/FogVolume/ShaderGraph/OverdrawDebug.hlsl"; @@ -318,6 +319,7 @@ static class FogVolumeIncludes { kColor, IncludeLocation.Pregraph }, { kFunctions, IncludeLocation.Pregraph }, { CoreIncludes.MinimalCorePregraph }, + { kVoxelizationTransforms, IncludeLocation.Pregraph }, { kVoxelizePass, IncludeLocation.Postgraph }, }; diff --git a/Packages/com.unity.render-pipelines.high-definition/Editor/Material/FogVolume/ShaderGraph/OverdrawDebug.hlsl b/Packages/com.unity.render-pipelines.high-definition/Editor/Material/FogVolume/ShaderGraph/OverdrawDebug.hlsl index 7e079bfa8b5..24b54722674 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Editor/Material/FogVolume/ShaderGraph/OverdrawDebug.hlsl +++ b/Packages/com.unity.render-pipelines.high-definition/Editor/Material/FogVolume/ShaderGraph/OverdrawDebug.hlsl @@ -1,4 +1,4 @@ -#if SHADERPASS != SHADERPASS_FOGVOLUME_OVERDRAW_DEBUG +#if SHADERPASS != SHADERPASS_FOG_VOLUME_OVERDRAW_DEBUG #error SHADERPASS_is_not_correctly_define #endif diff --git a/Packages/com.unity.render-pipelines.high-definition/Editor/Material/FogVolume/ShaderGraph/ShaderPassPreview.hlsl b/Packages/com.unity.render-pipelines.high-definition/Editor/Material/FogVolume/ShaderGraph/ShaderPassPreview.hlsl index bd90a161800..cc785e80220 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Editor/Material/FogVolume/ShaderGraph/ShaderPassPreview.hlsl +++ b/Packages/com.unity.render-pipelines.high-definition/Editor/Material/FogVolume/ShaderGraph/ShaderPassPreview.hlsl @@ -1,4 +1,4 @@ -#if SHADERPASS != SHADERPASS_FOGVOLUME_PREVIEW +#if SHADERPASS != SHADERPASS_FOG_VOLUME_PREVIEW #error SHADERPASS_is_not_correctly_define #endif diff --git a/Packages/com.unity.render-pipelines.high-definition/Editor/Material/FogVolume/ShaderGraph/ShaderPassVoxelize.hlsl b/Packages/com.unity.render-pipelines.high-definition/Editor/Material/FogVolume/ShaderGraph/ShaderPassVoxelize.hlsl index 2f0ab60c9bd..3f5e933cfe8 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Editor/Material/FogVolume/ShaderGraph/ShaderPassVoxelize.hlsl +++ b/Packages/com.unity.render-pipelines.high-definition/Editor/Material/FogVolume/ShaderGraph/ShaderPassVoxelize.hlsl @@ -1,4 +1,4 @@ -#if SHADERPASS != SHADERPASS_FOGVOLUME_VOXELIZATION +#if SHADERPASS != SHADERPASS_FOG_VOLUME_VOXELIZATION #error SHADERPASS_is_not_correctly_define #endif @@ -91,14 +91,13 @@ VertexToFragment Vert(uint instanceId : INSTANCEID_SEMANTIC, uint vertexId : VER return output; } -FragInputs BuildFragInputs(VertexToFragment v2f, float3 voxelPositionOS, float3 voxelClipSpace) +FragInputs BuildFragInputs(VertexToFragment v2f, float3 voxelPositionWS, float3 voxelClipSpace) { FragInputs output; ZERO_INITIALIZE(FragInputs, output); - float3 positionWS = mul(UNITY_MATRIX_M, float4(voxelPositionOS, 1)).xyz; output.positionSS = v2f.positionCS; - output.positionRWS = output.positionPredisplacementRWS = positionWS; + output.positionRWS = output.positionPredisplacementRWS = voxelPositionWS; output.positionPixel = uint2(v2f.positionCS.xy); output.texCoord0 = float4(saturate(voxelClipSpace * 0.5 + 0.5), 0); output.tangentToWorld = k_identity3x3; @@ -140,9 +139,11 @@ void Frag(VertexToFragment v2f, out float4 outColor : SV_Target0) float3 rayoriginWS = GetCurrentViewPosition(); float3 voxelCenterWS = rayoriginWS + sliceDistance * raycenterDirWS; + // Build rotation matrix from normalized OBB axes to transform the world space position float3x3 obbFrame = float3x3(_VolumetricMaterialObbRight.xyz, _VolumetricMaterialObbUp.xyz, cross(_VolumetricMaterialObbRight.xyz, _VolumetricMaterialObbUp.xyz)); - float3 voxelCenterBS = mul(voxelCenterWS - _VolumetricMaterialObbCenter.xyz + _WorldSpaceCameraPos.xyz, transpose(obbFrame)); + // Rotate world position around the center of the local fog OBB + float3 voxelCenterBS = mul(GetAbsolutePositionWS(voxelCenterWS - _VolumetricMaterialObbCenter.xyz), transpose(obbFrame)); float3 voxelCenterCS = (voxelCenterBS * rcp(_VolumetricMaterialObbExtents.xyz)); // Still need to clip pixels outside of the box because of the froxel buffer shape @@ -150,7 +151,7 @@ void Frag(VertexToFragment v2f, out float4 outColor : SV_Target0) if (!overlap) clip(-1); - FragInputs fragInputs = BuildFragInputs(v2f, voxelCenterBS, voxelCenterCS); + FragInputs fragInputs = BuildFragInputs(v2f, voxelCenterWS, voxelCenterCS); GetVolumeData(fragInputs, v2f.viewDirectionWS, albedo, extinction); // Accumulate volume parameters diff --git a/Packages/com.unity.render-pipelines.high-definition/Editor/Material/FogVolume/ShaderGraph/VoxelizationTransforms.hlsl b/Packages/com.unity.render-pipelines.high-definition/Editor/Material/FogVolume/ShaderGraph/VoxelizationTransforms.hlsl new file mode 100644 index 00000000000..44ad1219d86 --- /dev/null +++ b/Packages/com.unity.render-pipelines.high-definition/Editor/Material/FogVolume/ShaderGraph/VoxelizationTransforms.hlsl @@ -0,0 +1,36 @@ +#pragma once + +#include "Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/VolumetricLighting/HDRenderPipeline.VolumetricLighting.cs.hlsl" + +// Overrides the transform functions that would use object matrices in the fog as they are not available due to the indirect draw +// Instead we can re-build the object matrix from the OBB of the fog object + +float4x4 BuildWorldToObjectMatrixFromLocalFogOBB() +{ + float3x3 rotation = float3x3( + _VolumetricMaterialObbRight.xyz, + _VolumetricMaterialObbUp.xyz, + cross(_VolumetricMaterialObbRight.xyz, _VolumetricMaterialObbUp.xyz) + ); + + // inverse rotation + rotation = transpose(rotation); + + // inverse translation + float3 inverseTranslation = -(mul(_VolumetricMaterialObbCenter.xyz, rotation)); + + // Build matrix + float4x4 objectMatrix = 0; + objectMatrix._m00_m10_m20 = rotation[0]; + objectMatrix._m01_m11_m21 = rotation[1]; + objectMatrix._m02_m12_m22 = rotation[2]; + objectMatrix._m03_m13_m23_m33 = float4(inverseTranslation, 1); + + return objectMatrix; +} + +float3 TransformWorldToObjectFog(float3 positionRWS) +{ + float3 posWS = GetAbsolutePositionWS(positionRWS); + return mul(BuildWorldToObjectMatrixFromLocalFogOBB(), float4(posWS, 1)).xyz; +} diff --git a/Packages/com.unity.render-pipelines.high-definition/Editor/Material/FogVolume/ShaderGraph/VoxelizationTransforms.hlsl.meta b/Packages/com.unity.render-pipelines.high-definition/Editor/Material/FogVolume/ShaderGraph/VoxelizationTransforms.hlsl.meta new file mode 100644 index 00000000000..33154246ccb --- /dev/null +++ b/Packages/com.unity.render-pipelines.high-definition/Editor/Material/FogVolume/ShaderGraph/VoxelizationTransforms.hlsl.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 623770b432f006f49af1b65f726bf86f +ShaderIncludeImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.high-definition/Editor/Material/ShaderGraph/Templates/Pixel.template.hlsl b/Packages/com.unity.render-pipelines.high-definition/Editor/Material/ShaderGraph/Templates/Pixel.template.hlsl index 070670340ec..11bb670afc7 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Editor/Material/ShaderGraph/Templates/Pixel.template.hlsl +++ b/Packages/com.unity.render-pipelines.high-definition/Editor/Material/ShaderGraph/Templates/Pixel.template.hlsl @@ -25,12 +25,20 @@ SurfaceDescriptionInputs FragInputsToSurfaceDescriptionInputs(FragInputs input, $SurfaceDescriptionInputs.TangentSpaceViewDirection: float3x3 tangentSpaceTransform = float3x3(output.WorldSpaceTangent,output.WorldSpaceBiTangent,output.WorldSpaceNormal); $SurfaceDescriptionInputs.TangentSpaceViewDirection: output.TangentSpaceViewDirection = TransformWorldToTangent(output.WorldSpaceViewDirection, tangentSpaceTransform); $SurfaceDescriptionInputs.WorldSpacePosition: output.WorldSpacePosition = input.positionRWS; +#if SHADERPASS != SHADERPASS_FOG_VOLUME_VOXELIZATION $SurfaceDescriptionInputs.ObjectSpacePosition: output.ObjectSpacePosition = TransformWorldToObject(input.positionRWS); +#else + $SurfaceDescriptionInputs.ObjectSpacePosition: output.ObjectSpacePosition = TransformWorldToObjectFog(input.positionRWS); +#endif $SurfaceDescriptionInputs.ViewSpacePosition: output.ViewSpacePosition = TransformWorldToView(input.positionRWS); $SurfaceDescriptionInputs.TangentSpacePosition: output.TangentSpacePosition = float3(0.0f, 0.0f, 0.0f); $SurfaceDescriptionInputs.AbsoluteWorldSpacePosition: output.AbsoluteWorldSpacePosition = GetAbsolutePositionWS(input.positionRWS); $SurfaceDescriptionInputs.WorldSpacePositionPredisplacement: output.WorldSpacePositionPredisplacement = input.positionPredisplacementRWS; +#if SHADERPASS != SHADERPASS_FOG_VOLUME_VOXELIZATION $SurfaceDescriptionInputs.ObjectSpacePositionPredisplacement: output.ObjectSpacePositionPredisplacement = TransformWorldToObject(input.positionPredisplacementRWS); +#else + $SurfaceDescriptionInputs.ObjectSpacePositionPredisplacement: output.ObjectSpacePositionPredisplacement = TransformWorldToObjectFog(input.positionPredisplacementRWS); +#endif $SurfaceDescriptionInputs.ViewSpacePositionPredisplacement: output.ViewSpacePositionPredisplacement = TransformWorldToView(input.positionPredisplacementRWS); $SurfaceDescriptionInputs.TangentSpacePositionPredisplacement: output.TangentSpacePositionPredisplacement = float3(0.0f, 0.0f, 0.0f); $SurfaceDescriptionInputs.AbsoluteWorldSpacePositionPredisplacement: output.AbsoluteWorldSpacePositionPredisplacement = GetAbsolutePositionWS(input.positionPredisplacementRWS); diff --git a/Packages/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/Camera/HDCameraUI.Rendering.Drawers.cs b/Packages/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/Camera/HDCameraUI.Rendering.Drawers.cs index f81d4b7dcd0..2c90c94b564 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/Camera/HDCameraUI.Rendering.Drawers.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/Camera/HDCameraUI.Rendering.Drawers.cs @@ -148,10 +148,6 @@ static void Drawer_Draw_DLSS_Section(SerializedHDCamera p, Editor owner) { EditorGUI.indentLevel++; EditorGUILayout.PropertyField(p.deepLearningSuperSamplingUseOptimalSettings, HDRenderPipelineUI.Styles.DLSSUseOptimalSettingsContent); - using (new EditorGUI.DisabledScope(p.deepLearningSuperSamplingUseOptimalSettings.boolValue)) - { - EditorGUILayout.PropertyField(p.deepLearningSuperSamplingSharpening, HDRenderPipelineUI.Styles.DLSSSharpnessContent); - } EditorGUI.indentLevel--; } } diff --git a/Packages/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/CustomPass/CustomPassDrawer.cs b/Packages/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/CustomPass/CustomPassDrawer.cs index 0a10648e761..551a2507a7c 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/CustomPass/CustomPassDrawer.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/CustomPass/CustomPassDrawer.cs @@ -172,6 +172,16 @@ void DoCommonSettingsGUI(ref Rect rect) { EditorGUI.PropertyField(rect, m_TargetDepthBuffer, Styles.targetDepthBuffer); rect.y += Styles.defaultLineSpace; + + CustomPass.TargetBuffer requestedDepth = m_TargetDepthBuffer.GetEnumValue(); + if (m_CustomPass.getConstrainedDepthBuffer() != requestedDepth) + { + Rect helpBoxRect = rect; + float helpBoxHeight = EditorGUIUtility.singleLineHeight * 2; + helpBoxRect.height = helpBoxHeight; + EditorGUI.HelpBox(helpBoxRect, "Camera depth isn't supported when dynamic scaling is on. We will automatically fall back to not doing depth-testing for this pass.", MessageType.Warning); + rect.y += helpBoxHeight; + } } if ((commonPassUIFlags & PassUIFlag.ClearFlags) != 0) @@ -264,6 +274,13 @@ internal float GetPropertyHeight(SerializedProperty property, GUIContent label) } height += Styles.defaultLineSpace * lines; + + // Add height for the help box if it will be shown + if ((commonPassUIFlags & PassUIFlag.TargetDepthBuffer) != 0 && + m_CustomPass.getConstrainedDepthBuffer() != m_TargetDepthBuffer.GetEnumValue()) + { + height += EditorGUIUtility.singleLineHeight * 2; // Help box height + } } return height + GetPassHeight(property); 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 025b0f60e94..409355f1e14 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 @@ -277,7 +277,6 @@ public class Styles 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 DLSSSharpnessContent = EditorGUIUtility.TrTextContent("DLSS Sharpness", "NVIDIA Deep Learning Super Sampling pixel sharpness of upsampler. Controls how the DLSS upsampler will render edges on the image. More sharpness usually means more contrast and clearer image but can increase flickering and fireflies. This setting is ignored if optimal settings are used."); 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)."); 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 4fbbdad54fc..2fe854b4ab6 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 @@ -686,10 +686,6 @@ static void Drawer_SectionDynamicResolutionSettings(SerializedHDRenderPipelineAs serialized.renderPipelineSettings.dynamicResolutionSettings.DLSSInjectionPoint.intValue = injectionPointVal; EditorGUILayout.PropertyField(serialized.renderPipelineSettings.dynamicResolutionSettings.DLSSUseOptimalSettings, Styles.DLSSUseOptimalSettingsContent); - using (new EditorGUI.DisabledScope(serialized.renderPipelineSettings.dynamicResolutionSettings.DLSSUseOptimalSettings.boolValue)) - { - EditorGUILayout.PropertyField(serialized.renderPipelineSettings.dynamicResolutionSettings.DLSSSharpness, Styles.DLSSSharpnessContent); - } --EditorGUI.indentLevel; } 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 049bc962cbf..57d787cacf9 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 @@ -1482,6 +1482,7 @@ class DebugViewMaterialData public bool decalsEnabled; public BufferHandle perVoxelOffset; + public BufferHandle lightList; public DBufferOutput dbuffer; public GBufferOutput gbuffer; public TextureHandle depthBuffer; @@ -1564,6 +1565,8 @@ TextureHandle RenderDebugViewMaterial(RenderGraph renderGraph, CullingResults cu passData.decalsEnabled = (hdCamera.frameSettings.IsEnabled(FrameSettingsField.Decals)) && (DecalSystem.m_DecalDatasCount > 0); passData.perVoxelOffset = builder.ReadBuffer(lightLists.perVoxelOffset); + + passData.lightList = builder.ReadBuffer(lightLists.lightList); passData.dbuffer = ReadDBuffer(dbuffer, builder); passData.clearColorTexture = Compositor.CompositionManager.GetClearTextureForStackedCamera(hdCamera); // returns null if is not a stacked camera @@ -1583,6 +1586,9 @@ TextureHandle RenderDebugViewMaterial(RenderGraph renderGraph, CullingResults cu BindDefaultTexturesLightingBuffers(context.defaultResources, context.cmd); + if (data.lightList.IsValid()) + context.cmd.SetGlobalBuffer(HDShaderIDs.g_vLightListTile, data.lightList); + BindDBufferGlobalData(data.dbuffer, context); DrawOpaqueRendererList(context, data.frameSettings, data.opaqueRendererList); 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 0807c02165b..0f0eb31048c 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. diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RaytracingLightLoop.hlsl b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RaytracingLightLoop.hlsl index 3d1f57548c4..b2469ecdd3b 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RaytracingLightLoop.hlsl +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RaytracingLightLoop.hlsl @@ -24,7 +24,8 @@ void LightLoop( float3 V, PositionInputs posInput, PreLightData preLightData, BS { // Init LightLoop output structure ZERO_INITIALIZE(LightLoopOutput, lightLoopOutput); - + ApplyCameraRelativeXR(posInput.positionWS); + LightLoopContext context; context.contactShadow = 1.0; context.shadowContext = InitShadowContext(); 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 ff9c62c31cf..52081bb89a0 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 @@ -52,6 +52,24 @@ internal ProfilingSampler profilingSampler /// public TargetBuffer targetDepthBuffer; + // The actual depth buffer has to follow some constraints, and thus may not be the same result as the target + // depth buffer that the user has requested. Apply these constraints and return a result. + internal TargetBuffer getConstrainedDepthBuffer() + { + TargetBuffer depth = targetDepthBuffer; + if (depth == TargetBuffer.Camera && + HDRenderPipeline.currentAsset.currentPlatformRenderPipelineSettings.dynamicResolutionSettings.enabled && + currentHDCamera.allowDynamicResolution && + injectionPoint == CustomPassInjectionPoint.AfterPostProcess) + { + // This custom pass is injected after postprocessing, and Dynamic Resolution Scaling is enabled, which + // means an upscaler is active. In this case, the camera color buffer is the full display resolution, + // but the camera depth buffer is a lower, pre-upscale resolution. So we cannot do depth testing here. + depth = TargetBuffer.None; + } + return depth; + } + /// /// What clear to apply when the color and depth buffer are bound /// @@ -314,7 +332,7 @@ virtual internal void ExecuteInternal(RenderGraph renderGraph, HDCamera hdCamera } // Set back the camera color buffer if we were using a custom buffer as target - if (customPass.targetDepthBuffer != TargetBuffer.Camera) + if (customPass.getConstrainedDepthBuffer() != TargetBuffer.Camera) CoreUtils.SetRenderTarget(ctx.cmd, outputColorBuffer); }); } @@ -351,16 +369,17 @@ bool IsMSAAEnabled(HDCamera hdCamera) // This function must be only called from the ExecuteInternal method (requires current render target and current RT manager) void SetCustomPassTarget(CommandBuffer cmd) { + TargetBuffer depth = getConstrainedDepthBuffer(); // In case all the buffer are set to none, we can't bind anything - if (targetColorBuffer == TargetBuffer.None && targetDepthBuffer == TargetBuffer.None) + if (targetColorBuffer == TargetBuffer.None && depth == TargetBuffer.None) return; RTHandle colorBuffer = (targetColorBuffer == TargetBuffer.Custom) ? currentRenderTarget.customColorBuffer.Value : currentRenderTarget.colorBufferRG; - RTHandle depthBuffer = (targetDepthBuffer == TargetBuffer.Custom) ? currentRenderTarget.customDepthBuffer.Value : currentRenderTarget.depthBufferRG; + RTHandle depthBuffer = (depth == TargetBuffer.Custom) ? currentRenderTarget.customDepthBuffer.Value : currentRenderTarget.depthBufferRG; - if (targetColorBuffer == TargetBuffer.None && targetDepthBuffer != TargetBuffer.None) + if (targetColorBuffer == TargetBuffer.None && depth != TargetBuffer.None) CoreUtils.SetRenderTarget(cmd, depthBuffer, clearFlags); - else if (targetColorBuffer != TargetBuffer.None && targetDepthBuffer == TargetBuffer.None) + else if (targetColorBuffer != TargetBuffer.None && depth == TargetBuffer.None) CoreUtils.SetRenderTarget(cmd, colorBuffer, clearFlags); else { diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/RenderPass/FSR2Pass.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/RenderPass/FSR2Pass.cs index 0f5e04a7740..532946b11e1 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/RenderPass/FSR2Pass.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/RenderPass/FSR2Pass.cs @@ -25,9 +25,15 @@ public static bool SetupFeature() Debug.LogWarning("Cannot instantiate AMD device because the version HDRP expects does not match the backend version."); return false; } + + bool deviceReady = AMD.GraphicsDevice.device != null; + if (!deviceReady) + { + AMD.GraphicsDevice.CreateGraphicsDevice(); + deviceReady = AMD.GraphicsDevice.device != null; + } - AMD.GraphicsDevice device = AMD.GraphicsDevice.CreateGraphicsDevice(); - return device != null; + return deviceReady; #else return false; #endif diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs index 3cd5604cfa9..d1ccc6be1d1 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs @@ -34,5 +34,8 @@ enum ShaderPass Constant, FullScreenDebug, PBRSky, + FogVolumePreview, + FogVolumeVoxelization, + FogVolumeOverdrawDebug, } } diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl index 8ff52388a7d..ee5aadc6da9 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl @@ -35,6 +35,9 @@ #define SHADERPASS_CONSTANT (25) #define SHADERPASS_FULL_SCREEN_DEBUG (26) #define SHADERPASS_PBRSKY (27) +#define SHADERPASS_FOG_VOLUME_PREVIEW (28) +#define SHADERPASS_FOG_VOLUME_VOXELIZATION (29) +#define SHADERPASS_FOG_VOLUME_OVERDRAW_DEBUG (30) #endif 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..43059815526 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 @@ -1236,41 +1236,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) diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Water/Shaders/SampleWaterSurface.hlsl b/Packages/com.unity.render-pipelines.high-definition/Runtime/Water/Shaders/SampleWaterSurface.hlsl index 082ba04846b..bdf54327ea9 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Water/Shaders/SampleWaterSurface.hlsl +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Water/Shaders/SampleWaterSurface.hlsl @@ -302,7 +302,7 @@ void EvaluateDisplacement(float3 positionOS, float3 verticalDisplacements, out f #if defined(SUPPORT_WATER_DEFORMATION) // Apply the deformation data - float4 deformation = EvaluateWaterDeformation(positionAWS + verticalDisplacements); + float4 deformation = EvaluateWaterDeformation(positionAWS); horizontalDisplacement = deformation.yz; verticalDisplacement += deformation.x; lowFrequencyHeight += deformation.x; @@ -317,18 +317,20 @@ struct WaterDisplacementData void EvaluateWaterDisplacement(float3 positionOS, out WaterDisplacementData displacementData) { - float2 simulationHorizontalDisplacement; - float2 deformationHorizontalDisplacement; - float3 verticalDisplacements; - EvaluateSimulationDisplacement(positionOS, simulationHorizontalDisplacement, verticalDisplacements); - + // This is a float 3 because there's one displacement per frequency band. + float3 simulationVerticalDisplacements; + float2 simulationHorizontalDisplacement; + + EvaluateSimulationDisplacement(positionOS, simulationHorizontalDisplacement, simulationVerticalDisplacements); + + // Out parameters to evaluate deformation displacement. + float deformationVerticalDisplacement; + float2 deformationHorizontalDisplacement; float lowFrequencyHeight; - float3 displacement = float3(simulationHorizontalDisplacement.x, 0, simulationHorizontalDisplacement.y); - EvaluateDisplacement(positionOS + displacement, verticalDisplacements, displacement.y, deformationHorizontalDisplacement, lowFrequencyHeight); + EvaluateDisplacement(positionOS, simulationVerticalDisplacements, deformationVerticalDisplacement, deformationHorizontalDisplacement, lowFrequencyHeight); - displacement.xz += deformationHorizontalDisplacement.xy; - - displacementData.displacement = displacement; + // Simulation displacement is not included in the displacement to avoid having water decal effects move with the waves if the distand wind is high. + displacementData.displacement = float3(deformationHorizontalDisplacement.x, deformationVerticalDisplacement, deformationHorizontalDisplacement.y); displacementData.lowFrequencyHeight = lowFrequencyHeight; #if defined(SHADER_STAGE_VERTEX) && !defined(WATER_DISPLACEMENT) diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Water/Shaders/UnderWaterUtilities.hlsl b/Packages/com.unity.render-pipelines.high-definition/Runtime/Water/Shaders/UnderWaterUtilities.hlsl index 4716bd7c0ca..b197d5c0140 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Water/Shaders/UnderWaterUtilities.hlsl +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Water/Shaders/UnderWaterUtilities.hlsl @@ -40,7 +40,7 @@ float GetUnderWaterDistance(uint2 coord) uint xr = unity_StereoEyeIndex * _BufferStride; uint2 boundsX = uint2(0xFFFFFFFF - _WaterLine[0 + xr], _WaterLine[1 + xr]); uint posX = round(dot((float2)coord.xy, rightVector) - _BoundsSS.x); - posX = clamp(posX, boundsX.x, boundsX.y); + posX = clamp(posX, min(boundsX.y, boundsX.x), max(boundsX.x, boundsX.y)); // Decompress water line height float posY = dot((float2)coord.xy, upVector) - _BoundsSS.z; diff --git a/Packages/com.unity.render-pipelines.universal/Editor/2D/Shadows/ShadowCaster2DEditor.cs b/Packages/com.unity.render-pipelines.universal/Editor/2D/Shadows/ShadowCaster2DEditor.cs index 57459f42989..b220620fe8d 100644 --- a/Packages/com.unity.render-pipelines.universal/Editor/2D/Shadows/ShadowCaster2DEditor.cs +++ b/Packages/com.unity.render-pipelines.universal/Editor/2D/Shadows/ShadowCaster2DEditor.cs @@ -131,7 +131,8 @@ public override void OnInspectorGUI() else if (EditorToolManager.IsActiveTool()) ToolManager.RestorePreviousTool(); - EditorGUILayout.PropertyField(m_ShadowShape2DProvider, Styles.shadowShape2DProvider, true); + if(m_ShadowShape2DProvider != null) + EditorGUILayout.PropertyField(m_ShadowShape2DProvider, Styles.shadowShape2DProvider, true); serializedObject.ApplyModifiedProperties(); } diff --git a/Packages/com.unity.render-pipelines.universal/Editor/2D/Shadows/ShadowProvider/ShadowShape2DProvider_ProperyDrawer.cs b/Packages/com.unity.render-pipelines.universal/Editor/2D/Shadows/ShadowProvider/ShadowShape2DProvider_ProperyDrawer.cs index f7744662b62..e6b3fa4d411 100644 --- a/Packages/com.unity.render-pipelines.universal/Editor/2D/Shadows/ShadowProvider/ShadowShape2DProvider_ProperyDrawer.cs +++ b/Packages/com.unity.render-pipelines.universal/Editor/2D/Shadows/ShadowProvider/ShadowShape2DProvider_ProperyDrawer.cs @@ -25,7 +25,13 @@ bool IsChildVisible(Type parentType, SerializedProperty child) void ProcessChildren(SerializedProperty parentProperty, ProcessChild onProcessChild) { + if (parentProperty == null) + return; + var enumerator = parentProperty.GetEnumerator(); + if (enumerator.Current == null) + return; + object parentObj = parentProperty.managedReferenceValue; Type parentType = parentObj.GetType(); diff --git a/Packages/com.unity.render-pipelines.universal/Editor/AssetPostProcessors/MaterialPostprocessor.cs b/Packages/com.unity.render-pipelines.universal/Editor/AssetPostProcessors/MaterialPostprocessor.cs index 7f2e06d4e42..0ba9bca43f2 100644 --- a/Packages/com.unity.render-pipelines.universal/Editor/AssetPostProcessors/MaterialPostprocessor.cs +++ b/Packages/com.unity.render-pipelines.universal/Editor/AssetPostProcessors/MaterialPostprocessor.cs @@ -89,7 +89,7 @@ class MaterialPostprocessor : AssetPostprocessor internal static List s_ImportedAssetThatNeedSaving = new List(); internal static bool s_NeedsSavingAssets = false; - internal static readonly Action[] k_Upgraders = { UpgradeV1, UpgradeV2, UpgradeV3, UpgradeV4, UpgradeV5, UpgradeV6, UpgradeV7, UpgradeV8, UpgradeV9 }; + internal static readonly Action[] k_Upgraders = { UpgradeV1, UpgradeV2, UpgradeV3, UpgradeV4, UpgradeV5, UpgradeV6, UpgradeV7, UpgradeV8, UpgradeV9, UpgradeV10 }; static internal void SaveAssetsToDisk() { @@ -416,7 +416,7 @@ static void UpgradeV8(Material material, ShaderID shaderID) // We want to disable the custom motion vector pass for SpeedTrees which won't have any // vertex animation due to no wind. This is done to prevent performance regression from - // rendering trees with no motion vector output. + // rendering trees with no motion vector output. static void UpgradeV9(Material material, ShaderID shaderID) { if(shaderID != ShaderID.SpeedTree8) @@ -429,6 +429,19 @@ static void UpgradeV9(Material material, ShaderID shaderID) material.SetShaderPassEnabled(MotionVectorRenderPass.k_MotionVectorsLightModeTag, motionVectorPassEnabled); } } + + // Changed the emission-toggle evaluation. Need to make sure materials which enabled emission previously, still + // enable it after this fix. + static void UpgradeV10(Material material, ShaderID shaderID) + { + if ((material.globalIlluminationFlags & MaterialGlobalIlluminationFlags.EmissiveIsBlack) == 0) + { + material.globalIlluminationFlags |= MaterialGlobalIlluminationFlags.BakedEmissive; + if (material.HasProperty(Property.EmissionColor)) + MaterialEditor.FixupEmissiveFlag(material); + CoreUtils.SetKeyword(material, ShaderKeywordStrings._EMISSION, (material.globalIlluminationFlags & MaterialGlobalIlluminationFlags.AnyEmissive) != 0); + } + } } // Upgraders v1 diff --git a/Packages/com.unity.render-pipelines.universal/Editor/SceneTemplates/Standard/Materials/Black.mat b/Packages/com.unity.render-pipelines.universal/Editor/SceneTemplates/Standard/Materials/Black.mat index 2d15203f0f2..b9b9f0afa7c 100644 --- a/Packages/com.unity.render-pipelines.universal/Editor/SceneTemplates/Standard/Materials/Black.mat +++ b/Packages/com.unity.render-pipelines.universal/Editor/SceneTemplates/Standard/Materials/Black.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/Packages/com.unity.render-pipelines.universal/Editor/SceneTemplates/Standard/Materials/Gold.mat b/Packages/com.unity.render-pipelines.universal/Editor/SceneTemplates/Standard/Materials/Gold.mat index d3f8241a25b..c018ea6e9e7 100644 --- a/Packages/com.unity.render-pipelines.universal/Editor/SceneTemplates/Standard/Materials/Gold.mat +++ b/Packages/com.unity.render-pipelines.universal/Editor/SceneTemplates/Standard/Materials/Gold.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/Packages/com.unity.render-pipelines.universal/Editor/SceneTemplates/Standard/Materials/Ground.mat b/Packages/com.unity.render-pipelines.universal/Editor/SceneTemplates/Standard/Materials/Ground.mat index 277b2bf086b..3fc07fb997b 100644 --- a/Packages/com.unity.render-pipelines.universal/Editor/SceneTemplates/Standard/Materials/Ground.mat +++ b/Packages/com.unity.render-pipelines.universal/Editor/SceneTemplates/Standard/Materials/Ground.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/Packages/com.unity.render-pipelines.universal/Editor/SceneTemplates/Standard/Materials/White.mat b/Packages/com.unity.render-pipelines.universal/Editor/SceneTemplates/Standard/Materials/White.mat index fbeb823ecc2..fb2ecdea273 100644 --- a/Packages/com.unity.render-pipelines.universal/Editor/SceneTemplates/Standard/Materials/White.mat +++ b/Packages/com.unity.render-pipelines.universal/Editor/SceneTemplates/Standard/Materials/White.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/Packages/com.unity.render-pipelines.universal/Editor/ShaderGUI/BaseShaderGUI.cs b/Packages/com.unity.render-pipelines.universal/Editor/ShaderGUI/BaseShaderGUI.cs index f6d58ea6fba..5330758fd7c 100644 --- a/Packages/com.unity.render-pipelines.universal/Editor/ShaderGUI/BaseShaderGUI.cs +++ b/Packages/com.unity.render-pipelines.universal/Editor/ShaderGUI/BaseShaderGUI.cs @@ -943,8 +943,7 @@ public static void SetMaterialKeywords(Material material, Action shadi if (material.HasProperty(Property.EmissionColor)) MaterialEditor.FixupEmissiveFlag(material); - bool shouldEmissionBeEnabled = - (material.globalIlluminationFlags & MaterialGlobalIlluminationFlags.EmissiveIsBlack) == 0; + bool shouldEmissionBeEnabled = (material.globalIlluminationFlags & MaterialGlobalIlluminationFlags.AnyEmissive) != 0; // Not sure what this is used for, I don't see this property declared by any Unity shader in our repo... // I'm guessing it is some kind of legacy material upgrade support thing? Or maybe just dead code now... 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/UniversalUnlitSubTarget.cs b/Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Targets/UniversalUnlitSubTarget.cs index 651e7b7aceb..6490ce1f222 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 @@ -390,8 +390,11 @@ static class UnlitKeywords public static readonly KeywordCollection GBuffer = new KeywordCollection { - { CoreKeywordDescriptors.DBuffer }, - { CoreKeywordDescriptors.ScreenSpaceAmbientOcclusion }, + CoreKeywordDescriptors.DBuffer, + CoreKeywordDescriptors.ScreenSpaceAmbientOcclusion, + CoreKeywordDescriptors.RenderPassEnabled, + CoreKeywordDescriptors.GBufferNormalsOct, + CoreKeywordDescriptors.ShadowsShadowmask }; } #endregion @@ -421,6 +424,7 @@ static class UnlitIncludes { // Pre-graph { CoreIncludes.DOTSPregraph }, + { CoreIncludes.WriteRenderLayersPregraph }, { CoreIncludes.CorePregraph }, { CoreIncludes.ShaderGraphPregraph }, { CoreIncludes.DBufferPregraph }, diff --git a/Packages/com.unity.render-pipelines.universal/Editor/UniversalRenderPipelineMaterialUpgrader.cs b/Packages/com.unity.render-pipelines.universal/Editor/UniversalRenderPipelineMaterialUpgrader.cs index 15f93c2d219..287c1658e2e 100644 --- a/Packages/com.unity.render-pipelines.universal/Editor/UniversalRenderPipelineMaterialUpgrader.cs +++ b/Packages/com.unity.render-pipelines.universal/Editor/UniversalRenderPipelineMaterialUpgrader.cs @@ -598,7 +598,7 @@ internal static void UpdateMaterialKeywords(Material material) // or is enabled and may be modified at runtime. This state depends on the values of the current flag and emissive color. // The fixup routine makes sure that the material is in the correct state if/when changes are made to the mode or color. MaterialEditor.FixupEmissiveFlag(material); - bool shouldEmissionBeEnabled = (material.globalIlluminationFlags & MaterialGlobalIlluminationFlags.EmissiveIsBlack) == 0; + bool shouldEmissionBeEnabled = (material.globalIlluminationFlags & MaterialGlobalIlluminationFlags.AnyEmissive) != 0; CoreUtils.SetKeyword(material, "_EMISSION", shouldEmissionBeEnabled); UniversalRenderPipelineMaterialUpgrader.DisableKeywords(material); } 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 f94e4451e46..e1d36dc026a 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/2D/Light2D.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/2D/Light2D.cs @@ -3,6 +3,7 @@ using UnityEngine.Scripting.APIUpdating; using UnityEngine.U2D; using UnityEngine.Rendering.RenderGraphModule; +using System.Collections.Generic; #if UNITY_EDITOR using System.Linq; #endif @@ -180,7 +181,6 @@ private enum ComponentVersions // We use Blue Channel of LightMesh's vertex color to indicate Slot Index. int m_BatchSlotIndex = 0; internal int batchSlotIndex { get { return m_BatchSlotIndex; } set { m_BatchSlotIndex = value; } } - internal int[] affectedSortingLayers => m_ApplyToSortingLayers; private int lightCookieSpriteInstanceID => lightCookieSprite?.GetInstanceID() ?? 0; @@ -338,6 +338,96 @@ public LightType lightType /// public bool renderVolumetricShadows => volumetricShadowsEnabled && shadowVolumeIntensity > 0; + /// + /// Gets or sets the target sorting layers for the light. Contains an array of sorting layer IDs. + /// + public int[] targetSortingLayers + { + get => m_ApplyToSortingLayers; + set + { + var layers = new List(); + foreach (var layerID in value) + { + if (SortingLayer.IsValid(layerID)) + layers.Add(layerID); + } + m_ApplyToSortingLayers = layers.ToArray(); + } + } + + bool IsValidLayer(string name) + { + // Have this check as SortingLayer.NameToID returns 0 (default layer) if layer is not found + foreach (var layer in Light2DManager.GetCachedSortingLayer()) + { + if (layer.name == name) + return true; + } + + return false; + } + + /// + /// Adds a target sorting layer to the light. + /// + /// The sorting layer name to be added. + /// Returns true if the sorting layer is added. Returns false if the layer name is invalid or has already been added. + public bool AddTargetSortingLayer(string layerName) + { + var layers = new List(m_ApplyToSortingLayers); + var id = SortingLayer.NameToID(layerName); + + // Invalid or duplicate layerID + if (!IsValidLayer(layerName) || layers.Contains(id)) + return false; + + layers.Add(id); + m_ApplyToSortingLayers = layers.ToArray(); + + return true; + } + + /// + /// Adds a target sorting layer to the light. + /// + /// The sorting layer ID to be added. + /// Returns true if the sorting layer is added. Returns false if the layer ID is invalid or has already been added. + public bool AddTargetSortingLayer(int layerID) + { + return AddTargetSortingLayer(SortingLayer.IDToName(layerID)); + } + + /// + /// Removes a target sorting layer from the light. + /// + /// The sorting layer name to be removed. + /// Returns true if the sorting layer is removed. Returns false if the layer name is invalid or doesn't exist. + public bool RemoveTargetSortingLayer(string layerName) + { + var layers = new List(m_ApplyToSortingLayers); + var id = SortingLayer.NameToID(layerName); + + // Invalid or layerID does not exist + if (!IsValidLayer(layerName) || !layers.Contains(id)) + return false; + + layers.Remove(id); + m_ApplyToSortingLayers = layers.ToArray(); + + return true; + } + + /// + /// Removes a target sorting layer from the light. + /// + /// The sorting layer ID to be removed. + /// Returns true if the sorting layer is removed. Returns false if the layer ID is invalid or doesn't exist. + public bool RemoveTargetSortingLayer(int layerID) + { + return RemoveTargetSortingLayer(SortingLayer.IDToName(layerID)); + } + internal void MarkForUpdate() { forceUpdate = true; diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/2D/Light2DManager.cs b/Packages/com.unity.render-pipelines.universal/Runtime/2D/Light2DManager.cs index 1fe354baf54..44d120fcbd7 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/2D/Light2DManager.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/2D/Light2DManager.cs @@ -42,7 +42,7 @@ public static void ErrorIfDuplicateGlobalLight(Light2D light) if (light.lightType != Light2D.LightType.Global) return; - foreach (var sortingLayer in light.affectedSortingLayers) + foreach (var sortingLayer in light.targetSortingLayers) { // should this really trigger at runtime? if (ContainsDuplicateGlobalLight(sortingLayer, light.blendStyleIndex)) 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 3f065db0c4b..9c1be2aecda 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/2D/Renderer2D.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/2D/Renderer2D.cs @@ -114,6 +114,15 @@ public Renderer2D(Renderer2DData data) : base(data) LensFlareCommonSRP.Initialize(); Light2DManager.Initialize(); + + PlatformAutoDetect.Initialize(); + +#if ENABLE_VR && ENABLE_XR_MODULE + if (GraphicsSettings.TryGetRenderPipelineSettings(out var xrResources)) + { + XRSystem.Initialize(XRPassUniversal.Create, xrResources.xrOcclusionMeshPS, xrResources.xrMirrorViewPS); + } +#endif } protected override void Dispose(bool disposing) @@ -130,6 +139,9 @@ protected override void Dispose(bool disposing) m_DrawOffscreenUIPass?.Dispose(); m_DrawOverlayUIPass?.Dispose(); Light2DManager.Dispose(); +#if ENABLE_VR && ENABLE_XR_MODULE + XRSystem.Dispose(); +#endif CoreUtils.Destroy(m_BlitMaterial); CoreUtils.Destroy(m_BlitHDRMaterial); @@ -405,6 +417,7 @@ public override void Setup(ScriptableRenderContext context, ref RenderingData re bool pixelPerfectCameraEnabled = ppc != null && ppc.enabled; bool hasCaptureActions = cameraData.captureActions != null && lastCameraInStack; bool resolvePostProcessingToCameraTarget = lastCameraInStack && !hasCaptureActions && !hasPassesAfterPostProcessing && !requireFinalPostProcessPass && !pixelPerfectCameraEnabled; + bool doSRGBEncoding = resolvePostProcessingToCameraTarget && needsColorEncoding; if (hasPostProcess) { @@ -419,7 +432,7 @@ public override void Setup(ScriptableRenderContext context, ref RenderingData re colorGradingLutHandle, null, requireFinalPostProcessPass, - afterPostProcessColorHandle.nameID == k_CameraTarget.nameID && needsColorEncoding); + doSRGBEncoding); EnqueuePass(postProcessPass); } @@ -533,14 +546,9 @@ internal static bool IsGLESDevice() return SystemInfo.graphicsDeviceType == GraphicsDeviceType.OpenGLES3; } - internal static bool IsGLDevice() - { - return IsGLESDevice() || SystemInfo.graphicsDeviceType == GraphicsDeviceType.OpenGLCore; - } - internal static bool supportsMRT { - get => !IsGLDevice(); + get => !IsGLESDevice(); } internal override bool supportsNativeRenderPassRendergraphCompiler => true; 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 06bbea1f30e..abe75b7a574 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 @@ -231,7 +231,7 @@ public void Render(RenderGraph graph, ContextContainer frameData, Renderer2DData return; // OpenGL has a bug with MRTs - support single RTs by using low level pass - if (!isVolumetric && Renderer2D.IsGLDevice()) + if (!isVolumetric && !Renderer2D.supportsMRT) { using (var builder = graph.AddUnsafePass( k_LightLowLevelPass, out var passData, m_ProfilingSamplerLowLevel)) { 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..9955ebd94bc 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 @@ -52,6 +52,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 7b5c3817a99..6c92f097b81 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 @@ -152,11 +152,16 @@ 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); - builder.AllowPassCulling(false); + + if (rendererData.useDepthStencilBuffer) + builder.SetRenderAttachmentDepth(commonResourceData.activeDepthTexture); + builder.AllowGlobalStateModification(true); - builder.UseAllGlobalTextures(true); // Post set global light textures for next renderer pass var nextBatch = batchIndex + 1; 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 30dc9cd5d27..d94f7a064c2 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 @@ -117,22 +117,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.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.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.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 @@ -337,6 +364,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"); @@ -377,6 +412,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) @@ -437,8 +488,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_PostProcessPasses.isCreated && cameraData.postProcessingRequiresDepthTexture; - bool requiresDepthCopyPass = (cameraHasPostProcessingWithDepth || renderPassInputs.requiresDepthTexture) && m_CreateDepthTexture; + bool requiresDepthCopyPass = (cameraHasPostProcessingWithDepth || requiresDepthTexture) && m_CreateDepthTexture; return requiresDepthCopyPass; } @@ -477,11 +529,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 @@ -491,11 +546,16 @@ internal override void OnRecordRenderGraph(RenderGraph renderGraph, ScriptableRe OnBeforeRendering(renderGraph); RecordCustomRenderGraphPasses(renderGraph, RenderPassEvent2D.BeforeRendering); + + BeginRenderGraphXRRendering(renderGraph); + OnMainRendering(renderGraph); RecordCustomRenderGraphPasses(renderGraph, RenderPassEvent2D.BeforeRenderingPostProcessing); + OnAfterRendering(renderGraph); + EndRenderGraphXRRendering(renderGraph); } public override void OnEndRenderGraphFrame() @@ -650,20 +710,37 @@ private void OnAfterRendering(RenderGraph renderGraph) bool hasPassesAfterPostProcessing = activeRenderPassQueue.Find(x => x.renderPassEvent == RenderPassEvent.AfterRenderingPostProcessing) != null; bool needsColorEncoding = DebugHandler == null || !DebugHandler.HDRDebugViewIsActive(cameraData.resolveFinalTarget); + // Don't resolve during post processing if there are passes after or pixel perfect camera is used + bool pixelPerfectCameraEnabled = ppc != null && ppc.enabled; + bool hasCaptureActions = cameraData.captureActions != null && cameraData.resolveFinalTarget; + bool resolvePostProcessingToCameraTarget = cameraData.resolveFinalTarget && !hasCaptureActions && !hasPassesAfterPostProcessing && !applyFinalPostProcessing && !pixelPerfectCameraEnabled; + bool doSRGBEncoding = resolvePostProcessingToCameraTarget && needsColorEncoding; + if (applyPostProcessing) { TextureHandle activeColor = commonResourceData.activeColorTexture; + bool isTargetBackbuffer = resolvePostProcessingToCameraTarget; + // if the postprocessing pass is trying to read and write to the same CameraColor target, we need to swap so it writes to a different target, // since reading a pass attachment is not possible. Normally this would be possible using temporary RenderGraph managed textures. // The reason why in this case we need to use "external" RTHandles is to preserve the results for camera stacking. // TODO RENDERGRAPH: Once all cameras will run in a single RenderGraph we can just use temporary RenderGraph textures as intermediate buffer. - ImportResourceParams importColorParams = new ImportResourceParams(); - importColorParams.clearOnFirstUse = true; - importColorParams.clearColor = Color.black; - importColorParams.discardOnLastUse = cameraData.resolveFinalTarget; // check if last camera in the stack + if (!isTargetBackbuffer) + { + ImportResourceParams importColorParams = new ImportResourceParams(); + importColorParams.clearOnFirstUse = true; + importColorParams.clearColor = Color.black; + importColorParams.discardOnLastUse = cameraData.resolveFinalTarget; // check if last camera in the stack + + commonResourceData.cameraColor = renderGraph.ImportTexture(nextRenderGraphCameraColorHandle, importColorParams); + } + + // Desired target for post-processing pass. + var target = isTargetBackbuffer ? commonResourceData.backBufferColor : commonResourceData.cameraColor; - commonResourceData.cameraColor = renderGraph.ImportTexture(nextRenderGraphCameraColorHandle, importColorParams); + if (resolveToDebugScreen && isTargetBackbuffer) + target = commonResourceData.debugScreenColor; postProcessPass.RenderPostProcessingRenderGraph( renderGraph, @@ -671,15 +748,22 @@ private void OnAfterRendering(RenderGraph renderGraph) activeColor, commonResourceData.internalColorLut, commonResourceData.overlayUITexture, - commonResourceData.activeColorTexture, + target, applyFinalPostProcessing, resolveToDebugScreen, - needsColorEncoding); + doSRGBEncoding); + + if (isTargetBackbuffer) + { + commonResourceData.activeColorID = ActiveID.BackBuffer; + commonResourceData.activeDepthID = ActiveID.BackBuffer; + } } + RecordCustomRenderGraphPasses(renderGraph, RenderPassEvent2D.AfterRenderingPostProcessing); + var finalColorHandle = commonResourceData.activeColorTexture; - RecordCustomRenderGraphPasses(renderGraph, RenderPassEvent2D.AfterRenderingPostProcessing); // Do PixelPerfect upscaling when using the Stretch Fill option if (requirePixelPerfectUpscale) { @@ -691,20 +775,32 @@ private void OnAfterRendering(RenderGraph renderGraph) var finalBlitTarget = resolveToDebugScreen ? commonResourceData.debugScreenColor : commonResourceData.backBufferColor; var finalDepthHandle = resolveToDebugScreen ? commonResourceData.debugScreenDepth : commonResourceData.backBufferDepth; - if (createColorTexture) + if (applyFinalPostProcessing) { - if (applyFinalPostProcessing) - postProcessPass.RenderFinalPassRenderGraph(renderGraph, frameData, in finalColorHandle, commonResourceData.overlayUITexture, in finalBlitTarget, needsColorEncoding); - else if (cameraData.resolveFinalTarget) - m_FinalBlitPass.Render(renderGraph, frameData, cameraData, finalColorHandle, finalBlitTarget, commonResourceData.overlayUITexture); + postProcessPass.RenderFinalPassRenderGraph(renderGraph, frameData, in finalColorHandle, commonResourceData.overlayUITexture, in finalBlitTarget, needsColorEncoding); finalColorHandle = finalBlitTarget; - if (cameraData.resolveFinalTarget) - { - commonResourceData.activeColorID = ActiveID.BackBuffer; - commonResourceData.activeDepthID = ActiveID.BackBuffer; - } + commonResourceData.activeColorID = ActiveID.BackBuffer; + commonResourceData.activeDepthID = ActiveID.BackBuffer; + } + + // If post-processing then we already resolved to camera target while doing post. + // Also only do final blit if camera is not rendering to RT. + bool cameraTargetResolved = + // final PP always blit to camera target + applyFinalPostProcessing || + // no final PP but we have PP stack. In that case it blit unless there are render pass after PP or pixel perfect camera is used + (applyPostProcessing && !hasPassesAfterPostProcessing && !hasCaptureActions && !pixelPerfectCameraEnabled); + + if (!commonResourceData.isActiveTargetBackBuffer && cameraData.resolveFinalTarget && !cameraTargetResolved) + { + m_FinalBlitPass.Render(renderGraph, frameData, cameraData, finalColorHandle, finalBlitTarget, commonResourceData.overlayUITexture); + + finalColorHandle = finalBlitTarget; + + commonResourceData.activeColorID = ActiveID.BackBuffer; + commonResourceData.activeDepthID = ActiveID.BackBuffer; } // We can explicitly render the overlay UI from URP when HDR output is not enabled. @@ -714,9 +810,7 @@ private void OnAfterRendering(RenderGraph renderGraph) if (shouldRenderUI && !outputToHDR) 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) 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 5196e1a5698..a7e48f68589 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 @@ -14,10 +14,14 @@ namespace UnityEngine.Rendering.Universal { // TODO: Culling of shadow casters, rotate color channels for shadow casting, check get material functions. - - internal static class ShadowRendering { + internal enum ShadowTestType + { + Always, + Unshadow, + } + private static readonly int k_LightPosID = Shader.PropertyToID("_LightPos"); private static readonly int k_ShadowRadiusID = Shader.PropertyToID("_ShadowRadius"); private static readonly int k_ShadowColorMaskID = Shader.PropertyToID("_ShadowColorMask"); @@ -351,11 +355,11 @@ internal static void SetGlobalShadowProp(IRasterCommandBuffer cmdBuffer) static bool ShadowCasterIsVisible(ShadowCaster2D shadowCaster) { - #if UNITY_EDITOR - return SceneVisibilityManager.instance == null ? true : !SceneVisibilityManager.instance.IsHidden(shadowCaster.gameObject); - #else +#if UNITY_EDITOR + return SceneVisibilityManager.instance == null ? true : !SceneVisibilityManager.instance.IsHidden(shadowCaster.gameObject); +#else return true; - #endif +#endif } static Renderer GetRendererFromCaster(ShadowCaster2D shadowCaster, Light2D light, int layerToRender) @@ -373,21 +377,23 @@ static Renderer GetRendererFromCaster(ShadowCaster2D shadowCaster, Light2D light return renderer; } - private static void RenderProjectedShadows(UnsafeCommandBuffer cmdBuffer, int layerToRender, Light2D light, List shadowCasters, Material projectedShadowsMaterial, int pass) + private static void RenderProjectedShadows(UnsafeCommandBuffer cmdBuffer, int layerToRender, Light2D light, List shadowCasters, Material projectedShadowsMaterial, int pass, ShadowTestType shadowTestType) { // Draw the projected shadows for the shadow caster group. Writing into the group stencil buffer bit for (var i = 0; i < shadowCasters.Count; i++) { var shadowCaster = shadowCasters[i]; - - if (ShadowCasterIsVisible(shadowCaster) && shadowCaster.castsShadows && shadowCaster.IsLit(light)) + if (ShadowTest(shadowTestType, shadowCaster)) { - if (shadowCaster != null && projectedShadowsMaterial != null && shadowCaster.IsShadowedLayer(layerToRender)) + if (ShadowCasterIsVisible(shadowCaster) && shadowCaster.castsShadows && shadowCaster.IsLit(light)) { - if (shadowCaster.shadowCastingSource != ShadowCaster2D.ShadowCastingSources.None && shadowCaster.mesh != null) + if (shadowCaster != null && projectedShadowsMaterial != null && shadowCaster.IsShadowedLayer(layerToRender)) { - SetShadowProjectionGlobals(cmdBuffer, shadowCaster, light); - cmdBuffer.DrawMesh(shadowCaster.mesh, shadowCaster.transform.localToWorldMatrix, projectedShadowsMaterial, 0, pass); + if (shadowCaster.shadowCastingSource != ShadowCaster2D.ShadowCastingSources.None && shadowCaster.mesh != null) + { + SetShadowProjectionGlobals(cmdBuffer, shadowCaster, light); + cmdBuffer.DrawMesh(shadowCaster.mesh, shadowCaster.transform.localToWorldMatrix, projectedShadowsMaterial, 0, pass); + } } } } @@ -398,101 +404,82 @@ static int GetRendererSubmeshes(Renderer renderer, ShadowCaster2D shadowCaster2D { int numberOfSubmeshes; - #if USING_SPRITESHAPE - if (renderer is SpriteShapeRenderer) - { - SpriteShapeRenderer spriteShapeRenderer = (SpriteShapeRenderer)renderer; - numberOfSubmeshes = spriteShapeRenderer.GetSplineMeshCount(); - } - else - { - numberOfSubmeshes = shadowCaster2D.spriteMaterialCount; - } - #else +#if USING_SPRITESHAPE + if (renderer is SpriteShapeRenderer) + { + SpriteShapeRenderer spriteShapeRenderer = (SpriteShapeRenderer)renderer; + numberOfSubmeshes = spriteShapeRenderer.GetSplineMeshCount(); + } + else + { + numberOfSubmeshes = shadowCaster2D.spriteMaterialCount; + } +#else numberOfSubmeshes = shadowCaster2D.spriteMaterialCount; - #endif +#endif return numberOfSubmeshes; } - private static void RenderSelfShadowOption(UnsafeCommandBuffer cmdBuffer, int layerToRender, Light2D light, List shadowCasters, Material projectedUnshadowMaterial, Material spriteShadowMaterial, Material spriteUnshadowMaterial, Material geometryShadowMaterial, Material geometryUnshadowMaterial) + private static void RenderSpriteShadow(UnsafeCommandBuffer cmdBuffer, int layerToRender, Light2D light, List shadowCasters, Material spriteShadowMaterial, Material spriteUnshadowMaterial, Material geometryShadowMaterial, Material geometryUnshadowMaterial, int pass, ShadowTestType shadowTestType) { - // Draw the sprites, either as self shadowing or unshadowing + //Draw the sprites, either as self shadowing or unshadowing for (var i = 0; i < shadowCasters.Count; i++) { ShadowCaster2D shadowCaster = shadowCasters[i]; - if (!shadowCaster.IsLit(light)) - continue; + if (ShadowTest(shadowTestType, shadowCaster)) + { + if (!shadowCaster.IsLit(light)) + continue; - Renderer renderer = GetRendererFromCaster(shadowCaster, light, layerToRender); + Renderer renderer = GetRendererFromCaster(shadowCaster, light, layerToRender); - cmdBuffer.SetGlobalFloat(k_ShadowAlphaCutoffID, shadowCaster.alphaCutoff); + cmdBuffer.SetGlobalFloat(k_ShadowAlphaCutoffID, shadowCaster.alphaCutoff); - if (renderer != null) - { - if (ShadowCasterIsVisible(shadowCaster) && shadowCaster.selfShadows) - { - int numberOfSubmeshes = GetRendererSubmeshes(renderer, shadowCaster); - for (int submeshIndex = 0; submeshIndex < numberOfSubmeshes; submeshIndex++) - cmdBuffer.DrawRenderer(renderer, spriteShadowMaterial, submeshIndex, 0); - } - else + if (renderer != null) { - int numberOfSubmeshes = GetRendererSubmeshes(renderer, shadowCaster); - for (int submeshIndex = 0; submeshIndex < numberOfSubmeshes; submeshIndex++) + if (ShadowCasterIsVisible(shadowCaster) && shadowCaster.selfShadows) { - cmdBuffer.DrawRenderer(renderer, spriteUnshadowMaterial, submeshIndex, 0); - + int numberOfSubmeshes = GetRendererSubmeshes(renderer, shadowCaster); + for (int submeshIndex = 0; submeshIndex < numberOfSubmeshes; submeshIndex++) + cmdBuffer.DrawRenderer(renderer, spriteShadowMaterial, submeshIndex, pass); } - } - } - else - { - if (shadowCaster.mesh != null) - { - if (ShadowCasterIsVisible(shadowCaster) && shadowCaster.selfShadows) - cmdBuffer.DrawMesh(shadowCaster.mesh, shadowCaster.transform.localToWorldMatrix, geometryShadowMaterial, 0, 0); else - cmdBuffer.DrawMesh(shadowCaster.mesh, shadowCaster.transform.localToWorldMatrix, geometryUnshadowMaterial, 0, 0); - } - } - } - - // Draw a masked projected shadow that is inside the sprite to remove the shadow (on different channel) - for (var i = 0; i < shadowCasters.Count; i++) - { - ShadowCaster2D shadowCaster = shadowCasters[i]; - if (ShadowCasterIsVisible(shadowCaster) && shadowCaster.IsLit(light) && shadowCaster.castingOption == ShadowCaster2D.ShadowCastingOptions.CastShadow && shadowCaster.mesh != null) - { - SetShadowProjectionGlobals(cmdBuffer, shadowCaster, light); - cmdBuffer.DrawMesh(shadowCaster.mesh, shadowCaster.transform.localToWorldMatrix, projectedUnshadowMaterial, 0, 1); - } - } - - // Fix up shadow removal with transparency - for (var i = 0; i < shadowCasters.Count; i++) - { - ShadowCaster2D shadowCaster = shadowCasters[i]; - if (ShadowCasterIsVisible(shadowCaster) && !shadowCaster.selfShadows && shadowCaster.IsLit(light)) - { - Renderer renderer = GetRendererFromCaster(shadowCaster, light, layerToRender); - if (renderer != null) - { - int numberOfSubmeshes = GetRendererSubmeshes(renderer, shadowCaster); - for (int submeshIndex = 0; submeshIndex < numberOfSubmeshes; submeshIndex++) { - cmdBuffer.DrawRenderer(renderer, spriteUnshadowMaterial, submeshIndex, 1); + int numberOfSubmeshes = GetRendererSubmeshes(renderer, shadowCaster); + for (int submeshIndex = 0; submeshIndex < numberOfSubmeshes; submeshIndex++) + { + cmdBuffer.DrawRenderer(renderer, spriteUnshadowMaterial, submeshIndex, pass); + + } } } else { - if(shadowCaster.mesh != null) - cmdBuffer.DrawMesh(shadowCaster.mesh, shadowCaster.transform.localToWorldMatrix, geometryUnshadowMaterial, 0, 1); + if (shadowCaster.mesh != null) + { + if (ShadowCasterIsVisible(shadowCaster) && shadowCaster.selfShadows) + cmdBuffer.DrawMesh(shadowCaster.mesh, shadowCaster.transform.localToWorldMatrix, geometryShadowMaterial, 0, pass); + else + cmdBuffer.DrawMesh(shadowCaster.mesh, shadowCaster.transform.localToWorldMatrix, geometryUnshadowMaterial, 0, pass); + } } } } } + internal static bool ShadowTest(ShadowTestType shadowTestType, ShadowCaster2D shadowCaster) + { + // This is just being done because using delegates are creating garbage and my tests are failing + if(shadowTestType == ShadowTestType.Always) + return true; + else if(shadowTestType == ShadowTestType.Unshadow) + return !shadowCaster.selfShadows; + + return false; + } + + private static void RenderShadows(UnsafeCommandBuffer cmdBuffer, Renderer2DData rendererData, ref LayerBatch layer, Light2D light) { using (new ProfilingScope(cmdBuffer, m_ProfilingSamplerShadows)) @@ -510,15 +497,19 @@ private static void RenderShadows(UnsafeCommandBuffer cmdBuffer, Renderer2DData var geometryShadowMaterial = rendererData.GetGeometryShadowMaterial(); var geometryUnshadowMaterial = rendererData.GetGeometryUnshadowMaterial(); + for (var group = 0; group < layer.shadowCasters.Count; group++) { var shadowCasters = layer.shadowCasters[group].GetShadowCasters(); - // Draw the projected shadows for the shadow caster group. Only writes the composite stencil bit - RenderProjectedShadows(cmdBuffer, layer.startLayerID, light, shadowCasters, projectedShadowMaterial, 0); - // Render self shadowing or non self shadowing - RenderSelfShadowOption(cmdBuffer, layer.startLayerID, light, shadowCasters, projectedUnshadowMaterial, spriteShadowMaterial, spriteUnshadowMaterial, geometryShadowMaterial, geometryUnshadowMaterial); + RenderSpriteShadow(cmdBuffer, layer.startLayerID, light, shadowCasters, spriteShadowMaterial, spriteUnshadowMaterial, geometryShadowMaterial, geometryUnshadowMaterial, 0, ShadowTestType.Always); + // Draw the projected shadows for the shadow caster group. Only writes the composite stencil bit + RenderProjectedShadows(cmdBuffer, layer.startLayerID, light, shadowCasters, projectedShadowMaterial, 0, ShadowTestType.Always); + // Draw the projected shadows for the shadow caster group. Only writes the composite stencil bit + RenderProjectedShadows(cmdBuffer, layer.startLayerID, light, shadowCasters, projectedShadowMaterial, 1, ShadowTestType.Unshadow); + //Render self shadowing or non self shadowing + RenderSpriteShadow(cmdBuffer, layer.startLayerID, light, shadowCasters, spriteShadowMaterial, spriteUnshadowMaterial, geometryShadowMaterial, geometryUnshadowMaterial, 1, ShadowTestType.Unshadow); } } } 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/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/Materials/Decal.mat b/Packages/com.unity.render-pipelines.universal/Runtime/Materials/Decal.mat index 89081d863f4..304601ab7db 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Materials/Decal.mat +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Materials/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 @@ -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/Packages/com.unity.render-pipelines.universal/Runtime/Materials/Lit.mat b/Packages/com.unity.render-pipelines.universal/Runtime/Materials/Lit.mat index 18f260d573b..86823912f59 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Materials/Lit.mat +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Materials/Lit.mat @@ -12,7 +12,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: - _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/Packages/com.unity.render-pipelines.universal/Runtime/Materials/ParticlesUnlit.mat b/Packages/com.unity.render-pipelines.universal/Runtime/Materials/ParticlesUnlit.mat index 6e9d2852e77..f1f5bc98cbd 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Materials/ParticlesUnlit.mat +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Materials/ParticlesUnlit.mat @@ -12,7 +12,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} - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Materials/SimpleLit.mat b/Packages/com.unity.render-pipelines.universal/Runtime/Materials/SimpleLit.mat index ff3d3f71f07..b866ab3a9f3 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Materials/SimpleLit.mat +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Materials/SimpleLit.mat @@ -116,6 +116,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 &2591765247069500558 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/Packages/com.unity.render-pipelines.universal/Runtime/Materials/TerrainLit.mat b/Packages/com.unity.render-pipelines.universal/Runtime/Materials/TerrainLit.mat index 17746b80f73..6d13b0e0629 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Materials/TerrainLit.mat +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Materials/TerrainLit.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 10 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -171,3 +171,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/Packages/com.unity.render-pipelines.universal/Runtime/Passes/AdditionalLightsShadowCasterPass.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Passes/AdditionalLightsShadowCasterPass.cs index 52c6d560c72..4314d3941cf 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Passes/AdditionalLightsShadowCasterPass.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Passes/AdditionalLightsShadowCasterPass.cs @@ -56,6 +56,7 @@ public partial class AdditionalLightsShadowCasterPass : ScriptableRenderPass private static readonly Vector4 c_DefaultShadowParams = new (0, 0, 0, -1); private static Vector4 s_EmptyAdditionalShadowFadeParams; private static Vector4[] s_EmptyAdditionalLightIndexToShadowParams; + private static bool isAdditionalShadowParamsDirty; // Classes private static class AdditionalShadowsConstantBuffer @@ -691,6 +692,16 @@ bool SetupForEmptyRendering(bool stripShadowsOffVariants, bool shadowsEnabled, U m_VisibleLightIndexToAdditionalLightIndex = new short[visibleLights.Length]; m_VisibleLightIndexToIsCastingShadows = new bool[visibleLights.Length]; s_EmptyAdditionalLightIndexToShadowParams = new Vector4[visibleLights.Length]; + isAdditionalShadowParamsDirty = true; + } + + // Temporarily we are avoiding SetGlobalVectorArray array for _AdditionalShadowParams if we exceeds maximum additional lights (UUM-102023). + if (isAdditionalShadowParamsDirty) + { + isAdditionalShadowParamsDirty = false; + Debug.LogWarning($"The number of visible additional lights {visibleLights.Length} exceeds the maximum supported lights {UniversalRenderPipeline.maxVisibleAdditionalLights}." + + $" Please refer URP documentation to change maximum number of visible lights or" + + $" reduce the number of lights to maximum allowed additional lights."); } // Initialize _AdditionalShadowParams @@ -823,7 +834,7 @@ internal static void SetShadowParamsForEmptyShadowmap(RasterCommandBuffer raster shadowParamsBuffer.SetData(s_EmptyAdditionalLightIndexToShadowParams); rasterCommandBuffer.SetGlobalBuffer(AdditionalShadowsConstantBuffer._AdditionalShadowParams_SSBO, shadowParamsBuffer); } - else + else if (s_EmptyAdditionalLightIndexToShadowParams.Length <= UniversalRenderPipeline.maxVisibleAdditionalLights) { rasterCommandBuffer.SetGlobalVectorArray(AdditionalShadowsConstantBuffer._AdditionalShadowParams, s_EmptyAdditionalLightIndexToShadowParams); } 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 690138f1f49..1ad8822288e 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Passes/InvokeOnRenderObjectCallbackPass.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Passes/InvokeOnRenderObjectCallbackPass.cs @@ -42,6 +42,7 @@ internal void Render(RenderGraph renderGraph, TextureHandle colorTarget, Texture builder.AllowPassCulling(false); builder.SetRenderFunc((PassData data, UnsafeGraphContext context) => { + context.cmd.SetRenderTarget(data.colorTarget, data.depthTarget); context.cmd.InvokeOnRenderObjectCallbacks(); }); } 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 72fff7b2ce6..a6a19591ab2 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Passes/PostProcessPassRenderGraph.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Passes/PostProcessPassRenderGraph.cs @@ -933,7 +933,7 @@ private void RenderTemporalAA(RenderGraph renderGraph, UniversalResourceData res #region STP - private const string _UpscaledColorTargetName = "_UpscaledColorTarget"; + private const string _UpscaledColorTargetName = "_CameraColorUpscaledSTP"; private void RenderSTP(RenderGraph renderGraph, UniversalResourceData resourceData, UniversalCameraData cameraData, ref TextureHandle source, out TextureHandle destination) { @@ -1275,7 +1275,7 @@ private class LensFlareScreenSpacePassData internal int downsample; } - public TextureHandle RenderLensFlareScreenSpace(RenderGraph renderGraph, Camera camera, in TextureHandle destination, TextureHandle originalBloomTexture, TextureHandle screenSpaceLensFlareBloomMipTexture, bool enableXR) + public TextureHandle RenderLensFlareScreenSpace(RenderGraph renderGraph, Camera camera, in TextureHandle destination, TextureHandle originalBloomTexture, TextureHandle screenSpaceLensFlareBloomMipTexture, bool enableXR, bool sameInputOutputTex) { var downsample = (int) m_LensFlareScreenSpace.resolution.value; @@ -1300,7 +1300,8 @@ public TextureHandle RenderLensFlareScreenSpace(RenderGraph renderGraph, Camera passData.screenSpaceLensFlareBloomMipTexture = screenSpaceLensFlareBloomMipTexture; builder.UseTexture(screenSpaceLensFlareBloomMipTexture, AccessFlags.ReadWrite); passData.originalBloomTexture = originalBloomTexture; - builder.UseTexture(originalBloomTexture, AccessFlags.ReadWrite); + if(!sameInputOutputTex) + builder.UseTexture(originalBloomTexture, AccessFlags.ReadWrite); passData.sourceDescriptor = m_Descriptor; passData.camera = camera; passData.material = m_Materials.lensFlareScreenSpace; @@ -2090,7 +2091,8 @@ public void RenderPostProcessingRenderGraph(RenderGraph renderGraph, ContextCont if (useLensFlareScreenSpace) { int maxBloomMip = Mathf.Clamp(m_LensFlareScreenSpace.bloomMip.value, 0, m_Bloom.maxIterations.value/2); - BloomTexture = RenderLensFlareScreenSpace(renderGraph, cameraData.camera, in currentSource, _BloomMipUp[0], _BloomMipUp[maxBloomMip], cameraData.xr.enabled); + bool sameInputOutputTex = maxBloomMip == 0; + BloomTexture = RenderLensFlareScreenSpace(renderGraph, cameraData.camera, in currentSource, _BloomMipUp[0], _BloomMipUp[maxBloomMip], cameraData.xr.enabled, sameInputOutputTex); } UberPostSetupBloomPass(renderGraph, in BloomTexture, m_Materials.uber); 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 655d40c7e7f..f494e845eaf 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Passes/ScreenSpaceAmbientOcclusionPass.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Passes/ScreenSpaceAmbientOcclusionPass.cs @@ -351,6 +351,13 @@ public override void RecordRenderGraph(RenderGraph renderGraph, ContextContainer // Declare input textures builder.UseTexture(passData.AOTexture, AccessFlags.ReadWrite); + // TODO: Refactor to eliminate the need for 'UseTexture'. + // Currently required only because 'PostProcessUtils.SetSourceSize' allocates an RTHandle, + // which expects a valid graphicsResource. Without this call, 'cameraColor.graphicsResource' + // may be null if it wasn't initialized in an earlier pass (e.g., DrawOpaque). + if (resourceData.cameraColor.IsValid()) + builder.UseTexture(resourceData.cameraColor, AccessFlags.Read); + if (passData.BlurQuality != ScreenSpaceAmbientOcclusionSettings.BlurQualityOptions.Low) builder.UseTexture(passData.blurTexture, AccessFlags.ReadWrite); 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/RendererFeatures/FullScreenPassRendererFeature.cs b/Packages/com.unity.render-pipelines.universal/Runtime/RendererFeatures/FullScreenPassRendererFeature.cs index f54a6a7032d..acf771a9f0f 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/RendererFeatures/FullScreenPassRendererFeature.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/RendererFeatures/FullScreenPassRendererFeature.cs @@ -262,7 +262,7 @@ public override void RecordRenderGraph(RenderGraph renderGraph, ContextContainer bool needsMotion = (input & ScriptableRenderPassInput.Motion) != ScriptableRenderPassInput.None; bool needsNormal = (input & ScriptableRenderPassInput.Normal) != ScriptableRenderPassInput.None; - if (needsColor) + if (needsColor && cameraData.renderer.SupportsCameraOpaque()) { Debug.Assert(resourcesData.cameraOpaqueTexture.IsValid()); builder.UseTexture(resourcesData.cameraOpaqueTexture); @@ -276,13 +276,18 @@ public override void RecordRenderGraph(RenderGraph renderGraph, ContextContainer if (needsMotion) { - Debug.Assert(resourcesData.motionVectorColor.IsValid()); - builder.UseTexture(resourcesData.motionVectorColor); - Debug.Assert(resourcesData.motionVectorDepth.IsValid()); - builder.UseTexture(resourcesData.motionVectorDepth); + Debug.Assert(cameraData.renderer.SupportsMotionVectors(), "Current renderer does not support motion vectors."); + + if (cameraData.renderer.SupportsMotionVectors()) + { + Debug.Assert(resourcesData.motionVectorColor.IsValid()); + builder.UseTexture(resourcesData.motionVectorColor); + Debug.Assert(resourcesData.motionVectorDepth.IsValid()); + builder.UseTexture(resourcesData.motionVectorDepth); + } } - if (needsNormal) + if (needsNormal && cameraData.renderer.SupportsCameraNormals()) { Debug.Assert(resourcesData.cameraNormalsTexture.IsValid()); builder.UseTexture(resourcesData.cameraNormalsTexture); diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/ScriptableRenderer.cs b/Packages/com.unity.render-pipelines.universal/Runtime/ScriptableRenderer.cs index 555b2e11be0..d3399109623 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/ScriptableRenderer.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/ScriptableRenderer.cs @@ -109,6 +109,24 @@ protected internal virtual bool SupportsMotionVectors() return false; } + /// + /// Check if the ScriptableRenderer implements a camera opaque pass. + /// + /// Returns true if the ScriptableRenderer implements a camera opaque pass. False otherwise. + protected internal virtual bool SupportsCameraOpaque() + { + return false; + } + + /// + /// Check if the ScriptableRenderer implements a camera normal pass. + /// + /// Returns true if the ScriptableRenderer implements a camera normal pass. False otherwise. + protected internal virtual bool SupportsCameraNormals() + { + return false; + } + /// /// Override to provide a custom profiling name /// @@ -322,9 +340,12 @@ void SetPerCameraShaderVariables(RasterCommandBuffer cmd, UniversalCameraData ca // Projection flip sign logic is very deep in GfxDevice::SetInvertProjectionMatrix // This setup is tailored especially for overlay camera game view // For other scenarios this will be overwritten correctly by SetupCameraProperties - float projectionFlipSign = isTargetFlipped ? -1.0f : 1.0f; - Vector4 projectionParams = new Vector4(projectionFlipSign, near, far, 1.0f * invFar); - cmd.SetGlobalVector(ShaderPropertyId.projectionParams, projectionParams); + if (cameraData.renderType == CameraRenderType.Overlay) + { + float projectionFlipSign = isTargetFlipped ? -1.0f : 1.0f; + Vector4 projectionParams = new Vector4(projectionFlipSign, near, far, 1.0f * invFar); + cmd.SetGlobalVector(ShaderPropertyId.projectionParams, projectionParams); + } Vector4 orthoParams = new Vector4(camera.orthographicSize * cameraData.aspectRatio, camera.orthographicSize, 0.0f, isOrthographic); diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/UniversalRenderPipeline.cs b/Packages/com.unity.render-pipelines.universal/Runtime/UniversalRenderPipeline.cs index 6b5fced6132..42a2aae7467 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/UniversalRenderPipeline.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/UniversalRenderPipeline.cs @@ -1814,9 +1814,8 @@ static UniversalLightData CreateLightData(ContextContainer frameData, UniversalR using var profScope = new ProfilingScope(Profiling.Pipeline.initializeLightData); UniversalLightData lightData = frameData.Create(); - + lightData.visibleLights = visibleLights; lightData.mainLightIndex = GetMainLightIndex(settings, visibleLights); - if (settings.additionalLightsRenderingMode != LightRenderingMode.Disabled) { lightData.additionalLightsCount = Math.Min((lightData.mainLightIndex != -1) ? visibleLights.Length - 1 : visibleLights.Length, maxVisibleAdditionalLights); @@ -1828,15 +1827,25 @@ static UniversalLightData CreateLightData(ContextContainer frameData, UniversalR lightData.maxPerObjectAdditionalLightsCount = 0; } + if (settings.mainLightRenderingMode == LightRenderingMode.Disabled) + { + var mainLightIndex = GetBrightestDirectionalLightIndex(settings, visibleLights); + if (mainLightIndex != -1) + { + // a visible main light was disabled, since it is still in the visible lights array we need to maintain + // the mainLightIndex otherwise indexing in the lightloop goes wrong + lightData.additionalLightsCount--; + lightData.mainLightIndex = mainLightIndex; + } + } + lightData.supportsAdditionalLights = settings.additionalLightsRenderingMode != LightRenderingMode.Disabled; lightData.shadeAdditionalLightsPerVertex = settings.additionalLightsRenderingMode == LightRenderingMode.PerVertex; - lightData.visibleLights = visibleLights; lightData.supportsMixedLighting = settings.supportsMixedLighting; lightData.reflectionProbeBoxProjection = settings.reflectionProbeBoxProjection; lightData.reflectionProbeBlending = settings.reflectionProbeBlending; lightData.reflectionProbeAtlas = settings.reflectionProbeBlending && (isDeferredPlus || settings.reflectionProbeAtlas || settings.gpuResidentDrawerMode != GPUResidentDrawerMode.Disabled); lightData.supportsLightLayers = RenderingUtils.SupportsLightLayers(SystemInfo.graphicsDeviceType) && settings.useRenderingLayers; - return lightData; } @@ -1966,20 +1975,12 @@ static PerObjectData GetPerObjectLightFlags(UniversalLightData universalLightDat return configuration; } - // Main Light is always a directional light - static int GetMainLightIndex(UniversalRenderPipelineAsset settings, NativeArray visibleLights) + static int GetBrightestDirectionalLightIndex(UniversalRenderPipelineAsset settings, NativeArray visibleLights) { - using var profScope = new ProfilingScope(Profiling.Pipeline.getMainLightIndex); - - int totalVisibleLights = visibleLights.Length; - - if (totalVisibleLights == 0 || settings.mainLightRenderingMode != LightRenderingMode.PerPixel) - return -1; - - Light sunLight = RenderSettings.sun; int brightestDirectionalLightIndex = -1; float brightestLightIntensity = 0.0f; + int totalVisibleLights = visibleLights.Length; for (int i = 0; i < totalVisibleLights; ++i) { ref VisibleLight currVisibleLight = ref visibleLights.UnsafeElementAtMutable(i); @@ -2009,6 +2010,19 @@ static int GetMainLightIndex(UniversalRenderPipelineAsset settings, NativeArray< return brightestDirectionalLightIndex; } + // Main Light is always a directional light + static int GetMainLightIndex(UniversalRenderPipelineAsset settings, NativeArray visibleLights) + { + using var profScope = new ProfilingScope(Profiling.Pipeline.getMainLightIndex); + + int totalVisibleLights = visibleLights.Length; + + if (totalVisibleLights == 0 || settings.mainLightRenderingMode != LightRenderingMode.PerPixel) + return -1; + + return GetBrightestDirectionalLightIndex(settings, visibleLights); + } + void SetupPerFrameShaderConstants() { using var profScope = new ProfilingScope(Profiling.Pipeline.setupPerFrameShaderConstants); diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/UniversalRenderer.cs b/Packages/com.unity.render-pipelines.universal/Runtime/UniversalRenderer.cs index 8f72501493a..970fcdad611 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/UniversalRenderer.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/UniversalRenderer.cs @@ -90,6 +90,18 @@ protected internal override bool SupportsMotionVectors() return true; } + /// + protected internal override bool SupportsCameraOpaque() + { + return true; + } + + /// + protected internal override bool SupportsCameraNormals() + { + return true; + } + // Rendering mode setup from UI. The final rendering mode used can be different. See renderingModeActual. internal RenderingMode renderingModeRequested => m_RenderingMode; diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/UniversalRendererRenderGraph.cs b/Packages/com.unity.render-pipelines.universal/Runtime/UniversalRendererRenderGraph.cs index 4a5812406b4..62b794a6d2b 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/UniversalRendererRenderGraph.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/UniversalRendererRenderGraph.cs @@ -170,13 +170,8 @@ public sealed partial class UniversalRenderer { null, null }; - private static RTHandle[] m_RenderGraphUpscaledCameraColorHandles = new RTHandle[] - { - null, null - }; private static RTHandle m_RenderGraphCameraDepthHandle; private static int m_CurrentColorHandle = 0; - private static bool m_UseUpscaledColorHandle = false; private static RTHandle m_RenderGraphDebugTextureHandle; @@ -184,9 +179,13 @@ private RTHandle currentRenderGraphCameraColorHandle { get { - // Select between the pre-upscale and post-upscale color handle sets based on the current upscaling state - return m_UseUpscaledColorHandle ? m_RenderGraphUpscaledCameraColorHandles[m_CurrentColorHandle] - : m_RenderGraphCameraColorHandles[m_CurrentColorHandle]; + Debug.Assert(m_CurrentColorHandle >= 0, + "currentRenderGraphCameraColorHandle should not be accessed in single camera mode."); + + if (m_CurrentColorHandle < 0) + return null; + + return m_RenderGraphCameraColorHandles[m_CurrentColorHandle]; } } @@ -195,6 +194,12 @@ private RTHandle nextRenderGraphCameraColorHandle { get { + Debug.Assert(m_CurrentColorHandle >= 0, + "nextRenderGraphCameraColorHandle should not be accessed in single camera mode."); + + if (m_CurrentColorHandle < 0) + return null; + m_CurrentColorHandle = (m_CurrentColorHandle + 1) % 2; return currentRenderGraphCameraColorHandle; } @@ -212,8 +217,6 @@ private void CleanupRenderGraphResources() { m_RenderGraphCameraColorHandles[0]?.Release(); m_RenderGraphCameraColorHandles[1]?.Release(); - m_RenderGraphUpscaledCameraColorHandles[0]?.Release(); - m_RenderGraphUpscaledCameraColorHandles[1]?.Release(); m_RenderGraphCameraDepthHandle?.Release(); m_RenderGraphDebugTextureHandle?.Release(); @@ -253,7 +256,7 @@ public static TextureHandle CreateRenderGraphTexture(RenderGraph renderGraph, Re } internal static TextureHandle CreateRenderGraphTexture(RenderGraph renderGraph, RenderTextureDescriptor desc, string name, bool clear, Color color, - FilterMode filterMode = FilterMode.Point, TextureWrapMode wrapMode = TextureWrapMode.Clamp) + FilterMode filterMode = FilterMode.Point, TextureWrapMode wrapMode = TextureWrapMode.Clamp, bool discardOnLastUse = false) { TextureDesc rgDesc = new TextureDesc(desc.width, desc.height); rgDesc.dimension = desc.dimension; @@ -270,6 +273,8 @@ internal static TextureHandle CreateRenderGraphTexture(RenderGraph renderGraph, rgDesc.enableShadingRate = desc.enableShadingRate; rgDesc.useDynamicScale = desc.useDynamicScale; rgDesc.useDynamicScaleExplicit = desc.useDynamicScaleExplicit; + rgDesc.discardBuffer = discardOnLastUse; + rgDesc.vrUsage = desc.vrUsage; return renderGraph.CreateTexture(rgDesc); } @@ -339,8 +344,10 @@ private void UpdateCameraHistory(UniversalCameraData cameraData) const string _CameraTargetAttachmentAName = "_CameraTargetAttachmentA"; const string _CameraTargetAttachmentBName = "_CameraTargetAttachmentB"; - const string _CameraUpscaledTargetAttachmentAName = "_CameraUpscaledTargetAttachmentA"; - const string _CameraUpscaledTargetAttachmentBName = "_CameraUpscaledTargetAttachmentB"; + const string _SingleCameraTargetAttachmentName = "_CameraTargetAttachment"; + const string _CameraDepthAttachmentName = "_CameraDepthAttachment"; + const string _CameraColorUpscaled = "_CameraColorUpscaled"; + const string _CameraColorAfterPostProcessingName = "_CameraColorAfterPostProcessing"; void CreateRenderGraphCameraRenderTargets(RenderGraph renderGraph, bool isCameraTargetOffscreenDepth) { @@ -386,16 +393,6 @@ void CreateRenderGraphCameraRenderTargets(RenderGraph renderGraph, bool isCamera } } - ImportResourceParams importColorParams = new ImportResourceParams(); - importColorParams.clearOnFirstUse = clearColor; // && cameraData.camera.clearFlags != CameraClearFlags.Nothing; - importColorParams.clearColor = cameraBackgroundColor; - importColorParams.discardOnLastUse = false; - - ImportResourceParams importDepthParams = new ImportResourceParams(); - importDepthParams.clearOnFirstUse = clearDepth; - importDepthParams.clearColor = cameraBackgroundColor; - importDepthParams.discardOnLastUse = false; - #if ENABLE_VR && ENABLE_XR_MODULE if (cameraData.xr.enabled) { @@ -524,6 +521,8 @@ void CreateRenderGraphCameraRenderTargets(RenderGraph renderGraph, bool isCamera importInfo.volumeDepth = cameraData.xr.renderTargetDesc.volumeDepth; importInfo.msaaSamples = cameraData.xr.renderTargetDesc.msaaSamples; importInfo.format = cameraData.xr.renderTargetDesc.graphicsFormat; + if (!PlatformRequiresExplicitMsaaResolve()) + importInfo.bindMS = importInfo.msaaSamples > 1; importInfoDepth = importInfo; importInfoDepth.format = cameraData.xr.renderTargetDesc.depthStencilFormat; @@ -564,35 +563,35 @@ void CreateRenderGraphCameraRenderTargets(RenderGraph renderGraph, bool isCamera cameraTargetDescriptor.autoGenerateMips = false; cameraTargetDescriptor.depthStencilFormat = GraphicsFormat.None; - RenderingUtils.ReAllocateHandleIfNeeded(ref m_RenderGraphCameraColorHandles[0], cameraTargetDescriptor, FilterMode.Bilinear, TextureWrapMode.Clamp, name: _CameraTargetAttachmentAName); - RenderingUtils.ReAllocateHandleIfNeeded(ref m_RenderGraphCameraColorHandles[1], cameraTargetDescriptor, FilterMode.Bilinear, TextureWrapMode.Clamp, name: _CameraTargetAttachmentBName); - - // Make sure that the base camera always starts rendering to the ColorAttachmentA for deterministic frame results. - // Not doing so makes the targets look different every frame, causing the frame debugger to flash, and making debugging harder. - if (cameraData.renderType == CameraRenderType.Base) + // When there's a single camera setup, there's no need to do the double buffer technique with attachment A/B, in order to save memory allocation + // and simplify the workflow by using a RenderGraph texture directly. + var isSingleCamera = cameraData.resolveFinalTarget && cameraData.renderType == CameraRenderType.Base; + if (isSingleCamera) { - m_CurrentColorHandle = 0; + resourceData.cameraColor = CreateRenderGraphTexture(renderGraph, cameraTargetDescriptor, _SingleCameraTargetAttachmentName, clearColor, cameraBackgroundColor, FilterMode.Bilinear, discardOnLastUse: cameraData.resolveFinalTarget); - // Base camera rendering always starts with a pre-upscale size color target - // If upscaling happens during the frame, we'll switch to the post-upscale color target size and any overlay camera that renders on top should inherit the upscaled size - m_UseUpscaledColorHandle = false; + m_CurrentColorHandle = -1; } - - importColorParams.discardOnLastUse = lastCameraInTheStack; - resourceData.cameraColor = renderGraph.ImportTexture(currentRenderGraphCameraColorHandle, importColorParams); - resourceData.activeColorID = UniversalResourceData.ActiveID.Camera; - - // If STP is enabled, we'll be upscaling the rendered frame during the post processing logic. - // Once upscaling occurs, we must use different set of color handles that reflect the upscaled size. - if (cameraData.IsSTPEnabled()) + else { - var upscaledTargetDesc = cameraTargetDescriptor; - upscaledTargetDesc.width = cameraData.pixelWidth; - upscaledTargetDesc.height = cameraData.pixelHeight; + RenderingUtils.ReAllocateHandleIfNeeded(ref m_RenderGraphCameraColorHandles[0], cameraTargetDescriptor, FilterMode.Bilinear, TextureWrapMode.Clamp, name: _CameraTargetAttachmentAName); + RenderingUtils.ReAllocateHandleIfNeeded(ref m_RenderGraphCameraColorHandles[1], cameraTargetDescriptor, FilterMode.Bilinear, TextureWrapMode.Clamp, name: _CameraTargetAttachmentBName); - RenderingUtils.ReAllocateHandleIfNeeded(ref m_RenderGraphUpscaledCameraColorHandles[0], upscaledTargetDesc, FilterMode.Point, TextureWrapMode.Clamp, name: _CameraUpscaledTargetAttachmentAName); - RenderingUtils.ReAllocateHandleIfNeeded(ref m_RenderGraphUpscaledCameraColorHandles[1], upscaledTargetDesc, FilterMode.Point, TextureWrapMode.Clamp, name: _CameraUpscaledTargetAttachmentBName); + // Make sure that the base camera always starts rendering to the ColorAttachmentA for deterministic frame results. + // Not doing so makes the targets look different every frame, causing the frame debugger to flash, and making debugging harder. + if (cameraData.renderType == CameraRenderType.Base) + { + m_CurrentColorHandle = 0; + } + + ImportResourceParams importColorParams = new ImportResourceParams(); + importColorParams.clearOnFirstUse = clearColor; + importColorParams.clearColor = cameraBackgroundColor; + importColorParams.discardOnLastUse = cameraData.resolveFinalTarget; // Last camera in stack + resourceData.cameraColor = renderGraph.ImportTexture(currentRenderGraphCameraColorHandle, importColorParams); } + + resourceData.activeColorID = UniversalResourceData.ActiveID.Camera; } else { @@ -621,9 +620,12 @@ void CreateRenderGraphCameraRenderTargets(RenderGraph renderGraph, bool isCamera depthDescriptor.graphicsFormat = GraphicsFormat.None; depthDescriptor.depthStencilFormat = cameraDepthAttachmentFormat; - RenderingUtils.ReAllocateHandleIfNeeded(ref m_RenderGraphCameraDepthHandle, depthDescriptor, FilterMode.Point, TextureWrapMode.Clamp, name: "_CameraDepthAttachment"); + RenderingUtils.ReAllocateHandleIfNeeded(ref m_RenderGraphCameraDepthHandle, depthDescriptor, FilterMode.Point, TextureWrapMode.Clamp, name: _CameraDepthAttachmentName); - importDepthParams.discardOnLastUse = lastCameraInTheStack; + ImportResourceParams importDepthParams = new ImportResourceParams(); + importDepthParams.clearOnFirstUse = clearDepth; + importDepthParams.clearColor = cameraBackgroundColor; + importDepthParams.discardOnLastUse = lastCameraInTheStack; // Last camera in stack #if UNITY_EDITOR // scene filtering will reuse "camera" depth from the normal pass for the "filter highlight" effect if (cameraData.isSceneViewCamera && CoreUtils.IsSceneFilteringEnabled()) @@ -868,6 +870,7 @@ private void OnOffscreenDepthTextureRendering(RenderGraph renderGraph, Scriptabl m_RenderTransparentForwardPass.Render(renderGraph, frameData, TextureHandle.nullHandle, resourceData.backBufferDepth, TextureHandle.nullHandle, TextureHandle.nullHandle, uint.MaxValue); RecordCustomRenderGraphPasses(renderGraph, RenderPassEvent.AfterRenderingTransparents, RenderPassEvent.AfterRendering); } + private void OnBeforeRendering(RenderGraph renderGraph) { UniversalResourceData resourceData = frameData.Get(); @@ -1495,7 +1498,6 @@ private void OnAfterRendering(RenderGraph renderGraph) RecordCustomRenderGraphPasses(renderGraph, RenderPassEvent.BeforeRenderingPostProcessing); - bool cameraTargetResolved = false; bool applyPostProcessing = ShouldApplyPostProcessing(cameraData.postProcessEnabled); // There's at least a camera in the camera stack that applies post-processing bool anyPostProcessing = postProcessingData.isEnabled && m_PostProcessPasses.isCreated; @@ -1544,27 +1546,53 @@ private void OnAfterRendering(RenderGraph renderGraph) TextureHandle overlayUITexture = resourceData.overlayUITexture; bool isTargetBackbuffer = (cameraData.resolveFinalTarget && !applyFinalPostProcessing && !hasPassesAfterPostProcessing); - // if the postprocessing pass is trying to read and write to the same CameraColor target, we need to swap so it writes to a different target, - // since reading a pass attachment is not possible. Normally this would be possible using temporary RenderGraph managed textures. - // The reason why in this case we need to use "external" RTHandles is to preserve the results for camera stacking. - // TODO RENDERGRAPH: Once all cameras will run in a single RenderGraph we can just use temporary RenderGraph textures as intermediate buffer. - if (!isTargetBackbuffer) + + TextureHandle target; + if (isTargetBackbuffer) + { + target = backbuffer; + } + else { ImportResourceParams importColorParams = new ImportResourceParams(); importColorParams.clearOnFirstUse = true; importColorParams.clearColor = Color.black; importColorParams.discardOnLastUse = cameraData.resolveFinalTarget; // check if last camera in the stack - // When STP is enabled, we must switch to the upscaled set of color handles before the next color handle value is queried. This ensures - // that the post processing output is rendered to a properly sized target. Any rendering performed beyond this point will also use the upscaled targets. if (cameraData.IsSTPEnabled()) - m_UseUpscaledColorHandle = true; + { + // STP is disabled when using camera stacking. In any case, we don't use persistent textures here so we need to make sure there is no next camera in the stack (should always be true). + Debug.Assert(cameraData.resolveFinalTarget); - resourceData.cameraColor = renderGraph.ImportTexture(nextRenderGraphCameraColorHandle, importColorParams); - } + var desc = resourceData.cameraColor.GetDescriptor(renderGraph); - // Desired target for post-processing pass. - var target = isTargetBackbuffer ? backbuffer : resourceData.cameraColor; + static void MakeCompatible(ref TextureDesc desc) + { + desc.msaaSamples = MSAASamples.None; + desc.useMipMap = false; + desc.autoGenerateMips = false; + desc.anisoLevel = 0; + desc.discardBuffer = false; + } + MakeCompatible(ref desc); + + desc.width = cameraData.pixelWidth; + desc.height = cameraData.pixelHeight; + desc.name = _CameraColorUpscaled; + + resourceData.cameraColor = renderGraph.CreateTexture(desc); + } + else + { + var isSingleCamera = cameraData.resolveFinalTarget && cameraData.renderType == CameraRenderType.Base; + + resourceData.cameraColor = (isSingleCamera) + ? renderGraph.CreateTexture(activeColor, _CameraColorAfterPostProcessingName) + : renderGraph.ImportTexture(nextRenderGraphCameraColorHandle, importColorParams); + } + + target = resourceData.cameraColor; + } // but we may actually render to an intermediate texture if debug views are enabled. // In that case, DebugHandler will eventually blit DebugScreenTexture into AfterPostProcessColor. @@ -1617,7 +1645,7 @@ private void OnAfterRendering(RenderGraph renderGraph) m_CapturePass.RecordRenderGraph(renderGraph, frameData); } - cameraTargetResolved = + bool cameraTargetResolved = // final PP always blit to camera target applyFinalPostProcessing || // no final PP but we have PP stack. In that case it blit unless there are render pass after PP diff --git a/Packages/com.unity.render-pipelines.universal/ShaderLibrary/Clustering.hlsl b/Packages/com.unity.render-pipelines.universal/ShaderLibrary/Clustering.hlsl index 228b642a04a..b538bb8ae1a 100644 --- a/Packages/com.unity.render-pipelines.universal/ShaderLibrary/Clustering.hlsl +++ b/Packages/com.unity.render-pipelines.universal/ShaderLibrary/Clustering.hlsl @@ -15,8 +15,8 @@ // internal struct ClusterIterator { - uint tileOffset; - uint zBinOffset; + uint tileWordsOffset; + uint zBinWordsOffset; uint tileMask; // Stores the next light index in first 16 bits, and the max light index in the last 16 bits. uint entityIndexNextMax; @@ -42,17 +42,17 @@ ClusterIterator ClusterInit(float2 normalizedScreenSpaceUV, float3 positionWS, i } #endif // SUPPORTS_FOVEATED_RENDERING_NON_UNIFORM_RASTER - uint2 tileId = uint2(normalizedScreenSpaceUV * URP_FP_TILE_SCALE); - state.tileOffset = tileId.y * URP_FP_TILE_COUNT_X + tileId.x; + uint2 tileCoord = uint2(normalizedScreenSpaceUV * URP_FP_TILE_SCALE); + uint tileIndex = tileCoord.y * URP_FP_TILE_COUNT_X + tileCoord.x; #if defined(USING_STEREO_MATRICES) - state.tileOffset += URP_FP_TILE_COUNT * unity_StereoEyeIndex; + tileIndex += URP_FP_TILE_COUNT * unity_StereoEyeIndex; #endif - state.tileOffset *= URP_FP_WORDS_PER_TILE; + state.tileWordsOffset = tileIndex * URP_FP_WORDS_PER_TILE; float viewZ = dot(GetViewForwardDir(), positionWS - GetCameraPositionWS()); - uint zBinBaseIndex = (uint)((IsPerspectiveProjection() ? log2(viewZ) : viewZ) * URP_FP_ZBIN_SCALE + URP_FP_ZBIN_OFFSET); + uint zBinIndex = (uint)((IsPerspectiveProjection() ? log2(viewZ) : viewZ) * URP_FP_ZBIN_SCALE + URP_FP_ZBIN_OFFSET); #if defined(USING_STEREO_MATRICES) - zBinBaseIndex += URP_FP_ZBIN_COUNT * unity_StereoEyeIndex; + zBinIndex += URP_FP_ZBIN_COUNT * unity_StereoEyeIndex; #endif // The Zbin buffer is laid out in the following manner: // ZBin 0 ZBin 1 @@ -61,14 +61,18 @@ ClusterIterator ClusterInit(float2 normalizedScreenSpaceUV, float3 positionWS, i // `----------------v--------------' // URP_FP_WORDS_PER_TILE // - // The total length of this buffer is `4*MAX_ZBIN_VEC4S`. `zBinBaseIndex` should - // always point to the `header 0` of a ZBin, so we clamp it accordingly, to - // avoid out-of-bounds indexing of the ZBin buffer. - zBinBaseIndex = zBinBaseIndex * (2 + URP_FP_WORDS_PER_TILE); - zBinBaseIndex = min(zBinBaseIndex, 4*MAX_ZBIN_VEC4S - (2 + URP_FP_WORDS_PER_TILE)); + // `zBinOffset` should always point to the `header 0` of a ZBin. In the case of + // 'viewZ' lying very close to the far-plane, we need to avoid out-of-bounds indexing + // of the ZBin buffer by clamping to the last ZBin index. + uint zBinLastIndex = URP_FP_ZBIN_COUNT - 1; +#if defined(USING_STEREO_MATRICES) + zBinLastIndex += URP_FP_ZBIN_COUNT * unity_StereoEyeIndex; +#endif + uint zBinStride = (2 + URP_FP_WORDS_PER_TILE); + uint zBinOffset = min(zBinIndex, zBinLastIndex) * zBinStride; - uint zBinHeaderIndex = zBinBaseIndex + headerIndex; - state.zBinOffset = zBinBaseIndex + 2; + uint zBinHeaderIndex = zBinOffset + headerIndex; + state.zBinWordsOffset = zBinOffset + 2; #if !URP_FP_DISABLE_ZBINNING uint header = Select4(asuint(urp_ZBins[zBinHeaderIndex / 4]), zBinHeaderIndex % 4); @@ -78,13 +82,13 @@ ClusterIterator ClusterInit(float2 normalizedScreenSpaceUV, float3 positionWS, i #if MAX_LIGHTS_PER_TILE > 32 || CLUSTER_HAS_REFLECTION_PROBES state.entityIndexNextMax = header; #else - uint tileIndex = state.tileOffset; - uint zBinIndex = state.zBinOffset; + uint tileWordIndex = state.tileWordsOffset; + uint zBinWordIndex = state.zBinWordsOffset; if (URP_FP_WORDS_PER_TILE > 0) { state.tileMask = - Select4(asuint(urp_Tiles[tileIndex / 4]), tileIndex % 4) & - Select4(asuint(urp_ZBins[zBinIndex / 4]), zBinIndex % 4) & + Select4(asuint(urp_Tiles[tileWordIndex / 4]), tileWordIndex % 4) & + Select4(asuint(urp_ZBins[zBinWordIndex / 4]), zBinWordIndex % 4) & (0xFFFFFFFFu << (header & 0x1F)) & (0xFFFFFFFFu >> (31 - (header >> 16))); } #endif @@ -101,14 +105,14 @@ bool ClusterNext(inout ClusterIterator it, out uint entityIndex) { // Extract the lower 16 bits and shift by 5 to divide by 32. uint wordIndex = ((it.entityIndexNextMax & 0xFFFF) >> 5); - uint tileIndex = it.tileOffset + wordIndex; - uint zBinIndex = it.zBinOffset + wordIndex; + uint tileWordIndex = it.tileWordsOffset + wordIndex; + uint zBinWordIndex = it.zBinWordsOffset + wordIndex; it.tileMask = #if !URP_FP_DISABLE_TILING - Select4(asuint(urp_Tiles[tileIndex / 4]), tileIndex % 4) & + Select4(asuint(urp_Tiles[tileWordIndex / 4]), tileWordIndex % 4) & #endif #if !URP_FP_DISABLE_ZBINNING - Select4(asuint(urp_ZBins[zBinIndex / 4]), zBinIndex % 4) & + Select4(asuint(urp_ZBins[zBinWordIndex / 4]), zBinWordIndex % 4) & #endif // Mask out the beginning and end of the word. (0xFFFFFFFFu << (it.entityIndexNextMax & 0x1F)) & (0xFFFFFFFFu >> (31 - min(31, maxIndex - wordIndex * 32))); 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 3c1715154f0..64896881eb1 100644 --- a/Packages/com.unity.render-pipelines.universal/ShaderLibrary/GBufferInput.hlsl +++ b/Packages/com.unity.render-pipelines.universal/ShaderLibrary/GBufferInput.hlsl @@ -127,7 +127,7 @@ GBufferData UnpackGBuffers(uint2 unCoord2) #if defined(GBUFFER_FEATURE_RENDERING_LAYERS) gBufferData.meshRenderingLayers = DecodeMeshRenderingLayer(renderingLayers); #else - gBufferData.meshRenderingLayers = 0xFFFF; + gBufferData.meshRenderingLayers = 0xFFFFFFFF; #endif return gBufferData; 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/UniversalDOTSInstancing.hlsl b/Packages/com.unity.render-pipelines.universal/ShaderLibrary/UniversalDOTSInstancing.hlsl index 52453b20355..a93b23500c0 100644 --- a/Packages/com.unity.render-pipelines.universal/ShaderLibrary/UniversalDOTSInstancing.hlsl +++ b/Packages/com.unity.render-pipelines.universal/ShaderLibrary/UniversalDOTSInstancing.hlsl @@ -38,6 +38,8 @@ UNITY_DOTS_INSTANCING_END(BuiltinPropertyMetadata) #define unity_WorldTransformParams LoadDOTSInstancedData_WorldTransformParams() #define unity_RenderingLayer LoadDOTSInstancedData_RenderingLayer() #define unity_MotionVectorsParams LoadDOTSInstancedData_MotionVectorsParams() +#define unity_RendererBounds_Min LoadDOTSInstancedData_RendererBounds_Min() +#define unity_RendererBounds_Max LoadDOTSInstancedData_RendererBounds_Max() #define UNITY_SETUP_DOTS_SH_COEFFS SetupDOTSSHCoeffs(UNITY_DOTS_INSTANCED_METADATA_NAME(SH, unity_SHCoefficients)) #define UNITY_SETUP_DOTS_RENDER_BOUNDS SetupDOTSRendererBounds(UNITY_DOTS_MATRIX_M) @@ -55,9 +57,6 @@ 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_HDR = float4(0,0,0,0); -static const float4 unity_RendererBounds_Min = float4(0,0,0,0); -static const float4 unity_RendererBounds_Max = float4(0,0,0,0); - // Set up by BRG picking/selection code int unity_SubmeshIndex; #define unity_SelectionID UNITY_ACCESS_DOTS_INSTANCED_SELECTION_VALUE(unity_EntityId, unity_SubmeshIndex, _SelectionID) diff --git a/Packages/com.unity.render-pipelines.universal/Shaders/2D/Include/LightingUtility.hlsl b/Packages/com.unity.render-pipelines.universal/Shaders/2D/Include/LightingUtility.hlsl index 3702c970110..a4e65b65f34 100644 --- a/Packages/com.unity.render-pipelines.universal/Shaders/2D/Include/LightingUtility.hlsl +++ b/Packages/com.unity.render-pipelines.universal/Shaders/2D/Include/LightingUtility.hlsl @@ -59,13 +59,8 @@ if(intensity < 1)\ {\ half4 shadowTex = SAMPLE_TEXTURE2D(_ShadowTex, sampler_ShadowTex, input.shadowUV); \ - half shadowFinalValue = dot(half4(1,0,0,0), shadowTex.rgba);\ - half unshadowValue = dot(half4(0,1,0,0), shadowTex.rgba);\ - half unshadowGTEOne = unshadowValue > 1;\ - half spriteAlpha = dot(half4(0,0,1,0), shadowTex.rgba);\ - half unshadowFinalValue = unshadowGTEOne * (unshadowValue - (1-spriteAlpha)) + (1-unshadowGTEOne) * (unshadowValue * spriteAlpha);\ - half shadowIntensity = 1-saturate(shadowFinalValue - unshadowFinalValue); \ - color.rgb = (color.rgb * shadowIntensity) + (color.rgb * intensity*(1 - shadowIntensity));\ + half4 shadowIntensity = 1-max(shadowTex.r, shadowTex.g * 1-shadowTex.b);\ + color.rgb = (color.rgb * shadowIntensity.rgb) + (color.rgb * intensity*(1 - shadowIntensity.rgb));\ } #define TRANSFER_SHADOWS(output)\ diff --git a/Packages/com.unity.render-pipelines.universal/Shaders/2D/Include/NormalsRenderingShared.hlsl b/Packages/com.unity.render-pipelines.universal/Shaders/2D/Include/NormalsRenderingShared.hlsl index 0b40b9c1129..a2c951b3d7b 100644 --- a/Packages/com.unity.render-pipelines.universal/Shaders/2D/Include/NormalsRenderingShared.hlsl +++ b/Packages/com.unity.render-pipelines.universal/Shaders/2D/Include/NormalsRenderingShared.hlsl @@ -3,9 +3,11 @@ half4 NormalsRenderingShared(half4 color, half3 normalTS, half3 tangent, half3 bitangent, half3 normal) { - half4 normalColor; + // Account for sprite flip + normalTS.xy *= unity_SpriteProps.xy; half3 normalWS = TransformTangentToWorld(normalTS, half3x3(tangent.xyz, bitangent.xyz, normal.xyz)); + half4 normalColor; normalColor.rgb = 0.5 * ((normalWS)+1); normalColor.a = color.a; // used for blending diff --git a/Packages/com.unity.render-pipelines.universal/Shaders/2D/Shadow2D-Projected.shader b/Packages/com.unity.render-pipelines.universal/Shaders/2D/Shadow2D-Projected.shader index a1fb28b109a..666cae6a45a 100644 --- a/Packages/com.unity.render-pipelines.universal/Shaders/2D/Shadow2D-Projected.shader +++ b/Packages/com.unity.render-pipelines.universal/Shaders/2D/Shadow2D-Projected.shader @@ -10,11 +10,18 @@ Shader "Hidden/ShadowProjected2D" Tags { "RenderType"="Transparent" } Cull Off - BlendOp Add + BlendOp Max Blend One One, One One ZWrite Off ZTest Always + Stencil + { + Ref 1 + Comp NotEqual + Pass Keep + } + // This pass draws the projected shadows Pass { @@ -65,7 +72,7 @@ Shader "Hidden/ShadowProjected2D" } - Name "Projected Unshadow (R) - Stencil: Ref 1, Comp Eq, Pass Keep" + Name "Projected Unshadow (G) - Stencil: Ref 1, Comp Eq, Pass Keep" // Draw the shadow ColorMask G diff --git a/Packages/com.unity.render-pipelines.universal/Shaders/2D/Shadow2D-Shadow-Geometry.shader b/Packages/com.unity.render-pipelines.universal/Shaders/2D/Shadow2D-Shadow-Geometry.shader index ec55d6f041d..5d1adab8130 100644 --- a/Packages/com.unity.render-pipelines.universal/Shaders/2D/Shadow2D-Shadow-Geometry.shader +++ b/Packages/com.unity.render-pipelines.universal/Shaders/2D/Shadow2D-Shadow-Geometry.shader @@ -9,7 +9,7 @@ Shader "Hidden/Shadow2DShadowGeometry" Tags { "RenderType"="Opaque" } Cull Off - BlendOp Add + BlendOp Max Blend One One ZWrite Off ZTest Always diff --git a/Packages/com.unity.render-pipelines.universal/Shaders/2D/Shadow2D-Shadow-Sprite.shader b/Packages/com.unity.render-pipelines.universal/Shaders/2D/Shadow2D-Shadow-Sprite.shader index 1fed62c1372..437d29896f5 100644 --- a/Packages/com.unity.render-pipelines.universal/Shaders/2D/Shadow2D-Shadow-Sprite.shader +++ b/Packages/com.unity.render-pipelines.universal/Shaders/2D/Shadow2D-Shadow-Sprite.shader @@ -11,7 +11,7 @@ Shader "Hidden/Shadow2DShadowSprite" Tags { "RenderType"="Opaque" } Cull Off - BlendOp Add + BlendOp Max Blend One One ZWrite Off ZTest Always diff --git a/Packages/com.unity.render-pipelines.universal/Shaders/2D/Shadow2D-Unshadow-Sprite.shader b/Packages/com.unity.render-pipelines.universal/Shaders/2D/Shadow2D-Unshadow-Sprite.shader index 6bf23672cd5..5cbdeb887f6 100644 --- a/Packages/com.unity.render-pipelines.universal/Shaders/2D/Shadow2D-Unshadow-Sprite.shader +++ b/Packages/com.unity.render-pipelines.universal/Shaders/2D/Shadow2D-Unshadow-Sprite.shader @@ -25,9 +25,9 @@ Shader "Hidden/Shadow2DUnshadowSprite" ZWrite Off ZTest Always - ColorMask GB // Clear the unshadow color (G), and set the sprite alpha (B) + ColorMask B - Name "Sprite Unshadow (GB) - Stencil: Ref 1, Comp Always, Pass Replace" + Name "Sprite Unshadow (B) - Stencil: Ref 1, Comp Always, Pass Replace" HLSLPROGRAM #pragma vertex vert @@ -70,7 +70,7 @@ Shader "Hidden/Shadow2DUnshadowSprite" if (main.a <= _ShadowAlphaCutoff) discard; - return half4(0, 0, 0, 0); + return half4(0, 0, main.a, 0); } ENDHLSL } @@ -90,7 +90,7 @@ Shader "Hidden/Shadow2DUnshadowSprite" ZWrite Off ZTest Always - ColorMask B + ColorMask 0 Name "Sprite Unshadow (B) - Stencil: Ref 0, Comp Always, Pass Replace" @@ -135,7 +135,7 @@ Shader "Hidden/Shadow2DUnshadowSprite" if (main.a <= _ShadowAlphaCutoff) discard; - return half4(1,1,main.a,1); + return half4(1, 1, 1, 1); } ENDHLSL } 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/Terrain/TerrainLitAdd.shader b/Packages/com.unity.render-pipelines.universal/Shaders/Terrain/TerrainLitAdd.shader index 598142eafbb..4da01e9afdf 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 + #include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ProbeVolumeVariants.hlsl" #pragma multi_compile_instancing #pragma instancing_options assumeuniformscaling nomatrices nolightprobe nolightmap #pragma multi_compile_fragment _ DEBUG_DISPLAY @@ -146,6 +147,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 + #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/TerrainLitPasses.hlsl b/Packages/com.unity.render-pipelines.universal/Shaders/Terrain/TerrainLitPasses.hlsl index f64343f5c0d..ea234055607 100644 --- a/Packages/com.unity.render-pipelines.universal/Shaders/Terrain/TerrainLitPasses.hlsl +++ b/Packages/com.unity.render-pipelines.universal/Shaders/Terrain/TerrainLitPasses.hlsl @@ -110,7 +110,7 @@ void InitializeInputData(Varyings IN, half3 normalTS, out InputData inputData) inputData.vertexSH = SH; #endif #if defined(USE_APV_PROBE_OCCLUSION) - inputData.probeOcclusion = input.probeOcclusion; + inputData.probeOcclusion = IN.probeOcclusion; #endif #endif } diff --git a/Packages/com.unity.render-pipelines.universal/Shaders/Unlit.shader b/Packages/com.unity.render-pipelines.universal/Shaders/Unlit.shader index 97ef844c16a..1594e10e2db 100644 --- a/Packages/com.unity.render-pipelines.universal/Shaders/Unlit.shader +++ b/Packages/com.unity.render-pipelines.universal/Shaders/Unlit.shader @@ -123,6 +123,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..8c1842f7636 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,18 +82,18 @@ 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); } ENDHLSL 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.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~/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~/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 f6ee64ffb26..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,33 +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) | +| :----------------------------------------------------------- | +| ![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. | @@ -77,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.md b/Packages/com.unity.shadergraph/Documentation~/Keywords.md index 256be6cf099..829706c465f 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Keywords.md +++ b/Packages/com.unity.shadergraph/Documentation~/Keywords.md @@ -27,14 +27,13 @@ Although some fields are specific to certain types of Keywords, all Keywords hav | **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.
    | +| **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 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 @@ -54,8 +53,6 @@ Special characters such as ( ) or ! @ are not valid in the **Entry Name** of an 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. @@ -78,4 +75,3 @@ In an HDRP project, you can find the current quality level in the Material secti MaterialQualityUtilities.SetGlobalShaderKeywords( MaterialQuality.High ); ``` -![](images/keywords_built-in.png) 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~/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~/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~/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.visualeffectgraph/Documentation~/Arithmetic.md b/Packages/com.unity.visualeffectgraph/Documentation~/Arithmetic.md new file mode 100644 index 00000000000..3399a069ef4 --- /dev/null +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Arithmetic.md @@ -0,0 +1,31 @@ +# Arithmetic Operators + +Perform mathematical calculations on input data. + +| **Page** | **Description** | +| --- | --- | +| [Absolute](Operator-Absolute.md) | Calculate the absolute value of an input. | +| [Add](Operator-Add.md) | Calculate the sum of all inputs. | +| [Divide](Operator-Divide.md) | Divide the first input sequentially by all other inputs. | +| [Fractional](Operator-Fractional.md) | Extract the fractional part of an input. | +| [Inverse Lerp](Operator-InverseLerp.md) | Calculate the fraction representing how far a value is between two values. | +| [Lerp](Operator-Lerp.md) | Calculate a linear interpolation between two values. | +| [Modulo](Operator-Modulo.md) | Calculate the remainder of dividing of one value by another. | +| [Multiply](Operator-Multiply.md) | Multiply all inputs together. | +| [Negate](Operator-Negate.md) | Multiply an input value by -1 to invert its sign. | +| [One Minus](Operator-OneMinus.md) | Subtract an input value from one. | +| [Power](Operator-Power.md) | Raise one input to the power of another input. | +| [Reciprocal](Operator-Reciprocal.md) | Calculate the result of dividing 1 by an input value. | +| [Sign](Operator-Sign.md) | Return whether an input is positive, negative, or 0. | +| [Smoothstep](Operator-Smoothstep.md) | Calculate smooth Hermite interpolation between two values. | +| [Square Root](Operator-SquareRoot.md) | Calculate the square root of an input. | +| [Step](Operator-Step.md) | Compare an input value to a threshold and return whether an input is above or below the threshold | +| [Subtract](Operator-Subtract.md) | Subtract one or more inputs from another input. | + +## Additional resources + +- [Clamp](Clamp.md) +- [Remap](Remap.md) +- [Math](Math.md) + + diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Attribute.md b/Packages/com.unity.visualeffectgraph/Documentation~/Attribute.md new file mode 100644 index 00000000000..109c928122d --- /dev/null +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Attribute.md @@ -0,0 +1,15 @@ +# Attribute Blocks + +Write values to the [Attributes](Attributes.md) of particles. + +| **Page** | **Description** | +| --- | --- | +| [Curve](Block-SetAttributeFromCurve.md) | Write values to an attribute based on a sample from an Animation Curve or Gradient. | +| [Derived > Calculate Mass from Volume](Block-CalculateMassFromVolume.md) | Set the mass of a particle based on its scale and density. | +| [Map](Block-SetAttributeFromMap.md) | Sample data from textures and store them in attributes. | +| [Set](Block-SetAttribute.md) | Write values to an attribute directly, or use random modes to set attributes to random values. | + +## Additional resources + +- [Attributes](Attributes.md) +- [Standard Attribute Reference](Reference-Attributes.md) diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Bitwise.md b/Packages/com.unity.visualeffectgraph/Documentation~/Bitwise.md new file mode 100644 index 00000000000..7a300d257ea --- /dev/null +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Bitwise.md @@ -0,0 +1,18 @@ +# Bitwise Operators + +Perform bitwise logical operations on inputs. + +| **Page** | **Description** | +| --- | --- | +| [And](Operator-BitwiseAnd.md) | Perform a bitwise AND operation, which outputs 1 if both bits are 1. | +| [Complement](Operator-BitwiseComplement.md) | Perform a bitwise NOT operation to invert each bit. | +| [Left Shift](Operator-BitwiseLeftShift.md) | Shift an input value left by a specified number of bits. | +| [Or](Operator-BitwiseOr.md) | Perform a bitwise OR operation, which outputs 1 if either bit is 1. | +| [Right Shift](Operator-BitwiseRightShift.md) | Shift an input value right by a specified number of bits. | +| [Xor](Operator-BitwiseXor.md) | Perform a bitwise XOR operation, which outputs 1 if only one bit is 1. | + +## Additional resources + +- [Logic Operators](Logic.md) +- [Math Operators](Math.md) + diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-Collision-LandingPage.md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-Collision-LandingPage.md index a412b49a17d..44c98a1281b 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-Collision-LandingPage.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Block-Collision-LandingPage.md @@ -1,11 +1,13 @@ # Collision Blocks reference -Explore the properties of Collision Blocks to configure how particles collide with shapes or the depth buffer. +Configure how particles collide with shapes or the depth buffer. | **Page** | **Description** | -|-|-| -| [Collision Shape](Block-CollisionShape.md) | Explore the properties of the Collision Shape Block. | -| [Collision Depth Buffer](Block-CollideWithDepthBuffer.md) | Explore the properties of the Collision Depth Buffer Block. | +| --- | --- | +| [Collision Shape](Block-CollisionShape.md) | Define a shape that particles collide with. | +| [Collide with Depth Buffer](Block-CollideWithDepthBuffer.md) | Make particles collide with a camera's depth buffer. | +| [Kill Shape](Block-KillShape.md) | Define a shape that destroys particles that collide with it. | +| [Trigger Shape](Block-TriggerShape.md) | Define a shape that detects particle collisions and updates collision attributes. | ## Additional resources diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-CollisionShape.md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-CollisionShape.md index 8bc2cf06bf2..09e5780f7ce 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-CollisionShape.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Block-CollisionShape.md @@ -1,4 +1,3 @@ - # Collision Shape Block reference The Collision Shape Block defines a shape that particles collide with. @@ -6,6 +5,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 +24,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 +36,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 +46,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 +62,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 491c750650a..f37ad385940 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-FlipbookPlayer.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Block-FlipbookPlayer.md @@ -6,7 +6,7 @@ The **Flipbook Player** Block creates animated particles using flipbook textures Flipbook textures are texture sheets that consist of multiple smaller sub-images. To produce an animation, Unity steps through the sub-images in a particular order. -![](Images/Block-FlipbookPlayerExampleLHS.png)![img](Images/Block-FlipbookPlayerExampleRHS.gif) +![Cloud-shaped blocks representing stages in a sprite sheet.](Images/Block-FlipbookPlayerExampleLHS.png) To generate a Flipbook, use external digital content creation tools. 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-SetPositionShape-LandingPage.md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetPositionShape-LandingPage.md index f121e128091..19d30f13129 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetPositionShape-LandingPage.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetPositionShape-LandingPage.md @@ -1,13 +1,13 @@ # Set Position Blocks reference -Explore the properties of Set Position Blocks to configure how Unity calculates particle positions based on an input shape. +Configure particle positions based on an input. | **Page** | **Description** | |-|-| | [Set Position (Depth)](Block-SetPosition(Depth).md) | Explore the properties of the Set Position (Depth) block. | | [Set Position (Mesh)](Block-SetPosition(Mesh).md) | Explore the properties of the Set Position (Mesh) block. | | [Set Position (Skinned Mesh)](Block-SetPosition(SkinnedMesh).md) | Explore the properties of the Set Position (Skinned Mesh) block. | -| [Set Position Shape](Block-SetPositionShape.md) | Explore the properties of the Set Position Shape block. | +| [Set Position Shape Block reference](Block-SetPositionShape.md) | Explore the properties of the Set Position Shape block. | | [Set Position (Sequential)](Block-SetPosition(Sequential).md) | Explore the properties of the Set Position (Sequential) block. | | [Tile/Warp Positions](Block-TileWarpPositions.md) | Explore the properties of the Tile/Warp Positions block. | diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-Trigger-Event.md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-Trigger-Event.md new file mode 100644 index 00000000000..f4c643dab51 --- /dev/null +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Block-Trigger-Event.md @@ -0,0 +1,39 @@ +# Trigger Event Block reference + +The Trigger Event Block spawns particles using a [GPU Event](Context-GPUEvent.md). + +## Block compatibility + +You can add the Trigger Event Block to the following Contexts: + +- [Initialize](Context-Initialize.md) +- [Update](Context-Update.md) + +To add a Trigger Event Block to your graph, [open the menu for adding a graph element](VisualEffectGraphWindow.md#adding-graph-elements) then select **GPUEvent** > **Trigger Event**. + +Trigger Blocks always execute at the end of the Update Context, regardless of where you place the Block. + +## Block settings + +| **Property** | **Type** | **Description** | +|-|-|-| +| **Mode** | Enum | The options are:
    • Always: Spawns particles each frame.
    • Over Time: Spawns particles at a specified rate per second.
    • Over Distance: Spawns a set number of particles over the distance a parent particle moves.
    • On Die: Spawns particles when a parent particle dies.
    • On Collide: Spawns particles when a particle collides with another particle.
    | + +## Block properties + +| **Input** | **Type** | **Description** | +|-|-|-| +| **Count** | Uint | Sets the number of particles to spawn. This property is available only if you set **Mode** to **Always**, **On Die**, or **On Collide**. | +| **Rate** | Float | Sets the rate at which to spawn particles. This property is available only if you set **Mode** to **Over Time** or **Over Distance**. If you set **Mode** to **Over Time**, **Rate** sets the number of particles to spawn per second. If you set **Mode** to **Over Distance**, **Rate** sets the number of particles to spawn over the distance the parent particle moves. | + +## Block output + +| **Output** | **Type** | **Description** | +|-|-|-| +| **Evt** | [GPU Event](Context-GPUEvent.md) | The GPU Event to trigger. | + +## Inspector window properties + +| **Property** | **Type** | **Description** | +|-|-|-| +| **Clamp To One** | Bool | Limits GPU Events to one per frame. This property is available only if you set **Mode** to **Over Time** or **Over Distance**. | diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-TriggerEventAlways.md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-TriggerEventAlways.md deleted file mode 100644 index 2b3fbdec50b..00000000000 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-TriggerEventAlways.md +++ /dev/null @@ -1,27 +0,0 @@ -# Trigger Event Always - -Menu Path : **GPU Event > Trigger Event Always** - -The **Trigger Event Always** Block triggers the continual creation of a specified number of particles each frame via a [GPU Event](Context-GPUEvent.md). Trigger Block always execute at the end of Update, regardless of where the Block is on the [blackboard](Blackboard.md). - - - -You can also use the Trigger Block with various conditions to create more complex spawning behavior. For example: - -![A Visual Effect Graph window which shows the Trigger Event Always Block executing under complex conditions. An Age Over Lifetime Operator returns the age of a particle relative to its lifetime, which uses a Compare Operator to compare if the value is less than 0.1. The connected Branch then outputs 5 when the Predicate is true or 0 when the Predicate is false, which connects to the Trigger Event Always Block inside the Update Particle Context.](Images/Block-TriggerEventAlwaysExample.png) - -## Block compatibility - -This Block is compatible with the following Contexts: - -- [Update](Context-Update.md) - -## Block properties - -| **Input** | **Type** | **Description** | -| --------- | -------- | ------------------------------------------------------- | -| **Count** | Uint | The number of GPU Event particles to spawn every frame. | - -| **Output** | **Type** | **Description** | -| ---------- | -------------------------------- | ------------------------- | -| **Evt** | [GPU Event](Context-GPUEvent.md) | The GPU Event to trigger. | diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-TriggerEventOnDie.md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-TriggerEventOnDie.md deleted file mode 100644 index 603a6e194ee..00000000000 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-TriggerEventOnDie.md +++ /dev/null @@ -1,25 +0,0 @@ -# Trigger Event On Die - -Menu Path : **GPU Event > Trigger Event On Die** - -The **Trigger Event On Die** Block triggers the creation of a specified number of particles via a [GPU Event](Context-GPUEvent.md) when a particle dies. Trigger Blocks always execute at the end of Update, regardless of where the Block is in the Context. - -You can also use the Trigger Block with various conditions to create more complex spawning behavior: - -![img](Images/Block-TriggerEventOnDieExample.png) - -## Block compatibility - -This Block is compatible with the following Contexts: - -- [Update](Context-Update.md) - -## Block properties - -| **Input** | **Type** | **Description** | -| --------- | -------- | ------------------------------------------------------------ | -| **Count** | Uint | The number of GPU Event particles to spawn once a particle dies. | - -| **Output** | **Type** | **Description** | -| --------- | -------- | ------------------------------------------------------------ | -| **Evt** | [GPU Event](Context-GPUEvent.md) | The GPU Event to trigger. | diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-TriggerEventRate.md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-TriggerEventRate.md deleted file mode 100644 index e37287bf543..00000000000 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-TriggerEventRate.md +++ /dev/null @@ -1,31 +0,0 @@ -# Trigger Event Rate - -Menu Path : **GPU Event > Trigger Event Rate** - -The **Trigger Event Rate** Block triggers the creation of particles via a GPU Event using a specified rate. You can set the rate to spawn particles over time (per second) or over distance (parent particle distance change). - - - -Trigger Blocks always execute at the end of the [Update Context](Context-Update.md), regardless of where the Block is situated within the Context. - -## Block compatibility - -This Block is compatible with the following Contexts: - -- [Update](Context-Update.md) - -## Block settings - -| **Setting** | **Type** | **Description** | -| ----------- | -------- | ------------------------------------------------------------ | -| **Mode** | Enum | The method this Block uses to apply the **Rate**. The options are:
    • **Over Time**: Applies the **Rate** over time.
    • **Over Distance**: Applies the **Rate** over distance. | - -## Block properties - -| **Input** | **Type** | **Description** | -| --------- | -------- | ------------------------------------------------------------ | -| **Rate** | Float | The number of GPU Event particles to spawn based on the **Mode**.
    If you set **Mode** to **Over Time**, this is the number of GPU Event particles to spawn per second.
    If you set **Mode** to **Over Distance**, this is the number of GPU Event particles to spawn as the parent particle moves. | - -| **Output** | **Type** | **Description** | -| ---------- | -------------------------------- | ------------------------- | -| **Evt** | [GPU Event](Context-GPUEvent.md) | The GPU Event to trigger. | 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~/Block-UpdatePosition.md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-UpdatePosition.md index 15424af3495..9df34d3868a 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-UpdatePosition.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Block-UpdatePosition.md @@ -2,7 +2,9 @@ Menu Path : **Implicit > Integration : Update Position** -The **Integration : Update Position** Block updates particle positions based on their velocity. If the system uses the velocity attribute and you enable **Update Position** in the Update Context's Inspector, Unity implicitly adds this Block to the Context and hides it. +The **Integration : Update Position** Block updates particle positions based on their velocity. + +**Note:** If the system uses the velocity attribute and you enable **Update Position** in the Update Context's Inspector, Unity implicitly adds this Block to the Context and hides it. If you add your own **Integration : Update Position** Block too, Unity updates positions twice. ![Unity adds a Update Position Block when you enable Update Position in the Update Context's Inspector.](Images/Block-UpdatePositionInspector.png) diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-UpdateRotation.md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-UpdateRotation.md index 5e7431de549..2a0a325b8a1 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-UpdateRotation.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Block-UpdateRotation.md @@ -2,7 +2,9 @@ Menu Path : **Implicit > Integration : Update Rotation** -The **Integration : Update Rotation** Block updates particle orientation based on their angular velocity. If the system uses the angular velocity attribute and you enable **Update Rotation** in the Update Context's Inspector, Unity implicitly adds this Block to the Context and hides it. +The **Integration : Update Rotation** Block updates particle orientation based on their angular velocity. + +**Note:** If the system uses the angular velocity attribute and you enable **Update Rotation** in the Update Context's Inspector, Unity implicitly adds this Block to the Context and hides it. If you add your own **Integration : Update Rotation** Block too, Unity updates rotation twice. ![Unity adds a Update Rotation Block when you enable Update Rotation in the Update Context's Inspector.](Images/Block-UpdateRotationInspector.png) diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block.md b/Packages/com.unity.visualeffectgraph/Documentation~/Block.md new file mode 100644 index 00000000000..1acc45e3d28 --- /dev/null +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Block.md @@ -0,0 +1,25 @@ +# Blocks + +Control the behavior, appearance, and simulation of particles. + +| **Page** | **Description** | +| --- | --- | +| [Attribute Blocks](Attribute.md) | Write values to the attributes of particles. | +| [Collision Blocks](Block-Collision-LandingPage.md) | Configure how particles collide with shapes or the depth buffer. | +| [Force Blocks](Force.md) | Apply and control forces on particles, such as gravity and turbulence. | +| [Custom HLSL Block](Operator-CustomHLSL.md) | Write an HLSL function that takes inputs and produces outputs. | +| [Implicit Integration Blocks](Implicit.md) | Explore the hidden Blocks that Visual Effect Graph uses to update the position and rotation of particles. | +| [Orientation Blocks](Orientation.md) | Change the direction that particles face. | +| [Output Blocks](Output.md) | Control particle output and rendering. | +| [Set Position Blocks](Block-SetPositionShape-LandingPage.md) | Configure particle positions based on an input shape. | +| [Size > Screen Space Size](Block-ScreenSpaceSize.md) | Calculate the scale needed for a particle to reach a specific size. | +| [Spawn Blocks](Spawn.md) | Customize behavior for spawning particles. | +| [Trigger Event Block](Block-Trigger-Event.md) | Spawn particles using a GPU Event. | +| [Velocity Blocks](Velocity.md) | Dynamically adjust the velocity of particles. | + +## Additional resources + +- [Blocks](Blocks.md) +- [Graph logic and philosophy](GraphLogicAndPhilosophy.md) +- [Output event handlers](OutputEventHandlers.md) + diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Builtin.md b/Packages/com.unity.visualeffectgraph/Documentation~/Builtin.md new file mode 100644 index 00000000000..08fa076d23e --- /dev/null +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Builtin.md @@ -0,0 +1,18 @@ +# Built-in Operators + +Operators that output time, frame indices, and coordinates. + +| **Page** | **Description** | +| --- | --- | +| [Delta Time](Operator-DeltaTime.md) | Get the time in seconds between the current and previous frames. | +| [Frame Index](Operator-FrameIndex.md) | Get the current frame index. | +| [Local to World](Operator-LocalToWorld.md) | Get a matrix that transforms a point from local space to world space. | +| [System Seed](Operator-SystemSeed.md) | Get the seed used to generate random numbers. | +| [Total Time](Operator-TotalTime.md) | Get the total time since the effect started. | +| [World to Local](Operator-WorldToLocal.md) | Get a matrix that transforms a point from world space to local space. | + +## Additional resources + +- [Math Operators](Math.md) +- [Attribute Blocks](Attribute.md) + diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Camera.md b/Packages/com.unity.visualeffectgraph/Documentation~/Camera.md new file mode 100644 index 00000000000..82d266352db --- /dev/null +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Camera.md @@ -0,0 +1,15 @@ +# Camera Operators + +Output information about cameras, and convert between view space and world space. + +| **Page** | **Description** | +| --- | --- | +| [Main Camera](Operator-MainCamera.md) | Get information about the current main camera, including integration with the active Scriptable Render Pipeline. | +| [Viewport to World Point](Operator-ViewportToWorldPoint.md) | Transform a position from viewport space to world space | +| [World to Viewport Point](Operator-WorldToViewportPoint.md) | Transform a position from world space to view space. | + +## Additional resources + +- [Coordinates](Coordinates.md) +- [Geometry](Geometry.md) +- [Built-in Operators](Builtin.md) diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Clamp.md b/Packages/com.unity.visualeffectgraph/Documentation~/Clamp.md new file mode 100644 index 00000000000..61dc923b2bc --- /dev/null +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Clamp.md @@ -0,0 +1,14 @@ +# Clamp Operators + +Clamp, round, or limit values. + +| **Page** | **Description** | +| --- | --- | +| [Ceiling](Operator-Ceiling.md) | Round an input up to the nearest integer. | +| [Clamp](Operator-Clamp.md) | Limit an input value between a lower and upper bound for each axis. | +| [Discretize](Operator-Discretize.md) | Get the multiple of an input that's closest to a second input. | +| [Floor](Operator-Floor.md) | Round an input value down to the nearest integer. | +| [Maximum](Operator-Maximum.md) | Get the largest value from all input values. | +| [Minimum](Operator-Minimum.md) | Get the smallest value from all input values. | +| [Round](Operator-Round.md) | Round an input value to the nearest integer. | +| [Saturate](Operator-Saturate.md) | Clamp a value between 0 and 1. | diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Color.md b/Packages/com.unity.visualeffectgraph/Documentation~/Color.md new file mode 100644 index 00000000000..37b072347b6 --- /dev/null +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Color.md @@ -0,0 +1,18 @@ +# Color Operators + +Output and convert color values. + +| **Page** | **Description** | +| --- | --- | +| [Color Luma](Operator-ColorLuma.md) | Get the perceived brightness of an input color. | +| [HSV to RGB](Operator-HSVToRGB.md) | Convert hue, saturation, value (HSV) color values to red, green, blue (RGB) color values. | +| [RGB to HSV](Operator-RGBToHSV.md) | Convert red, green, blue (RGB) color values to hue, saturation, value (HSV) color values. | + +## Additional resources + +- [Color](Operator-InlineColor.md) +- [Sample Gradient](Operator-SampleGradient.md) +- [Saturate](Operator-Saturate.md) + + + diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Constants.md b/Packages/com.unity.visualeffectgraph/Documentation~/Constants.md new file mode 100644 index 00000000000..0d4369f97f4 --- /dev/null +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Constants.md @@ -0,0 +1,14 @@ +# Constants Operators + +Get mathematical constants. + +| **Page** | **Description** | +| --- | --- | +| [Epsilon (ε)](Operator-Epsilon.md) | Get a tiny value that you can use to avoid precision issues when you compare float values. | +| [Pi (π)](Operator-Pi.md) | Get the ratio of a circle's circumference to its diameter. | + +## Additional resources + +- [Arithmetic Operators](Arithmetic.md) +- [Clamp Operators](Clamp.md) +- [Math Operators](Math.md) diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Context-GPUEvent.md b/Packages/com.unity.visualeffectgraph/Documentation~/Context-GPUEvent.md index b93b954c3de..69379a3ed72 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Context-GPUEvent.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Context-GPUEvent.md @@ -8,7 +8,7 @@ The **GPU Event** Context allows you to spawn new particles from particular Bloc | **Settings** | **Type** | **Description** | | ------------ | -------- | ------------------------------------------------------------ | -| **Evt** | GPUEvent | Connection from a [Block](Blocks.md) that triggers a GPU Event. The Block that trigger a GPU Event are:
    • **Trigger Event Always**.
    • **Trigger Event On Die**.
    • **Trigger Event Rate** | +| **Evt** | GPUEvent | Connection from a [Block](Blocks.md) that triggers a GPU Event. The [Trigger Event Block](Block-Trigger-Event.md) triggers GPU Events. | ## Flow diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputLitSettings.md b/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputLitSettings.md index b0d2f72154f..555f74e4e55 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputLitSettings.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputLitSettings.md @@ -1,4 +1,4 @@ -# Output Lit +# Lit Output Settings Menu Path : **Context > Output [Data Type] Lit [Type]** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputSharedSettings.md b/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputSharedSettings.md index 4a916b41d21..103f1f468c5 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputSharedSettings.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputSharedSettings.md @@ -1,4 +1,4 @@ -# Shared Output Settings and Properties +# Shared output settings and properties All outputs share these settings and property ports. In case of Shader Graph Output, some settings are actually provided by the Shader Graph Asset. diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Context.md b/Packages/com.unity.visualeffectgraph/Documentation~/Context.md new file mode 100644 index 00000000000..5af7ddabebc --- /dev/null +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Context.md @@ -0,0 +1,31 @@ +# Contexts + +Explore the different [Contexts](Contexts.md) you can add to a graph. + +| **Page** | **Description** | +| --- | --- | +| [Event](Context-Event.md) | Define names for events that trigger actions in a graph. | +| [GPU Event](Context-GPUEvent.md) | Spawn new particles from specific Blocks in Update or Initialize Contexts. | +| [Initialize Particle](Context-Initialize.md) | Process an event and initialize new particle elements. | +| [Output Decal](Context-OutputForwardDecal.md) | Render a particle system using a projected decal texture. | +| [Output Distortion](Context-OutputDistortion.md) | In the High Definition Render Pipeline (HDRP), use distortion to simulate effects like heat haze from fire. | +| [Output Line](Context-OutputLine.md) | Render particles as lines. | +| [Output Mesh](Context-OutputMesh.md) | Render a static mesh. | +| [Output Particle HDRP Lit Decal](Context-OutputParticleHDRPLitDecal.md) | Use a decal to render a particle system in HDRP. | +| [Output Particle HDRP Volumetric Fog](Context-OutputParticleHDRPVolumetricFog.md) | Convert particles into a volumetric fog effect in HDRP, to create dynamic fog effects. | +| [Output Particle Mesh](Context-OutputParticleMesh.md) | Render particles as meshes. | +| [Output Particle URP Lit Decal](Context-OutputParticleURPLitDecal.md) | Use a decal to render a particle system in the Universal Render Pipeline (URP). | +| [Output Point](Context-OutputPoint.md) | Render particles as points. | +| [Output Primitive](Context-OutputPrimitive.md) | Render particles as lit quads, triangles, or octagons. | +| [Output ShaderGraph Mesh](Context-OutputShaderGraphMesh.md) | Render particles as a custom Shader Graph mesh. | +| [Output ShaderGraph Quad](Context-OutputShaderGraphPlanarPrimitive.md) | Render particles as a custom Shader Graph quad. | +| [Output ShaderGraph Strip](Context-OutputShaderGraphStrip.md) | Render particles as a custom Shader Graph strip. | +| [Shared output settings](SharedOutputSettings.md) | Explore the settings that appear in all Contexts. | +| [Spawn](Context-Spawn.md) | Control the spawn rate of particles, or create a custom spawning behavior. | +| [Update Particle](Context-Update.md) | Manage the behavior of particles or particle strips from an Initialize Context. | + +## Additional resources + +- [Visual Effect Graph Logic](GraphLogicAndPhilosophy.md) +- [Blocks](Blocks.md) +- [Contexts (Graph Logic & Philosophy)](Contexts.md) diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Coordinates.md b/Packages/com.unity.visualeffectgraph/Documentation~/Coordinates.md new file mode 100644 index 00000000000..ea214d4ce8c --- /dev/null +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Coordinates.md @@ -0,0 +1,17 @@ +# Coordinate Operators + +Convert between coordinate systems. + +| **Page** | **Description** | +| --- | --- | +| [Polar to Rectangular](Operator-PolarToRectangular.md) | Convert from polar coordinates to rectangular xy coordinates. | +| [Rectangular to Polar](Operator-RectangularToPolar.md) | Convert from rectangular xy coordinates to polar coordinates. | +| [Rectangular to Spherical](Operator-RectangularToSpherical.md) | Convert from rectangular xyz coordinates to spherical coordinates. | +| [Spherical to Rectangular](Operator-SphericalToRectangular.md) | Convert from spherical coordinates to rectangular XYZ coordinates. | + +## Additional resources + +- [Change Space](Operator-ChangeSpace.md) +- [Transform (Position)](Operator-Transform(Position).md) +- [Local to World](Operator-LocalToWorld.md) + diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/CustomSpawn.md b/Packages/com.unity.visualeffectgraph/Documentation~/CustomSpawn.md new file mode 100644 index 00000000000..e1d8b3c9c31 --- /dev/null +++ b/Packages/com.unity.visualeffectgraph/Documentation~/CustomSpawn.md @@ -0,0 +1,16 @@ +# Custom Spawn Blocks + +Customize advanced behavior for spawning particles. + +| **Page** | **Description** | +| --- | --- | +| [Increment Strip Index On Start](Block-IncrementStripIndexOnStart.md) | Create a new group of particles each time the start event of the Spawn Context triggers. | +| [Set Spawn Time](Block-SetSpawnTime.md) | Allow Initialize Contexts to use the time since the previous play event of the Spawn Context. | +| [Spawn Over Distance](Block-SpawnOverDistance.md) | Spawn particles based on the distance moved since the previous frame. | + +## Additional resources + +- [Spawn](Context-Spawn.md) +- [Spawner Callbacks](SpawnerCallbacks.md) +- [Events](Events.md) + diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Events.md b/Packages/com.unity.visualeffectgraph/Documentation~/Events.md index 21eb376e5df..9ac1d8378be 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Events.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Events.md @@ -51,13 +51,7 @@ You can define the default Visual Effect Event for each [Visual Effect Graph Ass GPU Events allow you to spawn particles based on other particles. -GPU Events are Event Contexts that rely on data sent from other systems, for example, when a particle dies. The following Update Blocks can send GPU Event Data: - -* **Trigger Event On Die**: Spawns N Particles on another system when a particle dies. -* **Trigger Event Rate**: Spawn N Particles per second (or per distance travelled), based on a particle from a system. -* **Trigger Event Always**: Spawns N Particles every frame. - -These Blocks connect to a **GPUEvent** Context. This Context does not handle any Blocks, but instead connects to an Initialize Context of a child system. +GPU Events are Event Contexts that rely on data sent from other systems, for example, when a particle dies. [Trigger Event Blocks](Block-Trigger-Event.md) send GPU Event Data, and connect to a **GPUEvent** Context. This Context does not handle any Blocks, but instead connects to an Initialize Context of a child system. To gather data from the parent particle, a child system must refer to [Source Attributes](Attributes.md) in its Initialize Context. To do this, a child system can use a **Get Source Attribute** Operator, or an **Inherit Attribute** Block. For a visual example, see the image below. diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Force.md b/Packages/com.unity.visualeffectgraph/Documentation~/Force.md new file mode 100644 index 00000000000..1b0ad8f8a6c --- /dev/null +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Force.md @@ -0,0 +1,20 @@ +# Force Blocks + +Apply and control forces on particles, such as gravity and turbulence. + +| **Page** | **Description** | +| --- | --- | +| [Attractor Shape Signed Distance Field](Block-ConformToSignedDistanceField.md) | Pull particles towards a complex shape. | +| [Attractor Shape Sphere](Block-ConformToSphere.md) | Pull particles towards a sphere. | +| [Force](Block-Force.md) | Apply a force to particles by changing their velocity. | +| [Gravity](Block-Gravity.md) | Apply gravity to particles by changing their velocity. | +| [Linear Drag](Block-LinearDrag.md) | Slow particles down without affecting their direction. | +| [Turbulence](Block-Turbulence.md) | Add natural-looking motion to particles. | +| [Vector Force Field](Block-VectorForceField.md) | Apply specific forces to particles using a vector field. | + +## Additional resources + +- [Velocity Blocks](Velocity.md) +- [Vector Fields / Signed Distance Fields](VectorFields.md) +- [Noise Operators](Noise.md) + diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Geometry.md b/Packages/com.unity.visualeffectgraph/Documentation~/Geometry.md new file mode 100644 index 00000000000..8dc84da86b8 --- /dev/null +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Geometry.md @@ -0,0 +1,29 @@ +# Geometry Operators + +Perform geometric calculations and transformations. + +| **Page** | **Description** | +| --- | --- | +| [Area (Circle)](Operator-Area(Circle).md) | Calculate the area of a circle. | +| [Change Space](Operator-ChangeSpace.md) | Convert a vector from local space to world space. | +| [Distance (Line)](Operator-Distance(Line).md) | Calculate the distance between a position and the closest point on a line. | +| [Distance (Plane)](Operator-Distance(Plane).md) | Calculate the distance between a position and the closest point on a plane. | +| [Distance (Sphere)](Operator-Distance(Sphere).md) | Calculate the distance between a position and the closest point on a sphere. | +| [InvertTRS (Matrix)](Operator-InvertTRS(Matrix).md) | Invert a matrix that contains translation, rotation, and scaling. | +| [Transform (Direction)](Operator-Transform(Direction).md) | Change the position, rotation, or scale of a direction vector. | +| [Transform (Matrix)](Operator-Transform(Matrix).md) | Change the position, rotation, or scale of a matrix. | +| [Transform (Position)](Operator-Transform(Position).md) | Change the position, rotation, or scale of a position. | +| [Transform (Vector)](Operator-Transform(Vector).md) | Change the position, rotation, or scale of a vector. | +| [Transform (Vector4)](Operator-Transform(Vector4).md) | Change the position, rotation, or scale of a Vector4. | +| [Transpose (Matrix)](Operator-Transpose(Matrix).md) | Flip a matrix across its diagonal, to swap columns with rows. | +| [Volume (Axis Aligned Box)](Operator-Volume(AxisAlignedBox).md) | Calculate the volume of an axis-aligned box. | +| [Volume (Cone)](Operator-Volume(Cone).md) | Calculate the volume of a cone. | +| [Volume (Cylinder)](Operator-Volume(Cylinder).md) | Calculate the volume of a cylinder. | +| [Volume (Oriented Box)](Operator-Volume(OrientedBox).md) | Calculate the volume of an oriented box. | +| [Volume (Sphere)](Operator-Volume(Sphere).md) | Calculate the volume of a sphere. | +| [Volume (Torus)](Operator-Volume(Torus).md) | Calculate the volume of a torus. | + +## Additional resources + +- [VFX type reference](VisualEffectGraphTypeReference.md) + diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-TriggerEventAlwaysExample.png b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-TriggerEventAlwaysExample.png deleted file mode 100644 index cba99847fc2..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-TriggerEventAlwaysExample.png and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-TriggerEventOnDieExample.png b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-TriggerEventOnDieExample.png deleted file mode 100644 index ea88373471c..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-TriggerEventOnDieExample.png and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-TriggerEventRateExample.mp4 b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-TriggerEventRateExample.mp4 deleted file mode 100644 index 9dc6d9cc4ad..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-TriggerEventRateExample.mp4 and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Implicit.md b/Packages/com.unity.visualeffectgraph/Documentation~/Implicit.md new file mode 100644 index 00000000000..f60a6095f58 --- /dev/null +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Implicit.md @@ -0,0 +1,14 @@ +# Implicit Integration Blocks + +Update the position and rotation of particles. + +| **Page** | **Description** | +| --- | --- | +| [Integration: Update Position](Block-UpdatePosition.md) | Update the positions of particles. | +| [Integration: Update Rotation](Block-UpdateRotation.md) | Update the rotation of particles. | + +## Additional resources + +- [Update Context](Context-Update.md) +- [Velocity Blocks](Velocity.md) +- [Force Blocks](Force.md) diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Inline.md b/Packages/com.unity.visualeffectgraph/Documentation~/Inline.md new file mode 100644 index 00000000000..32469a03974 --- /dev/null +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Inline.md @@ -0,0 +1,47 @@ +# Inline Operators + +Store values, vectors, shapes, and textures in a graph. + +| **Page** | **Description** | +| --- | --- | +| [AABox](Operator-InlineAABox.md) | Store an axis-aligned 3D box. | +| [AnimationCurve](Operator-InlineAnimationCurve.md) | Store an animation curve. | +| [ArcCircle](Operator-InlineArcCircle.md) | Store a segment of a circle. | +| [ArcCone](Operator-InlineArcCone.md) | Store a segment of a cone. | +| [ArcSphere](Operator-InlineArcSphere.md) | Store a segment of a sphere. | +| [ArcTorus](Operator-InlineArcTorus.md) | Store a segment of a torus. | +| [bool](Operator-Inlinebool.md) | Store a Boolean. | +| [Camera](Operator-InlineCamera.md) | Store a camera. | +| [Circle](Operator-InlineCircle.md) | Store a circle. | +| [Color](Operator-InlineColor.md) | Store a color. | +| [Cone](Operator-InlineCone.md) | Store a cone. | +| [Cubemap](Operator-InlineCubemap.md) | Store a cubemap texture. | +| [CubemapArray](Operator-InlineCubemapArray.md) | Store a cubemap array. | +| [Cylinder](Operator-InlineCylinder.md) | Store a cylinder. | +| [Direction](Operator-InlineDirection.md) | Store a direction. | +| [FlipBook](Operator-InlineFlipBook.md) | Store a flipbook texture. | +| [float](Operator-Inlinefloat.md) | Store a float. | +| [Gradient](Operator-InlineGradient.md) | Store a gradient. | +| [int](Operator-Inlineint.md) | Store an integer. | +| [Line](Operator-InlineLine.md) | Store a line. | +| [Matrix4x4](Operator-InlineMatrix4x4.md) | Store a 4x4 matrix. | +| [Mesh](Operator-InlineMesh.md) | Store a mesh. | +| [OrientedBox](Operator-InlineOrientedBox.md) | Store an oriented box. | +| [Plane](Operator-InlinePlane.md) | Store a plane. | +| [Position](Operator-InlinePosition.md) | Store a position. | +| [Sphere](Operator-InlineSphere.md) | Store a sphere. | +| [TerrainType](Operator-InlineTerrainType.md) | Store a terrain type. | +| [Texture2D](Operator-InlineTexture2D.md) | Store a 2D texture. | +| [Texture2DArray](Operator-InlineTexture2DArray.md) | Store a 2D texture array. | +| [Texture3D](Operator-InlineTexture3D.md) | Store a 3D texture. | +| [Torus](Operator-InlineTorus.md) | Store a torus. | +| [Transform](Operator-InlineTransform.md) | Store position, rotation, and scale. | +| [uint](Operator-Inlineuint.md) | Store an unsigned integer. | +| [Vector](Operator-InlineVector.md) | Store a vector with one dimension. | +| [Vector2](Operator-InlineVector2.md) | Store a vector with two dimensions. | +| [Vector3](Operator-InlineVector3.md) | Store a vector with three dimensions. | +| [Vector4](Operator-InlineVector4.md) | Store a vector with four dimensions. | + +## Additional resources + +- [VFX type reference](VisualEffectGraphTypeReference.md) diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Logic.md b/Packages/com.unity.visualeffectgraph/Documentation~/Logic.md new file mode 100644 index 00000000000..438262896cb --- /dev/null +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Logic.md @@ -0,0 +1,19 @@ +# Logic Operators + +Perform Boolean operations and conditional branching. + +| **Page** | **Description** | +| --- | --- | +| [And](Operator-LogicAnd.md) | Output `true` if both inputs are `true`. | +| [Branch](Operator-Branch.md) | Test a Boolean and return different values for `true` and `false`. | +| [Compare](Operator-Compare.md) | Compare two floats based on a condition and return the result as a Boolean. | +| [Nand](Operator-LogicNand.md) | Output `true` if at least one input is `false`. | +| [Nor](Operator-LogicNor.md) | Output `true` if both inputs are `false`. | +| [Not](Operator-LogicNot.md) | Output `true` if an input is `false`, and vice versa. | +| [Or](Operator-LogicOr.md) | Output `true` if either input is `true`. | +| [Switch](Operator-Switch.md) | Compare an input to case values, and output a value depending on the case. | + +## Additional resources + +- [Bitwise Operators](Bitwise.md) + diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Math.md b/Packages/com.unity.visualeffectgraph/Documentation~/Math.md new file mode 100644 index 00000000000..735e80e7615 --- /dev/null +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Math.md @@ -0,0 +1,22 @@ +# Math Operators + +Perform calculations, conversions, and transformations. + +| **Page** | **Description** | +| --- | --- | +| [Arithmetic](Arithmetic.md) | Perform mathematical calculations on input data. | +| [Clamp](Clamp.md) | Clamp, round, or limit values. | +| [Constants](Constants.md) | Get mathematical constants. | +| [Coordinates](Coordinates.md) | Convert between coordinate systems. | +| [Exp](Operator-Exp.md) | Raise a number to a specified power. | +| [Geometry](Geometry.md) | Perform geometric calculations and transformations. | +| [Log](Operator-Log.md) | Calculate the logarithm of a number. | +| [Remap](Remap.md) | Remap values between ranges. | +| [Trigonometry](Trigonometry.md) | Perform trigonometric calculations. | +| [Vector](Vector.md) | Perform vector and matrix calculations. | +| [Wave](Wave.md) | Generate waveforms, for example to control the behavior of particles over time. | + +## Additional resources + +- [Bitwise Operators](Bitwise.md) +- [Logic Operators](Logic.md) diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Noise.md b/Packages/com.unity.visualeffectgraph/Documentation~/Noise.md new file mode 100644 index 00000000000..59356967320 --- /dev/null +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Noise.md @@ -0,0 +1,18 @@ +# Noise Operators + +Generate procedural noise patterns, for example to control the behavior of particles over time. + +| **Page** | **Description** | +| --- | --- | +| [Cellular Noise](Operator-CellularNoise.md) | Generate noise with cell-like patterns. | +| [Perlin Noise](Operator-PerlinNoise.md) | Generate noise with a smooth, natural variation. | +| [Value Noise](Operator-ValueNoise.md) | Generate noise with simple interpolated values. | +| [Cellular Curl Noise](Operator-CellularCurlNoise.md) | Create cell-like patterns that simulate fluid or gas. | +| [Perlin Curl Noise](Operator-PerlinCurlNoise.md) | Generate noise that simulates a fluid or gas with smooth variations. | +| [Value Curl Noise](Operator-ValueCurlNoise.md) | Generate noise that simulates a fluid or gas with simple interpolated values. | + +## Additional resources + +- [Wave Operators](Wave.md) +- [Random Operators](Random.md) +- [Sampling Operators](Sampling.md) diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-PerlinCurlNoise.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-PerlinCurlNoise.md index 5d520110a21..41840f8b97f 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-PerlinCurlNoise.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-PerlinCurlNoise.md @@ -28,4 +28,4 @@ A good use case for Curl Noise is emulating fluid or gas simulation, without hav | **Output** | **Type** | **Description** | | ---------- | -------- | ---------------------------------------------- | -| **Noise** | Float | The noise value at the coordinate you specify. | +| **Noise** | Float, Vector2, or Vector3 | The noise value at the coordinate you specify. | diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator.md new file mode 100644 index 00000000000..47ad734c6bc --- /dev/null +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator.md @@ -0,0 +1,29 @@ +# Operators + +Calculate, convert, and manipulate data for particles and effects. + +| **Page** | **Description** | +| --- | --- | +| [Attribute Operators](OperatorAttribute.md) | Get the data from particle attributes. | +| [Bitwise Operators](Bitwise.md) | Perform bitwise logical operations on inputs. | +| [Built-in Operators](Builtin.md) | Get time, frame indices, camera data, and coordinates. | +| [Camera Operators](Camera.md) | Convert positions between view space and world space. | +| [Color Operators](Color.md) | Output and convert color values. | +| [Custom HLSL Operator](Operator-CustomHLSL.md) | Write an HLSL function that takes inputs and produces outputs. | +| [Inline Operators](Inline.md) | Store values, vectors, shapes, and textures. | +| [Logic Operators](Logic.md) | Perform Boolean operations and conditional branching. | +| [Math](Math.md) | Perform mathematical calculations on input data. | +| [Noise Operators](Noise.md) | Generate procedural noise patterns, for example to control the behavior of particles over time. | +| [Random Operators](Random.md) | Generate random values or select random outputs. | +| [Sampling Operators](Sampling.md) | Fetch data from buffers, meshes, and textures. | +| [Spawn State](Operator-SpawnState.md) | Get information such as the number of particles spawned in the current frame, and the duration of the spawn loop. | +| [Point Cache](Operator-PointCache.md) | Get the attribute maps and point count stored in a Point Cache. | + +## Additional resources + +- [Operators (Graph Logic & Philosophy)](Operators.md) +- [Arithmetic Operators](Arithmetic.md) +- [Vector Operators](Vector.md) + + + diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/OperatorAttribute.md b/Packages/com.unity.visualeffectgraph/Documentation~/OperatorAttribute.md new file mode 100644 index 00000000000..44325d6053e --- /dev/null +++ b/Packages/com.unity.visualeffectgraph/Documentation~/OperatorAttribute.md @@ -0,0 +1,41 @@ +# Attribute Operators + +Get the data from [particle attributes](Attributes.md). + +| **Page** | **Description** | +| --- | --- | +| [Age Over Lifetime](Operator-AgeOverLifetime.md) | Get the age of a particle relative to its lifetime. | +| [Get Attribute: age](Operator-GetAttributeAge.md) | Get the time since a particle spawned. | +| [Get Attribute: alive](Operator-GetAttributeAlive.md) | Get whether a particle is alive or not. | +| [Get Attribute: alpha](Operator-GetAttributeAlpha.md) | Get the alpha value of a rendered particle. | +| [Get Attribute: angle](Operator-GetAttributeAngle.md) | Get the rotation of a particle. | +| [Get Attribute: angularVelocity](Operator-GetAttributeAngularVelocity.md) | Get the rotation speed of a particle. | +| [Get Attribute: axisX](Operator-GetAttributeAxisX.md) | Get the x-axis of a particle. | +| [Get Attribute: axisY](Operator-GetAttributeAxisY.md) | Get the y-axis of a particle. | +| [Get Attribute: axisZ](Operator-GetAttributeAxisZ.md) | Get the z-axis of a particle. | +| [Get Attribute: color](Operator-GetAttributeColor.md) | Get the color of a particle. | +| [Get Attribute: direction](Operator-GetAttributeDirection.md) | Get the direction of a particle. | +| [Get Attribute: lifetime](Operator-GetAttributeLifetime.md) | Get the amount of time a particle should live for. | +| [Get Attribute: mass](Operator-GetAttributeMass.md) | Get the mass of a particle. | +| [Get Attribute: oldPosition](Operator-GetAttributeOldPosition.md) | Get the position of a particle before velocity is added. | +| [Get Attribute: particleCountInStrip](Operator-GetAttributeParticleCountInStrip.md) | Get the number of particles in a particle strip. | +| [Get Attribute: particleId](Operator-GetAttributeParticleID.md) | Get a unique ID that identifies a particle. | +| [Get Attribute: particleIndexInStrip](Operator-GetAttributeParticleIndexInStrip.md) | Get the index of a particle in its particle strip. | +| [Get Attribute: pivot](Operator-GetAttributePivot.md) | Get the origin coordinates of a particle. | +| [Get Attribute: position](Operator-GetAttributePosition.md) | Get the position of a particle. | +| [Get Attribute: scale](Operator-GetAttributeScale.md) | Get the scale of the particle. | +| [Get Attribute: seed](Operator-GetAttributeSeed.md) | Get the random number value of a particle. | +| [Get Attribute: size](Operator-GetAttributeSize.md) | Get the size of a particle. | +| [Get Attribute: spawnIndex](Operator-GetAttributeSpawnIndex.md) | Get the index of a particle when it spawned. | +| [Get Attribute: spawnTime](Operator-GetAttributeSpawnTime.md) | Get the time that the particle spawned. | +| [Get Attribute: stripIndex](Operator-GetAttributeStripIndex.md) | Get the index of the particle strip a particle belongs to. | +| [Get Attribute: targetPosition](Operator-GetAttributeTargetPosition.md) | Get the target coordinates of a particle. | +| [Get Attribute: texIndex](Operator-GetAttributeTexIndex.md) | Get the frame number from a flipbook texture a particle uses. | +| [Get Attribute: velocity](Operator-GetAttributeVelocity.md) | Get the current velocity of a particle. | +| [Get Custom Attribute](Operator-GetCustomAttribute.md) | Get the value of a custom attribute. | + +## Additional resources + +- [Attributes](Attributes.md) +- [Standard Attribute Reference](Reference-Attributes.md) +- [Attribute Blocks](Attribute.md) diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Orientation.md b/Packages/com.unity.visualeffectgraph/Documentation~/Orientation.md new file mode 100644 index 00000000000..d081a1a655e --- /dev/null +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Orientation.md @@ -0,0 +1,14 @@ +# Orientation Blocks + +Change the direction that particles face. + +| **Page** | **Description** | +| --- | --- | +| [Connect Target](Block-ConnectTarget.md) | Scale and rotate particles so they connect to a specified target position. | +| [Orient: Face [Mode]](Block-Orient.md) | Rotate particles so they face a particular direction. | + +## Additional resources + +- [Implicit Integration Blocks](Implicit.md) +- [Velocity Blocks](Velocity.md) + diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Output.md b/Packages/com.unity.visualeffectgraph/Documentation~/Output.md new file mode 100644 index 00000000000..cd64badda74 --- /dev/null +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Output.md @@ -0,0 +1,14 @@ +# Output Blocks + +Control particle output and rendering. + +| **Page** | **Description** | +| --- | --- | +| [Camera Fade](Block-CameraFade.md) | Fade out particles when they're too close to the near plane of the camera. | +| [Subpixel Anti-Aliasing](Block-SubpixelAntiAliasing.md) | Enlarge particles to ensure they cover at least one pixel on-screen. | + +## Additional resources + +- [Output Mesh](Context-OutputMesh.md) +- [Output Particle Mesh](Context-OutputParticleMesh.md) +- [Output Particle Point](Context-OutputPoint.md) diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/PipelineTools.md b/Packages/com.unity.visualeffectgraph/Documentation~/PipelineTools.md new file mode 100644 index 00000000000..66c9eb85843 --- /dev/null +++ b/Packages/com.unity.visualeffectgraph/Documentation~/PipelineTools.md @@ -0,0 +1,17 @@ +# Pipeline tools + +Explore tools and techniques for working with complex shapes and custom behaviors. + +| **Page** | **Description** | +| --- | --- | +| [Representing Complex Shapes](representing-complex-shapes.md) | Use Signed Distance Fields (SDFs) and Point Caches to create complex shapes. | +| [ExposedProperty Helper](ExposedPropertyHelper.md) | Store and access properties in shaders. | +| [Vector Fields](VectorFields.md) | Use 3D shapes as 3D textures to control the behavior of particles. | +| [Spawner Callbacks](SpawnerCallbacks.md) | Use a C# API to control spawning, and access the spawn count and spawn events. | + +## Additional resources +- [Point Caches in the Visual Effect Graph](point-cache-in-vfx-graph.md) +- [Point Cache Bake Tool](point-cache-bake-tool.md) +- [Signed Distance Fields in the Visual Effect Graph](sdf-in-vfx-graph.md) + + diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Random.md b/Packages/com.unity.visualeffectgraph/Documentation~/Random.md new file mode 100644 index 00000000000..a7cce18e13a --- /dev/null +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Random.md @@ -0,0 +1,15 @@ +# Random Operators + +Generate random values or select random outputs. + +| **Page** | **Description** | +| --- | --- | +| [Random Number](Operator-RandomNumber.md) | Generate a pseudo-random number within a specified range. | +| [Random Selector Weighted](Operator-RandomSelectorWeighted.md) | Select an output at random with custom weights. | + +## Additional resources + +- [Noise Operators](Noise.md) +- [Wave Operators](Wave.md) +- [Sampling Operators](Sampling.md) + diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Reference.md b/Packages/com.unity.visualeffectgraph/Documentation~/Reference.md new file mode 100644 index 00000000000..cbf86c6fff4 --- /dev/null +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Reference.md @@ -0,0 +1,15 @@ +# Reference + +Explore the standard attributes and types in Visual Effect Graph. + +| **Type** | **Description** | +| --- | --- | +| [Standard Attributes](Reference-Attributes.md) | Explore the attributes that contain the position, direction, appearance, and lifetime of a particle. | +| [Types](VisualEffectGraphTypeReference.md) | Explore types, including standard types and advanced types. | + +## Additional resources + +- [Attributes](Attributes.md) +- [Properties](Properties.md) + + diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Remap.md b/Packages/com.unity.visualeffectgraph/Documentation~/Remap.md new file mode 100644 index 00000000000..6627793f678 --- /dev/null +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Remap.md @@ -0,0 +1,9 @@ +# Remap Operators + +Remap values to different ranges. + +| **Page** | **Description** | +| --- | --- | +| [Remap](Operator-Remap.md) | Remap input values from an old range to a new range. | +| [Remap [0..1] => [-1..1]](Operator-Remap(-11).md) | Remap input values from 0 to 1 range, to -1 to 1 range. | +| [Remap [-1..1] => [0..1]](Operator-Remap(01).md) | Remap input values from -1 to 1 range, to 0 to 1 range. | \ No newline at end of file diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Sampling.md b/Packages/com.unity.visualeffectgraph/Documentation~/Sampling.md new file mode 100644 index 00000000000..896dac7b592 --- /dev/null +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Sampling.md @@ -0,0 +1,42 @@ +# Sampling Operators + +Fetch data from buffers, meshes, and textures. + +| **Page** | **Description** | +| --- | --- | +| [Buffer Count](Operator-BufferCount.md) | Get the number of elements in a `GraphicsBuffer`. | +| [Get Mesh Index Count](Operator-MeshIndexCount.md) | Get the number of indices in a mesh. | +| [Get Mesh Triangle Count](Operator-MeshTriangleCount.md) | Get the number of triangles in a mesh. | +| [Get Mesh Vertex Count](Operator-MeshVertexCount.md) | Get the number of vertices in a mesh. | +| [Get Skinned Mesh Index Count](Operator-SkinnedMeshIndexCount.md) | Get the number of indices in a skinned mesh. | +| [Get Skinned Mesh Triangle Count](Operator-SkinnedMeshTriangleCount.md) | Get the number of triangles in a skinned mesh. | +| [Get Skinned Mesh Vertex Count](Operator-SkinnedMeshVertexCount.md) | Get the number of vertices in a skinned mesh. | +| [Get Skinned Mesh Local Root Transform](Operator-SkinnedLocalTransform.md) | Get the transform of a root bone in a skinned mesh, relative to the Skinned Mesh Renderer. | +| [Get Skinned Mesh World Root Transform](Operator-SkinnedWorldTransform.md) | Get the transform of a root bone in a skinned mesh, relative to the world. | +| [Get Texture Dimensions](Operator-GetTextureDimensions.md) | Get the dimensions of a texture. | +| [Load CameraBuffer](Operator-LoadCameraBuffer.md) | Sample the camera buffer. | +| [Load Texture2D](Operator-LoadTexture2D.md) | Sample a 2D texture. | +| [Load Texture2DArray](Operator-LoadTexture2DArray.md) | Sample a 2D texture array. | +| [Load Texture3D](Operator-LoadTexture3D.md) | Sample a 3D texture. | +| [Position (Depth)](Operator-Position(Depth).md) | Sample the depth buffer of the camera. | +| [Sample Graphics Buffer](Operator-SampleBuffer.md) | Fetch and sample a structured `GraphicsBuffer`. | +| [Sample CameraBuffer](Operator-SampleCameraBuffer.md) | Sample the camera buffer using pixel dimensions and UVs. | +| [Sample Curve](Operator-SampleCurve.md) | Sample a curve. | +| [Sample Gradient](Operator-SampleGradient.md) | Sample a gradient. | +| [Sample Mesh](Operator-SampleMesh.md) | Get the vertex data of a mesh. | +| [Sample Mesh Index](Operator-SampleMeshIndex.md) | Get the index buffer data of geometry. | +| [Sample Skinned Mesh](Operator-SampleSkinnedMesh.md) | Get the vertex data of a skinned mesh. | +| [Sample Signed Distance Field](Operator-SampleSDF.md) | Get the distance field stored in a 3D texture. | +| [Sample Texture2D](Operator-SampleTexture2D.md) | Sample a 2D texture using UV coordinates and mipmap level. | +| [Sample Texture2DArray](Operator-SampleTexture2DArray.md) | Sample a 2D texture array using a slice, UV coordinates, and mipmap level. | +| [Sample Texture3D](Operator-SampleTexture3D.md) | Sample a 3D texture using UV coordinates and mipmap level. | +| [Sample TextureCube](Operator-SampleTextureCube.md) | Sample a cubemap texture using a direction vector and mipmap level. | +| [Sample TextureCubeArray](Operator-SampleTextureCubeArray.md) | Sample a cubemap array using a slice, direction vector, and mipmap level. | +| [Sample Attribute Map](Operator-SampleAttributeMap.md) | Sample an attribute map from a Point Cache. | + +## Additional resources + +- [Noise Operators](Noise.md) +- [Wave Operators](Wave.md) +- [Random Operators](Random.md) + diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/ShaderGraphIntegration.md b/Packages/com.unity.visualeffectgraph/Documentation~/ShaderGraphIntegration.md new file mode 100644 index 00000000000..38528c16d10 --- /dev/null +++ b/Packages/com.unity.visualeffectgraph/Documentation~/ShaderGraphIntegration.md @@ -0,0 +1,14 @@ +# Shader Graph integration + +Use [Shader Graph](https://docs.unity3d.com/Manual/shader-graph.html) to create custom shaders for visual effects. + +| **Page** | **Description** | +| --- | --- | +| [Working with Shader Graph in Visual Effect Graph](sg-working-with.md) | Make a shader graph compatible with Visual Effect Graph, and use it to render particles. | +| [Visual Effect Target](sg-target-visual-effect.md) | Create custom lit and unlit shader graphs to use in visual effects. This feature is deprecated and will be removed in a future release. | + +## Additional resources + +- [Working with Shader Graph in Visual Effect Graph](sg-working-with.md) +- [Visual Effect Target](sg-target-visual-effect.md) +- [Output ShaderGraph Mesh](Context-OutputShaderGraphMesh.md) diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/SharedOutputSettings.md b/Packages/com.unity.visualeffectgraph/Documentation~/SharedOutputSettings.md new file mode 100644 index 00000000000..d0b4e59e0f2 --- /dev/null +++ b/Packages/com.unity.visualeffectgraph/Documentation~/SharedOutputSettings.md @@ -0,0 +1,14 @@ +# Shared Output Settings + +Explore the settings that appear in multiple outputs in Visual Effect Graph. + +| Page | Description | +|-|-| +|[Global Settings](Context-OutputSharedSettings.md)|Explore the settings and property that all outputs share. | +|[Lit Output Settings](Context-OutputLitSettings.md)|Explore outputs that receive lighting information, and support texture and material types that relate to lighting. | + +## Additional resources + +- [Output Blocks](Output.md) +- [Output Event Handlers](OutputEventHandlers.md) + diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Spawn.md b/Packages/com.unity.visualeffectgraph/Documentation~/Spawn.md new file mode 100644 index 00000000000..4d881dd1710 --- /dev/null +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Spawn.md @@ -0,0 +1,18 @@ +# Spawn Blocks + +Customize behavior for spawning particles. + +| **Page** | **Description** | +| --- | --- | +| [Constant Spawn Rate](Block-ConstantRate.md) | Spawn a specific number of particles per second. | +| [Single Burst](Block-Burst.md) | Use the Single/Periodic Burst Block to spawn particles instantly either once, or periodically using a delay. | +| [Periodic Burst](Block-Burst.md) | Use the Single/Periodic Burst Block to spawn particles at regular intervals. | +| [Variable Spawn Rate](Block-VariableRate.md) | Spawn a variable number of particles per second. | +| [Attribute > Set Spawn Event ](Block-SetSpawnEvent.md) | Modify the content of attributes stored in the Context event attribute. | +| [Custom](CustomSpawn.md) | Explore blocks that let you customize advanced behavior for spawning particles. | + +## Additional resources + +- [Spawn](Context-Spawn.md) +- [Spawner Callbacks](SpawnerCallbacks.md) +- [Events](Events.md) diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/TableOfContents.md b/Packages/com.unity.visualeffectgraph/Documentation~/TableOfContents.md index 69fcdca2485..b4fbbbb22da 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/TableOfContents.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/TableOfContents.md @@ -39,10 +39,10 @@ * [Property Binders](PropertyBinders.md) * [Event Binders](EventBinders.md) * [Output Event Handlers](OutputEventHandlers.md) -* Shader Graph Integration +* [Shader Graph Integration](ShaderGraphIntegration.md) * [Shader Graphs in Visual Effects](sg-working-with.md) * [Visual Effect Target](sg-target-visual-effect.md) -* Pipeline Tools +* [Pipeline Tools](PipelineTools.md) * [Representing Complex Shapes](representing-complex-shapes.md) * [Signed Distance Fields](sdf-in-vfx-graph.md) * [SDF Bake Tool](sdf-bake-tool.md) @@ -55,7 +55,7 @@ * [Vector Fields](VectorFields.md) * [Spawner Callbacks](SpawnerCallbacks.md) * [Node Library](node-library.md) - * Context + * [Context](Context.md) * [Event](Context-Event.md) * [GPU Event](Context-GPUEvent.md) * [Initialize Particle](Context-Initialize.md) @@ -72,24 +72,24 @@ * [Output ShaderGraph Quad](Context-OutputShaderGraphPlanarPrimitive.md) * [Ouput Particle ShaderGraph Mesh](Context-OutputShaderGraphMesh.md) * [Output ParticleStrip ShaderGraph Quad](Context-OutputShaderGraphStrip.md) - * Shared Output Settings + * [Shared Output Settings](SharedOutputSettings.md) * [Global Settings](Context-OutputSharedSettings.md) * [Lit Output Settings](Context-OutputLitSettings.md) * [Spawn](Context-Spawn.md) * [Update Particle](Context-Update.md) - * Block - * Attribute + * [Block](Block.md) + * [Attribute](Attribute.md) * [Curve](Block-SetAttributeFromCurve.md) - * Derived - * [Calculate Mass from Volume](Block-CalculateMassFromVolume.md) + * [Derived > Calculate Mass from Volume](Block-CalculateMassFromVolume.md) * [Map](Block-SetAttributeFromMap.md) * [Set](Block-SetAttribute.md) * [Collision](Block-Collision-LandingPage.md) * [Collision Shape](Block-CollisionShape.md) * [Collision Depth Buffer](Block-CollideWithDepthBuffer.md) - * Flipbook + * [Kill Shape](Block-KillShape.md) + * [Trigger Shape](Block-TriggerShape.md) * [Flipbook Player](Block-FlipbookPlayer.md) - * Force + * [Force](Force.md) * [Attractor Shape Signed Distance Field](Block-ConformToSignedDistanceField.md) * [Attractor Shape Sphere](Block-ConformToSphere.md) * [Force](Block-Force.md) @@ -97,22 +97,14 @@ * [Linear Drag](Block-LinearDrag.md) * [Turbulence](Block-Turbulence.md) * [Vector Force Field](Block-VectorForceField.md) - * GPU Event - * [Trigger Event Always](Block-TriggerEventAlways.md) - * [Trigger Event On Die](Block-TriggerEventOnDie.md) - * [Trigger Event Rate](Block-TriggerEventRate.md) - * HLSL - * [Custom HLSL](Block-CustomHLSL.md) - * Implicit + * [HLSL > Custom HLSL](Block-CustomHLSL.md) + * [Implicit](Implicit.md) * [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 + * [Orientation](Orientation.md) * [Connect Target](Block-ConnectTarget.md) * [Orient](Block-Orient.md) - * Output + * [Output](Output.md) * [Camera Fade](Block-CameraFade.md) * [Subpixel Anti-Aliasing](Block-SubpixelAntiAliasing.md) * [Position Shape](Block-SetPositionShape-LandingPage.md) @@ -122,27 +114,26 @@ * [Set Position Shape](Block-SetPositionShape.md) * [Set Position (Sequential)](Block-SetPosition(Sequential).md) * [Tile/Warp Positions](Block-TileWarpPositions.md) - * Size - * [Screen Space Size](Block-ScreenSpaceSize.md) - * Spawn + * [Size > Screen Space Size](Block-ScreenSpaceSize.md) + * [Spawn](Spawn.md) * [Constant Spawn Rate](Block-ConstantRate.md) * [Periodic Burst](Block-Burst.md) * [Single Burst](Block-Burst.md) * [Variable Spawn Rate](Block-VariableRate.md) - * Attribute - * [Set Spawn Event \](Block-SetSpawnEvent.md) - * Custom + * [Attribute > Set Spawn Event \](Block-SetSpawnEvent.md) + * [Custom Spawn Blocks](CustomSpawn.md) * [Increment Strip Index On Start](Block-IncrementStripIndexOnStart.md) * [Set Spawn Time](Block-SetSpawnTime.md) * [Spawn Over Distance](Block-SpawnOverDistance.md) - * Velocity + * [Trigger Event Block reference](Block-Trigger-Event.md) + * [Velocity](Velocity.md) * [Velocity from Direction & Speed (Change Speed)](Block-VelocityFromDirectionAndSpeed(ChangeSpeed).md) * [Velocity from Direction & Speed (New Direction)](Block-VelocityFromDirectionAndSpeed(NewDirection).md) * [Velocity from Direction & Speed (Random Direction)](Block-VelocityFromDirectionAndSpeed(RandomDirection).md) * [Velocity from Direction & Speed (Spherical)](Block-VelocityFromDirectionAndSpeed(Spherical).md) * [Velocity from Direction & Speed (Tangent)](Block-VelocityFromDirectionAndSpeed(Tangent).md) - * Operator - * Attribute + * [Operator](Operator.md) + * [Attribute](OperatorAttribute.md) * [Age Over Lifetime](Operator-AgeOverLifetime.md) * [Get Attribute: age](Operator-GetAttributeAge.md) * [Get Attribute: alive](Operator-GetAttributeAlive.md) @@ -172,31 +163,30 @@ * [Get Attribute: texIndex](Operator-GetAttributeTexIndex.md) * [Get Attribute: velocity](Operator-GetAttributeVelocity.md) * [Get Custom Attribute](Operator-GetCustomAttribute.md) - * Bitwise + * [Bitwise](Bitwise.md) * [And](Operator-BitwiseAnd.md) * [Complement](Operator-BitwiseComplement.md) * [Left Shift](Operator-BitwiseLeftShift.md) * [Or](Operator-BitwiseOr.md) * [Right Shift](Operator-BitwiseRightShift.md) * [Xor](Operator-BitwiseXor.md) - * Builtin + * [Built-in](Builtin.md) * [Delta Time](Operator-DeltaTime.md) * [Frame Index](Operator-FrameIndex.md) * [Local to World](Operator-LocalToWorld.md) - * [Main Camera](Operator-MainCamera.md) * [System Seed](Operator-SystemSeed.md) * [Total Time](Operator-TotalTime.md) * [World to Local](Operator-WorldToLocal.md) - * Camera + * [Camera](Camera.md) + * [Main Camera](Operator-MainCamera.md) * [Viewport to World Point](Operator-ViewportToWorldPoint.md) * [World to Viewport Point](Operator-WorldToViewportPoint.md) - * Color + * [Color](Color.md) * [Color Luma](Operator-ColorLuma.md) * [HSV to RGB](Operator-HSVToRGB.md) * [RBG to HSV](Operator-RGBToHSV.md) - * HLSL - * [Custom HLSL](Operator-CustomHLSL.md) - * Inline + * [HLSL > Custom HLSL](Operator-CustomHLSL.md) + * [Inline](Inline.md) * [AABox](Operator-InlineAABox.md) * [AnimationCurve](Operator-InlineAnimationCurve.md) * [ArcCircle](Operator-InlineArcCircle.md) @@ -234,7 +224,7 @@ * [Vector2](Operator-InlineVector2.md) * [Vector3](Operator-InlineVector3.md) * [Vector4](Operator-InlineVector4.md) - * Logic + * [Logic](Logic.md) * [And](Operator-LogicAnd.md) * [Branch](Operator-Branch.md) * [Compare](Operator-Compare.md) @@ -243,8 +233,8 @@ * [Not](Operator-LogicNot.md) * [Or](Operator-LogicOr.md) * [Switch](Operator-Switch.md) - * Math - * Arithmetic + * [Math](Math.md) + * [Arithmetic](Arithmetic.md) * [Absolute](Operator-Absolute.md) * [Add](Operator-Add.md) * [Divide](Operator-Divide.md) @@ -262,7 +252,7 @@ * [Square Root](Operator-SquareRoot.md) * [Step](Operator-Step.md) * [Subtract](Operator-Subtract.md) - * Clamp + * [Clamp](Clamp.md) * [Ceiling](Operator-Ceiling.md) * [Clamp](Operator-Clamp.md) * [Discretize](Operator-Discretize.md) @@ -271,17 +261,16 @@ * [Minimum](Operator-Minimum.md) * [Round](Operator-Round.md) * [Saturate](Operator-Saturate.md) - * Constants + * [Constants](Constants.md) * [Epsilon](Operator-Epsilon.md) * [Pi](Operator-Pi.md) - * Coordinates + * [Coordinates](Coordinates.md) * [Polar to Rectangular](Operator-PolarToRectangular.md) * [Rectangular to Polar](Operator-RectangularToPolar.md) * [Rectangular to Spherical](Operator-RectangularToSpherical.md) * [Spherical to Rectangular](Operator-SphericalToRectangular.md) - * Exp - * [Exp](Operator-Exp.md) - * Geometry + * [Exp](Operator-Exp.md) + * [Geometry](Geometry.md) * [Area (Circle)](Operator-Area(Circle).md) * [Change Space](Operator-ChangeSpace.md) * [Distance (Line)](Operator-Distance(Line).md) @@ -300,13 +289,12 @@ * [Volume (Oriented Box)](Operator-Volume(OrientedBox).md) * [Volume (Sphere)](Operator-Volume(Sphere).md) * [Volume (Torus)](Operator-Volume(Torus).md) - * Log - * [Log](Operator-Log.md) - * Remap + * [Log](Operator-Log.md) + * [Remap](Remap.md) * [Remap](Operator-Remap.md) * [Remap [0..1] => [-1..1]](Operator-Remap(-11).md) * [Remap [-1..1] => [0..1]](Operator-Remap(01).md) - * Trigonometry + * [Trigonometry](Trigonometry.md) * [Acos](Operator-Acos.md) * [Asin](Operator-Asin.md) * [Atan](Operator-Atan.md) @@ -314,7 +302,7 @@ * [Cosine](Operator-Cosine.md) * [Sine](Operator-Sine.md) * [Tangent](Operator-Tangent.md) - * Vector + * [Vector](Vector.md) * [Append Vector](Operator-AppendVector.md) * [Construct Matrix](Operator-ConstructMatrix.md) * [Cross Product](Operator-CrossProduct.md) @@ -329,22 +317,22 @@ * [Squared Distance](Operator-SquaredDistance.md) * [Squared Length](Operator-SquaredLength.md) * [Swizzle](Operator-Swizzle.md) - * Wave + * [Wave](Wave.md) * [Sawtooth Wave](Operator-SawtoothWave.md) * [Sine Wave](Operator-SineWave.md) * [Square Wave](Operator-SquareWave.md) * [Triangle Wave](Operator-TriangleWave.md) - * Noise + * [Noise](Noise.md) * [Cellular Curl Noise](Operator-CellularCurlNoise.md) * [Cellular Noise](Operator-CellularNoise.md) * [Perlin Curl Noise](Operator-PerlinCurlNoise.md) * [Perlin Noise](Operator-PerlinNoise.md) * [Value Curl Noise](Operator-ValueCurlNoise.md) * [Value Noise](Operator-ValueNoise.md) - * Random + * [Random](Random.md) * [Random Number](Operator-RandomNumber.md) - * [Random Selector](Operator-RandomSelectorWeighted.md) - * Sampling + * [Random Selector](Operator-RandomSelectorWeighted.md) + * [Sampling](Sampling.md) * [Buffer Count](Operator-BufferCount.md) * [Get Mesh Index Count](Operator-MeshIndexCount.md) * [Get Mesh Triangle Count](Operator-MeshTriangleCount.md) @@ -375,13 +363,10 @@ * [Sample TextureCube](Operator-SampleTextureCube.md) * [Sample TextureCubeArray](Operator-SampleTextureCubeArray.md) * [Sample Attribute Map](Operator-SampleAttributeMap.md) - * Spawn - * [Spawn State](Operator-SpawnState.md) - * Utility - * [Point Cache](Operator-PointCache.md) -* Performance and Optimization - * [Profiling and Debug Panels](performance-debug-panel.md) -* Reference + * [Spawn > Spawn State](Operator-SpawnState.md) + * [Utility > Point Cache](Operator-PointCache.md) +* [Performance and optimization](performance-debug-panel.md) +* [Reference](Reference.md) * [Standard Attributes](Reference-Attributes.md) * [Types](VisualEffectGraphTypeReference.md) * [AABox](Type-AABox.md) diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Trigonometry.md b/Packages/com.unity.visualeffectgraph/Documentation~/Trigonometry.md new file mode 100644 index 00000000000..0d3658633e8 --- /dev/null +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Trigonometry.md @@ -0,0 +1,18 @@ +# Trigonometric Operators + +Perform trigonometric calculations. + +| **Page** | **Description** | +| --- | --- | +| [Acos](Operator-Acos.md) | Calculate the arccosine (inverse cosine) of an input. | +| [Asin](Operator-Asin.md) | Calculate the arcsine (inverse sine) of an input. | +| [Atan](Operator-Atan.md) | Calculate the arctangent (inverse tangent) of an input. | +| [Atan2](Operator-Atan2.md) | Calculate the angle between the x-axis and a vector. | +| [Cosine](Operator-Cosine.md) | Calculate the cosine of an input. | +| [Sine](Operator-Sine.md) | Calculate the sine of an input. | +| [Tangent](Operator-Tangent.md) | Calculate the tangent of an input. | + +## Additional resources + +- [Math Operators](Math.md) + diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Vector.md b/Packages/com.unity.visualeffectgraph/Documentation~/Vector.md new file mode 100644 index 00000000000..d46a00d38b6 --- /dev/null +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Vector.md @@ -0,0 +1,25 @@ +# Vector Operators + +Perform vector and matrix calculations. + +| **Page** | **Description** | +| --- | --- | +| [Append Vector](Operator-AppendVector.md) | Combine up to four inputs into a single vector. | +| [Construct Matrix](Operator-ConstructMatrix.md) | Construct a 4x4 matrix from four `Vector4` values. | +| [Cross Product](Operator-CrossProduct.md) | Calculate the vector that's perpendicular to two input vectors | +| [Distance](Operator-Distance.md) | Calculate the distance between two points. | +| [Dot Product](Operator-DotProduct.md) | Determine whether two normalized vectors point in the same direction. | +| [Length](Operator-Length.md) | Calculate the length of a vector. | +| [Look At](Operator-LookAt.md) | Calculate the transform required to rotate a particle to look at a position. | +| [Normalize](Operator-Normalize.md) | Normalize a vector. | +| [Rotate 2D](Operator-Rotate2D.md) | Rotate a point in 2D around a center point. | +| [Rotate 3D](Operator-Rotate3D.md) | Rotate a point in 3D around a center point. | +| [Sample Bezier](Operator-SampleBezier.md) | Return information about a curve. | +| [Squared Distance](Operator-SquaredDistance.md) | Calculate the square of the distance between two points. | +| [Squared Length](Operator-SquaredLength.md) | Calculate the square of the length of a vector. | +| [Swizzle](Operator-Swizzle.md) | Rearrange the components of an input vector. | + +## Additional resources + +- [Math Operators](Math.md) +- [Geometry Operators](Geometry.md) diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Velocity.md b/Packages/com.unity.visualeffectgraph/Documentation~/Velocity.md new file mode 100644 index 00000000000..cb14d7ffd83 --- /dev/null +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Velocity.md @@ -0,0 +1,16 @@ +# Velocity Blocks + +Dynamically adjust the velocity of particles. + +| **Page** | **Description** | +| --- | --- | +| [Velocity from Direction & Speed (Change Speed)](Block-VelocityFromDirectionAndSpeed(ChangeSpeed).md) | Calculate velocity by scaling the direction of the particle using its speed. | +| [Velocity from Direction & Speed (New Direction)](Block-VelocityFromDirectionAndSpeed(NewDirection).md) | Calculate velocity by scaling a new direction vector using the speed of the particle. | +| [Velocity from Direction & Speed (Random Direction)](Block-VelocityFromDirectionAndSpeed(RandomDirection).md) | Calculate velocity by scaling a random direction vector using the speed of the particle. | +| [Velocity from Direction & Speed (Spherical)](Block-VelocityFromDirectionAndSpeed(Spherical).md) | Calculate velocity by scaling a spherical direction vector using the speed of the particle. | +| [Velocity from Direction & Speed (Tangent)](Block-VelocityFromDirectionAndSpeed(Tangent).md) | Calculate velocity by scaling a tangent direction vector using the speed of the particle. | + +## Additional resources + +- [Force Blocks](Force.md) +- [Implicit Integration Blocks](Implicit.md) diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Wave.md b/Packages/com.unity.visualeffectgraph/Documentation~/Wave.md new file mode 100644 index 00000000000..abe7993164e --- /dev/null +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Wave.md @@ -0,0 +1,18 @@ +# Wave Operators + +Generate waveforms, for example to control the behavior of particles over time. + +| **Page** | **Description** | +| --- | --- | +| [Sawtooth Wave](Operator-SawtoothWave.md) | Generate a waveform that increases, then resets and repeats. | +| [Sine Wave](Operator-SineWave.md) | Generate a waveform that smoothly oscillates between two values. | +| [Square Wave](Operator-SquareWave.md) | Generate a value that alternates between two values. | +| [Triangle Wave](Operator-TriangleWave.md) | Generate a value that oscillates between two values. | + +## Additional resources + +- [Noise Operators](Noise.md) +- [Math Operators](Math.md) +- [Sampling Operators](Sampling.md) + + diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/performance-debug-panel.md b/Packages/com.unity.visualeffectgraph/Documentation~/performance-debug-panel.md index f697681dcb3..21e048b85c6 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/performance-debug-panel.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/performance-debug-panel.md @@ -1,13 +1,15 @@ -# Profiling and Debug Panels +# Performance and optimization -The Profiling and Debug panels provide useful information about your running Visual Effects, such as CPU and GPU timings, memory usage, texture usage, and various states. These allow you to keep the performance of your effects under control while you author them. +To optimize performance, use the **Profiling** and **Debug** panels. -To enable the Profiling and Debug panels, follow these steps: +The **Profiling** and **Debug** panels provide useful information about your running Visual Effects, such as CPU and GPU timings, memory usage, texture usage, and various states. These allow you to keep the performance of your effects under control while you author them. + +To enable the **Profiling** and **Debug** panels, follow these steps: 1. Attach the **Visual Effect Graph** window to a GameObject that has a **Visual Effect** component. For more information, refer to [Attaching a Visual Effect](GettingStarted.md#attaching-a-visual-effect-from-the-scene-to-the-current-graph). 2. Select the debug icon in the top-right of the **Visual Effect Graph** window. -All the information displayed in the Profiling and Debug panels refers to the attached GameObject. +All the information displayed in the **Profiling** and **Debug** panels refers to the attached GameObject. ## Graph Debug Information @@ -20,10 +22,10 @@ The Graph Debug Information panel provides information relative to the entire gr | **Texture Usage** | For each system, lists the textures used along with their dimension and memory size. | | **Heatmap parameter** |
  • GPU Time Threshold (ms): This controls the value, in milliseconds, above which the execution times in the panels will turn red. Adjust this value to easily identify expensive parts for your graph.
  • | -Shortcuts to the **Rendering Debugger** [in URP](https://docs.unity3d.com/Manual/urp/features/rendering-debugger.html) or [in HDRP](https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@latest/index.html?subfolder=/manual/rendering-debugger-window-reference.html) and to the [Unity Profiler](https://docs.unity3d.com/Manual/Profiler.html) are available through the menu on the top-right of the Graph Debug Information panel. +Shortcuts to the **Rendering Debugger** [in URP](https://docs.unity3d.com/Manual/urp/features/rendering-debugger.html) or [in HDRP](https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@latest/index.html?subfolder=/manual/rendering-debugger-window-reference.html) and to the [Unity Profiler](https://docs.unity3d.com/Manual/Profiler.html) are available through the menu on the top-right of the **Graph Debug Information** panel. ## Particle System Info - The Particle System Info panel is attached to the Initialize Context of each system. This panel provides information relative a specific system. + The **Particle System Info** panel is attached to the Initialize Context of each system. This panel provides information relative a specific system. | Property | Description | |-----------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| @@ -39,7 +41,7 @@ Shortcuts to the **Rendering Debugger** [in URP](https://docs.unity3d.com/Manua Contexts debug panels are attached to each context of a system. They are displayed when a context is selected and can be locked to be kept on screen even when the context is unselected. -Each context will display informations that are relevant to its use: +Each context will display information that are relevant to its use: ### Spawn Context diff --git a/Packages/com.unity.visualeffectgraph/Editor/Inspector/VFXSlotContainerEditor.cs b/Packages/com.unity.visualeffectgraph/Editor/Inspector/VFXSlotContainerEditor.cs index d8d93500869..8d59a88448a 100644 --- a/Packages/com.unity.visualeffectgraph/Editor/Inspector/VFXSlotContainerEditor.cs +++ b/Packages/com.unity.visualeffectgraph/Editor/Inspector/VFXSlotContainerEditor.cs @@ -442,6 +442,7 @@ static Styles() { VFXValueType.Int32, new Color32(125, 110, 191, 255) }, { VFXValueType.Matrix4x4, new Color32(118, 118, 118, 255) }, { VFXValueType.Mesh, new Color32(130, 223, 226, 255) }, + { VFXValueType.SkinnedMeshRenderer, new Color32(130, 223, 226, 255) }, { VFXValueType.None, new Color32(118, 118, 118, 255) }, { VFXValueType.Spline, new Color32(130, 223, 226, 255) }, { VFXValueType.Texture2D, new Color32(250, 137, 137, 255) }, diff --git a/Tests/SRPTests/Packages/com.unity.testing.hdrp/RP_Assets/HDRP_Test_Def_FSR2_Hardware.asset b/Tests/SRPTests/Packages/com.unity.testing.hdrp/RP_Assets/HDRP_Test_Def_FSR2_Hardware.asset new file mode 100644 index 00000000000..6ffb581b41b --- /dev/null +++ b/Tests/SRPTests/Packages/com.unity.testing.hdrp/RP_Assets/HDRP_Test_Def_FSR2_Hardware.asset @@ -0,0 +1,555 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cf1dab834d4ec34195b920ea7bbf9ec, type: 3} + m_Name: HDRP_Test_Def_FSR2_Hardware + m_EditorClassIdentifier: + m_RenderPipelineSettings: + supportShadowMask: 1 + supportSSR: 0 + supportSSRTransparent: 0 + supportSSAO: 1 + supportSSGI: 0 + supportSubsurfaceScattering: 1 + subsurfaceScatteringAttenuation: 1 + sssSampleBudget: + m_Values: 140000002800000050000000 + m_SchemaId: + m_Id: With3Levels + sssDownsampleSteps: + m_Values: 000000000000000000000000 + m_SchemaId: + m_Id: With3Levels + supportVolumetrics: 1 + supportVolumetricClouds: 0 + supportLightLayers: 0 + renderingLayerMaskBuffer: 0 + supportWater: 0 + waterSimulationResolution: 128 + supportWaterExclusion: 0 + supportWaterHorizontalDeformation: 0 + supportWaterDecals: 1 + waterDecalAtlasSize: 1024 + maximumWaterDecalCount: 48 + waterScriptInteractionsMode: 0 + waterFullCPUSimulation: 0 + supportComputeThickness: 0 + computeThicknessResolution: 1 + computeThicknessLayerMask: + serializedVersion: 2 + m_Bits: 0 + supportDistortion: 1 + supportTransparentBackface: 1 + supportTransparentDepthPrepass: 1 + supportTransparentDepthPostpass: 1 + colorBufferFormat: 74 + supportCustomPass: 1 + supportVariableRateShading: 1 + customBufferFormat: 12 + supportedLitShaderMode: 2 + planarReflectionResolution: + m_Values: 000100000004000000080000 + m_SchemaId: + m_Id: With3Levels + cubeReflectionResolution: + m_Values: 800000000001000000020000 + m_SchemaId: + m_Id: With3Levels + supportDecals: 1 + supportDecalLayers: 0 + supportSurfaceGradient: 0 + decalNormalBufferHP: 0 + supportHighQualityLineRendering: 0 + highQualityLineRenderingMemoryBudget: 128 + msaaSampleCount: 1 + supportMotionVectors: 1 + supportScreenSpaceLensFlare: 1 + supportDataDrivenLensFlare: 1 + supportDitheringCrossFade: 1 + supportRuntimeAOVAPI: 0 + supportTerrainHole: 0 + lightProbeSystem: 0 + oldLightProbeSystem: 0 + probeVolumeMemoryBudget: 1024 + supportProbeVolumeGPUStreaming: 0 + supportProbeVolumeDiskStreaming: 0 + probeVolumeSHBands: 1 + supportProbeVolumeScenarios: 0 + supportProbeVolumeScenarioBlending: 1 + probeVolumeBlendingMemoryBudget: 128 + supportRayTracing: 0 + supportVFXRayTracing: 0 + supportedRayTracingMode: 3 + lightLoopSettings: + cookieAtlasSize: 2048 + cookieFormat: 74 + cookieAtlasLastValidMip: 0 + cookieTexArraySize: 1 + planarReflectionAtlasSize: 1024 + reflectionProbeCacheSize: 64 + reflectionCubemapSize: 256 + maxEnvLightsOnScreen: 64 + reflectionCacheCompressed: 0 + reflectionProbeFormat: 74 + reflectionProbeTexCacheSize: 4096 + reflectionProbeTexLastValidCubeMip: 3 + reflectionProbeTexLastValidPlanarMip: 0 + reflectionProbeDecreaseResToFit: 1 + skyReflectionSize: 256 + skyLightingOverrideLayerMask: + serializedVersion: 2 + m_Bits: 0 + supportFabricConvolution: 0 + maxDirectionalLightsOnScreen: 16 + maxPunctualLightsOnScreen: 512 + maxAreaLightsOnScreen: 64 + maxCubeReflectionOnScreen: 48 + maxPlanarReflectionOnScreen: 16 + maxDecalsOnScreen: 512 + maxLightsPerClusterCell: 8 + maxLocalVolumetricFogSize: 32 + maxLocalVolumetricFogOnScreen: 64 + hdShadowInitParams: + maxShadowRequests: 128 + directionalShadowsDepthBits: 32 + punctualShadowFilteringQuality: 1 + directionalShadowFilteringQuality: 1 + areaShadowFilteringQuality: 0 + punctualLightShadowAtlas: + shadowAtlasResolution: 4096 + shadowAtlasDepthBits: 32 + useDynamicViewportRescale: 1 + areaLightShadowAtlas: + shadowAtlasResolution: 4096 + shadowAtlasDepthBits: 32 + useDynamicViewportRescale: 1 + cachedPunctualLightShadowAtlas: 2048 + cachedAreaLightShadowAtlas: 1024 + allowDirectionalMixedCachedShadows: 0 + shadowResolutionDirectional: + m_Values: 00010000000200000004000000080000 + m_SchemaId: + m_Id: With4Levels + shadowResolutionPunctual: + m_Values: 00010000000200000004000000080000 + m_SchemaId: + m_Id: With4Levels + shadowResolutionArea: + m_Values: 00010000000200000004000000080000 + m_SchemaId: + m_Id: With4Levels + maxDirectionalShadowMapResolution: 2048 + maxPunctualShadowMapResolution: 2048 + maxAreaShadowMapResolution: 2048 + supportScreenSpaceShadows: 0 + maxScreenSpaceShadowSlots: 4 + screenSpaceShadowBufferFormat: 48 + decalSettings: + drawDistance: 1000 + atlasWidth: 4096 + atlasHeight: 4096 + transparentTextureResolution: + m_Values: 000100000002000000040000 + m_SchemaId: + m_Id: With3Levels + perChannelMask: 0 + postProcessSettings: + m_LutSize: 32 + lutFormat: 48 + bufferFormat: 74 + dynamicResolutionSettings: + enabled: 1 + useMipBias: 0 + advancedUpscalersByPriority: 01 + DLSSPerfQualitySetting: 0 + DLSSInjectionPoint: 0 + TAAUInjectionPoint: 0 + STPInjectionPoint: 0 + defaultInjectionPoint: 2 + DLSSUseOptimalSettings: 1 + DLSSSharpness: 0 + DLSSRenderPresetForQuality: 0 + DLSSRenderPresetForBalanced: 0 + DLSSRenderPresetForPerformance: 0 + DLSSRenderPresetForUltraPerformance: 0 + DLSSRenderPresetForDLAA: 0 + FSR2EnableSharpness: 1 + FSR2Sharpness: 0.8 + FSR2UseOptimalSettings: 0 + FSR2QualitySetting: 0 + FSR2InjectionPoint: 0 + fsrOverrideSharpness: 0 + fsrSharpness: 0.92 + maxPercentage: 100 + minPercentage: 100 + dynResType: 1 + upsampleFilter: 1 + forceResolution: 1 + forcedPercentage: 40 + lowResTransparencyMinimumThreshold: 0 + rayTracingHalfResThreshold: 50 + lowResSSGIMinimumThreshold: 0 + lowResVolumetricCloudsMinimumThreshold: 50 + enableDLSS: 0 + lowresTransparentSettings: + enabled: 1 + checkerboardDepthBuffer: 1 + upsampleType: 1 + xrSettings: + singlePass: 1 + occlusionMesh: 1 + cameraJitter: 0 + allowMotionBlur: 0 + postProcessQualitySettings: + NearBlurSampleCount: 030000000500000008000000 + NearBlurMaxRadius: + - 2 + - 4 + - 7 + FarBlurSampleCount: 04000000070000000e000000 + FarBlurMaxRadius: + - 5 + - 8 + - 13 + DoFResolution: 040000000200000001000000 + DoFHighQualityFiltering: 000101 + DoFPhysicallyBased: 000000 + AdaptiveSamplingWeight: + - 0.5 + - 0.75 + - 2 + LimitManualRangeNearBlur: 000000 + MotionBlurSampleCount: 04000000080000000c000000 + BloomRes: 040000000200000002000000 + BloomHighQualityFiltering: 000101 + BloomHighQualityPrefiltering: 000001 + ChromaticAberrationMaxSamples: 03000000060000000c000000 + lightSettings: + useContactShadow: + m_Values: 000001 + m_SchemaId: + m_Id: With3Levels + maximumLODLevel: + m_Values: 000000000000000000000000 + m_SchemaId: + m_Id: With3Levels + lodBias: + m_Values: + - 1 + - 1 + - 1 + m_SchemaId: + m_Id: With3Levels + lightingQualitySettings: + AOStepCount: 040000000600000010000000 + AOFullRes: 000001 + AOMaximumRadiusPixels: 200000002800000050000000 + AOBilateralUpsample: 000101 + AODirectionCount: 010000000200000004000000 + ContactShadowSampleCount: 060000000a00000010000000 + SSRMaxRaySteps: 100000002000000040000000 + SSGIRaySteps: 200000004000000080000000 + SSGIDenoise: 010101 + SSGIHalfResDenoise: 010000 + SSGIDenoiserRadius: + - 0.75 + - 0.5 + - 0.5 + SSGISecondDenoise: 010101 + RTAORayLength: + - 0.5 + - 3 + - 20 + RTAOSampleCount: 010000000200000008000000 + RTAODenoise: 010101 + RTAODenoiserRadius: + - 0.25 + - 0.5 + - 0.65 + RTGIRayLength: + - 50 + - 50 + - 50 + RTGIFullResolution: 000001 + RTGIRaySteps: 200000003000000040000000 + RTGIDenoise: 010101 + RTGIHalfResDenoise: 010000 + RTGIDenoiserRadius: + - 0.75 + - 0.5 + - 0.25 + RTGISecondDenoise: 010101 + RTRMinSmoothness: + - 0.6 + - 0.4 + - 0 + RTRSmoothnessFadeStart: + - 0.7 + - 0.5 + - 0 + RTRRayLength: + - 50 + - 50 + - 50 + RTRFullResolution: 000001 + RTRRayMaxIterations: 200000003000000040000000 + RTRDenoise: 010101 + RTRDenoiserRadiusDimmer: + - 0.75 + - 0.75 + - 1 + RTRDenoiserAntiFlicker: + - 1 + - 1 + - 1 + Fog_ControlMode: 000000000000000000000000 + Fog_Budget: + - 0.166 + - 0.33 + - 0.666 + Fog_DepthRatio: + - 0.666 + - 0.666 + - 0.5 + gpuResidentDrawerSettings: + mode: 0 + smallMeshScreenPercentage: 0 + enableOcclusionCullingInCameras: 0 + useDepthPrepassForOccluders: 1 + m_ObsoleteLightLayerName0: + m_ObsoleteLightLayerName1: + m_ObsoleteLightLayerName2: + m_ObsoleteLightLayerName3: + m_ObsoleteLightLayerName4: + m_ObsoleteLightLayerName5: + m_ObsoleteLightLayerName6: + m_ObsoleteLightLayerName7: + m_ObsoleteDecalLayerName0: + m_ObsoleteDecalLayerName1: + m_ObsoleteDecalLayerName2: + m_ObsoleteDecalLayerName3: + m_ObsoleteDecalLayerName4: + m_ObsoleteDecalLayerName5: + m_ObsoleteDecalLayerName6: + m_ObsoleteDecalLayerName7: + m_ObsoleteSupportRuntimeDebugDisplay: 0 + allowShaderVariantStripping: 1 + enableSRPBatcher: 1 + availableMaterialQualityLevels: -1 + m_DefaultMaterialQualityLevel: 4 + diffusionProfileSettings: {fileID: 0} + m_VolumeProfile: {fileID: 0} + virtualTexturingSettings: + streamingCpuCacheSizeInMegaBytes: 80 + streamingMipPreloadTexturesPerFrame: 0 + streamingPreloadMipCount: 1 + streamingGpuCacheSettings: + - format: 0 + sizeInMegaBytes: 32 + m_UseRenderGraph: 1 + m_CompositorCustomVolumeComponentsList: + m_InjectionPoint: 1 + m_CustomPostProcessTypesAsString: [] + m_Version: 25 + m_ObsoleteFrameSettings: + overrides: 0 + enableShadow: 0 + enableContactShadows: 0 + enableShadowMask: 0 + enableSSR: 0 + enableSSAO: 0 + enableSubsurfaceScattering: 0 + enableTransmission: 0 + enableAtmosphericScattering: 0 + enableVolumetrics: 0 + enableReprojectionForVolumetrics: 0 + enableLightLayers: 0 + enableExposureControl: 1 + diffuseGlobalDimmer: 0 + specularGlobalDimmer: 0 + shaderLitMode: 0 + enableDepthPrepassWithDeferredRendering: 0 + enableTransparentPrepass: 0 + enableMotionVectors: 0 + enableObjectMotionVectors: 0 + enableDecals: 0 + enableRoughRefraction: 0 + enableTransparentPostpass: 0 + enableDistortion: 0 + enablePostprocess: 0 + enableOpaqueObjects: 0 + enableTransparentObjects: 0 + enableRealtimePlanarReflection: 0 + enableMSAA: 0 + enableAsyncCompute: 0 + runLightListAsync: 0 + runSSRAsync: 0 + runSSAOAsync: 0 + runContactShadowsAsync: 0 + runVolumeVoxelizationAsync: 0 + lightLoopSettings: + overrides: 0 + enableDeferredTileAndCluster: 0 + enableComputeLightEvaluation: 0 + enableComputeLightVariants: 0 + enableComputeMaterialVariants: 0 + enableFptlForForwardOpaque: 0 + enableBigTilePrepass: 0 + isFptlEnabled: 0 + m_ObsoleteBakedOrCustomReflectionFrameSettings: + overrides: 0 + enableShadow: 0 + enableContactShadows: 0 + enableShadowMask: 0 + enableSSR: 0 + enableSSAO: 0 + enableSubsurfaceScattering: 0 + enableTransmission: 0 + enableAtmosphericScattering: 0 + enableVolumetrics: 0 + enableReprojectionForVolumetrics: 0 + enableLightLayers: 0 + enableExposureControl: 1 + diffuseGlobalDimmer: 0 + specularGlobalDimmer: 0 + shaderLitMode: 0 + enableDepthPrepassWithDeferredRendering: 0 + enableTransparentPrepass: 0 + enableMotionVectors: 0 + enableObjectMotionVectors: 0 + enableDecals: 0 + enableRoughRefraction: 0 + enableTransparentPostpass: 0 + enableDistortion: 0 + enablePostprocess: 0 + enableOpaqueObjects: 0 + enableTransparentObjects: 0 + enableRealtimePlanarReflection: 0 + enableMSAA: 0 + enableAsyncCompute: 0 + runLightListAsync: 0 + runSSRAsync: 0 + runSSAOAsync: 0 + runContactShadowsAsync: 0 + runVolumeVoxelizationAsync: 0 + lightLoopSettings: + overrides: 0 + enableDeferredTileAndCluster: 0 + enableComputeLightEvaluation: 0 + enableComputeLightVariants: 0 + enableComputeMaterialVariants: 0 + enableFptlForForwardOpaque: 0 + enableBigTilePrepass: 0 + isFptlEnabled: 0 + m_ObsoleteRealtimeReflectionFrameSettings: + overrides: 0 + enableShadow: 0 + enableContactShadows: 0 + enableShadowMask: 0 + enableSSR: 0 + enableSSAO: 0 + enableSubsurfaceScattering: 0 + enableTransmission: 0 + enableAtmosphericScattering: 0 + enableVolumetrics: 0 + enableReprojectionForVolumetrics: 0 + enableLightLayers: 0 + enableExposureControl: 1 + diffuseGlobalDimmer: 0 + specularGlobalDimmer: 0 + shaderLitMode: 0 + enableDepthPrepassWithDeferredRendering: 0 + enableTransparentPrepass: 0 + enableMotionVectors: 0 + enableObjectMotionVectors: 0 + enableDecals: 0 + enableRoughRefraction: 0 + enableTransparentPostpass: 0 + enableDistortion: 0 + enablePostprocess: 0 + enableOpaqueObjects: 0 + enableTransparentObjects: 0 + enableRealtimePlanarReflection: 0 + enableMSAA: 0 + enableAsyncCompute: 0 + runLightListAsync: 0 + runSSRAsync: 0 + runSSAOAsync: 0 + runContactShadowsAsync: 0 + runVolumeVoxelizationAsync: 0 + lightLoopSettings: + overrides: 0 + enableDeferredTileAndCluster: 0 + enableComputeLightEvaluation: 0 + enableComputeLightVariants: 0 + enableComputeMaterialVariants: 0 + enableFptlForForwardOpaque: 0 + enableBigTilePrepass: 0 + isFptlEnabled: 0 + m_ObsoleteDefaultVolumeProfile: {fileID: 0} + m_ObsoleteDefaultLookDevProfile: {fileID: 0} + m_ObsoleteFrameSettingsMovedToDefaultSettings: + bitDatas: + data1: 0 + data2: 0 + lodBias: 0 + lodBiasMode: 0 + lodBiasQualityLevel: 0 + maximumLODLevel: 0 + maximumLODLevelMode: 0 + maximumLODLevelQualityLevel: 0 + sssQualityMode: 0 + sssQualityLevel: 0 + sssCustomSampleBudget: 0 + sssCustomDownsampleSteps: 0 + msaaMode: 0 + materialQuality: 0 + m_ObsoleteBakedOrCustomReflectionFrameSettingsMovedToDefaultSettings: + bitDatas: + data1: 0 + data2: 0 + lodBias: 0 + lodBiasMode: 0 + lodBiasQualityLevel: 0 + maximumLODLevel: 0 + maximumLODLevelMode: 0 + maximumLODLevelQualityLevel: 0 + sssQualityMode: 0 + sssQualityLevel: 0 + sssCustomSampleBudget: 0 + sssCustomDownsampleSteps: 0 + msaaMode: 0 + materialQuality: 0 + m_ObsoleteRealtimeReflectionFrameSettingsMovedToDefaultSettings: + bitDatas: + data1: 0 + data2: 0 + lodBias: 0 + lodBiasMode: 0 + lodBiasQualityLevel: 0 + maximumLODLevel: 0 + maximumLODLevelMode: 0 + maximumLODLevelQualityLevel: 0 + sssQualityMode: 0 + sssQualityLevel: 0 + sssCustomSampleBudget: 0 + sssCustomDownsampleSteps: 0 + msaaMode: 0 + materialQuality: 0 + m_ObsoleteBeforeTransparentCustomPostProcesses: [] + m_ObsoleteBeforePostProcessCustomPostProcesses: [] + m_ObsoleteAfterPostProcessCustomPostProcesses: [] + m_ObsoleteBeforeTAACustomPostProcesses: [] + m_ObsoleteShaderVariantLogLevel: 0 + m_ObsoleteLensAttenuation: 0 + m_ObsoleteDiffusionProfileSettingsList: [] + m_PrefilterUseLegacyLightmaps: 0 + m_PrefilterUseLightmapBicubicSampling: 0 diff --git a/Tests/SRPTests/Packages/com.unity.testing.hdrp/RP_Assets/HDRP_Test_Def_FSR2_Hardware.asset.meta b/Tests/SRPTests/Packages/com.unity.testing.hdrp/RP_Assets/HDRP_Test_Def_FSR2_Hardware.asset.meta new file mode 100644 index 00000000000..e14f063a368 --- /dev/null +++ b/Tests/SRPTests/Packages/com.unity.testing.hdrp/RP_Assets/HDRP_Test_Def_FSR2_Hardware.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c9851109961f5bb48976c57b58923258 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Packages/com.unity.testing.hdrp/RP_Assets/HDRP_Test_Def_FSR2_Software.asset b/Tests/SRPTests/Packages/com.unity.testing.hdrp/RP_Assets/HDRP_Test_Def_FSR2_Software.asset new file mode 100644 index 00000000000..d5162a1cdb8 --- /dev/null +++ b/Tests/SRPTests/Packages/com.unity.testing.hdrp/RP_Assets/HDRP_Test_Def_FSR2_Software.asset @@ -0,0 +1,555 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cf1dab834d4ec34195b920ea7bbf9ec, type: 3} + m_Name: HDRP_Test_Def_FSR2_Software + m_EditorClassIdentifier: + m_RenderPipelineSettings: + supportShadowMask: 1 + supportSSR: 0 + supportSSRTransparent: 0 + supportSSAO: 1 + supportSSGI: 0 + supportSubsurfaceScattering: 1 + subsurfaceScatteringAttenuation: 1 + sssSampleBudget: + m_Values: 140000002800000050000000 + m_SchemaId: + m_Id: With3Levels + sssDownsampleSteps: + m_Values: 000000000000000000000000 + m_SchemaId: + m_Id: With3Levels + supportVolumetrics: 1 + supportVolumetricClouds: 0 + supportLightLayers: 0 + renderingLayerMaskBuffer: 0 + supportWater: 0 + waterSimulationResolution: 128 + supportWaterExclusion: 0 + supportWaterHorizontalDeformation: 0 + supportWaterDecals: 1 + waterDecalAtlasSize: 1024 + maximumWaterDecalCount: 48 + waterScriptInteractionsMode: 0 + waterFullCPUSimulation: 0 + supportComputeThickness: 0 + computeThicknessResolution: 1 + computeThicknessLayerMask: + serializedVersion: 2 + m_Bits: 0 + supportDistortion: 1 + supportTransparentBackface: 1 + supportTransparentDepthPrepass: 1 + supportTransparentDepthPostpass: 1 + colorBufferFormat: 74 + supportCustomPass: 1 + supportVariableRateShading: 1 + customBufferFormat: 12 + supportedLitShaderMode: 2 + planarReflectionResolution: + m_Values: 000100000004000000080000 + m_SchemaId: + m_Id: With3Levels + cubeReflectionResolution: + m_Values: 800000000001000000020000 + m_SchemaId: + m_Id: With3Levels + supportDecals: 1 + supportDecalLayers: 0 + supportSurfaceGradient: 0 + decalNormalBufferHP: 0 + supportHighQualityLineRendering: 0 + highQualityLineRenderingMemoryBudget: 128 + msaaSampleCount: 1 + supportMotionVectors: 1 + supportScreenSpaceLensFlare: 1 + supportDataDrivenLensFlare: 1 + supportDitheringCrossFade: 1 + supportRuntimeAOVAPI: 0 + supportTerrainHole: 0 + lightProbeSystem: 0 + oldLightProbeSystem: 0 + probeVolumeMemoryBudget: 1024 + supportProbeVolumeGPUStreaming: 0 + supportProbeVolumeDiskStreaming: 0 + probeVolumeSHBands: 1 + supportProbeVolumeScenarios: 0 + supportProbeVolumeScenarioBlending: 1 + probeVolumeBlendingMemoryBudget: 128 + supportRayTracing: 0 + supportVFXRayTracing: 0 + supportedRayTracingMode: 3 + lightLoopSettings: + cookieAtlasSize: 2048 + cookieFormat: 74 + cookieAtlasLastValidMip: 0 + cookieTexArraySize: 1 + planarReflectionAtlasSize: 1024 + reflectionProbeCacheSize: 64 + reflectionCubemapSize: 256 + maxEnvLightsOnScreen: 64 + reflectionCacheCompressed: 0 + reflectionProbeFormat: 74 + reflectionProbeTexCacheSize: 4096 + reflectionProbeTexLastValidCubeMip: 3 + reflectionProbeTexLastValidPlanarMip: 0 + reflectionProbeDecreaseResToFit: 1 + skyReflectionSize: 256 + skyLightingOverrideLayerMask: + serializedVersion: 2 + m_Bits: 0 + supportFabricConvolution: 0 + maxDirectionalLightsOnScreen: 16 + maxPunctualLightsOnScreen: 512 + maxAreaLightsOnScreen: 64 + maxCubeReflectionOnScreen: 48 + maxPlanarReflectionOnScreen: 16 + maxDecalsOnScreen: 512 + maxLightsPerClusterCell: 8 + maxLocalVolumetricFogSize: 32 + maxLocalVolumetricFogOnScreen: 64 + hdShadowInitParams: + maxShadowRequests: 128 + directionalShadowsDepthBits: 32 + punctualShadowFilteringQuality: 1 + directionalShadowFilteringQuality: 1 + areaShadowFilteringQuality: 0 + punctualLightShadowAtlas: + shadowAtlasResolution: 4096 + shadowAtlasDepthBits: 32 + useDynamicViewportRescale: 1 + areaLightShadowAtlas: + shadowAtlasResolution: 4096 + shadowAtlasDepthBits: 32 + useDynamicViewportRescale: 1 + cachedPunctualLightShadowAtlas: 2048 + cachedAreaLightShadowAtlas: 1024 + allowDirectionalMixedCachedShadows: 0 + shadowResolutionDirectional: + m_Values: 00010000000200000004000000080000 + m_SchemaId: + m_Id: With4Levels + shadowResolutionPunctual: + m_Values: 00010000000200000004000000080000 + m_SchemaId: + m_Id: With4Levels + shadowResolutionArea: + m_Values: 00010000000200000004000000080000 + m_SchemaId: + m_Id: With4Levels + maxDirectionalShadowMapResolution: 2048 + maxPunctualShadowMapResolution: 2048 + maxAreaShadowMapResolution: 2048 + supportScreenSpaceShadows: 0 + maxScreenSpaceShadowSlots: 4 + screenSpaceShadowBufferFormat: 48 + decalSettings: + drawDistance: 1000 + atlasWidth: 4096 + atlasHeight: 4096 + transparentTextureResolution: + m_Values: 000100000002000000040000 + m_SchemaId: + m_Id: With3Levels + perChannelMask: 0 + postProcessSettings: + m_LutSize: 32 + lutFormat: 48 + bufferFormat: 74 + dynamicResolutionSettings: + enabled: 1 + useMipBias: 0 + advancedUpscalersByPriority: 01 + DLSSPerfQualitySetting: 0 + DLSSInjectionPoint: 0 + TAAUInjectionPoint: 0 + STPInjectionPoint: 0 + defaultInjectionPoint: 2 + DLSSUseOptimalSettings: 1 + DLSSSharpness: 0 + DLSSRenderPresetForQuality: 0 + DLSSRenderPresetForBalanced: 0 + DLSSRenderPresetForPerformance: 0 + DLSSRenderPresetForUltraPerformance: 0 + DLSSRenderPresetForDLAA: 0 + FSR2EnableSharpness: 1 + FSR2Sharpness: 0.8 + FSR2UseOptimalSettings: 0 + FSR2QualitySetting: 0 + FSR2InjectionPoint: 0 + fsrOverrideSharpness: 0 + fsrSharpness: 0.92 + maxPercentage: 100 + minPercentage: 100 + dynResType: 0 + upsampleFilter: 1 + forceResolution: 1 + forcedPercentage: 40 + lowResTransparencyMinimumThreshold: 0 + rayTracingHalfResThreshold: 50 + lowResSSGIMinimumThreshold: 0 + lowResVolumetricCloudsMinimumThreshold: 50 + enableDLSS: 0 + lowresTransparentSettings: + enabled: 1 + checkerboardDepthBuffer: 1 + upsampleType: 1 + xrSettings: + singlePass: 1 + occlusionMesh: 1 + cameraJitter: 0 + allowMotionBlur: 0 + postProcessQualitySettings: + NearBlurSampleCount: 030000000500000008000000 + NearBlurMaxRadius: + - 2 + - 4 + - 7 + FarBlurSampleCount: 04000000070000000e000000 + FarBlurMaxRadius: + - 5 + - 8 + - 13 + DoFResolution: 040000000200000001000000 + DoFHighQualityFiltering: 000101 + DoFPhysicallyBased: 000000 + AdaptiveSamplingWeight: + - 0.5 + - 0.75 + - 2 + LimitManualRangeNearBlur: 000000 + MotionBlurSampleCount: 04000000080000000c000000 + BloomRes: 040000000200000002000000 + BloomHighQualityFiltering: 000101 + BloomHighQualityPrefiltering: 000001 + ChromaticAberrationMaxSamples: 03000000060000000c000000 + lightSettings: + useContactShadow: + m_Values: 000001 + m_SchemaId: + m_Id: With3Levels + maximumLODLevel: + m_Values: 000000000000000000000000 + m_SchemaId: + m_Id: With3Levels + lodBias: + m_Values: + - 1 + - 1 + - 1 + m_SchemaId: + m_Id: With3Levels + lightingQualitySettings: + AOStepCount: 040000000600000010000000 + AOFullRes: 000001 + AOMaximumRadiusPixels: 200000002800000050000000 + AOBilateralUpsample: 000101 + AODirectionCount: 010000000200000004000000 + ContactShadowSampleCount: 060000000a00000010000000 + SSRMaxRaySteps: 100000002000000040000000 + SSGIRaySteps: 200000004000000080000000 + SSGIDenoise: 010101 + SSGIHalfResDenoise: 010000 + SSGIDenoiserRadius: + - 0.75 + - 0.5 + - 0.5 + SSGISecondDenoise: 010101 + RTAORayLength: + - 0.5 + - 3 + - 20 + RTAOSampleCount: 010000000200000008000000 + RTAODenoise: 010101 + RTAODenoiserRadius: + - 0.25 + - 0.5 + - 0.65 + RTGIRayLength: + - 50 + - 50 + - 50 + RTGIFullResolution: 000001 + RTGIRaySteps: 200000003000000040000000 + RTGIDenoise: 010101 + RTGIHalfResDenoise: 010000 + RTGIDenoiserRadius: + - 0.75 + - 0.5 + - 0.25 + RTGISecondDenoise: 010101 + RTRMinSmoothness: + - 0.6 + - 0.4 + - 0 + RTRSmoothnessFadeStart: + - 0.7 + - 0.5 + - 0 + RTRRayLength: + - 50 + - 50 + - 50 + RTRFullResolution: 000001 + RTRRayMaxIterations: 200000003000000040000000 + RTRDenoise: 010101 + RTRDenoiserRadiusDimmer: + - 0.75 + - 0.75 + - 1 + RTRDenoiserAntiFlicker: + - 1 + - 1 + - 1 + Fog_ControlMode: 000000000000000000000000 + Fog_Budget: + - 0.166 + - 0.33 + - 0.666 + Fog_DepthRatio: + - 0.666 + - 0.666 + - 0.5 + gpuResidentDrawerSettings: + mode: 0 + smallMeshScreenPercentage: 0 + enableOcclusionCullingInCameras: 0 + useDepthPrepassForOccluders: 1 + m_ObsoleteLightLayerName0: + m_ObsoleteLightLayerName1: + m_ObsoleteLightLayerName2: + m_ObsoleteLightLayerName3: + m_ObsoleteLightLayerName4: + m_ObsoleteLightLayerName5: + m_ObsoleteLightLayerName6: + m_ObsoleteLightLayerName7: + m_ObsoleteDecalLayerName0: + m_ObsoleteDecalLayerName1: + m_ObsoleteDecalLayerName2: + m_ObsoleteDecalLayerName3: + m_ObsoleteDecalLayerName4: + m_ObsoleteDecalLayerName5: + m_ObsoleteDecalLayerName6: + m_ObsoleteDecalLayerName7: + m_ObsoleteSupportRuntimeDebugDisplay: 0 + allowShaderVariantStripping: 1 + enableSRPBatcher: 1 + availableMaterialQualityLevels: -1 + m_DefaultMaterialQualityLevel: 4 + diffusionProfileSettings: {fileID: 0} + m_VolumeProfile: {fileID: 0} + virtualTexturingSettings: + streamingCpuCacheSizeInMegaBytes: 80 + streamingMipPreloadTexturesPerFrame: 0 + streamingPreloadMipCount: 1 + streamingGpuCacheSettings: + - format: 0 + sizeInMegaBytes: 32 + m_UseRenderGraph: 1 + m_CompositorCustomVolumeComponentsList: + m_InjectionPoint: 1 + m_CustomPostProcessTypesAsString: [] + m_Version: 25 + m_ObsoleteFrameSettings: + overrides: 0 + enableShadow: 0 + enableContactShadows: 0 + enableShadowMask: 0 + enableSSR: 0 + enableSSAO: 0 + enableSubsurfaceScattering: 0 + enableTransmission: 0 + enableAtmosphericScattering: 0 + enableVolumetrics: 0 + enableReprojectionForVolumetrics: 0 + enableLightLayers: 0 + enableExposureControl: 1 + diffuseGlobalDimmer: 0 + specularGlobalDimmer: 0 + shaderLitMode: 0 + enableDepthPrepassWithDeferredRendering: 0 + enableTransparentPrepass: 0 + enableMotionVectors: 0 + enableObjectMotionVectors: 0 + enableDecals: 0 + enableRoughRefraction: 0 + enableTransparentPostpass: 0 + enableDistortion: 0 + enablePostprocess: 0 + enableOpaqueObjects: 0 + enableTransparentObjects: 0 + enableRealtimePlanarReflection: 0 + enableMSAA: 0 + enableAsyncCompute: 0 + runLightListAsync: 0 + runSSRAsync: 0 + runSSAOAsync: 0 + runContactShadowsAsync: 0 + runVolumeVoxelizationAsync: 0 + lightLoopSettings: + overrides: 0 + enableDeferredTileAndCluster: 0 + enableComputeLightEvaluation: 0 + enableComputeLightVariants: 0 + enableComputeMaterialVariants: 0 + enableFptlForForwardOpaque: 0 + enableBigTilePrepass: 0 + isFptlEnabled: 0 + m_ObsoleteBakedOrCustomReflectionFrameSettings: + overrides: 0 + enableShadow: 0 + enableContactShadows: 0 + enableShadowMask: 0 + enableSSR: 0 + enableSSAO: 0 + enableSubsurfaceScattering: 0 + enableTransmission: 0 + enableAtmosphericScattering: 0 + enableVolumetrics: 0 + enableReprojectionForVolumetrics: 0 + enableLightLayers: 0 + enableExposureControl: 1 + diffuseGlobalDimmer: 0 + specularGlobalDimmer: 0 + shaderLitMode: 0 + enableDepthPrepassWithDeferredRendering: 0 + enableTransparentPrepass: 0 + enableMotionVectors: 0 + enableObjectMotionVectors: 0 + enableDecals: 0 + enableRoughRefraction: 0 + enableTransparentPostpass: 0 + enableDistortion: 0 + enablePostprocess: 0 + enableOpaqueObjects: 0 + enableTransparentObjects: 0 + enableRealtimePlanarReflection: 0 + enableMSAA: 0 + enableAsyncCompute: 0 + runLightListAsync: 0 + runSSRAsync: 0 + runSSAOAsync: 0 + runContactShadowsAsync: 0 + runVolumeVoxelizationAsync: 0 + lightLoopSettings: + overrides: 0 + enableDeferredTileAndCluster: 0 + enableComputeLightEvaluation: 0 + enableComputeLightVariants: 0 + enableComputeMaterialVariants: 0 + enableFptlForForwardOpaque: 0 + enableBigTilePrepass: 0 + isFptlEnabled: 0 + m_ObsoleteRealtimeReflectionFrameSettings: + overrides: 0 + enableShadow: 0 + enableContactShadows: 0 + enableShadowMask: 0 + enableSSR: 0 + enableSSAO: 0 + enableSubsurfaceScattering: 0 + enableTransmission: 0 + enableAtmosphericScattering: 0 + enableVolumetrics: 0 + enableReprojectionForVolumetrics: 0 + enableLightLayers: 0 + enableExposureControl: 1 + diffuseGlobalDimmer: 0 + specularGlobalDimmer: 0 + shaderLitMode: 0 + enableDepthPrepassWithDeferredRendering: 0 + enableTransparentPrepass: 0 + enableMotionVectors: 0 + enableObjectMotionVectors: 0 + enableDecals: 0 + enableRoughRefraction: 0 + enableTransparentPostpass: 0 + enableDistortion: 0 + enablePostprocess: 0 + enableOpaqueObjects: 0 + enableTransparentObjects: 0 + enableRealtimePlanarReflection: 0 + enableMSAA: 0 + enableAsyncCompute: 0 + runLightListAsync: 0 + runSSRAsync: 0 + runSSAOAsync: 0 + runContactShadowsAsync: 0 + runVolumeVoxelizationAsync: 0 + lightLoopSettings: + overrides: 0 + enableDeferredTileAndCluster: 0 + enableComputeLightEvaluation: 0 + enableComputeLightVariants: 0 + enableComputeMaterialVariants: 0 + enableFptlForForwardOpaque: 0 + enableBigTilePrepass: 0 + isFptlEnabled: 0 + m_ObsoleteDefaultVolumeProfile: {fileID: 0} + m_ObsoleteDefaultLookDevProfile: {fileID: 0} + m_ObsoleteFrameSettingsMovedToDefaultSettings: + bitDatas: + data1: 0 + data2: 0 + lodBias: 0 + lodBiasMode: 0 + lodBiasQualityLevel: 0 + maximumLODLevel: 0 + maximumLODLevelMode: 0 + maximumLODLevelQualityLevel: 0 + sssQualityMode: 0 + sssQualityLevel: 0 + sssCustomSampleBudget: 0 + sssCustomDownsampleSteps: 0 + msaaMode: 0 + materialQuality: 0 + m_ObsoleteBakedOrCustomReflectionFrameSettingsMovedToDefaultSettings: + bitDatas: + data1: 0 + data2: 0 + lodBias: 0 + lodBiasMode: 0 + lodBiasQualityLevel: 0 + maximumLODLevel: 0 + maximumLODLevelMode: 0 + maximumLODLevelQualityLevel: 0 + sssQualityMode: 0 + sssQualityLevel: 0 + sssCustomSampleBudget: 0 + sssCustomDownsampleSteps: 0 + msaaMode: 0 + materialQuality: 0 + m_ObsoleteRealtimeReflectionFrameSettingsMovedToDefaultSettings: + bitDatas: + data1: 0 + data2: 0 + lodBias: 0 + lodBiasMode: 0 + lodBiasQualityLevel: 0 + maximumLODLevel: 0 + maximumLODLevelMode: 0 + maximumLODLevelQualityLevel: 0 + sssQualityMode: 0 + sssQualityLevel: 0 + sssCustomSampleBudget: 0 + sssCustomDownsampleSteps: 0 + msaaMode: 0 + materialQuality: 0 + m_ObsoleteBeforeTransparentCustomPostProcesses: [] + m_ObsoleteBeforePostProcessCustomPostProcesses: [] + m_ObsoleteAfterPostProcessCustomPostProcesses: [] + m_ObsoleteBeforeTAACustomPostProcesses: [] + m_ObsoleteShaderVariantLogLevel: 0 + m_ObsoleteLensAttenuation: 0 + m_ObsoleteDiffusionProfileSettingsList: [] + m_PrefilterUseLegacyLightmaps: 0 + m_PrefilterUseLightmapBicubicSampling: 0 diff --git a/Tests/SRPTests/Packages/com.unity.testing.hdrp/RP_Assets/HDRP_Test_Def_FSR2_Software.asset.meta b/Tests/SRPTests/Packages/com.unity.testing.hdrp/RP_Assets/HDRP_Test_Def_FSR2_Software.asset.meta new file mode 100644 index 00000000000..dae1928d5f4 --- /dev/null +++ b/Tests/SRPTests/Packages/com.unity.testing.hdrp/RP_Assets/HDRP_Test_Def_FSR2_Software.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 02c1dcf00256ddc45819b6e10011cf9e +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Packages/com.unity.testing.hdrp/RP_Assets/HDRP_Test_Def_FSR2_Software_AfterPost.asset b/Tests/SRPTests/Packages/com.unity.testing.hdrp/RP_Assets/HDRP_Test_Def_FSR2_Software_AfterPost.asset new file mode 100644 index 00000000000..3de4a67e20a --- /dev/null +++ b/Tests/SRPTests/Packages/com.unity.testing.hdrp/RP_Assets/HDRP_Test_Def_FSR2_Software_AfterPost.asset @@ -0,0 +1,555 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cf1dab834d4ec34195b920ea7bbf9ec, type: 3} + m_Name: HDRP_Test_Def_FSR2_Software_AfterPost + m_EditorClassIdentifier: + m_RenderPipelineSettings: + supportShadowMask: 1 + supportSSR: 0 + supportSSRTransparent: 0 + supportSSAO: 1 + supportSSGI: 0 + supportSubsurfaceScattering: 1 + subsurfaceScatteringAttenuation: 1 + sssSampleBudget: + m_Values: 140000002800000050000000 + m_SchemaId: + m_Id: With3Levels + sssDownsampleSteps: + m_Values: 000000000000000000000000 + m_SchemaId: + m_Id: With3Levels + supportVolumetrics: 1 + supportVolumetricClouds: 0 + supportLightLayers: 0 + renderingLayerMaskBuffer: 0 + supportWater: 0 + waterSimulationResolution: 128 + supportWaterExclusion: 0 + supportWaterHorizontalDeformation: 0 + supportWaterDecals: 1 + waterDecalAtlasSize: 1024 + maximumWaterDecalCount: 48 + waterScriptInteractionsMode: 0 + waterFullCPUSimulation: 0 + supportComputeThickness: 0 + computeThicknessResolution: 1 + computeThicknessLayerMask: + serializedVersion: 2 + m_Bits: 0 + supportDistortion: 1 + supportTransparentBackface: 1 + supportTransparentDepthPrepass: 1 + supportTransparentDepthPostpass: 1 + colorBufferFormat: 74 + supportCustomPass: 1 + supportVariableRateShading: 1 + customBufferFormat: 12 + supportedLitShaderMode: 2 + planarReflectionResolution: + m_Values: 000100000004000000080000 + m_SchemaId: + m_Id: With3Levels + cubeReflectionResolution: + m_Values: 800000000001000000020000 + m_SchemaId: + m_Id: With3Levels + supportDecals: 1 + supportDecalLayers: 0 + supportSurfaceGradient: 0 + decalNormalBufferHP: 0 + supportHighQualityLineRendering: 0 + highQualityLineRenderingMemoryBudget: 128 + msaaSampleCount: 1 + supportMotionVectors: 1 + supportScreenSpaceLensFlare: 1 + supportDataDrivenLensFlare: 1 + supportDitheringCrossFade: 1 + supportRuntimeAOVAPI: 0 + supportTerrainHole: 0 + lightProbeSystem: 0 + oldLightProbeSystem: 0 + probeVolumeMemoryBudget: 1024 + supportProbeVolumeGPUStreaming: 0 + supportProbeVolumeDiskStreaming: 0 + probeVolumeSHBands: 1 + supportProbeVolumeScenarios: 0 + supportProbeVolumeScenarioBlending: 1 + probeVolumeBlendingMemoryBudget: 128 + supportRayTracing: 0 + supportVFXRayTracing: 0 + supportedRayTracingMode: 3 + lightLoopSettings: + cookieAtlasSize: 2048 + cookieFormat: 74 + cookieAtlasLastValidMip: 0 + cookieTexArraySize: 1 + planarReflectionAtlasSize: 1024 + reflectionProbeCacheSize: 64 + reflectionCubemapSize: 256 + maxEnvLightsOnScreen: 64 + reflectionCacheCompressed: 0 + reflectionProbeFormat: 74 + reflectionProbeTexCacheSize: 4096 + reflectionProbeTexLastValidCubeMip: 3 + reflectionProbeTexLastValidPlanarMip: 0 + reflectionProbeDecreaseResToFit: 1 + skyReflectionSize: 256 + skyLightingOverrideLayerMask: + serializedVersion: 2 + m_Bits: 0 + supportFabricConvolution: 0 + maxDirectionalLightsOnScreen: 16 + maxPunctualLightsOnScreen: 512 + maxAreaLightsOnScreen: 64 + maxCubeReflectionOnScreen: 48 + maxPlanarReflectionOnScreen: 16 + maxDecalsOnScreen: 512 + maxLightsPerClusterCell: 8 + maxLocalVolumetricFogSize: 32 + maxLocalVolumetricFogOnScreen: 64 + hdShadowInitParams: + maxShadowRequests: 128 + directionalShadowsDepthBits: 32 + punctualShadowFilteringQuality: 1 + directionalShadowFilteringQuality: 1 + areaShadowFilteringQuality: 0 + punctualLightShadowAtlas: + shadowAtlasResolution: 4096 + shadowAtlasDepthBits: 32 + useDynamicViewportRescale: 1 + areaLightShadowAtlas: + shadowAtlasResolution: 4096 + shadowAtlasDepthBits: 32 + useDynamicViewportRescale: 1 + cachedPunctualLightShadowAtlas: 2048 + cachedAreaLightShadowAtlas: 1024 + allowDirectionalMixedCachedShadows: 0 + shadowResolutionDirectional: + m_Values: 00010000000200000004000000080000 + m_SchemaId: + m_Id: With4Levels + shadowResolutionPunctual: + m_Values: 00010000000200000004000000080000 + m_SchemaId: + m_Id: With4Levels + shadowResolutionArea: + m_Values: 00010000000200000004000000080000 + m_SchemaId: + m_Id: With4Levels + maxDirectionalShadowMapResolution: 2048 + maxPunctualShadowMapResolution: 2048 + maxAreaShadowMapResolution: 2048 + supportScreenSpaceShadows: 0 + maxScreenSpaceShadowSlots: 4 + screenSpaceShadowBufferFormat: 48 + decalSettings: + drawDistance: 1000 + atlasWidth: 4096 + atlasHeight: 4096 + transparentTextureResolution: + m_Values: 000100000002000000040000 + m_SchemaId: + m_Id: With3Levels + perChannelMask: 0 + postProcessSettings: + m_LutSize: 32 + lutFormat: 48 + bufferFormat: 74 + dynamicResolutionSettings: + enabled: 1 + useMipBias: 0 + advancedUpscalersByPriority: 01 + DLSSPerfQualitySetting: 0 + DLSSInjectionPoint: 2 + TAAUInjectionPoint: 0 + STPInjectionPoint: 0 + defaultInjectionPoint: 2 + DLSSUseOptimalSettings: 1 + DLSSSharpness: 0 + DLSSRenderPresetForQuality: 0 + DLSSRenderPresetForBalanced: 0 + DLSSRenderPresetForPerformance: 0 + DLSSRenderPresetForUltraPerformance: 0 + DLSSRenderPresetForDLAA: 0 + FSR2EnableSharpness: 1 + FSR2Sharpness: 0.8 + FSR2UseOptimalSettings: 0 + FSR2QualitySetting: 0 + FSR2InjectionPoint: 2 + fsrOverrideSharpness: 0 + fsrSharpness: 0.92 + maxPercentage: 100 + minPercentage: 100 + dynResType: 0 + upsampleFilter: 1 + forceResolution: 1 + forcedPercentage: 40 + lowResTransparencyMinimumThreshold: 0 + rayTracingHalfResThreshold: 50 + lowResSSGIMinimumThreshold: 0 + lowResVolumetricCloudsMinimumThreshold: 50 + enableDLSS: 0 + lowresTransparentSettings: + enabled: 1 + checkerboardDepthBuffer: 1 + upsampleType: 1 + xrSettings: + singlePass: 1 + occlusionMesh: 1 + cameraJitter: 0 + allowMotionBlur: 0 + postProcessQualitySettings: + NearBlurSampleCount: 030000000500000008000000 + NearBlurMaxRadius: + - 2 + - 4 + - 7 + FarBlurSampleCount: 04000000070000000e000000 + FarBlurMaxRadius: + - 5 + - 8 + - 13 + DoFResolution: 040000000200000001000000 + DoFHighQualityFiltering: 000101 + DoFPhysicallyBased: 000000 + AdaptiveSamplingWeight: + - 0.5 + - 0.75 + - 2 + LimitManualRangeNearBlur: 000000 + MotionBlurSampleCount: 04000000080000000c000000 + BloomRes: 040000000200000002000000 + BloomHighQualityFiltering: 000101 + BloomHighQualityPrefiltering: 000001 + ChromaticAberrationMaxSamples: 03000000060000000c000000 + lightSettings: + useContactShadow: + m_Values: 000001 + m_SchemaId: + m_Id: With3Levels + maximumLODLevel: + m_Values: 000000000000000000000000 + m_SchemaId: + m_Id: With3Levels + lodBias: + m_Values: + - 1 + - 1 + - 1 + m_SchemaId: + m_Id: With3Levels + lightingQualitySettings: + AOStepCount: 040000000600000010000000 + AOFullRes: 000001 + AOMaximumRadiusPixels: 200000002800000050000000 + AOBilateralUpsample: 000101 + AODirectionCount: 010000000200000004000000 + ContactShadowSampleCount: 060000000a00000010000000 + SSRMaxRaySteps: 100000002000000040000000 + SSGIRaySteps: 200000004000000080000000 + SSGIDenoise: 010101 + SSGIHalfResDenoise: 010000 + SSGIDenoiserRadius: + - 0.75 + - 0.5 + - 0.5 + SSGISecondDenoise: 010101 + RTAORayLength: + - 0.5 + - 3 + - 20 + RTAOSampleCount: 010000000200000008000000 + RTAODenoise: 010101 + RTAODenoiserRadius: + - 0.25 + - 0.5 + - 0.65 + RTGIRayLength: + - 50 + - 50 + - 50 + RTGIFullResolution: 000001 + RTGIRaySteps: 200000003000000040000000 + RTGIDenoise: 010101 + RTGIHalfResDenoise: 010000 + RTGIDenoiserRadius: + - 0.75 + - 0.5 + - 0.25 + RTGISecondDenoise: 010101 + RTRMinSmoothness: + - 0.6 + - 0.4 + - 0 + RTRSmoothnessFadeStart: + - 0.7 + - 0.5 + - 0 + RTRRayLength: + - 50 + - 50 + - 50 + RTRFullResolution: 000001 + RTRRayMaxIterations: 200000003000000040000000 + RTRDenoise: 010101 + RTRDenoiserRadiusDimmer: + - 0.75 + - 0.75 + - 1 + RTRDenoiserAntiFlicker: + - 1 + - 1 + - 1 + Fog_ControlMode: 000000000000000000000000 + Fog_Budget: + - 0.166 + - 0.33 + - 0.666 + Fog_DepthRatio: + - 0.666 + - 0.666 + - 0.5 + gpuResidentDrawerSettings: + mode: 0 + smallMeshScreenPercentage: 0 + enableOcclusionCullingInCameras: 0 + useDepthPrepassForOccluders: 1 + m_ObsoleteLightLayerName0: + m_ObsoleteLightLayerName1: + m_ObsoleteLightLayerName2: + m_ObsoleteLightLayerName3: + m_ObsoleteLightLayerName4: + m_ObsoleteLightLayerName5: + m_ObsoleteLightLayerName6: + m_ObsoleteLightLayerName7: + m_ObsoleteDecalLayerName0: + m_ObsoleteDecalLayerName1: + m_ObsoleteDecalLayerName2: + m_ObsoleteDecalLayerName3: + m_ObsoleteDecalLayerName4: + m_ObsoleteDecalLayerName5: + m_ObsoleteDecalLayerName6: + m_ObsoleteDecalLayerName7: + m_ObsoleteSupportRuntimeDebugDisplay: 0 + allowShaderVariantStripping: 1 + enableSRPBatcher: 1 + availableMaterialQualityLevels: -1 + m_DefaultMaterialQualityLevel: 4 + diffusionProfileSettings: {fileID: 0} + m_VolumeProfile: {fileID: 0} + virtualTexturingSettings: + streamingCpuCacheSizeInMegaBytes: 80 + streamingMipPreloadTexturesPerFrame: 0 + streamingPreloadMipCount: 1 + streamingGpuCacheSettings: + - format: 0 + sizeInMegaBytes: 32 + m_UseRenderGraph: 1 + m_CompositorCustomVolumeComponentsList: + m_InjectionPoint: 1 + m_CustomPostProcessTypesAsString: [] + m_Version: 25 + m_ObsoleteFrameSettings: + overrides: 0 + enableShadow: 0 + enableContactShadows: 0 + enableShadowMask: 0 + enableSSR: 0 + enableSSAO: 0 + enableSubsurfaceScattering: 0 + enableTransmission: 0 + enableAtmosphericScattering: 0 + enableVolumetrics: 0 + enableReprojectionForVolumetrics: 0 + enableLightLayers: 0 + enableExposureControl: 1 + diffuseGlobalDimmer: 0 + specularGlobalDimmer: 0 + shaderLitMode: 0 + enableDepthPrepassWithDeferredRendering: 0 + enableTransparentPrepass: 0 + enableMotionVectors: 0 + enableObjectMotionVectors: 0 + enableDecals: 0 + enableRoughRefraction: 0 + enableTransparentPostpass: 0 + enableDistortion: 0 + enablePostprocess: 0 + enableOpaqueObjects: 0 + enableTransparentObjects: 0 + enableRealtimePlanarReflection: 0 + enableMSAA: 0 + enableAsyncCompute: 0 + runLightListAsync: 0 + runSSRAsync: 0 + runSSAOAsync: 0 + runContactShadowsAsync: 0 + runVolumeVoxelizationAsync: 0 + lightLoopSettings: + overrides: 0 + enableDeferredTileAndCluster: 0 + enableComputeLightEvaluation: 0 + enableComputeLightVariants: 0 + enableComputeMaterialVariants: 0 + enableFptlForForwardOpaque: 0 + enableBigTilePrepass: 0 + isFptlEnabled: 0 + m_ObsoleteBakedOrCustomReflectionFrameSettings: + overrides: 0 + enableShadow: 0 + enableContactShadows: 0 + enableShadowMask: 0 + enableSSR: 0 + enableSSAO: 0 + enableSubsurfaceScattering: 0 + enableTransmission: 0 + enableAtmosphericScattering: 0 + enableVolumetrics: 0 + enableReprojectionForVolumetrics: 0 + enableLightLayers: 0 + enableExposureControl: 1 + diffuseGlobalDimmer: 0 + specularGlobalDimmer: 0 + shaderLitMode: 0 + enableDepthPrepassWithDeferredRendering: 0 + enableTransparentPrepass: 0 + enableMotionVectors: 0 + enableObjectMotionVectors: 0 + enableDecals: 0 + enableRoughRefraction: 0 + enableTransparentPostpass: 0 + enableDistortion: 0 + enablePostprocess: 0 + enableOpaqueObjects: 0 + enableTransparentObjects: 0 + enableRealtimePlanarReflection: 0 + enableMSAA: 0 + enableAsyncCompute: 0 + runLightListAsync: 0 + runSSRAsync: 0 + runSSAOAsync: 0 + runContactShadowsAsync: 0 + runVolumeVoxelizationAsync: 0 + lightLoopSettings: + overrides: 0 + enableDeferredTileAndCluster: 0 + enableComputeLightEvaluation: 0 + enableComputeLightVariants: 0 + enableComputeMaterialVariants: 0 + enableFptlForForwardOpaque: 0 + enableBigTilePrepass: 0 + isFptlEnabled: 0 + m_ObsoleteRealtimeReflectionFrameSettings: + overrides: 0 + enableShadow: 0 + enableContactShadows: 0 + enableShadowMask: 0 + enableSSR: 0 + enableSSAO: 0 + enableSubsurfaceScattering: 0 + enableTransmission: 0 + enableAtmosphericScattering: 0 + enableVolumetrics: 0 + enableReprojectionForVolumetrics: 0 + enableLightLayers: 0 + enableExposureControl: 1 + diffuseGlobalDimmer: 0 + specularGlobalDimmer: 0 + shaderLitMode: 0 + enableDepthPrepassWithDeferredRendering: 0 + enableTransparentPrepass: 0 + enableMotionVectors: 0 + enableObjectMotionVectors: 0 + enableDecals: 0 + enableRoughRefraction: 0 + enableTransparentPostpass: 0 + enableDistortion: 0 + enablePostprocess: 0 + enableOpaqueObjects: 0 + enableTransparentObjects: 0 + enableRealtimePlanarReflection: 0 + enableMSAA: 0 + enableAsyncCompute: 0 + runLightListAsync: 0 + runSSRAsync: 0 + runSSAOAsync: 0 + runContactShadowsAsync: 0 + runVolumeVoxelizationAsync: 0 + lightLoopSettings: + overrides: 0 + enableDeferredTileAndCluster: 0 + enableComputeLightEvaluation: 0 + enableComputeLightVariants: 0 + enableComputeMaterialVariants: 0 + enableFptlForForwardOpaque: 0 + enableBigTilePrepass: 0 + isFptlEnabled: 0 + m_ObsoleteDefaultVolumeProfile: {fileID: 0} + m_ObsoleteDefaultLookDevProfile: {fileID: 0} + m_ObsoleteFrameSettingsMovedToDefaultSettings: + bitDatas: + data1: 0 + data2: 0 + lodBias: 0 + lodBiasMode: 0 + lodBiasQualityLevel: 0 + maximumLODLevel: 0 + maximumLODLevelMode: 0 + maximumLODLevelQualityLevel: 0 + sssQualityMode: 0 + sssQualityLevel: 0 + sssCustomSampleBudget: 0 + sssCustomDownsampleSteps: 0 + msaaMode: 0 + materialQuality: 0 + m_ObsoleteBakedOrCustomReflectionFrameSettingsMovedToDefaultSettings: + bitDatas: + data1: 0 + data2: 0 + lodBias: 0 + lodBiasMode: 0 + lodBiasQualityLevel: 0 + maximumLODLevel: 0 + maximumLODLevelMode: 0 + maximumLODLevelQualityLevel: 0 + sssQualityMode: 0 + sssQualityLevel: 0 + sssCustomSampleBudget: 0 + sssCustomDownsampleSteps: 0 + msaaMode: 0 + materialQuality: 0 + m_ObsoleteRealtimeReflectionFrameSettingsMovedToDefaultSettings: + bitDatas: + data1: 0 + data2: 0 + lodBias: 0 + lodBiasMode: 0 + lodBiasQualityLevel: 0 + maximumLODLevel: 0 + maximumLODLevelMode: 0 + maximumLODLevelQualityLevel: 0 + sssQualityMode: 0 + sssQualityLevel: 0 + sssCustomSampleBudget: 0 + sssCustomDownsampleSteps: 0 + msaaMode: 0 + materialQuality: 0 + m_ObsoleteBeforeTransparentCustomPostProcesses: [] + m_ObsoleteBeforePostProcessCustomPostProcesses: [] + m_ObsoleteAfterPostProcessCustomPostProcesses: [] + m_ObsoleteBeforeTAACustomPostProcesses: [] + m_ObsoleteShaderVariantLogLevel: 0 + m_ObsoleteLensAttenuation: 0 + m_ObsoleteDiffusionProfileSettingsList: [] + m_PrefilterUseLegacyLightmaps: 0 + m_PrefilterUseLightmapBicubicSampling: 0 diff --git a/Tests/SRPTests/Packages/com.unity.testing.hdrp/RP_Assets/HDRP_Test_Def_FSR2_Software_AfterPost.asset.meta b/Tests/SRPTests/Packages/com.unity.testing.hdrp/RP_Assets/HDRP_Test_Def_FSR2_Software_AfterPost.asset.meta new file mode 100644 index 00000000000..f190aa0e64f --- /dev/null +++ b/Tests/SRPTests/Packages/com.unity.testing.hdrp/RP_Assets/HDRP_Test_Def_FSR2_Software_AfterPost.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 36c743f54fc91714bbc9aab32334513a +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/4x_PostProcessing/4107_DRS-FSR2-Hardware.unity b/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/4x_PostProcessing/4107_DRS-FSR2-Hardware.unity new file mode 100644 index 00000000000..0ce0017fffc --- /dev/null +++ b/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/4x_PostProcessing/4107_DRS-FSR2-Hardware.unity @@ -0,0 +1,668 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 10 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 0 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 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: 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!1001 &223038177 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 1132393308280272, guid: c07ace9ab142ca9469fa377877c2f1e7, type: 3} + propertyPath: m_Name + value: HDRP_Test_Camera + objectReference: {fileID: 0} + - target: {fileID: 4209882255362944, guid: c07ace9ab142ca9469fa377877c2f1e7, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4209882255362944, guid: c07ace9ab142ca9469fa377877c2f1e7, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4209882255362944, guid: c07ace9ab142ca9469fa377877c2f1e7, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4209882255362944, guid: c07ace9ab142ca9469fa377877c2f1e7, type: 3} + propertyPath: m_LocalPosition.z + value: -10 + objectReference: {fileID: 0} + - target: {fileID: 4209882255362944, guid: c07ace9ab142ca9469fa377877c2f1e7, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4209882255362944, guid: c07ace9ab142ca9469fa377877c2f1e7, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4209882255362944, guid: c07ace9ab142ca9469fa377877c2f1e7, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4209882255362944, guid: c07ace9ab142ca9469fa377877c2f1e7, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4209882255362944, guid: c07ace9ab142ca9469fa377877c2f1e7, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4209882255362944, guid: c07ace9ab142ca9469fa377877c2f1e7, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4209882255362944, guid: c07ace9ab142ca9469fa377877c2f1e7, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 20109210616973140, guid: c07ace9ab142ca9469fa377877c2f1e7, + type: 3} + propertyPath: m_AllowDynamicResolution + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 114777190906822814, guid: c07ace9ab142ca9469fa377877c2f1e7, + type: 3} + propertyPath: m_Version + value: 9 + objectReference: {fileID: 0} + - target: {fileID: 114777190906822814, guid: c07ace9ab142ca9469fa377877c2f1e7, + type: 3} + propertyPath: clearColorMode + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 114777190906822814, guid: c07ace9ab142ca9469fa377877c2f1e7, + type: 3} + propertyPath: allowDynamicResolution + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 114777190906822814, guid: c07ace9ab142ca9469fa377877c2f1e7, + type: 3} + propertyPath: customRenderingSettings + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 114777190906822814, guid: c07ace9ab142ca9469fa377877c2f1e7, + type: 3} + propertyPath: allowDeepLearningSuperSampling + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 114777190906822814, guid: c07ace9ab142ca9469fa377877c2f1e7, + type: 3} + propertyPath: allowFidelityFX2SuperResolution + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 114777190906822814, guid: c07ace9ab142ca9469fa377877c2f1e7, + type: 3} + propertyPath: m_RenderingPathCustomFrameSettings.bitDatas.data1 + value: 70005819440989 + objectReference: {fileID: 0} + - target: {fileID: 114777190906822814, guid: c07ace9ab142ca9469fa377877c2f1e7, + type: 3} + propertyPath: renderingPathCustomFrameSettingsOverrideMask.mask.data1 + value: 655360 + objectReference: {fileID: 0} + - target: {fileID: 114995348509370400, guid: c07ace9ab142ca9469fa377877c2f1e7, + type: 3} + propertyPath: waitFrames + value: 64 + objectReference: {fileID: 0} + - target: {fileID: 114995348509370400, guid: c07ace9ab142ca9469fa377877c2f1e7, + type: 3} + propertyPath: frameCountMultiple + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 114995348509370400, guid: c07ace9ab142ca9469fa377877c2f1e7, + type: 3} + propertyPath: renderPipelineAsset + value: + objectReference: {fileID: 11400000, guid: c9851109961f5bb48976c57b58923258, + type: 2} + - target: {fileID: 114995348509370400, guid: c07ace9ab142ca9469fa377877c2f1e7, + type: 3} + propertyPath: xrThresholdMultiplier + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 114995348509370400, guid: c07ace9ab142ca9469fa377877c2f1e7, + type: 3} + propertyPath: waitForFrameCountMultiple + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 114995348509370400, guid: c07ace9ab142ca9469fa377877c2f1e7, + type: 3} + propertyPath: ImageComparisonSettings.TargetWidth + value: 1920 + objectReference: {fileID: 0} + - target: {fileID: 114995348509370400, guid: c07ace9ab142ca9469fa377877c2f1e7, + type: 3} + propertyPath: ImageComparisonSettings.TargetHeight + value: 1080 + objectReference: {fileID: 0} + - target: {fileID: 114995348509370400, guid: c07ace9ab142ca9469fa377877c2f1e7, + type: 3} + propertyPath: ImageComparisonSettings.AverageCorrectnessThreshold + value: 0.00005 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: c07ace9ab142ca9469fa377877c2f1e7, type: 3} +--- !u!1001 &718012768 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 1030796126420900363, guid: 4e92e09835e1a6b499ce3d2405462efb, + type: 3} + propertyPath: m_Version + value: 14 + objectReference: {fileID: 0} + - target: {fileID: 1030796126420900363, guid: 4e92e09835e1a6b499ce3d2405462efb, + type: 3} + propertyPath: m_ShapeWidth + value: -1 + objectReference: {fileID: 0} + - target: {fileID: 1030796126420900363, guid: 4e92e09835e1a6b499ce3d2405462efb, + type: 3} + propertyPath: m_ShapeHeight + value: -1 + objectReference: {fileID: 0} + - target: {fileID: 1030796126420900363, guid: 4e92e09835e1a6b499ce3d2405462efb, + type: 3} + propertyPath: m_InnerSpotPercent + value: -1 + objectReference: {fileID: 0} + - target: {fileID: 3216970787397183125, guid: 4e92e09835e1a6b499ce3d2405462efb, + type: 3} + propertyPath: m_Version + value: 14 + objectReference: {fileID: 0} + - target: {fileID: 3216970787397183125, guid: 4e92e09835e1a6b499ce3d2405462efb, + type: 3} + propertyPath: m_ShapeWidth + value: -1 + objectReference: {fileID: 0} + - target: {fileID: 3216970787397183125, guid: 4e92e09835e1a6b499ce3d2405462efb, + type: 3} + propertyPath: m_ShapeHeight + value: -1 + objectReference: {fileID: 0} + - target: {fileID: 3216970787397183125, guid: 4e92e09835e1a6b499ce3d2405462efb, + type: 3} + propertyPath: m_InnerSpotPercent + value: -1 + objectReference: {fileID: 0} + - target: {fileID: 3216970787578992433, guid: 4e92e09835e1a6b499ce3d2405462efb, + type: 3} + propertyPath: m_Version + value: 14 + objectReference: {fileID: 0} + - target: {fileID: 3216970787578992433, guid: 4e92e09835e1a6b499ce3d2405462efb, + type: 3} + propertyPath: m_ShapeWidth + value: -1 + objectReference: {fileID: 0} + - target: {fileID: 3216970787578992433, guid: 4e92e09835e1a6b499ce3d2405462efb, + type: 3} + propertyPath: m_ShapeHeight + value: -1 + objectReference: {fileID: 0} + - target: {fileID: 3216970787578992433, guid: 4e92e09835e1a6b499ce3d2405462efb, + type: 3} + propertyPath: m_InnerSpotPercent + value: -1 + objectReference: {fileID: 0} + - target: {fileID: 3216970788645259455, guid: 4e92e09835e1a6b499ce3d2405462efb, + type: 3} + propertyPath: m_Version + value: 14 + objectReference: {fileID: 0} + - target: {fileID: 3216970788645259455, guid: 4e92e09835e1a6b499ce3d2405462efb, + type: 3} + propertyPath: m_ShapeWidth + value: -1 + objectReference: {fileID: 0} + - target: {fileID: 3216970788645259455, guid: 4e92e09835e1a6b499ce3d2405462efb, + type: 3} + propertyPath: m_ShapeHeight + value: -1 + objectReference: {fileID: 0} + - target: {fileID: 3216970788645259455, guid: 4e92e09835e1a6b499ce3d2405462efb, + type: 3} + propertyPath: m_InnerSpotPercent + value: -1 + objectReference: {fileID: 0} + - target: {fileID: 4067905044715825574, guid: 4e92e09835e1a6b499ce3d2405462efb, + type: 3} + propertyPath: m_Name + value: Scene + objectReference: {fileID: 0} + - target: {fileID: 8077502235347394545, guid: 4e92e09835e1a6b499ce3d2405462efb, + type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8077502235347394545, guid: 4e92e09835e1a6b499ce3d2405462efb, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8077502235347394545, guid: 4e92e09835e1a6b499ce3d2405462efb, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8077502235347394545, guid: 4e92e09835e1a6b499ce3d2405462efb, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8077502235347394545, guid: 4e92e09835e1a6b499ce3d2405462efb, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8077502235347394545, guid: 4e92e09835e1a6b499ce3d2405462efb, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8077502235347394545, guid: 4e92e09835e1a6b499ce3d2405462efb, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8077502235347394545, guid: 4e92e09835e1a6b499ce3d2405462efb, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8077502235347394545, guid: 4e92e09835e1a6b499ce3d2405462efb, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8077502235347394545, guid: 4e92e09835e1a6b499ce3d2405462efb, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8077502235347394545, guid: 4e92e09835e1a6b499ce3d2405462efb, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 4e92e09835e1a6b499ce3d2405462efb, type: 3} +--- !u!1 &1145805900 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1145805903} + - component: {fileID: 1145805902} + - component: {fileID: 1145805901} + m_Layer: 0 + m_Name: Directional Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1145805901 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1145805900} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7a68c43fe1f2a47cfa234b5eeaa98012, type: 3} + m_Name: + m_EditorClassIdentifier: + m_PointlightHDType: 0 + m_SpotLightShape: 0 + m_AreaLightShape: 0 + m_EnableSpotReflector: 1 + m_LightUnit: 2 + m_LuxAtDistance: 1 + m_Intensity: 0.9696518 + m_InnerSpotPercent: -1 + m_ShapeWidth: -1 + m_ShapeHeight: -1 + m_AspectRatio: 1 + m_SpotIESCutoffPercent: 100 + m_LightDimmer: 1 + m_VolumetricDimmer: 1 + m_FadeDistance: 10000 + m_VolumetricFadeDistance: 10000 + m_AffectDiffuse: 1 + m_AffectSpecular: 1 + m_NonLightmappedOnly: 0 + m_ShapeRadius: 0.025 + m_SoftnessScale: 1 + m_UseCustomSpotLightShadowCone: 0 + m_CustomSpotLightShadowCone: 30 + m_MaxSmoothness: 0.99 + m_ApplyRangeAttenuation: 1 + m_DisplayAreaLightEmissiveMesh: 0 + m_AreaLightCookie: {fileID: 0} + m_IESPoint: {fileID: 0} + m_IESSpot: {fileID: 0} + m_IncludeForRayTracing: 1 + m_IncludeForPathTracing: 1 + m_AreaLightShadowCone: 120 + m_UseScreenSpaceShadows: 0 + m_InteractsWithSky: 1 + m_AngularDiameter: 0.5 + diameterMultiplerMode: 0 + diameterMultiplier: 1 + diameterOverride: 0.5 + celestialBodyShadingSource: 1 + sunLightOverride: {fileID: 0} + sunColor: {r: 1, g: 1, b: 1, a: 1} + sunIntensity: 130000 + moonPhase: 0.2 + moonPhaseRotation: 0 + earthshine: 1 + flareSize: 2 + flareTint: {r: 1, g: 1, b: 1, a: 1} + flareFalloff: 4 + flareMultiplier: 1 + surfaceTexture: {fileID: 0} + surfaceTint: {r: 1, g: 1, b: 1, a: 1} + m_Distance: 1.5e+11 + m_UseRayTracedShadows: 0 + m_NumRayTracingSamples: 4 + m_FilterTracedShadow: 1 + m_FilterSizeTraced: 16 + m_SunLightConeAngle: 0.5 + m_LightShadowRadius: 0.5 + m_SemiTransparentShadow: 0 + m_ColorShadow: 1 + m_DistanceBasedFiltering: 0 + m_EvsmExponent: 15 + m_EvsmLightLeakBias: 0 + m_EvsmVarianceBias: 0.00001 + m_EvsmBlurPasses: 0 + m_LightlayersMask: 1 + m_LinkShadowLayers: 1 + m_ShadowNearPlane: 0.1 + m_BlockerSampleCount: 24 + m_FilterSampleCount: 16 + m_MinFilterSize: 0.1 + m_DirLightPCSSBlockerSampleCount: 24 + m_DirLightPCSSFilterSampleCount: 16 + m_DirLightPCSSMaxPenumbraSize: 0.56 + m_DirLightPCSSMaxSamplingDistance: 0.5 + m_DirLightPCSSMinFilterSizeTexels: 1.5 + m_DirLightPCSSMinFilterMaxAngularDiameter: 10 + m_DirLightPCSSBlockerSearchAngularDiameter: 12 + m_DirLightPCSSBlockerSamplingClumpExponent: 2 + m_KernelSize: 5 + m_LightAngle: 1 + m_MaxDepthBias: 0.001 + m_ShadowResolution: + m_Override: 512 + m_UseOverride: 1 + m_Level: 0 + m_ShadowDimmer: 1 + m_VolumetricShadowDimmer: 1 + m_ShadowFadeDistance: 10000 + m_UseContactShadow: + m_Override: 0 + m_UseOverride: 1 + m_Level: 0 + m_RayTracedContactShadow: 0 + m_ShadowTint: {r: 0, g: 0, b: 0, a: 1} + m_PenumbraTint: 0 + m_NormalBias: 0.75 + m_SlopeBias: 0.5 + m_ShadowUpdateMode: 0 + m_AlwaysDrawDynamicShadows: 0 + m_UpdateShadowOnLightMovement: 0 + m_CachedShadowTranslationThreshold: 0.01 + m_CachedShadowAngularThreshold: 0.5 + m_BarnDoorAngle: 90 + m_BarnDoorLength: 0.05 + m_preserveCachedShadow: 0 + m_OnDemandShadowRenderOnPlacement: 1 + m_ShadowCascadeRatios: + - 0.05 + - 0.2 + - 0.3 + m_ShadowCascadeBorders: + - 0.2 + - 0.2 + - 0.2 + - 0.2 + m_ShadowAlgorithm: 0 + m_ShadowVariant: 0 + m_ShadowPrecision: 0 + useOldInspector: 0 + useVolumetric: 1 + featuresFoldout: 1 + m_AreaLightEmissiveMeshShadowCastingMode: 0 + m_AreaLightEmissiveMeshMotionVectorGenerationMode: 0 + m_AreaLightEmissiveMeshLayer: -1 + m_Version: 14 + m_ObsoleteShadowResolutionTier: 1 + m_ObsoleteUseShadowQualitySettings: 0 + m_ObsoleteCustomShadowResolution: 512 + m_ObsoleteContactShadows: 0 +--- !u!108 &1145805902 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1145805900} + m_Enabled: 1 + serializedVersion: 12 + m_Type: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Intensity: 0.9696518 + m_Range: 10 + m_SpotAngle: 30 + m_InnerSpotAngle: 0 + m_CookieSize2D: {x: 0.5, y: 0.5} + m_Shadows: + m_Type: 0 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 2 + m_AreaSize: {x: 0.5, y: 0.5} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 1 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 + m_LightUnit: 2 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 +--- !u!4 &1145805903 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1145805900} + serializedVersion: 2 + m_LocalRotation: {x: 0.13875811, y: 0.5250831, z: -0.42723507, w: 0.72284454} + m_LocalPosition: {x: 0.26, y: 2.95, z: -6.32} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 40.487, y: 57.373, z: -38.353} +--- !u!1660057539 &9223372036854775807 +SceneRoots: + m_ObjectHideFlags: 0 + m_Roots: + - {fileID: 223038177} + - {fileID: 718012768} + - {fileID: 1145805903} diff --git a/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/4x_PostProcessing/4107_DRS-FSR2-Hardware.unity.meta b/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/4x_PostProcessing/4107_DRS-FSR2-Hardware.unity.meta new file mode 100644 index 00000000000..437c432b543 --- /dev/null +++ b/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/4x_PostProcessing/4107_DRS-FSR2-Hardware.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 90eae0c5496f9ac4ea55280841b6efdb +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/4x_PostProcessing/4108_DRS-FSR2-Software.unity b/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/4x_PostProcessing/4108_DRS-FSR2-Software.unity new file mode 100644 index 00000000000..b3c94a059f0 --- /dev/null +++ b/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/4x_PostProcessing/4108_DRS-FSR2-Software.unity @@ -0,0 +1,673 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 10 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 0 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 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: 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!1001 &223038177 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 1132393308280272, guid: c07ace9ab142ca9469fa377877c2f1e7, type: 3} + propertyPath: m_Name + value: HDRP_Test_Camera + objectReference: {fileID: 0} + - target: {fileID: 4209882255362944, guid: c07ace9ab142ca9469fa377877c2f1e7, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4209882255362944, guid: c07ace9ab142ca9469fa377877c2f1e7, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4209882255362944, guid: c07ace9ab142ca9469fa377877c2f1e7, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4209882255362944, guid: c07ace9ab142ca9469fa377877c2f1e7, type: 3} + propertyPath: m_LocalPosition.z + value: -10 + objectReference: {fileID: 0} + - target: {fileID: 4209882255362944, guid: c07ace9ab142ca9469fa377877c2f1e7, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4209882255362944, guid: c07ace9ab142ca9469fa377877c2f1e7, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4209882255362944, guid: c07ace9ab142ca9469fa377877c2f1e7, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4209882255362944, guid: c07ace9ab142ca9469fa377877c2f1e7, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4209882255362944, guid: c07ace9ab142ca9469fa377877c2f1e7, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4209882255362944, guid: c07ace9ab142ca9469fa377877c2f1e7, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4209882255362944, guid: c07ace9ab142ca9469fa377877c2f1e7, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 20109210616973140, guid: c07ace9ab142ca9469fa377877c2f1e7, + type: 3} + propertyPath: m_AllowDynamicResolution + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 114777190906822814, guid: c07ace9ab142ca9469fa377877c2f1e7, + type: 3} + propertyPath: m_Version + value: 9 + objectReference: {fileID: 0} + - target: {fileID: 114777190906822814, guid: c07ace9ab142ca9469fa377877c2f1e7, + type: 3} + propertyPath: antialiasing + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 114777190906822814, guid: c07ace9ab142ca9469fa377877c2f1e7, + type: 3} + propertyPath: clearColorMode + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 114777190906822814, guid: c07ace9ab142ca9469fa377877c2f1e7, + type: 3} + propertyPath: allowDynamicResolution + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 114777190906822814, guid: c07ace9ab142ca9469fa377877c2f1e7, + type: 3} + propertyPath: customRenderingSettings + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 114777190906822814, guid: c07ace9ab142ca9469fa377877c2f1e7, + type: 3} + propertyPath: allowDeepLearningSuperSampling + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 114777190906822814, guid: c07ace9ab142ca9469fa377877c2f1e7, + type: 3} + propertyPath: allowFidelityFX2SuperResolution + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 114777190906822814, guid: c07ace9ab142ca9469fa377877c2f1e7, + type: 3} + propertyPath: m_RenderingPathCustomFrameSettings.bitDatas.data1 + value: 70005819440989 + objectReference: {fileID: 0} + - target: {fileID: 114777190906822814, guid: c07ace9ab142ca9469fa377877c2f1e7, + type: 3} + propertyPath: renderingPathCustomFrameSettingsOverrideMask.mask.data1 + value: 655360 + objectReference: {fileID: 0} + - target: {fileID: 114995348509370400, guid: c07ace9ab142ca9469fa377877c2f1e7, + type: 3} + propertyPath: waitFrames + value: 64 + objectReference: {fileID: 0} + - target: {fileID: 114995348509370400, guid: c07ace9ab142ca9469fa377877c2f1e7, + type: 3} + propertyPath: frameCountMultiple + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 114995348509370400, guid: c07ace9ab142ca9469fa377877c2f1e7, + type: 3} + propertyPath: renderPipelineAsset + value: + objectReference: {fileID: 11400000, guid: 02c1dcf00256ddc45819b6e10011cf9e, + type: 2} + - target: {fileID: 114995348509370400, guid: c07ace9ab142ca9469fa377877c2f1e7, + type: 3} + propertyPath: xrThresholdMultiplier + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 114995348509370400, guid: c07ace9ab142ca9469fa377877c2f1e7, + type: 3} + propertyPath: waitForFrameCountMultiple + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 114995348509370400, guid: c07ace9ab142ca9469fa377877c2f1e7, + type: 3} + propertyPath: ImageComparisonSettings.TargetWidth + value: 1920 + objectReference: {fileID: 0} + - target: {fileID: 114995348509370400, guid: c07ace9ab142ca9469fa377877c2f1e7, + type: 3} + propertyPath: ImageComparisonSettings.TargetHeight + value: 1080 + objectReference: {fileID: 0} + - target: {fileID: 114995348509370400, guid: c07ace9ab142ca9469fa377877c2f1e7, + type: 3} + propertyPath: ImageComparisonSettings.AverageCorrectnessThreshold + value: 0.00005 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: c07ace9ab142ca9469fa377877c2f1e7, type: 3} +--- !u!1001 &718012768 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 1030796126420900363, guid: 4e92e09835e1a6b499ce3d2405462efb, + type: 3} + propertyPath: m_Version + value: 14 + objectReference: {fileID: 0} + - target: {fileID: 1030796126420900363, guid: 4e92e09835e1a6b499ce3d2405462efb, + type: 3} + propertyPath: m_ShapeWidth + value: -1 + objectReference: {fileID: 0} + - target: {fileID: 1030796126420900363, guid: 4e92e09835e1a6b499ce3d2405462efb, + type: 3} + propertyPath: m_ShapeHeight + value: -1 + objectReference: {fileID: 0} + - target: {fileID: 1030796126420900363, guid: 4e92e09835e1a6b499ce3d2405462efb, + type: 3} + propertyPath: m_InnerSpotPercent + value: -1 + objectReference: {fileID: 0} + - target: {fileID: 3216970787397183125, guid: 4e92e09835e1a6b499ce3d2405462efb, + type: 3} + propertyPath: m_Version + value: 14 + objectReference: {fileID: 0} + - target: {fileID: 3216970787397183125, guid: 4e92e09835e1a6b499ce3d2405462efb, + type: 3} + propertyPath: m_ShapeWidth + value: -1 + objectReference: {fileID: 0} + - target: {fileID: 3216970787397183125, guid: 4e92e09835e1a6b499ce3d2405462efb, + type: 3} + propertyPath: m_ShapeHeight + value: -1 + objectReference: {fileID: 0} + - target: {fileID: 3216970787397183125, guid: 4e92e09835e1a6b499ce3d2405462efb, + type: 3} + propertyPath: m_InnerSpotPercent + value: -1 + objectReference: {fileID: 0} + - target: {fileID: 3216970787578992433, guid: 4e92e09835e1a6b499ce3d2405462efb, + type: 3} + propertyPath: m_Version + value: 14 + objectReference: {fileID: 0} + - target: {fileID: 3216970787578992433, guid: 4e92e09835e1a6b499ce3d2405462efb, + type: 3} + propertyPath: m_ShapeWidth + value: -1 + objectReference: {fileID: 0} + - target: {fileID: 3216970787578992433, guid: 4e92e09835e1a6b499ce3d2405462efb, + type: 3} + propertyPath: m_ShapeHeight + value: -1 + objectReference: {fileID: 0} + - target: {fileID: 3216970787578992433, guid: 4e92e09835e1a6b499ce3d2405462efb, + type: 3} + propertyPath: m_InnerSpotPercent + value: -1 + objectReference: {fileID: 0} + - target: {fileID: 3216970788645259455, guid: 4e92e09835e1a6b499ce3d2405462efb, + type: 3} + propertyPath: m_Version + value: 14 + objectReference: {fileID: 0} + - target: {fileID: 3216970788645259455, guid: 4e92e09835e1a6b499ce3d2405462efb, + type: 3} + propertyPath: m_ShapeWidth + value: -1 + objectReference: {fileID: 0} + - target: {fileID: 3216970788645259455, guid: 4e92e09835e1a6b499ce3d2405462efb, + type: 3} + propertyPath: m_ShapeHeight + value: -1 + objectReference: {fileID: 0} + - target: {fileID: 3216970788645259455, guid: 4e92e09835e1a6b499ce3d2405462efb, + type: 3} + propertyPath: m_InnerSpotPercent + value: -1 + objectReference: {fileID: 0} + - target: {fileID: 4067905044715825574, guid: 4e92e09835e1a6b499ce3d2405462efb, + type: 3} + propertyPath: m_Name + value: Scene + objectReference: {fileID: 0} + - target: {fileID: 8077502235347394545, guid: 4e92e09835e1a6b499ce3d2405462efb, + type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8077502235347394545, guid: 4e92e09835e1a6b499ce3d2405462efb, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8077502235347394545, guid: 4e92e09835e1a6b499ce3d2405462efb, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8077502235347394545, guid: 4e92e09835e1a6b499ce3d2405462efb, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8077502235347394545, guid: 4e92e09835e1a6b499ce3d2405462efb, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8077502235347394545, guid: 4e92e09835e1a6b499ce3d2405462efb, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8077502235347394545, guid: 4e92e09835e1a6b499ce3d2405462efb, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8077502235347394545, guid: 4e92e09835e1a6b499ce3d2405462efb, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8077502235347394545, guid: 4e92e09835e1a6b499ce3d2405462efb, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8077502235347394545, guid: 4e92e09835e1a6b499ce3d2405462efb, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8077502235347394545, guid: 4e92e09835e1a6b499ce3d2405462efb, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 4e92e09835e1a6b499ce3d2405462efb, type: 3} +--- !u!1 &1145805900 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1145805903} + - component: {fileID: 1145805902} + - component: {fileID: 1145805901} + m_Layer: 0 + m_Name: Directional Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1145805901 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1145805900} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7a68c43fe1f2a47cfa234b5eeaa98012, type: 3} + m_Name: + m_EditorClassIdentifier: + m_PointlightHDType: 0 + m_SpotLightShape: 0 + m_AreaLightShape: 0 + m_EnableSpotReflector: 1 + m_LightUnit: 2 + m_LuxAtDistance: 1 + m_Intensity: 0.9696518 + m_InnerSpotPercent: -1 + m_ShapeWidth: -1 + m_ShapeHeight: -1 + m_AspectRatio: 1 + m_SpotIESCutoffPercent: 100 + m_LightDimmer: 1 + m_VolumetricDimmer: 1 + m_FadeDistance: 10000 + m_VolumetricFadeDistance: 10000 + m_AffectDiffuse: 1 + m_AffectSpecular: 1 + m_NonLightmappedOnly: 0 + m_ShapeRadius: 0.025 + m_SoftnessScale: 1 + m_UseCustomSpotLightShadowCone: 0 + m_CustomSpotLightShadowCone: 30 + m_MaxSmoothness: 0.99 + m_ApplyRangeAttenuation: 1 + m_DisplayAreaLightEmissiveMesh: 0 + m_AreaLightCookie: {fileID: 0} + m_IESPoint: {fileID: 0} + m_IESSpot: {fileID: 0} + m_IncludeForRayTracing: 1 + m_IncludeForPathTracing: 1 + m_AreaLightShadowCone: 120 + m_UseScreenSpaceShadows: 0 + m_InteractsWithSky: 1 + m_AngularDiameter: 0.5 + diameterMultiplerMode: 0 + diameterMultiplier: 1 + diameterOverride: 0.5 + celestialBodyShadingSource: 1 + sunLightOverride: {fileID: 0} + sunColor: {r: 1, g: 1, b: 1, a: 1} + sunIntensity: 130000 + moonPhase: 0.2 + moonPhaseRotation: 0 + earthshine: 1 + flareSize: 2 + flareTint: {r: 1, g: 1, b: 1, a: 1} + flareFalloff: 4 + flareMultiplier: 1 + surfaceTexture: {fileID: 0} + surfaceTint: {r: 1, g: 1, b: 1, a: 1} + m_Distance: 1.5e+11 + m_UseRayTracedShadows: 0 + m_NumRayTracingSamples: 4 + m_FilterTracedShadow: 1 + m_FilterSizeTraced: 16 + m_SunLightConeAngle: 0.5 + m_LightShadowRadius: 0.5 + m_SemiTransparentShadow: 0 + m_ColorShadow: 1 + m_DistanceBasedFiltering: 0 + m_EvsmExponent: 15 + m_EvsmLightLeakBias: 0 + m_EvsmVarianceBias: 0.00001 + m_EvsmBlurPasses: 0 + m_LightlayersMask: 1 + m_LinkShadowLayers: 1 + m_ShadowNearPlane: 0.1 + m_BlockerSampleCount: 24 + m_FilterSampleCount: 16 + m_MinFilterSize: 0.1 + m_DirLightPCSSBlockerSampleCount: 24 + m_DirLightPCSSFilterSampleCount: 16 + m_DirLightPCSSMaxPenumbraSize: 0.56 + m_DirLightPCSSMaxSamplingDistance: 0.5 + m_DirLightPCSSMinFilterSizeTexels: 1.5 + m_DirLightPCSSMinFilterMaxAngularDiameter: 10 + m_DirLightPCSSBlockerSearchAngularDiameter: 12 + m_DirLightPCSSBlockerSamplingClumpExponent: 2 + m_KernelSize: 5 + m_LightAngle: 1 + m_MaxDepthBias: 0.001 + m_ShadowResolution: + m_Override: 512 + m_UseOverride: 1 + m_Level: 0 + m_ShadowDimmer: 1 + m_VolumetricShadowDimmer: 1 + m_ShadowFadeDistance: 10000 + m_UseContactShadow: + m_Override: 0 + m_UseOverride: 1 + m_Level: 0 + m_RayTracedContactShadow: 0 + m_ShadowTint: {r: 0, g: 0, b: 0, a: 1} + m_PenumbraTint: 0 + m_NormalBias: 0.75 + m_SlopeBias: 0.5 + m_ShadowUpdateMode: 0 + m_AlwaysDrawDynamicShadows: 0 + m_UpdateShadowOnLightMovement: 0 + m_CachedShadowTranslationThreshold: 0.01 + m_CachedShadowAngularThreshold: 0.5 + m_BarnDoorAngle: 90 + m_BarnDoorLength: 0.05 + m_preserveCachedShadow: 0 + m_OnDemandShadowRenderOnPlacement: 1 + m_ShadowCascadeRatios: + - 0.05 + - 0.2 + - 0.3 + m_ShadowCascadeBorders: + - 0.2 + - 0.2 + - 0.2 + - 0.2 + m_ShadowAlgorithm: 0 + m_ShadowVariant: 0 + m_ShadowPrecision: 0 + useOldInspector: 0 + useVolumetric: 1 + featuresFoldout: 1 + m_AreaLightEmissiveMeshShadowCastingMode: 0 + m_AreaLightEmissiveMeshMotionVectorGenerationMode: 0 + m_AreaLightEmissiveMeshLayer: -1 + m_Version: 14 + m_ObsoleteShadowResolutionTier: 1 + m_ObsoleteUseShadowQualitySettings: 0 + m_ObsoleteCustomShadowResolution: 512 + m_ObsoleteContactShadows: 0 +--- !u!108 &1145805902 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1145805900} + m_Enabled: 1 + serializedVersion: 12 + m_Type: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Intensity: 0.9696518 + m_Range: 10 + m_SpotAngle: 30 + m_InnerSpotAngle: 0 + m_CookieSize2D: {x: 0.5, y: 0.5} + m_Shadows: + m_Type: 0 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 2 + m_AreaSize: {x: 0.5, y: 0.5} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 1 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 + m_LightUnit: 2 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 +--- !u!4 &1145805903 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1145805900} + serializedVersion: 2 + m_LocalRotation: {x: 0.13875811, y: 0.5250831, z: -0.42723507, w: 0.72284454} + m_LocalPosition: {x: 0.26, y: 2.95, z: -6.32} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 40.487, y: 57.373, z: -38.353} +--- !u!1660057539 &9223372036854775807 +SceneRoots: + m_ObjectHideFlags: 0 + m_Roots: + - {fileID: 223038177} + - {fileID: 718012768} + - {fileID: 1145805903} diff --git a/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/4x_PostProcessing/4108_DRS-FSR2-Software.unity.meta b/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/4x_PostProcessing/4108_DRS-FSR2-Software.unity.meta new file mode 100644 index 00000000000..493bdcdadcd --- /dev/null +++ b/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/4x_PostProcessing/4108_DRS-FSR2-Software.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 7ef4a19b40d29a74492f7a1166ef9523 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/4x_PostProcessing/4109_DRS-FSR2-AfterPost.unity b/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/4x_PostProcessing/4109_DRS-FSR2-AfterPost.unity new file mode 100644 index 00000000000..5c61549b46a --- /dev/null +++ b/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/4x_PostProcessing/4109_DRS-FSR2-AfterPost.unity @@ -0,0 +1,658 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 10 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 0 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 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: 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!1001 &223038177 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 1132393308280272, guid: c07ace9ab142ca9469fa377877c2f1e7, type: 3} + propertyPath: m_Name + value: HDRP_Test_Camera + objectReference: {fileID: 0} + - target: {fileID: 4209882255362944, guid: c07ace9ab142ca9469fa377877c2f1e7, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4209882255362944, guid: c07ace9ab142ca9469fa377877c2f1e7, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4209882255362944, guid: c07ace9ab142ca9469fa377877c2f1e7, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4209882255362944, guid: c07ace9ab142ca9469fa377877c2f1e7, type: 3} + propertyPath: m_LocalPosition.z + value: -10 + objectReference: {fileID: 0} + - target: {fileID: 4209882255362944, guid: c07ace9ab142ca9469fa377877c2f1e7, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4209882255362944, guid: c07ace9ab142ca9469fa377877c2f1e7, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4209882255362944, guid: c07ace9ab142ca9469fa377877c2f1e7, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4209882255362944, guid: c07ace9ab142ca9469fa377877c2f1e7, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4209882255362944, guid: c07ace9ab142ca9469fa377877c2f1e7, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4209882255362944, guid: c07ace9ab142ca9469fa377877c2f1e7, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4209882255362944, guid: c07ace9ab142ca9469fa377877c2f1e7, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 20109210616973140, guid: c07ace9ab142ca9469fa377877c2f1e7, + type: 3} + propertyPath: m_AllowDynamicResolution + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 114777190906822814, guid: c07ace9ab142ca9469fa377877c2f1e7, + type: 3} + propertyPath: m_Version + value: 9 + objectReference: {fileID: 0} + - target: {fileID: 114777190906822814, guid: c07ace9ab142ca9469fa377877c2f1e7, + type: 3} + propertyPath: antialiasing + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 114777190906822814, guid: c07ace9ab142ca9469fa377877c2f1e7, + type: 3} + propertyPath: clearColorMode + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 114777190906822814, guid: c07ace9ab142ca9469fa377877c2f1e7, + type: 3} + propertyPath: allowDynamicResolution + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 114777190906822814, guid: c07ace9ab142ca9469fa377877c2f1e7, + type: 3} + propertyPath: customRenderingSettings + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 114777190906822814, guid: c07ace9ab142ca9469fa377877c2f1e7, + type: 3} + propertyPath: allowDeepLearningSuperSampling + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 114777190906822814, guid: c07ace9ab142ca9469fa377877c2f1e7, + type: 3} + propertyPath: m_RenderingPathCustomFrameSettings.bitDatas.data1 + value: 70005819440989 + objectReference: {fileID: 0} + - target: {fileID: 114777190906822814, guid: c07ace9ab142ca9469fa377877c2f1e7, + type: 3} + propertyPath: renderingPathCustomFrameSettingsOverrideMask.mask.data1 + value: 655360 + objectReference: {fileID: 0} + - target: {fileID: 114995348509370400, guid: c07ace9ab142ca9469fa377877c2f1e7, + type: 3} + propertyPath: waitFrames + value: 64 + objectReference: {fileID: 0} + - target: {fileID: 114995348509370400, guid: c07ace9ab142ca9469fa377877c2f1e7, + type: 3} + propertyPath: frameCountMultiple + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 114995348509370400, guid: c07ace9ab142ca9469fa377877c2f1e7, + type: 3} + propertyPath: renderPipelineAsset + value: + objectReference: {fileID: 11400000, guid: 36c743f54fc91714bbc9aab32334513a, + type: 2} + - target: {fileID: 114995348509370400, guid: c07ace9ab142ca9469fa377877c2f1e7, + type: 3} + propertyPath: xrThresholdMultiplier + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 114995348509370400, guid: c07ace9ab142ca9469fa377877c2f1e7, + type: 3} + propertyPath: waitForFrameCountMultiple + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 114995348509370400, guid: c07ace9ab142ca9469fa377877c2f1e7, + type: 3} + propertyPath: ImageComparisonSettings.TargetWidth + value: 1920 + objectReference: {fileID: 0} + - target: {fileID: 114995348509370400, guid: c07ace9ab142ca9469fa377877c2f1e7, + type: 3} + propertyPath: ImageComparisonSettings.TargetHeight + value: 1080 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: c07ace9ab142ca9469fa377877c2f1e7, type: 3} +--- !u!1001 &1096010864 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 1371443633274832211, guid: 8dc044776e5ab0b4aa8fcac1c8bec531, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1371443633274832211, guid: 8dc044776e5ab0b4aa8fcac1c8bec531, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1371443633274832211, guid: 8dc044776e5ab0b4aa8fcac1c8bec531, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1371443633274832211, guid: 8dc044776e5ab0b4aa8fcac1c8bec531, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1371443633274832211, guid: 8dc044776e5ab0b4aa8fcac1c8bec531, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1371443633274832211, guid: 8dc044776e5ab0b4aa8fcac1c8bec531, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1371443633274832211, guid: 8dc044776e5ab0b4aa8fcac1c8bec531, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1371443633274832211, guid: 8dc044776e5ab0b4aa8fcac1c8bec531, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1371443633274832211, guid: 8dc044776e5ab0b4aa8fcac1c8bec531, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1371443633274832211, guid: 8dc044776e5ab0b4aa8fcac1c8bec531, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5743686188026106397, guid: 8dc044776e5ab0b4aa8fcac1c8bec531, + type: 3} + propertyPath: m_Version + value: 14 + objectReference: {fileID: 0} + - target: {fileID: 5743686188026106397, guid: 8dc044776e5ab0b4aa8fcac1c8bec531, + type: 3} + propertyPath: m_ShapeWidth + value: -1 + objectReference: {fileID: 0} + - target: {fileID: 5743686188026106397, guid: 8dc044776e5ab0b4aa8fcac1c8bec531, + type: 3} + propertyPath: m_ShapeHeight + value: -1 + objectReference: {fileID: 0} + - target: {fileID: 5743686188026106397, guid: 8dc044776e5ab0b4aa8fcac1c8bec531, + type: 3} + propertyPath: m_InnerSpotPercent + value: -1 + objectReference: {fileID: 0} + - target: {fileID: 5743686188770884663, guid: 8dc044776e5ab0b4aa8fcac1c8bec531, + type: 3} + propertyPath: m_Version + value: 14 + objectReference: {fileID: 0} + - target: {fileID: 5743686188770884663, guid: 8dc044776e5ab0b4aa8fcac1c8bec531, + type: 3} + propertyPath: m_ShapeWidth + value: -1 + objectReference: {fileID: 0} + - target: {fileID: 5743686188770884663, guid: 8dc044776e5ab0b4aa8fcac1c8bec531, + type: 3} + propertyPath: m_ShapeHeight + value: -1 + objectReference: {fileID: 0} + - target: {fileID: 5743686188770884663, guid: 8dc044776e5ab0b4aa8fcac1c8bec531, + type: 3} + propertyPath: m_InnerSpotPercent + value: -1 + objectReference: {fileID: 0} + - target: {fileID: 5743686189104958867, guid: 8dc044776e5ab0b4aa8fcac1c8bec531, + type: 3} + propertyPath: m_Version + value: 14 + objectReference: {fileID: 0} + - target: {fileID: 5743686189104958867, guid: 8dc044776e5ab0b4aa8fcac1c8bec531, + type: 3} + propertyPath: m_ShapeWidth + value: -1 + objectReference: {fileID: 0} + - target: {fileID: 5743686189104958867, guid: 8dc044776e5ab0b4aa8fcac1c8bec531, + type: 3} + propertyPath: m_ShapeHeight + value: -1 + objectReference: {fileID: 0} + - target: {fileID: 5743686189104958867, guid: 8dc044776e5ab0b4aa8fcac1c8bec531, + type: 3} + propertyPath: m_InnerSpotPercent + value: -1 + objectReference: {fileID: 0} + - target: {fileID: 6585757847933498116, guid: 8dc044776e5ab0b4aa8fcac1c8bec531, + type: 3} + propertyPath: m_Name + value: Scene (1) + objectReference: {fileID: 0} + - target: {fileID: 7881099609835421865, guid: 8dc044776e5ab0b4aa8fcac1c8bec531, + type: 3} + propertyPath: m_Version + value: 14 + objectReference: {fileID: 0} + - target: {fileID: 7881099609835421865, guid: 8dc044776e5ab0b4aa8fcac1c8bec531, + type: 3} + propertyPath: m_ShapeWidth + value: -1 + objectReference: {fileID: 0} + - target: {fileID: 7881099609835421865, guid: 8dc044776e5ab0b4aa8fcac1c8bec531, + type: 3} + propertyPath: m_ShapeHeight + value: -1 + objectReference: {fileID: 0} + - target: {fileID: 7881099609835421865, guid: 8dc044776e5ab0b4aa8fcac1c8bec531, + type: 3} + propertyPath: m_InnerSpotPercent + value: -1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 8dc044776e5ab0b4aa8fcac1c8bec531, type: 3} +--- !u!1 &1145805900 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1145805903} + - component: {fileID: 1145805902} + - component: {fileID: 1145805901} + m_Layer: 0 + m_Name: Directional Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1145805901 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1145805900} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7a68c43fe1f2a47cfa234b5eeaa98012, type: 3} + m_Name: + m_EditorClassIdentifier: + m_PointlightHDType: 0 + m_SpotLightShape: 0 + m_AreaLightShape: 0 + m_EnableSpotReflector: 1 + m_LightUnit: 2 + m_LuxAtDistance: 1 + m_Intensity: 0.9696518 + m_InnerSpotPercent: -1 + m_ShapeWidth: -1 + m_ShapeHeight: -1 + m_AspectRatio: 1 + m_SpotIESCutoffPercent: 100 + m_LightDimmer: 1 + m_VolumetricDimmer: 1 + m_FadeDistance: 10000 + m_VolumetricFadeDistance: 10000 + m_AffectDiffuse: 1 + m_AffectSpecular: 1 + m_NonLightmappedOnly: 0 + m_ShapeRadius: 0.025 + m_SoftnessScale: 1 + m_UseCustomSpotLightShadowCone: 0 + m_CustomSpotLightShadowCone: 30 + m_MaxSmoothness: 0.99 + m_ApplyRangeAttenuation: 1 + m_DisplayAreaLightEmissiveMesh: 0 + m_AreaLightCookie: {fileID: 0} + m_IESPoint: {fileID: 0} + m_IESSpot: {fileID: 0} + m_IncludeForRayTracing: 1 + m_IncludeForPathTracing: 1 + m_AreaLightShadowCone: 120 + m_UseScreenSpaceShadows: 0 + m_InteractsWithSky: 1 + m_AngularDiameter: 0.5 + diameterMultiplerMode: 0 + diameterMultiplier: 1 + diameterOverride: 0.5 + celestialBodyShadingSource: 1 + sunLightOverride: {fileID: 0} + sunColor: {r: 1, g: 1, b: 1, a: 1} + sunIntensity: 130000 + moonPhase: 0.2 + moonPhaseRotation: 0 + earthshine: 1 + flareSize: 2 + flareTint: {r: 1, g: 1, b: 1, a: 1} + flareFalloff: 4 + flareMultiplier: 1 + surfaceTexture: {fileID: 0} + surfaceTint: {r: 1, g: 1, b: 1, a: 1} + m_Distance: 1.5e+11 + m_UseRayTracedShadows: 0 + m_NumRayTracingSamples: 4 + m_FilterTracedShadow: 1 + m_FilterSizeTraced: 16 + m_SunLightConeAngle: 0.5 + m_LightShadowRadius: 0.5 + m_SemiTransparentShadow: 0 + m_ColorShadow: 1 + m_DistanceBasedFiltering: 0 + m_EvsmExponent: 15 + m_EvsmLightLeakBias: 0 + m_EvsmVarianceBias: 0.00001 + m_EvsmBlurPasses: 0 + m_LightlayersMask: 1 + m_LinkShadowLayers: 1 + m_ShadowNearPlane: 0.1 + m_BlockerSampleCount: 24 + m_FilterSampleCount: 16 + m_MinFilterSize: 0.1 + m_DirLightPCSSBlockerSampleCount: 24 + m_DirLightPCSSFilterSampleCount: 16 + m_DirLightPCSSMaxPenumbraSize: 0.56 + m_DirLightPCSSMaxSamplingDistance: 0.5 + m_DirLightPCSSMinFilterSizeTexels: 1.5 + m_DirLightPCSSMinFilterMaxAngularDiameter: 10 + m_DirLightPCSSBlockerSearchAngularDiameter: 12 + m_DirLightPCSSBlockerSamplingClumpExponent: 2 + m_KernelSize: 5 + m_LightAngle: 1 + m_MaxDepthBias: 0.001 + m_ShadowResolution: + m_Override: 512 + m_UseOverride: 1 + m_Level: 0 + m_ShadowDimmer: 1 + m_VolumetricShadowDimmer: 1 + m_ShadowFadeDistance: 10000 + m_UseContactShadow: + m_Override: 0 + m_UseOverride: 1 + m_Level: 0 + m_RayTracedContactShadow: 0 + m_ShadowTint: {r: 0, g: 0, b: 0, a: 1} + m_PenumbraTint: 0 + m_NormalBias: 0.75 + m_SlopeBias: 0.5 + m_ShadowUpdateMode: 0 + m_AlwaysDrawDynamicShadows: 0 + m_UpdateShadowOnLightMovement: 0 + m_CachedShadowTranslationThreshold: 0.01 + m_CachedShadowAngularThreshold: 0.5 + m_BarnDoorAngle: 90 + m_BarnDoorLength: 0.05 + m_preserveCachedShadow: 0 + m_OnDemandShadowRenderOnPlacement: 1 + m_ShadowCascadeRatios: + - 0.05 + - 0.2 + - 0.3 + m_ShadowCascadeBorders: + - 0.2 + - 0.2 + - 0.2 + - 0.2 + m_ShadowAlgorithm: 0 + m_ShadowVariant: 0 + m_ShadowPrecision: 0 + useOldInspector: 0 + useVolumetric: 1 + featuresFoldout: 1 + m_AreaLightEmissiveMeshShadowCastingMode: 0 + m_AreaLightEmissiveMeshMotionVectorGenerationMode: 0 + m_AreaLightEmissiveMeshLayer: -1 + m_Version: 14 + m_ObsoleteShadowResolutionTier: 1 + m_ObsoleteUseShadowQualitySettings: 0 + m_ObsoleteCustomShadowResolution: 512 + m_ObsoleteContactShadows: 0 +--- !u!108 &1145805902 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1145805900} + m_Enabled: 1 + serializedVersion: 12 + m_Type: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Intensity: 0.9696518 + m_Range: 10 + m_SpotAngle: 30 + m_InnerSpotAngle: 0 + m_CookieSize2D: {x: 0.5, y: 0.5} + m_Shadows: + m_Type: 0 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 2 + m_AreaSize: {x: 0.5, y: 0.5} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 1 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 + m_LightUnit: 2 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 +--- !u!4 &1145805903 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1145805900} + serializedVersion: 2 + m_LocalRotation: {x: 0.13875811, y: 0.5250831, z: -0.42723507, w: 0.72284454} + m_LocalPosition: {x: 0.26, y: 2.95, z: -6.32} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 40.487, y: 57.373, z: -38.353} +--- !u!1660057539 &9223372036854775807 +SceneRoots: + m_ObjectHideFlags: 0 + m_Roots: + - {fileID: 223038177} + - {fileID: 1096010864} + - {fileID: 1145805903} diff --git a/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/4x_PostProcessing/4109_DRS-FSR2-AfterPost.unity.meta b/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/4x_PostProcessing/4109_DRS-FSR2-AfterPost.unity.meta new file mode 100644 index 00000000000..9b94f78912f --- /dev/null +++ b/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/4x_PostProcessing/4109_DRS-FSR2-AfterPost.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: cbd1f7bf59ae04b46afbfcb1188b43b4 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/5x_SkyAndFog/5002_Fog_DensityVolumes.unity b/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/5x_SkyAndFog/5002_Fog_DensityVolumes.unity index f1aad3a44b5..fe57ba7d0c1 100644 --- a/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/5x_SkyAndFog/5002_Fog_DensityVolumes.unity +++ b/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/5x_SkyAndFog/5002_Fog_DensityVolumes.unity @@ -214,6 +214,8 @@ MeshRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 4294967295 m_RendererPriority: 0 m_Materials: @@ -235,6 +237,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -538,6 +541,8 @@ MeshRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 4294967295 m_RendererPriority: 0 m_Materials: @@ -559,10 +564,80 @@ 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 &446838270 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 446838271} + - component: {fileID: 446838272} + m_Layer: 0 + m_Name: Local Volumetric Fog + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &446838271 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 446838270} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0.13, y: -0.16, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1765559868} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &446838272 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 446838270} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e1fbb15bf92b84f40a1eb030765b5afe, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.RenderPipelines.HighDefinition.Runtime::UnityEngine.Rendering.HighDefinition.LocalVolumetricFog + parameters: + albedo: {r: 1, g: 1, b: 1, a: 1} + meanFreePath: 10 + blendingMode: 1 + priority: 0 + anisotropy: 0 + volumeMask: {fileID: 0} + textureScrollingSpeed: {x: 0, y: 0, z: 0} + textureTiling: {x: 1, y: 1, z: 1} + positiveFade: {x: 0.05, y: 0.05, z: 0.05} + negativeFade: {x: 0.05, y: 0.05, z: 0.05} + m_EditorUniformFade: 0.1 + m_EditorPositiveFade: {x: 0.05, y: 0.05, z: 0.05} + m_EditorNegativeFade: {x: 0.05, y: 0.05, z: 0.05} + m_EditorAdvancedFade: 0 + scaleMode: 0 + size: {x: 2, y: 2, z: 2} + invertFade: 0 + distanceFadeStart: 10000 + distanceFadeEnd: 10000 + textureOffset: {x: 0, y: 0, z: 0} + falloffMode: 0 + maskMode: 1 + materialMask: {fileID: 2100000, guid: 23b16de1e667383408a62dc380ef1b55, type: 2} + m_Version: 3 --- !u!1 &463291811 GameObject: m_ObjectHideFlags: 0 @@ -987,6 +1062,12 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 1843972f86a70ad4f9ac115809638244, type: 3} m_Name: m_EditorClassIdentifier: + pixelSize: 8 + testSettings: {fileID: 0} + targetCamera: {fileID: 0} + forceTargetDimensions: {x: 200, y: 150} + overrideTestSettings: 0 + textMesh: {fileID: 0} --- !u!102 &629197932 TextMesh: serializedVersion: 3 @@ -1031,6 +1112,8 @@ MeshRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 4294967295 m_RendererPriority: 0 m_Materials: @@ -1052,6 +1135,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -1221,6 +1305,8 @@ MeshRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 4294967295 m_RendererPriority: 0 m_Materials: @@ -1242,6 +1328,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -1293,6 +1380,12 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 1843972f86a70ad4f9ac115809638244, type: 3} m_Name: m_EditorClassIdentifier: + pixelSize: 8 + testSettings: {fileID: 0} + targetCamera: {fileID: 0} + forceTargetDimensions: {x: 200, y: 150} + overrideTestSettings: 0 + textMesh: {fileID: 0} --- !u!102 &803347012 TextMesh: serializedVersion: 3 @@ -1337,6 +1430,8 @@ MeshRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 4294967295 m_RendererPriority: 0 m_Materials: @@ -1358,6 +1453,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -1664,6 +1760,8 @@ MeshRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 4294967295 m_RendererPriority: 0 m_Materials: @@ -1685,6 +1783,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -1837,6 +1936,21 @@ PrefabInstance: propertyPath: m_RenderingPathCustomFrameSettings.bitDatas.data1 value: 70005818916701 objectReference: {fileID: 0} + - target: {fileID: 114995348509370400, guid: c07ace9ab142ca9469fa377877c2f1e7, + type: 3} + propertyPath: ImageComparisonSettings.UseHDR + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 114995348509370400, guid: c07ace9ab142ca9469fa377877c2f1e7, + type: 3} + propertyPath: ImageComparisonSettings.UseBackBuffer + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 114995348509370400, guid: c07ace9ab142ca9469fa377877c2f1e7, + type: 3} + propertyPath: ImageComparisonSettings.ImageResolution + value: 4 + objectReference: {fileID: 0} m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: [] @@ -2269,6 +2383,8 @@ MeshRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 4294967295 m_RendererPriority: 0 m_Materials: @@ -2290,6 +2406,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -2390,6 +2507,8 @@ MeshRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 4294967295 m_RendererPriority: 0 m_Materials: @@ -2411,6 +2530,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -2854,6 +2974,8 @@ MeshRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 4294967295 m_RendererPriority: 0 m_Materials: @@ -2875,6 +2997,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -3042,6 +3165,8 @@ MeshRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 4294967295 m_RendererPriority: 0 m_Materials: @@ -3063,6 +3188,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -3198,6 +3324,8 @@ MeshRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 4294967295 m_RendererPriority: 0 m_Materials: @@ -3219,6 +3347,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -3360,6 +3489,39 @@ Transform: - {fileID: 1868950549} m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1765559867 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1765559868} + m_Layer: 0 + m_Name: Position node + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1765559868 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1765559867} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 3.23, y: 1.84, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1965807275} + - {fileID: 446838271} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1800054800 GameObject: m_ObjectHideFlags: 0 @@ -3487,6 +3649,8 @@ MeshRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 4294967295 m_RendererPriority: 0 m_Materials: @@ -3508,6 +3672,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -3677,6 +3842,8 @@ MeshRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 4294967295 m_RendererPriority: 0 m_Materials: @@ -3698,6 +3865,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -3771,6 +3939,128 @@ MonoBehaviour: maskMode: 0 materialMask: {fileID: 0} m_Version: 3 +--- !u!1 &1965807274 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1965807275} + - component: {fileID: 1965807278} + - component: {fileID: 1965807277} + - component: {fileID: 1965807276} + m_Layer: 0 + m_Name: Position Node Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1965807275 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1965807274} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0.18, y: 1.02, z: 0} + m_LocalScale: {x: 0.3638412, y: 0.3638412, z: 0.3638412} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1765559868} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1965807276 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1965807274} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1843972f86a70ad4f9ac115809638244, type: 3} + m_Name: + m_EditorClassIdentifier: + pixelSize: 8 + testSettings: {fileID: 0} + targetCamera: {fileID: 942269471} + forceTargetDimensions: {x: 200, y: 150} + overrideTestSettings: 0 + textMesh: {fileID: 1965807277} +--- !u!102 &1965807277 +TextMesh: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1965807274} + m_Text: Position SG + m_OffsetZ: 0 + m_CharacterSize: 1 + m_LineSpacing: 1 + m_Anchor: 7 + m_Alignment: 1 + m_TabSize: 4 + m_FontSize: 0 + m_FontStyle: 0 + m_RichText: 0 + m_Font: {fileID: 12800000, guid: 306d620c715872046bf76568b7f382d4, type: 3} + m_Color: + serializedVersion: 2 + rgba: 4294967295 +--- !u!23 &1965807278 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1965807274} + 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: 306d620c715872046bf76568b7f382d4, 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: 0 + 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!1 &2018619094 GameObject: m_ObjectHideFlags: 0 @@ -4036,6 +4326,8 @@ MeshRenderer: m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlags: 1 m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 4294967295 m_RendererPriority: 0 m_Materials: @@ -4057,6 +4349,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -4141,6 +4434,7 @@ SceneRoots: - {fileID: 1679543826} - {fileID: 2018619095} - {fileID: 565212575} + - {fileID: 1765559868} - {fileID: 1800054801} - {fileID: 1652872753} - {fileID: 501256201} diff --git a/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/5x_SkyAndFog/5002_Fog_DensityVolumes/ObjectSpacePosition.mat b/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/5x_SkyAndFog/5002_Fog_DensityVolumes/ObjectSpacePosition.mat new file mode 100644 index 00000000000..15f6924f995 --- /dev/null +++ b/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/5x_SkyAndFog/5002_Fog_DensityVolumes/ObjectSpacePosition.mat @@ -0,0 +1,69 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-1257321212629896932 +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: da692e001514ec24dbc4cca1949ff7e8, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 13 + hdPluginSubTargetMaterialVersions: + m_Keys: [] + m_Values: +--- !u!21 &2100000 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: ObjectSpacePosition + m_Shader: {fileID: -6465566751694194690, guid: 82f0ba602863cff47ac1fc5bd1c2a64a, + type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: [] + m_InvalidKeywords: [] + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - 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: + - _FogVolumeAlphaBlendOp: 0 + - _FogVolumeBlendMode: 1 + - _FogVolumeColorBlendOp: 0 + - _FogVolumeDstAlphaBlend: 1 + - _FogVolumeDstColorBlend: 1 + - _FogVolumeFogDistanceProperty: 10 + - _FogVolumeSrcAlphaBlend: 1 + - _FogVolumeSrcColorBlend: 1 + - _Object_Space: 1 + m_Colors: + - _FogVolumeSingleScatteringAlbedo: {r: 1, g: 1, b: 1, a: 1} + m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/5x_SkyAndFog/5002_Fog_DensityVolumes/ObjectSpacePosition.mat.meta b/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/5x_SkyAndFog/5002_Fog_DensityVolumes/ObjectSpacePosition.mat.meta new file mode 100644 index 00000000000..4555845c2ca --- /dev/null +++ b/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/5x_SkyAndFog/5002_Fog_DensityVolumes/ObjectSpacePosition.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b137c15b5193140418afe4145962b48c +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/5x_SkyAndFog/5002_Fog_DensityVolumes/Position.shadergraph b/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/5x_SkyAndFog/5002_Fog_DensityVolumes/Position.shadergraph new file mode 100644 index 00000000000..e05ad579a96 --- /dev/null +++ b/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/5x_SkyAndFog/5002_Fog_DensityVolumes/Position.shadergraph @@ -0,0 +1,905 @@ +{ + "m_SGVersion": 3, + "m_Type": "UnityEditor.ShaderGraph.GraphData", + "m_ObjectId": "76a94fdf81144745beaaf6aa81abcd22", + "m_Properties": [ + { + "m_Id": "f9ae62e35e9b4a6dba44f9bbe5685cd9" + }, + { + "m_Id": "97dabdb57f1841308b6c33c00d63ff9c" + } + ], + "m_Keywords": [], + "m_Dropdowns": [], + "m_CategoryData": [ + { + "m_Id": "5b0e2cc4c3cc4c41a8e7032e34627d0b" + } + ], + "m_Nodes": [ + { + "m_Id": "6383c838740740b39afbd38fefd4f540" + }, + { + "m_Id": "2287f01ac3ca4402a2134d0501a537fa" + }, + { + "m_Id": "1a639f86b8d045dea818cf22aac6a61b" + }, + { + "m_Id": "92ee5a1e77634ebc8971923579b9200a" + }, + { + "m_Id": "54db19186cba42958c2582e4a234e989" + }, + { + "m_Id": "5bd72037373e44d9adc2e1041c8b0eaa" + }, + { + "m_Id": "20bf5e01883a413b9debb12e13b37286" + }, + { + "m_Id": "5d813a72506e464a91ddba740c440229" + } + ], + "m_GroupDatas": [], + "m_StickyNoteDatas": [], + "m_Edges": [ + { + "m_OutputSlot": { + "m_Node": { + "m_Id": "1a639f86b8d045dea818cf22aac6a61b" + }, + "m_SlotId": 0 + }, + "m_InputSlot": { + "m_Node": { + "m_Id": "92ee5a1e77634ebc8971923579b9200a" + }, + "m_SlotId": 0 + } + }, + { + "m_OutputSlot": { + "m_Node": { + "m_Id": "20bf5e01883a413b9debb12e13b37286" + }, + "m_SlotId": 0 + }, + "m_InputSlot": { + "m_Node": { + "m_Id": "5d813a72506e464a91ddba740c440229" + }, + "m_SlotId": 1 + } + }, + { + "m_OutputSlot": { + "m_Node": { + "m_Id": "54db19186cba42958c2582e4a234e989" + }, + "m_SlotId": 0 + }, + "m_InputSlot": { + "m_Node": { + "m_Id": "92ee5a1e77634ebc8971923579b9200a" + }, + "m_SlotId": 1 + } + }, + { + "m_OutputSlot": { + "m_Node": { + "m_Id": "5bd72037373e44d9adc2e1041c8b0eaa" + }, + "m_SlotId": 0 + }, + "m_InputSlot": { + "m_Node": { + "m_Id": "92ee5a1e77634ebc8971923579b9200a" + }, + "m_SlotId": 2 + } + }, + { + "m_OutputSlot": { + "m_Node": { + "m_Id": "5d813a72506e464a91ddba740c440229" + }, + "m_SlotId": 2 + }, + "m_InputSlot": { + "m_Node": { + "m_Id": "6383c838740740b39afbd38fefd4f540" + }, + "m_SlotId": 0 + } + }, + { + "m_OutputSlot": { + "m_Node": { + "m_Id": "92ee5a1e77634ebc8971923579b9200a" + }, + "m_SlotId": 3 + }, + "m_InputSlot": { + "m_Node": { + "m_Id": "5d813a72506e464a91ddba740c440229" + }, + "m_SlotId": 0 + } + } + ], + "m_VertexContext": { + "m_Position": { + "x": 106.0, + "y": -239.0 + }, + "m_Blocks": [] + }, + "m_FragmentContext": { + "m_Position": { + "x": 106.0, + "y": -39.0 + }, + "m_Blocks": [ + { + "m_Id": "6383c838740740b39afbd38fefd4f540" + }, + { + "m_Id": "2287f01ac3ca4402a2134d0501a537fa" + } + ] + }, + "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": "57e49ce66ff043d1b95d707b26e587c6" + } + ] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector3MaterialSlot", + "m_ObjectId": "0fd3b8f4cd6e4dfa9024813d519ab1ee", + "m_Id": 0, + "m_DisplayName": "Offset", + "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.PropertyNode", + "m_ObjectId": "1a639f86b8d045dea818cf22aac6a61b", + "m_Group": { + "m_Id": "" + }, + "m_Name": "Property", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": -602.0, + "y": -17.0, + "width": 148.0, + "height": 34.0 + } + }, + "m_Slots": [ + { + "m_Id": "b09147cae1594fcd92dc125cc4311db8" + } + ], + "synonyms": [], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_DismissedVersion": 0, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_Property": { + "m_Id": "f9ae62e35e9b4a6dba44f9bbe5685cd9" + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.PropertyNode", + "m_ObjectId": "20bf5e01883a413b9debb12e13b37286", + "m_Group": { + "m_Id": "" + }, + "m_Name": "Property", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": -250.0, + "y": 297.0, + "width": 110.0, + "height": 34.0 + } + }, + "m_Slots": [ + { + "m_Id": "0fd3b8f4cd6e4dfa9024813d519ab1ee" + } + ], + "synonyms": [], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_DismissedVersion": 0, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_Property": { + "m_Id": "97dabdb57f1841308b6c33c00d63ff9c" + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.BlockNode", + "m_ObjectId": "2287f01ac3ca4402a2134d0501a537fa", + "m_Group": { + "m_Id": "" + }, + "m_Name": "SurfaceDescription.Alpha", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": 0.0, + "y": 0.0, + "width": 0.0, + "height": 0.0 + } + }, + "m_Slots": [ + { + "m_Id": "2ee43403c4b840f09d13d8648d00836f" + } + ], + "synonyms": [], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_DismissedVersion": 0, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_SerializedDescriptor": "SurfaceDescription.Alpha" +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", + "m_ObjectId": "2ee43403c4b840f09d13d8648d00836f", + "m_Id": 0, + "m_DisplayName": "Alpha", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "Alpha", + "m_StageCapability": 2, + "m_Value": 1.0, + "m_DefaultValue": 1.0, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot", + "m_ObjectId": "357aba49fd454735bc84d570b5a5cf86", + "m_Id": 3, + "m_DisplayName": "Out", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "Out", + "m_StageCapability": 3, + "m_Value": { + "x": 0.0, + "y": 0.0, + "z": 0.0, + "w": 0.0 + }, + "m_DefaultValue": { + "x": 0.0, + "y": 0.0, + "z": 0.0, + "w": 0.0 + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot", + "m_ObjectId": "52f1fbc3be994d09977db7d7222df367", + "m_Id": 1, + "m_DisplayName": "B", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "B", + "m_StageCapability": 3, + "m_Value": { + "x": 1.0, + "y": 1.0, + "z": 1.0, + "w": 1.0 + }, + "m_DefaultValue": { + "x": 0.0, + "y": 0.0, + "z": 0.0, + "w": 0.0 + } +} + +{ + "m_SGVersion": 1, + "m_Type": "UnityEditor.ShaderGraph.PositionNode", + "m_ObjectId": "54db19186cba42958c2582e4a234e989", + "m_Group": { + "m_Id": "" + }, + "m_Name": "Position", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": -660.0, + "y": 35.0, + "width": 206.0, + "height": 131.0 + } + }, + "m_Slots": [ + { + "m_Id": "b8d717711d6549f1b273657dfb2b4ff9" + } + ], + "synonyms": [ + "location" + ], + "m_Precision": 1, + "m_PreviewExpanded": false, + "m_DismissedVersion": 0, + "m_PreviewMode": 2, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_Space": 0, + "m_PositionSource": 0 +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.Rendering.HighDefinition.ShaderGraph.HDTarget", + "m_ObjectId": "57e49ce66ff043d1b95d707b26e587c6", + "m_ActiveSubTarget": { + "m_Id": "cdfe0876618d4ff8a01a57791c6064ab" + }, + "m_Datas": [ + { + "m_Id": "c02b9419d3b740e685fe4226fb3ddf20" + }, + { + "m_Id": "9e03cd20fee34ff2b6e6034c11b3ae71" + } + ], + "m_CustomEditorGUI": "", + "m_SupportVFX": false, + "m_SupportLineRendering": false +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.CategoryData", + "m_ObjectId": "5b0e2cc4c3cc4c41a8e7032e34627d0b", + "m_Name": "", + "m_ChildObjectList": [ + { + "m_Id": "f9ae62e35e9b4a6dba44f9bbe5685cd9" + }, + { + "m_Id": "97dabdb57f1841308b6c33c00d63ff9c" + } + ] +} + +{ + "m_SGVersion": 1, + "m_Type": "UnityEditor.ShaderGraph.PositionNode", + "m_ObjectId": "5bd72037373e44d9adc2e1041c8b0eaa", + "m_Group": { + "m_Id": "" + }, + "m_Name": "Position", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": -660.0, + "y": 166.0, + "width": 206.0, + "height": 131.0 + } + }, + "m_Slots": [ + { + "m_Id": "6c14f2e7675a4bb1bb1ebd168727b486" + } + ], + "synonyms": [ + "location" + ], + "m_Precision": 1, + "m_PreviewExpanded": false, + "m_DismissedVersion": 0, + "m_PreviewMode": 2, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_Space": 4, + "m_PositionSource": 0 +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.SubtractNode", + "m_ObjectId": "5d813a72506e464a91ddba740c440229", + "m_Group": { + "m_Id": "" + }, + "m_Name": "Subtract", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": -107.0, + "y": -31.0, + "width": 130.0, + "height": 118.0 + } + }, + "m_Slots": [ + { + "m_Id": "b60082637e54439aa80a4691e4f1858b" + }, + { + "m_Id": "52f1fbc3be994d09977db7d7222df367" + }, + { + "m_Id": "7ffcf53fba6149f4aed43c93bbc7b30f" + } + ], + "synonyms": [ + "subtraction", + "remove", + "minus", + "take away" + ], + "m_Precision": 0, + "m_PreviewExpanded": false, + "m_DismissedVersion": 0, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.BlockNode", + "m_ObjectId": "6383c838740740b39afbd38fefd4f540", + "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": "82eeff83bb7e4c2fa1e0011934a8692a" + } + ], + "synonyms": [], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_DismissedVersion": 0, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_SerializedDescriptor": "SurfaceDescription.BaseColor" +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector3MaterialSlot", + "m_ObjectId": "6c14f2e7675a4bb1bb1ebd168727b486", + "m_Id": 0, + "m_DisplayName": "Out", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "Out", + "m_StageCapability": 3, + "m_Value": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_DefaultValue": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.BooleanMaterialSlot", + "m_ObjectId": "7af0e254605f40bb983fdb1213715413", + "m_Id": 0, + "m_DisplayName": "Predicate", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "Predicate", + "m_StageCapability": 3, + "m_Value": false, + "m_DefaultValue": false +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot", + "m_ObjectId": "7b5ed10719764e58a8a6365f993cca09", + "m_Id": 2, + "m_DisplayName": "False", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "False", + "m_StageCapability": 3, + "m_Value": { + "x": 0.0, + "y": 0.0, + "z": 0.0, + "w": 0.0 + }, + "m_DefaultValue": { + "x": 0.0, + "y": 0.0, + "z": 0.0, + "w": 0.0 + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot", + "m_ObjectId": "7ffcf53fba6149f4aed43c93bbc7b30f", + "m_Id": 2, + "m_DisplayName": "Out", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "Out", + "m_StageCapability": 3, + "m_Value": { + "x": 0.0, + "y": 0.0, + "z": 0.0, + "w": 0.0 + }, + "m_DefaultValue": { + "x": 0.0, + "y": 0.0, + "z": 0.0, + "w": 0.0 + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.ColorRGBMaterialSlot", + "m_ObjectId": "82eeff83bb7e4c2fa1e0011934a8692a", + "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.BranchNode", + "m_ObjectId": "92ee5a1e77634ebc8971923579b9200a", + "m_Group": { + "m_Id": "" + }, + "m_Name": "Branch", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": -348.0, + "y": -31.0, + "width": 208.0, + "height": 326.0 + } + }, + "m_Slots": [ + { + "m_Id": "7af0e254605f40bb983fdb1213715413" + }, + { + "m_Id": "9f42722fd27842f98eb6d15554ca828d" + }, + { + "m_Id": "7b5ed10719764e58a8a6365f993cca09" + }, + { + "m_Id": "357aba49fd454735bc84d570b5a5cf86" + } + ], + "synonyms": [ + "switch", + "if", + "else" + ], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_DismissedVersion": 0, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + } +} + +{ + "m_SGVersion": 1, + "m_Type": "UnityEditor.ShaderGraph.Internal.Vector3ShaderProperty", + "m_ObjectId": "97dabdb57f1841308b6c33c00d63ff9c", + "m_Guid": { + "m_GuidSerialized": "61affb49-b0f3-4e68-a43b-ce63927bf82a" + }, + "m_Name": "Offset", + "m_DefaultRefNameVersion": 1, + "m_RefNameGeneratedByDisplayName": "Offset", + "m_DefaultReferenceName": "_Offset", + "m_OverrideReferenceName": "", + "m_GeneratePropertyBlock": true, + "m_UseCustomSlotLabel": false, + "m_CustomSlotLabel": "", + "m_DismissedVersion": 0, + "m_Precision": 0, + "overrideHLSLDeclaration": false, + "hlslDeclarationOverride": 0, + "m_Hidden": false, + "m_Value": { + "x": 0.0, + "y": 0.0, + "z": 0.0, + "w": 0.0 + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.Rendering.HighDefinition.ShaderGraph.FogVolumeData", + "m_ObjectId": "9e03cd20fee34ff2b6e6034c11b3ae71", + "m_BlendMode": 1, + "m_SingleScatteringAlbedo": { + "r": 1.0, + "g": 1.0, + "b": 1.0, + "a": 1.0 + }, + "m_FogDistance": 10.0 +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot", + "m_ObjectId": "9f42722fd27842f98eb6d15554ca828d", + "m_Id": 1, + "m_DisplayName": "True", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "True", + "m_StageCapability": 3, + "m_Value": { + "x": 1.0, + "y": 1.0, + "z": 1.0, + "w": 1.0 + }, + "m_DefaultValue": { + "x": 0.0, + "y": 0.0, + "z": 0.0, + "w": 0.0 + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.BooleanMaterialSlot", + "m_ObjectId": "b09147cae1594fcd92dc125cc4311db8", + "m_Id": 0, + "m_DisplayName": "Object Space", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "Out", + "m_StageCapability": 3, + "m_Value": false, + "m_DefaultValue": false +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot", + "m_ObjectId": "b60082637e54439aa80a4691e4f1858b", + "m_Id": 0, + "m_DisplayName": "A", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "A", + "m_StageCapability": 3, + "m_Value": { + "x": 1.0, + "y": 1.0, + "z": 1.0, + "w": 1.0 + }, + "m_DefaultValue": { + "x": 0.0, + "y": 0.0, + "z": 0.0, + "w": 0.0 + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector3MaterialSlot", + "m_ObjectId": "b8d717711d6549f1b273657dfb2b4ff9", + "m_Id": 0, + "m_DisplayName": "Out", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "Out", + "m_StageCapability": 3, + "m_Value": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_DefaultValue": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.Rendering.HighDefinition.ShaderGraph.SystemData", + "m_ObjectId": "c02b9419d3b740e685fe4226fb3ddf20", + "m_MaterialNeedsUpdateHash": 0, + "m_SurfaceType": 0, + "m_RenderingPass": 1, + "m_BlendMode": 0, + "m_ZTest": 4, + "m_ZWrite": false, + "m_TransparentCullMode": 2, + "m_OpaqueCullMode": 2, + "m_SortPriority": 0, + "m_AlphaTest": false, + "m_ExcludeFromTUAndAA": false, + "m_TransparentDepthPrepass": false, + "m_TransparentDepthPostpass": false, + "m_SupportLodCrossFade": false, + "m_DoubleSidedMode": 0, + "m_DOTSInstancing": false, + "m_CustomVelocity": false, + "m_Tessellation": false, + "m_TessellationMode": 0, + "m_TessellationFactorMinDistance": 20.0, + "m_TessellationFactorMaxDistance": 50.0, + "m_TessellationFactorTriangleSize": 100.0, + "m_TessellationShapeFactor": 0.75, + "m_TessellationBackFaceCullEpsilon": -0.25, + "m_TessellationMaxDisplacement": 0.009999999776482582, + "m_DebugSymbols": false, + "m_Version": 2, + "inspectorFoldoutMask": 0 +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.Rendering.HighDefinition.ShaderGraph.FogVolumeSubTarget", + "m_ObjectId": "cdfe0876618d4ff8a01a57791c6064ab" +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Internal.BooleanShaderProperty", + "m_ObjectId": "f9ae62e35e9b4a6dba44f9bbe5685cd9", + "m_Guid": { + "m_GuidSerialized": "325682bf-da99-4ae6-aaf1-d01e5557a072" + }, + "m_Name": "Object Space", + "m_DefaultRefNameVersion": 1, + "m_RefNameGeneratedByDisplayName": "Object Space", + "m_DefaultReferenceName": "_Object_Space", + "m_OverrideReferenceName": "", + "m_GeneratePropertyBlock": true, + "m_UseCustomSlotLabel": false, + "m_CustomSlotLabel": "", + "m_DismissedVersion": 0, + "m_Precision": 0, + "overrideHLSLDeclaration": false, + "hlslDeclarationOverride": 0, + "m_Hidden": false, + "m_Value": false +} + diff --git a/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/5x_SkyAndFog/5002_Fog_DensityVolumes/Position.shadergraph.meta b/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/5x_SkyAndFog/5002_Fog_DensityVolumes/Position.shadergraph.meta new file mode 100644 index 00000000000..f151e5d42bd --- /dev/null +++ b/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/5x_SkyAndFog/5002_Fog_DensityVolumes/Position.shadergraph.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 82f0ba602863cff47ac1fc5bd1c2a64a +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: 625f186215c104763be7675aa2d941aa, type: 3} diff --git a/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/5x_SkyAndFog/5002_Fog_DensityVolumes/Scene Settings Profile.asset b/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/5x_SkyAndFog/5002_Fog_DensityVolumes/Scene Settings Profile.asset index e360a30cd5e..5f5f74fed11 100644 --- a/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/5x_SkyAndFog/5002_Fog_DensityVolumes/Scene Settings Profile.asset +++ b/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/5x_SkyAndFog/5002_Fog_DensityVolumes/Scene Settings Profile.asset @@ -13,7 +13,6 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: active: 1 - m_AdvancedMode: 1 quality: m_OverrideState: 1 m_Value: 3 @@ -26,32 +25,21 @@ MonoBehaviour: color: m_OverrideState: 1 m_Value: {r: 0.5, g: 0.5, b: 0.5, a: 1} - hdr: 1 - showAlpha: 0 - showEyeDropper: 1 tint: m_OverrideState: 0 m_Value: {r: 1, g: 1, b: 1, a: 1} - hdr: 1 - showAlpha: 0 - showEyeDropper: 1 maxFogDistance: m_OverrideState: 0 m_Value: 5000 - min: 0 mipFogMaxMip: m_OverrideState: 1 m_Value: 0.5 - min: 0 - max: 1 mipFogNear: m_OverrideState: 1 m_Value: 0 - min: 0 mipFogFar: m_OverrideState: 1 m_Value: 1000 - min: 0 baseHeight: m_OverrideState: 1 m_Value: -100 @@ -61,61 +49,45 @@ MonoBehaviour: meanFreePath: m_OverrideState: 1 m_Value: 1000000 - min: 1 enableVolumetricFog: m_OverrideState: 1 m_Value: 1 albedo: m_OverrideState: 1 m_Value: {r: 1, g: 1, b: 1, a: 1} - hdr: 0 - showAlpha: 1 - showEyeDropper: 1 globalLightProbeDimmer: m_OverrideState: 1 m_Value: 1 - min: 0 - max: 1 depthExtent: m_OverrideState: 0 m_Value: 64 - min: 0.1 denoisingMode: m_OverrideState: 1 m_Value: 0 anisotropy: m_OverrideState: 1 m_Value: 0 - min: -1 - max: 1 sliceDistributionUniformity: m_OverrideState: 0 m_Value: 0.75 - min: 0 - max: 1 + multipleScatteringIntensity: + m_OverrideState: 0 + m_Value: 0 m_FogControlMode: m_OverrideState: 1 m_Value: 1 screenResolutionPercentage: m_OverrideState: 1 m_Value: 25 - min: 6.25 - max: 100 volumeSliceCount: m_OverrideState: 1 m_Value: 128 - min: 1 - max: 1024 m_VolumetricFogBudget: m_OverrideState: 0 m_Value: 0.25 - min: 0 - max: 1 m_ResolutionDepthRatio: m_OverrideState: 0 m_Value: 0.5 - min: 0 - max: 1 directionalLightsOnly: m_OverrideState: 0 m_Value: 0 @@ -151,21 +123,16 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: active: 1 - m_AdvancedMode: 0 + interCascadeBorders: 1 maxShadowDistance: m_OverrideState: 1 m_Value: 500 - min: 0 directionalTransmissionMultiplier: m_OverrideState: 0 m_Value: 1 - min: 0 - max: 1 cascadeShadowSplitCount: m_OverrideState: 1 m_Value: 4 - min: 1 - max: 4 cascadeShadowSplit0: m_OverrideState: 1 m_Value: 0.05 @@ -200,16 +167,37 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: active: 1 - m_AdvancedMode: 0 skyType: m_OverrideState: 1 m_Value: 2 + cloudType: + m_OverrideState: 0 + m_Value: 0 skyAmbientMode: m_OverrideState: 0 m_Value: 0 + planetRadius: + m_OverrideState: 0 + m_Value: 6378.1 + renderingSpace: + m_OverrideState: 0 + m_Value: 1 + centerMode: + m_OverrideState: 0 + m_Value: 0 + planetCenter: + m_OverrideState: 0 + m_Value: {x: 0, y: -6378.1, z: 0} + windOrientation: + m_OverrideState: 0 + m_Value: 0 + windSpeed: + m_OverrideState: 0 + m_Value: 0 fogType: m_OverrideState: 1 m_Value: 3 + m_Version: 1 --- !u!114 &114267662401170168 MonoBehaviour: m_ObjectHideFlags: 3 @@ -223,12 +211,9 @@ MonoBehaviour: m_Name: ProceduralSky m_EditorClassIdentifier: active: 1 - m_AdvancedMode: 0 rotation: m_OverrideState: 1 m_Value: 0 - min: 0 - max: 360 skyIntensityMode: m_OverrideState: 1 m_Value: 2 @@ -238,11 +223,9 @@ MonoBehaviour: multiplier: m_OverrideState: 1 m_Value: 0 - min: 0 upperHemisphereLuxValue: m_OverrideState: 0 m_Value: 1 - min: 0 upperHemisphereLuxColor: m_OverrideState: 0 m_Value: {x: 0, y: 0, z: 0} @@ -255,37 +238,24 @@ MonoBehaviour: updatePeriod: m_OverrideState: 1 m_Value: 0 - min: 0 includeSunInBaking: m_OverrideState: 0 m_Value: 0 sunSize: m_OverrideState: 1 m_Value: 0 - min: 0 - max: 1 sunSizeConvergence: m_OverrideState: 1 m_Value: 1 - min: 1 - max: 10 atmosphereThickness: m_OverrideState: 1 m_Value: 0 - min: 0 - max: 5 skyTint: m_OverrideState: 1 m_Value: {r: 0, g: 0, b: 0, a: 1} - hdr: 0 - showAlpha: 1 - showEyeDropper: 1 groundColor: m_OverrideState: 1 m_Value: {r: 0, g: 0, b: 0, a: 1} - hdr: 0 - showAlpha: 1 - showEyeDropper: 1 enableSunDisk: m_OverrideState: 1 m_Value: 0 @@ -302,16 +272,12 @@ MonoBehaviour: m_Name: VolumetricLightingController m_EditorClassIdentifier: active: 1 - m_AdvancedMode: 0 depthExtent: m_OverrideState: 1 m_Value: 10 - min: 0.1 sliceDistributionUniformity: m_OverrideState: 1 m_Value: 1 - min: 0 - max: 1 --- !u!114 &114876515548814328 MonoBehaviour: m_ObjectHideFlags: 3 @@ -325,54 +291,36 @@ MonoBehaviour: m_Name: VolumetricFog m_EditorClassIdentifier: active: 1 - m_AdvancedMode: 0 colorMode: m_OverrideState: 1 m_Value: 1 color: m_OverrideState: 1 m_Value: {r: 0.5, g: 0.5, b: 0.5, a: 1} - hdr: 0 - showAlpha: 1 - showEyeDropper: 1 tint: m_OverrideState: 0 m_Value: {r: 1, g: 1, b: 1, a: 1} - hdr: 1 - showAlpha: 0 - showEyeDropper: 1 density: m_OverrideState: 1 m_Value: 1 - min: 0 - max: 1 maxFogDistance: m_OverrideState: 0 m_Value: 5000 - min: 0 mipFogMaxMip: m_OverrideState: 1 m_Value: 0.5 - min: 0 - max: 1 mipFogNear: m_OverrideState: 1 m_Value: 0 - min: 0 mipFogFar: m_OverrideState: 1 m_Value: 1000 - min: 0 albedo: m_OverrideState: 1 m_Value: {r: 1, g: 1, b: 1, a: 1} - hdr: 0 - showAlpha: 1 - showEyeDropper: 1 meanFreePath: m_OverrideState: 1 m_Value: 1000000 - min: 1 baseHeight: m_OverrideState: 1 m_Value: -100 @@ -382,13 +330,9 @@ MonoBehaviour: anisotropy: m_OverrideState: 1 m_Value: 0 - min: -1 - max: 1 globalLightProbeDimmer: m_OverrideState: 1 m_Value: 1 - min: 0 - max: 1 enableDistantFog: m_OverrideState: 0 m_Value: 0 diff --git a/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/5x_SkyAndFog/5002_Fog_DensityVolumes/WorldSpacePosition.mat b/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/5x_SkyAndFog/5002_Fog_DensityVolumes/WorldSpacePosition.mat new file mode 100644 index 00000000000..cda1b3bb838 --- /dev/null +++ b/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/5x_SkyAndFog/5002_Fog_DensityVolumes/WorldSpacePosition.mat @@ -0,0 +1,70 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-1257321212629896932 +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: da692e001514ec24dbc4cca1949ff7e8, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 13 + hdPluginSubTargetMaterialVersions: + m_Keys: [] + m_Values: +--- !u!21 &2100000 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: WorldSpacePosition + m_Shader: {fileID: -6465566751694194690, guid: 82f0ba602863cff47ac1fc5bd1c2a64a, + type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: [] + m_InvalidKeywords: [] + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - 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: + - _FogVolumeAlphaBlendOp: 0 + - _FogVolumeBlendMode: 1 + - _FogVolumeColorBlendOp: 0 + - _FogVolumeDstAlphaBlend: 1 + - _FogVolumeDstColorBlend: 1 + - _FogVolumeFogDistanceProperty: 10 + - _FogVolumeSrcAlphaBlend: 1 + - _FogVolumeSrcColorBlend: 1 + - _Object_Space: 0 + m_Colors: + - _FogVolumeSingleScatteringAlbedo: {r: 1, g: 1, b: 1, a: 1} + - _Offset: {r: -8.11, g: 2.19, b: 0, a: 0} + m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/5x_SkyAndFog/5002_Fog_DensityVolumes/WorldSpacePosition.mat.meta b/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/5x_SkyAndFog/5002_Fog_DensityVolumes/WorldSpacePosition.mat.meta new file mode 100644 index 00000000000..1cc5cf1c4f9 --- /dev/null +++ b/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/5x_SkyAndFog/5002_Fog_DensityVolumes/WorldSpacePosition.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 23b16de1e667383408a62dc380ef1b55 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/9x_Other/9920_WaterSurface.unity b/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/9x_Other/9920_WaterSurface.unity index 6f91c64f518..c6e81a8da71 100644 --- a/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/9x_Other/9920_WaterSurface.unity +++ b/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/9x_Other/9920_WaterSurface.unity @@ -42,7 +42,8 @@ RenderSettings: --- !u!157 &3 LightmapSettings: m_ObjectHideFlags: 0 - serializedVersion: 12 + serializedVersion: 13 + m_BakeOnSceneLoad: 0 m_GISettings: serializedVersion: 2 m_BounceScale: 1 @@ -221,7 +222,10 @@ MonoBehaviour: m_LightUnit: 2 m_LuxAtDistance: 1 m_Intensity: 70000 - m_InnerSpotPercent: 0 + m_InnerSpotPercent: -1 + m_ShapeWidth: -1 + m_ShapeHeight: -1 + m_AspectRatio: 1 m_SpotIESCutoffPercent: 100 m_LightDimmer: 1 m_VolumetricDimmer: 1 @@ -230,9 +234,6 @@ MonoBehaviour: m_AffectDiffuse: 1 m_AffectSpecular: 1 m_NonLightmappedOnly: 0 - m_ShapeWidth: 0.5 - m_ShapeHeight: 0.5 - m_AspectRatio: 1 m_ShapeRadius: 0.025 m_SoftnessScale: 1 m_UseCustomSpotLightShadowCone: 0 @@ -339,7 +340,7 @@ MonoBehaviour: m_AreaLightEmissiveMeshShadowCastingMode: 0 m_AreaLightEmissiveMeshMotionVectorGenerationMode: 0 m_AreaLightEmissiveMeshLayer: -1 - m_Version: 13 + m_Version: 14 m_ObsoleteShadowResolutionTier: 1 m_ObsoleteUseShadowQualitySettings: 0 m_ObsoleteCustomShadowResolution: 512 @@ -352,14 +353,14 @@ Light: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 203134000} m_Enabled: 1 - serializedVersion: 11 + serializedVersion: 12 m_Type: 1 m_Color: {r: 1, g: 1, b: 1, a: 1} m_Intensity: 70000 m_Range: 10 m_SpotAngle: 30 - m_InnerSpotAngle: 21.80208 - m_CookieSize: 10 + m_InnerSpotAngle: 0 + m_CookieSize2D: {x: 0.5, y: 0.5} m_Shadows: m_Type: 0 m_Resolution: -1 @@ -485,6 +486,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: @@ -506,6 +509,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -675,6 +679,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: @@ -696,6 +702,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -799,6 +806,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: @@ -820,6 +829,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -928,6 +938,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: @@ -949,6 +961,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -1152,6 +1165,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: @@ -1173,6 +1188,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -1388,6 +1404,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: @@ -1409,6 +1427,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -1512,6 +1531,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: @@ -1533,6 +1554,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -1636,6 +1658,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: @@ -1657,6 +1681,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -1881,6 +1906,7 @@ Material: m_ModifiedSerializedProperties: 0 m_ValidKeywords: - _AFFECTS_DEFORMATION + - _AFFECTS_FOAM - _TYPE_BOX m_InvalidKeywords: [] m_LightmapFlags: 4 @@ -1916,7 +1942,7 @@ Material: m_Ints: [] m_Floats: - _AffectDeformation: 1 - - _AffectFoam: 0 + - _AffectFoam: 1 - _Cubic_Blend: 1 - _Elevation: 0.2 - _Remap_Max: 1 @@ -2024,6 +2050,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: @@ -2045,6 +2073,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -2235,7 +2264,7 @@ MonoBehaviour: m_RotationOrder: 4 repetitionSize: 500 largeOrientationValue: 0 - largeWindSpeed: 30 + largeWindSpeed: 250 largeChaos: 0.85 largeBand0Multiplier: 1 largeBand0FadeMode: 1 @@ -2351,6 +2380,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: @@ -2372,6 +2403,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -2524,6 +2556,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: @@ -2545,6 +2579,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -2714,6 +2749,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: @@ -2735,6 +2772,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -2838,6 +2876,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: @@ -2859,6 +2899,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -3080,6 +3121,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: @@ -3101,6 +3144,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -3188,6 +3232,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: @@ -3209,6 +3255,7 @@ MeshRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -3312,6 +3359,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: @@ -3333,6 +3382,7 @@ 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/HDRP_Tests/Assets/GraphicTests/Tests/HDRP_Graphics_Tests.cs b/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Tests/HDRP_Graphics_Tests.cs index 56f3eb96797..f0ddf702959 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 @@ -48,19 +48,19 @@ public class HDRP_Graphics_Tests "1351_Fabric$", "(Intel Mac) Slight divergence on the right-most materials.", graphicsDeviceTypes: new[] { GraphicsDeviceType.Metal }, - architectures: new [] { Architecture.X64 } + architectures: new[] { Architecture.X64 } )] [IgnoreGraphicsTest( "1710_Decals_Normal_Patch$", "(Intel Mac) Decals missing on top of StackLit and Fabric planes.", graphicsDeviceTypes: new[] { GraphicsDeviceType.Metal }, - architectures: new [] { Architecture.X64 } + architectures: new[] { Architecture.X64 } )] [IgnoreGraphicsTest( "1805_Depth_Pre_Post_Unlit$", "(Intel Mac) Certain overlapping areas diverge, though not too apparent to the naked eye.", graphicsDeviceTypes: new[] { GraphicsDeviceType.Metal }, - architectures: new [] { Architecture.X64 } + architectures: new[] { Architecture.X64 } )] [IgnoreGraphicsTest("1806_BatchCount$", "Fails everywhere (seems to be missing CPU markers).")] [IgnoreGraphicsTest( @@ -102,7 +102,7 @@ public class HDRP_Graphics_Tests "2323_Shadow_Interlaced_Cascades_Update$", "(Intel Mac) Slight divergence on the right area of the image.", graphicsDeviceTypes: new[] { GraphicsDeviceType.Metal }, - architectures: new [] { Architecture.X64 } + architectures: new[] { Architecture.X64 } )] [IgnoreGraphicsTest( "2405_EnlightenDynamicAreaLights$", @@ -113,7 +113,7 @@ public class HDRP_Graphics_Tests "2405_EnlightenDynamicAreaLights$", "Results on CI are very close to Windows ref-images. Maybe it just need a ref-image update?", graphicsDeviceTypes: new[] { GraphicsDeviceType.Vulkan }, - runtimePlatforms: new [] { RuntimePlatform.LinuxEditor } + runtimePlatforms: new[] { RuntimePlatform.LinuxEditor } )] [IgnoreGraphicsTest( "3006_TileCluster_Cluster$", @@ -124,7 +124,7 @@ public class HDRP_Graphics_Tests "3008_ShadowDebugMode$", "(Intel Mac) Clear color of the debug-view seems to be black instead of white. Probably just an outdated ref-image.", graphicsDeviceTypes: new[] { GraphicsDeviceType.Metal }, - architectures: new [] { Architecture.X64 } + architectures: new[] { Architecture.X64 } )] [IgnoreGraphicsTest("3012_MipMapMode_MipStreamingPerformance$", "There seems to be issues with the texture-streaming behaviour on all platforms.")] [IgnoreGraphicsTest("4012_MotionBlur_CameraOnly$", "Missing ref-image.")] @@ -132,7 +132,7 @@ public class HDRP_Graphics_Tests "4075_PhysicalCamera-gateFit$", "Noisy result in Linux + VK..", graphicsDeviceTypes: new[] { GraphicsDeviceType.Vulkan }, - runtimePlatforms: new []{ RuntimePlatform.LinuxEditor } + runtimePlatforms: new[] { RuntimePlatform.LinuxEditor } )] [IgnoreGraphicsTest( "4088_DRS-DLSS-Hardware$", @@ -159,7 +159,7 @@ public class HDRP_Graphics_Tests "4105_LensFlareScreenSpace$", "(Intel Mac) Lens-flare behaviour seems to be different from all the other platforms.", graphicsDeviceTypes: new[] { GraphicsDeviceType.Metal }, - architectures: new [] { Architecture.X64 } + architectures: new[] { Architecture.X64 } )] [IgnoreGraphicsTest( "4106_DRS-TAAU-AfterPost$", @@ -195,26 +195,26 @@ public class HDRP_Graphics_Tests "5011_VolumetricCloudsShadowsBake$", "(Intel Mac) Rendered image is completely black.", graphicsDeviceTypes: new[] { GraphicsDeviceType.Metal }, - architectures: new [] { Architecture.X64 } + architectures: new[] { Architecture.X64 } )] [IgnoreGraphicsTest( "5013_VolumetricCloudsShadowsNoExposureControl$", "(Intel Mac) Rendered image is completely black.", graphicsDeviceTypes: new[] { GraphicsDeviceType.Metal }, - architectures: new [] { Architecture.X64 } + architectures: new[] { Architecture.X64 } )] [IgnoreGraphicsTest( "8101_Opaque$", "(Intel Mac) Small divergence around 'Iridescence Specular Occlusion from Bent Normal' material. Might need a ref-image update.", graphicsDeviceTypes: new[] { GraphicsDeviceType.Metal }, - architectures: new [] { Architecture.X64 } + architectures: new[] { Architecture.X64 } )] [IgnoreGraphicsTest("8207_InstanceIDWithKeywords$", "Missing ref-image.")] [IgnoreGraphicsTest( "8213_Thickness$", "(Intel Mac) Bunny in the middle should be translucent-pink, not black.", graphicsDeviceTypes: new[] { GraphicsDeviceType.Metal }, - architectures: new [] { Architecture.X64 } + architectures: new[] { Architecture.X64 } )] [IgnoreGraphicsTest("9006_StencilUsage$", "Missing ref-image.")] [IgnoreGraphicsTest("9601_SkinnedMeshBatching-Off$", "Outdated ref-image.")] @@ -244,6 +244,21 @@ public class HDRP_Graphics_Tests "Minor divergence across the waves' crests.", graphicsDeviceTypes: new[] { GraphicsDeviceType.Metal } )] + [IgnoreGraphicsTest( + "4107_DRS-FSR2-Hardware$", + "Platform not supported", // FSR is DX12/DX11/Vulkan on PC-only + graphicsDeviceTypes: new[] { GraphicsDeviceType.Metal, GraphicsDeviceType.OpenGLES3, GraphicsDeviceType.PlayStation4, GraphicsDeviceType.XboxOne, GraphicsDeviceType.OpenGLCore, GraphicsDeviceType.Switch, GraphicsDeviceType.XboxOneD3D12, GraphicsDeviceType.GameCoreXboxOne, GraphicsDeviceType.GameCoreXboxSeries, GraphicsDeviceType.PlayStation5, GraphicsDeviceType.PlayStation5NGGC, GraphicsDeviceType.WebGPU } + )] + [IgnoreGraphicsTest( + "4108_DRS-FSR2-Software$", + "Platform not supported", // FSR is DX12/DX11/Vulkan on PC-only + graphicsDeviceTypes: new[] { GraphicsDeviceType.Metal, GraphicsDeviceType.OpenGLES3, GraphicsDeviceType.PlayStation4, GraphicsDeviceType.XboxOne, GraphicsDeviceType.OpenGLCore, GraphicsDeviceType.Switch, GraphicsDeviceType.XboxOneD3D12, GraphicsDeviceType.GameCoreXboxOne, GraphicsDeviceType.GameCoreXboxSeries, GraphicsDeviceType.PlayStation5, GraphicsDeviceType.PlayStation5NGGC, GraphicsDeviceType.WebGPU } + )] + [IgnoreGraphicsTest( + "4109_DRS-FSR2-AfterPost$", + "Graphics devices type not supported", // FSR is DX12/DX11/Vulkan on PC-only + graphicsDeviceTypes: new[] { GraphicsDeviceType.Metal, GraphicsDeviceType.OpenGLES3, GraphicsDeviceType.PlayStation4, GraphicsDeviceType.XboxOne, GraphicsDeviceType.OpenGLCore, GraphicsDeviceType.Switch, GraphicsDeviceType.XboxOneD3D12, GraphicsDeviceType.GameCoreXboxOne, GraphicsDeviceType.GameCoreXboxSeries, GraphicsDeviceType.PlayStation5, GraphicsDeviceType.PlayStation5NGGC, GraphicsDeviceType.WebGPU } + )] public IEnumerator Run(SceneGraphicsTestCase testCase) { yield return HDRP_GraphicTestRunner.Run(testCase); diff --git a/Tests/SRPTests/Projects/HDRP_Tests/Packages/manifest.json b/Tests/SRPTests/Projects/HDRP_Tests/Packages/manifest.json index 0beb64d2933..b4ac0c22cbd 100644 --- a/Tests/SRPTests/Projects/HDRP_Tests/Packages/manifest.json +++ b/Tests/SRPTests/Projects/HDRP_Tests/Packages/manifest.json @@ -10,6 +10,7 @@ "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.test-framework": "file:../../../../../Packages/com.unity.test-framework", "com.unity.testframework.graphics": "file:../../../Packages/com.unity.test-framework.graphics", "com.unity.testing.common-graphics": "file:../../../Packages/com.unity.testing.common-graphics", "com.unity.testing.hdrp": "file:../../../Packages/com.unity.testing.hdrp", @@ -18,6 +19,7 @@ "com.unity.visualeffectgraph": "file:../../../../../Packages/com.unity.visualeffectgraph", "local.utf.references": "file:../../../Packages/local.utf.references", "com.unity.modules.ai": "1.0.0", + "com.unity.modules.amd": "1.0.0", "com.unity.modules.androidjni": "1.0.0", "com.unity.modules.animation": "1.0.0", "com.unity.modules.assetbundle": "1.0.0", diff --git a/Tests/SRPTests/Projects/HDRP_Tests/ProjectSettings/EditorBuildSettings.asset b/Tests/SRPTests/Projects/HDRP_Tests/ProjectSettings/EditorBuildSettings.asset index 4633e94e978..40766f54531 100644 --- a/Tests/SRPTests/Projects/HDRP_Tests/ProjectSettings/EditorBuildSettings.asset +++ b/Tests/SRPTests/Projects/HDRP_Tests/ProjectSettings/EditorBuildSettings.asset @@ -734,6 +734,15 @@ EditorBuildSettings: - enabled: 1 path: Assets/GraphicTests/Scenes/4x_PostProcessing/4106_DRS-TAAU-AfterPost.unity guid: f3545370c7a89344e8947299391ba87d + - enabled: 1 + path: Assets/GraphicTests/Scenes/4x_PostProcessing/4107_DRS-FSR2-Hardware.unity + guid: 90eae0c5496f9ac4ea55280841b6efdb + - enabled: 1 + path: Assets/GraphicTests/Scenes/4x_PostProcessing/4108_DRS-FSR2-Software.unity + guid: 7ef4a19b40d29a74492f7a1166ef9523 + - enabled: 1 + path: Assets/GraphicTests/Scenes/4x_PostProcessing/4109_DRS-FSR2-AfterPost.unity + guid: cbd1f7bf59ae04b46afbfcb1188b43b4 - enabled: 1 path: Assets/GraphicTests/Scenes/5x_SkyAndFog/5001_Fog_FogFallback.unity guid: d04c39af67e5e18449a44f6a7778862f @@ -1049,5 +1058,7 @@ EditorBuildSettings: - enabled: 1 path: Assets/GraphicTests/Scenes/9x_Other/9970-ScreenSpaceUIOverlay.unity guid: df8ad799e8a136e488cc1dc4c39a9c2c - 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/SRP_SmokeTest/Assets/Tests/Editor/Volumes/VolumeComponentEditorSupportedOnTests.cs b/Tests/SRPTests/Projects/SRP_SmokeTest/Assets/Tests/Editor/Volumes/VolumeComponentEditorSupportedOnTests.cs index a0af00156dd..c92a3533127 100644 --- a/Tests/SRPTests/Projects/SRP_SmokeTest/Assets/Tests/Editor/Volumes/VolumeComponentEditorSupportedOnTests.cs +++ b/Tests/SRPTests/Projects/SRP_SmokeTest/Assets/Tests/Editor/Volumes/VolumeComponentEditorSupportedOnTests.cs @@ -34,12 +34,15 @@ public void TestVolumeManagerSupportedOnFiltering(Type renderPipelineAssetType, { var volumeManager = new VolumeManager(); volumeManager.LoadBaseTypes(renderPipelineAssetType); + volumeManager.InitializeInternal(); foreach (var expectedType in expectedTypes) Assert.That(() => volumeManager.baseComponentTypeArray.First(t => t == expectedType), Throws.Nothing); foreach (var notExpectedType in notExpectedTypes) Assert.That(() => volumeManager.baseComponentTypeArray.First(t => t == notExpectedType), Throws.InvalidOperationException); + + volumeManager.Deinitialize(); } } } diff --git a/Tests/SRPTests/Projects/SRP_SmokeTest/Assets/Tests/Editor/Volumes/VolumeComponentTests.cs b/Tests/SRPTests/Projects/SRP_SmokeTest/Assets/Tests/Editor/Volumes/VolumeComponentTests.cs index 088110455b6..5f891196eb1 100644 --- a/Tests/SRPTests/Projects/SRP_SmokeTest/Assets/Tests/Editor/Volumes/VolumeComponentTests.cs +++ b/Tests/SRPTests/Projects/SRP_SmokeTest/Assets/Tests/Editor/Volumes/VolumeComponentTests.cs @@ -1,5 +1,6 @@ using NUnit.Framework; using System; +using System.Collections; using System.Collections.Generic; using System.Linq; using System.Reflection; @@ -168,25 +169,20 @@ public void TearDown() { var vm = new VolumeManager(); vm.baseComponentTypeArray = new[] {typeof(TestAnimationCurveVolumeComponent)}; - vm.EvaluateVolumeDefaultState(); - - // Initialize the stack - var stack = vm.CreateStack(); + vm.InitializeInternal(); actionToPerform?.Invoke( - stack.parameters[0].GetValue(), // parameterInterpolated + vm.stack.parameters[0].GetValue(), // parameterInterpolated vm.m_ParametersDefaultState[0].GetValue(), // defaultParameterForFastAccess m_DefaultComponent.testParameter.GetValue(), // defaultComponentParameterUsedToInitializeStack - stack, + vm.stack, vm); - return ( - stack.parameters == null ? - -1 : stack.parameters[0].GetValue().length, // parameterInterpolated - vm.m_ParametersDefaultState == null ? - -1 : vm.m_ParametersDefaultState[0].GetValue().length, // defaultParameterForFastAccess - m_DefaultComponent.testParameter.GetValue().length // defaultComponentParameterUsedToInitializeStack - ); + var parameterInterpolated = vm.stack.parameters == null ? -1 : vm.stack.parameters[0].GetValue().length; + var defaultParameterForFastAccess = vm.m_ParametersDefaultState == null ? -1 : vm.m_ParametersDefaultState[0].GetValue().length; + var defaultComponentParameterUsedToInitializeStack = m_DefaultComponent.testParameter.GetValue().length; + vm.Deinitialize(); + return (parameterInterpolated, defaultParameterForFastAccess, defaultComponentParameterUsedToInitializeStack); } } diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/CommonAssets/UniversalRPAsset.asset b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/CommonAssets/UniversalRPAsset.asset index 3503187f2b5..429bcb4545c 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/CommonAssets/UniversalRPAsset.asset +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/CommonAssets/UniversalRPAsset.asset @@ -25,6 +25,7 @@ MonoBehaviour: - {fileID: 11400000, guid: 04618ff2d33c0432a81d00fdee3fae55, type: 2} - {fileID: 11400000, guid: eae387d1d2a20a946ae2441e0319f1a0, type: 2} - {fileID: 11400000, guid: ab4527fe9ad5ef949bffe9447fabcfa2, type: 2} + - {fileID: 11400000, guid: 01e79ba8f42c808448b7542939affccb, type: 2} m_DefaultRendererIndex: 2 m_RequireDepthTexture: 1 m_RequireOpaqueTexture: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/022_Normals_FlipXY.unity b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/022_Normals_FlipXY.unity new file mode 100644 index 00000000000..f0dbe141334 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/022_Normals_FlipXY.unity @@ -0,0 +1,835 @@ +%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 &320569054 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 320569056} + - component: {fileID: 320569055} + m_Layer: 0 + m_Name: Sprite_Coral_round Default Material + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!212 &320569055 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 320569054} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: -6091329584399971573, guid: 734039631e6f77248b04a79e9dded059, + type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 5.12, y: 3.87} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!4 &320569056 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 320569054} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -2.5, y: 2, z: 0} + m_LocalScale: {x: 0.8, y: 0.8, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &355158592 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 355158594} + - component: {fileID: 355158593} + m_Layer: 0 + m_Name: Sprite_Coral_round Custom Lit Material + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!212 &355158593 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 355158592} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: af65edc27c3fa8c4f8ca25aa48c28e6c, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: -6091329584399971573, guid: 734039631e6f77248b04a79e9dded059, + type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 5.12, y: 3.87} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!4 &355158594 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 355158592} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -2.5, y: -2.28, z: 0} + m_LocalScale: {x: 0.8, y: 0.8, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1456095519 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1456095521} + - component: {fileID: 1456095520} + m_Layer: 0 + m_Name: Sprite_Coral_round Default Material (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!212 &1456095520 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1456095519} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: -6091329584399971573, guid: 734039631e6f77248b04a79e9dded059, + type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 1 + m_FlipY: 1 + m_DrawMode: 0 + m_Size: {x: 5.12, y: 3.87} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!4 &1456095521 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1456095519} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 1, w: 0} + m_LocalPosition: {x: 2.5, y: 2, z: 0} + m_LocalScale: {x: 0.8, y: 0.8, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 180} +--- !u!1 &1566917644 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1566917646} + - component: {fileID: 1566917645} + m_Layer: 0 + m_Name: Sprite_Coral_round Custom Lit Material (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!212 &1566917645 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1566917644} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: af65edc27c3fa8c4f8ca25aa48c28e6c, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: -6091329584399971573, guid: 734039631e6f77248b04a79e9dded059, + type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 1 + m_FlipY: 1 + m_DrawMode: 0 + m_Size: {x: 5.12, y: 3.87} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!4 &1566917646 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1566917644} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 1, w: 0} + m_LocalPosition: {x: 2.5, y: -2.28, z: 0} + m_LocalScale: {x: 0.8, y: 0.8, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 180} +--- !u!1 &1713755539 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1713755541} + - component: {fileID: 1713755540} + m_Layer: 0 + m_Name: Global Light 2D + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1713755540 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1713755539} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 073797afb82c5a1438f328866b10b3f0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ComponentVersion: 2 + m_LightType: 4 + m_BlendStyleIndex: 0 + m_FalloffIntensity: 0.5 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Intensity: 0.5 + m_LightVolumeIntensity: 1 + m_LightVolumeEnabled: 0 + m_ApplyToSortingLayers: eb0feddf00000000e980ef06 + m_LightCookieSprite: {fileID: 0} + m_DeprecatedPointLightCookieSprite: {fileID: 0} + m_LightOrder: 0 + m_AlphaBlendOnOverlap: 0 + m_OverlapOperation: 0 + m_NormalMapDistance: 3 + m_NormalMapQuality: 2 + m_UseNormalMap: 0 + m_ShadowsEnabled: 1 + m_ShadowIntensity: 0.75 + m_ShadowSoftness: 0.3 + m_ShadowSoftnessFalloffIntensity: 0.5 + m_ShadowVolumeIntensityEnabled: 0 + m_ShadowVolumeIntensity: 0.75 + m_LocalBounds: + m_Center: {x: 0, y: -0.00000011920929, z: 0} + m_Extent: {x: 0.9985302, y: 0.99853027, z: 0} + m_PointLightInnerAngle: 360 + m_PointLightOuterAngle: 360 + m_PointLightInnerRadius: 0 + m_PointLightOuterRadius: 1 + 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 &1713755541 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1713755539} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1835037201 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1835037203} + - component: {fileID: 1835037202} + 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 &1835037202 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1835037201} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 073797afb82c5a1438f328866b10b3f0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ComponentVersion: 2 + m_LightType: 3 + m_BlendStyleIndex: 0 + m_FalloffIntensity: 0.5 + m_Color: {r: 0, g: 0.9014871, b: 1, a: 1} + m_Intensity: 5 + 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: 4.080235 + m_PointLightOuterRadius: 5 + 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 &1835037203 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1835037201} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: -0.27, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1977309572 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1977309576} + - component: {fileID: 1977309575} + - component: {fileID: 1977309574} + - component: {fileID: 1977309573} + - component: {fileID: 1977309577} + 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 &1977309573 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1977309572} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a79441f348de89743a2939f4d699eac1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_RenderShadows: 1 + m_RequiresDepthTextureOption: 2 + m_RequiresOpaqueTextureOption: 2 + m_CameraType: 0 + m_Cameras: [] + m_RendererIndex: -1 + m_VolumeLayerMask: + serializedVersion: 2 + m_Bits: 1 + m_VolumeTrigger: {fileID: 0} + m_VolumeFrameworkUpdateModeOption: 2 + m_RenderPostProcessing: 0 + m_Antialiasing: 0 + m_AntialiasingQuality: 2 + m_StopNaN: 0 + m_Dithering: 0 + m_ClearDepth: 1 + m_AllowXRRendering: 1 + m_AllowHDROutput: 1 + m_UseScreenCoordOverride: 0 + m_ScreenSizeOverride: {x: 0, y: 0, z: 0, w: 0} + m_ScreenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0} + m_RequiresDepthTexture: 0 + m_RequiresColorTexture: 0 + m_TaaSettings: + m_Quality: 3 + m_FrameInfluence: 0.1 + m_JitterScale: 1 + m_MipBias: 0 + m_VarianceClampScale: 0.9 + m_ContrastAdaptiveSharpening: 0 + m_Version: 2 +--- !u!81 &1977309574 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1977309572} + m_Enabled: 1 +--- !u!20 &1977309575 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1977309572} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 2 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 1} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_Iso: 200 + m_ShutterSpeed: 0.005 + m_Aperture: 16 + m_FocusDistance: 10 + m_FocalLength: 50 + m_BladeCount: 5 + m_Curvature: {x: 2, y: 11} + m_BarrelClipping: 0.25 + m_Anamorphism: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 1 + orthographic size: 5 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &1977309576 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1977309572} + 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 &1977309577 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1977309572} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 73231aa468d81ea49bc3d914080de185, type: 3} + m_Name: + m_EditorClassIdentifier: + ImageComparisonSettings: + TargetWidth: 512 + TargetHeight: 512 + TargetMSAASamples: 1 + PerPixelCorrectnessThreshold: 0.001 + PerPixelGammaThreshold: 0.003921569 + PerPixelAlphaThreshold: 0.003921569 + RMSEThreshold: 0 + AverageCorrectnessThreshold: 0.0016 + IncorrectPixelsThreshold: 0.0000038146973 + UseHDR: 0 + UseBackBuffer: 0 + ImageResolution: 0 + ActiveImageTests: 1 + ActivePixelTests: -1 + WaitFrames: 0 + XRCompatible: 0 + gpuDrivenCompatible: 1 + CheckMemoryAllocation: 1 + renderBackendCompatibility: 2 + SetBackBufferResolution: 0 +--- !u!1660057539 &9223372036854775807 +SceneRoots: + m_ObjectHideFlags: 0 + m_Roots: + - {fileID: 1977309576} + - {fileID: 1713755541} + - {fileID: 1835037203} + - {fileID: 320569056} + - {fileID: 1456095521} + - {fileID: 355158594} + - {fileID: 1566917646} diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/022_Normals_FlipXY.unity.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/022_Normals_FlipXY.unity.meta new file mode 100644 index 00000000000..be3e43082df --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/022_Normals_FlipXY.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 0fd9ba64f5114634b81f084fb92123e1 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/057_2D_Lights_Blending/SpriteCustomLitBlending.shadergraph b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/057_2D_Lights_Blending/SpriteCustomLitBlending.shadergraph index 37173f8e915..4c146079cd0 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/057_2D_Lights_Blending/SpriteCustomLitBlending.shadergraph +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/057_2D_Lights_Blending/SpriteCustomLitBlending.shadergraph @@ -284,6 +284,20 @@ "m_SlotId": 0 } }, + { + "m_OutputSlot": { + "m_Node": { + "m_Id": "e7122ec5f091423e8fb4be58092089fd" + }, + "m_SlotId": 0 + }, + "m_InputSlot": { + "m_Node": { + "m_Id": "5b68002e1cad45829d9e8d88411bf92d" + }, + "m_SlotId": 2 + } + }, { "m_OutputSlot": { "m_Node": { @@ -445,7 +459,7 @@ "m_StageCapability": 3, "m_BareResource": false, "m_Texture": { - "m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}", + "m_SerializedTexture": "", "m_Guid": "" }, "m_DefaultType": 3 @@ -839,7 +853,7 @@ "m_StageCapability": 3, "m_BareResource": false, "m_Texture": { - "m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}", + "m_SerializedTexture": "", "m_Guid": "" }, "m_DefaultType": 0 @@ -1314,7 +1328,7 @@ "m_StageCapability": 3, "m_BareResource": false, "m_Texture": { - "m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}", + "m_SerializedTexture": "", "m_Guid": "" }, "m_DefaultType": 0 @@ -1357,7 +1371,7 @@ "m_StageCapability": 3, "m_BareResource": false, "m_Texture": { - "m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}", + "m_SerializedTexture": "", "m_Guid": "" }, "m_DefaultType": 0 @@ -2028,7 +2042,7 @@ "m_StageCapability": 3, "m_BareResource": false, "m_Texture": { - "m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}", + "m_SerializedTexture": "", "m_Guid": "" }, "m_DefaultType": 0 @@ -2069,12 +2083,15 @@ "overrideHLSLDeclaration": true, "hlslDeclarationOverride": 2, "m_Hidden": false, + "m_PerRendererData": false, + "m_customAttributes": [], "m_Value": { - "m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}", + "m_SerializedTexture": "", "m_Guid": "" }, "isMainTexture": false, "useTilingAndOffset": false, + "useTexelSize": true, "m_Modifiable": true, "m_DefaultType": 0 } @@ -2132,12 +2149,15 @@ "overrideHLSLDeclaration": false, "hlslDeclarationOverride": 0, "m_Hidden": false, + "m_PerRendererData": false, + "m_customAttributes": [], "m_Value": { - "m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}", + "m_SerializedTexture": "", "m_Guid": "" }, "isMainTexture": false, "useTilingAndOffset": false, + "useTexelSize": true, "m_Modifiable": true, "m_DefaultType": 0 } @@ -2561,12 +2581,15 @@ "overrideHLSLDeclaration": false, "hlslDeclarationOverride": 0, "m_Hidden": false, + "m_PerRendererData": false, + "m_customAttributes": [], "m_Value": { - "m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}", + "m_SerializedTexture": "", "m_Guid": "" }, "isMainTexture": false, "useTilingAndOffset": false, + "useTexelSize": true, "m_Modifiable": true, "m_DefaultType": 0 } diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/064_FullScreenRendererFeature.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/064_FullScreenRendererFeature.meta new file mode 100644 index 00000000000..6e47f875a01 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/064_FullScreenRendererFeature.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 26d6c46703d00654aa90c4f6420b23e0 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/064_FullScreenRendererFeature.unity b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/064_FullScreenRendererFeature.unity new file mode 100644 index 00000000000..4aebb70a37d --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/064_FullScreenRendererFeature.unity @@ -0,0 +1,471 @@ +%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: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_Iso: 200 + m_ShutterSpeed: 0.005 + m_Aperture: 16 + m_FocusDistance: 10 + m_FocalLength: 50 + m_BladeCount: 5 + m_Curvature: {x: 2, y: 11} + m_BarrelClipping: 0.25 + m_Anamorphism: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 1 + orthographic size: 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 &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: 1 + m_RequiresDepthTextureOption: 2 + m_RequiresOpaqueTextureOption: 2 + m_CameraType: 0 + m_Cameras: [] + m_RendererIndex: 8 + m_VolumeLayerMask: + serializedVersion: 2 + m_Bits: 1 + m_VolumeTrigger: {fileID: 0} + m_VolumeFrameworkUpdateModeOption: 2 + m_RenderPostProcessing: 0 + m_Antialiasing: 0 + m_AntialiasingQuality: 2 + m_StopNaN: 0 + m_Dithering: 0 + m_ClearDepth: 1 + m_AllowXRRendering: 1 + m_AllowHDROutput: 1 + m_UseScreenCoordOverride: 0 + m_ScreenSizeOverride: {x: 0, y: 0, z: 0, w: 0} + m_ScreenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0} + m_RequiresDepthTexture: 0 + m_RequiresColorTexture: 0 + m_Version: 2 + m_TaaSettings: + m_Quality: 3 + m_FrameInfluence: 0.1 + m_JitterScale: 1 + m_MipBias: 0 + m_VarianceClampScale: 0.9 + m_ContrastAdaptiveSharpening: 0 +--- !u!114 &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!1 &774377729 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 774377731} + - component: {fileID: 774377730} + 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 &774377730 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 774377729} + 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: 4 + m_BlendStyleIndex: 0 + m_FalloffIntensity: 0.5 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Intensity: 1 + m_LightVolumeIntensity: 1 + m_LightVolumeEnabled: 0 + m_ApplyToSortingLayers: eb0feddf00000000e980ef06 + m_LightCookieSprite: {fileID: 0} + m_DeprecatedPointLightCookieSprite: {fileID: 0} + m_LightOrder: 0 + m_AlphaBlendOnOverlap: 0 + m_OverlapOperation: 0 + m_NormalMapDistance: 3 + m_NormalMapQuality: 2 + m_UseNormalMap: 0 + m_ShadowsEnabled: 1 + m_ShadowIntensity: 0.75 + m_ShadowSoftness: 0.3 + m_ShadowSoftnessFalloffIntensity: 0.5 + m_ShadowVolumeIntensityEnabled: 0 + m_ShadowVolumeIntensity: 0.75 + m_LocalBounds: + m_Center: {x: 0, y: -0.00000011920929, z: 0} + m_Extent: {x: 0.9985302, y: 0.99853027, z: 0} + m_PointLightInnerAngle: 360 + m_PointLightOuterAngle: 360 + m_PointLightInnerRadius: 0 + m_PointLightOuterRadius: 1 + 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 &774377731 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 774377729} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &2080771070 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2080771072} + - component: {fileID: 2080771071} + m_Layer: 0 + m_Name: Square + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!212 &2080771071 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2080771070} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: 7482667652216324306, guid: 311925a002f4447b3a28927169b83ea6, + type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!4 &2080771072 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2080771070} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 2, y: 2, 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: 774377731} + - {fileID: 2080771072} diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/064_FullScreenRendererFeature.unity.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/064_FullScreenRendererFeature.unity.meta new file mode 100644 index 00000000000..224d8233041 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/064_FullScreenRendererFeature.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f47933cb58d03af41a718fdea55dea08 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/064_FullScreenRendererFeature/064_FullScreenRendererFeature Renderer Data.asset b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/064_FullScreenRendererFeature/064_FullScreenRendererFeature Renderer Data.asset new file mode 100644 index 00000000000..cc8ad01d5e9 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/064_FullScreenRendererFeature/064_FullScreenRendererFeature Renderer Data.asset @@ -0,0 +1,82 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-284040083619274552 +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: b00045f12942b46c698459096c89274e, type: 3} + m_Name: FullScreenPassRendererFeature + m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Runtime::UnityEngine.Rendering.Universal.FullScreenPassRendererFeature + m_Active: 1 + injectionPoint: 600 + fetchColorBuffer: 1 + requirements: 7 + passMaterial: {fileID: 2100000, guid: 78a08787ca30045abb69f6f7dd878e09, type: 2} + passIndex: 0 + bindDepthStencilAttachment: 0 + m_Version: 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: 11145981673336645838492a2d98e247, type: 3} + m_Name: 064_FullScreenRendererFeature Renderer Data + m_EditorClassIdentifier: Unity.RenderPipelines.Universal.2D.Runtime::UnityEngine.Rendering.Universal.Renderer2DData + 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: 0} + probeVolumeFragmentationDebugShader: {fileID: 0} + probeVolumeOffsetDebugShader: {fileID: 0} + probeVolumeSamplingDebugShader: {fileID: 0} + probeSamplingDebugMesh: {fileID: 0} + probeSamplingDebugTexture: {fileID: 0} + probeVolumeBlendStatesCS: {fileID: 0} + m_RendererFeatures: + - {fileID: -284040083619274552} + m_RendererFeatureMap: c8a0e6810ce30efc + m_UseNativeRenderPass: 0 + m_LayerMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_TransparencySortMode: 0 + m_TransparencySortAxis: {x: 0, y: 1, z: 0} + m_HDREmulationScale: 1 + m_LightRenderTextureScale: 0.5 + m_LightBlendStyles: + - name: Multiply + maskTextureChannel: 0 + blendMode: 1 + - name: Additive + maskTextureChannel: 0 + blendMode: 0 + - name: Multiply with Mask + maskTextureChannel: 1 + blendMode: 1 + - name: Additive with Mask + maskTextureChannel: 1 + blendMode: 0 + m_UseDepthStencilBuffer: 1 + m_UseCameraSortingLayersTexture: 0 + m_CameraSortingLayersTextureBound: -1 + m_CameraSortingLayerDownsamplingMethod: 0 + m_MaxLightRenderTextureCount: 16 + m_MaxShadowRenderTextureCount: 1 + m_PostProcessData: {fileID: 11400000, guid: 41439944d30ece34e96484bdb6645b55, type: 2} + m_DefaultMaterialType: 0 + m_DefaultCustomMaterial: {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, + type: 2} diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/064_FullScreenRendererFeature/064_FullScreenRendererFeature Renderer Data.asset.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/064_FullScreenRendererFeature/064_FullScreenRendererFeature Renderer Data.asset.meta new file mode 100644 index 00000000000..6850d148956 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/064_FullScreenRendererFeature/064_FullScreenRendererFeature Renderer Data.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 01e79ba8f42c808448b7542939affccb +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: 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/Scenes/074_Screen_Space_UI_Overlay.unity b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/074_Screen_Space_UI_Overlay.unity index 76cbf42d251..6eb1a38bc3a 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/074_Screen_Space_UI_Overlay.unity +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/074_Screen_Space_UI_Overlay.unity @@ -42,7 +42,8 @@ RenderSettings: --- !u!157 &3 LightmapSettings: m_ObjectHideFlags: 0 - serializedVersion: 12 + serializedVersion: 13 + m_BakeOnSceneLoad: 0 m_GISettings: serializedVersion: 2 m_BounceScale: 1 @@ -490,8 +491,8 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: ImageComparisonSettings: - TargetWidth: 1280 - TargetHeight: 720 + TargetWidth: 1920 + TargetHeight: 1080 TargetMSAASamples: 1 PerPixelCorrectnessThreshold: 0.001 PerPixelGammaThreshold: 0.003921569 @@ -500,7 +501,7 @@ MonoBehaviour: AverageCorrectnessThreshold: 0.005 IncorrectPixelsThreshold: 0.0000038146973 UseHDR: 0 - UseBackBuffer: 1 + UseBackBuffer: 0 ImageResolution: 0 ActiveImageTests: 1 ActivePixelTests: -1 @@ -509,7 +510,7 @@ MonoBehaviour: gpuDrivenCompatible: 1 CheckMemoryAllocation: 0 renderBackendCompatibility: 2 - SetBackBufferResolution: 1 + SetBackBufferResolution: 0 --- !u!1 &661388560 GameObject: m_ObjectHideFlags: 0 @@ -1075,6 +1076,7 @@ MonoBehaviour: m_WorldSpaceSizeMode: 1 m_WorldSpaceWidth: 1920 m_WorldSpaceHeight: 1080 + m_WorldSpaceCollider: {fileID: 0} --- !u!4 &1471116130 Transform: m_ObjectHideFlags: 0 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/088_TilemapRenderer_MaskInteraction.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/088_TilemapRenderer_MaskInteraction.meta new file mode 100644 index 00000000000..4961fe72b73 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/088_TilemapRenderer_MaskInteraction.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 985274935fdbf774abf66ef609fc7583 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/088_TilemapRenderer_MaskInteraction.unity b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/088_TilemapRenderer_MaskInteraction.unity index ad0f76ecc65..045b17eb249 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/088_TilemapRenderer_MaskInteraction.unity +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/088_TilemapRenderer_MaskInteraction.unity @@ -279,7 +279,7 @@ Tilemap: e31: 0 e32: 0 e33: 1 ---- !u!1 &105777675 +--- !u!1 &47282883 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -287,38 +287,38 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 105777676} - - component: {fileID: 105777678} - - component: {fileID: 105777677} + - component: {fileID: 47282884} + - component: {fileID: 47282886} + - component: {fileID: 47282885} m_Layer: 0 - m_Name: Chunk - None 3 + m_Name: Chunk - Shader - VisibleInMask m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &105777676 +--- !u!4 &47282884 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 105777675} + m_GameObject: {fileID: 47282883} serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 214346214} + m_Father: {fileID: 864839693} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!483693784 &105777677 +--- !u!483693784 &47282885 TilemapRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 105777675} + m_GameObject: {fileID: 47282883} m_Enabled: 1 m_CastShadows: 0 m_ReceiveShadows: 0 @@ -337,7 +337,7 @@ TilemapRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, type: 2} + - {fileID: 2100000, guid: 978bb63e0ef6dca4ca9b8da87c3f7f75, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -356,9 +356,9 @@ TilemapRenderer: m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} m_GlobalIlluminationMeshLod: 0 - m_SortingLayerID: 116359401 - m_SortingLayer: 1 - m_SortingOrder: 8 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 m_ChunkSize: {x: 32, y: 32, z: 32} m_ChunkCullingBounds: {x: 0, y: 0, z: 0} m_MaxChunkCount: 16 @@ -366,17 +366,17 @@ TilemapRenderer: m_SortOrder: 0 m_Mode: 0 m_DetectChunkCullingBounds: 0 - m_MaskInteraction: 0 ---- !u!1839735485 &105777678 + m_MaskInteraction: 1 +--- !u!1839735485 &47282886 Tilemap: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 105777675} + m_GameObject: {fileID: 47282883} m_Enabled: 1 m_Tiles: - - first: {x: -3, y: 3, z: 0} + - first: {x: -11, y: 3, z: 0} second: serializedVersion: 2 m_TileIndex: 0 @@ -418,8 +418,8 @@ Tilemap: m_TileObjectToInstantiateArray: [] m_AnimationFrameRate: 1 m_Color: {r: 1, g: 1, b: 1, a: 1} - m_Origin: {x: -10, y: 0, z: 0} - m_Size: {x: 10, y: 4, z: 1} + m_Origin: {x: -11, y: 0, z: 0} + m_Size: {x: 11, y: 4, z: 1} m_TileAnchor: {x: 0.5, y: 0.5, z: 0} m_TileOrientation: 0 m_TileOrientationMatrix: @@ -439,7 +439,7 @@ Tilemap: e31: 0 e32: 0 e33: 1 ---- !u!1 &150661153 +--- !u!1 &76593865 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -447,38 +447,128 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 150661154} - - component: {fileID: 150661156} - - component: {fileID: 150661155} + - component: {fileID: 76593867} + - component: {fileID: 76593866} m_Layer: 0 - m_Name: SRP - VisibleInMask 3 + m_Name: SpriteMask Shader m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &150661154 +--- !u!212 &76593866 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 76593865} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 1024265d4663d5840bab44e9ea802ee1, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: 21300000, guid: 1c1bbc2babac652448e1539458ad2d21, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!4 &76593867 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 150661153} + m_GameObject: {fileID: 76593865} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 8, y: -2.5, z: 0} + m_LocalScale: {x: 20, y: 3, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &78305444 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 78305445} + - component: {fileID: 78305447} + - component: {fileID: 78305446} + m_Layer: 0 + m_Name: Chunk - Shader - None + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &78305445 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 78305444} serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 1565511678} + m_Father: {fileID: 205137524} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!483693784 &150661155 +--- !u!483693784 &78305446 TilemapRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 150661153} + m_GameObject: {fileID: 78305444} m_Enabled: 1 m_CastShadows: 0 m_ReceiveShadows: 0 @@ -497,7 +587,7 @@ TilemapRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, type: 2} + - {fileID: 2100000, guid: 978bb63e0ef6dca4ca9b8da87c3f7f75, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -518,25 +608,25 @@ TilemapRenderer: m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 116359401 m_SortingLayer: 1 - m_SortingOrder: 27 + m_SortingOrder: 1 m_ChunkSize: {x: 32, y: 32, z: 32} m_ChunkCullingBounds: {x: 0, y: 0, z: 0} m_MaxChunkCount: 16 m_MaxFrameAge: 16 m_SortOrder: 0 - m_Mode: 2 + m_Mode: 0 m_DetectChunkCullingBounds: 0 - m_MaskInteraction: 1 ---- !u!1839735485 &150661156 + m_MaskInteraction: 0 +--- !u!1839735485 &78305447 Tilemap: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 150661153} + m_GameObject: {fileID: 78305444} m_Enabled: 1 m_Tiles: - - first: {x: -4, y: 3, z: 0} + - first: {x: -10, y: 3, z: 0} second: serializedVersion: 2 m_TileIndex: 0 @@ -578,8 +668,8 @@ Tilemap: m_TileObjectToInstantiateArray: [] m_AnimationFrameRate: 1 m_Color: {r: 1, g: 1, b: 1, a: 1} - m_Origin: {x: -11, y: 0, z: 0} - m_Size: {x: 11, y: 4, z: 1} + m_Origin: {x: -10, y: 0, z: 0} + m_Size: {x: 10, y: 4, z: 1} m_TileAnchor: {x: 0.5, y: 0.5, z: 0} m_TileOrientation: 0 m_TileOrientationMatrix: @@ -599,7 +689,7 @@ Tilemap: e31: 0 e32: 0 e33: 1 ---- !u!1 &151928560 +--- !u!1 &105322933 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -607,38 +697,38 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 151928561} - - component: {fileID: 151928563} - - component: {fileID: 151928562} + - component: {fileID: 105322934} + - component: {fileID: 105322936} + - component: {fileID: 105322935} m_Layer: 0 - m_Name: SRP - VisibleInMask + m_Name: Chunk - Shader - VisibleOutofMask 3 m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &151928561 +--- !u!4 &105322934 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 151928560} + m_GameObject: {fileID: 105322933} serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 300172612} + m_Father: {fileID: 205137524} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!483693784 &151928562 +--- !u!483693784 &105322935 TilemapRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 151928560} + m_GameObject: {fileID: 105322933} m_Enabled: 1 m_CastShadows: 0 m_ReceiveShadows: 0 @@ -657,7 +747,7 @@ TilemapRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, type: 2} + - {fileID: 2100000, guid: 978bb63e0ef6dca4ca9b8da87c3f7f75, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -676,27 +766,27 @@ TilemapRenderer: m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} m_GlobalIlluminationMeshLod: 0 - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 20 + m_SortingLayerID: 116359401 + m_SortingLayer: 1 + m_SortingOrder: 6 m_ChunkSize: {x: 32, y: 32, z: 32} m_ChunkCullingBounds: {x: 0, y: 0, z: 0} m_MaxChunkCount: 16 m_MaxFrameAge: 16 m_SortOrder: 0 - m_Mode: 2 + m_Mode: 0 m_DetectChunkCullingBounds: 0 - m_MaskInteraction: 1 ---- !u!1839735485 &151928563 + m_MaskInteraction: 2 +--- !u!1839735485 &105322936 Tilemap: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 151928560} + m_GameObject: {fileID: 105322933} m_Enabled: 1 m_Tiles: - - first: {x: -11, y: 3, z: 0} + - first: {x: -5, y: 3, z: 0} second: serializedVersion: 2 m_TileIndex: 0 @@ -738,8 +828,8 @@ Tilemap: m_TileObjectToInstantiateArray: [] m_AnimationFrameRate: 1 m_Color: {r: 1, g: 1, b: 1, a: 1} - m_Origin: {x: -11, y: 0, z: 0} - m_Size: {x: 11, y: 4, z: 1} + m_Origin: {x: -9, y: 0, z: 0} + m_Size: {x: 9, y: 4, z: 1} m_TileAnchor: {x: 0.5, y: 0.5, z: 0} m_TileOrientation: 0 m_TileOrientationMatrix: @@ -759,7 +849,7 @@ Tilemap: e31: 0 e32: 0 e33: 1 ---- !u!1 &189917553 +--- !u!1 &105777675 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -767,23 +857,23 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 189917554} - - component: {fileID: 189917556} - - component: {fileID: 189917555} + - component: {fileID: 105777676} + - component: {fileID: 105777678} + - component: {fileID: 105777677} m_Layer: 0 - m_Name: Chunk - VisibleOutofMask 3 + m_Name: Chunk - None 3 m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &189917554 +--- !u!4 &105777676 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 189917553} + m_GameObject: {fileID: 105777675} serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -792,13 +882,13 @@ Transform: m_Children: [] m_Father: {fileID: 214346214} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!483693784 &189917555 +--- !u!483693784 &105777677 TilemapRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 189917553} + m_GameObject: {fileID: 105777675} m_Enabled: 1 m_CastShadows: 0 m_ReceiveShadows: 0 @@ -838,7 +928,7 @@ TilemapRenderer: m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 116359401 m_SortingLayer: 1 - m_SortingOrder: 6 + m_SortingOrder: 8 m_ChunkSize: {x: 32, y: 32, z: 32} m_ChunkCullingBounds: {x: 0, y: 0, z: 0} m_MaxChunkCount: 16 @@ -846,17 +936,17 @@ TilemapRenderer: m_SortOrder: 0 m_Mode: 0 m_DetectChunkCullingBounds: 0 - m_MaskInteraction: 2 ---- !u!1839735485 &189917556 + m_MaskInteraction: 0 +--- !u!1839735485 &105777678 Tilemap: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 189917553} + m_GameObject: {fileID: 105777675} m_Enabled: 1 m_Tiles: - - first: {x: -5, y: 3, z: 0} + - first: {x: -3, y: 3, z: 0} second: serializedVersion: 2 m_TileIndex: 0 @@ -898,8 +988,8 @@ Tilemap: m_TileObjectToInstantiateArray: [] m_AnimationFrameRate: 1 m_Color: {r: 1, g: 1, b: 1, a: 1} - m_Origin: {x: -9, y: 0, z: 0} - m_Size: {x: 9, y: 4, z: 1} + m_Origin: {x: -10, y: 0, z: 0} + m_Size: {x: 10, y: 4, z: 1} m_TileAnchor: {x: 0.5, y: 0.5, z: 0} m_TileOrientation: 0 m_TileOrientationMatrix: @@ -919,60 +1009,7 @@ Tilemap: e31: 0 e32: 0 e33: 1 ---- !u!1 &214346212 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 214346214} - - component: {fileID: 214346213} - m_Layer: 0 - m_Name: Grid - Masked - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!156049354 &214346213 -Grid: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 214346212} - m_Enabled: 1 - m_CellSize: {x: 1, y: 1, z: 0} - m_CellGap: {x: 0, y: 0, z: 0} - m_CellLayout: 0 - m_CellSwizzle: 0 ---- !u!4 &214346214 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 214346212} - serializedVersion: 2 - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 9, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 498093949} - - {fileID: 346258722} - - {fileID: 691802665} - - {fileID: 765619341} - - {fileID: 1141486180} - - {fileID: 845277303} - - {fileID: 189917554} - - {fileID: 1206244587} - - {fileID: 105777676} - m_Father: {fileID: 0} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &232875264 +--- !u!1 &150661153 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -980,23 +1017,23 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 232875265} - - component: {fileID: 232875267} - - component: {fileID: 232875266} + - component: {fileID: 150661154} + - component: {fileID: 150661156} + - component: {fileID: 150661155} m_Layer: 0 - m_Name: SRP - None + m_Name: SRP - VisibleInMask 3 m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &232875265 +--- !u!4 &150661154 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 232875264} + m_GameObject: {fileID: 150661153} serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -1005,13 +1042,13 @@ Transform: m_Children: [] m_Father: {fileID: 1565511678} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!483693784 &232875266 +--- !u!483693784 &150661155 TilemapRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 232875264} + m_GameObject: {fileID: 150661153} m_Enabled: 1 m_CastShadows: 0 m_ReceiveShadows: 0 @@ -1051,7 +1088,7 @@ TilemapRenderer: m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 116359401 m_SortingLayer: 1 - m_SortingOrder: 21 + m_SortingOrder: 27 m_ChunkSize: {x: 32, y: 32, z: 32} m_ChunkCullingBounds: {x: 0, y: 0, z: 0} m_MaxChunkCount: 16 @@ -1059,17 +1096,17 @@ TilemapRenderer: m_SortOrder: 0 m_Mode: 2 m_DetectChunkCullingBounds: 0 - m_MaskInteraction: 0 ---- !u!1839735485 &232875267 + m_MaskInteraction: 1 +--- !u!1839735485 &150661156 Tilemap: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 232875264} + m_GameObject: {fileID: 150661153} m_Enabled: 1 m_Tiles: - - first: {x: -10, y: 3, z: 0} + - first: {x: -4, y: 3, z: 0} second: serializedVersion: 2 m_TileIndex: 0 @@ -1111,8 +1148,8 @@ Tilemap: m_TileObjectToInstantiateArray: [] m_AnimationFrameRate: 1 m_Color: {r: 1, g: 1, b: 1, a: 1} - m_Origin: {x: -10, y: 0, z: 0} - m_Size: {x: 10, y: 4, z: 1} + m_Origin: {x: -11, y: 0, z: 0} + m_Size: {x: 11, y: 4, z: 1} m_TileAnchor: {x: 0.5, y: 0.5, z: 0} m_TileOrientation: 0 m_TileOrientationMatrix: @@ -1132,7 +1169,7 @@ Tilemap: e31: 0 e32: 0 e33: 1 ---- !u!1 &251715405 +--- !u!1 &151928560 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -1140,38 +1177,38 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 251715406} - - component: {fileID: 251715408} - - component: {fileID: 251715407} + - component: {fileID: 151928561} + - component: {fileID: 151928563} + - component: {fileID: 151928562} m_Layer: 0 - m_Name: Chunk - VisibleInMask 3 + m_Name: SRP - VisibleInMask m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &251715406 +--- !u!4 &151928561 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 251715405} + m_GameObject: {fileID: 151928560} serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 1178893847} + m_Father: {fileID: 300172612} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!483693784 &251715407 +--- !u!483693784 &151928562 TilemapRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 251715405} + m_GameObject: {fileID: 151928560} m_Enabled: 1 m_CastShadows: 0 m_ReceiveShadows: 0 @@ -1211,25 +1248,25 @@ TilemapRenderer: m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 - m_SortingOrder: 7 + m_SortingOrder: 20 m_ChunkSize: {x: 32, y: 32, z: 32} m_ChunkCullingBounds: {x: 0, y: 0, z: 0} m_MaxChunkCount: 16 m_MaxFrameAge: 16 m_SortOrder: 0 - m_Mode: 0 + m_Mode: 2 m_DetectChunkCullingBounds: 0 m_MaskInteraction: 1 ---- !u!1839735485 &251715408 +--- !u!1839735485 &151928563 Tilemap: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 251715405} + m_GameObject: {fileID: 151928560} m_Enabled: 1 m_Tiles: - - first: {x: -4, y: 3, z: 0} + - first: {x: -11, y: 3, z: 0} second: serializedVersion: 2 m_TileIndex: 0 @@ -1292,7 +1329,7 @@ Tilemap: e31: 0 e32: 0 e33: 1 ---- !u!1 &275741666 +--- !u!1 &189917553 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -1300,38 +1337,38 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 275741667} - - component: {fileID: 275741669} - - component: {fileID: 275741668} + - component: {fileID: 189917554} + - component: {fileID: 189917556} + - component: {fileID: 189917555} m_Layer: 0 - m_Name: Chunk - None 3 + m_Name: Chunk - VisibleOutofMask 3 m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &275741667 +--- !u!4 &189917554 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 275741666} + m_GameObject: {fileID: 189917553} serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 1178893847} + m_Father: {fileID: 214346214} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!483693784 &275741668 +--- !u!483693784 &189917555 TilemapRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 275741666} + m_GameObject: {fileID: 189917553} m_Enabled: 1 m_CastShadows: 0 m_ReceiveShadows: 0 @@ -1369,9 +1406,9 @@ TilemapRenderer: m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} m_GlobalIlluminationMeshLod: 0 - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 8 + m_SortingLayerID: 116359401 + m_SortingLayer: 1 + m_SortingOrder: 6 m_ChunkSize: {x: 32, y: 32, z: 32} m_ChunkCullingBounds: {x: 0, y: 0, z: 0} m_MaxChunkCount: 16 @@ -1379,17 +1416,17 @@ TilemapRenderer: m_SortOrder: 0 m_Mode: 0 m_DetectChunkCullingBounds: 0 - m_MaskInteraction: 0 ---- !u!1839735485 &275741669 + m_MaskInteraction: 2 +--- !u!1839735485 &189917556 Tilemap: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 275741666} + m_GameObject: {fileID: 189917553} m_Enabled: 1 m_Tiles: - - first: {x: -3, y: 3, z: 0} + - first: {x: -5, y: 3, z: 0} second: serializedVersion: 2 m_TileIndex: 0 @@ -1431,8 +1468,8 @@ Tilemap: m_TileObjectToInstantiateArray: [] m_AnimationFrameRate: 1 m_Color: {r: 1, g: 1, b: 1, a: 1} - m_Origin: {x: -10, y: 0, z: 0} - m_Size: {x: 10, y: 4, z: 1} + m_Origin: {x: -9, y: 0, z: 0} + m_Size: {x: 9, y: 4, z: 1} m_TileAnchor: {x: 0.5, y: 0.5, z: 0} m_TileOrientation: 0 m_TileOrientationMatrix: @@ -1452,7 +1489,7 @@ Tilemap: e31: 0 e32: 0 e33: 1 ---- !u!1 &300172610 +--- !u!1 &205137522 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -1460,52 +1497,52 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 300172612} - - component: {fileID: 300172611} + - component: {fileID: 205137524} + - component: {fileID: 205137523} m_Layer: 0 - m_Name: Grid + m_Name: Grid - Masked m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!156049354 &300172611 +--- !u!156049354 &205137523 Grid: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 300172610} + m_GameObject: {fileID: 205137522} m_Enabled: 1 m_CellSize: {x: 1, y: 1, z: 0} m_CellGap: {x: 0, y: 0, z: 0} m_CellLayout: 0 m_CellSwizzle: 0 ---- !u!4 &300172612 +--- !u!4 &205137524 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 300172610} + m_GameObject: {fileID: 205137522} serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: -4, z: 0} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 9, y: -6, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 151928561} - - {fileID: 1005097838} - - {fileID: 1826794934} - - {fileID: 1604267346} - - {fileID: 916491935} - - {fileID: 917257771} - - {fileID: 1283665430} - - {fileID: 1039568809} - - {fileID: 1193809356} + - {fileID: 476499348} + - {fileID: 78305445} + - {fileID: 1112152107} + - {fileID: 2088643746} + - {fileID: 1654606196} + - {fileID: 1528018618} + - {fileID: 105322934} + - {fileID: 1200307848} + - {fileID: 1836751354} m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &310092825 +--- !u!1 &214346212 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -1513,38 +1550,91 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 310092826} - - component: {fileID: 310092828} - - component: {fileID: 310092827} + - component: {fileID: 214346214} + - component: {fileID: 214346213} m_Layer: 0 - m_Name: Individual - None 3 + m_Name: Grid - Masked m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &310092826 +--- !u!156049354 &214346213 +Grid: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 214346212} + m_Enabled: 1 + m_CellSize: {x: 1, y: 1, z: 0} + m_CellGap: {x: 0, y: 0, z: 0} + m_CellLayout: 0 + m_CellSwizzle: 0 +--- !u!4 &214346214 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 310092825} + m_GameObject: {fileID: 214346212} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 9, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 498093949} + - {fileID: 346258722} + - {fileID: 691802665} + - {fileID: 765619341} + - {fileID: 1141486180} + - {fileID: 845277303} + - {fileID: 189917554} + - {fileID: 1206244587} + - {fileID: 105777676} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &232875264 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 232875265} + - component: {fileID: 232875267} + - component: {fileID: 232875266} + m_Layer: 0 + m_Name: SRP - None + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &232875265 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 232875264} serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 1892672332} + m_Father: {fileID: 1565511678} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!483693784 &310092827 +--- !u!483693784 &232875266 TilemapRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 310092825} + m_GameObject: {fileID: 232875264} m_Enabled: 1 m_CastShadows: 0 m_ReceiveShadows: 0 @@ -1584,25 +1674,25 @@ TilemapRenderer: m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 116359401 m_SortingLayer: 1 - m_SortingOrder: 18 + m_SortingOrder: 21 m_ChunkSize: {x: 32, y: 32, z: 32} m_ChunkCullingBounds: {x: 0, y: 0, z: 0} m_MaxChunkCount: 16 m_MaxFrameAge: 16 m_SortOrder: 0 - m_Mode: 1 + m_Mode: 2 m_DetectChunkCullingBounds: 0 m_MaskInteraction: 0 ---- !u!1839735485 &310092828 +--- !u!1839735485 &232875267 Tilemap: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 310092825} + m_GameObject: {fileID: 232875264} m_Enabled: 1 m_Tiles: - - first: {x: -3, y: 3, z: 0} + - first: {x: -10, y: 3, z: 0} second: serializedVersion: 2 m_TileIndex: 0 @@ -1665,7 +1755,7 @@ Tilemap: e31: 0 e32: 0 e33: 1 ---- !u!1 &337721037 +--- !u!1 &251715405 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -1673,38 +1763,38 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 337721038} - - component: {fileID: 337721040} - - component: {fileID: 337721039} + - component: {fileID: 251715406} + - component: {fileID: 251715408} + - component: {fileID: 251715407} m_Layer: 0 - m_Name: Individual - VisibleInMask 2 + m_Name: Chunk - VisibleInMask 3 m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &337721038 +--- !u!4 &251715406 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 337721037} + m_GameObject: {fileID: 251715405} serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 1892672332} + m_Father: {fileID: 1178893847} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!483693784 &337721039 +--- !u!483693784 &251715407 TilemapRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 337721037} + m_GameObject: {fileID: 251715405} m_Enabled: 1 m_CastShadows: 0 m_ReceiveShadows: 0 @@ -1742,27 +1832,27 @@ TilemapRenderer: m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} m_GlobalIlluminationMeshLod: 0 - m_SortingLayerID: 116359401 - m_SortingLayer: 1 - m_SortingOrder: 15 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 7 m_ChunkSize: {x: 32, y: 32, z: 32} m_ChunkCullingBounds: {x: 0, y: 0, z: 0} m_MaxChunkCount: 16 m_MaxFrameAge: 16 m_SortOrder: 0 - m_Mode: 1 + m_Mode: 0 m_DetectChunkCullingBounds: 0 m_MaskInteraction: 1 ---- !u!1839735485 &337721040 +--- !u!1839735485 &251715408 Tilemap: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 337721037} + m_GameObject: {fileID: 251715405} m_Enabled: 1 m_Tiles: - - first: {x: -6, y: 3, z: 0} + - first: {x: -4, y: 3, z: 0} second: serializedVersion: 2 m_TileIndex: 0 @@ -1825,7 +1915,7 @@ Tilemap: e31: 0 e32: 0 e33: 1 ---- !u!1 &338958899 +--- !u!1 &275741666 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -1833,38 +1923,38 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 338958900} - - component: {fileID: 338958902} - - component: {fileID: 338958901} + - component: {fileID: 275741667} + - component: {fileID: 275741669} + - component: {fileID: 275741668} m_Layer: 0 - m_Name: Individual - VisibleInMask 3 + m_Name: Chunk - None 3 m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &338958900 +--- !u!4 &275741667 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 338958899} + m_GameObject: {fileID: 275741666} serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 1892672332} + m_Father: {fileID: 1178893847} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!483693784 &338958901 +--- !u!483693784 &275741668 TilemapRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 338958899} + m_GameObject: {fileID: 275741666} m_Enabled: 1 m_CastShadows: 0 m_ReceiveShadows: 0 @@ -1902,27 +1992,27 @@ TilemapRenderer: m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} m_GlobalIlluminationMeshLod: 0 - m_SortingLayerID: 116359401 - m_SortingLayer: 1 - m_SortingOrder: 17 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 8 m_ChunkSize: {x: 32, y: 32, z: 32} m_ChunkCullingBounds: {x: 0, y: 0, z: 0} m_MaxChunkCount: 16 m_MaxFrameAge: 16 m_SortOrder: 0 - m_Mode: 1 + m_Mode: 0 m_DetectChunkCullingBounds: 0 - m_MaskInteraction: 1 ---- !u!1839735485 &338958902 + m_MaskInteraction: 0 +--- !u!1839735485 &275741669 Tilemap: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 338958899} + m_GameObject: {fileID: 275741666} m_Enabled: 1 m_Tiles: - - first: {x: -4, y: 3, z: 0} + - first: {x: -3, y: 3, z: 0} second: serializedVersion: 2 m_TileIndex: 0 @@ -1964,8 +2054,8 @@ Tilemap: m_TileObjectToInstantiateArray: [] m_AnimationFrameRate: 1 m_Color: {r: 1, g: 1, b: 1, a: 1} - m_Origin: {x: -11, y: 0, z: 0} - m_Size: {x: 11, y: 4, z: 1} + m_Origin: {x: -10, y: 0, z: 0} + m_Size: {x: 10, y: 4, z: 1} m_TileAnchor: {x: 0.5, y: 0.5, z: 0} m_TileOrientation: 0 m_TileOrientationMatrix: @@ -1985,7 +2075,7 @@ Tilemap: e31: 0 e32: 0 e33: 1 ---- !u!1 &346258721 +--- !u!1 &300172610 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -1993,38 +2083,91 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 346258722} - - component: {fileID: 346258724} - - component: {fileID: 346258723} + - component: {fileID: 300172612} + - component: {fileID: 300172611} m_Layer: 0 - m_Name: Chunk - None + m_Name: Grid m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &346258722 +--- !u!156049354 &300172611 +Grid: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 300172610} + m_Enabled: 1 + m_CellSize: {x: 1, y: 1, z: 0} + m_CellGap: {x: 0, y: 0, z: 0} + m_CellLayout: 0 + m_CellSwizzle: 0 +--- !u!4 &300172612 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 346258721} + m_GameObject: {fileID: 300172610} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: -4, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 151928561} + - {fileID: 1005097838} + - {fileID: 1826794934} + - {fileID: 1604267346} + - {fileID: 916491935} + - {fileID: 917257771} + - {fileID: 1283665430} + - {fileID: 1039568809} + - {fileID: 1193809356} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &310092825 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 310092826} + - component: {fileID: 310092828} + - component: {fileID: 310092827} + m_Layer: 0 + m_Name: Individual - None 3 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &310092826 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 310092825} serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 214346214} + m_Father: {fileID: 1892672332} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!483693784 &346258723 +--- !u!483693784 &310092827 TilemapRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 346258721} + m_GameObject: {fileID: 310092825} m_Enabled: 1 m_CastShadows: 0 m_ReceiveShadows: 0 @@ -2064,25 +2207,25 @@ TilemapRenderer: m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 116359401 m_SortingLayer: 1 - m_SortingOrder: 1 + m_SortingOrder: 18 m_ChunkSize: {x: 32, y: 32, z: 32} m_ChunkCullingBounds: {x: 0, y: 0, z: 0} m_MaxChunkCount: 16 m_MaxFrameAge: 16 m_SortOrder: 0 - m_Mode: 0 + m_Mode: 1 m_DetectChunkCullingBounds: 0 m_MaskInteraction: 0 ---- !u!1839735485 &346258724 +--- !u!1839735485 &310092828 Tilemap: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 346258721} + m_GameObject: {fileID: 310092825} m_Enabled: 1 m_Tiles: - - first: {x: -10, y: 3, z: 0} + - first: {x: -3, y: 3, z: 0} second: serializedVersion: 2 m_TileIndex: 0 @@ -2145,7 +2288,7 @@ Tilemap: e31: 0 e32: 0 e33: 1 ---- !u!1 &375823832 +--- !u!1 &337721037 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -2153,38 +2296,38 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 375823833} - - component: {fileID: 375823835} - - component: {fileID: 375823834} + - component: {fileID: 337721038} + - component: {fileID: 337721040} + - component: {fileID: 337721039} m_Layer: 0 - m_Name: Individual - None + m_Name: Individual - VisibleInMask 2 m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &375823833 +--- !u!4 &337721038 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 375823832} + m_GameObject: {fileID: 337721037} serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 1004531377} + m_Father: {fileID: 1892672332} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!483693784 &375823834 +--- !u!483693784 &337721039 TilemapRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 375823832} + m_GameObject: {fileID: 337721037} m_Enabled: 1 m_CastShadows: 0 m_ReceiveShadows: 0 @@ -2222,9 +2365,9 @@ TilemapRenderer: m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} m_GlobalIlluminationMeshLod: 0 - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 11 + m_SortingLayerID: 116359401 + m_SortingLayer: 1 + m_SortingOrder: 15 m_ChunkSize: {x: 32, y: 32, z: 32} m_ChunkCullingBounds: {x: 0, y: 0, z: 0} m_MaxChunkCount: 16 @@ -2232,17 +2375,17 @@ TilemapRenderer: m_SortOrder: 0 m_Mode: 1 m_DetectChunkCullingBounds: 0 - m_MaskInteraction: 0 ---- !u!1839735485 &375823835 + m_MaskInteraction: 1 +--- !u!1839735485 &337721040 Tilemap: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 375823832} + m_GameObject: {fileID: 337721037} m_Enabled: 1 m_Tiles: - - first: {x: -10, y: 3, z: 0} + - first: {x: -6, y: 3, z: 0} second: serializedVersion: 2 m_TileIndex: 0 @@ -2284,8 +2427,8 @@ Tilemap: m_TileObjectToInstantiateArray: [] m_AnimationFrameRate: 1 m_Color: {r: 1, g: 1, b: 1, a: 1} - m_Origin: {x: -10, y: 0, z: 0} - m_Size: {x: 10, y: 4, z: 1} + m_Origin: {x: -11, y: 0, z: 0} + m_Size: {x: 11, y: 4, z: 1} m_TileAnchor: {x: 0.5, y: 0.5, z: 0} m_TileOrientation: 0 m_TileOrientationMatrix: @@ -2305,7 +2448,7 @@ Tilemap: e31: 0 e32: 0 e33: 1 ---- !u!1 &404659909 +--- !u!1 &338958899 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -2313,38 +2456,38 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 404659910} - - component: {fileID: 404659912} - - component: {fileID: 404659911} + - component: {fileID: 338958900} + - component: {fileID: 338958902} + - component: {fileID: 338958901} m_Layer: 0 - m_Name: Individual - VisibleOutofMask + m_Name: Individual - VisibleInMask 3 m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &404659910 +--- !u!4 &338958900 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 404659909} + m_GameObject: {fileID: 338958899} serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 1004531377} + m_Father: {fileID: 1892672332} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!483693784 &404659911 +--- !u!483693784 &338958901 TilemapRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 404659909} + m_GameObject: {fileID: 338958899} m_Enabled: 1 m_CastShadows: 0 m_ReceiveShadows: 0 @@ -2382,9 +2525,9 @@ TilemapRenderer: m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} m_GlobalIlluminationMeshLod: 0 - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 12 + m_SortingLayerID: 116359401 + m_SortingLayer: 1 + m_SortingOrder: 17 m_ChunkSize: {x: 32, y: 32, z: 32} m_ChunkCullingBounds: {x: 0, y: 0, z: 0} m_MaxChunkCount: 16 @@ -2392,17 +2535,17 @@ TilemapRenderer: m_SortOrder: 0 m_Mode: 1 m_DetectChunkCullingBounds: 0 - m_MaskInteraction: 2 ---- !u!1839735485 &404659912 + m_MaskInteraction: 1 +--- !u!1839735485 &338958902 Tilemap: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 404659909} + m_GameObject: {fileID: 338958899} m_Enabled: 1 m_Tiles: - - first: {x: -9, y: 3, z: 0} + - first: {x: -4, y: 3, z: 0} second: serializedVersion: 2 m_TileIndex: 0 @@ -2444,8 +2587,8 @@ Tilemap: m_TileObjectToInstantiateArray: [] m_AnimationFrameRate: 1 m_Color: {r: 1, g: 1, b: 1, a: 1} - m_Origin: {x: -9, y: 0, z: 0} - m_Size: {x: 9, y: 4, z: 1} + m_Origin: {x: -11, y: 0, z: 0} + m_Size: {x: 11, y: 4, z: 1} m_TileAnchor: {x: 0.5, y: 0.5, z: 0} m_TileOrientation: 0 m_TileOrientationMatrix: @@ -2465,7 +2608,7 @@ Tilemap: e31: 0 e32: 0 e33: 1 ---- !u!1 &461063003 +--- !u!1 &346258721 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -2473,38 +2616,38 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 461063004} - - component: {fileID: 461063006} - - component: {fileID: 461063005} + - component: {fileID: 346258722} + - component: {fileID: 346258724} + - component: {fileID: 346258723} m_Layer: 0 - m_Name: Individual - VisibleOutofMask 3 + m_Name: Chunk - None m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &461063004 +--- !u!4 &346258722 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 461063003} + m_GameObject: {fileID: 346258721} serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 1892672332} + m_Father: {fileID: 214346214} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!483693784 &461063005 +--- !u!483693784 &346258723 TilemapRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 461063003} + m_GameObject: {fileID: 346258721} m_Enabled: 1 m_CastShadows: 0 m_ReceiveShadows: 0 @@ -2544,25 +2687,25 @@ TilemapRenderer: m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 116359401 m_SortingLayer: 1 - m_SortingOrder: 16 + m_SortingOrder: 1 m_ChunkSize: {x: 32, y: 32, z: 32} m_ChunkCullingBounds: {x: 0, y: 0, z: 0} m_MaxChunkCount: 16 m_MaxFrameAge: 16 m_SortOrder: 0 - m_Mode: 1 + m_Mode: 0 m_DetectChunkCullingBounds: 0 - m_MaskInteraction: 2 ---- !u!1839735485 &461063006 + m_MaskInteraction: 0 +--- !u!1839735485 &346258724 Tilemap: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 461063003} + m_GameObject: {fileID: 346258721} m_Enabled: 1 m_Tiles: - - first: {x: -5, y: 3, z: 0} + - first: {x: -10, y: 3, z: 0} second: serializedVersion: 2 m_TileIndex: 0 @@ -2604,8 +2747,8 @@ Tilemap: m_TileObjectToInstantiateArray: [] m_AnimationFrameRate: 1 m_Color: {r: 1, g: 1, b: 1, a: 1} - m_Origin: {x: -9, y: 0, z: 0} - m_Size: {x: 9, y: 4, z: 1} + m_Origin: {x: -10, y: 0, z: 0} + m_Size: {x: 10, y: 4, z: 1} m_TileAnchor: {x: 0.5, y: 0.5, z: 0} m_TileOrientation: 0 m_TileOrientationMatrix: @@ -2625,7 +2768,7 @@ Tilemap: e31: 0 e32: 0 e33: 1 ---- !u!1 &498093948 +--- !u!1 &375823832 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -2633,38 +2776,38 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 498093949} - - component: {fileID: 498093951} - - component: {fileID: 498093950} + - component: {fileID: 375823833} + - component: {fileID: 375823835} + - component: {fileID: 375823834} m_Layer: 0 - m_Name: Chunk - VisibleInMask + m_Name: Individual - None m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &498093949 +--- !u!4 &375823833 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 498093948} + m_GameObject: {fileID: 375823832} serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 214346214} + m_Father: {fileID: 1004531377} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!483693784 &498093950 +--- !u!483693784 &375823834 TilemapRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 498093948} + m_GameObject: {fileID: 375823832} m_Enabled: 1 m_CastShadows: 0 m_ReceiveShadows: 0 @@ -2702,27 +2845,27 @@ TilemapRenderer: m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} m_GlobalIlluminationMeshLod: 0 - m_SortingLayerID: 116359401 - m_SortingLayer: 1 - m_SortingOrder: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 11 m_ChunkSize: {x: 32, y: 32, z: 32} m_ChunkCullingBounds: {x: 0, y: 0, z: 0} m_MaxChunkCount: 16 m_MaxFrameAge: 16 m_SortOrder: 0 - m_Mode: 0 + m_Mode: 1 m_DetectChunkCullingBounds: 0 - m_MaskInteraction: 1 ---- !u!1839735485 &498093951 + m_MaskInteraction: 0 +--- !u!1839735485 &375823835 Tilemap: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 498093948} + m_GameObject: {fileID: 375823832} m_Enabled: 1 m_Tiles: - - first: {x: -11, y: 3, z: 0} + - first: {x: -10, y: 3, z: 0} second: serializedVersion: 2 m_TileIndex: 0 @@ -2764,8 +2907,8 @@ Tilemap: m_TileObjectToInstantiateArray: [] m_AnimationFrameRate: 1 m_Color: {r: 1, g: 1, b: 1, a: 1} - m_Origin: {x: -11, y: 0, z: 0} - m_Size: {x: 11, y: 4, z: 1} + m_Origin: {x: -10, y: 0, z: 0} + m_Size: {x: 10, y: 4, z: 1} m_TileAnchor: {x: 0.5, y: 0.5, z: 0} m_TileOrientation: 0 m_TileOrientationMatrix: @@ -2785,7 +2928,7 @@ Tilemap: e31: 0 e32: 0 e33: 1 ---- !u!1 &551400981 +--- !u!1 &404659909 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -2793,128 +2936,38 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 551400983} - - component: {fileID: 551400982} + - component: {fileID: 404659910} + - component: {fileID: 404659912} + - component: {fileID: 404659911} m_Layer: 0 - m_Name: SpriteMask + m_Name: Individual - VisibleOutofMask m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!331 &551400982 -SpriteMask: +--- !u!4 &404659910 +Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 551400981} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 0 - m_RayTraceProcedural: 0 - m_RayTracingAccelStructBuildFlagsOverride: 0 - m_RayTracingAccelStructBuildFlags: 1 - m_SmallMeshCulling: 1 - m_ForceMeshLod: -1 - m_MeshLodSelectionBias: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: 15d0c3709176029428a0da2f8cecf0b5, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_GlobalIlluminationMeshLod: 0 - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_Sprite: {fileID: 21300000, guid: 8e160a2a620644cd6afef9119dad1093, type: 3} - m_MaskAlphaCutoff: 0.2 - m_FrontSortingLayerID: 0 - m_BackSortingLayerID: 0 - m_FrontSortingLayer: 0 - m_BackSortingLayer: 0 - m_FrontSortingOrder: 0 - m_BackSortingOrder: 0 - m_IsCustomRangeActive: 0 - m_SpriteSortPoint: 0 - m_MaskSource: 0 ---- !u!4 &551400983 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 551400981} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 8.675, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &662210485 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 662210486} - - component: {fileID: 662210488} - - component: {fileID: 662210487} - m_Layer: 0 - m_Name: Chunk - VisibleOutofMask 3 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &662210486 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 662210485} + m_GameObject: {fileID: 404659909} serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 1178893847} + m_Father: {fileID: 1004531377} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!483693784 &662210487 +--- !u!483693784 &404659911 TilemapRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 662210485} + m_GameObject: {fileID: 404659909} m_Enabled: 1 m_CastShadows: 0 m_ReceiveShadows: 0 @@ -2954,25 +3007,25 @@ TilemapRenderer: m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 - m_SortingOrder: 6 + m_SortingOrder: 12 m_ChunkSize: {x: 32, y: 32, z: 32} m_ChunkCullingBounds: {x: 0, y: 0, z: 0} m_MaxChunkCount: 16 m_MaxFrameAge: 16 m_SortOrder: 0 - m_Mode: 0 + m_Mode: 1 m_DetectChunkCullingBounds: 0 m_MaskInteraction: 2 ---- !u!1839735485 &662210488 +--- !u!1839735485 &404659912 Tilemap: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 662210485} + m_GameObject: {fileID: 404659909} m_Enabled: 1 m_Tiles: - - first: {x: -5, y: 3, z: 0} + - first: {x: -9, y: 3, z: 0} second: serializedVersion: 2 m_TileIndex: 0 @@ -3035,7 +3088,7 @@ Tilemap: e31: 0 e32: 0 e33: 1 ---- !u!1 &667235944 +--- !u!1 &461063003 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -3043,38 +3096,38 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 667235945} - - component: {fileID: 667235947} - - component: {fileID: 667235946} + - component: {fileID: 461063004} + - component: {fileID: 461063006} + - component: {fileID: 461063005} m_Layer: 0 - m_Name: Individual - VisibleInMask 2 + m_Name: Individual - VisibleOutofMask 3 m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &667235945 +--- !u!4 &461063004 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 667235944} + m_GameObject: {fileID: 461063003} serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 1004531377} + m_Father: {fileID: 1892672332} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!483693784 &667235946 +--- !u!483693784 &461063005 TilemapRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 667235944} + m_GameObject: {fileID: 461063003} m_Enabled: 1 m_CastShadows: 0 m_ReceiveShadows: 0 @@ -3112,9 +3165,9 @@ TilemapRenderer: m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} m_GlobalIlluminationMeshLod: 0 - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 15 + m_SortingLayerID: 116359401 + m_SortingLayer: 1 + m_SortingOrder: 16 m_ChunkSize: {x: 32, y: 32, z: 32} m_ChunkCullingBounds: {x: 0, y: 0, z: 0} m_MaxChunkCount: 16 @@ -3122,17 +3175,17 @@ TilemapRenderer: m_SortOrder: 0 m_Mode: 1 m_DetectChunkCullingBounds: 0 - m_MaskInteraction: 1 ---- !u!1839735485 &667235947 + m_MaskInteraction: 2 +--- !u!1839735485 &461063006 Tilemap: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 667235944} + m_GameObject: {fileID: 461063003} m_Enabled: 1 m_Tiles: - - first: {x: -6, y: 3, z: 0} + - first: {x: -5, y: 3, z: 0} second: serializedVersion: 2 m_TileIndex: 0 @@ -3174,8 +3227,8 @@ Tilemap: m_TileObjectToInstantiateArray: [] m_AnimationFrameRate: 1 m_Color: {r: 1, g: 1, b: 1, a: 1} - m_Origin: {x: -11, y: 0, z: 0} - m_Size: {x: 11, y: 4, z: 1} + m_Origin: {x: -9, y: 0, z: 0} + m_Size: {x: 9, y: 4, z: 1} m_TileAnchor: {x: 0.5, y: 0.5, z: 0} m_TileOrientation: 0 m_TileOrientationMatrix: @@ -3195,7 +3248,7 @@ Tilemap: e31: 0 e32: 0 e33: 1 ---- !u!1 &669558725 +--- !u!1 &476499347 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -3203,38 +3256,38 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 669558726} - - component: {fileID: 669558728} - - component: {fileID: 669558727} + - component: {fileID: 476499348} + - component: {fileID: 476499350} + - component: {fileID: 476499349} m_Layer: 0 - m_Name: SRP - VisibleOutofMask + m_Name: Chunk - Shader - VisibleInMask m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &669558726 +--- !u!4 &476499348 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 669558725} + m_GameObject: {fileID: 476499347} serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 1565511678} + m_Father: {fileID: 205137524} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!483693784 &669558727 +--- !u!483693784 &476499349 TilemapRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 669558725} + m_GameObject: {fileID: 476499347} m_Enabled: 1 m_CastShadows: 0 m_ReceiveShadows: 0 @@ -3253,7 +3306,7 @@ TilemapRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, type: 2} + - {fileID: 2100000, guid: 978bb63e0ef6dca4ca9b8da87c3f7f75, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -3274,25 +3327,25 @@ TilemapRenderer: m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 116359401 m_SortingLayer: 1 - m_SortingOrder: 22 + m_SortingOrder: 0 m_ChunkSize: {x: 32, y: 32, z: 32} m_ChunkCullingBounds: {x: 0, y: 0, z: 0} m_MaxChunkCount: 16 m_MaxFrameAge: 16 m_SortOrder: 0 - m_Mode: 2 + m_Mode: 0 m_DetectChunkCullingBounds: 0 - m_MaskInteraction: 2 ---- !u!1839735485 &669558728 + m_MaskInteraction: 1 +--- !u!1839735485 &476499350 Tilemap: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 669558725} + m_GameObject: {fileID: 476499347} m_Enabled: 1 m_Tiles: - - first: {x: -9, y: 3, z: 0} + - first: {x: -11, y: 3, z: 0} second: serializedVersion: 2 m_TileIndex: 0 @@ -3334,8 +3387,8 @@ Tilemap: m_TileObjectToInstantiateArray: [] m_AnimationFrameRate: 1 m_Color: {r: 1, g: 1, b: 1, a: 1} - m_Origin: {x: -9, y: 0, z: 0} - m_Size: {x: 9, y: 4, z: 1} + m_Origin: {x: -11, y: 0, z: 0} + m_Size: {x: 11, y: 4, z: 1} m_TileAnchor: {x: 0.5, y: 0.5, z: 0} m_TileOrientation: 0 m_TileOrientationMatrix: @@ -3355,7 +3408,7 @@ Tilemap: e31: 0 e32: 0 e33: 1 ---- !u!1 &691802664 +--- !u!1 &498093948 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -3363,23 +3416,23 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 691802665} - - component: {fileID: 691802667} - - component: {fileID: 691802666} + - component: {fileID: 498093949} + - component: {fileID: 498093951} + - component: {fileID: 498093950} m_Layer: 0 - m_Name: Chunk - VisibleOutofMask + m_Name: Chunk - VisibleInMask m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &691802665 +--- !u!4 &498093949 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 691802664} + m_GameObject: {fileID: 498093948} serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -3388,13 +3441,13 @@ Transform: m_Children: [] m_Father: {fileID: 214346214} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!483693784 &691802666 +--- !u!483693784 &498093950 TilemapRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 691802664} + m_GameObject: {fileID: 498093948} m_Enabled: 1 m_CastShadows: 0 m_ReceiveShadows: 0 @@ -3434,7 +3487,7 @@ TilemapRenderer: m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 116359401 m_SortingLayer: 1 - m_SortingOrder: 2 + m_SortingOrder: 0 m_ChunkSize: {x: 32, y: 32, z: 32} m_ChunkCullingBounds: {x: 0, y: 0, z: 0} m_MaxChunkCount: 16 @@ -3442,17 +3495,17 @@ TilemapRenderer: m_SortOrder: 0 m_Mode: 0 m_DetectChunkCullingBounds: 0 - m_MaskInteraction: 2 ---- !u!1839735485 &691802667 + m_MaskInteraction: 1 +--- !u!1839735485 &498093951 Tilemap: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 691802664} + m_GameObject: {fileID: 498093948} m_Enabled: 1 m_Tiles: - - first: {x: -9, y: 3, z: 0} + - first: {x: -11, y: 3, z: 0} second: serializedVersion: 2 m_TileIndex: 0 @@ -3494,8 +3547,8 @@ Tilemap: m_TileObjectToInstantiateArray: [] m_AnimationFrameRate: 1 m_Color: {r: 1, g: 1, b: 1, a: 1} - m_Origin: {x: -9, y: 0, z: 0} - m_Size: {x: 9, y: 4, z: 1} + m_Origin: {x: -11, y: 0, z: 0} + m_Size: {x: 11, y: 4, z: 1} m_TileAnchor: {x: 0.5, y: 0.5, z: 0} m_TileOrientation: 0 m_TileOrientationMatrix: @@ -3515,7 +3568,7 @@ Tilemap: e31: 0 e32: 0 e33: 1 ---- !u!1 &765619340 +--- !u!1 &551400981 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -3523,46 +3576,30 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 765619341} - - component: {fileID: 765619343} - - component: {fileID: 765619342} + - component: {fileID: 551400983} + - component: {fileID: 551400982} m_Layer: 0 - m_Name: Chunk - None 2 + m_Name: SpriteMask m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &765619341 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 765619340} - serializedVersion: 2 - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 214346214} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!483693784 &765619342 -TilemapRenderer: +--- !u!331 &551400982 +SpriteMask: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 765619340} + m_GameObject: {fileID: 551400981} m_Enabled: 1 - m_CastShadows: 0 - m_ReceiveShadows: 0 + m_CastShadows: 1 + m_ReceiveShadows: 1 m_DynamicOccludee: 1 m_StaticShadowCaster: 0 m_MotionVectors: 1 - m_LightProbeUsage: 0 - m_ReflectionProbeUsage: 0 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 m_RayTracingMode: 0 m_RayTraceProcedural: 0 m_RayTracingAccelStructBuildFlagsOverride: 0 @@ -3573,7 +3610,7 @@ TilemapRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, type: 2} + - {fileID: 2100000, guid: 15d0c3709176029428a0da2f8cecf0b5, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -3586,96 +3623,42 @@ TilemapRenderer: m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 0 + m_SelectedEditorRenderState: 3 m_MinimumChartSize: 4 m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} m_GlobalIlluminationMeshLod: 0 - m_SortingLayerID: 116359401 - m_SortingLayer: 1 - m_SortingOrder: 3 - m_ChunkSize: {x: 32, y: 32, z: 32} - m_ChunkCullingBounds: {x: 0, y: 0, z: 0} - m_MaxChunkCount: 16 - m_MaxFrameAge: 16 - m_SortOrder: 0 - m_Mode: 0 - m_DetectChunkCullingBounds: 0 - m_MaskInteraction: 0 ---- !u!1839735485 &765619343 -Tilemap: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 765619340} - m_Enabled: 1 - m_Tiles: - - first: {x: -8, y: 3, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 0 - m_TileSpriteIndex: 0 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - m_AnimatedTiles: {} - m_TileAssetArray: - - m_RefCount: 1 - m_Data: {fileID: 11400000, guid: 898ab856ab374ef428ab13e10c948a0d, type: 2} - m_TileSpriteArray: - - m_RefCount: 1 - m_Data: {fileID: 21300000, guid: 0a451cb9697c39044815bbd2d048826c, type: 3} - m_TileMatrixArray: - - m_RefCount: 1 - m_Data: - e00: 1 - e01: 0 - e02: 0 - e03: 0 - e10: 0 - e11: 1 - e12: 0 - e13: 0 - e20: 0 - e21: 0 - e22: 1 - e23: 0 - e30: 0 - e31: 0 - e32: 0 - e33: 1 - m_TileColorArray: - - m_RefCount: 1 - m_Data: {r: 0.94482756, g: 1, b: 0, a: 1} - m_TileObjectToInstantiateArray: [] - m_AnimationFrameRate: 1 - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_Origin: {x: -10, y: 0, z: 0} - m_Size: {x: 10, y: 4, z: 1} - m_TileAnchor: {x: 0.5, y: 0.5, z: 0} - m_TileOrientation: 0 - m_TileOrientationMatrix: - e00: 1 - e01: 0 - e02: 0 - e03: 0 - e10: 0 - e11: 1 - e12: 0 - e13: 0 - e20: 0 - e21: 0 - e22: 1 - e23: 0 - e30: 0 - e31: 0 - e32: 0 - e33: 1 ---- !u!1 &776243399 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: 21300000, guid: 8e160a2a620644cd6afef9119dad1093, type: 3} + m_MaskAlphaCutoff: 0.2 + m_FrontSortingLayerID: 0 + m_BackSortingLayerID: 0 + m_FrontSortingLayer: 0 + m_BackSortingLayer: 0 + m_FrontSortingOrder: 0 + m_BackSortingOrder: 0 + m_IsCustomRangeActive: 0 + m_SpriteSortPoint: 0 + m_MaskSource: 0 +--- !u!4 &551400983 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 551400981} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 8.675, y: 5.5, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &662210485 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -3683,38 +3666,38 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 776243400} - - component: {fileID: 776243402} - - component: {fileID: 776243401} + - component: {fileID: 662210486} + - component: {fileID: 662210488} + - component: {fileID: 662210487} m_Layer: 0 - m_Name: Individual - VisibleOutofMask + m_Name: Chunk - VisibleOutofMask 3 m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &776243400 +--- !u!4 &662210486 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 776243399} + m_GameObject: {fileID: 662210485} serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 1892672332} + m_Father: {fileID: 1178893847} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!483693784 &776243401 +--- !u!483693784 &662210487 TilemapRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 776243399} + m_GameObject: {fileID: 662210485} m_Enabled: 1 m_CastShadows: 0 m_ReceiveShadows: 0 @@ -3752,27 +3735,27 @@ TilemapRenderer: m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} m_GlobalIlluminationMeshLod: 0 - m_SortingLayerID: 116359401 - m_SortingLayer: 1 - m_SortingOrder: 12 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 6 m_ChunkSize: {x: 32, y: 32, z: 32} m_ChunkCullingBounds: {x: 0, y: 0, z: 0} m_MaxChunkCount: 16 m_MaxFrameAge: 16 m_SortOrder: 0 - m_Mode: 1 + m_Mode: 0 m_DetectChunkCullingBounds: 0 m_MaskInteraction: 2 ---- !u!1839735485 &776243402 +--- !u!1839735485 &662210488 Tilemap: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 776243399} + m_GameObject: {fileID: 662210485} m_Enabled: 1 m_Tiles: - - first: {x: -9, y: 3, z: 0} + - first: {x: -5, y: 3, z: 0} second: serializedVersion: 2 m_TileIndex: 0 @@ -3835,7 +3818,7 @@ Tilemap: e31: 0 e32: 0 e33: 1 ---- !u!1 &845277302 +--- !u!1 &667235944 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -3843,38 +3826,38 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 845277303} - - component: {fileID: 845277305} - - component: {fileID: 845277304} + - component: {fileID: 667235945} + - component: {fileID: 667235947} + - component: {fileID: 667235946} m_Layer: 0 - m_Name: Chunk - VisibleInMask 2 + m_Name: Individual - VisibleInMask 2 m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &845277303 +--- !u!4 &667235945 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 845277302} + m_GameObject: {fileID: 667235944} serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 214346214} + m_Father: {fileID: 1004531377} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!483693784 &845277304 +--- !u!483693784 &667235946 TilemapRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 845277302} + m_GameObject: {fileID: 667235944} m_Enabled: 1 m_CastShadows: 0 m_ReceiveShadows: 0 @@ -3912,24 +3895,24 @@ TilemapRenderer: m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} m_GlobalIlluminationMeshLod: 0 - m_SortingLayerID: 116359401 - m_SortingLayer: 1 - m_SortingOrder: 5 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 15 m_ChunkSize: {x: 32, y: 32, z: 32} m_ChunkCullingBounds: {x: 0, y: 0, z: 0} m_MaxChunkCount: 16 m_MaxFrameAge: 16 m_SortOrder: 0 - m_Mode: 0 + m_Mode: 1 m_DetectChunkCullingBounds: 0 m_MaskInteraction: 1 ---- !u!1839735485 &845277305 +--- !u!1839735485 &667235947 Tilemap: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 845277302} + m_GameObject: {fileID: 667235944} m_Enabled: 1 m_Tiles: - first: {x: -6, y: 3, z: 0} @@ -3995,7 +3978,7 @@ Tilemap: e31: 0 e32: 0 e33: 1 ---- !u!1 &869160092 +--- !u!1 &669558725 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -4003,38 +3986,38 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 869160093} - - component: {fileID: 869160095} - - component: {fileID: 869160094} + - component: {fileID: 669558726} + - component: {fileID: 669558728} + - component: {fileID: 669558727} m_Layer: 0 - m_Name: Individual - None + m_Name: SRP - VisibleOutofMask m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &869160093 +--- !u!4 &669558726 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 869160092} + m_GameObject: {fileID: 669558725} serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 1892672332} + m_Father: {fileID: 1565511678} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!483693784 &869160094 +--- !u!483693784 &669558727 TilemapRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 869160092} + m_GameObject: {fileID: 669558725} m_Enabled: 1 m_CastShadows: 0 m_ReceiveShadows: 0 @@ -4074,25 +4057,25 @@ TilemapRenderer: m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 116359401 m_SortingLayer: 1 - m_SortingOrder: 11 + m_SortingOrder: 22 m_ChunkSize: {x: 32, y: 32, z: 32} m_ChunkCullingBounds: {x: 0, y: 0, z: 0} m_MaxChunkCount: 16 m_MaxFrameAge: 16 m_SortOrder: 0 - m_Mode: 1 + m_Mode: 2 m_DetectChunkCullingBounds: 0 - m_MaskInteraction: 0 ---- !u!1839735485 &869160095 + m_MaskInteraction: 2 +--- !u!1839735485 &669558728 Tilemap: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 869160092} + m_GameObject: {fileID: 669558725} m_Enabled: 1 m_Tiles: - - first: {x: -10, y: 3, z: 0} + - first: {x: -9, y: 3, z: 0} second: serializedVersion: 2 m_TileIndex: 0 @@ -4134,8 +4117,8 @@ Tilemap: m_TileObjectToInstantiateArray: [] m_AnimationFrameRate: 1 m_Color: {r: 1, g: 1, b: 1, a: 1} - m_Origin: {x: -10, y: 0, z: 0} - m_Size: {x: 10, y: 4, z: 1} + m_Origin: {x: -9, y: 0, z: 0} + m_Size: {x: 9, y: 4, z: 1} m_TileAnchor: {x: 0.5, y: 0.5, z: 0} m_TileOrientation: 0 m_TileOrientationMatrix: @@ -4155,7 +4138,7 @@ Tilemap: e31: 0 e32: 0 e33: 1 ---- !u!1 &894406764 +--- !u!1 &691802664 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -4163,9 +4146,9 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 894406765} - - component: {fileID: 894406767} - - component: {fileID: 894406766} + - component: {fileID: 691802665} + - component: {fileID: 691802667} + - component: {fileID: 691802666} m_Layer: 0 m_Name: Chunk - VisibleOutofMask m_TagString: Untagged @@ -4173,28 +4156,28 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &894406765 +--- !u!4 &691802665 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 894406764} + m_GameObject: {fileID: 691802664} serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 1178893847} + m_Father: {fileID: 214346214} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!483693784 &894406766 +--- !u!483693784 &691802666 TilemapRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 894406764} + m_GameObject: {fileID: 691802664} m_Enabled: 1 m_CastShadows: 0 m_ReceiveShadows: 0 @@ -4232,8 +4215,8 @@ TilemapRenderer: m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} m_GlobalIlluminationMeshLod: 0 - m_SortingLayerID: 0 - m_SortingLayer: 0 + m_SortingLayerID: 116359401 + m_SortingLayer: 1 m_SortingOrder: 2 m_ChunkSize: {x: 32, y: 32, z: 32} m_ChunkCullingBounds: {x: 0, y: 0, z: 0} @@ -4243,13 +4226,13 @@ TilemapRenderer: m_Mode: 0 m_DetectChunkCullingBounds: 0 m_MaskInteraction: 2 ---- !u!1839735485 &894406767 +--- !u!1839735485 &691802667 Tilemap: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 894406764} + m_GameObject: {fileID: 691802664} m_Enabled: 1 m_Tiles: - first: {x: -9, y: 3, z: 0} @@ -4315,7 +4298,7 @@ Tilemap: e31: 0 e32: 0 e33: 1 ---- !u!1 &913442844 +--- !u!1 &765619340 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -4323,38 +4306,38 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 913442845} - - component: {fileID: 913442847} - - component: {fileID: 913442846} + - component: {fileID: 765619341} + - component: {fileID: 765619343} + - component: {fileID: 765619342} m_Layer: 0 - m_Name: SRP - None 2 + m_Name: Chunk - None 2 m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &913442845 +--- !u!4 &765619341 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 913442844} + m_GameObject: {fileID: 765619340} serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 1565511678} + m_Father: {fileID: 214346214} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!483693784 &913442846 +--- !u!483693784 &765619342 TilemapRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 913442844} + m_GameObject: {fileID: 765619340} m_Enabled: 1 m_CastShadows: 0 m_ReceiveShadows: 0 @@ -4394,22 +4377,22 @@ TilemapRenderer: m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 116359401 m_SortingLayer: 1 - m_SortingOrder: 23 + m_SortingOrder: 3 m_ChunkSize: {x: 32, y: 32, z: 32} m_ChunkCullingBounds: {x: 0, y: 0, z: 0} m_MaxChunkCount: 16 m_MaxFrameAge: 16 m_SortOrder: 0 - m_Mode: 2 + m_Mode: 0 m_DetectChunkCullingBounds: 0 m_MaskInteraction: 0 ---- !u!1839735485 &913442847 +--- !u!1839735485 &765619343 Tilemap: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 913442844} + m_GameObject: {fileID: 765619340} m_Enabled: 1 m_Tiles: - first: {x: -8, y: 3, z: 0} @@ -4475,7 +4458,7 @@ Tilemap: e31: 0 e32: 0 e33: 1 ---- !u!1 &916491934 +--- !u!1 &776243399 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -4483,38 +4466,38 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 916491935} - - component: {fileID: 916491937} - - component: {fileID: 916491936} - m_Layer: 0 - m_Name: SRP - VisibleOutofMask 2 + - component: {fileID: 776243400} + - component: {fileID: 776243402} + - component: {fileID: 776243401} + m_Layer: 0 + m_Name: Individual - VisibleOutofMask m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &916491935 +--- !u!4 &776243400 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 916491934} + m_GameObject: {fileID: 776243399} serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 300172612} + m_Father: {fileID: 1892672332} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!483693784 &916491936 +--- !u!483693784 &776243401 TilemapRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 916491934} + m_GameObject: {fileID: 776243399} m_Enabled: 1 m_CastShadows: 0 m_ReceiveShadows: 0 @@ -4552,27 +4535,27 @@ TilemapRenderer: m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} m_GlobalIlluminationMeshLod: 0 - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 24 + m_SortingLayerID: 116359401 + m_SortingLayer: 1 + m_SortingOrder: 12 m_ChunkSize: {x: 32, y: 32, z: 32} m_ChunkCullingBounds: {x: 0, y: 0, z: 0} m_MaxChunkCount: 16 m_MaxFrameAge: 16 m_SortOrder: 0 - m_Mode: 2 + m_Mode: 1 m_DetectChunkCullingBounds: 0 m_MaskInteraction: 2 ---- !u!1839735485 &916491937 +--- !u!1839735485 &776243402 Tilemap: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 916491934} + m_GameObject: {fileID: 776243399} m_Enabled: 1 m_Tiles: - - first: {x: -7, y: 3, z: 0} + - first: {x: -9, y: 3, z: 0} second: serializedVersion: 2 m_TileIndex: 0 @@ -4635,7 +4618,7 @@ Tilemap: e31: 0 e32: 0 e33: 1 ---- !u!1 &917257770 +--- !u!1 &845277302 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -4643,38 +4626,38 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 917257771} - - component: {fileID: 917257773} - - component: {fileID: 917257772} + - component: {fileID: 845277303} + - component: {fileID: 845277305} + - component: {fileID: 845277304} m_Layer: 0 - m_Name: SRP - VisibleInMask 2 + m_Name: Chunk - VisibleInMask 2 m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &917257771 +--- !u!4 &845277303 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 917257770} + m_GameObject: {fileID: 845277302} serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 300172612} + m_Father: {fileID: 214346214} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!483693784 &917257772 +--- !u!483693784 &845277304 TilemapRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 917257770} + m_GameObject: {fileID: 845277302} m_Enabled: 1 m_CastShadows: 0 m_ReceiveShadows: 0 @@ -4712,24 +4695,24 @@ TilemapRenderer: m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} m_GlobalIlluminationMeshLod: 0 - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 25 + m_SortingLayerID: 116359401 + m_SortingLayer: 1 + m_SortingOrder: 5 m_ChunkSize: {x: 32, y: 32, z: 32} m_ChunkCullingBounds: {x: 0, y: 0, z: 0} m_MaxChunkCount: 16 m_MaxFrameAge: 16 m_SortOrder: 0 - m_Mode: 2 + m_Mode: 0 m_DetectChunkCullingBounds: 0 m_MaskInteraction: 1 ---- !u!1839735485 &917257773 +--- !u!1839735485 &845277305 Tilemap: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 917257770} + m_GameObject: {fileID: 845277302} m_Enabled: 1 m_Tiles: - first: {x: -6, y: 3, z: 0} @@ -4795,7 +4778,7 @@ Tilemap: e31: 0 e32: 0 e33: 1 ---- !u!1 &961739749 +--- !u!1 &864839691 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -4803,170 +4786,52 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 961739753} - - component: {fileID: 961739752} - - component: {fileID: 961739751} - - component: {fileID: 961739750} - - component: {fileID: 961739754} + - component: {fileID: 864839693} + - component: {fileID: 864839692} m_Layer: 0 - m_Name: Main Camera - m_TagString: MainCamera + m_Name: Grid + m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!114 &961739750 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 961739749} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: a79441f348de89743a2939f4d699eac1, type: 3} - m_Name: - m_EditorClassIdentifier: - m_RenderShadows: 1 - m_RequiresDepthTextureOption: 2 - m_RequiresOpaqueTextureOption: 2 - m_CameraType: 0 - m_Cameras: [] - m_RendererIndex: -1 - m_VolumeLayerMask: - serializedVersion: 2 - m_Bits: 1 - m_VolumeTrigger: {fileID: 0} - m_VolumeFrameworkUpdateModeOption: 2 - m_RenderPostProcessing: 0 - m_Antialiasing: 0 - m_AntialiasingQuality: 2 - m_StopNaN: 0 - m_Dithering: 0 - m_ClearDepth: 1 - m_AllowXRRendering: 1 - m_AllowHDROutput: 1 - m_UseScreenCoordOverride: 0 - m_ScreenSizeOverride: {x: 0, y: 0, z: 0, w: 0} - m_ScreenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0} - m_RequiresDepthTexture: 0 - m_RequiresColorTexture: 0 - m_TaaSettings: - m_Quality: 3 - m_FrameInfluence: 0.1 - m_JitterScale: 1 - m_MipBias: 0 - m_VarianceClampScale: 0.9 - m_ContrastAdaptiveSharpening: 0 - m_Version: 2 ---- !u!81 &961739751 -AudioListener: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 961739749} - m_Enabled: 1 ---- !u!20 &961739752 -Camera: +--- !u!156049354 &864839692 +Grid: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 961739749} + m_GameObject: {fileID: 864839691} m_Enabled: 1 - serializedVersion: 2 - m_ClearFlags: 2 - m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} - m_projectionMatrixMode: 1 - m_GateFitMode: 2 - m_FOVAxisMode: 0 - m_Iso: 200 - m_ShutterSpeed: 0.005 - m_Aperture: 16 - m_FocusDistance: 10 - m_FocalLength: 50 - m_BladeCount: 5 - m_Curvature: {x: 2, y: 11} - m_BarrelClipping: 0.25 - m_Anamorphism: 0 - m_SensorSize: {x: 36, y: 24} - m_LensShift: {x: 0, y: 0} - m_NormalizedViewPortRect: - serializedVersion: 2 - x: 0 - y: 0 - width: 1 - height: 1 - near clip plane: 0.3 - far clip plane: 1000 - field of view: 60 - orthographic: 1 - orthographic size: 6 - m_Depth: -1 - m_CullingMask: - serializedVersion: 2 - m_Bits: 4294967295 - m_RenderingPath: -1 - m_TargetTexture: {fileID: 0} - m_TargetDisplay: 0 - m_TargetEye: 3 - m_HDR: 1 - m_AllowMSAA: 1 - m_AllowDynamicResolution: 0 - m_ForceIntoRT: 0 - m_OcclusionCulling: 1 - m_StereoConvergence: 10 - m_StereoSeparation: 0.022 ---- !u!4 &961739753 + m_CellSize: {x: 1, y: 1, z: 0} + m_CellGap: {x: 0, y: 0, z: 0} + m_CellLayout: 0 + m_CellSwizzle: 0 +--- !u!4 &864839693 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 961739749} + m_GameObject: {fileID: 864839691} serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: -1.5, y: 1, z: -10} + m_LocalPosition: {x: 0, y: -6, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: [] + m_Children: + - {fileID: 47282884} + - {fileID: 1593276511} + - {fileID: 1104107610} + - {fileID: 1762039872} + - {fileID: 1734833073} + - {fileID: 1797162802} + - {fileID: 990018667} + - {fileID: 1760346236} + - {fileID: 1058434175} m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &961739754 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 961739749} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 73231aa468d81ea49bc3d914080de185, type: 3} - m_Name: - m_EditorClassIdentifier: - ImageComparisonSettings: - TargetWidth: 1280 - TargetHeight: 720 - TargetMSAASamples: 1 - PerPixelCorrectnessThreshold: 0.001 - PerPixelGammaThreshold: 0.003921569 - PerPixelAlphaThreshold: 0.003921569 - RMSEThreshold: 0 - AverageCorrectnessThreshold: 0.005 - IncorrectPixelsThreshold: 0.0000038146973 - UseHDR: 0 - UseBackBuffer: 0 - ImageResolution: 2 - ActiveImageTests: 1 - ActivePixelTests: -1 - WaitFrames: 0 - XRCompatible: 0 - gpuDrivenCompatible: 1 - CheckMemoryAllocation: 0 - renderBackendCompatibility: 2 - SetBackBufferResolution: 0 ---- !u!1 &986076899 +--- !u!1 &869160092 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -4974,38 +4839,38 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 986076900} - - component: {fileID: 986076902} - - component: {fileID: 986076901} + - component: {fileID: 869160093} + - component: {fileID: 869160095} + - component: {fileID: 869160094} m_Layer: 0 - m_Name: Chunk - VisibleInMask 2 + m_Name: Individual - None m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &986076900 +--- !u!4 &869160093 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 986076899} + m_GameObject: {fileID: 869160092} serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 1178893847} + m_Father: {fileID: 1892672332} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!483693784 &986076901 +--- !u!483693784 &869160094 TilemapRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 986076899} + m_GameObject: {fileID: 869160092} m_Enabled: 1 m_CastShadows: 0 m_ReceiveShadows: 0 @@ -5043,27 +4908,27 @@ TilemapRenderer: m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} m_GlobalIlluminationMeshLod: 0 - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 5 + m_SortingLayerID: 116359401 + m_SortingLayer: 1 + m_SortingOrder: 11 m_ChunkSize: {x: 32, y: 32, z: 32} m_ChunkCullingBounds: {x: 0, y: 0, z: 0} m_MaxChunkCount: 16 m_MaxFrameAge: 16 m_SortOrder: 0 - m_Mode: 0 + m_Mode: 1 m_DetectChunkCullingBounds: 0 - m_MaskInteraction: 1 ---- !u!1839735485 &986076902 + m_MaskInteraction: 0 +--- !u!1839735485 &869160095 Tilemap: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 986076899} + m_GameObject: {fileID: 869160092} m_Enabled: 1 m_Tiles: - - first: {x: -6, y: 3, z: 0} + - first: {x: -10, y: 3, z: 0} second: serializedVersion: 2 m_TileIndex: 0 @@ -5105,8 +4970,8 @@ Tilemap: m_TileObjectToInstantiateArray: [] m_AnimationFrameRate: 1 m_Color: {r: 1, g: 1, b: 1, a: 1} - m_Origin: {x: -11, y: 0, z: 0} - m_Size: {x: 11, y: 4, z: 1} + m_Origin: {x: -10, y: 0, z: 0} + m_Size: {x: 10, y: 4, z: 1} m_TileAnchor: {x: 0.5, y: 0.5, z: 0} m_TileOrientation: 0 m_TileOrientationMatrix: @@ -5126,7 +4991,7 @@ Tilemap: e31: 0 e32: 0 e33: 1 ---- !u!1 &1004531375 +--- !u!1 &894406764 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -5134,52 +4999,3156 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1004531377} - - component: {fileID: 1004531376} + - component: {fileID: 894406765} + - component: {fileID: 894406767} + - component: {fileID: 894406766} m_Layer: 0 - m_Name: Grid + m_Name: Chunk - VisibleOutofMask m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!156049354 &1004531376 -Grid: +--- !u!4 &894406765 +Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1004531375} + m_GameObject: {fileID: 894406764} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1178893847} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!483693784 &894406766 +TilemapRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 894406764} m_Enabled: 1 - m_CellSize: {x: 1, y: 1, z: 0} - m_CellGap: {x: 0, y: 0, z: 0} - m_CellLayout: 0 - m_CellSwizzle: 0 ---- !u!4 &1004531377 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 2 + m_ChunkSize: {x: 32, y: 32, z: 32} + m_ChunkCullingBounds: {x: 0, y: 0, z: 0} + m_MaxChunkCount: 16 + m_MaxFrameAge: 16 + m_SortOrder: 0 + m_Mode: 0 + m_DetectChunkCullingBounds: 0 + m_MaskInteraction: 2 +--- !u!1839735485 &894406767 +Tilemap: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 894406764} + m_Enabled: 1 + m_Tiles: + - first: {x: -9, y: 3, z: 0} + second: + serializedVersion: 2 + m_TileIndex: 0 + m_TileSpriteIndex: 0 + m_TileMatrixIndex: 0 + m_TileColorIndex: 0 + m_TileObjectToInstantiateIndex: 65535 + dummyAlignment: 0 + m_AllTileFlags: 1073741825 + m_AnimatedTiles: {} + m_TileAssetArray: + - m_RefCount: 1 + m_Data: {fileID: 11400000, guid: 898ab856ab374ef428ab13e10c948a0d, type: 2} + m_TileSpriteArray: + - m_RefCount: 1 + m_Data: {fileID: 21300000, guid: 0a451cb9697c39044815bbd2d048826c, type: 3} + m_TileMatrixArray: + - m_RefCount: 1 + m_Data: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_TileColorArray: + - m_RefCount: 1 + m_Data: {r: 0.94482756, g: 1, b: 0, a: 1} + m_TileObjectToInstantiateArray: [] + m_AnimationFrameRate: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Origin: {x: -9, y: 0, z: 0} + m_Size: {x: 9, y: 4, z: 1} + m_TileAnchor: {x: 0.5, y: 0.5, z: 0} + m_TileOrientation: 0 + m_TileOrientationMatrix: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 +--- !u!1 &913442844 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 913442845} + - component: {fileID: 913442847} + - component: {fileID: 913442846} + m_Layer: 0 + m_Name: SRP - None 2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &913442845 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1004531375} + m_GameObject: {fileID: 913442844} serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: -2, z: 0} + 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: 1671714893} - - {fileID: 375823833} - - {fileID: 404659910} - - {fileID: 1559275875} - - {fileID: 1144401961} - - {fileID: 667235945} - - {fileID: 1519488781} - - {fileID: 1758990594} - - {fileID: 4449893} - m_Father: {fileID: 0} + m_Children: [] + m_Father: {fileID: 1565511678} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1005097837 +--- !u!483693784 &913442846 +TilemapRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 913442844} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 116359401 + m_SortingLayer: 1 + m_SortingOrder: 23 + m_ChunkSize: {x: 32, y: 32, z: 32} + m_ChunkCullingBounds: {x: 0, y: 0, z: 0} + m_MaxChunkCount: 16 + m_MaxFrameAge: 16 + m_SortOrder: 0 + m_Mode: 2 + m_DetectChunkCullingBounds: 0 + m_MaskInteraction: 0 +--- !u!1839735485 &913442847 +Tilemap: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 913442844} + m_Enabled: 1 + m_Tiles: + - first: {x: -8, y: 3, z: 0} + second: + serializedVersion: 2 + m_TileIndex: 0 + m_TileSpriteIndex: 0 + m_TileMatrixIndex: 0 + m_TileColorIndex: 0 + m_TileObjectToInstantiateIndex: 65535 + dummyAlignment: 0 + m_AllTileFlags: 1073741825 + m_AnimatedTiles: {} + m_TileAssetArray: + - m_RefCount: 1 + m_Data: {fileID: 11400000, guid: 898ab856ab374ef428ab13e10c948a0d, type: 2} + m_TileSpriteArray: + - m_RefCount: 1 + m_Data: {fileID: 21300000, guid: 0a451cb9697c39044815bbd2d048826c, type: 3} + m_TileMatrixArray: + - m_RefCount: 1 + m_Data: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_TileColorArray: + - m_RefCount: 1 + m_Data: {r: 0.94482756, g: 1, b: 0, a: 1} + m_TileObjectToInstantiateArray: [] + m_AnimationFrameRate: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Origin: {x: -10, y: 0, z: 0} + m_Size: {x: 10, y: 4, z: 1} + m_TileAnchor: {x: 0.5, y: 0.5, z: 0} + m_TileOrientation: 0 + m_TileOrientationMatrix: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 +--- !u!1 &916491934 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 916491935} + - component: {fileID: 916491937} + - component: {fileID: 916491936} + m_Layer: 0 + m_Name: SRP - VisibleOutofMask 2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &916491935 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 916491934} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 300172612} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!483693784 &916491936 +TilemapRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 916491934} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 24 + m_ChunkSize: {x: 32, y: 32, z: 32} + m_ChunkCullingBounds: {x: 0, y: 0, z: 0} + m_MaxChunkCount: 16 + m_MaxFrameAge: 16 + m_SortOrder: 0 + m_Mode: 2 + m_DetectChunkCullingBounds: 0 + m_MaskInteraction: 2 +--- !u!1839735485 &916491937 +Tilemap: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 916491934} + m_Enabled: 1 + m_Tiles: + - first: {x: -7, y: 3, z: 0} + second: + serializedVersion: 2 + m_TileIndex: 0 + m_TileSpriteIndex: 0 + m_TileMatrixIndex: 0 + m_TileColorIndex: 0 + m_TileObjectToInstantiateIndex: 65535 + dummyAlignment: 0 + m_AllTileFlags: 1073741825 + m_AnimatedTiles: {} + m_TileAssetArray: + - m_RefCount: 1 + m_Data: {fileID: 11400000, guid: 898ab856ab374ef428ab13e10c948a0d, type: 2} + m_TileSpriteArray: + - m_RefCount: 1 + m_Data: {fileID: 21300000, guid: 0a451cb9697c39044815bbd2d048826c, type: 3} + m_TileMatrixArray: + - m_RefCount: 1 + m_Data: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_TileColorArray: + - m_RefCount: 1 + m_Data: {r: 0.94482756, g: 1, b: 0, a: 1} + m_TileObjectToInstantiateArray: [] + m_AnimationFrameRate: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Origin: {x: -9, y: 0, z: 0} + m_Size: {x: 9, y: 4, z: 1} + m_TileAnchor: {x: 0.5, y: 0.5, z: 0} + m_TileOrientation: 0 + m_TileOrientationMatrix: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 +--- !u!1 &917257770 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 917257771} + - component: {fileID: 917257773} + - component: {fileID: 917257772} + m_Layer: 0 + m_Name: SRP - VisibleInMask 2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &917257771 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 917257770} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 300172612} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!483693784 &917257772 +TilemapRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 917257770} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 25 + m_ChunkSize: {x: 32, y: 32, z: 32} + m_ChunkCullingBounds: {x: 0, y: 0, z: 0} + m_MaxChunkCount: 16 + m_MaxFrameAge: 16 + m_SortOrder: 0 + m_Mode: 2 + m_DetectChunkCullingBounds: 0 + m_MaskInteraction: 1 +--- !u!1839735485 &917257773 +Tilemap: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 917257770} + m_Enabled: 1 + m_Tiles: + - first: {x: -6, y: 3, z: 0} + second: + serializedVersion: 2 + m_TileIndex: 0 + m_TileSpriteIndex: 0 + m_TileMatrixIndex: 0 + m_TileColorIndex: 0 + m_TileObjectToInstantiateIndex: 65535 + dummyAlignment: 0 + m_AllTileFlags: 1073741825 + m_AnimatedTiles: {} + m_TileAssetArray: + - m_RefCount: 1 + m_Data: {fileID: 11400000, guid: 898ab856ab374ef428ab13e10c948a0d, type: 2} + m_TileSpriteArray: + - m_RefCount: 1 + m_Data: {fileID: 21300000, guid: 0a451cb9697c39044815bbd2d048826c, type: 3} + m_TileMatrixArray: + - m_RefCount: 1 + m_Data: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_TileColorArray: + - m_RefCount: 1 + m_Data: {r: 0.94482756, g: 1, b: 0, a: 1} + m_TileObjectToInstantiateArray: [] + m_AnimationFrameRate: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Origin: {x: -11, y: 0, z: 0} + m_Size: {x: 11, y: 4, z: 1} + m_TileAnchor: {x: 0.5, y: 0.5, z: 0} + m_TileOrientation: 0 + m_TileOrientationMatrix: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 +--- !u!1 &961739749 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 961739753} + - component: {fileID: 961739752} + - component: {fileID: 961739751} + - component: {fileID: 961739750} + - component: {fileID: 961739754} + m_Layer: 0 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &961739750 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 961739749} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a79441f348de89743a2939f4d699eac1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_RenderShadows: 1 + m_RequiresDepthTextureOption: 2 + m_RequiresOpaqueTextureOption: 2 + m_CameraType: 0 + m_Cameras: [] + m_RendererIndex: -1 + m_VolumeLayerMask: + serializedVersion: 2 + m_Bits: 1 + m_VolumeTrigger: {fileID: 0} + m_VolumeFrameworkUpdateModeOption: 2 + m_RenderPostProcessing: 0 + m_Antialiasing: 0 + m_AntialiasingQuality: 2 + m_StopNaN: 0 + m_Dithering: 0 + m_ClearDepth: 1 + m_AllowXRRendering: 1 + m_AllowHDROutput: 1 + m_UseScreenCoordOverride: 0 + m_ScreenSizeOverride: {x: 0, y: 0, z: 0, w: 0} + m_ScreenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0} + m_RequiresDepthTexture: 0 + m_RequiresColorTexture: 0 + m_TaaSettings: + m_Quality: 3 + m_FrameInfluence: 0.1 + m_JitterScale: 1 + m_MipBias: 0 + m_VarianceClampScale: 0.9 + m_ContrastAdaptiveSharpening: 0 + m_Version: 2 +--- !u!81 &961739751 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 961739749} + m_Enabled: 1 +--- !u!20 &961739752 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 961739749} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 2 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_Iso: 200 + m_ShutterSpeed: 0.005 + m_Aperture: 16 + m_FocusDistance: 10 + m_FocalLength: 50 + m_BladeCount: 5 + m_Curvature: {x: 2, y: 11} + m_BarrelClipping: 0.25 + m_Anamorphism: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 1 + orthographic size: 6 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &961739753 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 961739749} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -1.5, y: 1, z: -10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &961739754 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 961739749} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 73231aa468d81ea49bc3d914080de185, type: 3} + m_Name: + m_EditorClassIdentifier: + ImageComparisonSettings: + TargetWidth: 1280 + TargetHeight: 720 + TargetMSAASamples: 1 + PerPixelCorrectnessThreshold: 0.001 + PerPixelGammaThreshold: 0.003921569 + PerPixelAlphaThreshold: 0.003921569 + RMSEThreshold: 0 + AverageCorrectnessThreshold: 0.005 + IncorrectPixelsThreshold: 0.0000038146973 + UseHDR: 0 + UseBackBuffer: 0 + ImageResolution: 2 + ActiveImageTests: 1 + ActivePixelTests: -1 + WaitFrames: 0 + XRCompatible: 0 + gpuDrivenCompatible: 1 + CheckMemoryAllocation: 0 + renderBackendCompatibility: 2 + SetBackBufferResolution: 0 +--- !u!1 &986076899 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 986076900} + - component: {fileID: 986076902} + - component: {fileID: 986076901} + m_Layer: 0 + m_Name: Chunk - VisibleInMask 2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &986076900 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 986076899} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1178893847} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!483693784 &986076901 +TilemapRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 986076899} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 5 + m_ChunkSize: {x: 32, y: 32, z: 32} + m_ChunkCullingBounds: {x: 0, y: 0, z: 0} + m_MaxChunkCount: 16 + m_MaxFrameAge: 16 + m_SortOrder: 0 + m_Mode: 0 + m_DetectChunkCullingBounds: 0 + m_MaskInteraction: 1 +--- !u!1839735485 &986076902 +Tilemap: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 986076899} + m_Enabled: 1 + m_Tiles: + - first: {x: -6, y: 3, z: 0} + second: + serializedVersion: 2 + m_TileIndex: 0 + m_TileSpriteIndex: 0 + m_TileMatrixIndex: 0 + m_TileColorIndex: 0 + m_TileObjectToInstantiateIndex: 65535 + dummyAlignment: 0 + m_AllTileFlags: 1073741825 + m_AnimatedTiles: {} + m_TileAssetArray: + - m_RefCount: 1 + m_Data: {fileID: 11400000, guid: 898ab856ab374ef428ab13e10c948a0d, type: 2} + m_TileSpriteArray: + - m_RefCount: 1 + m_Data: {fileID: 21300000, guid: 0a451cb9697c39044815bbd2d048826c, type: 3} + m_TileMatrixArray: + - m_RefCount: 1 + m_Data: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_TileColorArray: + - m_RefCount: 1 + m_Data: {r: 0.94482756, g: 1, b: 0, a: 1} + m_TileObjectToInstantiateArray: [] + m_AnimationFrameRate: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Origin: {x: -11, y: 0, z: 0} + m_Size: {x: 11, y: 4, z: 1} + m_TileAnchor: {x: 0.5, y: 0.5, z: 0} + m_TileOrientation: 0 + m_TileOrientationMatrix: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 +--- !u!1 &990018666 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 990018667} + - component: {fileID: 990018669} + - component: {fileID: 990018668} + m_Layer: 0 + m_Name: Chunk - Shader - VisibleOutofMask 3 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &990018667 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 990018666} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 864839693} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!483693784 &990018668 +TilemapRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 990018666} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 978bb63e0ef6dca4ca9b8da87c3f7f75, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 6 + m_ChunkSize: {x: 32, y: 32, z: 32} + m_ChunkCullingBounds: {x: 0, y: 0, z: 0} + m_MaxChunkCount: 16 + m_MaxFrameAge: 16 + m_SortOrder: 0 + m_Mode: 0 + m_DetectChunkCullingBounds: 0 + m_MaskInteraction: 2 +--- !u!1839735485 &990018669 +Tilemap: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 990018666} + m_Enabled: 1 + m_Tiles: + - first: {x: -5, y: 3, z: 0} + second: + serializedVersion: 2 + m_TileIndex: 0 + m_TileSpriteIndex: 0 + m_TileMatrixIndex: 0 + m_TileColorIndex: 0 + m_TileObjectToInstantiateIndex: 65535 + dummyAlignment: 0 + m_AllTileFlags: 1073741825 + m_AnimatedTiles: {} + m_TileAssetArray: + - m_RefCount: 1 + m_Data: {fileID: 11400000, guid: 898ab856ab374ef428ab13e10c948a0d, type: 2} + m_TileSpriteArray: + - m_RefCount: 1 + m_Data: {fileID: 21300000, guid: 0a451cb9697c39044815bbd2d048826c, type: 3} + m_TileMatrixArray: + - m_RefCount: 1 + m_Data: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_TileColorArray: + - m_RefCount: 1 + m_Data: {r: 0.94482756, g: 1, b: 0, a: 1} + m_TileObjectToInstantiateArray: [] + m_AnimationFrameRate: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Origin: {x: -9, y: 0, z: 0} + m_Size: {x: 9, y: 4, z: 1} + m_TileAnchor: {x: 0.5, y: 0.5, z: 0} + m_TileOrientation: 0 + m_TileOrientationMatrix: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 +--- !u!1 &1004531375 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1004531377} + - component: {fileID: 1004531376} + m_Layer: 0 + m_Name: Grid + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!156049354 &1004531376 +Grid: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1004531375} + m_Enabled: 1 + m_CellSize: {x: 1, y: 1, z: 0} + m_CellGap: {x: 0, y: 0, z: 0} + m_CellLayout: 0 + m_CellSwizzle: 0 +--- !u!4 &1004531377 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1004531375} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: -2, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1671714893} + - {fileID: 375823833} + - {fileID: 404659910} + - {fileID: 1559275875} + - {fileID: 1144401961} + - {fileID: 667235945} + - {fileID: 1519488781} + - {fileID: 1758990594} + - {fileID: 4449893} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1005097837 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1005097838} + - component: {fileID: 1005097840} + - component: {fileID: 1005097839} + m_Layer: 0 + m_Name: SRP - None + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1005097838 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1005097837} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 300172612} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!483693784 &1005097839 +TilemapRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1005097837} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 21 + m_ChunkSize: {x: 32, y: 32, z: 32} + m_ChunkCullingBounds: {x: 0, y: 0, z: 0} + m_MaxChunkCount: 16 + m_MaxFrameAge: 16 + m_SortOrder: 0 + m_Mode: 2 + m_DetectChunkCullingBounds: 0 + m_MaskInteraction: 0 +--- !u!1839735485 &1005097840 +Tilemap: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1005097837} + m_Enabled: 1 + m_Tiles: + - first: {x: -10, y: 3, z: 0} + second: + serializedVersion: 2 + m_TileIndex: 0 + m_TileSpriteIndex: 0 + m_TileMatrixIndex: 0 + m_TileColorIndex: 0 + m_TileObjectToInstantiateIndex: 65535 + dummyAlignment: 0 + m_AllTileFlags: 1073741825 + m_AnimatedTiles: {} + m_TileAssetArray: + - m_RefCount: 1 + m_Data: {fileID: 11400000, guid: 898ab856ab374ef428ab13e10c948a0d, type: 2} + m_TileSpriteArray: + - m_RefCount: 1 + m_Data: {fileID: 21300000, guid: 0a451cb9697c39044815bbd2d048826c, type: 3} + m_TileMatrixArray: + - m_RefCount: 1 + m_Data: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_TileColorArray: + - m_RefCount: 1 + m_Data: {r: 0.94482756, g: 1, b: 0, a: 1} + m_TileObjectToInstantiateArray: [] + m_AnimationFrameRate: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Origin: {x: -10, y: 0, z: 0} + m_Size: {x: 10, y: 4, z: 1} + m_TileAnchor: {x: 0.5, y: 0.5, z: 0} + m_TileOrientation: 0 + m_TileOrientationMatrix: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 +--- !u!1 &1035381096 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1035381097} + - component: {fileID: 1035381099} + - component: {fileID: 1035381098} + m_Layer: 0 + m_Name: Chunk - None + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1035381097 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1035381096} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1178893847} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!483693784 &1035381098 +TilemapRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1035381096} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 1 + m_ChunkSize: {x: 32, y: 32, z: 32} + m_ChunkCullingBounds: {x: 0, y: 0, z: 0} + m_MaxChunkCount: 16 + m_MaxFrameAge: 16 + m_SortOrder: 0 + m_Mode: 0 + m_DetectChunkCullingBounds: 0 + m_MaskInteraction: 0 +--- !u!1839735485 &1035381099 +Tilemap: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1035381096} + m_Enabled: 1 + m_Tiles: + - first: {x: -10, y: 3, z: 0} + second: + serializedVersion: 2 + m_TileIndex: 0 + m_TileSpriteIndex: 0 + m_TileMatrixIndex: 0 + m_TileColorIndex: 0 + m_TileObjectToInstantiateIndex: 65535 + dummyAlignment: 0 + m_AllTileFlags: 1073741825 + m_AnimatedTiles: {} + m_TileAssetArray: + - m_RefCount: 1 + m_Data: {fileID: 11400000, guid: 898ab856ab374ef428ab13e10c948a0d, type: 2} + m_TileSpriteArray: + - m_RefCount: 1 + m_Data: {fileID: 21300000, guid: 0a451cb9697c39044815bbd2d048826c, type: 3} + m_TileMatrixArray: + - m_RefCount: 1 + m_Data: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_TileColorArray: + - m_RefCount: 1 + m_Data: {r: 0.94482756, g: 1, b: 0, a: 1} + m_TileObjectToInstantiateArray: [] + m_AnimationFrameRate: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Origin: {x: -10, y: 0, z: 0} + m_Size: {x: 10, y: 4, z: 1} + m_TileAnchor: {x: 0.5, y: 0.5, z: 0} + m_TileOrientation: 0 + m_TileOrientationMatrix: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 +--- !u!1 &1039568808 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1039568809} + - component: {fileID: 1039568811} + - component: {fileID: 1039568810} + m_Layer: 0 + m_Name: SRP - VisibleInMask 3 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1039568809 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1039568808} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 300172612} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!483693784 &1039568810 +TilemapRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1039568808} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 27 + m_ChunkSize: {x: 32, y: 32, z: 32} + m_ChunkCullingBounds: {x: 0, y: 0, z: 0} + m_MaxChunkCount: 16 + m_MaxFrameAge: 16 + m_SortOrder: 0 + m_Mode: 2 + m_DetectChunkCullingBounds: 0 + m_MaskInteraction: 1 +--- !u!1839735485 &1039568811 +Tilemap: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1039568808} + m_Enabled: 1 + m_Tiles: + - first: {x: -4, y: 3, z: 0} + second: + serializedVersion: 2 + m_TileIndex: 0 + m_TileSpriteIndex: 0 + m_TileMatrixIndex: 0 + m_TileColorIndex: 0 + m_TileObjectToInstantiateIndex: 65535 + dummyAlignment: 0 + m_AllTileFlags: 1073741825 + m_AnimatedTiles: {} + m_TileAssetArray: + - m_RefCount: 1 + m_Data: {fileID: 11400000, guid: 898ab856ab374ef428ab13e10c948a0d, type: 2} + m_TileSpriteArray: + - m_RefCount: 1 + m_Data: {fileID: 21300000, guid: 0a451cb9697c39044815bbd2d048826c, type: 3} + m_TileMatrixArray: + - m_RefCount: 1 + m_Data: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_TileColorArray: + - m_RefCount: 1 + m_Data: {r: 0.94482756, g: 1, b: 0, a: 1} + m_TileObjectToInstantiateArray: [] + m_AnimationFrameRate: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Origin: {x: -11, y: 0, z: 0} + m_Size: {x: 11, y: 4, z: 1} + m_TileAnchor: {x: 0.5, y: 0.5, z: 0} + m_TileOrientation: 0 + m_TileOrientationMatrix: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 +--- !u!1 &1058434174 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1058434175} + - component: {fileID: 1058434177} + - component: {fileID: 1058434176} + m_Layer: 0 + m_Name: Chunk - Shader - None 3 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1058434175 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1058434174} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 864839693} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!483693784 &1058434176 +TilemapRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1058434174} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 978bb63e0ef6dca4ca9b8da87c3f7f75, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 8 + m_ChunkSize: {x: 32, y: 32, z: 32} + m_ChunkCullingBounds: {x: 0, y: 0, z: 0} + m_MaxChunkCount: 16 + m_MaxFrameAge: 16 + m_SortOrder: 0 + m_Mode: 0 + m_DetectChunkCullingBounds: 0 + m_MaskInteraction: 0 +--- !u!1839735485 &1058434177 +Tilemap: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1058434174} + m_Enabled: 1 + m_Tiles: + - first: {x: -3, y: 3, z: 0} + second: + serializedVersion: 2 + m_TileIndex: 0 + m_TileSpriteIndex: 0 + m_TileMatrixIndex: 0 + m_TileColorIndex: 0 + m_TileObjectToInstantiateIndex: 65535 + dummyAlignment: 0 + m_AllTileFlags: 1073741825 + m_AnimatedTiles: {} + m_TileAssetArray: + - m_RefCount: 1 + m_Data: {fileID: 11400000, guid: 898ab856ab374ef428ab13e10c948a0d, type: 2} + m_TileSpriteArray: + - m_RefCount: 1 + m_Data: {fileID: 21300000, guid: 0a451cb9697c39044815bbd2d048826c, type: 3} + m_TileMatrixArray: + - m_RefCount: 1 + m_Data: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_TileColorArray: + - m_RefCount: 1 + m_Data: {r: 0.94482756, g: 1, b: 0, a: 1} + m_TileObjectToInstantiateArray: [] + m_AnimationFrameRate: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Origin: {x: -10, y: 0, z: 0} + m_Size: {x: 10, y: 4, z: 1} + m_TileAnchor: {x: 0.5, y: 0.5, z: 0} + m_TileOrientation: 0 + m_TileOrientationMatrix: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 +--- !u!1 &1074892090 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1074892091} + - component: {fileID: 1074892093} + - component: {fileID: 1074892092} + m_Layer: 0 + m_Name: Individual - VisibleInMask + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1074892091 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1074892090} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1892672332} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!483693784 &1074892092 +TilemapRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1074892090} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 116359401 + m_SortingLayer: 1 + m_SortingOrder: 10 + m_ChunkSize: {x: 32, y: 32, z: 32} + m_ChunkCullingBounds: {x: 0, y: 0, z: 0} + m_MaxChunkCount: 16 + m_MaxFrameAge: 16 + m_SortOrder: 0 + m_Mode: 1 + m_DetectChunkCullingBounds: 0 + m_MaskInteraction: 1 +--- !u!1839735485 &1074892093 +Tilemap: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1074892090} + m_Enabled: 1 + m_Tiles: + - first: {x: -11, y: 3, z: 0} + second: + serializedVersion: 2 + m_TileIndex: 0 + m_TileSpriteIndex: 0 + m_TileMatrixIndex: 0 + m_TileColorIndex: 0 + m_TileObjectToInstantiateIndex: 65535 + dummyAlignment: 0 + m_AllTileFlags: 1073741825 + m_AnimatedTiles: {} + m_TileAssetArray: + - m_RefCount: 1 + m_Data: {fileID: 11400000, guid: 898ab856ab374ef428ab13e10c948a0d, type: 2} + m_TileSpriteArray: + - m_RefCount: 1 + m_Data: {fileID: 21300000, guid: 0a451cb9697c39044815bbd2d048826c, type: 3} + m_TileMatrixArray: + - m_RefCount: 1 + m_Data: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_TileColorArray: + - m_RefCount: 1 + m_Data: {r: 0.94482756, g: 1, b: 0, a: 1} + m_TileObjectToInstantiateArray: [] + m_AnimationFrameRate: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Origin: {x: -11, y: 0, z: 0} + m_Size: {x: 11, y: 4, z: 1} + m_TileAnchor: {x: 0.5, y: 0.5, z: 0} + m_TileOrientation: 0 + m_TileOrientationMatrix: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 +--- !u!1 &1104107609 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1104107610} + - component: {fileID: 1104107612} + - component: {fileID: 1104107611} + m_Layer: 0 + m_Name: Chunk - Shader - VisibleOutofMask + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1104107610 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1104107609} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 864839693} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!483693784 &1104107611 +TilemapRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1104107609} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 978bb63e0ef6dca4ca9b8da87c3f7f75, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 2 + m_ChunkSize: {x: 32, y: 32, z: 32} + m_ChunkCullingBounds: {x: 0, y: 0, z: 0} + m_MaxChunkCount: 16 + m_MaxFrameAge: 16 + m_SortOrder: 0 + m_Mode: 0 + m_DetectChunkCullingBounds: 0 + m_MaskInteraction: 2 +--- !u!1839735485 &1104107612 +Tilemap: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1104107609} + m_Enabled: 1 + m_Tiles: + - first: {x: -9, y: 3, z: 0} + second: + serializedVersion: 2 + m_TileIndex: 0 + m_TileSpriteIndex: 0 + m_TileMatrixIndex: 0 + m_TileColorIndex: 0 + m_TileObjectToInstantiateIndex: 65535 + dummyAlignment: 0 + m_AllTileFlags: 1073741825 + m_AnimatedTiles: {} + m_TileAssetArray: + - m_RefCount: 1 + m_Data: {fileID: 11400000, guid: 898ab856ab374ef428ab13e10c948a0d, type: 2} + m_TileSpriteArray: + - m_RefCount: 1 + m_Data: {fileID: 21300000, guid: 0a451cb9697c39044815bbd2d048826c, type: 3} + m_TileMatrixArray: + - m_RefCount: 1 + m_Data: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_TileColorArray: + - m_RefCount: 1 + m_Data: {r: 0.94482756, g: 1, b: 0, a: 1} + m_TileObjectToInstantiateArray: [] + m_AnimationFrameRate: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Origin: {x: -9, y: 0, z: 0} + m_Size: {x: 9, y: 4, z: 1} + m_TileAnchor: {x: 0.5, y: 0.5, z: 0} + m_TileOrientation: 0 + m_TileOrientationMatrix: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 +--- !u!1 &1112152106 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1112152107} + - component: {fileID: 1112152109} + - component: {fileID: 1112152108} + m_Layer: 0 + m_Name: Chunk - Shader - VisibleOutofMask + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1112152107 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1112152106} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 205137524} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!483693784 &1112152108 +TilemapRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1112152106} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 978bb63e0ef6dca4ca9b8da87c3f7f75, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 116359401 + m_SortingLayer: 1 + m_SortingOrder: 2 + m_ChunkSize: {x: 32, y: 32, z: 32} + m_ChunkCullingBounds: {x: 0, y: 0, z: 0} + m_MaxChunkCount: 16 + m_MaxFrameAge: 16 + m_SortOrder: 0 + m_Mode: 0 + m_DetectChunkCullingBounds: 0 + m_MaskInteraction: 2 +--- !u!1839735485 &1112152109 +Tilemap: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1112152106} + m_Enabled: 1 + m_Tiles: + - first: {x: -9, y: 3, z: 0} + second: + serializedVersion: 2 + m_TileIndex: 0 + m_TileSpriteIndex: 0 + m_TileMatrixIndex: 0 + m_TileColorIndex: 0 + m_TileObjectToInstantiateIndex: 65535 + dummyAlignment: 0 + m_AllTileFlags: 1073741825 + m_AnimatedTiles: {} + m_TileAssetArray: + - m_RefCount: 1 + m_Data: {fileID: 11400000, guid: 898ab856ab374ef428ab13e10c948a0d, type: 2} + m_TileSpriteArray: + - m_RefCount: 1 + m_Data: {fileID: 21300000, guid: 0a451cb9697c39044815bbd2d048826c, type: 3} + m_TileMatrixArray: + - m_RefCount: 1 + m_Data: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_TileColorArray: + - m_RefCount: 1 + m_Data: {r: 0.94482756, g: 1, b: 0, a: 1} + m_TileObjectToInstantiateArray: [] + m_AnimationFrameRate: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Origin: {x: -9, y: 0, z: 0} + m_Size: {x: 9, y: 4, z: 1} + m_TileAnchor: {x: 0.5, y: 0.5, z: 0} + m_TileOrientation: 0 + m_TileOrientationMatrix: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 +--- !u!1 &1141486179 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1141486180} + - component: {fileID: 1141486182} + - component: {fileID: 1141486181} + m_Layer: 0 + m_Name: Chunk - VisibleOutofMask 2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1141486180 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1141486179} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 214346214} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!483693784 &1141486181 +TilemapRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1141486179} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 116359401 + m_SortingLayer: 1 + m_SortingOrder: 4 + m_ChunkSize: {x: 32, y: 32, z: 32} + m_ChunkCullingBounds: {x: 0, y: 0, z: 0} + m_MaxChunkCount: 16 + m_MaxFrameAge: 16 + m_SortOrder: 0 + m_Mode: 0 + m_DetectChunkCullingBounds: 0 + m_MaskInteraction: 2 +--- !u!1839735485 &1141486182 +Tilemap: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1141486179} + m_Enabled: 1 + m_Tiles: + - first: {x: -7, y: 3, z: 0} + second: + serializedVersion: 2 + m_TileIndex: 0 + m_TileSpriteIndex: 0 + m_TileMatrixIndex: 0 + m_TileColorIndex: 0 + m_TileObjectToInstantiateIndex: 65535 + dummyAlignment: 0 + m_AllTileFlags: 1073741825 + m_AnimatedTiles: {} + m_TileAssetArray: + - m_RefCount: 1 + m_Data: {fileID: 11400000, guid: 898ab856ab374ef428ab13e10c948a0d, type: 2} + m_TileSpriteArray: + - m_RefCount: 1 + m_Data: {fileID: 21300000, guid: 0a451cb9697c39044815bbd2d048826c, type: 3} + m_TileMatrixArray: + - m_RefCount: 1 + m_Data: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_TileColorArray: + - m_RefCount: 1 + m_Data: {r: 0.94482756, g: 1, b: 0, a: 1} + m_TileObjectToInstantiateArray: [] + m_AnimationFrameRate: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Origin: {x: -9, y: 0, z: 0} + m_Size: {x: 9, y: 4, z: 1} + m_TileAnchor: {x: 0.5, y: 0.5, z: 0} + m_TileOrientation: 0 + m_TileOrientationMatrix: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 +--- !u!1 &1144401960 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1144401961} + - component: {fileID: 1144401963} + - component: {fileID: 1144401962} + m_Layer: 0 + m_Name: Individual - VisibleOutofMask 2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1144401961 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1144401960} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1004531377} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!483693784 &1144401962 +TilemapRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1144401960} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 14 + m_ChunkSize: {x: 32, y: 32, z: 32} + m_ChunkCullingBounds: {x: 0, y: 0, z: 0} + m_MaxChunkCount: 16 + m_MaxFrameAge: 16 + m_SortOrder: 0 + m_Mode: 1 + m_DetectChunkCullingBounds: 0 + m_MaskInteraction: 2 +--- !u!1839735485 &1144401963 +Tilemap: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1144401960} + m_Enabled: 1 + m_Tiles: + - first: {x: -7, y: 3, z: 0} + second: + serializedVersion: 2 + m_TileIndex: 0 + m_TileSpriteIndex: 0 + m_TileMatrixIndex: 0 + m_TileColorIndex: 0 + m_TileObjectToInstantiateIndex: 65535 + dummyAlignment: 0 + m_AllTileFlags: 1073741825 + m_AnimatedTiles: {} + m_TileAssetArray: + - m_RefCount: 1 + m_Data: {fileID: 11400000, guid: 898ab856ab374ef428ab13e10c948a0d, type: 2} + m_TileSpriteArray: + - m_RefCount: 1 + m_Data: {fileID: 21300000, guid: 0a451cb9697c39044815bbd2d048826c, type: 3} + m_TileMatrixArray: + - m_RefCount: 1 + m_Data: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_TileColorArray: + - m_RefCount: 1 + m_Data: {r: 0.94482756, g: 1, b: 0, a: 1} + m_TileObjectToInstantiateArray: [] + m_AnimationFrameRate: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Origin: {x: -9, y: 0, z: 0} + m_Size: {x: 9, y: 4, z: 1} + m_TileAnchor: {x: 0.5, y: 0.5, z: 0} + m_TileOrientation: 0 + m_TileOrientationMatrix: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 +--- !u!1 &1171950133 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1171950134} + - component: {fileID: 1171950136} + - component: {fileID: 1171950135} + m_Layer: 0 + m_Name: SRP - VisibleOutofMask 3 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1171950134 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1171950133} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1565511678} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!483693784 &1171950135 +TilemapRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1171950133} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 116359401 + m_SortingLayer: 1 + m_SortingOrder: 26 + m_ChunkSize: {x: 32, y: 32, z: 32} + m_ChunkCullingBounds: {x: 0, y: 0, z: 0} + m_MaxChunkCount: 16 + m_MaxFrameAge: 16 + m_SortOrder: 0 + m_Mode: 2 + m_DetectChunkCullingBounds: 0 + m_MaskInteraction: 2 +--- !u!1839735485 &1171950136 +Tilemap: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1171950133} + m_Enabled: 1 + m_Tiles: + - first: {x: -5, y: 3, z: 0} + second: + serializedVersion: 2 + m_TileIndex: 0 + m_TileSpriteIndex: 0 + m_TileMatrixIndex: 0 + m_TileColorIndex: 0 + m_TileObjectToInstantiateIndex: 65535 + dummyAlignment: 0 + m_AllTileFlags: 1073741825 + m_AnimatedTiles: {} + m_TileAssetArray: + - m_RefCount: 1 + m_Data: {fileID: 11400000, guid: 898ab856ab374ef428ab13e10c948a0d, type: 2} + m_TileSpriteArray: + - m_RefCount: 1 + m_Data: {fileID: 21300000, guid: 0a451cb9697c39044815bbd2d048826c, type: 3} + m_TileMatrixArray: + - m_RefCount: 1 + m_Data: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_TileColorArray: + - m_RefCount: 1 + m_Data: {r: 0.94482756, g: 1, b: 0, a: 1} + m_TileObjectToInstantiateArray: [] + m_AnimationFrameRate: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Origin: {x: -9, y: 0, z: 0} + m_Size: {x: 9, y: 4, z: 1} + m_TileAnchor: {x: 0.5, y: 0.5, z: 0} + m_TileOrientation: 0 + m_TileOrientationMatrix: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 +--- !u!1 &1178893845 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1178893847} + - component: {fileID: 1178893846} + m_Layer: 0 + m_Name: Grid + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!156049354 &1178893846 +Grid: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1178893845} + m_Enabled: 1 + m_CellSize: {x: 1, y: 1, z: 0} + m_CellGap: {x: 0, y: 0, z: 0} + m_CellLayout: 0 + m_CellSwizzle: 0 +--- !u!4 &1178893847 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1178893845} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 2077023562} + - {fileID: 1035381097} + - {fileID: 894406765} + - {fileID: 1953022102} + - {fileID: 1455562697} + - {fileID: 986076900} + - {fileID: 662210486} + - {fileID: 251715406} + - {fileID: 275741667} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1193809355 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1193809356} + - component: {fileID: 1193809358} + - component: {fileID: 1193809357} + m_Layer: 0 + m_Name: SRP - None 3 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1193809356 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1193809355} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 300172612} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!483693784 &1193809357 +TilemapRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1193809355} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 28 + m_ChunkSize: {x: 32, y: 32, z: 32} + m_ChunkCullingBounds: {x: 0, y: 0, z: 0} + m_MaxChunkCount: 16 + m_MaxFrameAge: 16 + m_SortOrder: 0 + m_Mode: 2 + m_DetectChunkCullingBounds: 0 + m_MaskInteraction: 0 +--- !u!1839735485 &1193809358 +Tilemap: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1193809355} + m_Enabled: 1 + m_Tiles: + - first: {x: -3, y: 3, z: 0} + second: + serializedVersion: 2 + m_TileIndex: 0 + m_TileSpriteIndex: 0 + m_TileMatrixIndex: 0 + m_TileColorIndex: 0 + m_TileObjectToInstantiateIndex: 65535 + dummyAlignment: 0 + m_AllTileFlags: 1073741825 + m_AnimatedTiles: {} + m_TileAssetArray: + - m_RefCount: 1 + m_Data: {fileID: 11400000, guid: 898ab856ab374ef428ab13e10c948a0d, type: 2} + m_TileSpriteArray: + - m_RefCount: 1 + m_Data: {fileID: 21300000, guid: 0a451cb9697c39044815bbd2d048826c, type: 3} + m_TileMatrixArray: + - m_RefCount: 1 + m_Data: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_TileColorArray: + - m_RefCount: 1 + m_Data: {r: 0.94482756, g: 1, b: 0, a: 1} + m_TileObjectToInstantiateArray: [] + m_AnimationFrameRate: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Origin: {x: -10, y: 0, z: 0} + m_Size: {x: 10, y: 4, z: 1} + m_TileAnchor: {x: 0.5, y: 0.5, z: 0} + m_TileOrientation: 0 + m_TileOrientationMatrix: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 +--- !u!1 &1200307847 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1200307848} + - component: {fileID: 1200307850} + - component: {fileID: 1200307849} + m_Layer: 0 + m_Name: Chunk - Shader - VisibleInMask 3 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1200307848 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1200307847} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 205137524} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!483693784 &1200307849 +TilemapRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1200307847} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 978bb63e0ef6dca4ca9b8da87c3f7f75, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 116359401 + m_SortingLayer: 1 + m_SortingOrder: 7 + m_ChunkSize: {x: 32, y: 32, z: 32} + m_ChunkCullingBounds: {x: 0, y: 0, z: 0} + m_MaxChunkCount: 16 + m_MaxFrameAge: 16 + m_SortOrder: 0 + m_Mode: 0 + m_DetectChunkCullingBounds: 0 + m_MaskInteraction: 1 +--- !u!1839735485 &1200307850 +Tilemap: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1200307847} + m_Enabled: 1 + m_Tiles: + - first: {x: -4, y: 3, z: 0} + second: + serializedVersion: 2 + m_TileIndex: 0 + m_TileSpriteIndex: 0 + m_TileMatrixIndex: 0 + m_TileColorIndex: 0 + m_TileObjectToInstantiateIndex: 65535 + dummyAlignment: 0 + m_AllTileFlags: 1073741825 + m_AnimatedTiles: {} + m_TileAssetArray: + - m_RefCount: 1 + m_Data: {fileID: 11400000, guid: 898ab856ab374ef428ab13e10c948a0d, type: 2} + m_TileSpriteArray: + - m_RefCount: 1 + m_Data: {fileID: 21300000, guid: 0a451cb9697c39044815bbd2d048826c, type: 3} + m_TileMatrixArray: + - m_RefCount: 1 + m_Data: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_TileColorArray: + - m_RefCount: 1 + m_Data: {r: 0.94482756, g: 1, b: 0, a: 1} + m_TileObjectToInstantiateArray: [] + m_AnimationFrameRate: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Origin: {x: -11, y: 0, z: 0} + m_Size: {x: 11, y: 4, z: 1} + m_TileAnchor: {x: 0.5, y: 0.5, z: 0} + m_TileOrientation: 0 + m_TileOrientationMatrix: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 +--- !u!1 &1206244586 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -5187,38 +8156,38 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1005097838} - - component: {fileID: 1005097840} - - component: {fileID: 1005097839} + - component: {fileID: 1206244587} + - component: {fileID: 1206244589} + - component: {fileID: 1206244588} m_Layer: 0 - m_Name: SRP - None + m_Name: Chunk - VisibleInMask 3 m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1005097838 +--- !u!4 &1206244587 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1005097837} + m_GameObject: {fileID: 1206244586} serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 300172612} + m_Father: {fileID: 214346214} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!483693784 &1005097839 +--- !u!483693784 &1206244588 TilemapRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1005097837} + m_GameObject: {fileID: 1206244586} m_Enabled: 1 m_CastShadows: 0 m_ReceiveShadows: 0 @@ -5256,27 +8225,27 @@ TilemapRenderer: m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} m_GlobalIlluminationMeshLod: 0 - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 21 + m_SortingLayerID: 116359401 + m_SortingLayer: 1 + m_SortingOrder: 7 m_ChunkSize: {x: 32, y: 32, z: 32} m_ChunkCullingBounds: {x: 0, y: 0, z: 0} m_MaxChunkCount: 16 m_MaxFrameAge: 16 m_SortOrder: 0 - m_Mode: 2 + m_Mode: 0 m_DetectChunkCullingBounds: 0 - m_MaskInteraction: 0 ---- !u!1839735485 &1005097840 + m_MaskInteraction: 1 +--- !u!1839735485 &1206244589 Tilemap: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1005097837} + m_GameObject: {fileID: 1206244586} m_Enabled: 1 m_Tiles: - - first: {x: -10, y: 3, z: 0} + - first: {x: -4, y: 3, z: 0} second: serializedVersion: 2 m_TileIndex: 0 @@ -5318,8 +8287,8 @@ Tilemap: m_TileObjectToInstantiateArray: [] m_AnimationFrameRate: 1 m_Color: {r: 1, g: 1, b: 1, a: 1} - m_Origin: {x: -10, y: 0, z: 0} - m_Size: {x: 10, y: 4, z: 1} + m_Origin: {x: -11, y: 0, z: 0} + m_Size: {x: 11, y: 4, z: 1} m_TileAnchor: {x: 0.5, y: 0.5, z: 0} m_TileOrientation: 0 m_TileOrientationMatrix: @@ -5339,7 +8308,7 @@ Tilemap: e31: 0 e32: 0 e33: 1 ---- !u!1 &1035381096 +--- !u!1 &1283665429 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -5347,38 +8316,38 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1035381097} - - component: {fileID: 1035381099} - - component: {fileID: 1035381098} + - component: {fileID: 1283665430} + - component: {fileID: 1283665432} + - component: {fileID: 1283665431} m_Layer: 0 - m_Name: Chunk - None + m_Name: SRP - VisibleOutofMask 3 m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1035381097 +--- !u!4 &1283665430 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1035381096} + m_GameObject: {fileID: 1283665429} serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 1178893847} + m_Father: {fileID: 300172612} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!483693784 &1035381098 +--- !u!483693784 &1283665431 TilemapRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1035381096} + m_GameObject: {fileID: 1283665429} m_Enabled: 1 m_CastShadows: 0 m_ReceiveShadows: 0 @@ -5418,25 +8387,25 @@ TilemapRenderer: m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 - m_SortingOrder: 1 + m_SortingOrder: 26 m_ChunkSize: {x: 32, y: 32, z: 32} m_ChunkCullingBounds: {x: 0, y: 0, z: 0} m_MaxChunkCount: 16 m_MaxFrameAge: 16 m_SortOrder: 0 - m_Mode: 0 + m_Mode: 2 m_DetectChunkCullingBounds: 0 - m_MaskInteraction: 0 ---- !u!1839735485 &1035381099 + m_MaskInteraction: 2 +--- !u!1839735485 &1283665432 Tilemap: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1035381096} + m_GameObject: {fileID: 1283665429} m_Enabled: 1 m_Tiles: - - first: {x: -10, y: 3, z: 0} + - first: {x: -5, y: 3, z: 0} second: serializedVersion: 2 m_TileIndex: 0 @@ -5478,8 +8447,8 @@ Tilemap: m_TileObjectToInstantiateArray: [] m_AnimationFrameRate: 1 m_Color: {r: 1, g: 1, b: 1, a: 1} - m_Origin: {x: -10, y: 0, z: 0} - m_Size: {x: 10, y: 4, z: 1} + m_Origin: {x: -9, y: 0, z: 0} + m_Size: {x: 9, y: 4, z: 1} m_TileAnchor: {x: 0.5, y: 0.5, z: 0} m_TileOrientation: 0 m_TileOrientationMatrix: @@ -5499,7 +8468,7 @@ Tilemap: e31: 0 e32: 0 e33: 1 ---- !u!1 &1039568808 +--- !u!1 &1378598772 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -5507,38 +8476,38 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1039568809} - - component: {fileID: 1039568811} - - component: {fileID: 1039568810} + - component: {fileID: 1378598773} + - component: {fileID: 1378598775} + - component: {fileID: 1378598774} m_Layer: 0 - m_Name: SRP - VisibleInMask 3 + m_Name: SRP - None 3 m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1039568809 +--- !u!4 &1378598773 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1039568808} + m_GameObject: {fileID: 1378598772} serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 300172612} + m_Father: {fileID: 1565511678} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!483693784 &1039568810 +--- !u!483693784 &1378598774 TilemapRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1039568808} + m_GameObject: {fileID: 1378598772} m_Enabled: 1 m_CastShadows: 0 m_ReceiveShadows: 0 @@ -5576,9 +8545,9 @@ TilemapRenderer: m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} m_GlobalIlluminationMeshLod: 0 - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 27 + m_SortingLayerID: 116359401 + m_SortingLayer: 1 + m_SortingOrder: 28 m_ChunkSize: {x: 32, y: 32, z: 32} m_ChunkCullingBounds: {x: 0, y: 0, z: 0} m_MaxChunkCount: 16 @@ -5586,17 +8555,17 @@ TilemapRenderer: m_SortOrder: 0 m_Mode: 2 m_DetectChunkCullingBounds: 0 - m_MaskInteraction: 1 ---- !u!1839735485 &1039568811 + m_MaskInteraction: 0 +--- !u!1839735485 &1378598775 Tilemap: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1039568808} + m_GameObject: {fileID: 1378598772} m_Enabled: 1 m_Tiles: - - first: {x: -4, y: 3, z: 0} + - first: {x: -3, y: 3, z: 0} second: serializedVersion: 2 m_TileIndex: 0 @@ -5638,8 +8607,8 @@ Tilemap: m_TileObjectToInstantiateArray: [] m_AnimationFrameRate: 1 m_Color: {r: 1, g: 1, b: 1, a: 1} - m_Origin: {x: -11, y: 0, z: 0} - m_Size: {x: 11, y: 4, z: 1} + m_Origin: {x: -10, y: 0, z: 0} + m_Size: {x: 10, y: 4, z: 1} m_TileAnchor: {x: 0.5, y: 0.5, z: 0} m_TileOrientation: 0 m_TileOrientationMatrix: @@ -5659,7 +8628,7 @@ Tilemap: e31: 0 e32: 0 e33: 1 ---- !u!1 &1074892090 +--- !u!1 &1448817525 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -5667,38 +8636,38 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1074892091} - - component: {fileID: 1074892093} - - component: {fileID: 1074892092} + - component: {fileID: 1448817526} + - component: {fileID: 1448817528} + - component: {fileID: 1448817527} m_Layer: 0 - m_Name: Individual - VisibleInMask + m_Name: SRP - VisibleInMask m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1074892091 +--- !u!4 &1448817526 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1074892090} + m_GameObject: {fileID: 1448817525} serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 1892672332} + m_Father: {fileID: 1565511678} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!483693784 &1074892092 +--- !u!483693784 &1448817527 TilemapRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1074892090} + m_GameObject: {fileID: 1448817525} m_Enabled: 1 m_CastShadows: 0 m_ReceiveShadows: 0 @@ -5738,22 +8707,22 @@ TilemapRenderer: m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 116359401 m_SortingLayer: 1 - m_SortingOrder: 10 + m_SortingOrder: 20 m_ChunkSize: {x: 32, y: 32, z: 32} m_ChunkCullingBounds: {x: 0, y: 0, z: 0} m_MaxChunkCount: 16 m_MaxFrameAge: 16 m_SortOrder: 0 - m_Mode: 1 + m_Mode: 2 m_DetectChunkCullingBounds: 0 m_MaskInteraction: 1 ---- !u!1839735485 &1074892093 +--- !u!1839735485 &1448817528 Tilemap: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1074892090} + m_GameObject: {fileID: 1448817525} m_Enabled: 1 m_Tiles: - first: {x: -11, y: 3, z: 0} @@ -5819,7 +8788,7 @@ Tilemap: e31: 0 e32: 0 e33: 1 ---- !u!1 &1141486179 +--- !u!1 &1455562696 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -5827,9 +8796,9 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1141486180} - - component: {fileID: 1141486182} - - component: {fileID: 1141486181} + - component: {fileID: 1455562697} + - component: {fileID: 1455562699} + - component: {fileID: 1455562698} m_Layer: 0 m_Name: Chunk - VisibleOutofMask 2 m_TagString: Untagged @@ -5837,28 +8806,28 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1141486180 +--- !u!4 &1455562697 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1141486179} + m_GameObject: {fileID: 1455562696} serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 214346214} + m_Father: {fileID: 1178893847} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!483693784 &1141486181 +--- !u!483693784 &1455562698 TilemapRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1141486179} + m_GameObject: {fileID: 1455562696} m_Enabled: 1 m_CastShadows: 0 m_ReceiveShadows: 0 @@ -5896,8 +8865,8 @@ TilemapRenderer: m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} m_GlobalIlluminationMeshLod: 0 - m_SortingLayerID: 116359401 - m_SortingLayer: 1 + m_SortingLayerID: 0 + m_SortingLayer: 0 m_SortingOrder: 4 m_ChunkSize: {x: 32, y: 32, z: 32} m_ChunkCullingBounds: {x: 0, y: 0, z: 0} @@ -5907,13 +8876,13 @@ TilemapRenderer: m_Mode: 0 m_DetectChunkCullingBounds: 0 m_MaskInteraction: 2 ---- !u!1839735485 &1141486182 +--- !u!1839735485 &1455562699 Tilemap: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1141486179} + m_GameObject: {fileID: 1455562696} m_Enabled: 1 m_Tiles: - first: {x: -7, y: 3, z: 0} @@ -5979,7 +8948,7 @@ Tilemap: e31: 0 e32: 0 e33: 1 ---- !u!1 &1144401960 +--- !u!1 &1519488780 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -5987,23 +8956,23 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1144401961} - - component: {fileID: 1144401963} - - component: {fileID: 1144401962} + - component: {fileID: 1519488781} + - component: {fileID: 1519488783} + - component: {fileID: 1519488782} m_Layer: 0 - m_Name: Individual - VisibleOutofMask 2 + m_Name: Individual - VisibleOutofMask 3 m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1144401961 +--- !u!4 &1519488781 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1144401960} + m_GameObject: {fileID: 1519488780} serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -6012,13 +8981,13 @@ Transform: m_Children: [] m_Father: {fileID: 1004531377} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!483693784 &1144401962 +--- !u!483693784 &1519488782 TilemapRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1144401960} + m_GameObject: {fileID: 1519488780} m_Enabled: 1 m_CastShadows: 0 m_ReceiveShadows: 0 @@ -6058,7 +9027,7 @@ TilemapRenderer: m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 - m_SortingOrder: 14 + m_SortingOrder: 16 m_ChunkSize: {x: 32, y: 32, z: 32} m_ChunkCullingBounds: {x: 0, y: 0, z: 0} m_MaxChunkCount: 16 @@ -6067,16 +9036,16 @@ TilemapRenderer: m_Mode: 1 m_DetectChunkCullingBounds: 0 m_MaskInteraction: 2 ---- !u!1839735485 &1144401963 +--- !u!1839735485 &1519488783 Tilemap: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1144401960} + m_GameObject: {fileID: 1519488780} m_Enabled: 1 m_Tiles: - - first: {x: -7, y: 3, z: 0} + - first: {x: -5, y: 3, z: 0} second: serializedVersion: 2 m_TileIndex: 0 @@ -6139,7 +9108,7 @@ Tilemap: e31: 0 e32: 0 e33: 1 ---- !u!1 &1171950133 +--- !u!1 &1528018617 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -6147,38 +9116,38 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1171950134} - - component: {fileID: 1171950136} - - component: {fileID: 1171950135} + - component: {fileID: 1528018618} + - component: {fileID: 1528018620} + - component: {fileID: 1528018619} m_Layer: 0 - m_Name: SRP - VisibleOutofMask 3 + m_Name: Chunk - Shader - VisibleInMask 2 m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1171950134 +--- !u!4 &1528018618 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1171950133} + m_GameObject: {fileID: 1528018617} serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 1565511678} + m_Father: {fileID: 205137524} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!483693784 &1171950135 +--- !u!483693784 &1528018619 TilemapRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1171950133} + m_GameObject: {fileID: 1528018617} m_Enabled: 1 m_CastShadows: 0 m_ReceiveShadows: 0 @@ -6197,7 +9166,7 @@ TilemapRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, type: 2} + - {fileID: 2100000, guid: 978bb63e0ef6dca4ca9b8da87c3f7f75, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -6218,25 +9187,25 @@ TilemapRenderer: m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 116359401 m_SortingLayer: 1 - m_SortingOrder: 26 + m_SortingOrder: 5 m_ChunkSize: {x: 32, y: 32, z: 32} m_ChunkCullingBounds: {x: 0, y: 0, z: 0} m_MaxChunkCount: 16 m_MaxFrameAge: 16 m_SortOrder: 0 - m_Mode: 2 + m_Mode: 0 m_DetectChunkCullingBounds: 0 - m_MaskInteraction: 2 ---- !u!1839735485 &1171950136 + m_MaskInteraction: 1 +--- !u!1839735485 &1528018620 Tilemap: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1171950133} + m_GameObject: {fileID: 1528018617} m_Enabled: 1 m_Tiles: - - first: {x: -5, y: 3, z: 0} + - first: {x: -6, y: 3, z: 0} second: serializedVersion: 2 m_TileIndex: 0 @@ -6278,8 +9247,8 @@ Tilemap: m_TileObjectToInstantiateArray: [] m_AnimationFrameRate: 1 m_Color: {r: 1, g: 1, b: 1, a: 1} - m_Origin: {x: -9, y: 0, z: 0} - m_Size: {x: 9, y: 4, z: 1} + m_Origin: {x: -11, y: 0, z: 0} + m_Size: {x: 11, y: 4, z: 1} m_TileAnchor: {x: 0.5, y: 0.5, z: 0} m_TileOrientation: 0 m_TileOrientationMatrix: @@ -6299,60 +9268,7 @@ Tilemap: e31: 0 e32: 0 e33: 1 ---- !u!1 &1178893845 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1178893847} - - component: {fileID: 1178893846} - m_Layer: 0 - m_Name: Grid - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!156049354 &1178893846 -Grid: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1178893845} - m_Enabled: 1 - m_CellSize: {x: 1, y: 1, z: 0} - m_CellGap: {x: 0, y: 0, z: 0} - m_CellLayout: 0 - m_CellSwizzle: 0 ---- !u!4 &1178893847 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1178893845} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 2077023562} - - {fileID: 1035381097} - - {fileID: 894406765} - - {fileID: 1953022102} - - {fileID: 1455562697} - - {fileID: 986076900} - - {fileID: 662210486} - - {fileID: 251715406} - - {fileID: 275741667} - m_Father: {fileID: 0} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1193809355 +--- !u!1 &1530200892 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -6360,38 +9276,38 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1193809356} - - component: {fileID: 1193809358} - - component: {fileID: 1193809357} + - component: {fileID: 1530200893} + - component: {fileID: 1530200895} + - component: {fileID: 1530200894} m_Layer: 0 - m_Name: SRP - None 3 + m_Name: Individual - VisibleOutofMask 2 m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1193809356 +--- !u!4 &1530200893 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1193809355} + m_GameObject: {fileID: 1530200892} serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 300172612} + m_Father: {fileID: 1892672332} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!483693784 &1193809357 +--- !u!483693784 &1530200894 TilemapRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1193809355} + m_GameObject: {fileID: 1530200892} m_Enabled: 1 m_CastShadows: 0 m_ReceiveShadows: 0 @@ -6429,27 +9345,27 @@ TilemapRenderer: m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} m_GlobalIlluminationMeshLod: 0 - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 28 + m_SortingLayerID: 116359401 + m_SortingLayer: 1 + m_SortingOrder: 14 m_ChunkSize: {x: 32, y: 32, z: 32} m_ChunkCullingBounds: {x: 0, y: 0, z: 0} m_MaxChunkCount: 16 m_MaxFrameAge: 16 m_SortOrder: 0 - m_Mode: 2 + m_Mode: 1 m_DetectChunkCullingBounds: 0 - m_MaskInteraction: 0 ---- !u!1839735485 &1193809358 + m_MaskInteraction: 2 +--- !u!1839735485 &1530200895 Tilemap: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1193809355} + m_GameObject: {fileID: 1530200892} m_Enabled: 1 m_Tiles: - - first: {x: -3, y: 3, z: 0} + - first: {x: -7, y: 3, z: 0} second: serializedVersion: 2 m_TileIndex: 0 @@ -6491,8 +9407,8 @@ Tilemap: m_TileObjectToInstantiateArray: [] m_AnimationFrameRate: 1 m_Color: {r: 1, g: 1, b: 1, a: 1} - m_Origin: {x: -10, y: 0, z: 0} - m_Size: {x: 10, y: 4, z: 1} + m_Origin: {x: -9, y: 0, z: 0} + m_Size: {x: 9, y: 4, z: 1} m_TileAnchor: {x: 0.5, y: 0.5, z: 0} m_TileOrientation: 0 m_TileOrientationMatrix: @@ -6512,7 +9428,7 @@ Tilemap: e31: 0 e32: 0 e33: 1 ---- !u!1 &1206244586 +--- !u!1 &1559275874 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -6520,38 +9436,38 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1206244587} - - component: {fileID: 1206244589} - - component: {fileID: 1206244588} + - component: {fileID: 1559275875} + - component: {fileID: 1559275877} + - component: {fileID: 1559275876} m_Layer: 0 - m_Name: Chunk - VisibleInMask 3 + m_Name: Individual - None 2 m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1206244587 +--- !u!4 &1559275875 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1206244586} + m_GameObject: {fileID: 1559275874} serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 214346214} + m_Father: {fileID: 1004531377} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!483693784 &1206244588 +--- !u!483693784 &1559275876 TilemapRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1206244586} + m_GameObject: {fileID: 1559275874} m_Enabled: 1 m_CastShadows: 0 m_ReceiveShadows: 0 @@ -6589,27 +9505,27 @@ TilemapRenderer: m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} m_GlobalIlluminationMeshLod: 0 - m_SortingLayerID: 116359401 - m_SortingLayer: 1 - m_SortingOrder: 7 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 13 m_ChunkSize: {x: 32, y: 32, z: 32} m_ChunkCullingBounds: {x: 0, y: 0, z: 0} m_MaxChunkCount: 16 m_MaxFrameAge: 16 m_SortOrder: 0 - m_Mode: 0 + m_Mode: 1 m_DetectChunkCullingBounds: 0 - m_MaskInteraction: 1 ---- !u!1839735485 &1206244589 + m_MaskInteraction: 0 +--- !u!1839735485 &1559275877 Tilemap: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1206244586} + m_GameObject: {fileID: 1559275874} m_Enabled: 1 m_Tiles: - - first: {x: -4, y: 3, z: 0} + - first: {x: -8, y: 3, z: 0} second: serializedVersion: 2 m_TileIndex: 0 @@ -6651,8 +9567,8 @@ Tilemap: m_TileObjectToInstantiateArray: [] m_AnimationFrameRate: 1 m_Color: {r: 1, g: 1, b: 1, a: 1} - m_Origin: {x: -11, y: 0, z: 0} - m_Size: {x: 11, y: 4, z: 1} + m_Origin: {x: -10, y: 0, z: 0} + m_Size: {x: 10, y: 4, z: 1} m_TileAnchor: {x: 0.5, y: 0.5, z: 0} m_TileOrientation: 0 m_TileOrientationMatrix: @@ -6672,7 +9588,7 @@ Tilemap: e31: 0 e32: 0 e33: 1 ---- !u!1 &1283665429 +--- !u!1 &1565511676 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -6680,38 +9596,91 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1283665430} - - component: {fileID: 1283665432} - - component: {fileID: 1283665431} + - component: {fileID: 1565511678} + - component: {fileID: 1565511677} m_Layer: 0 - m_Name: SRP - VisibleOutofMask 3 + m_Name: Grid - Masked m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1283665430 +--- !u!156049354 &1565511677 +Grid: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1565511676} + m_Enabled: 1 + m_CellSize: {x: 1, y: 1, z: 0} + m_CellGap: {x: 0, y: 0, z: 0} + m_CellLayout: 0 + m_CellSwizzle: 0 +--- !u!4 &1565511678 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1283665429} + m_GameObject: {fileID: 1565511676} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 9, y: -4, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1448817526} + - {fileID: 232875265} + - {fileID: 669558726} + - {fileID: 913442845} + - {fileID: 1771462384} + - {fileID: 1724484958} + - {fileID: 1171950134} + - {fileID: 150661154} + - {fileID: 1378598773} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1593276510 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1593276511} + - component: {fileID: 1593276513} + - component: {fileID: 1593276512} + m_Layer: 0 + m_Name: Chunk - Shader - None + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1593276511 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1593276510} serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 300172612} + m_Father: {fileID: 864839693} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!483693784 &1283665431 +--- !u!483693784 &1593276512 TilemapRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1283665429} + m_GameObject: {fileID: 1593276510} m_Enabled: 1 m_CastShadows: 0 m_ReceiveShadows: 0 @@ -6730,7 +9699,7 @@ TilemapRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, type: 2} + - {fileID: 2100000, guid: 978bb63e0ef6dca4ca9b8da87c3f7f75, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -6751,25 +9720,25 @@ TilemapRenderer: m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 - m_SortingOrder: 26 + m_SortingOrder: 1 m_ChunkSize: {x: 32, y: 32, z: 32} m_ChunkCullingBounds: {x: 0, y: 0, z: 0} m_MaxChunkCount: 16 m_MaxFrameAge: 16 m_SortOrder: 0 - m_Mode: 2 + m_Mode: 0 m_DetectChunkCullingBounds: 0 - m_MaskInteraction: 2 ---- !u!1839735485 &1283665432 + m_MaskInteraction: 0 +--- !u!1839735485 &1593276513 Tilemap: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1283665429} + m_GameObject: {fileID: 1593276510} m_Enabled: 1 m_Tiles: - - first: {x: -5, y: 3, z: 0} + - first: {x: -10, y: 3, z: 0} second: serializedVersion: 2 m_TileIndex: 0 @@ -6811,8 +9780,8 @@ Tilemap: m_TileObjectToInstantiateArray: [] m_AnimationFrameRate: 1 m_Color: {r: 1, g: 1, b: 1, a: 1} - m_Origin: {x: -9, y: 0, z: 0} - m_Size: {x: 9, y: 4, z: 1} + m_Origin: {x: -10, y: 0, z: 0} + m_Size: {x: 10, y: 4, z: 1} m_TileAnchor: {x: 0.5, y: 0.5, z: 0} m_TileOrientation: 0 m_TileOrientationMatrix: @@ -6832,7 +9801,7 @@ Tilemap: e31: 0 e32: 0 e33: 1 ---- !u!1 &1378598772 +--- !u!1 &1604267345 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -6840,38 +9809,38 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1378598773} - - component: {fileID: 1378598775} - - component: {fileID: 1378598774} + - component: {fileID: 1604267346} + - component: {fileID: 1604267348} + - component: {fileID: 1604267347} m_Layer: 0 - m_Name: SRP - None 3 + m_Name: SRP - None 2 m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1378598773 +--- !u!4 &1604267346 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1378598772} + m_GameObject: {fileID: 1604267345} serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 1565511678} + m_Father: {fileID: 300172612} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!483693784 &1378598774 +--- !u!483693784 &1604267347 TilemapRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1378598772} + m_GameObject: {fileID: 1604267345} m_Enabled: 1 m_CastShadows: 0 m_ReceiveShadows: 0 @@ -6909,9 +9878,9 @@ TilemapRenderer: m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} m_GlobalIlluminationMeshLod: 0 - m_SortingLayerID: 116359401 - m_SortingLayer: 1 - m_SortingOrder: 28 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 23 m_ChunkSize: {x: 32, y: 32, z: 32} m_ChunkCullingBounds: {x: 0, y: 0, z: 0} m_MaxChunkCount: 16 @@ -6920,16 +9889,16 @@ TilemapRenderer: m_Mode: 2 m_DetectChunkCullingBounds: 0 m_MaskInteraction: 0 ---- !u!1839735485 &1378598775 +--- !u!1839735485 &1604267348 Tilemap: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1378598772} + m_GameObject: {fileID: 1604267345} m_Enabled: 1 m_Tiles: - - first: {x: -3, y: 3, z: 0} + - first: {x: -8, y: 3, z: 0} second: serializedVersion: 2 m_TileIndex: 0 @@ -6992,7 +9961,7 @@ Tilemap: e31: 0 e32: 0 e33: 1 ---- !u!1 &1448817525 +--- !u!1 &1654606195 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -7000,38 +9969,38 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1448817526} - - component: {fileID: 1448817528} - - component: {fileID: 1448817527} + - component: {fileID: 1654606196} + - component: {fileID: 1654606198} + - component: {fileID: 1654606197} m_Layer: 0 - m_Name: SRP - VisibleInMask + m_Name: Chunk - Shader - VisibleOutofMask 2 m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1448817526 +--- !u!4 &1654606196 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1448817525} + m_GameObject: {fileID: 1654606195} serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 1565511678} + m_Father: {fileID: 205137524} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!483693784 &1448817527 +--- !u!483693784 &1654606197 TilemapRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1448817525} + m_GameObject: {fileID: 1654606195} m_Enabled: 1 m_CastShadows: 0 m_ReceiveShadows: 0 @@ -7050,7 +10019,7 @@ TilemapRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, type: 2} + - {fileID: 2100000, guid: 978bb63e0ef6dca4ca9b8da87c3f7f75, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -7071,25 +10040,25 @@ TilemapRenderer: m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 116359401 m_SortingLayer: 1 - m_SortingOrder: 20 + m_SortingOrder: 4 m_ChunkSize: {x: 32, y: 32, z: 32} m_ChunkCullingBounds: {x: 0, y: 0, z: 0} m_MaxChunkCount: 16 m_MaxFrameAge: 16 m_SortOrder: 0 - m_Mode: 2 + m_Mode: 0 m_DetectChunkCullingBounds: 0 - m_MaskInteraction: 1 ---- !u!1839735485 &1448817528 + m_MaskInteraction: 2 +--- !u!1839735485 &1654606198 Tilemap: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1448817525} + m_GameObject: {fileID: 1654606195} m_Enabled: 1 m_Tiles: - - first: {x: -11, y: 3, z: 0} + - first: {x: -7, y: 3, z: 0} second: serializedVersion: 2 m_TileIndex: 0 @@ -7131,8 +10100,8 @@ Tilemap: m_TileObjectToInstantiateArray: [] m_AnimationFrameRate: 1 m_Color: {r: 1, g: 1, b: 1, a: 1} - m_Origin: {x: -11, y: 0, z: 0} - m_Size: {x: 11, y: 4, z: 1} + m_Origin: {x: -9, y: 0, z: 0} + m_Size: {x: 9, y: 4, z: 1} m_TileAnchor: {x: 0.5, y: 0.5, z: 0} m_TileOrientation: 0 m_TileOrientationMatrix: @@ -7152,7 +10121,7 @@ Tilemap: e31: 0 e32: 0 e33: 1 ---- !u!1 &1455562696 +--- !u!1 &1671714892 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -7160,38 +10129,38 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1455562697} - - component: {fileID: 1455562699} - - component: {fileID: 1455562698} + - component: {fileID: 1671714893} + - component: {fileID: 1671714895} + - component: {fileID: 1671714894} m_Layer: 0 - m_Name: Chunk - VisibleOutofMask 2 + m_Name: Individual - VisibleInMask m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1455562697 +--- !u!4 &1671714893 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1455562696} + m_GameObject: {fileID: 1671714892} serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 1178893847} + m_Father: {fileID: 1004531377} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!483693784 &1455562698 +--- !u!483693784 &1671714894 TilemapRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1455562696} + m_GameObject: {fileID: 1671714892} m_Enabled: 1 m_CastShadows: 0 m_ReceiveShadows: 0 @@ -7231,25 +10200,25 @@ TilemapRenderer: m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 - m_SortingOrder: 4 + m_SortingOrder: 10 m_ChunkSize: {x: 32, y: 32, z: 32} m_ChunkCullingBounds: {x: 0, y: 0, z: 0} m_MaxChunkCount: 16 m_MaxFrameAge: 16 m_SortOrder: 0 - m_Mode: 0 + m_Mode: 1 m_DetectChunkCullingBounds: 0 - m_MaskInteraction: 2 ---- !u!1839735485 &1455562699 + m_MaskInteraction: 1 +--- !u!1839735485 &1671714895 Tilemap: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1455562696} + m_GameObject: {fileID: 1671714892} m_Enabled: 1 m_Tiles: - - first: {x: -7, y: 3, z: 0} + - first: {x: -11, y: 3, z: 0} second: serializedVersion: 2 m_TileIndex: 0 @@ -7291,8 +10260,8 @@ Tilemap: m_TileObjectToInstantiateArray: [] m_AnimationFrameRate: 1 m_Color: {r: 1, g: 1, b: 1, a: 1} - m_Origin: {x: -9, y: 0, z: 0} - m_Size: {x: 9, y: 4, z: 1} + m_Origin: {x: -11, y: 0, z: 0} + m_Size: {x: 11, y: 4, z: 1} m_TileAnchor: {x: 0.5, y: 0.5, z: 0} m_TileOrientation: 0 m_TileOrientationMatrix: @@ -7312,7 +10281,7 @@ Tilemap: e31: 0 e32: 0 e33: 1 ---- !u!1 &1519488780 +--- !u!1 &1724484957 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -7320,38 +10289,38 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1519488781} - - component: {fileID: 1519488783} - - component: {fileID: 1519488782} + - component: {fileID: 1724484958} + - component: {fileID: 1724484960} + - component: {fileID: 1724484959} m_Layer: 0 - m_Name: Individual - VisibleOutofMask 3 + m_Name: SRP - VisibleInMask 2 m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1519488781 +--- !u!4 &1724484958 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1519488780} + m_GameObject: {fileID: 1724484957} serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 1004531377} + m_Father: {fileID: 1565511678} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!483693784 &1519488782 +--- !u!483693784 &1724484959 TilemapRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1519488780} + m_GameObject: {fileID: 1724484957} m_Enabled: 1 m_CastShadows: 0 m_ReceiveShadows: 0 @@ -7389,27 +10358,27 @@ TilemapRenderer: m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} m_GlobalIlluminationMeshLod: 0 - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 16 + m_SortingLayerID: 116359401 + m_SortingLayer: 1 + m_SortingOrder: 25 m_ChunkSize: {x: 32, y: 32, z: 32} m_ChunkCullingBounds: {x: 0, y: 0, z: 0} m_MaxChunkCount: 16 m_MaxFrameAge: 16 m_SortOrder: 0 - m_Mode: 1 + m_Mode: 2 m_DetectChunkCullingBounds: 0 - m_MaskInteraction: 2 ---- !u!1839735485 &1519488783 + m_MaskInteraction: 1 +--- !u!1839735485 &1724484960 Tilemap: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1519488780} + m_GameObject: {fileID: 1724484957} m_Enabled: 1 m_Tiles: - - first: {x: -5, y: 3, z: 0} + - first: {x: -6, y: 3, z: 0} second: serializedVersion: 2 m_TileIndex: 0 @@ -7451,8 +10420,8 @@ Tilemap: m_TileObjectToInstantiateArray: [] m_AnimationFrameRate: 1 m_Color: {r: 1, g: 1, b: 1, a: 1} - m_Origin: {x: -9, y: 0, z: 0} - m_Size: {x: 9, y: 4, z: 1} + m_Origin: {x: -11, y: 0, z: 0} + m_Size: {x: 11, y: 4, z: 1} m_TileAnchor: {x: 0.5, y: 0.5, z: 0} m_TileOrientation: 0 m_TileOrientationMatrix: @@ -7472,7 +10441,7 @@ Tilemap: e31: 0 e32: 0 e33: 1 ---- !u!1 &1530200892 +--- !u!1 &1734833072 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -7480,38 +10449,38 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1530200893} - - component: {fileID: 1530200895} - - component: {fileID: 1530200894} + - component: {fileID: 1734833073} + - component: {fileID: 1734833075} + - component: {fileID: 1734833074} m_Layer: 0 - m_Name: Individual - VisibleOutofMask 2 + m_Name: Chunk - Shader - VisibleOutofMask 2 m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1530200893 +--- !u!4 &1734833073 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1530200892} + m_GameObject: {fileID: 1734833072} serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 1892672332} + m_Father: {fileID: 864839693} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!483693784 &1530200894 +--- !u!483693784 &1734833074 TilemapRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1530200892} + m_GameObject: {fileID: 1734833072} m_Enabled: 1 m_CastShadows: 0 m_ReceiveShadows: 0 @@ -7530,7 +10499,7 @@ TilemapRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, type: 2} + - {fileID: 2100000, guid: 978bb63e0ef6dca4ca9b8da87c3f7f75, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -7549,24 +10518,24 @@ TilemapRenderer: m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} m_GlobalIlluminationMeshLod: 0 - m_SortingLayerID: 116359401 - m_SortingLayer: 1 - m_SortingOrder: 14 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 4 m_ChunkSize: {x: 32, y: 32, z: 32} m_ChunkCullingBounds: {x: 0, y: 0, z: 0} m_MaxChunkCount: 16 m_MaxFrameAge: 16 m_SortOrder: 0 - m_Mode: 1 + m_Mode: 0 m_DetectChunkCullingBounds: 0 m_MaskInteraction: 2 ---- !u!1839735485 &1530200895 +--- !u!1839735485 &1734833075 Tilemap: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1530200892} + m_GameObject: {fileID: 1734833072} m_Enabled: 1 m_Tiles: - first: {x: -7, y: 3, z: 0} @@ -7632,7 +10601,7 @@ Tilemap: e31: 0 e32: 0 e33: 1 ---- !u!1 &1559275874 +--- !u!1 &1758990593 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -7640,23 +10609,23 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1559275875} - - component: {fileID: 1559275877} - - component: {fileID: 1559275876} + - component: {fileID: 1758990594} + - component: {fileID: 1758990596} + - component: {fileID: 1758990595} m_Layer: 0 - m_Name: Individual - None 2 + m_Name: Individual - VisibleInMask 3 m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1559275875 +--- !u!4 &1758990594 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1559275874} + m_GameObject: {fileID: 1758990593} serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -7665,13 +10634,13 @@ Transform: m_Children: [] m_Father: {fileID: 1004531377} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!483693784 &1559275876 +--- !u!483693784 &1758990595 TilemapRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1559275874} + m_GameObject: {fileID: 1758990593} m_Enabled: 1 m_CastShadows: 0 m_ReceiveShadows: 0 @@ -7711,7 +10680,7 @@ TilemapRenderer: m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 - m_SortingOrder: 13 + m_SortingOrder: 17 m_ChunkSize: {x: 32, y: 32, z: 32} m_ChunkCullingBounds: {x: 0, y: 0, z: 0} m_MaxChunkCount: 16 @@ -7719,17 +10688,17 @@ TilemapRenderer: m_SortOrder: 0 m_Mode: 1 m_DetectChunkCullingBounds: 0 - m_MaskInteraction: 0 ---- !u!1839735485 &1559275877 + m_MaskInteraction: 1 +--- !u!1839735485 &1758990596 Tilemap: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1559275874} + m_GameObject: {fileID: 1758990593} m_Enabled: 1 m_Tiles: - - first: {x: -8, y: 3, z: 0} + - first: {x: -4, y: 3, z: 0} second: serializedVersion: 2 m_TileIndex: 0 @@ -7771,8 +10740,8 @@ Tilemap: m_TileObjectToInstantiateArray: [] m_AnimationFrameRate: 1 m_Color: {r: 1, g: 1, b: 1, a: 1} - m_Origin: {x: -10, y: 0, z: 0} - m_Size: {x: 10, y: 4, z: 1} + m_Origin: {x: -11, y: 0, z: 0} + m_Size: {x: 11, y: 4, z: 1} m_TileAnchor: {x: 0.5, y: 0.5, z: 0} m_TileOrientation: 0 m_TileOrientationMatrix: @@ -7792,60 +10761,7 @@ Tilemap: e31: 0 e32: 0 e33: 1 ---- !u!1 &1565511676 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1565511678} - - component: {fileID: 1565511677} - m_Layer: 0 - m_Name: Grid - Masked - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!156049354 &1565511677 -Grid: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1565511676} - m_Enabled: 1 - m_CellSize: {x: 1, y: 1, z: 0} - m_CellGap: {x: 0, y: 0, z: 0} - m_CellLayout: 0 - m_CellSwizzle: 0 ---- !u!4 &1565511678 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1565511676} - serializedVersion: 2 - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 9, y: -4, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1448817526} - - {fileID: 232875265} - - {fileID: 669558726} - - {fileID: 913442845} - - {fileID: 1771462384} - - {fileID: 1724484958} - - {fileID: 1171950134} - - {fileID: 150661154} - - {fileID: 1378598773} - m_Father: {fileID: 0} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1604267345 +--- !u!1 &1760346235 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -7853,38 +10769,38 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1604267346} - - component: {fileID: 1604267348} - - component: {fileID: 1604267347} + - component: {fileID: 1760346236} + - component: {fileID: 1760346238} + - component: {fileID: 1760346237} m_Layer: 0 - m_Name: SRP - None 2 + m_Name: Chunk - Shader - VisibleInMask 3 m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1604267346 +--- !u!4 &1760346236 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1604267345} + m_GameObject: {fileID: 1760346235} serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 300172612} + m_Father: {fileID: 864839693} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!483693784 &1604267347 +--- !u!483693784 &1760346237 TilemapRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1604267345} + m_GameObject: {fileID: 1760346235} m_Enabled: 1 m_CastShadows: 0 m_ReceiveShadows: 0 @@ -7903,7 +10819,7 @@ TilemapRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, type: 2} + - {fileID: 2100000, guid: 978bb63e0ef6dca4ca9b8da87c3f7f75, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -7924,25 +10840,25 @@ TilemapRenderer: m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 - m_SortingOrder: 23 + m_SortingOrder: 7 m_ChunkSize: {x: 32, y: 32, z: 32} m_ChunkCullingBounds: {x: 0, y: 0, z: 0} m_MaxChunkCount: 16 m_MaxFrameAge: 16 m_SortOrder: 0 - m_Mode: 2 + m_Mode: 0 m_DetectChunkCullingBounds: 0 - m_MaskInteraction: 0 ---- !u!1839735485 &1604267348 + m_MaskInteraction: 1 +--- !u!1839735485 &1760346238 Tilemap: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1604267345} + m_GameObject: {fileID: 1760346235} m_Enabled: 1 m_Tiles: - - first: {x: -8, y: 3, z: 0} + - first: {x: -4, y: 3, z: 0} second: serializedVersion: 2 m_TileIndex: 0 @@ -7984,8 +10900,8 @@ Tilemap: m_TileObjectToInstantiateArray: [] m_AnimationFrameRate: 1 m_Color: {r: 1, g: 1, b: 1, a: 1} - m_Origin: {x: -10, y: 0, z: 0} - m_Size: {x: 10, y: 4, z: 1} + m_Origin: {x: -11, y: 0, z: 0} + m_Size: {x: 11, y: 4, z: 1} m_TileAnchor: {x: 0.5, y: 0.5, z: 0} m_TileOrientation: 0 m_TileOrientationMatrix: @@ -8005,7 +10921,7 @@ Tilemap: e31: 0 e32: 0 e33: 1 ---- !u!1 &1671714892 +--- !u!1 &1762039871 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -8013,38 +10929,38 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1671714893} - - component: {fileID: 1671714895} - - component: {fileID: 1671714894} + - component: {fileID: 1762039872} + - component: {fileID: 1762039874} + - component: {fileID: 1762039873} m_Layer: 0 - m_Name: Individual - VisibleInMask + m_Name: Chunk - Shader - None 2 m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1671714893 +--- !u!4 &1762039872 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1671714892} + m_GameObject: {fileID: 1762039871} serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 1004531377} + m_Father: {fileID: 864839693} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!483693784 &1671714894 +--- !u!483693784 &1762039873 TilemapRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1671714892} + m_GameObject: {fileID: 1762039871} m_Enabled: 1 m_CastShadows: 0 m_ReceiveShadows: 0 @@ -8063,7 +10979,7 @@ TilemapRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, type: 2} + - {fileID: 2100000, guid: 978bb63e0ef6dca4ca9b8da87c3f7f75, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -8084,25 +11000,25 @@ TilemapRenderer: m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 - m_SortingOrder: 10 + m_SortingOrder: 3 m_ChunkSize: {x: 32, y: 32, z: 32} m_ChunkCullingBounds: {x: 0, y: 0, z: 0} m_MaxChunkCount: 16 m_MaxFrameAge: 16 m_SortOrder: 0 - m_Mode: 1 + m_Mode: 0 m_DetectChunkCullingBounds: 0 - m_MaskInteraction: 1 ---- !u!1839735485 &1671714895 + m_MaskInteraction: 0 +--- !u!1839735485 &1762039874 Tilemap: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1671714892} + m_GameObject: {fileID: 1762039871} m_Enabled: 1 m_Tiles: - - first: {x: -11, y: 3, z: 0} + - first: {x: -8, y: 3, z: 0} second: serializedVersion: 2 m_TileIndex: 0 @@ -8144,8 +11060,8 @@ Tilemap: m_TileObjectToInstantiateArray: [] m_AnimationFrameRate: 1 m_Color: {r: 1, g: 1, b: 1, a: 1} - m_Origin: {x: -11, y: 0, z: 0} - m_Size: {x: 11, y: 4, z: 1} + m_Origin: {x: -10, y: 0, z: 0} + m_Size: {x: 10, y: 4, z: 1} m_TileAnchor: {x: 0.5, y: 0.5, z: 0} m_TileOrientation: 0 m_TileOrientationMatrix: @@ -8165,31 +11081,31 @@ Tilemap: e31: 0 e32: 0 e33: 1 ---- !u!1 &1724484957 +--- !u!1 &1771462383 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1724484958} - - component: {fileID: 1724484960} - - component: {fileID: 1724484959} + serializedVersion: 6 + m_Component: + - component: {fileID: 1771462384} + - component: {fileID: 1771462386} + - component: {fileID: 1771462385} m_Layer: 0 - m_Name: SRP - VisibleInMask 2 + m_Name: SRP - VisibleOutofMask 2 m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1724484958 +--- !u!4 &1771462384 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1724484957} + m_GameObject: {fileID: 1771462383} serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -8198,13 +11114,13 @@ Transform: m_Children: [] m_Father: {fileID: 1565511678} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!483693784 &1724484959 +--- !u!483693784 &1771462385 TilemapRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1724484957} + m_GameObject: {fileID: 1771462383} m_Enabled: 1 m_CastShadows: 0 m_ReceiveShadows: 0 @@ -8244,7 +11160,7 @@ TilemapRenderer: m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 116359401 m_SortingLayer: 1 - m_SortingOrder: 25 + m_SortingOrder: 24 m_ChunkSize: {x: 32, y: 32, z: 32} m_ChunkCullingBounds: {x: 0, y: 0, z: 0} m_MaxChunkCount: 16 @@ -8252,17 +11168,17 @@ TilemapRenderer: m_SortOrder: 0 m_Mode: 2 m_DetectChunkCullingBounds: 0 - m_MaskInteraction: 1 ---- !u!1839735485 &1724484960 + m_MaskInteraction: 2 +--- !u!1839735485 &1771462386 Tilemap: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1724484957} + m_GameObject: {fileID: 1771462383} m_Enabled: 1 m_Tiles: - - first: {x: -6, y: 3, z: 0} + - first: {x: -7, y: 3, z: 0} second: serializedVersion: 2 m_TileIndex: 0 @@ -8304,8 +11220,8 @@ Tilemap: m_TileObjectToInstantiateArray: [] m_AnimationFrameRate: 1 m_Color: {r: 1, g: 1, b: 1, a: 1} - m_Origin: {x: -11, y: 0, z: 0} - m_Size: {x: 11, y: 4, z: 1} + m_Origin: {x: -9, y: 0, z: 0} + m_Size: {x: 9, y: 4, z: 1} m_TileAnchor: {x: 0.5, y: 0.5, z: 0} m_TileOrientation: 0 m_TileOrientationMatrix: @@ -8325,7 +11241,7 @@ Tilemap: e31: 0 e32: 0 e33: 1 ---- !u!1 &1758990593 +--- !u!1 &1797162801 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -8333,38 +11249,38 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1758990594} - - component: {fileID: 1758990596} - - component: {fileID: 1758990595} + - component: {fileID: 1797162802} + - component: {fileID: 1797162804} + - component: {fileID: 1797162803} m_Layer: 0 - m_Name: Individual - VisibleInMask 3 + m_Name: Chunk - Shader - VisibleInMask 2 m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1758990594 +--- !u!4 &1797162802 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1758990593} + m_GameObject: {fileID: 1797162801} serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 1004531377} + m_Father: {fileID: 864839693} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!483693784 &1758990595 +--- !u!483693784 &1797162803 TilemapRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1758990593} + m_GameObject: {fileID: 1797162801} m_Enabled: 1 m_CastShadows: 0 m_ReceiveShadows: 0 @@ -8383,7 +11299,7 @@ TilemapRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, type: 2} + - {fileID: 2100000, guid: 978bb63e0ef6dca4ca9b8da87c3f7f75, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -8404,25 +11320,25 @@ TilemapRenderer: m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 - m_SortingOrder: 17 + m_SortingOrder: 5 m_ChunkSize: {x: 32, y: 32, z: 32} m_ChunkCullingBounds: {x: 0, y: 0, z: 0} m_MaxChunkCount: 16 m_MaxFrameAge: 16 m_SortOrder: 0 - m_Mode: 1 + m_Mode: 0 m_DetectChunkCullingBounds: 0 m_MaskInteraction: 1 ---- !u!1839735485 &1758990596 +--- !u!1839735485 &1797162804 Tilemap: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1758990593} + m_GameObject: {fileID: 1797162801} m_Enabled: 1 m_Tiles: - - first: {x: -4, y: 3, z: 0} + - first: {x: -6, y: 3, z: 0} second: serializedVersion: 2 m_TileIndex: 0 @@ -8485,7 +11401,7 @@ Tilemap: e31: 0 e32: 0 e33: 1 ---- !u!1 &1771462383 +--- !u!1 &1826794933 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -8493,38 +11409,38 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1771462384} - - component: {fileID: 1771462386} - - component: {fileID: 1771462385} + - component: {fileID: 1826794934} + - component: {fileID: 1826794936} + - component: {fileID: 1826794935} m_Layer: 0 - m_Name: SRP - VisibleOutofMask 2 + m_Name: SRP - VisibleOutofMask m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1771462384 +--- !u!4 &1826794934 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1771462383} + m_GameObject: {fileID: 1826794933} serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 1565511678} + m_Father: {fileID: 300172612} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!483693784 &1771462385 +--- !u!483693784 &1826794935 TilemapRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1771462383} + m_GameObject: {fileID: 1826794933} m_Enabled: 1 m_CastShadows: 0 m_ReceiveShadows: 0 @@ -8562,9 +11478,9 @@ TilemapRenderer: m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} m_GlobalIlluminationMeshLod: 0 - m_SortingLayerID: 116359401 - m_SortingLayer: 1 - m_SortingOrder: 24 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 22 m_ChunkSize: {x: 32, y: 32, z: 32} m_ChunkCullingBounds: {x: 0, y: 0, z: 0} m_MaxChunkCount: 16 @@ -8573,16 +11489,16 @@ TilemapRenderer: m_Mode: 2 m_DetectChunkCullingBounds: 0 m_MaskInteraction: 2 ---- !u!1839735485 &1771462386 +--- !u!1839735485 &1826794936 Tilemap: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1771462383} + m_GameObject: {fileID: 1826794933} m_Enabled: 1 m_Tiles: - - first: {x: -7, y: 3, z: 0} + - first: {x: -9, y: 3, z: 0} second: serializedVersion: 2 m_TileIndex: 0 @@ -8645,7 +11561,7 @@ Tilemap: e31: 0 e32: 0 e33: 1 ---- !u!1 &1826794933 +--- !u!1 &1836751353 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -8653,38 +11569,38 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1826794934} - - component: {fileID: 1826794936} - - component: {fileID: 1826794935} + - component: {fileID: 1836751354} + - component: {fileID: 1836751356} + - component: {fileID: 1836751355} m_Layer: 0 - m_Name: SRP - VisibleOutofMask + m_Name: Chunk - Shader - None 3 m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1826794934 +--- !u!4 &1836751354 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1826794933} + m_GameObject: {fileID: 1836751353} serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 300172612} + m_Father: {fileID: 205137524} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!483693784 &1826794935 +--- !u!483693784 &1836751355 TilemapRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1826794933} + m_GameObject: {fileID: 1836751353} m_Enabled: 1 m_CastShadows: 0 m_ReceiveShadows: 0 @@ -8703,7 +11619,7 @@ TilemapRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, type: 2} + - {fileID: 2100000, guid: 978bb63e0ef6dca4ca9b8da87c3f7f75, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -8722,27 +11638,27 @@ TilemapRenderer: m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} m_GlobalIlluminationMeshLod: 0 - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 22 + m_SortingLayerID: 116359401 + m_SortingLayer: 1 + m_SortingOrder: 8 m_ChunkSize: {x: 32, y: 32, z: 32} m_ChunkCullingBounds: {x: 0, y: 0, z: 0} m_MaxChunkCount: 16 m_MaxFrameAge: 16 m_SortOrder: 0 - m_Mode: 2 + m_Mode: 0 m_DetectChunkCullingBounds: 0 - m_MaskInteraction: 2 ---- !u!1839735485 &1826794936 + m_MaskInteraction: 0 +--- !u!1839735485 &1836751356 Tilemap: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1826794933} + m_GameObject: {fileID: 1836751353} m_Enabled: 1 m_Tiles: - - first: {x: -9, y: 3, z: 0} + - first: {x: -3, y: 3, z: 0} second: serializedVersion: 2 m_TileIndex: 0 @@ -8784,8 +11700,8 @@ Tilemap: m_TileObjectToInstantiateArray: [] m_AnimationFrameRate: 1 m_Color: {r: 1, g: 1, b: 1, a: 1} - m_Origin: {x: -9, y: 0, z: 0} - m_Size: {x: 9, y: 4, z: 1} + m_Origin: {x: -10, y: 0, z: 0} + m_Size: {x: 10, y: 4, z: 1} m_TileAnchor: {x: 0.5, y: 0.5, z: 0} m_TileOrientation: 0 m_TileOrientationMatrix: @@ -9338,6 +12254,166 @@ Tilemap: e31: 0 e32: 0 e33: 1 +--- !u!1 &2088643745 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2088643746} + - component: {fileID: 2088643748} + - component: {fileID: 2088643747} + m_Layer: 0 + m_Name: Chunk - Shader - None 2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2088643746 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2088643745} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 205137524} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!483693784 &2088643747 +TilemapRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2088643745} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 978bb63e0ef6dca4ca9b8da87c3f7f75, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 116359401 + m_SortingLayer: 1 + m_SortingOrder: 3 + m_ChunkSize: {x: 32, y: 32, z: 32} + m_ChunkCullingBounds: {x: 0, y: 0, z: 0} + m_MaxChunkCount: 16 + m_MaxFrameAge: 16 + m_SortOrder: 0 + m_Mode: 0 + m_DetectChunkCullingBounds: 0 + m_MaskInteraction: 0 +--- !u!1839735485 &2088643748 +Tilemap: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2088643745} + m_Enabled: 1 + m_Tiles: + - first: {x: -8, y: 3, z: 0} + second: + serializedVersion: 2 + m_TileIndex: 0 + m_TileSpriteIndex: 0 + m_TileMatrixIndex: 0 + m_TileColorIndex: 0 + m_TileObjectToInstantiateIndex: 65535 + dummyAlignment: 0 + m_AllTileFlags: 1073741825 + m_AnimatedTiles: {} + m_TileAssetArray: + - m_RefCount: 1 + m_Data: {fileID: 11400000, guid: 898ab856ab374ef428ab13e10c948a0d, type: 2} + m_TileSpriteArray: + - m_RefCount: 1 + m_Data: {fileID: 21300000, guid: 0a451cb9697c39044815bbd2d048826c, type: 3} + m_TileMatrixArray: + - m_RefCount: 1 + m_Data: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_TileColorArray: + - m_RefCount: 1 + m_Data: {r: 0.94482756, g: 1, b: 0, a: 1} + m_TileObjectToInstantiateArray: [] + m_AnimationFrameRate: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Origin: {x: -10, y: 0, z: 0} + m_Size: {x: 10, y: 4, z: 1} + m_TileAnchor: {x: 0.5, y: 0.5, z: 0} + m_TileOrientation: 0 + m_TileOrientationMatrix: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 --- !u!1660057539 &9223372036854775807 SceneRoots: m_ObjectHideFlags: 0 @@ -9346,7 +12422,10 @@ SceneRoots: - {fileID: 1178893847} - {fileID: 1004531377} - {fileID: 300172612} + - {fileID: 864839693} - {fileID: 214346214} - {fileID: 1892672332} - {fileID: 1565511678} + - {fileID: 205137524} - {fileID: 551400983} + - {fileID: 76593867} diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/088_TilemapRenderer_MaskInteraction/088_TilemapRenderer_Mask.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/088_TilemapRenderer_MaskInteraction/088_TilemapRenderer_Mask.mat new file mode 100644 index 00000000000..e9ac9bc5969 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/088_TilemapRenderer_MaskInteraction/088_TilemapRenderer_Mask.mat @@ -0,0 +1,84 @@ +%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: 088_TilemapRenderer_Mask + m_Shader: {fileID: 4800000, guid: 780a6e243c11fd14dbb3055ebe02941b, type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: [] + m_InvalidKeywords: [] + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _BumpScale: 1 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _UVSec: 0 + - _ZWrite: 1 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/088_TilemapRenderer_MaskInteraction/088_TilemapRenderer_Mask.mat.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/088_TilemapRenderer_MaskInteraction/088_TilemapRenderer_Mask.mat.meta new file mode 100644 index 00000000000..03f83609389 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/088_TilemapRenderer_MaskInteraction/088_TilemapRenderer_Mask.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1024265d4663d5840bab44e9ea802ee1 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/088_TilemapRenderer_MaskInteraction/088_TilemapRenderer_Mask.shader b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/088_TilemapRenderer_MaskInteraction/088_TilemapRenderer_Mask.shader new file mode 100644 index 00000000000..872ffb4c9aa --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/088_TilemapRenderer_MaskInteraction/088_TilemapRenderer_Mask.shader @@ -0,0 +1,53 @@ +Shader "088/Mask" +{ + Properties + { + _MainTex("Base RGBA", 2D) = "white" {} + } + + SubShader + { + Tags { "RenderType" = "Opaque" "Queue"="Transparent-10"} + ZWrite Off + ZTest Always + Fog { Mode Off } + Lighting Off + Cull Off + + Pass + { + Stencil { + Ref 1 + WriteMask 1 + Comp Always + Pass Replace + } + ColorMask 0 + + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + + #include "UnityCG.cginc" + + struct appdata { + float4 vertex : POSITION; + }; + + struct v2f { + float4 pos : SV_POSITION; + }; + + v2f vert(appdata v) { + v2f o; + o.pos = UnityObjectToClipPos(v.vertex); + return o; + } + + fixed4 frag(v2f i) : SV_Target { + return fixed4(0,0,0,0); + } + ENDCG + } + } +} diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/088_TilemapRenderer_MaskInteraction/088_TilemapRenderer_Mask.shader.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/088_TilemapRenderer_MaskInteraction/088_TilemapRenderer_Mask.shader.meta new file mode 100644 index 00000000000..f2bf748dd87 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/088_TilemapRenderer_MaskInteraction/088_TilemapRenderer_Mask.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 780a6e243c11fd14dbb3055ebe02941b +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/088_TilemapRenderer_MaskInteraction/088_TilemapRenderer_Masked.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/088_TilemapRenderer_MaskInteraction/088_TilemapRenderer_Masked.mat new file mode 100644 index 00000000000..e8e01da0fd9 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/088_TilemapRenderer_MaskInteraction/088_TilemapRenderer_Masked.mat @@ -0,0 +1,84 @@ +%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: 088_TilemapRenderer_Masked + m_Shader: {fileID: 4800000, guid: e3f127579f692074abe997d4619f18fb, type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: [] + m_InvalidKeywords: [] + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _BumpScale: 1 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _UVSec: 0 + - _ZWrite: 1 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/088_TilemapRenderer_MaskInteraction/088_TilemapRenderer_Masked.mat.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/088_TilemapRenderer_MaskInteraction/088_TilemapRenderer_Masked.mat.meta new file mode 100644 index 00000000000..520cdd1013e --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/088_TilemapRenderer_MaskInteraction/088_TilemapRenderer_Masked.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 978bb63e0ef6dca4ca9b8da87c3f7f75 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/088_TilemapRenderer_MaskInteraction/088_TilemapRenderer_Masked.shader b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/088_TilemapRenderer_MaskInteraction/088_TilemapRenderer_Masked.shader new file mode 100644 index 00000000000..22b1e2ddf6e --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/088_TilemapRenderer_MaskInteraction/088_TilemapRenderer_Masked.shader @@ -0,0 +1,222 @@ +Shader "088/Masked" +{ + Properties + { + _MainTex ("Sprite Texture", 2D) = "white" {} + + // Legacy properties. They're here so that materials using this shader can gracefully fallback to the legacy sprite shader. + [HideInInspector] _Color ("Tint", Color) = (1,1,1,1) + [HideInInspector] PixelSnap ("Pixel snap", Float) = 0 + [HideInInspector] _RendererColor ("RendererColor", Color) = (1,1,1,1) + [HideInInspector] _AlphaTex ("External Alpha", 2D) = "white" {} + [HideInInspector] _EnableExternalAlpha ("Enable External Alpha", Float) = 0 + } + + SubShader + { + Tags {"Queue" = "Transparent" "RenderType" = "Transparent" "RenderPipeline" = "UniversalPipeline" } + + Blend SrcAlpha OneMinusSrcAlpha, One OneMinusSrcAlpha + Cull Off + ZWrite Off + + Pass + { + Tags { "LightMode" = "Universal2D" } + + Stencil { + Ref 1 + ReadMask 1 + Comp NotEqual + Pass Keep + } + + HLSLPROGRAM + #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl" + #include "Packages/com.unity.render-pipelines.universal/Shaders/2D/Include/Core2D.hlsl" + #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/DebugMipmapStreamingMacros.hlsl" + #if defined(DEBUG_DISPLAY) + #include "Packages/com.unity.render-pipelines.universal/Shaders/2D/Include/InputData2D.hlsl" + #include "Packages/com.unity.render-pipelines.universal/Shaders/2D/Include/SurfaceData2D.hlsl" + #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Debug/Debugging2D.hlsl" + #endif + + #pragma vertex UnlitVertex + #pragma fragment UnlitFragment + + // GPU Instancing + #pragma multi_compile_instancing + #pragma multi_compile _ DEBUG_DISPLAY SKINNED_SPRITE + + struct Attributes + { + float3 positionOS : POSITION; + float4 color : COLOR; + float2 uv : TEXCOORD0; + UNITY_SKINNED_VERTEX_INPUTS + UNITY_VERTEX_INPUT_INSTANCE_ID + }; + + struct Varyings + { + float4 positionCS : SV_POSITION; + half4 color : COLOR; + float2 uv : TEXCOORD0; + #if defined(DEBUG_DISPLAY) + float3 positionWS : TEXCOORD2; + #endif + UNITY_VERTEX_OUTPUT_STEREO + }; + + TEXTURE2D(_MainTex); + SAMPLER(sampler_MainTex); + UNITY_TEXTURE_STREAMING_DEBUG_VARS_FOR_TEX(_MainTex); + + // NOTE: Do not ifdef the properties here as SRP batcher can not handle different layouts. + CBUFFER_START(UnityPerMaterial) + half4 _Color; + CBUFFER_END + + Varyings UnlitVertex(Attributes v) + { + Varyings o = (Varyings)0; + UNITY_SETUP_INSTANCE_ID(v); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); + UNITY_SKINNED_VERTEX_COMPUTE(v); + + SetUpSpriteInstanceProperties(); + v.positionOS = UnityFlipSprite(v.positionOS, unity_SpriteProps.xy); + o.positionCS = TransformObjectToHClip(v.positionOS); + #if defined(DEBUG_DISPLAY) + o.positionWS = TransformObjectToWorld(v.positionOS); + #endif + o.uv = v.uv; + o.color = v.color * _Color * unity_SpriteColor; + return o; + } + + half4 UnlitFragment(Varyings i) : SV_Target + { + float4 mainTex = i.color * SAMPLE_TEXTURE2D(_MainTex, sampler_MainTex, i.uv); + + #if defined(DEBUG_DISPLAY) + SurfaceData2D surfaceData; + InputData2D inputData; + half4 debugColor = 0; + + InitializeSurfaceData(mainTex.rgb, mainTex.a, surfaceData); + InitializeInputData(i.uv, inputData); + SETUP_DEBUG_TEXTURE_DATA_2D_NO_TS(inputData, i.positionWS, i.positionCS, _MainTex); + + if(CanDebugOverrideOutputColor(surfaceData, inputData, debugColor)) + { + return debugColor; + } + #endif + + return mainTex; + } + ENDHLSL + } + + Pass + { + Tags { "LightMode" = "UniversalForward" "Queue"="Transparent" "RenderType"="Transparent"} + + Stencil { + Ref 1 + ReadMask 1 + Comp NotEqual + Pass Keep + } + + HLSLPROGRAM + #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl" + #include "Packages/com.unity.render-pipelines.universal/Shaders/2D/Include/Core2D.hlsl" + #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/DebugMipmapStreamingMacros.hlsl" + #if defined(DEBUG_DISPLAY) + #include "Packages/com.unity.render-pipelines.universal/Shaders/2D/Include/InputData2D.hlsl" + #include "Packages/com.unity.render-pipelines.universal/Shaders/2D/Include/SurfaceData2D.hlsl" + #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Debug/Debugging2D.hlsl" + #endif + + #pragma vertex UnlitVertex + #pragma fragment UnlitFragment + + // GPU Instancing + #pragma multi_compile_instancing + #pragma multi_compile _ SKINNED_SPRITE + #pragma multi_compile_fragment _ DEBUG_DISPLAY + + struct Attributes + { + float3 positionOS : POSITION; + float4 color : COLOR; + float2 uv : TEXCOORD0; + UNITY_SKINNED_VERTEX_INPUTS + UNITY_VERTEX_INPUT_INSTANCE_ID + }; + + struct Varyings + { + float4 positionCS : SV_POSITION; + float4 color : COLOR; + float2 uv : TEXCOORD0; + #if defined(DEBUG_DISPLAY) + float3 positionWS : TEXCOORD2; + #endif + UNITY_VERTEX_OUTPUT_STEREO + }; + + TEXTURE2D(_MainTex); + SAMPLER(sampler_MainTex); + UNITY_TEXTURE_STREAMING_DEBUG_VARS_FOR_TEX(_MainTex); + + // NOTE: Do not ifdef the properties here as SRP batcher can not handle different layouts. + CBUFFER_START( UnityPerMaterial ) + half4 _Color; + CBUFFER_END + + Varyings UnlitVertex(Attributes attributes) + { + Varyings o = (Varyings)0; + UNITY_SETUP_INSTANCE_ID(attributes); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); + UNITY_SKINNED_VERTEX_COMPUTE(attributes); + + SetUpSpriteInstanceProperties(); + attributes.positionOS = UnityFlipSprite(attributes.positionOS, unity_SpriteProps.xy); + o.positionCS = TransformObjectToHClip(attributes.positionOS); + #if defined(DEBUG_DISPLAY) + o.positionWS = TransformObjectToWorld(attributes.positionOS); + #endif + o.uv = attributes.uv; + o.color = attributes.color * _Color * unity_SpriteColor; + return o; + } + + float4 UnlitFragment(Varyings i) : SV_Target + { + float4 mainTex = i.color * SAMPLE_TEXTURE2D(_MainTex, sampler_MainTex, i.uv); + + #if defined(DEBUG_DISPLAY) + SurfaceData2D surfaceData; + InputData2D inputData; + half4 debugColor = 0; + + InitializeSurfaceData(mainTex.rgb, mainTex.a, surfaceData); + InitializeInputData(i.uv, inputData); + SETUP_DEBUG_TEXTURE_DATA_2D_NO_TS(inputData, i.positionWS, i.positionCS, _MainTex); + + if(CanDebugOverrideOutputColor(surfaceData, inputData, debugColor)) + { + return debugColor; + } + #endif + + return mainTex; + } + ENDHLSL + } + } +} diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/088_TilemapRenderer_MaskInteraction/088_TilemapRenderer_Masked.shader.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/088_TilemapRenderer_MaskInteraction/088_TilemapRenderer_Masked.shader.meta new file mode 100644 index 00000000000..5b6b1fda5d8 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/088_TilemapRenderer_MaskInteraction/088_TilemapRenderer_Masked.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: e3f127579f692074abe997d4619f18fb +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation.unity b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation.unity index 94120ec8f4e..9cfeec472e5 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation.unity +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation.unity @@ -1157,7 +1157,7 @@ Transform: m_GameObject: {fileID: 1056512284} serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 2, y: -2.5, z: 0} + m_LocalPosition: {x: 0.36, y: -2.53, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] @@ -1254,6 +1254,138 @@ Transform: m_Children: [] m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1308256570 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1308256573} + - component: {fileID: 1308256571} + - component: {fileID: 1308256572} + - component: {fileID: 1308256574} + m_Layer: 0 + m_Name: Square_Color_Animated + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!212 &1308256571 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1308256570} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: -876546973899608171, guid: 282e7d68bb3909e4198ef948bc86d2dc, 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: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: 7482667652216324306, guid: d5c9d2cd68de640458a93586c0457bfe, + type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1.9, y: 2.53} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!95 &1308256572 +Animator: + serializedVersion: 7 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1308256570} + m_Enabled: 1 + m_Avatar: {fileID: 0} + m_Controller: {fileID: 9100000, guid: 3ff3a8d67a7dacd4f910c6fcf6f59c32, type: 2} + m_CullingMode: 0 + m_UpdateMode: 1 + m_ApplyRootMotion: 0 + m_LinearVelocityBlending: 0 + m_StabilizeFeet: 0 + m_AnimatePhysics: 0 + m_WarningMessage: + m_HasTransformHierarchy: 1 + m_AllowConstantClipSamplingOptimization: 1 + m_KeepAnimatorStateOnDisable: 0 + m_WriteDefaultValuesOnDisable: 0 +--- !u!4 &1308256573 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1308256570} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1571339301} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1308256574 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1308256570} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 12866226dbc174b4e91bd7b00c3703d0, type: 3} + m_Name: + m_EditorClassIdentifier: Universal2DGraphicsTests::SetMaterialPropertyBlock + spriteRenderer: {fileID: 1308256571} + color: {r: 0, g: 0.048674583, b: 1, a: 1} + saturation: 0.3 + overwriteColor: 1 + overwriteSaturation: 1 --- !u!1 &1452826193 GameObject: m_ObjectHideFlags: 0 @@ -1345,6 +1477,38 @@ Transform: m_Children: [] m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1571339300 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1571339301} + m_Layer: 0 + m_Name: Parent + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1571339301 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1571339300} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 2.13, y: -3.12, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1308256573} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &2103671723 GameObject: m_ObjectHideFlags: 0 @@ -1511,7 +1675,7 @@ MonoBehaviour: ImageResolution: 2 ActiveImageTests: 1 ActivePixelTests: -1 - WaitFrames: 0 + WaitFrames: 100 XRCompatible: 0 gpuDrivenCompatible: 1 CheckMemoryAllocation: 0 @@ -1543,4 +1707,5 @@ SceneRoots: - {fileID: 625315505} - {fileID: 402672546} - {fileID: 1056512287} + - {fileID: 1571339301} - {fileID: 794361100} diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation/089_SpriteColorShader.shadergraph b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation/089_SpriteColorShader.shadergraph new file mode 100644 index 00000000000..41b8343edae --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation/089_SpriteColorShader.shadergraph @@ -0,0 +1,1281 @@ +{ + "m_SGVersion": 3, + "m_Type": "UnityEditor.ShaderGraph.GraphData", + "m_ObjectId": "946c50405d5f4964abef76197482f9f9", + "m_Properties": [ + { + "m_Id": "bb6c7b96ccf74780b552c446ed213030" + }, + { + "m_Id": "093150b2ec4f4628a1ddd1b2ce0ec4b3" + }, + { + "m_Id": "2aff8e3ec7ee4e9e8592b7aaf33d1b0f" + } + ], + "m_Keywords": [], + "m_Dropdowns": [], + "m_CategoryData": [ + { + "m_Id": "6b1be793778e442cb46b2317ffa89bbc" + } + ], + "m_Nodes": [ + { + "m_Id": "978e4667040842c994575e6bc4cccdde" + }, + { + "m_Id": "66f4525945bb4770989a4f4c27f98506" + }, + { + "m_Id": "fad59224b79045ad869132c73977edfc" + }, + { + "m_Id": "5e7b58a8e80e45a28e67d06fd1697651" + }, + { + "m_Id": "f3e77a1ca56d4f46bbd6dd483005f114" + }, + { + "m_Id": "f748a7e8bad442ce99b3705f56f14432" + }, + { + "m_Id": "f379acf84bfb4a7aae06b972f9be6af7" + }, + { + "m_Id": "63d4bde4b8f04f20b9b99182a11c56ac" + }, + { + "m_Id": "5ba9c35175a24a408cd4895bf02482b8" + }, + { + "m_Id": "0bfa88261932417aaf40089f20ae8d8f" + }, + { + "m_Id": "e29c93811c194d2b824b0879463f8777" + } + ], + "m_GroupDatas": [], + "m_StickyNoteDatas": [], + "m_Edges": [ + { + "m_OutputSlot": { + "m_Node": { + "m_Id": "0bfa88261932417aaf40089f20ae8d8f" + }, + "m_SlotId": 2 + }, + "m_InputSlot": { + "m_Node": { + "m_Id": "5e7b58a8e80e45a28e67d06fd1697651" + }, + "m_SlotId": 0 + } + }, + { + "m_OutputSlot": { + "m_Node": { + "m_Id": "5ba9c35175a24a408cd4895bf02482b8" + }, + "m_SlotId": 2 + }, + "m_InputSlot": { + "m_Node": { + "m_Id": "0bfa88261932417aaf40089f20ae8d8f" + }, + "m_SlotId": 0 + } + }, + { + "m_OutputSlot": { + "m_Node": { + "m_Id": "63d4bde4b8f04f20b9b99182a11c56ac" + }, + "m_SlotId": 0 + }, + "m_InputSlot": { + "m_Node": { + "m_Id": "5ba9c35175a24a408cd4895bf02482b8" + }, + "m_SlotId": 1 + } + }, + { + "m_OutputSlot": { + "m_Node": { + "m_Id": "e29c93811c194d2b824b0879463f8777" + }, + "m_SlotId": 0 + }, + "m_InputSlot": { + "m_Node": { + "m_Id": "0bfa88261932417aaf40089f20ae8d8f" + }, + "m_SlotId": 1 + } + }, + { + "m_OutputSlot": { + "m_Node": { + "m_Id": "f379acf84bfb4a7aae06b972f9be6af7" + }, + "m_SlotId": 0 + }, + "m_InputSlot": { + "m_Node": { + "m_Id": "5ba9c35175a24a408cd4895bf02482b8" + }, + "m_SlotId": 0 + } + }, + { + "m_OutputSlot": { + "m_Node": { + "m_Id": "f379acf84bfb4a7aae06b972f9be6af7" + }, + "m_SlotId": 7 + }, + "m_InputSlot": { + "m_Node": { + "m_Id": "f3e77a1ca56d4f46bbd6dd483005f114" + }, + "m_SlotId": 0 + } + }, + { + "m_OutputSlot": { + "m_Node": { + "m_Id": "f748a7e8bad442ce99b3705f56f14432" + }, + "m_SlotId": 0 + }, + "m_InputSlot": { + "m_Node": { + "m_Id": "f379acf84bfb4a7aae06b972f9be6af7" + }, + "m_SlotId": 1 + } + } + ], + "m_VertexContext": { + "m_Position": { + "x": 374.39996337890627, + "y": -204.00003051757813 + }, + "m_Blocks": [ + { + "m_Id": "978e4667040842c994575e6bc4cccdde" + }, + { + "m_Id": "66f4525945bb4770989a4f4c27f98506" + }, + { + "m_Id": "fad59224b79045ad869132c73977edfc" + } + ] + }, + "m_FragmentContext": { + "m_Position": { + "x": 374.39996337890627, + "y": -4.000025749206543 + }, + "m_Blocks": [ + { + "m_Id": "5e7b58a8e80e45a28e67d06fd1697651" + }, + { + "m_Id": "f3e77a1ca56d4f46bbd6dd483005f114" + } + ] + }, + "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": "43351345c97d4c0386105bd36806183d" + } + ] +} + +{ + "m_SGVersion": 3, + "m_Type": "UnityEditor.ShaderGraph.Internal.ColorShaderProperty", + "m_ObjectId": "093150b2ec4f4628a1ddd1b2ce0ec4b3", + "m_Guid": { + "m_GuidSerialized": "09016734-5a1d-48ee-9ef8-e66c5041c333" + }, + "m_Name": "Color", + "m_DefaultRefNameVersion": 1, + "m_RefNameGeneratedByDisplayName": "Color", + "m_DefaultReferenceName": "_Color", + "m_OverrideReferenceName": "", + "m_GeneratePropertyBlock": true, + "m_UseCustomSlotLabel": false, + "m_CustomSlotLabel": "", + "m_DismissedVersion": 0, + "m_Precision": 0, + "overrideHLSLDeclaration": false, + "hlslDeclarationOverride": 0, + "m_Hidden": false, + "m_Value": { + "r": 1.0, + "g": 1.0, + "b": 1.0, + "a": 1.0 + }, + "isMainColor": false, + "m_ColorMode": 0 +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.SaturationNode", + "m_ObjectId": "0bfa88261932417aaf40089f20ae8d8f", + "m_Group": { + "m_Id": "" + }, + "m_Name": "Saturation", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": -56.80004119873047, + "y": -76.00000762939453, + "width": 174.40008544921876, + "height": 117.59996032714844 + } + }, + "m_Slots": [ + { + "m_Id": "8c9ed646dde24f88a52c0f46e7a9483a" + }, + { + "m_Id": "9e0348bf43ac4bafbf2a622fdba76848" + }, + { + "m_Id": "f3a895ae8fd74e19b23cf75fbbb39cf2" + } + ], + "synonyms": [], + "m_Precision": 0, + "m_PreviewExpanded": false, + "m_DismissedVersion": 0, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.SamplerStateMaterialSlot", + "m_ObjectId": "1033ca88d85845bc8a2d0a5441d6173a", + "m_Id": 3, + "m_DisplayName": "Sampler", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "Sampler", + "m_StageCapability": 3, + "m_BareResource": false +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.PositionMaterialSlot", + "m_ObjectId": "266261760afe4636804d5151bf7c1663", + "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": 1, + "m_Type": "UnityEditor.ShaderGraph.Internal.Vector1ShaderProperty", + "m_ObjectId": "2aff8e3ec7ee4e9e8592b7aaf33d1b0f", + "m_Guid": { + "m_GuidSerialized": "c44dcf49-c866-41a5-a7e0-720d34611c38" + }, + "m_Name": "Saturation", + "m_DefaultRefNameVersion": 1, + "m_RefNameGeneratedByDisplayName": "Saturation", + "m_DefaultReferenceName": "_Saturation", + "m_OverrideReferenceName": "", + "m_GeneratePropertyBlock": true, + "m_UseCustomSlotLabel": false, + "m_CustomSlotLabel": "", + "m_DismissedVersion": 0, + "m_Precision": 0, + "overrideHLSLDeclaration": false, + "hlslDeclarationOverride": 0, + "m_Hidden": false, + "m_Value": 1.0, + "m_FloatType": 0, + "m_RangeValues": { + "x": 0.0, + "y": 1.0 + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.ColorRGBMaterialSlot", + "m_ObjectId": "2fda9f02130f4d6b81a6438ecc642ad6", + "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.DynamicValueMaterialSlot", + "m_ObjectId": "37fc594725cf4961b50cb096d5aa0d5b", + "m_Id": 2, + "m_DisplayName": "Out", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "Out", + "m_StageCapability": 3, + "m_Value": { + "e00": 0.0, + "e01": 0.0, + "e02": 0.0, + "e03": 0.0, + "e10": 0.0, + "e11": 0.0, + "e12": 0.0, + "e13": 0.0, + "e20": 0.0, + "e21": 0.0, + "e22": 0.0, + "e23": 0.0, + "e30": 0.0, + "e31": 0.0, + "e32": 0.0, + "e33": 0.0 + }, + "m_DefaultValue": { + "e00": 1.0, + "e01": 0.0, + "e02": 0.0, + "e03": 0.0, + "e10": 0.0, + "e11": 1.0, + "e12": 0.0, + "e13": 0.0, + "e20": 0.0, + "e21": 0.0, + "e22": 1.0, + "e23": 0.0, + "e30": 0.0, + "e31": 0.0, + "e32": 0.0, + "e33": 1.0 + } +} + +{ + "m_SGVersion": 1, + "m_Type": "UnityEditor.Rendering.Universal.ShaderGraph.UniversalTarget", + "m_ObjectId": "43351345c97d4c0386105bd36806183d", + "m_Datas": [], + "m_ActiveSubTarget": { + "m_Id": "4a649f90acf849b7bc78ca7e55107bf2" + }, + "m_AllowMaterialOverride": false, + "m_SurfaceType": 0, + "m_ZTestMode": 4, + "m_ZWriteControl": 0, + "m_AlphaMode": 0, + "m_RenderFace": 2, + "m_AlphaClip": false, + "m_CastShadows": true, + "m_ReceiveShadows": true, + "m_DisableTint": false, + "m_AdditionalMotionVectorMode": 0, + "m_AlembicMotionVectors": false, + "m_SupportsLODCrossFade": false, + "m_CustomEditorGUI": "", + "m_SupportVFX": false +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.TangentMaterialSlot", + "m_ObjectId": "48bde6fb29034af19ff1c56fd8eb2bd1", + "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.Rendering.Universal.ShaderGraph.UniversalSpriteUnlitSubTarget", + "m_ObjectId": "4a649f90acf849b7bc78ca7e55107bf2" +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot", + "m_ObjectId": "537469aa5b6d40bfa7292c028cd142da", + "m_Id": 0, + "m_DisplayName": "A", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "A", + "m_StageCapability": 3, + "m_Value": { + "e00": 0.0, + "e01": 0.0, + "e02": 0.0, + "e03": 0.0, + "e10": 0.0, + "e11": 0.0, + "e12": 0.0, + "e13": 0.0, + "e20": 0.0, + "e21": 0.0, + "e22": 0.0, + "e23": 0.0, + "e30": 0.0, + "e31": 0.0, + "e32": 0.0, + "e33": 0.0 + }, + "m_DefaultValue": { + "e00": 1.0, + "e01": 0.0, + "e02": 0.0, + "e03": 0.0, + "e10": 0.0, + "e11": 1.0, + "e12": 0.0, + "e13": 0.0, + "e20": 0.0, + "e21": 0.0, + "e22": 1.0, + "e23": 0.0, + "e30": 0.0, + "e31": 0.0, + "e32": 0.0, + "e33": 1.0 + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot", + "m_ObjectId": "58580501e6974de69ca8e94310fdadf2", + "m_Id": 1, + "m_DisplayName": "B", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "B", + "m_StageCapability": 3, + "m_Value": { + "e00": 2.0, + "e01": 2.0, + "e02": 2.0, + "e03": 2.0, + "e10": 2.0, + "e11": 2.0, + "e12": 2.0, + "e13": 2.0, + "e20": 2.0, + "e21": 2.0, + "e22": 2.0, + "e23": 2.0, + "e30": 2.0, + "e31": 2.0, + "e32": 2.0, + "e33": 2.0 + }, + "m_DefaultValue": { + "e00": 1.0, + "e01": 0.0, + "e02": 0.0, + "e03": 0.0, + "e10": 0.0, + "e11": 1.0, + "e12": 0.0, + "e13": 0.0, + "e20": 0.0, + "e21": 0.0, + "e22": 1.0, + "e23": 0.0, + "e30": 0.0, + "e31": 0.0, + "e32": 0.0, + "e33": 1.0 + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.MultiplyNode", + "m_ObjectId": "5ba9c35175a24a408cd4895bf02482b8", + "m_Group": { + "m_Id": "" + }, + "m_Name": "Multiply", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": -375.1999816894531, + "y": -81.60002899169922, + "width": 130.39996337890626, + "height": 117.60000610351563 + } + }, + "m_Slots": [ + { + "m_Id": "537469aa5b6d40bfa7292c028cd142da" + }, + { + "m_Id": "58580501e6974de69ca8e94310fdadf2" + }, + { + "m_Id": "37fc594725cf4961b50cb096d5aa0d5b" + } + ], + "synonyms": [ + "multiplication", + "times", + "x" + ], + "m_Precision": 0, + "m_PreviewExpanded": false, + "m_DismissedVersion": 0, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.BlockNode", + "m_ObjectId": "5e7b58a8e80e45a28e67d06fd1697651", + "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": "2fda9f02130f4d6b81a6438ecc642ad6" + } + ], + "synonyms": [], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_DismissedVersion": 0, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_SerializedDescriptor": "SurfaceDescription.BaseColor" +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.PropertyNode", + "m_ObjectId": "63d4bde4b8f04f20b9b99182a11c56ac", + "m_Group": { + "m_Id": "" + }, + "m_Name": "Property", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": -480.8000183105469, + "y": -17.600019454956056, + "width": 105.60003662109375, + "height": 33.60004425048828 + } + }, + "m_Slots": [ + { + "m_Id": "81ae9aceedd640ad91ae4f9637055ce6" + } + ], + "synonyms": [], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_DismissedVersion": 0, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_Property": { + "m_Id": "093150b2ec4f4628a1ddd1b2ce0ec4b3" + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.BlockNode", + "m_ObjectId": "66f4525945bb4770989a4f4c27f98506", + "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": "9140a6e4ea2a46689a69c94a9148ed31" + } + ], + "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.CategoryData", + "m_ObjectId": "6b1be793778e442cb46b2317ffa89bbc", + "m_Name": "", + "m_ChildObjectList": [ + { + "m_Id": "bb6c7b96ccf74780b552c446ed213030" + }, + { + "m_Id": "093150b2ec4f4628a1ddd1b2ce0ec4b3" + }, + { + "m_Id": "2aff8e3ec7ee4e9e8592b7aaf33d1b0f" + } + ] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.UVMaterialSlot", + "m_ObjectId": "73f25db8c95f428fa27b4d7b0b17ea56", + "m_Id": 2, + "m_DisplayName": "UV", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "UV", + "m_StageCapability": 3, + "m_Value": { + "x": 0.0, + "y": 0.0 + }, + "m_DefaultValue": { + "x": 0.0, + "y": 0.0 + }, + "m_Labels": [], + "m_Channel": 0 +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot", + "m_ObjectId": "81ae9aceedd640ad91ae4f9637055ce6", + "m_Id": 0, + "m_DisplayName": "Color", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "Out", + "m_StageCapability": 3, + "m_Value": { + "x": 0.0, + "y": 0.0, + "z": 0.0, + "w": 0.0 + }, + "m_DefaultValue": { + "x": 0.0, + "y": 0.0, + "z": 0.0, + "w": 0.0 + }, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector3MaterialSlot", + "m_ObjectId": "8c9ed646dde24f88a52c0f46e7a9483a", + "m_Id": 0, + "m_DisplayName": "In", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "In", + "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.Texture2DMaterialSlot", + "m_ObjectId": "90ece6510cfb4d18bca10a353e49bc36", + "m_Id": 0, + "m_DisplayName": "MainTex", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "Out", + "m_StageCapability": 3, + "m_BareResource": false +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Texture2DInputMaterialSlot", + "m_ObjectId": "90f208cba6bb4fc68c988dbca7f288da", + "m_Id": 1, + "m_DisplayName": "Texture", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "Texture", + "m_StageCapability": 3, + "m_BareResource": false, + "m_Texture": { + "m_SerializedTexture": "", + "m_Guid": "" + }, + "m_DefaultType": 0 +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.NormalMaterialSlot", + "m_ObjectId": "9140a6e4ea2a46689a69c94a9148ed31", + "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.BlockNode", + "m_ObjectId": "978e4667040842c994575e6bc4cccdde", + "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": "266261760afe4636804d5151bf7c1663" + } + ], + "synonyms": [], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_DismissedVersion": 0, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_SerializedDescriptor": "VertexDescription.Position" +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", + "m_ObjectId": "9e0348bf43ac4bafbf2a622fdba76848", + "m_Id": 1, + "m_DisplayName": "Saturation", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "Saturation", + "m_StageCapability": 3, + "m_Value": 1.0, + "m_DefaultValue": 1.0, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", + "m_ObjectId": "b8bddf37c6764d24b7fb36abb98e87cf", + "m_Id": 4, + "m_DisplayName": "R", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "R", + "m_StageCapability": 2, + "m_Value": 0.0, + "m_DefaultValue": 0.0, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Internal.Texture2DShaderProperty", + "m_ObjectId": "bb6c7b96ccf74780b552c446ed213030", + "m_Guid": { + "m_GuidSerialized": "edc91e13-2b94-4407-aa09-19b1f3a2d67f" + }, + "m_Name": "MainTex", + "m_DefaultRefNameVersion": 1, + "m_RefNameGeneratedByDisplayName": "MainTex", + "m_DefaultReferenceName": "_MainTex", + "m_OverrideReferenceName": "", + "m_GeneratePropertyBlock": true, + "m_UseCustomSlotLabel": false, + "m_CustomSlotLabel": "", + "m_DismissedVersion": 0, + "m_Precision": 0, + "overrideHLSLDeclaration": false, + "hlslDeclarationOverride": 0, + "m_Hidden": false, + "m_Value": { + "m_SerializedTexture": "", + "m_Guid": "" + }, + "isMainTexture": false, + "useTilingAndOffset": false, + "m_Modifiable": true, + "m_DefaultType": 0 +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", + "m_ObjectId": "bbd6bafcc1fb4989a9bdd5c5443a991e", + "m_Id": 0, + "m_DisplayName": "Saturation", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "Out", + "m_StageCapability": 3, + "m_Value": 0.0, + "m_DefaultValue": 0.0, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", + "m_ObjectId": "d5997510bea24857857d9e83d4892064", + "m_Id": 7, + "m_DisplayName": "A", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "A", + "m_StageCapability": 2, + "m_Value": 0.0, + "m_DefaultValue": 0.0, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot", + "m_ObjectId": "d6673c90a1b04f41a149f3ca761c0c1a", + "m_Id": 0, + "m_DisplayName": "RGBA", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "RGBA", + "m_StageCapability": 2, + "m_Value": { + "x": 0.0, + "y": 0.0, + "z": 0.0, + "w": 0.0 + }, + "m_DefaultValue": { + "x": 0.0, + "y": 0.0, + "z": 0.0, + "w": 0.0 + }, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", + "m_ObjectId": "d7d193dbb07f40118726e4e9cb0d7c07", + "m_Id": 6, + "m_DisplayName": "B", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "B", + "m_StageCapability": 2, + "m_Value": 0.0, + "m_DefaultValue": 0.0, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.PropertyNode", + "m_ObjectId": "e29c93811c194d2b824b0879463f8777", + "m_Group": { + "m_Id": "" + }, + "m_Name": "Property", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": -186.39993286132813, + "y": -7.200003623962402, + "width": 128.8000030517578, + "height": 33.59999465942383 + } + }, + "m_Slots": [ + { + "m_Id": "bbd6bafcc1fb4989a9bdd5c5443a991e" + } + ], + "synonyms": [], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_DismissedVersion": 0, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_Property": { + "m_Id": "2aff8e3ec7ee4e9e8592b7aaf33d1b0f" + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.SampleTexture2DNode", + "m_ObjectId": "f379acf84bfb4a7aae06b972f9be6af7", + "m_Group": { + "m_Id": "" + }, + "m_Name": "Sample Texture 2D", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": -707.7999877929688, + "y": -81.40000915527344, + "width": 208.0, + "height": 430.3999938964844 + } + }, + "m_Slots": [ + { + "m_Id": "d6673c90a1b04f41a149f3ca761c0c1a" + }, + { + "m_Id": "b8bddf37c6764d24b7fb36abb98e87cf" + }, + { + "m_Id": "f95324d8e2854f529a3ce5f1841da02e" + }, + { + "m_Id": "d7d193dbb07f40118726e4e9cb0d7c07" + }, + { + "m_Id": "d5997510bea24857857d9e83d4892064" + }, + { + "m_Id": "90f208cba6bb4fc68c988dbca7f288da" + }, + { + "m_Id": "73f25db8c95f428fa27b4d7b0b17ea56" + }, + { + "m_Id": "1033ca88d85845bc8a2d0a5441d6173a" + } + ], + "synonyms": [ + "tex2d" + ], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_DismissedVersion": 0, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_TextureType": 0, + "m_NormalMapSpace": 0, + "m_EnableGlobalMipBias": true, + "m_MipSamplingMode": 0 +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector3MaterialSlot", + "m_ObjectId": "f3a895ae8fd74e19b23cf75fbbb39cf2", + "m_Id": 2, + "m_DisplayName": "Out", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "Out", + "m_StageCapability": 3, + "m_Value": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_DefaultValue": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.BlockNode", + "m_ObjectId": "f3e77a1ca56d4f46bbd6dd483005f114", + "m_Group": { + "m_Id": "" + }, + "m_Name": "SurfaceDescription.Alpha", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": 0.0, + "y": 0.0, + "width": 0.0, + "height": 0.0 + } + }, + "m_Slots": [ + { + "m_Id": "f633ceea3a8046ffacc5b7ac0d51bb2a" + } + ], + "synonyms": [], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_DismissedVersion": 0, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_SerializedDescriptor": "SurfaceDescription.Alpha" +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", + "m_ObjectId": "f633ceea3a8046ffacc5b7ac0d51bb2a", + "m_Id": 0, + "m_DisplayName": "Alpha", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "Alpha", + "m_StageCapability": 2, + "m_Value": 1.0, + "m_DefaultValue": 1.0, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.PropertyNode", + "m_ObjectId": "f748a7e8bad442ce99b3705f56f14432", + "m_Group": { + "m_Id": "" + }, + "m_Name": "Property", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": -903.2000122070313, + "y": -118.39999389648438, + "width": 0.0, + "height": 0.0 + } + }, + "m_Slots": [ + { + "m_Id": "90ece6510cfb4d18bca10a353e49bc36" + } + ], + "synonyms": [], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_DismissedVersion": 0, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_Property": { + "m_Id": "bb6c7b96ccf74780b552c446ed213030" + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", + "m_ObjectId": "f95324d8e2854f529a3ce5f1841da02e", + "m_Id": 5, + "m_DisplayName": "G", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "G", + "m_StageCapability": 2, + "m_Value": 0.0, + "m_DefaultValue": 0.0, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.BlockNode", + "m_ObjectId": "fad59224b79045ad869132c73977edfc", + "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": "48bde6fb29034af19ff1c56fd8eb2bd1" + } + ], + "synonyms": [], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_DismissedVersion": 0, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_SerializedDescriptor": "VertexDescription.Tangent" +} + diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation/089_SpriteColorShader.shadergraph.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation/089_SpriteColorShader.shadergraph.meta new file mode 100644 index 00000000000..833d454239e --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation/089_SpriteColorShader.shadergraph.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 282e7d68bb3909e4198ef948bc86d2dc +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: 625f186215c104763be7675aa2d941aa, type: 3} diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation/ColorAnimator.controller b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation/ColorAnimator.controller new file mode 100644 index 00000000000..8fa876a0360 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation/ColorAnimator.controller @@ -0,0 +1,72 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1102 &-8679366818469530666 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: an_AnimateColor + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: [] + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: 7400000, guid: 7130a504cae017b42a3a4af2ebb92f66, type: 2} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!91 &9100000 +AnimatorController: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: ColorAnimator + serializedVersion: 5 + m_AnimatorParameters: [] + m_AnimatorLayers: + - serializedVersion: 5 + m_Name: Base Layer + m_StateMachine: {fileID: 2721591129455144555} + m_Mask: {fileID: 0} + m_Motions: [] + m_Behaviours: [] + m_BlendingMode: 0 + m_SyncedLayerIndex: -1 + m_DefaultWeight: 0 + m_IKPass: 0 + m_SyncedLayerAffectsTiming: 0 + m_Controller: {fileID: 9100000} +--- !u!1107 &2721591129455144555 +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: -8679366818469530666} + m_Position: {x: 30, y: 230, 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: -8679366818469530666} diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation/ColorAnimator.controller.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation/ColorAnimator.controller.meta new file mode 100644 index 00000000000..5f67d18275c --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation/ColorAnimator.controller.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3ff3a8d67a7dacd4f910c6fcf6f59c32 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 9100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation/SetMaterialPropertyBlockOnAwake.cs b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation/SetMaterialPropertyBlockOnAwake.cs new file mode 100644 index 00000000000..5707048cca6 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation/SetMaterialPropertyBlockOnAwake.cs @@ -0,0 +1,25 @@ +using UnityEngine; + +public class SetMaterialPropertyBlockOnAwake : MonoBehaviour +{ + private static readonly int ColorPropId = Shader.PropertyToID("_Color"); + private static readonly int SaturationPropId = Shader.PropertyToID("_Saturation"); + + [SerializeField] private SpriteRenderer spriteRenderer; + [SerializeField] private Color color; + [SerializeField] private float saturation; + + [SerializeField] private bool overwriteColor; + [SerializeField] private bool overwriteSaturation; + + private MaterialPropertyBlock _props; + + public void Awake() + { + _props ??= new MaterialPropertyBlock(); + spriteRenderer.GetPropertyBlock(_props); + if (overwriteColor) _props.SetColor(ColorPropId, color); + if (overwriteSaturation) _props.SetFloat(SaturationPropId, saturation); + spriteRenderer.SetPropertyBlock(_props); + } +} \ No newline at end of file diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation/SetMaterialPropertyBlockOnAwake.cs.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation/SetMaterialPropertyBlockOnAwake.cs.meta new file mode 100644 index 00000000000..833b82535fc --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation/SetMaterialPropertyBlockOnAwake.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 12866226dbc174b4e91bd7b00c3703d0 \ No newline at end of file diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation/an_AnimateColor.anim b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation/an_AnimateColor.anim new file mode 100644 index 00000000000..7a55be11255 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation/an_AnimateColor.anim @@ -0,0 +1,222 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!74 &7400000 +AnimationClip: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: an_AnimateColor + serializedVersion: 7 + m_Legacy: 0 + m_Compressed: 0 + m_UseHighQualityCurve: 1 + m_RotationCurves: [] + m_CompressedRotationCurves: [] + m_EulerCurves: [] + m_PositionCurves: + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: {x: 0, y: 0, z: 0} + inSlope: {x: 0, y: 0, z: 0} + outSlope: {x: 0, y: 0, z: 0} + tangentMode: 0 + weightedMode: 0 + inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + - serializedVersion: 3 + time: 0.6 + value: {x: -0.02, y: 0, z: 0} + inSlope: {x: 0, y: 0, z: 0} + outSlope: {x: 0, y: 0, z: 0} + tangentMode: 0 + weightedMode: 0 + inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + - serializedVersion: 3 + time: 1.4 + value: {x: 0.02, y: 0, z: 0} + inSlope: {x: 0, y: 0, z: 0} + outSlope: {x: 0, y: 0, z: 0} + tangentMode: 0 + weightedMode: 0 + inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + - serializedVersion: 3 + time: 2 + value: {x: 0, y: 0, z: 0} + inSlope: {x: 0, y: 0, z: 0} + outSlope: {x: 0, y: 0, z: 0} + tangentMode: 0 + weightedMode: 0 + inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + path: + m_ScaleCurves: [] + m_FloatCurves: + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0.2 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 3.6 + value: 0.2 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_Color.a + path: + classID: 212 + script: {fileID: 0} + flags: 0 + m_PPtrCurves: [] + m_SampleRate: 5 + m_WrapMode: 0 + m_Bounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 0, y: 0, z: 0} + m_ClipBindingConstant: + genericBindings: + - serializedVersion: 2 + path: 0 + attribute: 1 + script: {fileID: 0} + typeID: 4 + customType: 0 + isPPtrCurve: 0 + isIntCurve: 0 + isSerializeReferenceCurve: 0 + - serializedVersion: 2 + path: 0 + attribute: 304273561 + script: {fileID: 0} + typeID: 212 + customType: 0 + isPPtrCurve: 0 + isIntCurve: 0 + isSerializeReferenceCurve: 0 + pptrCurveMapping: [] + m_AnimationClipSettings: + serializedVersion: 2 + m_AdditiveReferencePoseClip: {fileID: 0} + m_AdditiveReferencePoseTime: 0 + m_StartTime: 0 + m_StopTime: 3.6 + m_OrientationOffsetY: 0 + m_Level: 0 + m_CycleOffset: 0 + m_HasAdditiveReferencePose: 0 + m_LoopTime: 0 + m_LoopBlend: 0 + m_LoopBlendOrientation: 0 + m_LoopBlendPositionY: 0 + m_LoopBlendPositionXZ: 0 + m_KeepOriginalOrientation: 0 + m_KeepOriginalPositionY: 1 + m_KeepOriginalPositionXZ: 0 + m_HeightFromFeet: 0 + m_Mirror: 0 + m_EditorCurves: + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0.2 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 3.6 + value: 0.2 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_Color.a + path: + classID: 212 + script: {fileID: 0} + flags: 0 + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.6 + value: -0.02 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1.4 + value: 0.02 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 2 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalPosition.x + path: + classID: 4 + script: {fileID: 0} + flags: 0 + m_EulerEditorCurves: [] + m_HasGenericRootTransform: 1 + m_HasMotionFloatCurves: 0 + m_Events: [] diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation/an_AnimateColor.anim.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation/an_AnimateColor.anim.meta new file mode 100644 index 00000000000..fcf7f87b6f7 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation/an_AnimateColor.anim.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7130a504cae017b42a3a4af2ebb92f66 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 7400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation/an_Idle.anim b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation/an_Idle.anim new file mode 100644 index 00000000000..2f681ba85dd --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation/an_Idle.anim @@ -0,0 +1,53 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!74 &7400000 +AnimationClip: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: an_Idle + serializedVersion: 7 + m_Legacy: 0 + m_Compressed: 0 + m_UseHighQualityCurve: 1 + m_RotationCurves: [] + m_CompressedRotationCurves: [] + m_EulerCurves: [] + m_PositionCurves: [] + m_ScaleCurves: [] + m_FloatCurves: [] + m_PPtrCurves: [] + m_SampleRate: 10 + m_WrapMode: 0 + m_Bounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 0, y: 0, z: 0} + m_ClipBindingConstant: + genericBindings: [] + pptrCurveMapping: [] + m_AnimationClipSettings: + serializedVersion: 2 + m_AdditiveReferencePoseClip: {fileID: 0} + m_AdditiveReferencePoseTime: 0 + m_StartTime: 0 + m_StopTime: 1 + m_OrientationOffsetY: 0 + m_Level: 0 + m_CycleOffset: 0 + m_HasAdditiveReferencePose: 0 + m_LoopTime: 0 + m_LoopBlend: 0 + m_LoopBlendOrientation: 0 + m_LoopBlendPositionY: 0 + m_LoopBlendPositionXZ: 0 + m_KeepOriginalOrientation: 0 + m_KeepOriginalPositionY: 1 + m_KeepOriginalPositionXZ: 0 + m_HeightFromFeet: 0 + m_Mirror: 0 + m_EditorCurves: [] + m_EulerEditorCurves: [] + m_HasGenericRootTransform: 0 + m_HasMotionFloatCurves: 0 + m_Events: [] diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation/an_Idle.anim.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation/an_Idle.anim.meta new file mode 100644 index 00000000000..e09b5703954 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation/an_Idle.anim.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 44e8b307bf3d79a488f5bc25b4ece03d +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 7400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Test/Runtime/Light2DTests.cs b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Test/Runtime/Light2DTests.cs new file mode 100644 index 00000000000..2e71a1d3443 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Test/Runtime/Light2DTests.cs @@ -0,0 +1,94 @@ +using NUnit.Framework; +using UnityEngine; +using UnityEngine.Rendering.Universal; + +[TestFixture] +class Light2DTests +{ + GameObject m_BaseObj; + Light2D m_Light; + + [SetUp] + public void Setup() + { + m_BaseObj = new GameObject(); + m_Light = m_BaseObj.AddComponent(); + } + + [TearDown] + public void Cleanup() + { + Object.DestroyImmediate(m_BaseObj); + } + + [Test] + public void TargetSortingLayer_Getter() + { + Assert.IsNotNull(m_Light.targetSortingLayers); + Assert.IsNotEmpty(m_Light.targetSortingLayers); + } + + [Test] + public void TargetSortingLayer_Setter() + { + // Empty + m_Light.targetSortingLayers = new int[] { }; + Assert.IsEmpty(m_Light.targetSortingLayers); + + // Add default layer + m_Light.targetSortingLayers = new int[] { SortingLayer.NameToID("Default") }; + Assert.IsTrue(m_Light.targetSortingLayers.Length == 1); + } + + [Test] + public void TargetSortingLayer_IsValid() + { + foreach (var layer in m_Light.targetSortingLayers) + Assert.IsTrue(SortingLayer.IsValid(layer)); + } + + [Test] + public void TargetSortingLayer_AddValidLayer() + { + var layers = m_Light.targetSortingLayers; + + m_Light.targetSortingLayers = new int[] { }; + + // Add back layers + foreach (var layer in layers) + Assert.IsTrue(m_Light.AddTargetSortingLayer(layer)); + + Assert.IsTrue(m_Light.targetSortingLayers.Length == layers.Length); + } + + [Test] + public void TargetSortingLayer_AddInvalidLayer() + { + // Add an invalid layer returns false + Assert.IsFalse(m_Light.AddTargetSortingLayer("Invalid")); + // Add random layerID + Assert.IsFalse(m_Light.AddTargetSortingLayer(234393945)); + + } + + [Test] + public void TargetSortingLayer_RemoveValidLayer() + { + var layers = m_Light.targetSortingLayers; + + // Remove layers + foreach (var layer in layers) + Assert.IsTrue(m_Light.RemoveTargetSortingLayer(layer)); + + Assert.IsEmpty(m_Light.targetSortingLayers); + } + + [Test] + public void TargetSortingLayer_RemoveInvalidLayer() + { + // Remove an invalid layer returns false + Assert.IsFalse(m_Light.RemoveTargetSortingLayer("Invalid")); + // Remove random layerID + Assert.IsFalse(m_Light.AddTargetSortingLayer(234393945)); + } +} diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Test/Runtime/Light2DTests.cs.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Test/Runtime/Light2DTests.cs.meta new file mode 100644 index 00000000000..ab900818d29 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Test/Runtime/Light2DTests.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 5a8248559394daa439bca0885d1cbbb9 \ No newline at end of file diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/ProjectSettings/EditorBuildSettings.asset b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/ProjectSettings/EditorBuildSettings.asset index bfbdc39ffe0..b745554294c 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/ProjectSettings/EditorBuildSettings.asset +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/ProjectSettings/EditorBuildSettings.asset @@ -194,6 +194,9 @@ EditorBuildSettings: - enabled: 1 path: Assets/Scenes/021_Shadow_Batching_03.unity guid: c5d8258f10589fa4c986556b16becf52 + - enabled: 1 + path: Assets/Scenes/022_Normals_FlipXY.unity + guid: 0fd9ba64f5114634b81f084fb92123e1 - enabled: 1 path: Assets/Scenes/056_2D_Lights-Shadows.unity guid: 4f7a50da47cfeca46b45fe14be17081d @@ -227,6 +230,9 @@ EditorBuildSettings: - enabled: 1 path: Assets/Scenes/063_LayerMask.unity guid: 589fffe344f1a3847910fd1b61c8404c + - enabled: 1 + path: Assets/Scenes/064_FullScreenRendererFeature.unity + guid: f47933cb58d03af41a718fdea55dea08 - enabled: 1 path: Assets/Scenes/069_2D_Forward_Shader_Compatibility_Forward.unity guid: 4387c323b80b3f8479359d07b90f0031 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_PostPro/Assets/Test/TestFilters/TestCaseFilters.asset b/Tests/SRPTests/Projects/UniversalGraphicsTest_PostPro/Assets/Test/TestFilters/TestCaseFilters.asset index b8a926eb765..f840898ee2d 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_PostPro/Assets/Test/TestFilters/TestCaseFilters.asset +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_PostPro/Assets/Test/TestFilters/TestCaseFilters.asset @@ -255,72 +255,6 @@ MonoBehaviour: XrSdk: StereoModes: 0 Reason: GLES3 not supported by STP - - FilteredScene: {fileID: 0} - FilteredScenes: - - {fileID: 102900000, guid: f2e9a73c42a8943708adf547fffee72e, type: 3} - - {fileID: 102900000, guid: 33738bb1cfc644b2882c51fa88268a4f, type: 3} - ColorSpace: -1 - BuildPlatform: 13 - GraphicsDevice: 4 - Architecture: 0 - XrSdk: - StereoModes: 0 - Reason: 'Bug: https://jira.unity3d.com/browse/UUM-83681' - - FilteredScene: {fileID: 0} - FilteredScenes: - - {fileID: 102900000, guid: f2e9a73c42a8943708adf547fffee72e, type: 3} - - {fileID: 102900000, guid: 33738bb1cfc644b2882c51fa88268a4f, type: 3} - ColorSpace: -1 - BuildPlatform: 42 - GraphicsDevice: 4 - Architecture: 0 - XrSdk: - StereoModes: 0 - Reason: 'Bug: https://jira.unity3d.com/browse/UUM-83681' - - FilteredScene: {fileID: 0} - FilteredScenes: - - {fileID: 102900000, guid: f2e9a73c42a8943708adf547fffee72e, type: 3} - - {fileID: 102900000, guid: 33738bb1cfc644b2882c51fa88268a4f, type: 3} - ColorSpace: -1 - BuildPlatform: 24 - GraphicsDevice: 4 - Architecture: 0 - XrSdk: - StereoModes: 0 - Reason: 'Bug: https://jira.unity3d.com/browse/UUM-83681' - - FilteredScene: {fileID: 0} - FilteredScenes: - - {fileID: 102900000, guid: f2e9a73c42a8943708adf547fffee72e, type: 3} - - {fileID: 102900000, guid: 33738bb1cfc644b2882c51fa88268a4f, type: 3} - ColorSpace: -1 - BuildPlatform: 19 - GraphicsDevice: 4 - Architecture: 0 - XrSdk: - StereoModes: 0 - Reason: 'Bug: https://jira.unity3d.com/browse/UUM-83681' - - FilteredScene: {fileID: 0} - FilteredScenes: - - {fileID: 102900000, guid: f2e9a73c42a8943708adf547fffee72e, type: 3} - - {fileID: 102900000, guid: 33738bb1cfc644b2882c51fa88268a4f, type: 3} - ColorSpace: -1 - BuildPlatform: 38 - GraphicsDevice: 4 - Architecture: 0 - XrSdk: - StereoModes: 0 - Reason: 'Bug: https://jira.unity3d.com/browse/UUM-83681' - - FilteredScene: {fileID: 0} - FilteredScenes: - - {fileID: 102900000, guid: f2e9a73c42a8943708adf547fffee72e, type: 3} - - {fileID: 102900000, guid: 33738bb1cfc644b2882c51fa88268a4f, type: 3} - ColorSpace: -1 - BuildPlatform: 2 - GraphicsDevice: 4 - Architecture: 0 - XrSdk: - StereoModes: 0 - Reason: 'Bug: https://jira.unity3d.com/browse/UUM-83681' - FilteredScene: {fileID: 0} FilteredScenes: - {fileID: 102900000, guid: 743d01f5817f118469f5095b0192f5ce, type: 3}