From a0c42b4319775aab547e4f9b2a7a096e09d8afc9 Mon Sep 17 00:00:00 2001 From: Kenny Tan Date: Wed, 1 Jul 2026 13:25:31 +0000 Subject: [PATCH 01/49] [Port] [6000.3] [UUM-141743][6000.6][URP 2D] Fix Light2D serialization conflict --- .../Editor/2D/Light2DEditor.cs | 14 ++---------- .../Runtime/2D/Light2D.cs | 22 ++++++++++++++----- .../018_PointLightCookie_Compatibility.unity | 3 +++ ..._PointLightCookie_Compatibility.unity.meta | 7 ++++++ 4 files changed, 28 insertions(+), 18 deletions(-) create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/018_PointLightCookie_Compatibility.unity create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/018_PointLightCookie_Compatibility.unity.meta diff --git a/Packages/com.unity.render-pipelines.universal/Editor/2D/Light2DEditor.cs b/Packages/com.unity.render-pipelines.universal/Editor/2D/Light2DEditor.cs index 8dff74ee2c6..d8519da000d 100644 --- a/Packages/com.unity.render-pipelines.universal/Editor/2D/Light2DEditor.cs +++ b/Packages/com.unity.render-pipelines.universal/Editor/2D/Light2DEditor.cs @@ -142,14 +142,12 @@ private static class Styles SerializedProperty m_LightType; SerializedProperty m_LightColor; SerializedProperty m_LightIntensity; - SerializedProperty m_UseNormalMap; SerializedProperty m_ShadowsEnabled; SerializedProperty m_ShadowIntensity; SerializedProperty m_ShadowSoftness; SerializedProperty m_ShadowSoftnessFalloffIntensity; SerializedProperty m_ShadowVolumeIntensity; SerializedProperty m_ShadowVolumeIntensityEnabled; - SerializedProperty m_ApplyToSortingLayers; SerializedProperty m_VolumetricIntensity; SerializedProperty m_VolumetricEnabled; SerializedProperty m_BlendStyleIndex; @@ -164,12 +162,9 @@ private static class Styles SerializedProperty m_PointOuterAngle; SerializedProperty m_PointInnerRadius; SerializedProperty m_PointOuterRadius; - SerializedProperty m_DeprecatedPointLightSprite; // Shape Light Properties - SerializedProperty m_ShapeLightParametricRadius; SerializedProperty m_ShapeLightFalloffSize; - SerializedProperty m_ShapeLightParametricSides; SerializedProperty m_ShapeLightSprite; SavedBool m_BlendingSettingsFoldout; @@ -244,14 +239,12 @@ void OnEnable() m_LightType = serializedObject.FindProperty("m_LightType"); m_LightColor = serializedObject.FindProperty("m_Color"); m_LightIntensity = serializedObject.FindProperty("m_Intensity"); - m_UseNormalMap = serializedObject.FindProperty("m_UseNormalMap"); m_ShadowsEnabled = serializedObject.FindProperty("m_ShadowsEnabled"); m_ShadowIntensity = serializedObject.FindProperty("m_ShadowIntensity"); m_ShadowSoftness = serializedObject.FindProperty("m_ShadowSoftness"); m_ShadowSoftnessFalloffIntensity = serializedObject.FindProperty("m_ShadowSoftnessFalloffIntensity"); m_ShadowVolumeIntensity = serializedObject.FindProperty("m_ShadowVolumeIntensity"); m_ShadowVolumeIntensityEnabled = serializedObject.FindProperty("m_ShadowVolumeIntensityEnabled"); - m_ApplyToSortingLayers = serializedObject.FindProperty("m_ApplyToSortingLayers"); m_VolumetricIntensity = serializedObject.FindProperty("m_LightVolumeIntensity"); m_VolumetricEnabled = serializedObject.FindProperty("m_LightVolumeEnabled"); m_BlendStyleIndex = serializedObject.FindProperty("m_BlendStyleIndex"); @@ -266,12 +259,9 @@ void OnEnable() m_PointOuterAngle = serializedObject.FindProperty("m_PointLightOuterAngle"); m_PointInnerRadius = serializedObject.FindProperty("m_PointLightInnerRadius"); m_PointOuterRadius = serializedObject.FindProperty("m_PointLightOuterRadius"); - m_DeprecatedPointLightSprite = serializedObject.FindProperty("m_DeprecatedPointLightCookieSprite"); // Shape Light - m_ShapeLightParametricRadius = serializedObject.FindProperty("m_ShapeLightParametricRadius"); m_ShapeLightFalloffSize = serializedObject.FindProperty("m_ShapeLightFalloffSize"); - m_ShapeLightParametricSides = serializedObject.FindProperty("m_ShapeLightParametricSides"); m_ShapeLightSprite = serializedObject.FindProperty("m_LightCookieSprite"); m_AnyBlendStyleEnabled = false; @@ -591,8 +581,8 @@ void DrawSpotLight(SerializedObject serializedObject) DrawInnerAndOuterSpotAngle(m_PointInnerAngle, m_PointOuterAngle, Styles.InnerOuterSpotAngle); EditorGUILayout.Slider(m_FalloffIntensity, 0, 1, Styles.generalFalloffIntensity); - if (m_DeprecatedPointLightSprite.objectReferenceValue != null) - EditorGUILayout.PropertyField(m_DeprecatedPointLightSprite, Styles.pointLightSprite); + if (m_ShapeLightSprite.objectReferenceValue != null) + EditorGUILayout.PropertyField(m_ShapeLightSprite, Styles.pointLightSprite); m_SortingLayerDropDown.OnTargetSortingLayers(serializedObject, targets, Styles.generalSortingLayerPrefixLabel, AnalyticsTrackChanges); 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 1e332aa6455..0770e1563c8 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/2D/Light2D.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/2D/Light2D.cs @@ -97,10 +97,11 @@ private enum ComponentVersions { Version_Unserialized = 0, Version_1 = 1, - Version_2 = 2 + Version_2 = 2, + Version_3 = 3 } - const ComponentVersions k_CurrentComponentVersion = ComponentVersions.Version_2; + const ComponentVersions k_CurrentComponentVersion = ComponentVersions.Version_3; [SerializeField] ComponentVersions m_ComponentVersion = ComponentVersions.Version_Unserialized; @@ -127,7 +128,7 @@ private enum ComponentVersions [Reload("Textures/2D/Sparkle.png")] [SerializeField] Sprite m_LightCookieSprite; - [FormerlySerializedAs("m_LightCookieSprite")] + [Obsolete("Use m_LightCookieSprite instead")] [SerializeField] Sprite m_DeprecatedPointLightCookieSprite; [SerializeField] int m_LightOrder = 0; @@ -285,7 +286,6 @@ public LightType lightType [Obsolete("#from(2023.1)")] public bool volumeIntensityEnabled { get => m_LightVolumeEnabled; set => m_LightVolumeEnabled = value; } - /// /// Enables or disables the light's volume /// @@ -295,7 +295,7 @@ public LightType lightType /// /// The Sprite that's used by the Sprite Light type to control the shape light /// - public Sprite lightCookieSprite { get { return m_LightType != LightType.Point ? m_LightCookieSprite : m_DeprecatedPointLightCookieSprite; } set => m_LightCookieSprite = value; } + public Sprite lightCookieSprite { get { return m_LightCookieSprite; } set => m_LightCookieSprite = value; } /// /// Controls the brightness and distance of the fall off (edge) of the light @@ -654,10 +654,20 @@ public void OnAfterDeserialize() m_ComponentVersion = ComponentVersions.Version_1; } - if(m_ComponentVersion < ComponentVersions.Version_2) + if (m_ComponentVersion < ComponentVersions.Version_2) { m_ShadowSoftness = 0; } + + if (m_ComponentVersion < ComponentVersions.Version_3) + { +#pragma warning disable CS0618 + if (m_LightType == LightType.Point && (object)m_DeprecatedPointLightCookieSprite != null) + { + m_LightCookieSprite = m_DeprecatedPointLightCookieSprite; + } +#pragma warning restore CS0618 + } } } } diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/018_PointLightCookie_Compatibility.unity b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/018_PointLightCookie_Compatibility.unity new file mode 100644 index 00000000000..65e68306539 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/018_PointLightCookie_Compatibility.unity @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:464c8b7302e9f4fd234253abc9a81828c5e2739c496e115f100e8b8f170593fd +size 13182 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/018_PointLightCookie_Compatibility.unity.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/018_PointLightCookie_Compatibility.unity.meta new file mode 100644 index 00000000000..5c1dbb72a6c --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/018_PointLightCookie_Compatibility.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 9c6e6ff38e5d8ee49b6ed4ac197b3319 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: From daa5d3e84e9cea8fe76bd0c1cd72aaeb381bd8d5 Mon Sep 17 00:00:00 2001 From: Reach Platform Support Date: Wed, 1 Jul 2026 13:25:33 +0000 Subject: [PATCH 02/49] [Port] [6000.3] DOCG-8892 Fix render graph variable name in example render pipeline --- .../Documentation~/render-graph-writing-a-render-pipeline.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Packages/com.unity.render-pipelines.core/Documentation~/render-graph-writing-a-render-pipeline.md b/Packages/com.unity.render-pipelines.core/Documentation~/render-graph-writing-a-render-pipeline.md index 8578643b1d8..2901db57ee5 100644 --- a/Packages/com.unity.render-pipelines.core/Documentation~/render-graph-writing-a-render-pipeline.md +++ b/Packages/com.unity.render-pipelines.core/Documentation~/render-graph-writing-a-render-pipeline.md @@ -124,7 +124,7 @@ public class ExampleRenderPipeline : RenderPipeline } catch (Exception e) { - if (renderGraph.ResetGraphAndLogException(e)) + if (myRenderGraph.ResetGraphAndLogException(e)) throw; } From 94410ce2aa87de1a362a6030ecb2615d00c540a4 Mon Sep 17 00:00:00 2001 From: Reach Platform Support Date: Wed, 1 Jul 2026 13:25:33 +0000 Subject: [PATCH 03/49] [Port] [6000.3] DOCG-8707 Clarify render queue requirement for Scene Color node --- .../com.unity.shadergraph/Documentation~/Scene-Color-Node.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Packages/com.unity.shadergraph/Documentation~/Scene-Color-Node.md b/Packages/com.unity.shadergraph/Documentation~/Scene-Color-Node.md index 953f99047f4..e863aab4c58 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Scene-Color-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Scene-Color-Node.md @@ -7,7 +7,10 @@ If you use the Universal Render Pipeline (URP), the node samples the opaque text To make sure the Scene Color node outputs the correct values, follow these steps: 1. Connect the node to the fragment [shader stage](Shader-Stage.md). The Scene Color node doesn't support the vertex shader stage. -2. In the **Graph Settings** tab of the [**Graph Inspector**](Internal-inspector.md) window, set **Surface Type** to **Transparent**. Otherwise, the node samples the color buffer before Unity renders all the opaque contents in the scene. +2. Make sure Unity captures the color buffer after rendering all the opaque contents in the scene. Use either of the following approaches: + + - In the **Graph Settings** tab of the [**Graph Inspector**](Internal-inspector.md) window, set **Surface Type** to **Transparent**. + - In the **Inspector** window of the material, set the render queue to 2999 (Transparent−1) or 3000 (Transparent). For more information, refer to [Render queues and sorting behaviors](xref:um-built-in-rendering-order). ## Render pipeline support From 9c600869e18c0f9d8227dffc42b910101c443a89 Mon Sep 17 00:00:00 2001 From: Kenny Tan Date: Wed, 1 Jul 2026 13:25:34 +0000 Subject: [PATCH 04/49] [Port] [6000.3] [UUM-136214][URP 2D] Refresh light batching debugger on sorting layer change --- .../LightBatchingDebugger/LightBatchingDebugger.cs | 12 ++++++++++-- .../Editor/2D/Shadows/ShadowCaster2DEditor.cs | 2 +- .../Editor/2D/SortingLayerDropDown.cs | 5 +---- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/Packages/com.unity.render-pipelines.universal/Editor/2D/LightBatchingDebugger/LightBatchingDebugger.cs b/Packages/com.unity.render-pipelines.universal/Editor/2D/LightBatchingDebugger/LightBatchingDebugger.cs index 04ad93ce517..2b4b70af33a 100644 --- a/Packages/com.unity.render-pipelines.universal/Editor/2D/LightBatchingDebugger/LightBatchingDebugger.cs +++ b/Packages/com.unity.render-pipelines.universal/Editor/2D/LightBatchingDebugger/LightBatchingDebugger.cs @@ -41,7 +41,7 @@ public static void ShowExample() private int shadowCount = 0; // Variables used for refresh view - private bool doRefresh; + static bool doRefresh; private int cachedSceneHandle; private Vector3 cachedCamPos; private int totalLightCount; @@ -356,11 +356,19 @@ private void CreateGUI() private void OnEnable() { EditorApplication.playModeStateChanged += OnPlayModeStateChanged; + +#if UNITY_EDITOR + SortingLayer.onLayerChanged += QueueRefresh; +#endif } private void OnDisable() { EditorApplication.playModeStateChanged -= OnPlayModeStateChanged; + +#if UNITY_EDITOR + SortingLayer.onLayerChanged -= QueueRefresh; +#endif } void OnPlayModeStateChanged(PlayModeStateChange playModeState) @@ -528,7 +536,7 @@ private void ResetDirty() doRefresh = false; } - public void QueueRefresh() + internal static void QueueRefresh() { doRefresh = true; } 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 62d1e9ea0af..5ddc6cfd5e2 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 @@ -146,7 +146,7 @@ public override void OnInspectorGUI() #if USING_2DCOMMON if ((ShadowCaster2D.ShadowCastingSources)m_CastingSource.intValue == ShadowCaster2D.ShadowCastingSources.ShapeEditor) ShadowCaster2DInspectorGUI(); - else if (EditorToolManager.IsActiveTool()) + else if (U2D.Common.Path.EditorToolManager.IsActiveTool()) ToolManager.RestorePreviousTool(); #else var clicked = GUILayout.Button(Styles.buttonText); diff --git a/Packages/com.unity.render-pipelines.universal/Editor/2D/SortingLayerDropDown.cs b/Packages/com.unity.render-pipelines.universal/Editor/2D/SortingLayerDropDown.cs index f07dfd37d32..b68875b1cf6 100644 --- a/Packages/com.unity.render-pipelines.universal/Editor/2D/SortingLayerDropDown.cs +++ b/Packages/com.unity.render-pipelines.universal/Editor/2D/SortingLayerDropDown.cs @@ -70,10 +70,7 @@ void UpdateApplyToSortingLayersArray(object layerSelectionDataObject) } if (EditorWindow.HasOpenInstances()) - { - var debugger = EditorWindow.GetWindow(); - debugger?.QueueRefresh(); - } + LightBatchingDebugger.QueueRefresh(); } void OnNoSortingLayerSelected(object selectionData) From 43677c5e72427f7875a88b5bf102bcf43fb96f1e Mon Sep 17 00:00:00 2001 From: Reach Platform Support Date: Fri, 3 Jul 2026 06:41:04 +0000 Subject: [PATCH 05/49] [Port] [6000.3] [2d] Validate all euler angle inputs for QuaternionEulerField --- .../Editor/QuaternionPropertyDrawer.cs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/Packages/com.unity.render-pipelines.core/Editor/QuaternionPropertyDrawer.cs b/Packages/com.unity.render-pipelines.core/Editor/QuaternionPropertyDrawer.cs index ebaaef784e8..3b9b4f646bf 100644 --- a/Packages/com.unity.render-pipelines.core/Editor/QuaternionPropertyDrawer.cs +++ b/Packages/com.unity.render-pipelines.core/Editor/QuaternionPropertyDrawer.cs @@ -14,7 +14,15 @@ public override void OnGUI(Rect position, SerializedProperty property, GUIConten euler = EditorGUI.Vector3Field(position, label, euler); EditorGUIUtility.wideMode = w; if (EditorGUI.EndChangeCheck()) - property.quaternionValue = Quaternion.Euler(euler); + { + bool isFinite = (!float.IsNaN(euler.x) && !float.IsInfinity(euler.x) && + !float.IsNaN(euler.y) && !float.IsInfinity(euler.y) && + !float.IsNaN(euler.z) && !float.IsInfinity(euler.z)); + if (isFinite) + { + property.quaternionValue = Quaternion.Euler(euler.x, euler.y, euler.z); + } + } } } } From 26a928c560b4a3401307f0db66bbc5b031d18b7a Mon Sep 17 00:00:00 2001 From: Reach Platform Support Date: Fri, 3 Jul 2026 06:41:05 +0000 Subject: [PATCH 06/49] [Port] [6000.3] [2d] Handle Tile flip using TransformVertices --- .../093_TilemapRenderer_NormalFlip.meta | 8 + .../093_TilemapRenderer_NormalFlip.unity | 3 + .../093_TilemapRenderer_NormalFlip.unity.meta | 7 + .../Sprites.meta | 8 + .../Sprites/Square-tile-broken.png | 3 + .../Sprites/Square-tile-broken.png.meta | 116 +++++++++ .../Sprites/Square-tile-broken_n.png | 3 + .../Sprites/Square-tile-broken_n.png.meta | 114 +++++++++ .../Sprites/sample-atlas.mat | 140 +++++++++++ .../Sprites/sample-atlas.mat.meta | 8 + .../Sprites/sample-atlas.png | 3 + .../Sprites/sample-atlas.png.meta | 232 ++++++++++++++++++ .../Sprites/sample-atlas_n.png | 3 + .../Sprites/sample-atlas_n.png.meta | 114 +++++++++ .../Square-tile-atlas.asset | 36 +++ .../Square-tile-atlas.asset.meta | 8 + .../Square-tile-broken-atlas.asset | 36 +++ .../Square-tile-broken-atlas.asset.meta | 8 + .../Square-tile-broken.asset | 36 +++ .../Square-tile-broken.asset.meta | 8 + 20 files changed, 894 insertions(+) create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/093_TilemapRenderer_NormalFlip.meta create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/093_TilemapRenderer_NormalFlip.unity create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/093_TilemapRenderer_NormalFlip.unity.meta create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/093_TilemapRenderer_NormalFlip/Sprites.meta create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/093_TilemapRenderer_NormalFlip/Sprites/Square-tile-broken.png create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/093_TilemapRenderer_NormalFlip/Sprites/Square-tile-broken.png.meta create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/093_TilemapRenderer_NormalFlip/Sprites/Square-tile-broken_n.png create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/093_TilemapRenderer_NormalFlip/Sprites/Square-tile-broken_n.png.meta create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/093_TilemapRenderer_NormalFlip/Sprites/sample-atlas.mat create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/093_TilemapRenderer_NormalFlip/Sprites/sample-atlas.mat.meta create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/093_TilemapRenderer_NormalFlip/Sprites/sample-atlas.png create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/093_TilemapRenderer_NormalFlip/Sprites/sample-atlas.png.meta create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/093_TilemapRenderer_NormalFlip/Sprites/sample-atlas_n.png create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/093_TilemapRenderer_NormalFlip/Sprites/sample-atlas_n.png.meta create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/093_TilemapRenderer_NormalFlip/Square-tile-atlas.asset create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/093_TilemapRenderer_NormalFlip/Square-tile-atlas.asset.meta create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/093_TilemapRenderer_NormalFlip/Square-tile-broken-atlas.asset create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/093_TilemapRenderer_NormalFlip/Square-tile-broken-atlas.asset.meta create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/093_TilemapRenderer_NormalFlip/Square-tile-broken.asset create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/093_TilemapRenderer_NormalFlip/Square-tile-broken.asset.meta diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/093_TilemapRenderer_NormalFlip.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/093_TilemapRenderer_NormalFlip.meta new file mode 100644 index 00000000000..b7a24dcc141 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/093_TilemapRenderer_NormalFlip.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 574fbee0faef3f84e8121373acd9ab0a +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/093_TilemapRenderer_NormalFlip.unity b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/093_TilemapRenderer_NormalFlip.unity new file mode 100644 index 00000000000..117fac04d65 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/093_TilemapRenderer_NormalFlip.unity @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fa74c92ea0d4955489f44acce7373ff74596d0e9e08bf53291ef4b09b5e9fab1 +size 42827 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/093_TilemapRenderer_NormalFlip.unity.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/093_TilemapRenderer_NormalFlip.unity.meta new file mode 100644 index 00000000000..a78e9789b0f --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/093_TilemapRenderer_NormalFlip.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 26d4d04f1f94daa4093606fcbad0b499 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/093_TilemapRenderer_NormalFlip/Sprites.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/093_TilemapRenderer_NormalFlip/Sprites.meta new file mode 100644 index 00000000000..79f6b35752f --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/093_TilemapRenderer_NormalFlip/Sprites.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 565de2d1e5fa01449bc741abc748d57c +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/093_TilemapRenderer_NormalFlip/Sprites/Square-tile-broken.png b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/093_TilemapRenderer_NormalFlip/Sprites/Square-tile-broken.png new file mode 100644 index 00000000000..20f0cca601a --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/093_TilemapRenderer_NormalFlip/Sprites/Square-tile-broken.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c43a7c84ab62aa52aeca50c838bba7a726ebfef33990d2e303b2350e30ec8437 +size 12623 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/093_TilemapRenderer_NormalFlip/Sprites/Square-tile-broken.png.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/093_TilemapRenderer_NormalFlip/Sprites/Square-tile-broken.png.meta new file mode 100644 index 00000000000..89624c2969f --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/093_TilemapRenderer_NormalFlip/Sprites/Square-tile-broken.png.meta @@ -0,0 +1,116 @@ +fileFormatVersion: 2 +guid: 2af9ce7b8c3457c4dba73abf739aa8f4 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 9 + spritePivot: {x: 0.5012655, y: 0.18665306} + spritePixelsToUnits: 256 + 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: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 1537655665 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: + - texture: {fileID: 2800000, guid: 310f426fafdfbef4ea5ed15aecbd0158, type: 3} + name: _NormalMap + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/093_TilemapRenderer_NormalFlip/Sprites/Square-tile-broken_n.png b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/093_TilemapRenderer_NormalFlip/Sprites/Square-tile-broken_n.png new file mode 100644 index 00000000000..fdc5779e0d9 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/093_TilemapRenderer_NormalFlip/Sprites/Square-tile-broken_n.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1df7583b2f206c06a63e541965f3d21b2a559d8041123d7f9b559d69b3b0cc96 +size 14177 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/093_TilemapRenderer_NormalFlip/Sprites/Square-tile-broken_n.png.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/093_TilemapRenderer_NormalFlip/Sprites/Square-tile-broken_n.png.meta new file mode 100644 index 00000000000..02236026db8 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/093_TilemapRenderer_NormalFlip/Sprites/Square-tile-broken_n.png.meta @@ -0,0 +1,114 @@ +fileFormatVersion: 2 +guid: 310f426fafdfbef4ea5ed15aecbd0158 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 256 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 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: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/093_TilemapRenderer_NormalFlip/Sprites/sample-atlas.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/093_TilemapRenderer_NormalFlip/Sprites/sample-atlas.mat new file mode 100644 index 00000000000..ef4b464d023 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/093_TilemapRenderer_NormalFlip/Sprites/sample-atlas.mat @@ -0,0 +1,140 @@ +%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: sample-atlas + m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: + - _ALPHAPREMULTIPLY_ON + - _NORMALMAP + - _SURFACE_TYPE_TRANSPARENT + m_InvalidKeywords: [] + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 3000 + stringTagMap: + RenderType: Transparent + disabledShaderPasses: + - DepthOnly + - SHADOWCASTER + - MOTIONVECTORS + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BaseMap: + m_Texture: {fileID: 2800000, guid: 04234695f0f02cb4e90fc10804f6da03, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 2800000, guid: e7d02bfd2d6bfe64a8aa3e4592301412, type: 3} + 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: 04234695f0f02cb4e90fc10804f6da03, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _AlphaClip: 0 + - _AlphaToMask: 0 + - _Blend: 0 + - _BlendModePreserveSpecular: 1 + - _BumpScale: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _Cull: 2 + - _Cutoff: 0.5 + - _DetailAlbedoMapScale: 1 + - _DetailNormalMapScale: 1 + - _DstBlend: 10 + - _DstBlendAlpha: 10 + - _EnvironmentReflections: 1 + - _GlossMapScale: 0 + - _Glossiness: 0 + - _GlossyReflections: 0 + - _Metallic: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.005 + - _QueueOffset: 0 + - _ReceiveShadows: 1 + - _Smoothness: 0.5 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _SrcBlendAlpha: 1 + - _Surface: 1 + - _WorkflowMode: 1 + - _ZWrite: 0 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 1} + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} + m_BuildTextureStacks: [] + m_AllowLocking: 1 +--- !u!114 &9046241169405415828 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 10 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/093_TilemapRenderer_NormalFlip/Sprites/sample-atlas.mat.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/093_TilemapRenderer_NormalFlip/Sprites/sample-atlas.mat.meta new file mode 100644 index 00000000000..04c44ff8d29 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/093_TilemapRenderer_NormalFlip/Sprites/sample-atlas.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6cf25b621c389ae47b12c7aa610001f7 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/093_TilemapRenderer_NormalFlip/Sprites/sample-atlas.png b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/093_TilemapRenderer_NormalFlip/Sprites/sample-atlas.png new file mode 100644 index 00000000000..9e7c8496c79 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/093_TilemapRenderer_NormalFlip/Sprites/sample-atlas.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:701d8f1634df8a65f30cdc75f91db1be25db4cd261139b93a0630991b64c8fba +size 23183 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/093_TilemapRenderer_NormalFlip/Sprites/sample-atlas.png.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/093_TilemapRenderer_NormalFlip/Sprites/sample-atlas.png.meta new file mode 100644 index 00000000000..900077b3631 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/093_TilemapRenderer_NormalFlip/Sprites/sample-atlas.png.meta @@ -0,0 +1,232 @@ +fileFormatVersion: 2 +guid: 04234695f0f02cb4e90fc10804f6da03 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 2 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 256 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationMethod: 0 + spriteTessellationDetail: -1 + spriteGeometrySubdivision: -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: 0 + 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: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: GameCoreXboxOne + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: GameCoreScarlett + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: WindowsStoreApps + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: + - serializedVersion: 2 + name: Square-tile + rect: + serializedVersion: 2 + x: 8 + y: 216 + width: 257 + height: 288 + alignment: 9 + pivot: {x: 0.5, y: 0.59} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 541d666c45466aa4c8c0188371df02c4 + internalID: 1667832366 + vertices: [] + indices: {_typeName: int, _data: } + edges: [] + weights: [] + - serializedVersion: 2 + name: Square-tile-broken + rect: + serializedVersion: 2 + x: 277 + y: 216 + width: 257 + height: 288 + alignment: 9 + pivot: {x: 0.5, y: 0.59} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: e5d1f6dc3d8e7c04f821d17bb83f2e4d + internalID: -1599052531 + vertices: [] + indices: {_typeName: int, _data: } + edges: [] + weights: [] + outline: [] + customData: + physicsShape: [] + bones: [] + spriteID: 3936a26ff44a0de41a7f5118dba5e540 + internalID: 0 + vertices: [] + indices: {_typeName: int, _data: } + edges: [] + weights: [] + secondaryTextures: + - texture: {fileID: 2800000, guid: e7d02bfd2d6bfe64a8aa3e4592301412, type: 3} + name: _NormalMap + spriteCustomMetadata: + entries: [] + nameFileIdTable: + Square-tile: 1667832366 + Square-tile-broken: -1599052531 + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/093_TilemapRenderer_NormalFlip/Sprites/sample-atlas_n.png b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/093_TilemapRenderer_NormalFlip/Sprites/sample-atlas_n.png new file mode 100644 index 00000000000..52c068cd703 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/093_TilemapRenderer_NormalFlip/Sprites/sample-atlas_n.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d730be951b4a8d3b2a73723171bcc7025958093449e0c7009aac0f0b14246ddc +size 22043 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/093_TilemapRenderer_NormalFlip/Sprites/sample-atlas_n.png.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/093_TilemapRenderer_NormalFlip/Sprites/sample-atlas_n.png.meta new file mode 100644 index 00000000000..c1655ac9e4e --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/093_TilemapRenderer_NormalFlip/Sprites/sample-atlas_n.png.meta @@ -0,0 +1,114 @@ +fileFormatVersion: 2 +guid: e7d02bfd2d6bfe64a8aa3e4592301412 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/093_TilemapRenderer_NormalFlip/Square-tile-atlas.asset b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/093_TilemapRenderer_NormalFlip/Square-tile-atlas.asset new file mode 100644 index 00000000000..eb513d3626a --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/093_TilemapRenderer_NormalFlip/Square-tile-atlas.asset @@ -0,0 +1,36 @@ +%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: 13312, guid: 0000000000000000e000000000000000, type: 0} + m_Name: Square-tile-atlas + m_EditorClassIdentifier: + m_Sprite: {fileID: 1667832366, guid: 04234695f0f02cb4e90fc10804f6da03, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Transform: + 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_InstancedGameObject: {fileID: 0} + m_Flags: 1 + m_ColliderType: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/093_TilemapRenderer_NormalFlip/Square-tile-atlas.asset.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/093_TilemapRenderer_NormalFlip/Square-tile-atlas.asset.meta new file mode 100644 index 00000000000..a682e0a07ab --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/093_TilemapRenderer_NormalFlip/Square-tile-atlas.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4a6b971b59b3f6340b3a97a97690bb0e +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/093_TilemapRenderer_NormalFlip/Square-tile-broken-atlas.asset b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/093_TilemapRenderer_NormalFlip/Square-tile-broken-atlas.asset new file mode 100644 index 00000000000..ec4534fb3bd --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/093_TilemapRenderer_NormalFlip/Square-tile-broken-atlas.asset @@ -0,0 +1,36 @@ +%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: 13312, guid: 0000000000000000e000000000000000, type: 0} + m_Name: Square-tile-broken-atlas + m_EditorClassIdentifier: + m_Sprite: {fileID: -1599052531, guid: 04234695f0f02cb4e90fc10804f6da03, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Transform: + 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_InstancedGameObject: {fileID: 0} + m_Flags: 1 + m_ColliderType: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/093_TilemapRenderer_NormalFlip/Square-tile-broken-atlas.asset.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/093_TilemapRenderer_NormalFlip/Square-tile-broken-atlas.asset.meta new file mode 100644 index 00000000000..5623713949b --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/093_TilemapRenderer_NormalFlip/Square-tile-broken-atlas.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a224aa798cf736e43b65b93cd6c783b7 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/093_TilemapRenderer_NormalFlip/Square-tile-broken.asset b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/093_TilemapRenderer_NormalFlip/Square-tile-broken.asset new file mode 100644 index 00000000000..10aab6129f0 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/093_TilemapRenderer_NormalFlip/Square-tile-broken.asset @@ -0,0 +1,36 @@ +%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: 13312, guid: 0000000000000000e000000000000000, type: 0} + m_Name: Square-tile-broken + m_EditorClassIdentifier: + m_Sprite: {fileID: 21300000, guid: 2af9ce7b8c3457c4dba73abf739aa8f4, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Transform: + 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_InstancedGameObject: {fileID: 0} + m_Flags: 1 + m_ColliderType: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/093_TilemapRenderer_NormalFlip/Square-tile-broken.asset.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/093_TilemapRenderer_NormalFlip/Square-tile-broken.asset.meta new file mode 100644 index 00000000000..1c7ba474221 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/093_TilemapRenderer_NormalFlip/Square-tile-broken.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: cde599397cd0fdc4d88c08918adcb3ed +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: From c8b71e748ca5ec488408ccf9d03754e0d1b2c053 Mon Sep 17 00:00:00 2001 From: Mikkel Simonsen Date: Fri, 3 Jul 2026 06:41:06 +0000 Subject: [PATCH 07/49] [Port] [6000.3] [URP] [UUM-141980] Fix Bloom missing in Player when Dirt Texture is None --- .../Runtime/Passes/PostProcessPass.cs | 3 ++- .../Runtime/Passes/PostProcessPassRenderGraph.cs | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Passes/PostProcessPass.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Passes/PostProcessPass.cs index 6891d5d89f0..711e2db1074 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Passes/PostProcessPass.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Passes/PostProcessPass.cs @@ -1406,7 +1406,8 @@ void SetupBloom(CommandBuffer cmd, RTHandle source, Material uberMaterial, bool float dirtRatio = dirtTexture.width / (float)dirtTexture.height; float screenRatio = m_Descriptor.width / (float)m_Descriptor.height; var dirtScaleOffset = new Vector4(1f, 1f, 0f, 0f); - float dirtIntensity = m_Bloom.dirtIntensity.value; + // Must match _DIRT variant stripping in ShaderBuildPreprocessor. + float dirtIntensity = m_Bloom.dirtTexture.value == null ? 0f : m_Bloom.dirtIntensity.value; if (dirtRatio > screenRatio) { 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 5b8637c8725..621bbbfa132 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Passes/PostProcessPassRenderGraph.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Passes/PostProcessPassRenderGraph.cs @@ -603,7 +603,8 @@ public void UberPostSetupBloomPass(RenderGraph rendergraph, Material uberMateria float dirtRatio = dirtTexture.width / (float)dirtTexture.height; float screenRatio = srcDesc.width / (float)srcDesc.height; var dirtScaleOffset = new Vector4(1f, 1f, 0f, 0f); - float dirtIntensity = m_Bloom.dirtIntensity.value; + // Must match _DIRT variant stripping in ShaderBuildPreprocessor. + float dirtIntensity = m_Bloom.dirtTexture.value == null ? 0f : m_Bloom.dirtIntensity.value; if (dirtRatio > screenRatio) { From 20da6291c4f97ed59af5b137d983eb945a18cc42 Mon Sep 17 00:00:00 2001 From: Reach Platform Support Date: Sun, 5 Jul 2026 12:26:03 +0000 Subject: [PATCH 08/49] [Port] [6000.3] Fix flaky GC.Alloc in SweepLineRectUtils.CalculateRectUnionArea --- .../Runtime/Utilities/SweepLineRectUtils.cs | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Utilities/SweepLineRectUtils.cs b/Packages/com.unity.render-pipelines.core/Runtime/Utilities/SweepLineRectUtils.cs index 2f1d9189fb7..48b30c23b18 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/Utilities/SweepLineRectUtils.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/Utilities/SweepLineRectUtils.cs @@ -1,5 +1,4 @@ -using System.Buffers; -using System.Collections.Generic; +using System.Collections.Generic; using Unity.Collections; namespace UnityEngine.Rendering @@ -15,7 +14,6 @@ public int Compare(Vector4 a, Vector4 b) { int cx = a.x.CompareTo(b.x); if (cx != 0) return cx; - // tie on x: larger y first (+1 before -1) return b.y.CompareTo(a.y); } } @@ -27,6 +25,9 @@ public int Compare(Vector2 a, Vector2 b) } } + static Vector4[] s_EventsBuffer = new Vector4[32]; + static Vector2[] s_ActiveBuffer = new Vector2[16]; + /// /// Computes the total covered area (union) of a set of axis-aligned rectangles, counting overlaps only once. /// @@ -35,18 +36,17 @@ public int Compare(Vector2 a, Vector2 b) public static float CalculateRectUnionArea(List rects) { int rectsCount = rects.Count; - var eventsBuffer = ArrayPool.Shared.Rent(rectsCount * 2); - var activeBuffer = ArrayPool.Shared.Rent(rectsCount); + int eventsCapacity = rectsCount * 2; + if (eventsCapacity > s_EventsBuffer.Length) + s_EventsBuffer = new Vector4[eventsCapacity]; + if (rectsCount > s_ActiveBuffer.Length) + s_ActiveBuffer = new Vector2[rectsCount]; int eventCount = 0; foreach (var rect in rects) - InsertEvents(rect, eventsBuffer, ref eventCount); - - float area = CalculateRectUnionArea(eventsBuffer, activeBuffer, eventCount); - ArrayPool.Shared.Return(eventsBuffer); - ArrayPool.Shared.Return(activeBuffer); + InsertEvents(rect, s_EventsBuffer, ref eventCount); - return area; + return CalculateRectUnionArea(s_EventsBuffer, s_ActiveBuffer, eventCount); } // Merge overlapping intervals and return total covered Y length From d7543b883bcc89e2ed5860b39674e10d586c2408 Mon Sep 17 00:00:00 2001 From: Reach Platform Support Date: Sun, 5 Jul 2026 12:26:03 +0000 Subject: [PATCH 09/49] [Port] [6000.3] DOCG-8907 - Removed irrelevant paragraph from Shader Graph docs --- Packages/com.unity.shadergraph/Documentation~/Node.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Packages/com.unity.shadergraph/Documentation~/Node.md b/Packages/com.unity.shadergraph/Documentation~/Node.md index 1762eb3ce4b..a753a609cae 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Node.md @@ -41,4 +41,4 @@ Right clicking on a **Node** will open a context menu. This menu contains many o -Unity applies each component of T as a weight factor to each component to A and B. If T has fewer components than A and B, Unity casts T to the required number of components. Unity copies the values of the original components of T to the added components. + From 251ca5ad7de2d4865165c81d838a57f335f9dbad Mon Sep 17 00:00:00 2001 From: Ashley Kitchen Date: Fri, 10 Jul 2026 08:50:57 +0000 Subject: [PATCH 10/49] [Port][6000.3][URP][HDRP] Add warning messages when set Camera orthographic projection mode in XR --- .../BuildProcessors/HDRPProcessScene.cs | 46 +++++++++++++++++++ .../BuildProcessors/HDRPProcessScene.cs.meta | 2 + .../Camera/HDCameraUI.Drawers.cs | 19 ++++++++ ...nderPipelines.HighDefinition.Editor.asmdef | 7 ++- .../Editor/BuildProcessors/URPProcessScene.cs | 43 +++++++++-------- ...UniversalRenderPipelineCameraUI.Drawers.cs | 11 +++++ 6 files changed, 106 insertions(+), 22 deletions(-) create mode 100644 Packages/com.unity.render-pipelines.high-definition/Editor/BuildProcessors/HDRPProcessScene.cs create mode 100644 Packages/com.unity.render-pipelines.high-definition/Editor/BuildProcessors/HDRPProcessScene.cs.meta diff --git a/Packages/com.unity.render-pipelines.high-definition/Editor/BuildProcessors/HDRPProcessScene.cs b/Packages/com.unity.render-pipelines.high-definition/Editor/BuildProcessors/HDRPProcessScene.cs new file mode 100644 index 00000000000..af503d22b59 --- /dev/null +++ b/Packages/com.unity.render-pipelines.high-definition/Editor/BuildProcessors/HDRPProcessScene.cs @@ -0,0 +1,46 @@ +#if ENABLE_VR && ENABLE_XR_MANAGEMENT +using UnityEditor.Build; +using UnityEditor.Build.Reporting; +using UnityEditor.XR.Management; + +using UnityEngine; +using UnityEngine.Rendering; +using UnityEngine.Rendering.HighDefinition; + +namespace UnityEditor.Rendering.HighDefinition +{ + class HDRPProcessScene : IProcessSceneWithReport + { + public int callbackOrder => 0; + + public void OnProcessScene(UnityEngine.SceneManagement.Scene scene, BuildReport report) + { + if (!HDRPBuildData.instance.buildingPlayerForHDRenderPipeline) + return; + + var buildTargetGroup = BuildPipeline.GetBuildTargetGroup(EditorUserBuildSettings.activeBuildTarget); + var buildTargetSettings = XR.Management.XRGeneralSettingsPerBuildTarget.XRGeneralSettingsForBuildTarget(buildTargetGroup); + + if(buildTargetSettings == null || buildTargetSettings.AssignedSettings == null || buildTargetSettings.AssignedSettings.activeLoaders.Count <= 0) + return; + + GameObject[] roots = scene.GetRootGameObjects(); + foreach (GameObject root in roots) + { + Camera[] cameras = root.GetComponentsInChildren(); + foreach (Camera camera in cameras) + { + if (camera.TryGetComponent(out HDAdditionalCameraData cameraData)) + { + if (camera.orthographic && cameraData.xrRendering) + { + Debug.LogWarning($"One or more cameras have their projection set as Orthographic. This is not supported on XR and may produce artifacts at runtime. Please change the projection setting to Perspective to avoid issues."); + break; + } + } + } + } + } + } +} +#endif diff --git a/Packages/com.unity.render-pipelines.high-definition/Editor/BuildProcessors/HDRPProcessScene.cs.meta b/Packages/com.unity.render-pipelines.high-definition/Editor/BuildProcessors/HDRPProcessScene.cs.meta new file mode 100644 index 00000000000..58889b9ffd8 --- /dev/null +++ b/Packages/com.unity.render-pipelines.high-definition/Editor/BuildProcessors/HDRPProcessScene.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: f9a96091c661d0742a99f9177805453c \ No newline at end of file diff --git a/Packages/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/Camera/HDCameraUI.Drawers.cs b/Packages/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/Camera/HDCameraUI.Drawers.cs index 348d8273e38..4e98fd31a87 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/Camera/HDCameraUI.Drawers.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/Camera/HDCameraUI.Drawers.cs @@ -1,3 +1,7 @@ +#if ENABLE_VR && ENABLE_XR_MANAGEMENT +using UnityEditor.XR; +#endif + using UnityEngine; using UnityEngine.Rendering.HighDefinition; @@ -27,13 +31,28 @@ public enum Expandable Environment = 1 << 6, } + static readonly ExpandedState k_ExpandedState = new ExpandedState(Expandable.Projection, "HDRP"); +#if ENABLE_VR && ENABLE_XR_MANAGEMENT + private static readonly CED.IDrawer OrthographicXRError = CED.Conditional( + (serialized, owner) => serialized.xrRendering.boolValue && serialized.baseCameraSettings.orthographic.boolValue, (serialized, owner) => + { + var buildTargetGroup = BuildPipeline.GetBuildTargetGroup(EditorUserBuildSettings.activeBuildTarget); + var buildTargetSettings = XR.Management.XRGeneralSettingsPerBuildTarget.XRGeneralSettingsForBuildTarget(buildTargetGroup); + if(buildTargetSettings != null && buildTargetSettings.AssignedSettings != null && buildTargetSettings.AssignedSettings.activeLoaders.Count > 0) + EditorGUILayout.HelpBox("Orthographic projection is not supported in XR. Please change the Camera Projection setting to Perspective to avoid rendering issues", MessageType.Warning); + }); +#endif + public static readonly CED.IDrawer SectionProjectionSettings = CED.FoldoutGroup( CameraUI.Styles.projectionSettingsHeaderContent, Expandable.Projection, k_ExpandedState, FoldoutOption.Indent, +#if ENABLE_VR && ENABLE_XR_MANAGEMENT + OrthographicXRError, +#endif CED.Group( CameraUI.Drawer_Projection ), diff --git a/Packages/com.unity.render-pipelines.high-definition/Editor/Unity.RenderPipelines.HighDefinition.Editor.asmdef b/Packages/com.unity.render-pipelines.high-definition/Editor/Unity.RenderPipelines.HighDefinition.Editor.asmdef index 303305a557e..65307c2e013 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Editor/Unity.RenderPipelines.HighDefinition.Editor.asmdef +++ b/Packages/com.unity.render-pipelines.high-definition/Editor/Unity.RenderPipelines.HighDefinition.Editor.asmdef @@ -16,7 +16,10 @@ "Unity.PackageManagerDocTools.Editor", "Unity.Rendering.Denoising.Runtime", "Unity.RenderPipelines.HighDefinition.Config.Runtime", - "Unity.RenderPipelines.GPUDriven.Runtime" + "Unity.RenderPipelines.GPUDriven.Runtime", + "Unity.XR.Management.Editor", + "Unity.XR.Management", + "Unity.InternalAPIEngineBridge.RenderPipelines.Core.Editor" ], "includePlatforms": [ "Editor" @@ -35,7 +38,7 @@ }, { "name": "com.unity.xr.management", - "expression": "1.0.0", + "expression": "4.0.1", "define": "ENABLE_XR_MANAGEMENT" }, { diff --git a/Packages/com.unity.render-pipelines.universal/Editor/BuildProcessors/URPProcessScene.cs b/Packages/com.unity.render-pipelines.universal/Editor/BuildProcessors/URPProcessScene.cs index b6e9c20c9eb..3c966e4947d 100644 --- a/Packages/com.unity.render-pipelines.universal/Editor/BuildProcessors/URPProcessScene.cs +++ b/Packages/com.unity.render-pipelines.universal/Editor/BuildProcessors/URPProcessScene.cs @@ -12,30 +12,15 @@ class URPProcessScene : IProcessSceneWithReport public void OnProcessScene(UnityEngine.SceneManagement.Scene scene, BuildReport report) { - bool usesURP = false; - if (GraphicsSettings.defaultRenderPipeline as UniversalRenderPipelineAsset != null) - { - // ^ The global pipeline is set to URP - usesURP = true; - } - else - { - // ^ The global pipeline isn't set to URP, but a quality setting could still use it - for (int i = 0; i < QualitySettings.count; i++) - { - if (QualitySettings.GetRenderPipelineAssetAt(i) as UniversalRenderPipelineAsset != null) - { - // ^ This quality setting uses URP - usesURP = true; - break; - } - } - } + bool usesURP = URPBuildData.instance.buildingPlayerForUniversalRenderPipeline; if (usesURP) { GameObject[] roots = scene.GetRootGameObjects(); - +#if XR_MANAGEMENT_4_0_1_OR_NEWER && ENABLE_VR && ENABLE_XR_MODULE + var buildTargetGroup = BuildPipeline.GetBuildTargetGroup(EditorUserBuildSettings.activeBuildTarget); + var buildTargetSettings = XR.Management.XRGeneralSettingsPerBuildTarget.XRGeneralSettingsForBuildTarget(buildTargetGroup); +#endif foreach (GameObject root in roots) { Light[] lights = root.GetComponentsInChildren(); @@ -58,6 +43,24 @@ public void OnProcessScene(UnityEngine.SceneManagement.Scene scene, BuildReport ); } } + +#if XR_MANAGEMENT_4_0_1_OR_NEWER && ENABLE_VR && ENABLE_XR_MODULE + if (buildTargetSettings != null && buildTargetSettings.AssignedSettings != null && buildTargetSettings.AssignedSettings.activeLoaders.Count > 0) + { + Camera[] cameras = root.GetComponentsInChildren(); + foreach (Camera camera in cameras) + { + if (camera.TryGetComponent(out UniversalAdditionalCameraData cameraData)) + { + if (camera.orthographic && cameraData.allowXRRendering) + { + Debug.LogWarning($"One or more cameras have their projection set as Orthographic. This is not supported on XR and may produce artifacts at runtime. Please change the projection setting to Perspective to avoid issues."); + break; + } + } + } + } +#endif } } } diff --git a/Packages/com.unity.render-pipelines.universal/Editor/Camera/UniversalRenderPipelineCameraUI.Drawers.cs b/Packages/com.unity.render-pipelines.universal/Editor/Camera/UniversalRenderPipelineCameraUI.Drawers.cs index b98125c0477..6533f8436fd 100644 --- a/Packages/com.unity.render-pipelines.universal/Editor/Camera/UniversalRenderPipelineCameraUI.Drawers.cs +++ b/Packages/com.unity.render-pipelines.universal/Editor/Camera/UniversalRenderPipelineCameraUI.Drawers.cs @@ -71,7 +71,18 @@ static void DrawerProjection(UniversalRenderPipelineSerializedCamera p, Editor o bool pixelPerfectEnabled = camera.TryGetComponent(out var pixelPerfectCamera) && pixelPerfectCamera.enabled; if (pixelPerfectEnabled) EditorGUILayout.HelpBox(Styles.pixelPerfectInfo, MessageType.Info); +#if XR_MANAGEMENT_4_0_1_OR_NEWER && ENABLE_VR && ENABLE_XR_MODULE + if (p.baseCameraSettings.orthographic.boolValue && p.allowXRRendering.boolValue) + { + var buildTargetGroup = BuildPipeline.GetBuildTargetGroup(EditorUserBuildSettings.activeBuildTarget); + var buildTargetSettings = XR.Management.XRGeneralSettingsPerBuildTarget.XRGeneralSettingsForBuildTarget(buildTargetGroup); + if (buildTargetSettings != null && buildTargetSettings.AssignedSettings != null && buildTargetSettings.AssignedSettings.activeLoaders.Count > 0) + { + EditorGUILayout.HelpBox("Orthographic projection is not supported in XR. Please change the Camera Projection setting to Perspective to avoid rendering issues", MessageType.Warning); + } + } +#endif using (new EditorGUI.DisabledGroupScope(pixelPerfectEnabled)) CameraUI.Drawer_Projection(p, owner); } From 999856e45d19b91fc6d43ecdd86ab872074e2dd0 Mon Sep 17 00:00:00 2001 From: Reach Platform Support Date: Fri, 10 Jul 2026 08:50:58 +0000 Subject: [PATCH 11/49] [Port] [6000.3] [MaterialUpgrader] Skip SaveAssets when no material was upgraded --- .../Tools/MaterialUpgrader/MaterialUpgrader.Utils.cs | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/Packages/com.unity.render-pipelines.core/Editor/Tools/MaterialUpgrader/MaterialUpgrader.Utils.cs b/Packages/com.unity.render-pipelines.core/Editor/Tools/MaterialUpgrader/MaterialUpgrader.Utils.cs index cca182bff51..2b1e34ec70e 100644 --- a/Packages/com.unity.render-pipelines.core/Editor/Tools/MaterialUpgrader/MaterialUpgrader.Utils.cs +++ b/Packages/com.unity.render-pipelines.core/Editor/Tools/MaterialUpgrader/MaterialUpgrader.Utils.cs @@ -303,6 +303,8 @@ internal static string PerformUpgradeInternal( { s_UpgradeLog.AppendLine($"{progressBarName}"); + bool anyMaterialModified = false; + for (int materialIndex = 0; materialIndex < materialUpgrades.Count; ++materialIndex) { var entry = materialUpgrades[materialIndex]; @@ -323,11 +325,16 @@ internal static string PerformUpgradeInternal( else { s_UpgradeLog.AppendLine($"Upgrading material: {entry.MaterialInfo.Name} using shader: {entry.MaterialInfo.ShaderName}"); - Upgrade(entry.MaterialInfo.Material, upgraders, flags); + if (entry.MaterialInfo.Material != null) + { + Upgrade(entry.MaterialInfo.Material, upgraders, flags); + anyMaterialModified = true; + } } } - AssetDatabase.SaveAssets(); + if (anyMaterialModified) + AssetDatabase.SaveAssets(); if (showProgressBar) EditorUtility.ClearProgressBar(); From cf143f5634a0d87c648f046c533bd82f4e808d7f Mon Sep 17 00:00:00 2001 From: Reach Platform Support Date: Sat, 11 Jul 2026 08:57:05 +0000 Subject: [PATCH 12/49] [Port] [6000.3] Updated units in shader graph node documentation --- .../com.unity.shadergraph/Documentation~/Arccosine-Node.md | 2 +- Packages/com.unity.shadergraph/Documentation~/Arcsine-Node.md | 2 +- .../com.unity.shadergraph/Documentation~/Arctangent-Node.md | 2 +- .../com.unity.shadergraph/Documentation~/Arctangent2-Node.md | 2 +- .../Documentation~/Degrees-To-Radians-Node.md | 4 ++-- .../Documentation~/Radians-To-Degrees-Node.md | 4 ++-- Packages/com.unity.shadergraph/Documentation~/Sine-Node.md | 4 ++-- Packages/com.unity.shadergraph/Documentation~/Tangent-Node.md | 2 +- 8 files changed, 11 insertions(+), 11 deletions(-) diff --git a/Packages/com.unity.shadergraph/Documentation~/Arccosine-Node.md b/Packages/com.unity.shadergraph/Documentation~/Arccosine-Node.md index 8d95817efca..42fdb90c8a5 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Arccosine-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Arccosine-Node.md @@ -9,7 +9,7 @@ Returns the arccosine of each component of the input **In** as a vector of the s | Name | Direction | Type | Description | |:------------ |:-------------|:-----|:---| | In | Input | Dynamic Vector | Input value | -| Out | Output | Dynamic Vector | The arccosine in radians | +| Out | Output | Dynamic Vector | The arccosine of the input value, in radians | ## Generated Code Example diff --git a/Packages/com.unity.shadergraph/Documentation~/Arcsine-Node.md b/Packages/com.unity.shadergraph/Documentation~/Arcsine-Node.md index b570d907e68..2cffd495d70 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Arcsine-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Arcsine-Node.md @@ -9,7 +9,7 @@ Returns the arcsine of each component of the input **In** as a vector of the sam | Name | Direction | Type | Description | |:------------ |:-------------|:-----|:---| | In | Input | Dynamic Vector | Input value | -| Out | Output | Dynamic Vector | Output value | +| Out | Output | Dynamic Vector | The arcsine of the input value, in radians | ## Generated Code Example diff --git a/Packages/com.unity.shadergraph/Documentation~/Arctangent-Node.md b/Packages/com.unity.shadergraph/Documentation~/Arctangent-Node.md index e2797dc43b6..447d0ae951d 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Arctangent-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Arctangent-Node.md @@ -9,7 +9,7 @@ Returns the arctangent of the value of input **In**. Each component should be wi | Name | Direction | Type | Description | |:------------ |:-------------|:-----|:---| | In | Input | Dynamic Vector | Input value | -| Out | Output | Dynamic Vector | Output value | +| Out | Output | Dynamic Vector | The arctangent of the input value, in radians | ## Generated Code Example diff --git a/Packages/com.unity.shadergraph/Documentation~/Arctangent2-Node.md b/Packages/com.unity.shadergraph/Documentation~/Arctangent2-Node.md index 3e24fa63950..b788986085f 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Arctangent2-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Arctangent2-Node.md @@ -10,7 +10,7 @@ Returns the arctangent of the values of both input **A** and input **B**. The si |:------------ |:-------------|:-----|:---| | A | Input | Dynamic Vector | First input value | | B | Input | Dynamic Vector | Second input value | -| Out | Output | Dynamic Vector | Output value | +| Out | Output | Dynamic Vector | The arctangent of both inputs, in radians | ## Generated Code Example diff --git a/Packages/com.unity.shadergraph/Documentation~/Degrees-To-Radians-Node.md b/Packages/com.unity.shadergraph/Documentation~/Degrees-To-Radians-Node.md index 0382db8a75b..ea6fcfe7e66 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Degrees-To-Radians-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Degrees-To-Radians-Node.md @@ -10,8 +10,8 @@ One degree is equivalent to approximately 0.0174533 radians and a full rotation | Name | Direction | Type | Description | |:------------ |:-------------|:-----|:---| -| In | Input | Dynamic Vector | Input value | -| Out | Output | Dynamic Vector | Output value | +| In | Input | Dynamic Vector | Input value in degrees | +| Out | Output | Dynamic Vector | Output value in radians | ## Generated Code Example diff --git a/Packages/com.unity.shadergraph/Documentation~/Radians-To-Degrees-Node.md b/Packages/com.unity.shadergraph/Documentation~/Radians-To-Degrees-Node.md index 74810dc7618..0a924149fe8 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Radians-To-Degrees-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Radians-To-Degrees-Node.md @@ -8,8 +8,8 @@ Returns the value of input **In** converted from radians to degrees. One radian | Name | Direction | Type | Description | |:------------ |:-------------|:-----|:---| -| In | Input | Dynamic Vector | Input value | -| Out | Output | Dynamic Vector | Output value | +| In | Input | Dynamic Vector | Input value in radians | +| Out | Output | Dynamic Vector | Output value in degrees | ## Generated Code Example diff --git a/Packages/com.unity.shadergraph/Documentation~/Sine-Node.md b/Packages/com.unity.shadergraph/Documentation~/Sine-Node.md index 4857c36aecb..e3a4819c0f6 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Sine-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Sine-Node.md @@ -8,8 +8,8 @@ Returns the sine of the value of input **In**. | Name | Direction | Type | Description | |:------|:-----------|:---------------|:--------------| -| In | Input | Dynamic Vector | Input value in radians. | -| Out | Output | Dynamic Vector | Output value. Range (-1 to +1). | +| In | Input | Dynamic Vector | Input value in radians | +| Out | Output | Dynamic Vector | Output value | ## Generated Code Example diff --git a/Packages/com.unity.shadergraph/Documentation~/Tangent-Node.md b/Packages/com.unity.shadergraph/Documentation~/Tangent-Node.md index 562daf119fb..0777f091392 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Tangent-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Tangent-Node.md @@ -8,7 +8,7 @@ Returns the tangent of the value of input **In**. | Name | Direction | Type | Description | |:------------ |:-------------|:-----|:---| -| In | Input | Dynamic Vector | Input value | +| In | Input | Dynamic Vector | Input value in radians | | Out | Output | Dynamic Vector | Output value | ## Generated Code Example From 5a1394efb4036faea93bd91c00910fa228095b43 Mon Sep 17 00:00:00 2001 From: Reach Platform Support Date: Tue, 14 Jul 2026 16:26:04 +0000 Subject: [PATCH 13/49] [Port] [6000.3] Direct URP help URLs to the Unity Manual --- .../Debugging/DebugDisplaySettingsUI.cs | 4 +- .../Runtime/Documentation.cs | 177 +++++++++++++++--- .../Debug/DebugDisplayGPUResidentDrawer.cs | 6 +- .../ProbeVolume/ProbeVolumesOptions.cs | 3 +- .../PostProcessing/LensFlareComponentSRP.cs | 3 +- .../PostProcessing/LensFlareDataSRP.cs | 3 +- .../Debug/DebugDisplaySettingsRenderGraph.cs | 6 +- .../Runtime/Volume/Volume.cs | 2 +- .../Runtime/Volume/VolumeProfile.cs | 2 +- .../rendering-debugger-window-reference.md | 4 + .../Debug/DebugDisplaySettingsDecal.cs | 3 +- ...UniversalRenderPipelineCameraUI.Drawers.cs | 2 +- .../BuiltInToURPConverterContainer.cs | 2 +- .../UniversalRenderPipelineLightUI.Drawers.cs | 2 +- .../Editor/ShaderGUI/BaseShaderGUI.cs | 2 +- .../Runtime/2D/Renderer2DData.cs | 2 +- .../Data/UniversalRenderPipelineAsset.cs | 3 +- .../Debug/DebugDisplaySettingsLighting.cs | 2 +- .../Debug/DebugDisplaySettingsMaterial.cs | 2 +- .../Debug/DebugDisplaySettingsRendering.cs | 2 +- .../Runtime/Documentation.cs | 44 +++-- .../Runtime/Overrides/Bloom.cs | 2 +- .../Runtime/Overrides/ChannelMixer.cs | 2 +- .../Runtime/Overrides/ChromaticAberration.cs | 2 +- .../Runtime/Overrides/ColorAdjustments.cs | 2 +- .../Runtime/Overrides/ColorCurves.cs | 2 +- .../Runtime/Overrides/ColorLookup.cs | 2 +- .../Runtime/Overrides/DepthOfField.cs | 2 +- .../Runtime/Overrides/FilmGrain.cs | 2 +- .../Runtime/Overrides/LensDistortion.cs | 2 +- .../Runtime/Overrides/LiftGammaGain.cs | 2 +- .../Runtime/Overrides/MotionBlur.cs | 2 +- .../Runtime/Overrides/PaniniProjection.cs | 2 +- .../Runtime/Overrides/ScreenSpaceLensFlare.cs | 2 +- .../Overrides/ShadowsMidtonesHighlights.cs | 2 +- .../Runtime/Overrides/SplitToning.cs | 2 +- .../Runtime/Overrides/Tonemapping.cs | 2 +- .../Runtime/Overrides/Vignette.cs | 2 +- .../Runtime/Overrides/WhiteBalance.cs | 2 +- .../RendererFeatures/DecalRendererFeature.cs | 2 +- .../FullScreenPassRendererFeature.cs | 2 +- .../Runtime/RendererFeatures/RenderObjects.cs | 2 +- .../ScreenSpaceAmbientOcclusion.cs | 2 +- .../RendererFeatures/ScreenSpaceShadows.cs | 2 +- .../Runtime/UniversalAdditionalCameraData.cs | 2 +- .../Runtime/UniversalAdditionalLightData.cs | 2 +- .../UniversalRenderPipelineGlobalSettings.cs | 2 +- .../Runtime/UniversalRendererData.cs | 2 +- .../Assets/Tests/EditMode/HelpURLTests.cs | 6 +- .../Assets/Tests/Editor/Documentation.meta | 3 + .../Editor/Documentation/HelpUrlTests.cs | 169 +++++++++++++++++ .../Editor/Documentation/HelpUrlTests.cs.meta | 3 + .../VolumeHelpUrlTests.cs | 44 ++--- .../VolumeHelpUrlTests.cs.meta | 0 54 files changed, 433 insertions(+), 122 deletions(-) create mode 100644 Tests/SRPTests/Projects/SRP_SmokeTest/Assets/Tests/Editor/Documentation.meta create mode 100644 Tests/SRPTests/Projects/SRP_SmokeTest/Assets/Tests/Editor/Documentation/HelpUrlTests.cs create mode 100644 Tests/SRPTests/Projects/SRP_SmokeTest/Assets/Tests/Editor/Documentation/HelpUrlTests.cs.meta rename Tests/SRPTests/Projects/SRP_SmokeTest/Assets/Tests/Editor/{Volumes => Documentation}/VolumeHelpUrlTests.cs (65%) rename Tests/SRPTests/Projects/SRP_SmokeTest/Assets/Tests/Editor/{Volumes => Documentation}/VolumeHelpUrlTests.cs.meta (100%) diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Debugging/DebugDisplaySettingsUI.cs b/Packages/com.unity.render-pipelines.core/Runtime/Debugging/DebugDisplaySettingsUI.cs index 2dbc44e203a..bb29b4cf382 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/Debugging/DebugDisplaySettingsUI.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/Debugging/DebugDisplaySettingsUI.cs @@ -53,7 +53,9 @@ public void RegisterDebug(IDebugDisplaySettings settings) createIfNull: true, groupIndex: (disposableSettingsPanel is DebugDisplaySettingsPanel debugDisplaySettingsPanel) ? debugDisplaySettingsPanel.Order : 0); #if UNITY_EDITOR - panel.documentationUrl = disposableSettingsPanel.GetType().GetCustomAttribute()?.URL; + + if (DocumentationUtils.TryGetHelpURL(disposableSettingsPanel.GetType(), out var documentationUrl)) + panel.documentationUrl = documentationUrl; #endif ObservableList panelChildren = panel.children; diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Documentation.cs b/Packages/com.unity.render-pipelines.core/Runtime/Documentation.cs index e5a03f27f1b..45efa71d4c2 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/Documentation.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/Documentation.cs @@ -1,8 +1,7 @@ using System; +using System.Reflection; using System.Runtime.CompilerServices; using System.Diagnostics; -using System.Linq; -using System.Reflection; using System.Diagnostics.CodeAnalysis; #if UNITY_EDITOR using PackageInfo = UnityEditor.PackageManager.PackageInfo; @@ -48,8 +47,14 @@ public CoreRPHelpURLAttribute(string pageName, string pageHash, string packageNa /// /// Use this attribute to define documentation url for the current Render Pipeline. /// + /// + /// The URL is resolved at access time based on the active RenderPipelineAsset + /// type. If that type carries a the URL is + /// built for the declared ; otherwise it falls back + /// to the package documentation site for the package that owns the pipeline asset. + /// /// - /// [CoreRPHelpURLAttribute("Volume")] + /// [CurrentPipelineHelpURLAttribute("Volume")] /// public class Volume : MonoBehaviour /// [Conditional("UNITY_EDITOR")] @@ -57,7 +62,7 @@ public CoreRPHelpURLAttribute(string pageName, string pageHash, string packageNa public class CurrentPipelineHelpURLAttribute : HelpURLAttribute { private string pageName { get; } - + private string pageHash { get; } /// /// The constructor of the attribute @@ -72,23 +77,24 @@ public CurrentPipelineHelpURLAttribute(string pageName, string pageHash = "") } /// - /// Returns the URL to the given page in the current Render Pipeline package documentation site. + /// Returns the URL to the given page in the current Render Pipeline documentation. /// public override string URL { get { #if UNITY_EDITOR - if (DocumentationUtils.TryGetPackageInfoForType(GraphicsSettings.currentRenderPipelineAssetType ?? typeof(DocumentationInfo), out var package, out var version)) - { - return DocumentationInfo.GetPackageLink(package, version, pageName, pageHash); - } -#endif + if (!GraphicsSettings.isScriptableRenderPipelineEnabled) + return string.Empty; + + return DocumentationInfo.BuildPipelineHelpUrl(GraphicsSettings.currentRenderPipelineAssetType, pageName, pageHash); +#else return string.Empty; +#endif } } } - + /// /// Use this attribute to define a documentation URL that is only active when a specific Render Pipeline is in use. /// @@ -110,9 +116,9 @@ public class PipelineHelpURLAttribute : HelpURLAttribute private string pipelineName { get; } private string pageName { get; } - + private string pageHash { get; } - + /// /// Initializes the attribute to link to a specific documentation page for a named Render Pipeline. /// @@ -147,11 +153,11 @@ public override string URL var pipelineType = GraphicsSettings.currentRenderPipelineAssetType; if (pipelineType.Name != pipelineName) return string.Empty; - - if (DocumentationUtils.TryGetPackageInfoForType(pipelineType, out var package, out var version)) - return DocumentationInfo.GetPackageLink(package, version, pageName, pageHash); -#endif + + return DocumentationInfo.BuildPipelineHelpUrl(pipelineType, pageName, pageHash); +#else return string.Empty; +#endif } } } @@ -162,10 +168,86 @@ public override string URL /// public class DocumentationInfo { + /// + /// Identifies where a Render Pipeline's user-facing documentation lives, so that + /// and + /// build URLs against the right base location. + /// + public enum Location + { + /// + /// Pages live on the package documentation site + /// (https://docs.unity3d.com/Packages/<package>@<version>/manual/<page>.html). + /// This is the default when no is present. + /// + Package, + + /// + /// Pages live in the Unity Manual + /// (https://docs.unity3d.com/<version>/Documentation/Manual/<page>.html). + /// + Manual, + } + + /// + /// Apply this attribute to a RenderPipelineAsset type to declare where its + /// user-facing documentation is hosted. Consumed by + /// and to choose between Unity Manual URLs and + /// the package documentation site. + /// + /// + /// Editor-only: the attribute is stripped from non-Editor builds via + /// , since the help URL machinery only runs in the Editor. + /// + /// + /// + /// [DocumentationInfo.Source(DocumentationInfo.Location.Manual)] + /// public class UniversalRenderPipelineAsset : RenderPipelineAsset { /* ... */ } + /// + /// + [Conditional("UNITY_EDITOR")] + [AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = false)] + public sealed class SourceAttribute : Attribute + { + /// The documentation location for the decorated pipeline asset type. + public Location Location { get; } + + /// Creates the attribute with the given documentation location. + /// Where the pipeline's documentation pages are hosted. + public SourceAttribute(Location location) + { + Location = location; + } + } + const string fallbackVersion = "13.1"; const string packageDocumentationUrl = "https://docs.unity3d.com/Packages/{0}@{1}/manual/"; const string url = packageDocumentationUrl + "{2}.html{3}"; + const string k_ManualUrlFormat = "https://docs.unity3d.com/{0}/Documentation/Manual/{1}.html{2}"; + const string k_ManualFallbackUrlFormat = "https://docs.unity3d.com/Manual/{0}.html{1}"; + +#if UNITY_EDITOR + // Resolves a help URL for a page documented under a specific pipeline asset type. + // The location (Unity Manual vs package site) is taken from a DocumentationInfo.SourceAttribute + // on the pipeline asset type; without one, falls back to the package site for the + // package that owns the type. + internal static string BuildPipelineHelpUrl(Type pipelineAssetType, string pageName, string pageHash) + { + if (pipelineAssetType == null) + return string.Empty; + + var source = pipelineAssetType.GetCustomAttribute(inherit: false); + if (source != null && source.Location == Location.Manual) + return GetManualLink(pageName, pageHash); + + if (DocumentationUtils.TryGetPackageInfoForType(pipelineAssetType, out var package, out var version)) + return GetPackageLink(package, version, pageName, pageHash); + + return string.Empty; + } +#endif + /// /// Current version of the documentation. /// @@ -189,7 +271,7 @@ public static string version /// The page name without the extension. /// The full URL of the page. public static string GetPackageLink(string packageName, string packageVersion, string pageName) => string.Format(url, packageName, packageVersion, pageName, ""); - + /// /// Generates a help URL for the given package, page name and section name. /// @@ -241,6 +323,42 @@ public static string GetPageLink(string packageName, string pageName, string pag /// The name of the package. /// The full URL to the default package documentation page. public static string GetDefaultPackageLink(string packageName) => string.Format(packageDocumentationUrl, packageName, version); + + /// + /// Generates a Unity Manual help URL for the given page. + /// + /// The page path relative to the Manual root, without the .html extension (for example "urp/Volumes"). + /// Optional section anchor on the page, with or without the leading #. + /// + /// A versioned Manual URL such as + /// https://docs.unity3d.com/6000.6/Documentation/Manual/urp/Volumes.html when + /// the running Unity version can be determined, otherwise the unversioned + /// fallback https://docs.unity3d.com/Manual/urp/Volumes.html. + /// + /// + /// + /// // Versioned: https://docs.unity3d.com/6000.6/Documentation/Manual/urp/Volumes.html + /// // Fallback: https://docs.unity3d.com/Manual/urp/Volumes.html + /// var url = DocumentationInfo.GetManualLink("urp/Volumes"); + /// + /// // With a section anchor. + /// var sectionUrl = DocumentationInfo.GetManualLink("urp/features/rendering-debugger-reference", "lighting"); + /// + /// + public static string GetManualLink(string pageName, string pageHash = "") + { + if (!string.IsNullOrEmpty(pageHash) && !pageHash.StartsWith("#")) + pageHash = "#" + pageHash; + +#if UNITY_EDITOR + if (UnityEditor.AssetDatabase.IsAssetImportWorkerProcess()) + return string.Format(k_ManualFallbackUrlFormat, pageName, pageHash); + var unityVersion = UnityEditorInternal.InternalEditorUtility.GetUnityVersion(); + return string.Format(k_ManualUrlFormat, $"{unityVersion.Major}.{unityVersion.Minor}", pageName, pageHash); +#else + return string.Format(k_ManualFallbackUrlFormat, pageName, pageHash); +#endif + } } /// @@ -257,12 +375,11 @@ public static class DocumentationUtils public static string GetHelpURL(TEnum mask = default) where TEnum : struct, IConvertible { - var helpURLAttribute = (HelpURLAttribute)mask + var helpURLAttributes = mask .GetType() - .GetCustomAttributes(typeof(HelpURLAttribute), false) - .FirstOrDefault(); + .GetCustomAttributes(typeof(HelpURLAttribute), false); - return helpURLAttribute == null ? string.Empty : $"{helpURLAttribute.URL}#{mask}"; + return helpURLAttributes.Length == 0 ? string.Empty : $"{((HelpURLAttribute)helpURLAttributes[0]).URL}#{mask}"; } /// @@ -273,9 +390,19 @@ public static string GetHelpURL(TEnum mask = default) /// Returns true if the attribute is present, and false otherwise. public static bool TryGetHelpURL(Type type, out string url) { - var attribute = type.GetCustomAttribute(false); - url = attribute?.URL; - return attribute != null; + var helpURLAttributes = type.GetCustomAttributes(typeof(HelpURLAttribute), true); + for (int i = 0; i < helpURLAttributes.Length; i++) + { + var attr = (HelpURLAttribute)helpURLAttributes[i]; + var attributeUrl = attr.URL; + if (string.IsNullOrEmpty(attributeUrl)) + continue; + + url = attributeUrl; + return true; + } + url = null; + return false; } #if UNITY_EDITOR 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 cad71f4660e..804a364695f 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 @@ -13,7 +13,8 @@ namespace UnityEngine.Rendering /// /// GPU Resident Drawer Rendering Debugger settings. /// - [CurrentPipelineHelpURL("gpu-resident-drawer")] + [PipelineHelpURL("UniversalRenderPipelineAsset", "urp/gpu-resident-drawer")] + [PipelineHelpURL("HDRenderPipelineAsset", "gpu-resident-drawer")] public class DebugDisplayGPUResidentDrawer : IDebugDisplaySettingsData { const string k_FormatString = "{0}"; @@ -284,10 +285,11 @@ private class SettingsPanel : DebugDisplaySettingsPanel public SettingsPanel(DebugDisplayGPUResidentDrawer data) { + DocumentationUtils.TryGetHelpURL(typeof(DebugDisplayGPUResidentDrawer), out var documentationUrl); var foldout = new DebugUI.Foldout() { displayName = Strings.drawerSettingsContainerName, - documentationUrl = typeof(DebugDisplayGPUResidentDrawer).GetCustomAttribute()?.URL + documentationUrl = documentationUrl }; AddWidget(foldout); diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Lighting/ProbeVolume/ProbeVolumesOptions.cs b/Packages/com.unity.render-pipelines.core/Runtime/Lighting/ProbeVolume/ProbeVolumesOptions.cs index ebbbd638cfc..7364df82bd1 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/Lighting/ProbeVolume/ProbeVolumesOptions.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/Lighting/ProbeVolume/ProbeVolumesOptions.cs @@ -22,7 +22,8 @@ public APVLeakReductionModeParameter(APVLeakReductionMode value, bool overrideSt /// A volume component that holds settings for the Adaptive Probe Volumes System per-camera options. /// [Serializable, VolumeComponentMenu("Lighting/Adaptive Probe Volumes Options"), SupportedOnRenderPipeline] - [CurrentPipelineHelpURL("probevolumes")] + [PipelineHelpURL("UniversalRenderPipelineAsset", "urp/probevolumes")] + [PipelineHelpURL("HDRenderPipelineAsset", "probevolumes")] [DisplayInfo(name = "Adaptive Probe Volumes Options")] public sealed class ProbeVolumesOptions : VolumeComponent { diff --git a/Packages/com.unity.render-pipelines.core/Runtime/PostProcessing/LensFlareComponentSRP.cs b/Packages/com.unity.render-pipelines.core/Runtime/PostProcessing/LensFlareComponentSRP.cs index 6913fe88bb7..c6e856623d9 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/PostProcessing/LensFlareComponentSRP.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/PostProcessing/LensFlareComponentSRP.cs @@ -13,7 +13,8 @@ namespace UnityEngine.Rendering /// [ExecuteAlways] [AddComponentMenu("Rendering/Lens Flare (SRP)")] - [CurrentPipelineHelpURL("shared/lens-flare/lens-flare-component")] + [PipelineHelpURL("UniversalRenderPipelineAsset", "urp/shared/lens-flare/lens-flare-component")] + [PipelineHelpURL("HDRenderPipelineAsset", "shared/lens-flare/lens-flare-component")] public sealed class LensFlareComponentSRP : MonoBehaviour { [SerializeField] 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 4db6db78656..e25c64efca0 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/PostProcessing/LensFlareDataSRP.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/PostProcessing/LensFlareDataSRP.cs @@ -466,7 +466,8 @@ public float sdfRoundness } /// LensFlareDataSRP defines a Lens Flare with a set of LensFlareDataElementSRP - [CurrentPipelineHelpURL("shared/lens-flare/lens-flare-asset")] + [PipelineHelpURL("UniversalRenderPipelineAsset", "urp/shared/lens-flare/lens-flare-asset")] + [PipelineHelpURL("HDRenderPipelineAsset", "shared/lens-flare/lens-flare-asset")] [System.Serializable] public sealed class LensFlareDataSRP : ScriptableObject { diff --git a/Packages/com.unity.render-pipelines.core/Runtime/RenderGraph/Debug/DebugDisplaySettingsRenderGraph.cs b/Packages/com.unity.render-pipelines.core/Runtime/RenderGraph/Debug/DebugDisplaySettingsRenderGraph.cs index df0f2402d79..06bacd90218 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/RenderGraph/Debug/DebugDisplaySettingsRenderGraph.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/RenderGraph/Debug/DebugDisplaySettingsRenderGraph.cs @@ -8,7 +8,8 @@ namespace UnityEngine.Rendering /// /// Render Graph-related Rendering Debugger settings. /// - [CurrentPipelineHelpURL(pageName: "features/rendering-debugger-reference", pageHash: "render-graph")] + [PipelineHelpURL("UniversalRenderPipelineAsset", pageName: "urp/features/rendering-debugger-reference", pageHash: "render-graph")] + [PipelineHelpURL("HDRenderPipelineAsset", pageName: "rendering-debugger-window-reference", pageHash: "render-graph")] class DebugDisplaySettingsRenderGraph : IDebugDisplaySettingsData { public DebugDisplaySettingsRenderGraph() @@ -24,10 +25,11 @@ private class SettingsPanel : DebugDisplaySettingsPanel { public SettingsPanel(DebugDisplaySettingsRenderGraph _) { + DocumentationUtils.TryGetHelpURL(typeof(DebugDisplaySettingsRenderGraph), out var documentationUrl); var foldout = new DebugUI.Foldout() { displayName = "Render Graph", - documentationUrl = typeof(DebugDisplaySettingsRenderGraph).GetCustomAttribute()?.URL + documentationUrl = documentationUrl }; AddWidget(foldout); 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 88c36382a08..796237600f1 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/Volume/Volume.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/Volume/Volume.cs @@ -8,7 +8,7 @@ namespace UnityEngine.Rendering /// A generic Volume component holding a . /// [PipelineHelpURL("HDRenderPipelineAsset","understand-volumes")] - [PipelineHelpURL("UniversalRenderPipelineAsset", "Volumes")] + [PipelineHelpURL("UniversalRenderPipelineAsset", "urp/Volumes")] [ExecuteAlways] [AddComponentMenu("Miscellaneous/Volume")] [Icon("Packages/com.unity.render-pipelines.core/Editor/Icons/Processed/Volume Icon.asset")] 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 7475939a712..c9cc8e3dcbe 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/Volume/VolumeProfile.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/Volume/VolumeProfile.cs @@ -8,7 +8,7 @@ namespace UnityEngine.Rendering /// /// An Asset which holds a set of settings to use with a . /// - [PipelineHelpURL("UniversalRenderPipelineAsset","Volume-Profile")] + [PipelineHelpURL("UniversalRenderPipelineAsset","urp/Volume-Profile")] [PipelineHelpURL("HDRenderPipelineAsset","create-a-volume-profile")] [Icon("Packages/com.unity.render-pipelines.core/Editor/Icons/Processed/VolumeProfile Icon.asset")] public sealed class VolumeProfile : ScriptableObject 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 6c90650cf44..5e82d38a753 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 @@ -327,6 +327,10 @@ The **Color monitors** are a set of industry-standard monitors to help artists c | **Exposure** | Determines the exposure multiplier HDRP applies to the vectorscope values. This property only appears when you enable the **Vectorscope** checkbox. | | **Size** | The size ratio of the color monitors. | + + +### Render Graph + | **Property** | **Description** | |--------------------------------------|--------------------------------------------------------------------------------------| | **Clear Render Targets At Creation** | Clears render textures the first time the render graph system uses them. | diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugDisplaySettingsDecal.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugDisplaySettingsDecal.cs index 613cd4302d8..333f6f3d393 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugDisplaySettingsDecal.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugDisplaySettingsDecal.cs @@ -40,11 +40,12 @@ private class SettingsPanel : DebugDisplaySettingsPanel { public SettingsPanel(DebugDisplaySettingsDecal data) { + DocumentationUtils.TryGetHelpURL(typeof(DebugDisplaySettingsDecal), out var documentationUrl); var foldout = new DebugUI.Foldout() { displayName = Strings.decals, opened = true, - documentationUrl = typeof(DebugDisplaySettingsDecal).GetCustomAttribute()?.URL + documentationUrl = documentationUrl }; AddWidget(foldout); diff --git a/Packages/com.unity.render-pipelines.universal/Editor/Camera/UniversalRenderPipelineCameraUI.Drawers.cs b/Packages/com.unity.render-pipelines.universal/Editor/Camera/UniversalRenderPipelineCameraUI.Drawers.cs index 6533f8436fd..77a6f049c32 100644 --- a/Packages/com.unity.render-pipelines.universal/Editor/Camera/UniversalRenderPipelineCameraUI.Drawers.cs +++ b/Packages/com.unity.render-pipelines.universal/Editor/Camera/UniversalRenderPipelineCameraUI.Drawers.cs @@ -7,7 +7,7 @@ namespace UnityEditor.Rendering.Universal static partial class UniversalRenderPipelineCameraUI { - [URPHelpURL("camera-component-reference")] + [URPHelpURL("urp/camera-component-reference")] public enum Expandable { /// Projection diff --git a/Packages/com.unity.render-pipelines.universal/Editor/Converter/BuiltInToURPConverterContainer.cs b/Packages/com.unity.render-pipelines.universal/Editor/Converter/BuiltInToURPConverterContainer.cs index 208ff762f1d..9072c9762e4 100644 --- a/Packages/com.unity.render-pipelines.universal/Editor/Converter/BuiltInToURPConverterContainer.cs +++ b/Packages/com.unity.render-pipelines.universal/Editor/Converter/BuiltInToURPConverterContainer.cs @@ -3,7 +3,7 @@ namespace UnityEditor.Rendering.Universal { - [URPHelpURL("features/rp-converter")] + [URPHelpURL("urp/features/rp-converter")] internal sealed class BuiltInToURPConverterContainer : RenderPipelineConverterContainer { public override string name => "Built-in to URP"; diff --git a/Packages/com.unity.render-pipelines.universal/Editor/Lighting/UniversalRenderPipelineLightUI.Drawers.cs b/Packages/com.unity.render-pipelines.universal/Editor/Lighting/UniversalRenderPipelineLightUI.Drawers.cs index 7500ea52b6d..7e29b98bbbb 100644 --- a/Packages/com.unity.render-pipelines.universal/Editor/Lighting/UniversalRenderPipelineLightUI.Drawers.cs +++ b/Packages/com.unity.render-pipelines.universal/Editor/Lighting/UniversalRenderPipelineLightUI.Drawers.cs @@ -15,7 +15,7 @@ namespace UnityEditor.Rendering.Universal internal partial class UniversalRenderPipelineLightUI { - [URPHelpURL("light-component")] + [URPHelpURL("urp/light-component")] enum Expandable { General = 1 << 0, 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 dd311527a25..40c05393f24 100644 --- a/Packages/com.unity.render-pipelines.universal/Editor/ShaderGUI/BaseShaderGUI.cs +++ b/Packages/com.unity.render-pipelines.universal/Editor/ShaderGUI/BaseShaderGUI.cs @@ -24,7 +24,7 @@ public abstract class BaseShaderGUI : ShaderGUI /// Flags for the foldouts used in the base shader GUI. /// [Flags] - [URPHelpURL("shaders-in-universalrp")] + [URPHelpURL("urp/shaders-in-universalrp")] protected enum Expandable { /// diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/2D/Renderer2DData.cs b/Packages/com.unity.render-pipelines.universal/Runtime/2D/Renderer2DData.cs index 1530a003689..8b6efab56b0 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/2D/Renderer2DData.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/2D/Renderer2DData.cs @@ -15,7 +15,7 @@ namespace UnityEngine.Rendering.Universal /// [Serializable, ReloadGroup, ExcludeFromPreset] [MovedFrom(true, "UnityEngine.Experimental.Rendering.Universal", "Unity.RenderPipelines.Universal.Runtime")] - [HelpURL("https://docs.unity3d.com/Packages/com.unity.render-pipelines.universal@latest/index.html?subfolder=/manual/2DRendererData-overview.html")] + [URPHelpURL("urp/2DRendererData-overview")] public partial class Renderer2DData : ScriptableRendererData { internal enum Renderer2DDefaultMaterialType diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Data/UniversalRenderPipelineAsset.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Data/UniversalRenderPipelineAsset.cs index 88f1a241813..db3d895755b 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Data/UniversalRenderPipelineAsset.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Data/UniversalRenderPipelineAsset.cs @@ -449,9 +449,10 @@ internal static void EmitConsoleWarning() /// /// [ExcludeFromPreset] - [URPHelpURL("universalrp-asset")] + [URPHelpURL("urp/universalrp-asset")] [Icon("UnityEngine/Rendering/RenderPipelineAsset Icon")] #if UNITY_EDITOR + [DocumentationInfo.Source(DocumentationInfo.Location.Manual)] [ShaderKeywordFilter.ApplyRulesIfTagsEqual("RenderPipeline", "UniversalPipeline")] #endif public partial class UniversalRenderPipelineAsset : RenderPipelineAsset, ISerializationCallbackReceiver, IProbeVolumeEnabledRenderPipeline, IGPUResidentRenderPipeline, IRenderGraphEnabledRenderPipeline, ISTPEnabledRenderPipeline diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Debug/DebugDisplaySettingsLighting.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Debug/DebugDisplaySettingsLighting.cs index ef347591090..43f7401d15a 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Debug/DebugDisplaySettingsLighting.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Debug/DebugDisplaySettingsLighting.cs @@ -8,7 +8,7 @@ namespace UnityEngine.Rendering.Universal /// /// Lighting-related Rendering Debugger settings. /// - [URPHelpURL("features/rendering-debugger-reference", "lighting")] + [URPHelpURL("urp/features/rendering-debugger-reference", "lighting")] public class DebugDisplaySettingsLighting : IDebugDisplaySettingsData { /// diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Debug/DebugDisplaySettingsMaterial.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Debug/DebugDisplaySettingsMaterial.cs index 8ea1f226070..2e57c27e99a 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Debug/DebugDisplaySettingsMaterial.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Debug/DebugDisplaySettingsMaterial.cs @@ -500,7 +500,7 @@ internal static DebugUI.RenderingLayerField CreateFilterRenderingLayerMasks(Sett } [DisplayInfo(name = "Material", order = 2)] - [URPHelpURL("features/rendering-debugger-reference", "material")] + [URPHelpURL("urp/features/rendering-debugger-reference", "material")] internal class SettingsPanel : DebugDisplaySettingsPanel { public SettingsPanel(DebugDisplaySettingsMaterial data) diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Debug/DebugDisplaySettingsRendering.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Debug/DebugDisplaySettingsRendering.cs index e3acbaf376c..1869f41c180 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Debug/DebugDisplaySettingsRendering.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Debug/DebugDisplaySettingsRendering.cs @@ -541,7 +541,7 @@ internal static DebugUI.Widget CreateMipMapDebugSettings(SettingsPanel panel) } [DisplayInfo(name = "Rendering", order = 1)] - [URPHelpURL("features/rendering-debugger-reference", "rendering")] + [URPHelpURL("urp/features/rendering-debugger-reference", "rendering")] internal class SettingsPanel : DebugDisplaySettingsPanel { public SettingsPanel(DebugDisplaySettingsRendering data) diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Documentation.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Documentation.cs index 5a3339a3156..f511bda3630 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Documentation.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Documentation.cs @@ -1,28 +1,38 @@ +using System; using System.Diagnostics; +using UnityEngine.Rendering; namespace UnityEngine.Rendering.Universal { + /// + /// Attribute to define the help URL for Universal Render Pipeline classes. + /// + /// + /// The page name is treated as a path relative to the Unity Manual root + /// (https://docs.unity3d.com/<version>/Documentation/Manual/). Most URP + /// pages live under the urp/ subfolder, so callers typically pass a path of + /// the form "urp/<page>", but pages elsewhere in the Manual (for + /// example shared content) can also be linked. The URL is built by + /// in the core package. + /// + /// + /// + /// [URPHelpURL("urp/Volumes")] + /// public class VolumeProfile : ScriptableObject { /* ... */ } + /// + /// [Conditional("UNITY_EDITOR")] - internal class URPHelpURLAttribute : CoreRPHelpURLAttribute + [AttributeUsage(AttributeTargets.Class | AttributeTargets.Enum, AllowMultiple = false)] + internal class URPHelpURLAttribute : HelpURLAttribute { + /// + /// Creates a help URL attribute for a page in the Unity Manual. + /// + /// The page path relative to the Manual root, without the .html extension (for example "urp/Volumes"). + /// Optional section anchor on the page, with or without the leading #. public URPHelpURLAttribute(string pageName, string pageHash = "") - : base(pageName, pageHash, Documentation.packageName) + : base(DocumentationInfo.GetManualLink(pageName, pageHash)) { } } - - internal class Documentation : DocumentationInfo - { - /// - /// The name of the package - /// - public const string packageName = "com.unity.render-pipelines.universal"; - - /// - /// Generates a Universal Render Pipeline help url for the given page name - /// - /// The page name - /// The full url - public static string GetPageLink(string pageName) => GetPageLink(packageName, pageName); - } } diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/Bloom.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/Bloom.cs index dae9577ad5b..5083fb17fd1 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/Bloom.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/Bloom.cs @@ -163,7 +163,7 @@ public enum BloomFilterMode /// [Serializable, VolumeComponentMenu("Post-processing/Bloom")] [SupportedOnRenderPipeline(typeof(UniversalRenderPipelineAsset))] - [URPHelpURL("post-processing-bloom")] + [URPHelpURL("urp/post-processing-bloom")] public sealed partial class Bloom : VolumeComponent, IPostProcessComponent { /// diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/ChannelMixer.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/ChannelMixer.cs index 3e5d5c3883d..06b86ddecff 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/ChannelMixer.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/ChannelMixer.cs @@ -114,7 +114,7 @@ namespace UnityEngine.Rendering.Universal /// [Serializable, VolumeComponentMenu("Post-processing/Channel Mixer")] [SupportedOnRenderPipeline(typeof(UniversalRenderPipelineAsset))] - [URPHelpURL("Post-Processing-Channel-Mixer")] + [URPHelpURL("urp/Post-Processing-Channel-Mixer")] public sealed class ChannelMixer : VolumeComponent, IPostProcessComponent { /// diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/ChromaticAberration.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/ChromaticAberration.cs index 6972a9427cd..26435630271 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/ChromaticAberration.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/ChromaticAberration.cs @@ -89,7 +89,7 @@ namespace UnityEngine.Rendering.Universal /// [Serializable, VolumeComponentMenu("Post-processing/Chromatic Aberration")] [SupportedOnRenderPipeline(typeof(UniversalRenderPipelineAsset))] - [URPHelpURL("post-processing-chromatic-aberration")] + [URPHelpURL("urp/post-processing-chromatic-aberration")] public sealed class ChromaticAberration : VolumeComponent, IPostProcessComponent { /// diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/ColorAdjustments.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/ColorAdjustments.cs index 72dfa3c8909..f675f27b908 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/ColorAdjustments.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/ColorAdjustments.cs @@ -103,7 +103,7 @@ namespace UnityEngine.Rendering.Universal /// [Serializable, VolumeComponentMenu("Post-processing/Color Adjustments")] [SupportedOnRenderPipeline(typeof(UniversalRenderPipelineAsset))] - [URPHelpURL("Post-Processing-Color-Adjustments")] + [URPHelpURL("urp/Post-Processing-Color-Adjustments")] public sealed class ColorAdjustments : VolumeComponent, IPostProcessComponent { /// diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/ColorCurves.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/ColorCurves.cs index b5c4149ddb1..4b12aae0c16 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/ColorCurves.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/ColorCurves.cs @@ -110,7 +110,7 @@ namespace UnityEngine.Rendering.Universal /// [Serializable, VolumeComponentMenu("Post-processing/Color Curves")] [SupportedOnRenderPipeline(typeof(UniversalRenderPipelineAsset))] - [URPHelpURL("Post-Processing-Color-Curves")] + [URPHelpURL("urp/Post-Processing-Color-Curves")] public sealed class ColorCurves : VolumeComponent, IPostProcessComponent { /// diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/ColorLookup.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/ColorLookup.cs index 0c6af2cff82..878e0130c5f 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/ColorLookup.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/ColorLookup.cs @@ -94,7 +94,7 @@ namespace UnityEngine.Rendering.Universal /// [Serializable, VolumeComponentMenu("Post-processing/Color Lookup")] [SupportedOnRenderPipeline(typeof(UniversalRenderPipelineAsset))] - [URPHelpURL("integration-with-post-processing")] + [URPHelpURL("urp/integration-with-post-processing")] public sealed class ColorLookup : VolumeComponent, IPostProcessComponent { /// diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/DepthOfField.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/DepthOfField.cs index e73e95639db..9a6241769e7 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/DepthOfField.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/DepthOfField.cs @@ -145,7 +145,7 @@ public enum DepthOfFieldMode /// [Serializable, VolumeComponentMenu("Post-processing/Depth Of Field")] [SupportedOnRenderPipeline(typeof(UniversalRenderPipelineAsset))] - [URPHelpURL("post-processing-depth-of-field")] + [URPHelpURL("urp/depth-of-field-volume-override-reference")] public sealed class DepthOfField : VolumeComponent, IPostProcessComponent { /// diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/FilmGrain.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/FilmGrain.cs index 90bdf6f8c85..447aa84331c 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/FilmGrain.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/FilmGrain.cs @@ -162,7 +162,7 @@ public enum FilmGrainLookup /// [Serializable, VolumeComponentMenu("Post-processing/Film Grain")] [SupportedOnRenderPipeline(typeof(UniversalRenderPipelineAsset))] - [URPHelpURL("Post-Processing-Film-Grain")] + [URPHelpURL("urp/Post-Processing-Film-Grain")] public sealed class FilmGrain : VolumeComponent, IPostProcessComponent { /// diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/LensDistortion.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/LensDistortion.cs index ec10545ec1a..8aa012abd83 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/LensDistortion.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/LensDistortion.cs @@ -102,7 +102,7 @@ namespace UnityEngine.Rendering.Universal /// [Serializable, VolumeComponentMenu("Post-processing/Lens Distortion")] [SupportedOnRenderPipeline(typeof(UniversalRenderPipelineAsset))] - [URPHelpURL("Post-Processing-Lens-Distortion")] + [URPHelpURL("urp/Post-Processing-Lens-Distortion")] public sealed class LensDistortion : VolumeComponent, IPostProcessComponent { /// diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/LiftGammaGain.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/LiftGammaGain.cs index 15ba8006ac6..f6fcbc1be48 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/LiftGammaGain.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/LiftGammaGain.cs @@ -95,7 +95,7 @@ namespace UnityEngine.Rendering.Universal /// [Serializable, VolumeComponentMenu("Post-processing/Lift, Gamma, Gain")] [SupportedOnRenderPipeline(typeof(UniversalRenderPipelineAsset))] - [URPHelpURL("Post-Processing-Lift-Gamma-Gain")] + [URPHelpURL("urp/Post-Processing-Lift-Gamma-Gain")] public sealed class LiftGammaGain : VolumeComponent, IPostProcessComponent { /// diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/MotionBlur.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/MotionBlur.cs index d80dfbdf652..07b9af3be99 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/MotionBlur.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/MotionBlur.cs @@ -137,7 +137,7 @@ public enum MotionBlurQuality /// [Serializable, VolumeComponentMenu("Post-processing/Motion Blur")] [SupportedOnRenderPipeline(typeof(UniversalRenderPipelineAsset))] - [URPHelpURL("Post-Processing-Motion-Blur")] + [URPHelpURL("urp/Post-Processing-Motion-Blur")] public sealed class MotionBlur : VolumeComponent, IPostProcessComponent { /// diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/PaniniProjection.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/PaniniProjection.cs index 3905850326e..59891c48fe8 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/PaniniProjection.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/PaniniProjection.cs @@ -92,7 +92,7 @@ namespace UnityEngine.Rendering.Universal /// [Serializable, VolumeComponentMenu("Post-processing/Panini Projection")] [SupportedOnRenderPipeline(typeof(UniversalRenderPipelineAsset))] - [URPHelpURL("Post-Processing-Panini-Projection")] + [URPHelpURL("urp/Post-Processing-Panini-Projection")] public sealed class PaniniProjection : VolumeComponent, IPostProcessComponent { /// diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/ScreenSpaceLensFlare.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/ScreenSpaceLensFlare.cs index 04d0b2f89bf..cf82f142e08 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/ScreenSpaceLensFlare.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/ScreenSpaceLensFlare.cs @@ -162,7 +162,7 @@ public enum ScreenSpaceLensFlareResolution : int /// [Serializable, VolumeComponentMenu("Post-processing/Screen Space Lens Flare")] [SupportedOnRenderPipeline(typeof(UniversalRenderPipelineAsset))] - [URPHelpURL("shared/lens-flare/lens-flare-component")] + [URPHelpURL("urp/shared/lens-flare/lens-flare-component")] [DisplayInfo(name = "Screen Space Lens Flare")] public class ScreenSpaceLensFlare : VolumeComponent, IPostProcessComponent { diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/ShadowsMidtonesHighlights.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/ShadowsMidtonesHighlights.cs index 46d6d2708a4..b8dd5e0cca9 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/ShadowsMidtonesHighlights.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/ShadowsMidtonesHighlights.cs @@ -109,7 +109,7 @@ namespace UnityEngine.Rendering.Universal /// [Serializable, VolumeComponentMenu("Post-processing/Shadows, Midtones, Highlights")] [SupportedOnRenderPipeline(typeof(UniversalRenderPipelineAsset))] - [URPHelpURL("Post-Processing-Shadows-Midtones-Highlights")] + [URPHelpURL("urp/Post-Processing-Shadows-Midtones-Highlights")] public sealed class ShadowsMidtonesHighlights : VolumeComponent, IPostProcessComponent { /// diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/SplitToning.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/SplitToning.cs index beee0639fcc..3a09e09223a 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/SplitToning.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/SplitToning.cs @@ -97,7 +97,7 @@ namespace UnityEngine.Rendering.Universal /// [Serializable, VolumeComponentMenu("Post-processing/Split Toning")] [SupportedOnRenderPipeline(typeof(UniversalRenderPipelineAsset))] - [URPHelpURL("Post-Processing-Split-Toning")] + [URPHelpURL("urp/Post-Processing-Split-Toning")] public sealed class SplitToning : VolumeComponent, IPostProcessComponent { /// diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/Tonemapping.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/Tonemapping.cs index 2944eddd419..6bf3229c319 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/Tonemapping.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/Tonemapping.cs @@ -176,7 +176,7 @@ public enum HDRACESPreset /// [Serializable, VolumeComponentMenu("Post-processing/Tonemapping")] [SupportedOnRenderPipeline(typeof(UniversalRenderPipelineAsset))] - [URPHelpURL("post-processing-tonemapping")] + [URPHelpURL("urp/post-processing-tonemapping")] public sealed class Tonemapping : VolumeComponent, IPostProcessComponent { /// diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/Vignette.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/Vignette.cs index d4cb207bd57..aed51be77e8 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/Vignette.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/Vignette.cs @@ -105,7 +105,7 @@ namespace UnityEngine.Rendering.Universal /// [Serializable, VolumeComponentMenu("Post-processing/Vignette")] [SupportedOnRenderPipeline(typeof(UniversalRenderPipelineAsset))] - [URPHelpURL("post-processing-vignette")] + [URPHelpURL("urp/post-processing-vignette")] public sealed class Vignette : VolumeComponent, IPostProcessComponent { /// diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/WhiteBalance.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/WhiteBalance.cs index 5a5b0e80a94..8a9f68857f6 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/WhiteBalance.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/WhiteBalance.cs @@ -92,7 +92,7 @@ namespace UnityEngine.Rendering.Universal /// [Serializable, VolumeComponentMenu("Post-processing/White Balance")] [SupportedOnRenderPipeline(typeof(UniversalRenderPipelineAsset))] - [URPHelpURL("Post-Processing-White-Balance")] + [URPHelpURL("urp/Post-Processing-White-Balance")] public sealed class WhiteBalance : VolumeComponent, IPostProcessComponent { /// diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/RendererFeatures/DecalRendererFeature.cs b/Packages/com.unity.render-pipelines.universal/Runtime/RendererFeatures/DecalRendererFeature.cs index bfac148825a..f20cc3341cc 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/RendererFeatures/DecalRendererFeature.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/RendererFeatures/DecalRendererFeature.cs @@ -176,7 +176,7 @@ private void OnDecalMaterialChange(DecalProjector decalProjector) [SupportedOnRenderer(typeof(UniversalRendererData))] [DisallowMultipleRendererFeature("Decal")] [Tooltip("With this Renderer Feature, Unity can project specific Materials (decals) onto other objects in the Scene.")] - [URPHelpURL("renderer-feature-decal")] + [URPHelpURL("urp/renderer-feature-decal")] [Icon("Packages/com.unity.render-pipelines.core/Editor/Icons/Processed/DecalProjector Icon.asset")] public partial class DecalRendererFeature : ScriptableRendererFeature { 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 5599d00bd14..188ba75ee46 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/RendererFeatures/FullScreenPassRendererFeature.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/RendererFeatures/FullScreenPassRendererFeature.cs @@ -9,7 +9,7 @@ namespace UnityEngine.Rendering.Universal /// /// This renderer feature lets you create single-pass full screen post processing effects without needing to write code. /// - [URPHelpURL("renderer-features/renderer-feature-full-screen-pass")] + [URPHelpURL("urp/renderer-features/renderer-feature-full-screen-pass")] public partial class FullScreenPassRendererFeature : ScriptableRendererFeature { /// diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/RendererFeatures/RenderObjects.cs b/Packages/com.unity.render-pipelines.universal/Runtime/RendererFeatures/RenderObjects.cs index 70ad2ac5cde..5f3b8771687 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/RendererFeatures/RenderObjects.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/RendererFeatures/RenderObjects.cs @@ -25,7 +25,7 @@ public enum RenderQueueType [ExcludeFromPreset] [MovedFrom(true, "UnityEngine.Experimental.Rendering.Universal")] [Tooltip("Render Objects simplifies the injection of additional render passes by exposing a selection of commonly used settings.")] - [URPHelpURL("renderer-features/renderer-feature-render-objects")] + [URPHelpURL("urp/renderer-features/renderer-feature-render-objects")] public class RenderObjects : ScriptableRendererFeature { /// diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/RendererFeatures/ScreenSpaceAmbientOcclusion.cs b/Packages/com.unity.render-pipelines.universal/Runtime/RendererFeatures/ScreenSpaceAmbientOcclusion.cs index 8ba3d62d8ef..c5918b6ad6d 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/RendererFeatures/ScreenSpaceAmbientOcclusion.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/RendererFeatures/ScreenSpaceAmbientOcclusion.cs @@ -114,7 +114,7 @@ public Texture2D[] BlueNoise256Textures [SupportedOnRenderer(typeof(UniversalRendererData))] [DisallowMultipleRendererFeature("Screen Space Ambient Occlusion")] [Tooltip("The Ambient Occlusion effect darkens creases, holes, intersections and surfaces that are close to each other.")] - [URPHelpURL("post-processing-ssao")] + [URPHelpURL("urp/post-processing-ssao")] public class ScreenSpaceAmbientOcclusion : ScriptableRendererFeature { // Serialized Fields diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/RendererFeatures/ScreenSpaceShadows.cs b/Packages/com.unity.render-pipelines.universal/Runtime/RendererFeatures/ScreenSpaceShadows.cs index 7e68a874ab4..abc3644e7c4 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/RendererFeatures/ScreenSpaceShadows.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/RendererFeatures/ScreenSpaceShadows.cs @@ -12,7 +12,7 @@ internal class ScreenSpaceShadowsSettings [SupportedOnRenderer(typeof(UniversalRendererData))] [DisallowMultipleRendererFeature("Screen Space Shadows")] [Tooltip("Screen Space Shadows")] - [URPHelpURL("renderer-feature-screen-space-shadows")] + [URPHelpURL("urp/renderer-feature-screen-space-shadows")] internal class ScreenSpaceShadows : ScriptableRendererFeature { #if UNITY_EDITOR diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/UniversalAdditionalCameraData.cs b/Packages/com.unity.render-pipelines.universal/Runtime/UniversalAdditionalCameraData.cs index 0bdc4312796..0b93c92d5f0 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/UniversalAdditionalCameraData.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/UniversalAdditionalCameraData.cs @@ -438,7 +438,7 @@ public static string GetName(this CameraRenderType type) [DisallowMultipleComponent] [RequireComponent(typeof(Camera))] [ExecuteAlways] // NOTE: This is required to get calls to OnDestroy() always. Graphics resources are released in OnDestroy(). - [URPHelpURL("universal-additional-camera-data")] + [URPHelpURL("urp/universal-additional-camera-data")] public partial class UniversalAdditionalCameraData : MonoBehaviour, ISerializationCallbackReceiver, IAdditionalData { const string k_GizmoPath = "Packages/com.unity.render-pipelines.universal/Editor/Gizmos/"; diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/UniversalAdditionalLightData.cs b/Packages/com.unity.render-pipelines.universal/Runtime/UniversalAdditionalLightData.cs index 210692eb7fd..a6a6ddc0708 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/UniversalAdditionalLightData.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/UniversalAdditionalLightData.cs @@ -30,7 +30,7 @@ public static UniversalAdditionalLightData GetUniversalAdditionalLightData(this /// [DisallowMultipleComponent] [RequireComponent(typeof(Light))] - [URPHelpURL("universal-additional-light-data")] + [URPHelpURL("urp/universal-additional-light-data")] public partial class UniversalAdditionalLightData : MonoBehaviour, ISerializationCallbackReceiver, IAdditionalData { [Tooltip("Controls if light Shadow Bias parameters use pipeline settings.")] diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/UniversalRenderPipelineGlobalSettings.cs b/Packages/com.unity.render-pipelines.universal/Runtime/UniversalRenderPipelineGlobalSettings.cs index 88eb337f225..c1cb7e96866 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/UniversalRenderPipelineGlobalSettings.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/UniversalRenderPipelineGlobalSettings.cs @@ -15,7 +15,7 @@ namespace UnityEngine.Rendering.Universal /// Global settings are unique per Render Pipeline type. In URP, Global Settings contain: /// - light layer names /// - [URPHelpURL("urp-global-settings")] + [URPHelpURL("urp/urp-global-settings")] [DisplayInfo(name = "URP Global Settings Asset", order = CoreUtils.Sections.section4 + 2)] [SupportedOnRenderPipeline(typeof(UniversalRenderPipelineAsset))] [DisplayName("URP")] diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/UniversalRendererData.cs b/Packages/com.unity.render-pipelines.universal/Runtime/UniversalRendererData.cs index 57d74aa93d2..01b02e32701 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/UniversalRendererData.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/UniversalRendererData.cs @@ -105,7 +105,7 @@ public enum DepthFormat /// Class containing resources needed for the UniversalRenderer. /// [Serializable, ReloadGroup, ExcludeFromPreset] - [URPHelpURL("urp-universal-renderer")] + [URPHelpURL("urp/urp-universal-renderer")] public partial class UniversalRendererData : ScriptableRendererData, ISerializationCallbackReceiver { #if UNITY_EDITOR diff --git a/Tests/SRPTests/Projects/MultipleSRP_Tests/Assets/Tests/EditMode/HelpURLTests.cs b/Tests/SRPTests/Projects/MultipleSRP_Tests/Assets/Tests/EditMode/HelpURLTests.cs index 96f486144a4..5d6cf8a9ebc 100644 --- a/Tests/SRPTests/Projects/MultipleSRP_Tests/Assets/Tests/EditMode/HelpURLTests.cs +++ b/Tests/SRPTests/Projects/MultipleSRP_Tests/Assets/Tests/EditMode/HelpURLTests.cs @@ -69,8 +69,10 @@ public void TearDown() public IEnumerator CheckHelpUrlsPointToTheExistingPage(Type type) { yield return null; - - DocumentationUtils.TryGetHelpURL(type, out var url); + + if (!DocumentationUtils.TryGetHelpURL(type, out var url)) + yield break; + var task = Task.Run(() => CheckUrlFor404Async(m_Client, url)); while (!task.IsCompleted) yield return null; diff --git a/Tests/SRPTests/Projects/SRP_SmokeTest/Assets/Tests/Editor/Documentation.meta b/Tests/SRPTests/Projects/SRP_SmokeTest/Assets/Tests/Editor/Documentation.meta new file mode 100644 index 00000000000..b1867d338c3 --- /dev/null +++ b/Tests/SRPTests/Projects/SRP_SmokeTest/Assets/Tests/Editor/Documentation.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 86bf37c7c90340f882f20d74cab4b9fb +timeCreated: 1758523270 \ No newline at end of file diff --git a/Tests/SRPTests/Projects/SRP_SmokeTest/Assets/Tests/Editor/Documentation/HelpUrlTests.cs b/Tests/SRPTests/Projects/SRP_SmokeTest/Assets/Tests/Editor/Documentation/HelpUrlTests.cs new file mode 100644 index 00000000000..7b5b044234d --- /dev/null +++ b/Tests/SRPTests/Projects/SRP_SmokeTest/Assets/Tests/Editor/Documentation/HelpUrlTests.cs @@ -0,0 +1,169 @@ +using System; +using NUnit.Framework; +using UnityEngine.Rendering; +using UnityEngine.Rendering.HighDefinition; +using UnityEngine.Rendering.Universal; + +namespace UnityEditor.Rendering.Tests.Documentation +{ + public class HelpUrlTestsBase + { + RenderPipelineAsset m_GraphicsSettingsRPAsset = null; + + [SetUp] + public void SetUp() + { + m_GraphicsSettingsRPAsset = GraphicsSettings.defaultRenderPipeline; + } + + [TearDown] + public void TearDown() + { + GraphicsSettings.defaultRenderPipeline = m_GraphicsSettingsRPAsset; + } + + public const string k_URPAssetPath = "Assets/PipelineAssets/UniversalRenderPipelineAsset.asset"; + public const string k_HDRPAssetPath = "Assets/PipelineAssets/HDRenderPipelineAsset.asset"; + + public static RenderPipelineAsset LoadAsset(string renderPipelineAssetPath) + { + if (string.IsNullOrEmpty(renderPipelineAssetPath)) + return null; + + var asset = AssetDatabase.LoadMainAssetAtPath(renderPipelineAssetPath) as RenderPipelineAsset; + Assert.IsNotNull(asset, renderPipelineAssetPath, $"Unable to load {renderPipelineAssetPath}"); + return asset; + } + } + + public class HelpUrlTests : HelpUrlTestsBase + { + // PipelineHelpURL tests + + [PipelineHelpURL("UniversalRenderPipelineAsset", "pageName", "pageHash")] + [PipelineHelpURL("HDRenderPipelineAsset", "pageName", "pageHash")] + class Type_WithPipelineHelpURL_HDRP_And_URP + { + } + + [PipelineHelpURL("Foo", pageName: "foo")] + class Type_WithPipelineHelpURL_UnknownPipeline + { + } + + [PipelineHelpURL(null, null)] + class Type_WithPipelineHelpURL_Null + { + } + + static TestCaseData[] s_PipelineHelpURLTestCases = + { + new TestCaseData(null, typeof(Type_WithPipelineHelpURL_HDRP_And_URP)) + .SetName("When BiRP is active, TryGetHelpURL(Type_WithPipelineHelpURL_HDRP_And_URP) returns invalid URL") + .Returns(false), + new TestCaseData(k_URPAssetPath, typeof(Type_WithPipelineHelpURL_HDRP_And_URP)) + .SetName("When URP is active, TryGetHelpURL(Type_WithPipelineHelpURL_HDRP_And_URP) returns valid URL") + .Returns(true), + new TestCaseData(k_HDRPAssetPath, typeof(Type_WithPipelineHelpURL_HDRP_And_URP)) + .SetName("When HDRP is active, TryGetHelpURL(Type_WithPipelineHelpURL_HDRP_And_URP) returns valid URL") + .Returns(true), + new TestCaseData(null, typeof(Type_WithPipelineHelpURL_UnknownPipeline)) + .SetName("When BiRP is active, TryGetHelpURL(Type_WithPipelineHelpURL_UnknownPipeline) returns invalid URL") + .Returns(false), + new TestCaseData(k_URPAssetPath, typeof(Type_WithPipelineHelpURL_UnknownPipeline)) + .SetName("When URP is active, TryGetHelpURL(Type_WithPipelineHelpURL_UnknownPipeline) returns invalid URL") + .Returns(false), + new TestCaseData(null, typeof(Type_WithPipelineHelpURL_Null)) + .SetName("When BiRP is active, TryGetHelpURL(Type_WithPipelineHelpURL_Null) returns invalid URL") + .Returns(false), + new TestCaseData(k_URPAssetPath, typeof(Type_WithPipelineHelpURL_Null)) + .SetName("When URP is active, TryGetHelpURL(Type_WithPipelineHelpURL_Null) returns invalid URL") + .Returns(false), + }; + + [Test, TestCaseSource(nameof(s_PipelineHelpURLTestCases))] + public bool PipelineHelpURLAttribute(string renderPipelineAsset, Type renderPipelineType) + { + GraphicsSettings.defaultRenderPipeline = LoadAsset(renderPipelineAsset); + + DocumentationUtils.TryGetHelpURL(renderPipelineType, out string url); + + if (url != null) + { + Assert.True(url.Contains("docs.unity3d.com")); + Assert.True(url.EndsWith("pageName.html#pageHash")); + } + + return url != null; + } + + // CurrentPipelineHelpURL tests + + [CurrentPipelineHelpURL("pageName", "pageHash")] + class Type_WithCurrentPipelineHelpURL + { + } + + static TestCaseData[] s_CurrentPipelineHelpURLTestCases = + { + new TestCaseData(null, typeof(Type_WithCurrentPipelineHelpURL)) + .SetName("When BiRP is active, TryGetHelpURL(Type_WithCurrentPipelineHelpURL) returns invalid URL") + .Returns(false), + new TestCaseData(k_URPAssetPath, typeof(Type_WithCurrentPipelineHelpURL)) + .SetName("When URP is active, TryGetHelpURL(Type_WithCurrentPipelineHelpURL) returns valid URL") + .Returns(true), + new TestCaseData(k_HDRPAssetPath, typeof(Type_WithCurrentPipelineHelpURL)) + .SetName("When HDRP is active, TryGetHelpURL(Type_WithCurrentPipelineHelpURL) returns valid URL") + .Returns(true), + }; + + [Test, TestCaseSource(nameof(s_CurrentPipelineHelpURLTestCases))] + public bool CurrentPipelineHelpURLAttribute(string renderPipelineAsset, Type renderPipelineType) + { + GraphicsSettings.defaultRenderPipeline = LoadAsset(renderPipelineAsset); + + DocumentationUtils.TryGetHelpURL(renderPipelineType, out string url); + + if (GraphicsSettings.defaultRenderPipeline is UniversalRenderPipelineAsset) + Assert.True(url.Contains("/Documentation/Manual/")); // URP documentation lives in the Unity Manual. + else if (GraphicsSettings.defaultRenderPipeline is HDRenderPipelineAsset) + Assert.True(url.Contains("com.unity.render-pipelines.high-definition")); + + if (url != null) + { + Assert.True(url.Contains("docs.unity3d.com")); + Assert.True(url.EndsWith("pageName.html#pageHash")); + } + + return url != null; + } + + // CoreRPHelpURL tests + + [CoreRPHelpURL("pageName")] + class Type_WithCoreRPHelpURL + { + } + + static TestCaseData[] s_CoreRPHelpURLTestCases = + { + new TestCaseData(null, typeof(Type_WithCoreRPHelpURL)) + .SetName("TryGetHelpURL(Type_WithCoreRPHelpURL) returns valid URL") + .Returns(true), + }; + + [Test, TestCaseSource(nameof(s_CoreRPHelpURLTestCases))] + public bool CoreRPHelpURLAttribute(string renderPipelineAsset, Type renderPipelineType) + { + DocumentationUtils.TryGetHelpURL(renderPipelineType, out string url); + if (url != null) + { + Assert.True(url.Contains("docs.unity3d.com")); + Assert.True(url.Contains("com.unity.render-pipelines.core")); + Assert.True(url.EndsWith("pageName.html")); + } + + return url != null; + } + } +} diff --git a/Tests/SRPTests/Projects/SRP_SmokeTest/Assets/Tests/Editor/Documentation/HelpUrlTests.cs.meta b/Tests/SRPTests/Projects/SRP_SmokeTest/Assets/Tests/Editor/Documentation/HelpUrlTests.cs.meta new file mode 100644 index 00000000000..1acc8c2b022 --- /dev/null +++ b/Tests/SRPTests/Projects/SRP_SmokeTest/Assets/Tests/Editor/Documentation/HelpUrlTests.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 07182cc67e6344faadf72c95349d3f6d +timeCreated: 1758523724 \ No newline at end of file diff --git a/Tests/SRPTests/Projects/SRP_SmokeTest/Assets/Tests/Editor/Volumes/VolumeHelpUrlTests.cs b/Tests/SRPTests/Projects/SRP_SmokeTest/Assets/Tests/Editor/Documentation/VolumeHelpUrlTests.cs similarity index 65% rename from Tests/SRPTests/Projects/SRP_SmokeTest/Assets/Tests/Editor/Volumes/VolumeHelpUrlTests.cs rename to Tests/SRPTests/Projects/SRP_SmokeTest/Assets/Tests/Editor/Documentation/VolumeHelpUrlTests.cs index 29e29dd28de..af0cd9eceb1 100644 --- a/Tests/SRPTests/Projects/SRP_SmokeTest/Assets/Tests/Editor/Volumes/VolumeHelpUrlTests.cs +++ b/Tests/SRPTests/Projects/SRP_SmokeTest/Assets/Tests/Editor/Documentation/VolumeHelpUrlTests.cs @@ -6,37 +6,13 @@ using UnityEngine.Rendering.Universal; using Object = UnityEngine.Object; -namespace UnityEditor.Rendering.Tests +namespace UnityEditor.Rendering.Tests.Documentation { - public class VolumeHelpUrlTests + public class VolumeHelpUrlTests : HelpUrlTestsBase { - RenderPipelineAsset m_GraphicsSettingsRPAsset = null; - - [SetUp] - public void SetUp() - { - m_GraphicsSettingsRPAsset = GraphicsSettings.defaultRenderPipeline; - } - - [TearDown] - public void TearDown() - { - GraphicsSettings.defaultRenderPipeline = m_GraphicsSettingsRPAsset; - } - - RenderPipelineAsset LoadAsset(string renderPipelineAssetPath) - { - if (string.IsNullOrEmpty(renderPipelineAssetPath)) - return null; - - var asset = AssetDatabase.LoadMainAssetAtPath(renderPipelineAssetPath) as RenderPipelineAsset; - Assert.IsNotNull(asset, renderPipelineAssetPath, $"Unable to load {renderPipelineAssetPath}"); - return asset; - } - static TestCaseData[] s_VolumeTestsCaseDatas = { - new TestCaseData("Assets/PipelineAssets/UniversalRenderPipelineAsset.asset" , typeof(UniversalRenderPipeline), "Volumes") + new TestCaseData("Assets/PipelineAssets/UniversalRenderPipelineAsset.asset" , typeof(UniversalRenderPipeline), "urp/Volumes") .SetName("Volumes URL's are correct when URP is the active pipeline"), new TestCaseData("Assets/PipelineAssets/HDRenderPipelineAsset.asset", typeof(HDRenderPipeline), "understand-volumes") .SetName("Volumes URL's are correct when HDRP is the active pipeline"), @@ -54,12 +30,12 @@ public void CheckVolumeUrls(string renderPipelineAsset, Type renderPipelineType, Object.DestroyImmediate(go); } - + static TestCaseData[] s_VolumeProfileTestsCaseDatas = { - new TestCaseData("Assets/PipelineAssets/UniversalRenderPipelineAsset.asset" , typeof(UniversalRenderPipeline), "Volume-Profile") + new TestCaseData(k_URPAssetPath, typeof(UniversalRenderPipeline), "urp/Volume-Profile") .SetName("Volumes URL's are correct when URP is the active pipeline"), - new TestCaseData("Assets/PipelineAssets/HDRenderPipelineAsset.asset", typeof(HDRenderPipeline), "create-a-volume-profile") + new TestCaseData(k_HDRPAssetPath, typeof(HDRenderPipeline), "create-a-volume-profile") .SetName("Volumes URL's are correct when HDRP is the active pipeline"), }; @@ -77,8 +53,14 @@ public void CheckVolumeProfileUrls(string renderPipelineAsset, Type renderPipeli string SetRPAndGetExpectedDocumentationLink(string renderPipelineAsset, Type renderPipelineType, string pageName) { GraphicsSettings.defaultRenderPipeline = LoadAsset(renderPipelineAsset); + + // URP documentation is in the Unity Manual since 6000.0. Page paths are relative to the + // Manual's "md" root (passed in via pageName, e.g. "urp/Volumes"). + if (renderPipelineType == typeof(UniversalRenderPipeline)) + return DocumentationInfo.GetManualLink(pageName); + Assume.That(DocumentationUtils.TryGetPackageInfoForType(renderPipelineType, out var name, out var version), Is.True); - return DocumentationInfo.GetPackageLink(name, version, pageName); + return DocumentationInfo.GetPackageLink(name, version, pageName); } } } diff --git a/Tests/SRPTests/Projects/SRP_SmokeTest/Assets/Tests/Editor/Volumes/VolumeHelpUrlTests.cs.meta b/Tests/SRPTests/Projects/SRP_SmokeTest/Assets/Tests/Editor/Documentation/VolumeHelpUrlTests.cs.meta similarity index 100% rename from Tests/SRPTests/Projects/SRP_SmokeTest/Assets/Tests/Editor/Volumes/VolumeHelpUrlTests.cs.meta rename to Tests/SRPTests/Projects/SRP_SmokeTest/Assets/Tests/Editor/Documentation/VolumeHelpUrlTests.cs.meta From 3650917ed45a9eeace923932ba72d1ba1c688847 Mon Sep 17 00:00:00 2001 From: Reach Platform Support Date: Wed, 15 Jul 2026 03:16:03 +0000 Subject: [PATCH 14/49] [Port] [6000.3] docg-8934: implement pages fix titles --- .../Documentation~/Arithmetic.md | 40 +- .../Documentation~/Attribute.md | 8 +- .../Documentation~/Bitwise.md | 12 +- .../Documentation~/Blackboard.md | 2 +- .../Documentation~/Block-Burst.md | 8 +- .../Block-CalculateMassFromVolume.md | 8 +- .../Documentation~/Block-CameraFade.md | 2 +- .../Block-CollideWithDepthBuffer.md | 4 +- .../Block-Collision-LandingPage.md | 8 +- .../Block-ConformToSignedDistanceField.md | 2 +- .../Documentation~/Block-ConformToSphere.md | 2 +- .../Documentation~/Block-ConnectTarget.md | 2 +- .../Documentation~/Block-ConstantRate.md | 4 +- .../Documentation~/Block-CustomHLSL.md | 2 +- .../Documentation~/Block-FlipbookPlayer.md | 2 +- .../Documentation~/Block-Force.md | 2 +- .../Documentation~/Block-Gravity.md | 2 +- .../Block-IncrementStripIndexOnStart.md | 6 +- .../Documentation~/Block-KillShape.md | 4 +- .../Documentation~/Block-LinearDrag.md | 2 +- .../Documentation~/Block-Orient.md | 2 +- .../Documentation~/Block-ScreenSpaceSize.md | 4 +- .../Documentation~/Block-SetAttribute.md | 2 +- .../Block-SetAttributeFromCurve.md | 4 +- .../Block-SetAttributeFromMap.md | 2 +- .../Block-SetPosition(Depth).md | 4 +- .../Documentation~/Block-SetPosition(Mesh).md | 4 +- .../Block-SetPosition(Sequential).md | 4 +- .../Block-SetPosition(SkinnedMesh).md | 4 +- .../Block-SetPositionShape-LandingPage.md | 12 +- .../Documentation~/Block-SetPositionShape.md | 2 +- .../Documentation~/Block-SetSpawnEvent.md | 6 +- .../Documentation~/Block-SetSpawnTime.md | 6 +- .../Documentation~/Block-SpawnOverDistance.md | 6 +- .../Block-SubpixelAntiAliasing.md | 2 +- .../Documentation~/Block-TileWarpPositions.md | 2 +- .../Documentation~/Block-TriggerShape.md | 4 +- .../Documentation~/Block-Turbulence.md | 2 +- .../Documentation~/Block-UpdatePosition.md | 2 +- .../Documentation~/Block-UpdateRotation.md | 2 +- .../Documentation~/Block-VariableRate.md | 4 +- .../Documentation~/Block-VectorForceField.md | 4 +- ...ocityFromDirectionAndSpeed(ChangeSpeed).md | 6 +- ...cityFromDirectionAndSpeed(NewDirection).md | 6 +- ...yFromDirectionAndSpeed(RandomDirection).md | 6 +- ...-VelocityFromDirectionAndSpeed(Tangent).md | 6 +- .../Documentation~/Builtin.md | 12 +- .../Documentation~/Camera.md | 10 +- .../Documentation~/Clamp.md | 16 +- .../Documentation~/Color.md | 12 +- .../Documentation~/Constants.md | 4 +- .../Documentation~/Context-Event.md | 2 +- .../Documentation~/Context-GPUEvent.md | 2 +- .../Documentation~/Context-Initialize.md | 2 +- .../Context-OutputDistortion.md | 2 +- .../Context-OutputForwardDecal.md | 4 +- .../Documentation~/Context-OutputLine.md | 4 +- .../Context-OutputLitSettings.md | 2 +- .../Documentation~/Context-OutputMesh.md | 2 +- .../Context-OutputParticleHDRPLitDecal.md | 8 +- ...Context-OutputParticleHDRPVolumetricFog.md | 8 +- .../Context-OutputParticleMesh.md | 2 +- .../Context-OutputParticleURPLitDecal.md | 8 +- .../Documentation~/Context-OutputPoint.md | 4 +- .../Documentation~/Context-OutputPrimitive.md | 4 +- .../Context-OutputShaderGraphMesh.md | 2 +- ...ontext-OutputShaderGraphPlanarPrimitive.md | 2 +- .../Context-OutputShaderGraphStrip.md | 4 +- .../Context-OutputSharedSettings.md | 2 +- .../Documentation~/Context-Spawn.md | 2 +- .../Documentation~/Context-Update.md | 2 +- .../Documentation~/Context.md | 38 +- .../Documentation~/Coordinates.md | 16 +- .../Documentation~/CustomSpawn.md | 8 +- .../Documentation~/Force.md | 14 +- .../Documentation~/Geometry.md | 36 +- .../Documentation~/Implicit.md | 4 +- .../Documentation~/Inline.md | 74 +-- .../Documentation~/Logic.md | 16 +- .../Documentation~/Math.md | 22 +- .../Documentation~/Noise.md | 12 +- .../Documentation~/Operator-Absolute.md | 2 +- .../Documentation~/Operator-Acos.md | 2 +- .../Documentation~/Operator-Add.md | 2 +- .../Operator-AgeOverLifetime.md | 2 +- .../Documentation~/Operator-AppendVector.md | 2 +- .../Documentation~/Operator-Area(Circle).md | 2 +- .../Documentation~/Operator-Asin.md | 2 +- .../Documentation~/Operator-Atan.md | 2 +- .../Documentation~/Operator-Atan2.md | 2 +- .../Documentation~/Operator-BitwiseAnd.md | 4 +- .../Operator-BitwiseComplement.md | 4 +- .../Operator-BitwiseLeftShift.md | 4 +- .../Documentation~/Operator-BitwiseOr.md | 4 +- .../Operator-BitwiseRightShift.md | 4 +- .../Documentation~/Operator-BitwiseXor.md | 4 +- .../Documentation~/Operator-Branch.md | 2 +- .../Documentation~/Operator-BufferCount.md | 2 +- .../Documentation~/Operator-Ceiling.md | 2 +- .../Operator-CellularCurlNoise.md | 2 +- .../Documentation~/Operator-CellularNoise.md | 2 +- .../Documentation~/Operator-ChangeSpace.md | 2 +- .../Documentation~/Operator-Clamp.md | 2 +- .../Documentation~/Operator-ColorLuma.md | 2 +- .../Documentation~/Operator-Compare.md | 2 +- .../Operator-ConstructMatrix.md | 2 +- .../Documentation~/Operator-Cosine.md | 2 +- .../Documentation~/Operator-CrossProduct.md | 2 +- .../Documentation~/Operator-CustomHLSL.md | 2 +- .../Documentation~/Operator-DeltaTime.md | 2 +- .../Documentation~/Operator-Discretize.md | 2 +- .../Documentation~/Operator-Distance(Line).md | 4 +- .../Operator-Distance(Plane).md | 4 +- .../Operator-Distance(Sphere).md | 4 +- .../Documentation~/Operator-Distance.md | 2 +- .../Documentation~/Operator-Divide.md | 2 +- .../Documentation~/Operator-DotProduct.md | 2 +- .../Documentation~/Operator-Epsilon.md | 4 +- .../Documentation~/Operator-Exp.md | 2 +- .../Documentation~/Operator-Floor.md | 2 +- .../Documentation~/Operator-Fractional.md | 2 +- .../Documentation~/Operator-FrameIndex.md | 2 +- .../Operator-GetAttributeAge.md | 2 +- .../Operator-GetAttributeAlive.md | 2 +- .../Operator-GetAttributeAlpha.md | 2 +- .../Operator-GetAttributeAngle.md | 2 +- .../Operator-GetAttributeAngularVelocity.md | 2 +- .../Operator-GetAttributeAxisX.md | 2 +- .../Operator-GetAttributeAxisY.md | 2 +- .../Operator-GetAttributeAxisZ.md | 2 +- .../Operator-GetAttributeColor.md | 2 +- .../Operator-GetAttributeDirection.md | 2 +- .../Operator-GetAttributeLifetime.md | 2 +- .../Operator-GetAttributeMass.md | 2 +- .../Operator-GetAttributeOldPosition.md | 2 +- ...erator-GetAttributeParticleCountInStrip.md | 2 +- .../Operator-GetAttributeParticleID.md | 4 +- ...erator-GetAttributeParticleIndexInStrip.md | 2 +- .../Operator-GetAttributePivot.md | 2 +- .../Operator-GetAttributePosition.md | 2 +- .../Operator-GetAttributeScale.md | 2 +- .../Operator-GetAttributeSeed.md | 2 +- .../Operator-GetAttributeSize.md | 2 +- .../Operator-GetAttributeSpawnIndex.md | 2 +- .../Operator-GetAttributeSpawnTime.md | 2 +- .../Operator-GetAttributeStripIndex.md | 2 +- .../Operator-GetAttributeTargetPosition.md | 2 +- .../Operator-GetAttributeTexIndex.md | 2 +- .../Operator-GetAttributeVelocity.md | 2 +- .../Operator-GetCustomAttribute.md | 2 +- .../Operator-GetTextureDimensions.md | 2 +- .../Documentation~/Operator-HSVToRGB.md | 4 +- .../Documentation~/Operator-InlineAABox.md | 2 +- .../Operator-InlineAnimationCurve.md | 2 +- .../Operator-InlineArcCircle.md | 2 +- .../Documentation~/Operator-InlineArcCone.md | 2 +- .../Operator-InlineArcSphere.md | 2 +- .../Documentation~/Operator-InlineArcTorus.md | 2 +- .../Documentation~/Operator-InlineCamera.md | 2 +- .../Documentation~/Operator-InlineCircle.md | 2 +- .../Documentation~/Operator-InlineColor.md | 2 +- .../Documentation~/Operator-InlineCone.md | 2 +- .../Documentation~/Operator-InlineCubemap.md | 2 +- .../Operator-InlineCubemapArray.md | 2 +- .../Documentation~/Operator-InlineCylinder.md | 2 +- .../Operator-InlineDirection.md | 2 +- .../Documentation~/Operator-InlineFlipBook.md | 2 +- .../Documentation~/Operator-InlineGradient.md | 2 +- .../Documentation~/Operator-InlineLine.md | 2 +- .../Operator-InlineMatrix4x4.md | 2 +- .../Documentation~/Operator-InlineMesh.md | 2 +- .../Operator-InlineOrientedBox.md | 2 +- .../Documentation~/Operator-InlinePlane.md | 2 +- .../Documentation~/Operator-InlinePosition.md | 2 +- .../Documentation~/Operator-InlineSphere.md | 2 +- .../Operator-InlineTerrainType.md | 2 +- .../Operator-InlineTexture2D.md | 2 +- .../Operator-InlineTexture2DArray.md | 2 +- .../Operator-InlineTexture3D.md | 2 +- .../Documentation~/Operator-InlineTorus.md | 2 +- .../Operator-InlineTransform.md | 2 +- .../Documentation~/Operator-InlineVector.md | 2 +- .../Documentation~/Operator-InlineVector2.md | 2 +- .../Documentation~/Operator-InlineVector3.md | 2 +- .../Documentation~/Operator-InlineVector4.md | 2 +- .../Documentation~/Operator-Inlinebool.md | 2 +- .../Documentation~/Operator-Inlinefloat.md | 2 +- .../Documentation~/Operator-Inlineint.md | 2 +- .../Documentation~/Operator-Inlineuint.md | 2 +- .../Documentation~/Operator-InverseLerp.md | 2 +- .../Operator-InvertTRS(Matrix).md | 4 +- .../Documentation~/Operator-Length.md | 4 +- .../Documentation~/Operator-Lerp.md | 2 +- .../Operator-LoadCameraBuffer.md | 2 +- .../Documentation~/Operator-LoadTexture2D.md | 2 +- .../Operator-LoadTexture2DArray.md | 2 +- .../Documentation~/Operator-LoadTexture3D.md | 2 +- .../Documentation~/Operator-LocalToWorld.md | 4 +- .../Documentation~/Operator-Log.md | 2 +- .../Documentation~/Operator-LogicAnd.md | 2 +- .../Documentation~/Operator-LogicNand.md | 4 +- .../Documentation~/Operator-LogicNor.md | 2 +- .../Documentation~/Operator-LogicNot.md | 2 +- .../Documentation~/Operator-LogicOr.md | 2 +- .../Documentation~/Operator-LookAT.md | 2 +- .../Documentation~/Operator-MainCamera.md | 2 +- .../Documentation~/Operator-Maximum.md | 2 +- .../Documentation~/Operator-MeshIndexCount.md | 2 +- .../Operator-MeshTriangleCount.md | 2 +- .../Operator-MeshVertexCount.md | 2 +- .../Documentation~/Operator-Minimum.md | 2 +- .../Documentation~/Operator-Modulo.md | 2 +- .../Documentation~/Operator-Multiply.md | 2 +- .../Documentation~/Operator-Negate.md | 4 +- .../Documentation~/Operator-Normalize.md | 2 +- .../Documentation~/Operator-OneMinus.md | 4 +- .../Operator-PerlinCurlNoise.md | 2 +- .../Documentation~/Operator-PerlinNoise.md | 2 +- .../Documentation~/Operator-Pi.md | 4 +- .../Documentation~/Operator-PointCache.md | 4 +- .../Operator-PolarToRectangular.md | 2 +- .../Operator-Position(Depth).md | 4 +- .../Documentation~/Operator-Power.md | 2 +- .../Documentation~/Operator-RGBToHSV.md | 4 +- .../Documentation~/Operator-RandomNumber.md | 2 +- .../Operator-RandomSelectorWeighted.md | 4 +- .../Documentation~/Operator-Reciprocal.md | 4 +- .../Operator-RectangularToPolar.md | 2 +- .../Operator-RectangularToSpherical.md | 2 +- .../Documentation~/Operator-Remap(-11).md | 4 +- .../Documentation~/Operator-Remap(01).md | 4 +- .../Documentation~/Operator-Remap.md | 4 +- .../Documentation~/Operator-Rotate2D.md | 2 +- .../Documentation~/Operator-Rotate3D.md | 2 +- .../Documentation~/Operator-Round.md | 2 +- .../Operator-SampleAttributeMap.md | 2 +- .../Documentation~/Operator-SampleBezier.md | 2 +- .../Documentation~/Operator-SampleBuffer.md | 6 +- .../Operator-SampleCameraBuffer.md | 2 +- .../Documentation~/Operator-SampleCurve.md | 2 +- .../Documentation~/Operator-SampleGradient.md | 2 +- .../Documentation~/Operator-SampleMesh.md | 2 +- .../Operator-SampleMeshIndex.md | 6 +- .../Documentation~/Operator-SampleSDF.md | 2 +- .../Operator-SampleSkinnedMesh.md | 2 +- .../Operator-SampleTexture2D.md | 2 +- .../Operator-SampleTexture2DArray.md | 2 +- .../Operator-SampleTexture3D.md | 2 +- .../Operator-SampleTextureCube.md | 2 +- .../Operator-SampleTextureCubeArray.md | 2 +- .../Documentation~/Operator-Saturate.md | 2 +- .../Documentation~/Operator-SawtoothWave.md | 2 +- .../Documentation~/Operator-Sign.md | 2 +- .../Documentation~/Operator-Sine.md | 2 +- .../Documentation~/Operator-SineWave.md | 2 +- .../Operator-SkinnedLocalTransform.md | 2 +- .../Operator-SkinnedMeshIndexCount.md | 2 +- .../Operator-SkinnedMeshTriangleCount.md | 2 +- .../Operator-SkinnedMeshVertexCount.md | 2 +- .../Operator-SkinnedWorldTransform.md | 2 +- .../Documentation~/Operator-Smoothstep.md | 2 +- .../Documentation~/Operator-SpawnState.md | 4 +- .../Operator-SphericalToRectangular.md | 2 +- .../Documentation~/Operator-SquareRoot.md | 2 +- .../Documentation~/Operator-SquareWave.md | 2 +- .../Operator-SquaredDistance.md | 2 +- .../Documentation~/Operator-SquaredLength.md | 2 +- .../Documentation~/Operator-Step.md | 2 +- .../Documentation~/Operator-Subtract.md | 2 +- .../Documentation~/Operator-Switch.md | 2 +- .../Documentation~/Operator-Swizzle.md | 2 +- .../Documentation~/Operator-SystemSeed.md | 2 +- .../Documentation~/Operator-Tangent.md | 2 +- .../Documentation~/Operator-TotalTime.md | 2 +- .../Operator-Transform(Direction).md | 4 +- .../Operator-Transform(Matrix).md | 4 +- .../Operator-Transform(Position).md | 4 +- .../Operator-Transform(Vector).md | 4 +- .../Operator-Transform(Vector4).md | 4 +- .../Operator-Transpose(Matrix).md | 4 +- .../Documentation~/Operator-TriangleWave.md | 2 +- .../Documentation~/Operator-ValueCurlNoise.md | 2 +- .../Documentation~/Operator-ValueNoise.md | 2 +- .../Operator-ViewportToWorldPoint.md | 4 +- .../Operator-Volume(AxisAlignedBox).md | 4 +- .../Documentation~/Operator-Volume(Cone).md | 4 +- .../Operator-Volume(Cylinder).md | 4 +- .../Operator-Volume(OrientedBox).md | 4 +- .../Documentation~/Operator-Volume(Sphere).md | 4 +- .../Documentation~/Operator-Volume(Torus).md | 4 +- .../Documentation~/Operator-WorldToLocal.md | 2 +- .../Operator-WorldToViewportPoint.md | 4 +- .../Documentation~/Operator.md | 2 +- .../Documentation~/OperatorAttribute.md | 58 +- .../Documentation~/Orientation.md | 4 +- .../Documentation~/Output.md | 4 +- .../Documentation~/Random.md | 4 +- .../Documentation~/Reference-Attributes.md | 2 +- .../Documentation~/Remap.md | 6 +- .../Documentation~/Sampling.md | 58 +- .../Documentation~/SharedOutputSettings.md | 6 +- .../Documentation~/Spawn.md | 14 +- .../Documentation~/Subgraph.md | 2 +- .../Documentation~/TableOfContents.md | 621 +++++++++--------- .../Documentation~/Templates-window.md | 2 +- .../Documentation~/Timeline.md | 2 +- .../Documentation~/Trigonometry.md | 14 +- .../Documentation~/Vector.md | 28 +- .../Documentation~/Velocity.md | 10 +- .../Documentation~/VisualEffectPreferences.md | 4 +- .../Documentation~/Wave.md | 8 +- 311 files changed, 976 insertions(+), 979 deletions(-) diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Arithmetic.md b/Packages/com.unity.visualeffectgraph/Documentation~/Arithmetic.md index 3399a069ef4..24bbabe6daf 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Arithmetic.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Arithmetic.md @@ -4,28 +4,28 @@ 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. | +| [Absolute Operator](Operator-Absolute.md) | Calculate the absolute value of an input. | +| [Add Operator](Operator-Add.md) | Calculate the sum of all inputs. | +| [Divide Operator](Operator-Divide.md) | Divide the first input sequentially by all other inputs. | +| [Fractional Operator](Operator-Fractional.md) | Extract the fractional part of an input. | +| [Inverse Lerp Operator](Operator-InverseLerp.md) | Calculate the fraction representing how far a value is between two values. | +| [Lerp Operator](Operator-Lerp.md) | Calculate a linear interpolation between two values. | +| [Modulo Operator](Operator-Modulo.md) | Calculate the remainder of dividing of one value by another. | +| [Multiply Operator](Operator-Multiply.md) | Multiply all inputs together. | +| [Negate Operator](Operator-Negate.md) | Multiply an input value by -1 to invert its sign. | +| [One Minus Operator](Operator-OneMinus.md) | Subtract an input value from one. | +| [Power Operator](Operator-Power.md) | Raise one input to the power of another input. | +| [Reciprocal Operator](Operator-Reciprocal.md) | Calculate the result of dividing 1 by an input value. | +| [Sign Operator](Operator-Sign.md) | Return whether an input is positive, negative, or 0. | +| [Smoothstep Operator](Operator-Smoothstep.md) | Calculate smooth Hermite interpolation between two values. | +| [Square Root Operator](Operator-SquareRoot.md) | Calculate the square root of an input. | +| [Step Operator](Operator-Step.md) | Compare an input value to a threshold and return whether an input is above or below the threshold | +| [Subtract Operator](Operator-Subtract.md) | Subtract one or more inputs from another input. | ## Additional resources -- [Clamp](Clamp.md) -- [Remap](Remap.md) -- [Math](Math.md) +- [Clamp Operators](Clamp.md) +- [Remap Operators](Remap.md) +- [Math Operators](Math.md) diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Attribute.md b/Packages/com.unity.visualeffectgraph/Documentation~/Attribute.md index 109c928122d..c5dca980919 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Attribute.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Attribute.md @@ -4,10 +4,10 @@ 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. | +| [Curve Block](Block-SetAttributeFromCurve.md) | Write values to an attribute based on a sample from an Animation Curve or Gradient. | +| [Derived > Calculate Mass from Volume Block](Block-CalculateMassFromVolume.md) | Set the mass of a particle based on its scale and density. | +| [Map Block](Block-SetAttributeFromMap.md) | Sample data from textures and store them in attributes. | +| [Set Block](Block-SetAttribute.md) | Write values to an attribute directly, or use random modes to set attributes to random values. | ## Additional resources diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Bitwise.md b/Packages/com.unity.visualeffectgraph/Documentation~/Bitwise.md index 7a300d257ea..30f08cf4eaf 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Bitwise.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Bitwise.md @@ -4,12 +4,12 @@ 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. | +| [And Operator](Operator-BitwiseAnd.md) | Perform a bitwise AND operation, which outputs 1 if both bits are 1. | +| [Complement Operator](Operator-BitwiseComplement.md) | Perform a bitwise NOT operation to invert each bit. | +| [Left Shift Operator](Operator-BitwiseLeftShift.md) | Shift an input value left by a specified number of bits. | +| [Or Operator](Operator-BitwiseOr.md) | Perform a bitwise OR operation, which outputs 1 if either bit is 1. | +| [Right Shift Operator](Operator-BitwiseRightShift.md) | Shift an input value right by a specified number of bits. | +| [Xor Operator](Operator-BitwiseXor.md) | Perform a bitwise XOR operation, which outputs 1 if only one bit is 1. | ## Additional resources diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Blackboard.md b/Packages/com.unity.visualeffectgraph/Documentation~/Blackboard.md index f881cdb17e9..5423e441722 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Blackboard.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Blackboard.md @@ -1,4 +1,4 @@ -# Blackboard +# Blackboard panel The Blackboard is a utility panel in the [Visual Effect Graph window](VisualEffectGraphWindow.md) that allows you to manage: - [Properties](Properties.md) diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-Burst.md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-Burst.md index 61eae65cd74..0f1c24eba02 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-Burst.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Block-Burst.md @@ -1,9 +1,9 @@ -# Single/Periodic Burst +# Single/Periodic Burst Blocks Menu Path: -- **Spawn > Single Burst** -- **Spawn > Periodic Burst** +- **Spawn** > **Single Burst** +- **Spawn** > **Periodic Burst** The Single/Periodic Burst Block spawns a number of particles instantly either once, or periodically using a delay. When this Block triggers a burst of particles to spawn, it increments the [spawnCount](https://docs.unity3d.com/Documentation/ScriptReference/VFX.VFXSpawnerState-spawnCount.html) instantly. If you change the **Repeat** setting to **Periodic**, this Block changes its name to **Periodic Burst** and spawns bursts of particles after a delay. @@ -11,7 +11,7 @@ The Single/Periodic Burst Block spawns a number of particles instantly either on This Block is compatible with the following Contexts: -- [Spawn](Context-Spawn.md) +- [Spawn Context](Context-Spawn.md) ## Block settings diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-CalculateMassFromVolume.md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-CalculateMassFromVolume.md index 28526d30e7a..371788ef402 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-CalculateMassFromVolume.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Block-CalculateMassFromVolume.md @@ -1,6 +1,6 @@ -# Calculate Mass from Volume +# Calculate Mass from Volume Block -Menu Path : **Attribute > Derived > Calculate Mass from Volume** +Menu Path : **Attribute** > **Derived** > **Calculate Mass from Volume** The **Calculate Mass from Volume** Block sets a particle’s **Mass** attribute based on its volume, derived from the **Scale** attribute and the Block’s **Density** property. This Block is useful for calculating the mass of particles with different scales so they behave believably during physics simulations. @@ -8,8 +8,8 @@ The **Calculate Mass from Volume** Block sets a particle’s **Mass** attribute This Block is compatible with the following Contexts: -- [Initialize](Context-Initialize.md) -- [Update](Context-Update.md) +- [Initialize Context](Context-Initialize.md) +- [Update Context](Context-Update.md) ## Block properties diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-CameraFade.md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-CameraFade.md index 2b5ad64e6c9..ab349e6a665 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-CameraFade.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Block-CameraFade.md @@ -1,4 +1,4 @@ -# Camera Fade +# Camera Fade Block Menu Path : **Output > Camera Fade** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-CollideWithDepthBuffer.md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-CollideWithDepthBuffer.md index 8181049fcdb..1f595a59074 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-CollideWithDepthBuffer.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Block-CollideWithDepthBuffer.md @@ -1,6 +1,6 @@ -# Collide with Depth Buffer +# Collide with Depth Buffer Block -Menu Path : **Collision > Collide with Depth Buffer** +Menu Path : **Collision** > **Collide with Depth Buffer** The **Collide with Depth Buffer** Block makes particles collide with a specific Camera’s depth buffer. This is especially useful for fast moving particles like sparks or rain drops where precise collision is not as important. diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-Collision-LandingPage.md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-Collision-LandingPage.md index 44c98a1281b..d5e5c0e4a09 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-Collision-LandingPage.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Block-Collision-LandingPage.md @@ -4,10 +4,10 @@ Configure how particles collide with shapes or the depth buffer. | **Page** | **Description** | | --- | --- | -| [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. | +| [Collision Shape Block](Block-CollisionShape.md) | Define a shape that particles collide with. | +| [Collide with Depth Buffer Block](Block-CollideWithDepthBuffer.md) | Make particles collide with a camera's depth buffer. | +| [Kill Shape Block](Block-KillShape.md) | Define a shape that destroys particles that collide with it. | +| [Trigger Shape Block](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-ConformToSignedDistanceField.md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-ConformToSignedDistanceField.md index bde589962a5..d57857c2c2d 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-ConformToSignedDistanceField.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Block-ConformToSignedDistanceField.md @@ -1,4 +1,4 @@ -# Attractor Shape Signed Distance Field +# Attractor Shape Signed Distance Field Block Menu Path : **Force > Attractor Shape Signed Distance Field** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-ConformToSphere.md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-ConformToSphere.md index 08618da3648..d95badbf80d 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-ConformToSphere.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Block-ConformToSphere.md @@ -1,4 +1,4 @@ -# Attractor Shape Sphere +# Attractor Shape Sphere Block Menu Path : **Force > Attractor Shape Sphere** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-ConnectTarget.md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-ConnectTarget.md index 3437e37cccd..ebd32f5f3c5 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-ConnectTarget.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Block-ConnectTarget.md @@ -1,4 +1,4 @@ -# Connect Target +# Connect Target Block Menu Path : **Orientation > Connect Target** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-ConstantRate.md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-ConstantRate.md index 46ff602a18c..e270810943f 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-ConstantRate.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Block-ConstantRate.md @@ -1,6 +1,6 @@ -# Constant Rate +# Constant Rate Block -Menu Path : **Spawn > Constant Rate** +Menu Path : **Spawn** > **Constant Rate** The Constant Rate Block adds a spawn count over time at a constant rate. For instance, if the rate is 10, this Block tiggers 10 spawn events per second for its Spawn Context. A rate below one is also valid, if the rate is 0.5, the rate is once every two seconds. diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-CustomHLSL.md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-CustomHLSL.md index efd79866d9b..090d669775b 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-CustomHLSL.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Block-CustomHLSL.md @@ -1,6 +1,6 @@ # Custom HLSL Block -Menu Path : **HLSL > Custom HLSL** +Menu Path : **HLSL** > **Custom HLSL** The **Custom HLSL** Block allows you to write an HLSL function that takes inputs and can read and write to particle attributes. For general information about Custom HLSL nodes, refer to [Custom HLSL Nodes](CustomHLSL-Common.md). diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-FlipbookPlayer.md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-FlipbookPlayer.md index 483f1b0c654..b7331b7f317 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-FlipbookPlayer.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Block-FlipbookPlayer.md @@ -1,4 +1,4 @@ -# Flipbook Player +# Flipbook Player Block Menu Path : **FlipBook > Flipbook Player** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-Force.md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-Force.md index 42689d6ddca..538e0d27534 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-Force.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Block-Force.md @@ -1,4 +1,4 @@ -# Force +# Force Block Menu Path : **Force > Force** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-Gravity.md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-Gravity.md index 32fc1fc7c36..b839d087a18 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-Gravity.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Block-Gravity.md @@ -1,4 +1,4 @@ -# Gravity +# Gravity Block Menu Path : **Force >** **Gravity** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-IncrementStripIndexOnStart.md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-IncrementStripIndexOnStart.md index be25f156579..ee54a260f42 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-IncrementStripIndexOnStart.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Block-IncrementStripIndexOnStart.md @@ -1,6 +1,6 @@ -# Increment Strip Index On Start +# Increment Strip Index On Start Block -Menu Path: **Spawn > Custom > Increment Strip Index On Start** +Menu Path: **Spawn** > **Custom** > **Increment Strip Index On Start** The **Increment Strip Index On Start** Block helps to manage the initialization of Particle Strips. A Particle Strip comprises of linked groups of particles and the amount of these groups is defined by the strip's stripIndex attribute. Each particle with the same stripIndex attribute will a be part of the same strip, incrementing the stripIndex will create a new strip. This Block increments the Particle Strip's stripIndex attribute (unsigned integer) each time the start event of the Spawn Context triggers. This adds a new linked group of particles to the Particle Strip. @@ -12,7 +12,7 @@ The stripIndex attribute returns to zero when a stop event triggers or if stripI This Block is compatible with the following Contexts: -- [Spawn](Context-Spawn.md) +- [Spawn Context](Context-Spawn.md) ## Block properties diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-KillShape.md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-KillShape.md index 5cd2cce008f..8cdd11fc210 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-KillShape.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Block-KillShape.md @@ -11,8 +11,8 @@ If you change the **Behavior** property of the block, the Block changes to the f You can add the Kill Shape Block to the following Contexts: -- [Initialize](Context-Initialize.md) -- [Update](Context-Update.md) +- [Initialize Particle Context](Context-Initialize.md) +- [Update Particle Context](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**. diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-LinearDrag.md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-LinearDrag.md index 0b78ec9a6ba..8063ac42bd9 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-LinearDrag.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Block-LinearDrag.md @@ -1,4 +1,4 @@ -# Linear Drag +# Linear Drag Block Menu Path : **Force >** **Linear Drag** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-Orient.md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-Orient.md index eeb3c2e5af1..d4aeaa0b7e5 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-Orient.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Block-Orient.md @@ -1,4 +1,4 @@ -# Orient: Face [Mode] +# Orient: Face [Mode] Block Menu Path : **Orientation > Orient: Face [Mode]** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-ScreenSpaceSize.md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-ScreenSpaceSize.md index c1814621994..d48feb3167c 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-ScreenSpaceSize.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Block-ScreenSpaceSize.md @@ -1,6 +1,6 @@ -# Screen Space Size +# Screen Space Size Block -Menu Path : **Output > Screen Space Size** +Menu Path : **Output** > **Screen Space Size** The **Screen Space Size** Block calculates the scaleXYZ property of each particle to reach a size relative to the pixel size or screen size. diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetAttribute.md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetAttribute.md index 61457c510f0..32e45bb2b12 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetAttribute.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetAttribute.md @@ -1,4 +1,4 @@ -# Set Attribute +# Set Attribute Block Menu Path : **Attribute > Set > [Add/Blend/Inherit/Multiply/Set] \ ** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetAttributeFromCurve.md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetAttributeFromCurve.md index f7b75f987d2..8eb8a62251e 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetAttributeFromCurve.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetAttributeFromCurve.md @@ -1,6 +1,6 @@ -# Set Attribute from Curve/Gradient +# Set Attribute from Curve/Gradient Block -Menu Path : **Attribute > Curve > [Add/Set] \ \** +Menu Path : **Attribute** > **Curve** > **[Add/Set] \ \** The **Set Attribute from Curve/Gradient** Block is a generic Block that allows you to write values to an attribute, based on a sample from an **Animation Curve** or **Gradient**, using composition. This Block can use various sampling modes to do this. The sampling modes are: diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetAttributeFromMap.md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetAttributeFromMap.md index e7ac52f8aea..9994e337f53 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetAttributeFromMap.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetAttributeFromMap.md @@ -1,4 +1,4 @@ -# Set Attribute from Map +# Set Attribute from Map Block Menu Path : **Attribute > Set \ From Map** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetPosition(Depth).md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetPosition(Depth).md index 49c0b96a299..fa873e589b8 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetPosition(Depth).md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetPosition(Depth).md @@ -1,6 +1,6 @@ -# Set Position (Depth) +# Set Position (Depth) Block -Menu Path : **Position > Set Position (Depth)** +Menu Path : **Position** > **Set Position (Depth)** The **Set Position (Depth)** Block calculates a position based on a Camera and its depth buffer then stores the position to the [position attribute](Reference-Attributes.md). diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetPosition(Mesh).md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetPosition(Mesh).md index 429313d6d91..97f3d0479b3 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetPosition(Mesh).md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetPosition(Mesh).md @@ -1,6 +1,6 @@ -# Set Position (Mesh) +# Set Position (Mesh) Block -Menu Path: **Position > Set Position (Mesh)** +Menu Path: **Position** > **Set Position (Mesh)** Use the **Set Position (Mesh)** Block to set particle positions based on the shape of a mesh. diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetPosition(Sequential).md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetPosition(Sequential).md index c6f18065d05..aef7842c11d 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetPosition(Sequential).md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetPosition(Sequential).md @@ -1,6 +1,6 @@ -# Set Position (Sequential) +# Set Position (Sequential) Block -Menu Path : **Position > Set Position (Sequential : \)** +Menu Path : **Position** > **Set Position (Sequential : \)** The **Set Position (Sequential)** Block calculates a position based on arithmetic sequences and stores the result in the **position** attribute. Optionally, it can also calculate a position based on an offset index in the sequence and store the result in the **targetPosition** attribute. diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetPosition(SkinnedMesh).md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetPosition(SkinnedMesh).md index e4e1aa3343c..321ba1b03dc 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetPosition(SkinnedMesh).md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetPosition(SkinnedMesh).md @@ -1,6 +1,6 @@ -# Set Position (Skinned Mesh) +# Set Position (Skinned Mesh) Block -Menu Path: **Position > Set Position (Skinned Mesh)** +Menu Path: **Position** > **Set Position (Skinned Mesh)** Use the **Set Position (Skinned Mesh)** Block to set particle positions based on the shape of a Skinned Mesh Renderer component. diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetPositionShape-LandingPage.md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetPositionShape-LandingPage.md index 19d30f13129..700ec5056c8 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetPositionShape-LandingPage.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetPositionShape-LandingPage.md @@ -4,12 +4,12 @@ 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 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. | +| [Set Position (Depth) Block](Block-SetPosition(Depth).md) | Explore the properties of the Set Position (Depth) block. | +| [Set Position (Mesh) Block](Block-SetPosition(Mesh).md) | Explore the properties of the Set Position (Mesh) block. | +| [Set Position (Skinned Mesh) Block](Block-SetPosition(SkinnedMesh).md) | Explore the properties of the Set Position (Skinned Mesh) block. | +| [Set Position Shape Block reference Block](Block-SetPositionShape.md) | Explore the properties of the Set Position Shape block. | +| [Set Position (Sequential) Block](Block-SetPosition(Sequential).md) | Explore the properties of the Set Position (Sequential) block. | +| [Tile/Warp Positions Block](Block-TileWarpPositions.md) | Explore the properties of the Tile/Warp Positions block. | ## Additional resources diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetPositionShape.md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetPositionShape.md index 840d471e2b9..2ab560f691e 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetPositionShape.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetPositionShape.md @@ -1,4 +1,4 @@ -# Set Position Shape Block reference +# Set Position Shape Block The Set Position Shape Block calculates particle positions based on an input shape, then stores them in the [position attribute](Reference-Attributes.md) of particles. diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetSpawnEvent.md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetSpawnEvent.md index fc18d739443..7aec3c096b4 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetSpawnEvent.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetSpawnEvent.md @@ -1,6 +1,6 @@ -# Set SpawnEvent \ +# Set SpawnEvent Block -Menu Path: **Spawn > Set SpawnEvent \** +Menu Path: **Spawn** > **Set SpawnEvent \** The **Set SpawnEvent** Block modifies the content of attributes stored in the Context [event attribute](https://docs.unity3d.com/2019.3/Documentation/ScriptReference/VFX.VFXSpawnerState-vfxEventAttribute.html). @@ -8,7 +8,7 @@ The **Set SpawnEvent** Block modifies the content of attributes stored in the Co This Block is compatible with the following Contexts: -- [Spawn](Context-Spawn.md) +- [Spawn Context](Context-Spawn.md) ## Block settings diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetSpawnTime.md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetSpawnTime.md index 5390a751f96..74acfc7ecba 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetSpawnTime.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetSpawnTime.md @@ -1,6 +1,6 @@ -# Set Spawn Time +# Set Spawn Time Block -Menu Path: **Spawn > Custom > Set Spawn Time** +Menu Path: **Spawn** > **Custom** > **Set Spawn Time** The **Set Spawn Time** Block allows following Initialize Contexts to use the time since the spawn Context’s last play event (see [totalTime](https://docs.unity3d.com/2019.3/Documentation/ScriptReference/VFX.VFXSpawnerState-totalTime.html)). @@ -12,7 +12,7 @@ In this example, the left system uses source spawnTime, which resets for each st This Block is compatible with the following Contexts: -- [Spawn](Context-Spawn.md) +- [Spawn Context](Context-Spawn.md) ## Remarks diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-SpawnOverDistance.md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-SpawnOverDistance.md index eb1105b5257..03632cc83c2 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-SpawnOverDistance.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Block-SpawnOverDistance.md @@ -1,6 +1,6 @@ -# Spawn Over Distance +# Spawn Over Distance Block -Menu Path: **Spawn > Custom > Spawn Over Distance** +Menu Path: **Spawn** > **Custom** > **Spawn Over Distance** The **Spawn Over Distance** Block calculates the displacement of a position relative to the previous frame's value. Depending on this size of the displacement and the **Rate Per Unit** property, the system spawns a particle. @@ -10,7 +10,7 @@ The **Spawn Over Distance** Block calculates the displacement of a position rela This Block is compatible with the following Contexts: -- [Spawn](Context-Spawn.md) +- [Spawn Context](Context-Spawn.md) ## Block properties diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-SubpixelAntiAliasing.md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-SubpixelAntiAliasing.md index 260fd474932..83bce0fdc79 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-SubpixelAntiAliasing.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Block-SubpixelAntiAliasing.md @@ -1,4 +1,4 @@ -# Subpixel Anti-Aliasing +# Subpixel Anti-Aliasing Block Menu Path : **Output > Subpixel Anti-Aliasing** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-TileWarpPositions.md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-TileWarpPositions.md index 5b40d6239c2..b593a1bd49f 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-TileWarpPositions.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Block-TileWarpPositions.md @@ -1,4 +1,4 @@ -# Tile/Warp Positions +# Tile/Warp Positions Block Menu Path : **Position > Tile Warp Positions** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-TriggerShape.md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-TriggerShape.md index 5eaf5600069..1c1b263e24c 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-TriggerShape.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Block-TriggerShape.md @@ -11,8 +11,8 @@ If you change the **Behavior** property of the block, the Block changes to the f You can add the Trigger Shape Block to the following Contexts: -- [Initialize](Context-Initialize.md) -- [Update](Context-Update.md) +- [Initialize Particle Context](Context-Initialize.md) +- [Update Particle Context](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**. diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-Turbulence.md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-Turbulence.md index 2b71b04d6e0..d33b6a7363b 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-Turbulence.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Block-Turbulence.md @@ -1,4 +1,4 @@ -# Turbulence +# Turbulence Block Menu Path : **Force > Turbulence** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-UpdatePosition.md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-UpdatePosition.md index 9df34d3868a..23998acb0d4 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-UpdatePosition.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Block-UpdatePosition.md @@ -1,4 +1,4 @@ -# Integration : Update Position +# Integration : Update Position Block Menu Path : **Implicit > Integration : Update Position** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-UpdateRotation.md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-UpdateRotation.md index 2a0a325b8a1..966fdecf9fb 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-UpdateRotation.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Block-UpdateRotation.md @@ -1,4 +1,4 @@ -# Integration : Update Rotation +# Integration : Update Rotation Block Menu Path : **Implicit > Integration : Update Rotation** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-VariableRate.md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-VariableRate.md index 2178020986d..70d9691b4eb 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-VariableRate.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Block-VariableRate.md @@ -1,4 +1,4 @@ -# Variable Rate +# Variable Rate Block Menu Path : **Spawn > Variable Rate** @@ -8,7 +8,7 @@ The Variable Rate Block uses a more advanced approach than the [Constant Rate Bl This Block is compatible with the following Contexts: -- [Spawn](Context-Spawn.md) +- [Spawn Context](Context-Spawn.md) ## Block properties diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-VectorForceField.md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-VectorForceField.md index 3179608c24c..0b5e0f4f3e2 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-VectorForceField.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Block-VectorForceField.md @@ -1,6 +1,6 @@ -# Vector Field Force +# Vector Field Force Block -Menu Path : **Force > Vector Field Force** +Menu Path : **Force** > **Vector Field Force** The **Vector Field Force** Block uses [vector fields](VectorFields.md) to apply a force to the particles. This Block is useful for adding specific forces created in advance and stored in vector field assets. diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-VelocityFromDirectionAndSpeed(ChangeSpeed).md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-VelocityFromDirectionAndSpeed(ChangeSpeed).md index 002435e2cb9..9bde4428756 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-VelocityFromDirectionAndSpeed(ChangeSpeed).md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Block-VelocityFromDirectionAndSpeed(ChangeSpeed).md @@ -1,4 +1,4 @@ -# Velocity from Direction & Speed (Change Speed) +# Velocity from Direction & Speed (Change Speed) Block > [!IMPORTANT] > This feature is experimental. To use this feature, open the **Preferences** window, go to the **Visual Effects** tab, and enable **Experimental Operators/Blocks**. @@ -14,8 +14,8 @@ To do this, it scales the direction vector by a speed, and composes it with the This Block is compatible with the following Contexts: -- [Initialize](Context-Initialize.md) -- [Update](Context-Update.md) +- [Initialize Context](Context-Initialize.md) +- [Update Context](Context-Update.md) ## Block settings diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-VelocityFromDirectionAndSpeed(NewDirection).md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-VelocityFromDirectionAndSpeed(NewDirection).md index fc6836a7f59..aab1c3ba095 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-VelocityFromDirectionAndSpeed(NewDirection).md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Block-VelocityFromDirectionAndSpeed(NewDirection).md @@ -1,4 +1,4 @@ -# Velocity from Direction & Speed (New Direction) +# Velocity from Direction & Speed (New Direction) Block > [!IMPORTANT] > This feature is experimental. To use this feature, open the **Preferences** window, go to the **Visual Effects** tab, and enable **Experimental Operators/Blocks**. @@ -15,8 +15,8 @@ The Block then scales the final direction vector by a speed, and composes it wit This Block is compatible with the following Contexts: -- [Initialize](Context-Initialize.md) -- [Update](Context-Update.md) +- [Initialize Context](Context-Initialize.md) +- [Update Context](Context-Update.md) ## Block settings diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-VelocityFromDirectionAndSpeed(RandomDirection).md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-VelocityFromDirectionAndSpeed(RandomDirection).md index 888adb88050..ac2c0982380 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-VelocityFromDirectionAndSpeed(RandomDirection).md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Block-VelocityFromDirectionAndSpeed(RandomDirection).md @@ -1,4 +1,4 @@ -# Velocity from Direction & Speed (Random Direction) +# Velocity from Direction & Speed (Random Direction) Block > [!IMPORTANT] > This feature is experimental. To use this feature, open the **Preferences** window, go to the **Visual Effects** tab, and enable **Experimental Operators/Blocks**. @@ -15,8 +15,8 @@ The Block then scales the final direction vector by a speed, and composes it wit This Block is compatible with the following Contexts: -- [Initialize](Context-Initialize.md) -- [Update](Context-Update.md) +- [Initialize Context](Context-Initialize.md) +- [Update Context](Context-Update.md) ## Block settings diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-VelocityFromDirectionAndSpeed(Tangent).md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-VelocityFromDirectionAndSpeed(Tangent).md index 75b5cddfc4d..bef3184ddc8 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-VelocityFromDirectionAndSpeed(Tangent).md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Block-VelocityFromDirectionAndSpeed(Tangent).md @@ -1,4 +1,4 @@ -# Velocity from Direction & Speed (Tangent) +# Velocity from Direction & Speed (Tangent) Block > [!IMPORTANT] > This feature is experimental. To use this feature, open the **Preferences** window, go to the **Visual Effects** tab, and enable **Experimental Operators/Blocks**. @@ -17,8 +17,8 @@ The Block then scales the final direction vector by a speed, and composes it wit This Block is compatible with the following Contexts: -- [Initialize](Context-Initialize.md) -- [Update](Context-Update.md) +- [Initialize Context](Context-Initialize.md) +- [Update Context](Context-Update.md) ## Block settings diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Builtin.md b/Packages/com.unity.visualeffectgraph/Documentation~/Builtin.md index 08fa076d23e..0bdfab421a4 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Builtin.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Builtin.md @@ -4,12 +4,12 @@ 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. | +| [Delta Time Operator](Operator-DeltaTime.md) | Get the time in seconds between the current and previous frames. | +| [Frame Index Operator](Operator-FrameIndex.md) | Get the current frame index. | +| [Local to World Operator](Operator-LocalToWorld.md) | Get a matrix that transforms a point from local space to world space. | +| [System Seed Operator](Operator-SystemSeed.md) | Get the seed used to generate random numbers. | +| [Total Time Operator](Operator-TotalTime.md) | Get the total time since the effect started. | +| [World to Local Operator](Operator-WorldToLocal.md) | Get a matrix that transforms a point from world space to local space. | ## Additional resources diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Camera.md b/Packages/com.unity.visualeffectgraph/Documentation~/Camera.md index 82d266352db..3e98f9801c8 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Camera.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Camera.md @@ -4,12 +4,12 @@ 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. | +| [Main Camera Operator](Operator-MainCamera.md) | Get information about the current main camera, including integration with the active Scriptable Render Pipeline. | +| [Viewport To World Point Operator](Operator-ViewportToWorldPoint.md) | Transform a position from viewport space to world space | +| [World To Viewport Point Operator](Operator-WorldToViewportPoint.md) | Transform a position from world space to view space. | ## Additional resources -- [Coordinates](Coordinates.md) -- [Geometry](Geometry.md) +- [Coordinates Operator](Coordinates.md) +- [Geometry Operators](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 index 61dc923b2bc..9821c376f17 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Clamp.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Clamp.md @@ -4,11 +4,11 @@ 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. | +| [Ceiling Operator](Operator-Ceiling.md) | Round an input up to the nearest integer. | +| [Clamp Operator](Operator-Clamp.md) | Limit an input value between a lower and upper bound for each axis. | +| [Discretize Operator](Operator-Discretize.md) | Get the multiple of an input that's closest to a second input. | +| [Floor Operator](Operator-Floor.md) | Round an input value down to the nearest integer. | +| [Maximum Operator](Operator-Maximum.md) | Get the largest value from all input values. | +| [Minimum Operator](Operator-Minimum.md) | Get the smallest value from all input values. | +| [Round Operator](Operator-Round.md) | Round an input value to the nearest integer. | +| [Saturate Operator](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 index 37b072347b6..495385c2d9d 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Color.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Color.md @@ -4,15 +4,15 @@ 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. | +| [Color Luma Operator](Operator-ColorLuma.md) | Get the perceived brightness of an input color. | +| [HSV to RGB Operator](Operator-HSVToRGB.md) | Convert hue, saturation, value (HSV) color values to red, green, blue (RGB) color values. | +| [RGB to HSV Operator](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) +- [Color Operator](Operator-InlineColor.md) +- [Sample Gradient Operator](Operator-SampleGradient.md) +- [Saturate Operator](Operator-Saturate.md) diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Constants.md b/Packages/com.unity.visualeffectgraph/Documentation~/Constants.md index 0d4369f97f4..aa360cdb7ac 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Constants.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Constants.md @@ -4,8 +4,8 @@ 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. | +| [Epsilon (ε) Operator](Operator-Epsilon.md) | Get a tiny value that you can use to avoid precision issues when you compare float values. | +| [Pi (π) Operator](Operator-Pi.md) | Get the ratio of a circle's circumference to its diameter. | ## Additional resources diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Context-Event.md b/Packages/com.unity.visualeffectgraph/Documentation~/Context-Event.md index 44ca39bf6b2..affcb04579f 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Context-Event.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Context-Event.md @@ -1,4 +1,4 @@ -# Event +# Event Context Menu Path : **Context > Event** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Context-GPUEvent.md b/Packages/com.unity.visualeffectgraph/Documentation~/Context-GPUEvent.md index 69379a3ed72..5ccb875b8db 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Context-GPUEvent.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Context-GPUEvent.md @@ -1,4 +1,4 @@ -# GPU Event +# GPU Event Context Menu Path : **Context > GPUEvent** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Context-Initialize.md b/Packages/com.unity.visualeffectgraph/Documentation~/Context-Initialize.md index a3f60e88348..5daa310a3f3 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Context-Initialize.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Context-Initialize.md @@ -1,4 +1,4 @@ -# Initialize +# Initialize Particle Context Menu Path : **Context > Initialize Particle** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputDistortion.md b/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputDistortion.md index da3043839db..d08360f307c 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputDistortion.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputDistortion.md @@ -1,4 +1,4 @@ -# Output Distortion +# Output Distortion Context Menu Path : **Context > Output [Strip/Particle] Distortion [Quad/Mesh]** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputForwardDecal.md b/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputForwardDecal.md index 85b35a42efe..59a0df5147e 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputForwardDecal.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputForwardDecal.md @@ -1,6 +1,6 @@ -# Output Particle Forward Decal +# Output Particle Forward Decal Context -Menu Path : **Context > Output Particle Forward Decal** +Menu Path : **Context** > **Output Particle Forward Decal** The **Output Particle Forward Decal** Context renders a particle system using a decal. A decal is a box into which the Visual Effect Graph projects a texture. Unity then renders the texture on any intersecting geometry along its xy plane. This means decal particles that don’t intersect any geometry are not visible. Note that although they are not visible, they still contribute to the resource intensity required to simulate and render the system. diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputLine.md b/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputLine.md index 45463aec405..cce74bb399c 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputLine.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputLine.md @@ -1,6 +1,6 @@ -# Output Particle Line +# Output Particle Line Context -Menu Path : **Context > Output Particle Line** +Menu Path : **Context** > **Output Particle Line** This **Output Particle Line** Context uses lines to render a particle system. Lines are defined by two end-points and are always a single pixel width regardless of the distance of the particle to the camera or the particle's size and scale attributes. diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputLitSettings.md b/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputLitSettings.md index 555f74e4e55..26a413902ad 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputLitSettings.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputLitSettings.md @@ -1,4 +1,4 @@ -# Lit Output Settings +# Lit Output Settings Context Menu Path : **Context > Output [Data Type] Lit [Type]** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputMesh.md b/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputMesh.md index b09a8a66174..0eea688287f 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputMesh.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputMesh.md @@ -1,4 +1,4 @@ -# Output Mesh +# Output Mesh Context Menu Path : **Context > Output Mesh** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputParticleHDRPLitDecal.md b/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputParticleHDRPLitDecal.md index 401e40b06df..2f7b37cdc5e 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputParticleHDRPLitDecal.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputParticleHDRPLitDecal.md @@ -1,4 +1,4 @@ -# Output Particle HDRP Lit Decal +# Output Particle HDRP Lit Decal Context The **Output Particle HDRP Lit Decal** Context uses a decal to render a particle system. A decal is a box that the Visual Effect Graph projects a texture into. Unity renders that texture on any geometry that intersects the decal along its xy plane. This means decal particles that don’t intersect any geometry are not visible. When a decal is not visible, it still contributes to the resource intensity required to simulate and render the system. @@ -18,7 +18,7 @@ The particles project their properties along their positive Z-axis. Below is a list of settings and properties specific to the Output Particle HDRP Lit Decal Context. For information about the generic output settings this Context shares with all other Contexts, see [Output Lit Settings and Properties](Context-OutputLitSettings.md). -# Context Settings +## Context Settings | **Input** | **Type** | **Description** | |------------------------------|----------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| @@ -32,7 +32,7 @@ Below is a list of settings and properties specific to the Output Particle HDRP -# Context Properties +## Context Properties | **Input** | **Type** | **Description** | |-----------------------|----------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| @@ -43,7 +43,7 @@ Below is a list of settings and properties specific to the Output Particle HDRP -# Limitations +## Limitations - This Output does not support Shader Graph. - For this Context to work, enable Decals in the HDRP Asset and in the HDRP Settings. diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputParticleHDRPVolumetricFog.md b/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputParticleHDRPVolumetricFog.md index 8973887a3f3..b25e691b49a 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputParticleHDRPVolumetricFog.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputParticleHDRPVolumetricFog.md @@ -1,4 +1,4 @@ -# Output Particle HDRP Volumetric Fog +# Output Particle HDRP Volumetric Fog Context The **Output Particle HDRP Volumetric Fog** Context allows for the injection of fog directly into HDRP's volumetric lighting system, resulting in dynamic fog effects created with the VFX graph simulation. @@ -10,7 +10,7 @@ The particle color controls the color of the fog, and the particle alpha control Menu Path : **Context > Output Particle HDRP Volumetric Fog** -# Context Settings +## Context Settings | **Input** | **Type** | **Description** | |------------------------------|----------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| @@ -20,7 +20,7 @@ Menu Path : **Context > Output Particle HDRP Volumetric Fog** | **Use Distance Fading** | Bool | Exposes two ports to control the particle fading. Distance fade consists of a Start and End distance, where the particle alpha is interpolated to 0 (that is, when the particle center distance from the camera equals **Distance Fade Start** the alpha is multiplied by 1, and when the distance reaches **Distance Fade End** it is multiplied by 0). Distance Fading can help prevent small fog particles from flickering. | -# Context Properties +## Context Properties | **Input** | **Type** | **Description** | |-----------------------|----------|-------------------| @@ -33,7 +33,7 @@ Menu Path : **Context > Output Particle HDRP Volumetric Fog** | **Distance Fade End** | Float | Determines the distance from the camera to the particle center where the particle ends fading. | -# Limitations +## Limitations - This Output does not support [Shader Graph](https://docs.unity3d.com/Packages/com.unity.shadergraph@latest). - For this Context to work, enable Volumetric Fog in the HDRP Asset and in the HDRP Global Settings. diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputParticleMesh.md b/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputParticleMesh.md index acc4222386a..5e44c2522ac 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputParticleMesh.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputParticleMesh.md @@ -1,4 +1,4 @@ -# Output Particle Mesh +# Output Particle Mesh Context Menu Path : **Context > Output Particle Mesh** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputParticleURPLitDecal.md b/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputParticleURPLitDecal.md index 5e6e772735b..33f90f00acf 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputParticleURPLitDecal.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputParticleURPLitDecal.md @@ -1,4 +1,4 @@ -# Output Particle URP Lit Decal +# Output Particle URP Lit Decal Context The **Output Particle URP Lit Decal** Context uses a decal to render a particle system. A decal is a box that the Visual Effect Graph projects a texture into. Unity renders that texture on any geometry that intersects the decal along its xy plane. This means decal particles that don’t intersect any geometry are not visible. When a decal is not visible, it still contributes to the resource intensity required to simulate and render the system. @@ -21,7 +21,7 @@ The particles project their properties along their positive Z-axis. Below is a list of settings and properties specific to the Output Particle URP Lit Decal Context. For information about the generic output settings this Context shares with all other Contexts, see [Output Lit Settings and Properties](Context-OutputLitSettings.md). -# Context Settings +## Context Settings | **Input** | **Type** | **Description** | | -------------------------- | -------- | ------------------------------------------------------------ | @@ -39,7 +39,7 @@ Below is a list of settings and properties specific to the Output Particle URP L -# Context Properties +## Context Properties | **Input** | **Type** | **Description** | | --------------------- | -------- | ------------------------------------------------------------ | @@ -50,7 +50,7 @@ Below is a list of settings and properties specific to the Output Particle URP L -# Limitations +## Limitations - This Output does not support Shader Graph. - For this Context to work, add the[ Decal Renderer Feature](https://docs.unity3d.com/Packages/com.unity.render-pipelines.universal@latest?subfolder=/manual/renderer-feature-decal.html) to your Renderer. diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputPoint.md b/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputPoint.md index 3616c9325b5..3616972a8e4 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputPoint.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputPoint.md @@ -1,5 +1,5 @@ -# Output Particle Point -Menu Path : **Context > Output Particle Point** +# Output Particle Point Context +Menu Path : **Context** > **Output Particle Point** The **Output Particle Point** Context uses points to render a particle system. It always draws points as single pixels regardless of the distance of the particle to the camera or each particle's size and scale attributes. diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputPrimitive.md b/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputPrimitive.md index 1d45f63c1f6..cee9d1d91ae 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputPrimitive.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputPrimitive.md @@ -1,6 +1,6 @@ -# Output Particle Primitive +# Output Particle Primitive Context -Menu Path : **Context > Output Particle [Primitive]** +Menu Path : **Context** > **Output Particle [Primitive]** *(Output Particle (Lit) Quad, Output Particle (Lit) Triangle, Output Particle (Lit) Octagon)* The Output Particle primitives (quad/triangle/octagon) Context are the most commonly-used output types and are great for a wide range of effects. They come in a regular (unlit) and a [Lit](Context-OutputLitSettings.md) variety (HDRP-only). diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputShaderGraphMesh.md b/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputShaderGraphMesh.md index d17c193fa7e..8cb9d67c05c 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputShaderGraphMesh.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputShaderGraphMesh.md @@ -1,4 +1,4 @@ -# Output ShaderGraph Mesh +# Output Particle ShaderGraph Mesh Context Menu Path : **Context > Output Particle ShaderGraph Mesh** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputShaderGraphPlanarPrimitive.md b/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputShaderGraphPlanarPrimitive.md index f963b25a63b..3ac1e37a504 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputShaderGraphPlanarPrimitive.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputShaderGraphPlanarPrimitive.md @@ -1,4 +1,4 @@ -# Output ShaderGraph Quad +# Output ShaderGraph Quad Context Menu Path : **Context > Output Particle ShaderGraph Quad** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputShaderGraphStrip.md b/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputShaderGraphStrip.md index c4e1726e84d..82240d1bde9 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputShaderGraphStrip.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputShaderGraphStrip.md @@ -1,6 +1,6 @@ -# Output ShaderGraph Strip +# Output Particle ShaderGraph Strip Context -Menu Path : **Context > Output Particle ShaderGraph Strip** +Menu Path : **Context** > **Output Particle ShaderGraph Strip** [!include[](Snippets/Context-OutputShaderGraph-InlineIntro.md)] diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputSharedSettings.md b/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputSharedSettings.md index 922f4e8ac59..6fcdad52ee5 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 Context 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-Spawn.md b/Packages/com.unity.visualeffectgraph/Documentation~/Context-Spawn.md index 74aad6e5a91..b676ac8942e 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Context-Spawn.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Context-Spawn.md @@ -1,4 +1,4 @@ -# Spawn +# Spawn Context Menu Path : **Context > Spawn** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Context-Update.md b/Packages/com.unity.visualeffectgraph/Documentation~/Context-Update.md index 15cd95b6d8a..f1e896a950d 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Context-Update.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Context-Update.md @@ -1,4 +1,4 @@ -# Update +# Update Particle Context Menu Path : **Context > Update Particle** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Context.md b/Packages/com.unity.visualeffectgraph/Documentation~/Context.md index 5af7ddabebc..0f67d098ad6 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Context.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Context.md @@ -4,25 +4,25 @@ 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. | +| [Event Context](Context-Event.md) | Define names for events that trigger actions in a graph. | +| [GPU Event Context](Context-GPUEvent.md) | Spawn new particles from specific Blocks in Update or Initialize Contexts. | +| [Initialize Particle Context](Context-Initialize.md) | Process an event and initialize new particle elements. | +| [Output Decal Context](Context-OutputForwardDecal.md) | Render a particle system using a projected decal texture. | +| [Output Distortion Context](Context-OutputDistortion.md) | In the High Definition Render Pipeline (HDRP), use distortion to simulate effects like heat haze from fire. | +| [Output Line Context](Context-OutputLine.md) | Render particles as lines. | +| [Output Mesh Context](Context-OutputMesh.md) | Render a static mesh. | +| [Output Particle HDRP Lit Decal Context](Context-OutputParticleHDRPLitDecal.md) | Use a decal to render a particle system in HDRP. | +| [Output Particle HDRP Volumetric Fog Context](Context-OutputParticleHDRPVolumetricFog.md) | Convert particles into a volumetric fog effect in HDRP, to create dynamic fog effects. | +| [Output Particle Mesh Context](Context-OutputParticleMesh.md) | Render particles as meshes. | +| [Output Particle URP Lit Decal Context](Context-OutputParticleURPLitDecal.md) | Use a decal to render a particle system in the Universal Render Pipeline (URP). | +| [Output Point Context](Context-OutputPoint.md) | Render particles as points. | +| [Output Primitive Context](Context-OutputPrimitive.md) | Render particles as lit quads, triangles, or octagons. | +| [Output ShaderGraph Mesh Context](Context-OutputShaderGraphMesh.md) | Render particles as a custom Shader Graph mesh. | +| [Output ShaderGraph Quad Context](Context-OutputShaderGraphPlanarPrimitive.md) | Render particles as a custom Shader Graph quad. | +| [Output ShaderGraph Strip Context](Context-OutputShaderGraphStrip.md) | Render particles as a custom Shader Graph strip. | +| [Shared output settings Context](SharedOutputSettings.md) | Explore the settings that appear in all Contexts. | +| [Spawn Context](Context-Spawn.md) | Control the spawn rate of particles, or create a custom spawning behavior. | +| [Update Particle Context](Context-Update.md) | Manage the behavior of particles or particle strips from an Initialize Context. | ## Additional resources diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Coordinates.md b/Packages/com.unity.visualeffectgraph/Documentation~/Coordinates.md index ea214d4ce8c..22b1372b544 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Coordinates.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Coordinates.md @@ -1,17 +1,17 @@ -# Coordinate Operators +# Coordinates 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. | +| [Polar to Rectangular Operator](Operator-PolarToRectangular.md) | Convert from polar coordinates to rectangular xy coordinates. | +| [Rectangular to Polar Operator](Operator-RectangularToPolar.md) | Convert from rectangular xy coordinates to polar coordinates. | +| [Rectangular to Spherical Operator](Operator-RectangularToSpherical.md) | Convert from rectangular xyz coordinates to spherical coordinates. | +| [Spherical to Rectangular Operator](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) +- [Change Space Operator](Operator-ChangeSpace.md) +- [Transform (Position) Operator](Operator-Transform(Position).md) +- [Local to World Operator](Operator-LocalToWorld.md) diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/CustomSpawn.md b/Packages/com.unity.visualeffectgraph/Documentation~/CustomSpawn.md index e1d8b3c9c31..771aed45de1 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/CustomSpawn.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/CustomSpawn.md @@ -4,13 +4,13 @@ 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. | +| [Increment Strip Index On Start Block](Block-IncrementStripIndexOnStart.md) | Create a new group of particles each time the start event of the Spawn Context triggers. | +| [Set Spawn Time Block](Block-SetSpawnTime.md) | Allow Initialize Contexts to use the time since the previous play event of the Spawn Context. | +| [Spawn Over Distance Block](Block-SpawnOverDistance.md) | Spawn particles based on the distance moved since the previous frame. | ## Additional resources -- [Spawn](Context-Spawn.md) +- [Spawn Context](Context-Spawn.md) - [Spawner Callbacks](SpawnerCallbacks.md) - [Events](Events.md) diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Force.md b/Packages/com.unity.visualeffectgraph/Documentation~/Force.md index 1b0ad8f8a6c..55e72016fb1 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Force.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Force.md @@ -4,13 +4,13 @@ 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. | +| [Attractor Shape Signed Distance Field Block](Block-ConformToSignedDistanceField.md) | Pull particles towards a complex shape. | +| [Attractor Shape Sphere Block](Block-ConformToSphere.md) | Pull particles towards a sphere. | +| [Force Block](Block-Force.md) | Apply a force to particles by changing their velocity. | +| [Gravity Block](Block-Gravity.md) | Apply gravity to particles by changing their velocity. | +| [Linear Drag Block](Block-LinearDrag.md) | Slow particles down without affecting their direction. | +| [Turbulence Block](Block-Turbulence.md) | Add natural-looking motion to particles. | +| [Vector Force Field Block](Block-VectorForceField.md) | Apply specific forces to particles using a vector field. | ## Additional resources diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Geometry.md b/Packages/com.unity.visualeffectgraph/Documentation~/Geometry.md index 8dc84da86b8..78bb1c393ae 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Geometry.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Geometry.md @@ -4,24 +4,24 @@ 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. | +| [Area (Circle) Operator](Operator-Area(Circle).md) | Calculate the area of a circle. | +| [Change Space Operator](Operator-ChangeSpace.md) | Convert a vector from local space to world space. | +| [Distance (Line) Operator](Operator-Distance(Line).md) | Calculate the distance between a position and the closest point on a line. | +| [Distance (Plane) Operator](Operator-Distance(Plane).md) | Calculate the distance between a position and the closest point on a plane. | +| [Distance (Sphere) Operator](Operator-Distance(Sphere).md) | Calculate the distance between a position and the closest point on a sphere. | +| [InvertTRS (Matrix) Operator](Operator-InvertTRS(Matrix).md) | Invert a matrix that contains translation, rotation, and scaling. | +| [Transform (Direction) Operator](Operator-Transform(Direction).md) | Change the position, rotation, or scale of a direction vector. | +| [Transform (Matrix) Operator](Operator-Transform(Matrix).md) | Change the position, rotation, or scale of a matrix. | +| [Transform (Position) Operator](Operator-Transform(Position).md) | Change the position, rotation, or scale of a position. | +| [Transform (Vector) Operator](Operator-Transform(Vector).md) | Change the position, rotation, or scale of a vector. | +| [Transform (Vector4) Operator](Operator-Transform(Vector4).md) | Change the position, rotation, or scale of a Vector4. | +| [Transpose (Matrix) Operator](Operator-Transpose(Matrix).md) | Flip a matrix across its diagonal, to swap columns with rows. | +| [Volume (Axis Aligned Box) Operator](Operator-Volume(AxisAlignedBox).md) | Calculate the volume of an axis-aligned box. | +| [Volume (Cone) Operator](Operator-Volume(Cone).md) | Calculate the volume of a cone. | +| [Volume (Cylinder) Operator](Operator-Volume(Cylinder).md) | Calculate the volume of a cylinder. | +| [Volume (Oriented Box) Operator](Operator-Volume(OrientedBox).md) | Calculate the volume of an oriented box. | +| [Volume (Sphere) Operator](Operator-Volume(Sphere).md) | Calculate the volume of a sphere. | +| [Volume (Torus) Operator](Operator-Volume(Torus).md) | Calculate the volume of a torus. | ## Additional resources diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Implicit.md b/Packages/com.unity.visualeffectgraph/Documentation~/Implicit.md index f60a6095f58..35a648a067e 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Implicit.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Implicit.md @@ -4,8 +4,8 @@ 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. | +| [Integration: Update Position Block](Block-UpdatePosition.md) | Update the positions of particles. | +| [Integration: Update Rotation Block](Block-UpdateRotation.md) | Update the rotation of particles. | ## Additional resources diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Inline.md b/Packages/com.unity.visualeffectgraph/Documentation~/Inline.md index 32469a03974..fab846dab3f 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Inline.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Inline.md @@ -4,43 +4,43 @@ 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. | +| [AABox Operator](Operator-InlineAABox.md) | Store an axis-aligned 3D box. | +| [AnimationCurve Operator](Operator-InlineAnimationCurve.md) | Store an animation curve. | +| [ArcCircle Operator](Operator-InlineArcCircle.md) | Store a segment of a circle. | +| [ArcCone Operator](Operator-InlineArcCone.md) | Store a segment of a cone. | +| [ArcSphere Operator](Operator-InlineArcSphere.md) | Store a segment of a sphere. | +| [ArcTorus Operator](Operator-InlineArcTorus.md) | Store a segment of a torus. | +| [bool Operator](Operator-Inlinebool.md) | Store a Boolean. | +| [Camera Operator](Operator-InlineCamera.md) | Store a camera. | +| [Circle Operator](Operator-InlineCircle.md) | Store a circle. | +| [Color Operator](Operator-InlineColor.md) | Store a color. | +| [Cone Operator](Operator-InlineCone.md) | Store a cone. | +| [Cubemap Operator](Operator-InlineCubemap.md) | Store a cubemap texture. | +| [CubemapArray Operator](Operator-InlineCubemapArray.md) | Store a cubemap array. | +| [Cylinder Operator](Operator-InlineCylinder.md) | Store a cylinder. | +| [Direction Operator](Operator-InlineDirection.md) | Store a direction. | +| [FlipBook Operator](Operator-InlineFlipBook.md) | Store a flipbook texture. | +| [float Operator](Operator-Inlinefloat.md) | Store a float. | +| [Gradient Operator](Operator-InlineGradient.md) | Store a gradient. | +| [int Operator](Operator-Inlineint.md) | Store an integer. | +| [Line Operator](Operator-InlineLine.md) | Store a line. | +| [Matrix4x4 Operator](Operator-InlineMatrix4x4.md) | Store a 4x4 matrix. | +| [Mesh Operator](Operator-InlineMesh.md) | Store a mesh. | +| [OrientedBox Operator](Operator-InlineOrientedBox.md) | Store an oriented box. | +| [Plane Operator](Operator-InlinePlane.md) | Store a plane. | +| [Position Operator](Operator-InlinePosition.md) | Store a position. | +| [Sphere Operator](Operator-InlineSphere.md) | Store a sphere. | +| [TerrainType Operator](Operator-InlineTerrainType.md) | Store a terrain type. | +| [Texture2D Operator](Operator-InlineTexture2D.md) | Store a 2D texture. | +| [Texture2DArray Operator](Operator-InlineTexture2DArray.md) | Store a 2D texture array. | +| [Texture3D Operator](Operator-InlineTexture3D.md) | Store a 3D texture. | +| [Torus Operator](Operator-InlineTorus.md) | Store a torus. | +| [Transform Operator](Operator-InlineTransform.md) | Store position, rotation, and scale. | +| [uint Operator](Operator-Inlineuint.md) | Store an unsigned integer. | +| [Vector Operator](Operator-InlineVector.md) | Store a vector with one dimension. | +| [Vector2 Operator](Operator-InlineVector2.md) | Store a vector with two dimensions. | +| [Vector3 Operator](Operator-InlineVector3.md) | Store a vector with three dimensions. | +| [Vector4 Operator](Operator-InlineVector4.md) | Store a vector with four dimensions. | ## Additional resources diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Logic.md b/Packages/com.unity.visualeffectgraph/Documentation~/Logic.md index 438262896cb..5db8dbcc7aa 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Logic.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Logic.md @@ -4,14 +4,14 @@ 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. | +| [And Operator](Operator-LogicAnd.md) | Output `true` if both inputs are `true`. | +| [Branch Operator](Operator-Branch.md) | Test a Boolean and return different values for `true` and `false`. | +| [Compare Operator](Operator-Compare.md) | Compare two floats based on a condition and return the result as a Boolean. | +| [Nand Operator](Operator-LogicNand.md) | Output `true` if at least one input is `false`. | +| [Nor Operator](Operator-LogicNor.md) | Output `true` if both inputs are `false`. | +| [Not Operator](Operator-LogicNot.md) | Output `true` if an input is `false`, and vice versa. | +| [Or Operator](Operator-LogicOr.md) | Output `true` if either input is `true`. | +| [Switch Operator](Operator-Switch.md) | Compare an input to case values, and output a value depending on the case. | ## Additional resources diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Math.md b/Packages/com.unity.visualeffectgraph/Documentation~/Math.md index 735e80e7615..f843aede157 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Math.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Math.md @@ -4,17 +4,17 @@ 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. | +| [Arithmetic Operators](Arithmetic.md) | Perform mathematical calculations on input data. | +| [Clamp Operators](Clamp.md) | Clamp, round, or limit values. | +| [Constants Operators](Constants.md) | Get mathematical constants. | +| [Coordinates Operators](Coordinates.md) | Convert between coordinate systems. | +| [Exp Operator](Operator-Exp.md) | Raise a number to a specified power. | +| [Geometry Operators](Geometry.md) | Perform geometric calculations and transformations. | +| [Log Operator](Operator-Log.md) | Calculate the logarithm of a number. | +| [Remap Operators](Remap.md) | Remap values between ranges. | +| [Trigonometry Operators](Trigonometry.md) | Perform trigonometric calculations. | +| [Vector Operators](Vector.md) | Perform vector and matrix calculations. | +| [Wave Operators](Wave.md) | Generate waveforms, for example to control the behavior of particles over time. | ## Additional resources diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Noise.md b/Packages/com.unity.visualeffectgraph/Documentation~/Noise.md index 59356967320..5e36ce936d3 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Noise.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Noise.md @@ -4,12 +4,12 @@ Generate procedural noise patterns, for example to control the behavior of parti | **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. | +| [Cellular Noise Operator](Operator-CellularNoise.md) | Generate noise with cell-like patterns. | +| [Perlin Noise Operator](Operator-PerlinNoise.md) | Generate noise with a smooth, natural variation. | +| [Value Noise Operator](Operator-ValueNoise.md) | Generate noise with simple interpolated values. | +| [Cellular Curl Noise Operator](Operator-CellularCurlNoise.md) | Create cell-like patterns that simulate fluid or gas. | +| [Perlin Curl Noise Operator](Operator-PerlinCurlNoise.md) | Generate noise that simulates a fluid or gas with smooth variations. | +| [Value Curl Noise Operator](Operator-ValueCurlNoise.md) | Generate noise that simulates a fluid or gas with simple interpolated values. | ## Additional resources diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Absolute.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Absolute.md index 8951cd310ac..d8614355e65 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Absolute.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Absolute.md @@ -1,4 +1,4 @@ -# Absolute +# Absolute Operator Menu Path : **Operator > Math > Arithmetic > Absolute** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Acos.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Acos.md index cf3f952416a..ca49f249d69 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Acos.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Acos.md @@ -1,4 +1,4 @@ -# Acos +# Acos Operator Menu Path : **Operator > Math > Trigonometry > Acos** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Add.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Add.md index 9fffef5744e..fc548ca8b75 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Add.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Add.md @@ -1,4 +1,4 @@ -# Add +# Add Operator Menu Path : **Operator > Math > Arithmetic > Add** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-AgeOverLifetime.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-AgeOverLifetime.md index b36ca7b2d9b..c5b5da64b15 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-AgeOverLifetime.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-AgeOverLifetime.md @@ -1,4 +1,4 @@ -# Age Over Lifetime +# Age Over Lifetime Operator Menu Path : **Operator > Attribute > Age over Lifetime** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-AppendVector.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-AppendVector.md index 0a7af6a0bb2..276a5efbad3 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-AppendVector.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-AppendVector.md @@ -1,4 +1,4 @@ -# Append Vector +# Append Vector Operator Menu Path : **Operator > Math > Vector** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Area(Circle).md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Area(Circle).md index 11d40767e0c..078f6ab877f 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Area(Circle).md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Area(Circle).md @@ -1,4 +1,4 @@ -# Area (Circle) +# Area (Circle) Operator Menu Path : **Operator > Math > Geometry > Area (Circle)** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Asin.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Asin.md index 4e4f39c63f2..74bbf4e297e 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Asin.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Asin.md @@ -1,4 +1,4 @@ -# Asin +# Asin Operator Menu Path : **Operator > Math > Trigonometry > Asin** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Atan.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Atan.md index 63e1f6e7432..456d97680ff 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Atan.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Atan.md @@ -1,4 +1,4 @@ -# Atan +# Atan Operator Menu Path : **Operator > Math > Trigonometry > Atan** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Atan2.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Atan2.md index d3dd918e813..f750fed3e6a 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Atan2.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Atan2.md @@ -1,4 +1,4 @@ -# Atan2 +# Atan2 Operator Menu Path : **Operator > Math > Trigonometry > Atan2** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-BitwiseAnd.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-BitwiseAnd.md index a877a7445b0..10564ffd7f9 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-BitwiseAnd.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-BitwiseAnd.md @@ -1,6 +1,6 @@ -# And (Bitwise) +# And (Bitwise) Operator -Menu Path : **Operator > Bitwise > And** +Menu Path : **Operator** > **Bitwise** > **And** The **And** Operator takes two inputs and outputs the result of a bitwise *And* operation between them. For each bit in **A** and **B**, if both are **1**, the output is **1**. Otherwise, the output is **0**. diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-BitwiseComplement.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-BitwiseComplement.md index a298c4e4064..6ad5367e85f 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-BitwiseComplement.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-BitwiseComplement.md @@ -1,6 +1,6 @@ -# Complement (Bitwise) +# Complement (Bitwise) Operator -Menu Path : **Operator > Bitwise > Complement** +Menu Path : **Operator** > **Bitwise** > **Complement** The **Complement** Operator applies a bitwise logical *NOT* operation to each bit of a number in its binary form. This inverts each bit, meaning bits that are 0 become 1 and bits that are 1 become 0. For example: diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-BitwiseLeftShift.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-BitwiseLeftShift.md index 46e5afe5c6d..6ff512a7cbe 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-BitwiseLeftShift.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-BitwiseLeftShift.md @@ -1,6 +1,6 @@ -# Left Shift (Bitwise) +# Left Shift (Bitwise) Operator -Menu Path : **Operator > Bitwise > Left Shift** +Menu Path : **Operator** > **Bitwise** > **Left Shift** The **Left Shift** Operator shifts the first input's value left by the number of bits defined in the second input. During the shift, this Operator discards the most-significant bit and inserts a 0 on the right. diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-BitwiseOr.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-BitwiseOr.md index cd76c66fbe8..f8690be1c55 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-BitwiseOr.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-BitwiseOr.md @@ -1,6 +1,6 @@ -# Or (Bitwise) +# Or (Bitwise) Operator -Menu Path : **Operator > Bitwise > Or** +Menu Path : **Operator** > **Bitwise** > **Or** The **Or** Operator takes two inputs and outputs the result of a bitwise *or* operation between them. For each bit in **A** and **B**, if either is **1**, the output is **1**. Otherwise, the output is **0**. diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-BitwiseRightShift.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-BitwiseRightShift.md index 7605a70f0d3..8a23a4da892 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-BitwiseRightShift.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-BitwiseRightShift.md @@ -1,6 +1,6 @@ -# Right Shift (Bitwise) +# Right Shift (Bitwise) Operator -Menu Path : **Operator > Bitwise > Right Shift** +Menu Path : **Operator** > **Bitwise** > **Right Shift** The **Right Shift** Operator shifts the first input's value right by the number of bits defined in the second input. During the shift, this Operator discards the least-significant bit and inserts a 0 on the left. diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-BitwiseXor.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-BitwiseXor.md index 3d67cb646d4..04cc2259718 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-BitwiseXor.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-BitwiseXor.md @@ -1,6 +1,6 @@ -# Xor (Bitwise) +# Xor (Bitwise) Operator -Menu Path : **Operator > Bitwise > Xor** +Menu Path : **Operator** > **Bitwise** > **Xor** The Xor Operator takes two inputs and outputs the result of a bitwise logical Xor operation to each bit of a number in its binary form. For each bit in **A** and **B**, if only one of them is **1**, the output is **1**. If both of them are **1** or neither of them are **1**, the output is **0**. diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Branch.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Branch.md index af2a9cb4342..1098e3a03a2 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Branch.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Branch.md @@ -1,4 +1,4 @@ -# Branch +# Branch Operator Menu Path : **Operator > Logic > Branch** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-BufferCount.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-BufferCount.md index c19ad3c3441..5157bfeee79 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-BufferCount.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-BufferCount.md @@ -1,4 +1,4 @@ -# Buffer Count +# Buffer Count Operator **Menu Path : Operator > Sampling > Buffer Count** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Ceiling.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Ceiling.md index 10bd71a3e5c..5c82cdf6123 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Ceiling.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Ceiling.md @@ -1,4 +1,4 @@ -# Ceiling +# Ceiling Operator Menu Path : **Operator > Math > Clamp > Ceiling** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-CellularCurlNoise.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-CellularCurlNoise.md index 9ef33e37d61..2145d67ec49 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-CellularCurlNoise.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-CellularCurlNoise.md @@ -1,4 +1,4 @@ -# Cellular Curl Noise +# Cellular Curl Noise Operator Menu Path : **Operator > Noise > Cellular Curl Noise** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-CellularNoise.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-CellularNoise.md index c59161dd5b6..ae62e8ea42e 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-CellularNoise.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-CellularNoise.md @@ -1,4 +1,4 @@ -# Cellular Noise +# Cellular Noise Operator Menu Path : **Operator > Noise > Cellular Noise** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-ChangeSpace.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-ChangeSpace.md index 68284da2a1f..64e30155511 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-ChangeSpace.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-ChangeSpace.md @@ -1,4 +1,4 @@ -# Change Space +# Change Space Operator Menu Path : **Operator > Math > Geometry > Change Space** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Clamp.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Clamp.md index f5d83e7aeb7..b0d982e3fa3 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Clamp.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Clamp.md @@ -1,4 +1,4 @@ -# Clamp +# Clamp Operator Menu Path : **Operator > Math > Clamp > Clamp** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-ColorLuma.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-ColorLuma.md index fb44b29aa28..4444294da73 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-ColorLuma.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-ColorLuma.md @@ -1,4 +1,4 @@ -# Color Luma +# Color Luma Operator Menu Path : **Operator > Color > Color Luma** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Compare.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Compare.md index 9c836592c7c..ddaefcc3033 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Compare.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Compare.md @@ -1,4 +1,4 @@ -# Compare +# Compare Operator Menu Path : **Operator > Logic > Compare** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-ConstructMatrix.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-ConstructMatrix.md index 97baf7bc513..2a9c42fa7ae 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-ConstructMatrix.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-ConstructMatrix.md @@ -1,4 +1,4 @@ -# Construct Matrix +# Construct Matrix Operator Menu Path : **Operator > Math > Vector** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Cosine.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Cosine.md index 45577f4893a..b3e7433ce25 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Cosine.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Cosine.md @@ -1,4 +1,4 @@ -# Cosine +# Cosine Operator Menu Path : **Operator > Math > Trigonometry > Cosine** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-CrossProduct.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-CrossProduct.md index bb6bc6851da..86ddacaef7a 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-CrossProduct.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-CrossProduct.md @@ -1,4 +1,4 @@ -# Cross Product +# Cross Product Operator Menu Path : **Operator > Math > Vector** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-CustomHLSL.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-CustomHLSL.md index 3eb137a2ce1..50f28a10ea8 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-CustomHLSL.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-CustomHLSL.md @@ -1,6 +1,6 @@ # Custom HLSL Operator -Menu Path : **Operator > HLSL > Custom HLSL** +Menu Path : **Operator** > **HLSL** > **Custom HLSL** The **Custom HLSL Operator** allows you to write an HLSL function that takes **inputs** and produce **outputs**. For general information about Custom HLSL nodes, refer to [Custom HLSL Nodes](CustomHLSL-Common.md). diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-DeltaTime.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-DeltaTime.md index 3727498afb2..e37effd589c 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-DeltaTime.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-DeltaTime.md @@ -1,4 +1,4 @@ -# Delta Time +# Delta Time Operator Menu Path : **Operator > BuiltIn > DeltaTime** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Discretize.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Discretize.md index b2b28967db9..84fbe81d076 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Discretize.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Discretize.md @@ -1,4 +1,4 @@ -# Discretize +# Discretize Operator Menu Path : **Operator > Math > Clamp > Discretize** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Distance(Line).md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Distance(Line).md index 2fff43f95ec..b2db1dbfe8d 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Distance(Line).md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Distance(Line).md @@ -1,6 +1,6 @@ -# Distance (Line) +# Distance (Line) Operator -Menu Path : **Operator > Math > Geometry > Distance (Line)** +Menu Path : **Operator** > **Math** > **Geometry** > **Distance (Line)** The **Distance (Line)** Operator takes a line and a position and calculates: diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Distance(Plane).md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Distance(Plane).md index 572c768a071..4741ac39379 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Distance(Plane).md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Distance(Plane).md @@ -1,6 +1,6 @@ -# Distance (Plane) +# Distance (Plane) Operator -Menu Path : **Operator > Math > Geometry > Distance (Plane)** +Menu Path : **Operator** > **Math** > **Geometry** > **Distance (Plane)** The **Distance (Plane)** Operator Operator takes a plane and a position and calculates: diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Distance(Sphere).md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Distance(Sphere).md index 1b680ae9b95..d5d6c4e54bf 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Distance(Sphere).md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Distance(Sphere).md @@ -1,6 +1,6 @@ -# Distance (Sphere) +# Distance (Sphere) Operator -Menu Path : **Operator > Math > Geometry > Distance (Sphere)** +Menu Path : **Operator** > **Math** > **Geometry** > **Distance (Sphere)** The **Distance (Sphere)** Operator takes a sphere and a position and calculates: diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Distance.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Distance.md index 430fc7d089a..93141996055 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Distance.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Distance.md @@ -1,4 +1,4 @@ -# Distance +# Distance Operator Menu Path : **Operator > Math > Vector** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Divide.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Divide.md index 505cfe4b3b7..2bde2eb03c0 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Divide.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Divide.md @@ -1,4 +1,4 @@ -# Divide +# Divide Operator Menu Path : **Operator > Math > Arithmetic > Divide** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-DotProduct.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-DotProduct.md index 883cb36b049..07c91f51068 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-DotProduct.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-DotProduct.md @@ -1,4 +1,4 @@ -# Dot Product +# Dot Product Operator Menu Path : **Operator > Math > Vector** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Epsilon.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Epsilon.md index 06336da98e6..1817c248918 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Epsilon.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Epsilon.md @@ -1,6 +1,6 @@ -# Epsilon (Ɛ) +# Epsilon (Ɛ) Operator -Menu Path : **Operator > Math > Constants > Epsilon (Ɛ)** +Menu Path : **Operator** > **Math** > **Constants** > **Epsilon (Ɛ)** The **Epsilon (Ɛ)** Operator returns a tiny value. This is useful for comparisons as it can help to avoid potential precision issues with floats. diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Exp.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Exp.md index 4c975d7eaca..46cd6f11971 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Exp.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Exp.md @@ -1,4 +1,4 @@ -# Exp +# Exp Operator Menu Path : **Operator > Math > Exp** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Floor.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Floor.md index 82dd96493d6..23ccae64a8c 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Floor.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Floor.md @@ -1,4 +1,4 @@ -# Floor +# Floor Operator Menu Path : **Operator > Math > Clamp > Floor** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Fractional.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Fractional.md index 62190be948e..72025b96f75 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Fractional.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Fractional.md @@ -1,4 +1,4 @@ -# Fractional +# Fractional Operator Menu Path : **Operator > Math > Arithmetic > Fractional** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-FrameIndex.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-FrameIndex.md index bd86be5e477..0ceb74b8b96 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-FrameIndex.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-FrameIndex.md @@ -1,4 +1,4 @@ -# Frame Index +# Frame Index Operator Menu Path : **Operator > BuiltIn > Frame Index** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeAge.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeAge.md index 7f6a76fb630..322051699f6 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeAge.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeAge.md @@ -1,4 +1,4 @@ -# Get Attribute: age +# Get Attribute: age Operator Menu Path : **Operator > Attribute > Get Attribute: age** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeAlive.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeAlive.md index 1605d9b0e81..6bc884c4b22 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeAlive.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeAlive.md @@ -1,4 +1,4 @@ -# Get Attribute: alive +# Get Attribute: alive Operator Menu Path : **Operator > Attribute > Get Attribute: alive** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeAlpha.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeAlpha.md index 250161d505a..170bef39627 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeAlpha.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeAlpha.md @@ -1,4 +1,4 @@ -# Get Attribute: alpha +# Get Attribute: alpha Operator Menu Path : **Operator > Attribute > Get Attribute: alpha** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeAngle.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeAngle.md index a7058d6836f..d7189776643 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeAngle.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeAngle.md @@ -1,4 +1,4 @@ -# Get Attribute: angle +# Get Attribute: angle Operator Menu Path : **Operator > Attribute > Get Attribute: angle** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeAngularVelocity.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeAngularVelocity.md index 35bec2fb855..80755a53c71 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeAngularVelocity.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeAngularVelocity.md @@ -1,4 +1,4 @@ -# Get Attribute: angularVelocity +# Get Attribute: angularVelocity Operator Menu Path : **Operator > Attribute > Get Attribute: angularVelocity** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeAxisX.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeAxisX.md index 385d6641013..7ecf4b9d373 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeAxisX.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeAxisX.md @@ -1,4 +1,4 @@ -# Get Attribute: axisX +# Get Attribute: axisX Operator Menu Path : **Operator > Attribute > Get Attribute: axisX** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeAxisY.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeAxisY.md index d1dc2bf5a5b..88ad1d7bec9 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeAxisY.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeAxisY.md @@ -1,4 +1,4 @@ -# Get Attribute: axisY +# Get Attribute: axisY Operator Menu Path : **Operator > Attribute > Get Attribute: axisY** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeAxisZ.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeAxisZ.md index d5db0e5b8f5..909970228d9 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeAxisZ.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeAxisZ.md @@ -1,4 +1,4 @@ -# Get Attribute: axisZ +# Get Attribute: axisZ Operator Menu Path : **Operator > Attribute > Get Attribute: axisZ** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeColor.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeColor.md index 48a50e1cf90..39538ef56fd 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeColor.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeColor.md @@ -1,4 +1,4 @@ -# Get Attribute: color +# Get Attribute: color Operator Menu Path : **Operator > Attribute > Get Attribute: color** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeDirection.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeDirection.md index a86187f2e76..f95b057d5dc 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeDirection.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeDirection.md @@ -1,4 +1,4 @@ -# Get Attribute: direction +# Get Attribute: direction Operator Menu Path : **Operator > Attribute > Get Attribute: direction** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeLifetime.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeLifetime.md index cc8f207f9b0..fbd89cd3e46 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeLifetime.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeLifetime.md @@ -1,4 +1,4 @@ -# Get Attribute: lifetime +# Get Attribute: lifetime Operator Menu Path : **Operator > Attribute > Get Attribute: lifetime** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeMass.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeMass.md index d32f068eb9d..8df87adb84e 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeMass.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeMass.md @@ -1,4 +1,4 @@ -# Get Attribute: mass +# Get Attribute: mass Operator Menu Path : **Operator > Attribute > Get Attribute: mass** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeOldPosition.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeOldPosition.md index ef3f964ad8d..845883b6a18 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeOldPosition.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeOldPosition.md @@ -1,4 +1,4 @@ -# Get Attribute: oldPosition +# Get Attribute: oldPosition Operator Menu Path : **Operator > Attribute > Get Attribute: oldPosition** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeParticleCountInStrip.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeParticleCountInStrip.md index 1dd65640b2d..8eb59fc5230 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeParticleCountInStrip.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeParticleCountInStrip.md @@ -1,4 +1,4 @@ -# Get Attribute: particleCountInStrip +# Get Attribute: particleCountInStrip Operator Menu Path : **Operator > Attribute > Get Attribute: particleCountInStrip** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeParticleID.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeParticleID.md index b3dc11284fc..e364b26d3ad 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeParticleID.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeParticleID.md @@ -1,6 +1,6 @@ -# Get Attribute: particleID +# Get Attribute: particleID Operator -Menu Path : **Operator > Attribute > Get Attribute: particleID** +Menu Path : **Operator** > **Attribute** > **Get Attribute: particleID** The **Get Attribute: particleID** returns the particleID, which is a [standard attribute](Reference-Attributes.md), of a simulated element depending on [Location](Attributes.md#attribute-locations). This Operator outputs a unique ID which identifies the particle. diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeParticleIndexInStrip.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeParticleIndexInStrip.md index ab4863c75f5..f14adcb8e3c 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeParticleIndexInStrip.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeParticleIndexInStrip.md @@ -1,4 +1,4 @@ -# Get Attribute: particleIndexInStrip +# Get Attribute: particleIndexInStrip Operator Menu Path : **Operator > Attribute > Get Attribute: particleIndexInStrip** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributePivot.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributePivot.md index 11b574630ae..b7ee970fc6c 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributePivot.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributePivot.md @@ -1,4 +1,4 @@ -# Get Attribute: pivot +# Get Attribute: pivot Operator Menu Path : **Operator > Attribute > Get Attribute: pivot** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributePosition.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributePosition.md index 3d51ed458aa..c3e96a10041 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributePosition.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributePosition.md @@ -1,4 +1,4 @@ -# Get Attribute: position +# Get Attribute: position Operator Menu Path : **Operator > Attribute > Get Attribute: position** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeScale.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeScale.md index bae38ec5418..1d46ef5c0ef 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeScale.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeScale.md @@ -1,4 +1,4 @@ -# Get Attribute: scale +# Get Attribute: scale Operator Menu Path : **Operator > Attribute > Get Attribute: scale** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeSeed.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeSeed.md index ce149a31350..48feeea9663 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeSeed.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeSeed.md @@ -1,4 +1,4 @@ -# Get Attribute: seed +# Get Attribute: seed Operator Menu Path : **Operator > Attribute > Get Attribute: seed** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeSize.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeSize.md index 28343244459..50601eb25dd 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeSize.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeSize.md @@ -1,4 +1,4 @@ -# Get Attribute: size +# Get Attribute: size Operator Menu Path : **Operator > Attribute > Get Attribute: size** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeSpawnIndex.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeSpawnIndex.md index b272a3cdb14..fb8ac3ed94b 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeSpawnIndex.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeSpawnIndex.md @@ -1,4 +1,4 @@ -# Get Attribute: spawnIndex +# Get Attribute: spawnIndex Operator Menu Path : **Operator > Attribute > Get Attribute: spawnIndex** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeSpawnTime.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeSpawnTime.md index bb413034515..a823b608f3f 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeSpawnTime.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeSpawnTime.md @@ -1,4 +1,4 @@ -# Get Attribute: spawnTime +# Get Attribute: spawnTime Operator Menu Path : **Operator > Attribute > Get Attribute: spawnTime** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeStripIndex.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeStripIndex.md index f261833cf64..c74a2001601 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeStripIndex.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeStripIndex.md @@ -1,4 +1,4 @@ -# Get Attribute: stripIndex +# Get Attribute: stripIndex Operator Menu Path : **Operator > Attribute > Get Attribute: stripIndex** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeTargetPosition.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeTargetPosition.md index e69d5be153a..75fc65834c2 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeTargetPosition.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeTargetPosition.md @@ -1,4 +1,4 @@ -# Get Attribute: targetPosition +# Get Attribute: targetPosition Operator Menu Path : **Operator > Attribute > Get Attribute: targetPosition** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeTexIndex.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeTexIndex.md index 92b973f220b..6849d9e5b4f 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeTexIndex.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeTexIndex.md @@ -1,4 +1,4 @@ -# Get Attribute: texIndex +# Get Attribute: texIndex Operator Menu Path : **Operator > Attribute > Get Attribute: texIndex** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeVelocity.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeVelocity.md index 23b22c00c46..e355cf2ade9 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeVelocity.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeVelocity.md @@ -1,4 +1,4 @@ -# Get Attribute: velocity +# Get Attribute: velocity Operator Menu Path : **Operator > Attribute > Get Attribute: velocity** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetCustomAttribute.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetCustomAttribute.md index 752c5afb635..90e02aebb1e 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetCustomAttribute.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetCustomAttribute.md @@ -1,4 +1,4 @@ -# Get Custom Attribute +# Get Custom Attribute Operator Menu Path : **Operator > Attribute > Get Custom Attribute** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetTextureDimensions.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetTextureDimensions.md index e801f35ec81..5b6b5def191 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetTextureDimensions.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetTextureDimensions.md @@ -1,4 +1,4 @@ -# Get Texture Dimensions +# Get Texture Dimensions Operator Menu Path : **Operator > Sampling > Get Texture Dimensions** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-HSVToRGB.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-HSVToRGB.md index aacdc2c31e6..cd6eb36aa17 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-HSVToRGB.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-HSVToRGB.md @@ -1,6 +1,6 @@ -# HSV to RGB +# HSV to RGB Operator -Menu Path : **Operator > Color > HSV to RGB** +Menu Path : **Operator** > **Color** > **HSV to RGB** The **HSV to RGB** Operator converts HSV (Hue, Saturation, Value) color values to RGB (Red, Green, Blue) color values. diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineAABox.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineAABox.md index b81845cd6ec..9bf7df0c8aa 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineAABox.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineAABox.md @@ -1,4 +1,4 @@ -# AABox +# AABox Operator Menu Path : **Operator > Inline > AABox** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineAnimationCurve.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineAnimationCurve.md index f94b22d6821..265f4a2e8d5 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineAnimationCurve.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineAnimationCurve.md @@ -1,4 +1,4 @@ -# AnimationCurve +# AnimationCurve Operator Menu Path : **Operator > Inline > AnimationCurve** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineArcCircle.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineArcCircle.md index c19b59a315c..bb5cd9a267b 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineArcCircle.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineArcCircle.md @@ -1,4 +1,4 @@ -# ArcCircle +# ArcCircle Operator Menu Path : **Operator > Inline > ArcCircle** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineArcCone.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineArcCone.md index 6032ca10a03..efb49e06d57 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineArcCone.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineArcCone.md @@ -1,4 +1,4 @@ -# ArcCone +# ArcCone Operator Menu Path : **Operator > Inline > ArcCone** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineArcSphere.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineArcSphere.md index 665440d73f1..70b56e80e3c 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineArcSphere.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineArcSphere.md @@ -1,4 +1,4 @@ -# ArcSphere +# ArcSphere Operator Menu Path : **Operator > Inline > ArcSphere** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineArcTorus.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineArcTorus.md index 61a68583cd2..985227f3812 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineArcTorus.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineArcTorus.md @@ -1,4 +1,4 @@ -# ArcTorus +# ArcTorus Operator Menu Path : **Operator > Inline > ArcTorus** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineCamera.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineCamera.md index 7d10cca4e73..75d764c9b54 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineCamera.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineCamera.md @@ -1,4 +1,4 @@ -# Camera +# Camera Operator Menu Path : **Operator > Inline > Camera** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineCircle.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineCircle.md index c32e35d8ed3..595873f52c8 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineCircle.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineCircle.md @@ -1,4 +1,4 @@ -# Circle +# Circle Operator Menu Path : **Operator > Inline > Circle** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineColor.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineColor.md index 30cdac5230f..2c8de901fb1 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineColor.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineColor.md @@ -1,4 +1,4 @@ -# Color +# Color Operator Menu Path : **Operator > Inline > Color** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineCone.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineCone.md index 445ed1d1b70..bd27958d00b 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineCone.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineCone.md @@ -1,4 +1,4 @@ -# Cone +# Cone Operator Menu Path : **Operator > Inline > Cone** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineCubemap.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineCubemap.md index 2e0d128c42d..2771449a5e4 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineCubemap.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineCubemap.md @@ -1,4 +1,4 @@ -# Cubemap +# Cubemap Operator Menu Path : **Operator > Inline > Cubemap** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineCubemapArray.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineCubemapArray.md index 42a93e47259..eb49fe89e4d 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineCubemapArray.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineCubemapArray.md @@ -1,4 +1,4 @@ -# CubemapArray +# CubemapArray Operator Menu Path : **Operator > Inline > CubemapArray** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineCylinder.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineCylinder.md index c8daa9b3a6f..af5c0eaa88e 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineCylinder.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineCylinder.md @@ -1,4 +1,4 @@ -# Cylinder +# Cylinder Operator Menu Path : **Operator > Inline > Cylinder** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineDirection.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineDirection.md index 2ca9f75840c..2e0edc63182 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineDirection.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineDirection.md @@ -1,4 +1,4 @@ -# Direction +# Direction Operator Menu Path : **Operator > Inline > Direction** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineFlipBook.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineFlipBook.md index ddc14ae1dc5..3908dbda363 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineFlipBook.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineFlipBook.md @@ -1,4 +1,4 @@ -# FlipBook +# FlipBook Operator Menu Path : **Operator > Inline > FlipBook** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineGradient.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineGradient.md index 21b3f3079c0..80ba967ef6d 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineGradient.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineGradient.md @@ -1,4 +1,4 @@ -# Gradient +# Gradient Operator Menu Path : **Operator > Inline > Gradient** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineLine.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineLine.md index cd8d76bc2f5..f915f36b18f 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineLine.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineLine.md @@ -1,4 +1,4 @@ -# Line +# Line Operator Menu Path : **Operator > Inline > Line** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineMatrix4x4.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineMatrix4x4.md index fa006a55769..99bbcd9e251 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineMatrix4x4.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineMatrix4x4.md @@ -1,4 +1,4 @@ -# Matrix4x4 +# Matrix4x4 Operator Menu Path : **Operator > Inline > Matrix4x4** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineMesh.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineMesh.md index 49ebefcdee6..da945533398 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineMesh.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineMesh.md @@ -1,4 +1,4 @@ -# Mesh +# Mesh Operator Menu Path : **Operator > Inline > Mesh** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineOrientedBox.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineOrientedBox.md index 63ac75e6c8d..a459508bd0b 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineOrientedBox.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineOrientedBox.md @@ -1,4 +1,4 @@ -# OrientedBox +# OrientedBox Operator Menu Path : **Operator > Inline > OrientedBox** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlinePlane.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlinePlane.md index 5b9024a2a40..f9bd89c4439 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlinePlane.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlinePlane.md @@ -1,4 +1,4 @@ -# Plane +# Plane Operator Menu Path : **Operator > Inline > Plane** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlinePosition.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlinePosition.md index ced05f1451a..bad76ffc24f 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlinePosition.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlinePosition.md @@ -1,4 +1,4 @@ -# Position +# Position Operator Menu Path : **Operator > Inline > Position** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineSphere.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineSphere.md index 069c6fa4f0f..2542088b34a 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineSphere.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineSphere.md @@ -1,4 +1,4 @@ -# Sphere +# Sphere Operator Menu Path : **Operator > Inline > Sphere** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineTerrainType.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineTerrainType.md index 22946da5580..5ef468db656 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineTerrainType.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineTerrainType.md @@ -1,4 +1,4 @@ -# TerrainType +# TerrainType Operator Menu Path : **Operator > Inline > TerrainType** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineTexture2D.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineTexture2D.md index ab81c063d82..63ac5421275 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineTexture2D.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineTexture2D.md @@ -1,4 +1,4 @@ -# Texture2D +# Texture2D Operator Menu Path : **Operator > Inline > Texture2D** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineTexture2DArray.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineTexture2DArray.md index 631b0f5b1f8..fbeec1fa681 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineTexture2DArray.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineTexture2DArray.md @@ -1,4 +1,4 @@ -# Texture2DArray +# Texture2DArray Operator Menu Path : **Operator > Inline > Texture2DArray** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineTexture3D.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineTexture3D.md index 69d5dc39236..bf1406fc429 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineTexture3D.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineTexture3D.md @@ -1,4 +1,4 @@ -# Texture3D +# Texture3D Operator Menu Path : **Operator > Inline > Texture3D** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineTorus.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineTorus.md index 0a3c86f103b..91be0e8d6be 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineTorus.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineTorus.md @@ -1,4 +1,4 @@ -# Torus +# Torus Operator Menu Path : **Operator > Inline > Torus** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineTransform.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineTransform.md index 60b59b8c014..470629fc9d2 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineTransform.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineTransform.md @@ -1,4 +1,4 @@ -# Transform +# Transform Operator Menu Path : **Operator > Inline > Transform** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineVector.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineVector.md index 552d283683c..1c2a118e22b 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineVector.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineVector.md @@ -1,4 +1,4 @@ -# Vector +# Vector Operator Menu Path : **Operator > Inline > Vector** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineVector2.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineVector2.md index f24dff7e6e1..2714ea59a2a 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineVector2.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineVector2.md @@ -1,4 +1,4 @@ -# Vector2 +# Vector2 Operator Menu Path : **Operator > Inline > Vector2** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineVector3.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineVector3.md index b355a5dde08..0842c3d895f 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineVector3.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineVector3.md @@ -1,4 +1,4 @@ -# Vector3 +# Vector3 Operator Menu Path : **Operator > Inline > Vector3** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineVector4.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineVector4.md index 42fe8fc7cc1..49cdc123a67 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineVector4.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InlineVector4.md @@ -1,4 +1,4 @@ -# Vector4 +# Vector4 Operator Menu Path : **Operator > Inline > Vector4** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Inlinebool.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Inlinebool.md index 3d523519dab..00955197306 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Inlinebool.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Inlinebool.md @@ -1,4 +1,4 @@ -# bool +# bool Operator Menu Path : **Operator > Inline > bool** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Inlinefloat.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Inlinefloat.md index b7a4af326db..34e1e456acb 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Inlinefloat.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Inlinefloat.md @@ -1,4 +1,4 @@ -# float +# float Operator Menu Path : **Operator > Inline > float** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Inlineint.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Inlineint.md index 3b276fa5ce7..b3c7fd3d226 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Inlineint.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Inlineint.md @@ -1,4 +1,4 @@ -# int +# int Operator Menu Path : **Operator > Inline > int** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Inlineuint.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Inlineuint.md index b28b9428c5c..ee8f592a57e 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Inlineuint.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Inlineuint.md @@ -1,4 +1,4 @@ -# uint +# uint Operator Menu Path : **Operator > Inline > uint** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InverseLerp.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InverseLerp.md index 37c3abee25c..a31182407b9 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InverseLerp.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InverseLerp.md @@ -1,4 +1,4 @@ -# Inverse Lerp +# Inverse Lerp Operator Menu Path : **Operator > Math > Arithmetic > Inverse Lerp** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InvertTRS(Matrix).md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InvertTRS(Matrix).md index 571a4f84726..8ccfbda43dc 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InvertTRS(Matrix).md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-InvertTRS(Matrix).md @@ -1,6 +1,6 @@ -# InvertTRS (Matrix) +# InvertTRS (Matrix) Operator -Menu Path : **Operator > Math > Geometry > InvertTRS (Matrix)** +Menu Path : **Operator** > **Math** > **Geometry** > **InvertTRS (Matrix)** The **Invert TRS (Matrix)** Operator inverts a TRS (Translation, Rotation, and Scaling) matrix. diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Length.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Length.md index 64140e4889b..29e0e4d58dc 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Length.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Length.md @@ -1,6 +1,6 @@ -# Length +# Length Operator -Menu Path : **Operator > Math > Vector** +Menu Path : **Operator** > **Math** > **Vector** The **Length** [uniform Operator](Operators.md#uniform-operators) calculates the length of a 1D, 2D, or 3D vector. If you input a Vector4, this Operator ignores the fourth value of the vector. diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Lerp.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Lerp.md index 395937cdb78..c089c3a1a2a 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Lerp.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Lerp.md @@ -1,4 +1,4 @@ -# Lerp +# Lerp Operator Menu Path : **Operator > Math > Arithmetic > Lerp** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-LoadCameraBuffer.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-LoadCameraBuffer.md index e9e9c926580..50c813202b9 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-LoadCameraBuffer.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-LoadCameraBuffer.md @@ -1,4 +1,4 @@ -# Load CameraBuffer +# Load CameraBuffer Operator Menu Path : **Operator > Sampling > Load CameraBuffer** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-LoadTexture2D.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-LoadTexture2D.md index 5d234bec165..51257437fe3 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-LoadTexture2D.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-LoadTexture2D.md @@ -1,4 +1,4 @@ -# Load Texture2D +# Load Texture2D Operator Menu Path : **Operator > Sampling > Load Texture2D** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-LoadTexture2DArray.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-LoadTexture2DArray.md index 09c99ddbecf..43e71d0f1e4 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-LoadTexture2DArray.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-LoadTexture2DArray.md @@ -1,4 +1,4 @@ -# Load Texture2DArray +# Load Texture2DArray Operator Menu Path : **Operator > Sampling > Load Texture2DArray** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-LoadTexture3D.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-LoadTexture3D.md index b2b6beb490e..4204e5c2e4b 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-LoadTexture3D.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-LoadTexture3D.md @@ -1,4 +1,4 @@ -# Load Texture3D +# Load Texture3D Operator Menu Path : **Operator > Sampling > Load Texture3D** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-LocalToWorld.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-LocalToWorld.md index 1b2ad1e2b79..c6a013fc202 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-LocalToWorld.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-LocalToWorld.md @@ -1,6 +1,6 @@ -# Local To World +# Local To World Operator -Menu Path : **Operator > BuiltIn > Local To World** +Menu Path : **Operator** > **BuiltIn** > **Local To World** The **Local To World** Operator provides a matrix to transform a point from local space to world space. This is the functionally the same as calling [Transform.localToWorldMatrix](https://docs.unity3d.com/ScriptReference/Transform-localToWorldMatrix.html) on the parent Transform object. diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Log.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Log.md index c45384e2eb2..3bf1294aeac 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Log.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Log.md @@ -1,4 +1,4 @@ -# Log +# Log Operator Menu Path : **Operator > Math > Log** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-LogicAnd.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-LogicAnd.md index 82fd3267bcf..0418244bb6e 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-LogicAnd.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-LogicAnd.md @@ -1,4 +1,4 @@ -# And (Logic) +# And (Logic) Operator Menu Path : **Operator > Logic > And** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-LogicNand.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-LogicNand.md index 6082fa490ed..2631bcb93a7 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-LogicNand.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-LogicNand.md @@ -1,6 +1,6 @@ -# Nand (Logic) +# Nand (Logic) Operator -Menu Path : **Operator > Logic > Nand** +Menu Path : **Operator** > **Logic** > **Nand** The **Nand** Operator takes two inputs and outputs the result of a logical *nand* operation between them. *Nand* is a composite operation that first calculates the *not* of the inputs and then calculates the *and* of the results. The result of A **Nand** B is `true` if both A and B are `false`. This Operator is equivalent to the C# `!` operator followed by the `&&` operator. diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-LogicNor.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-LogicNor.md index f95b1442e94..14af0afd028 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-LogicNor.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-LogicNor.md @@ -1,4 +1,4 @@ -# Nor (Logic) +# Nor (Logic) Operator Menu Path : **Operator > Logic > Nor** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-LogicNot.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-LogicNot.md index 8eebbca06ec..b4214107bae 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-LogicNot.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-LogicNot.md @@ -1,4 +1,4 @@ -# Not (Logic) +# Not (Logic) Operator Menu Path : **Operator > Logic > Not** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-LogicOr.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-LogicOr.md index df3f3c0b468..32adf16f9c4 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-LogicOr.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-LogicOr.md @@ -1,4 +1,4 @@ -# Or (Logic) +# Or (Logic) Operator Menu Path : **Operator > Logic > Or** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-LookAT.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-LookAT.md index cf14ba9c260..9956d7b2c0b 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-LookAT.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-LookAT.md @@ -1,4 +1,4 @@ -# Look At +# Look At Operator Menu Path : **Operator > Math > Vector** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-MainCamera.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-MainCamera.md index 4486a004304..97b1f914fff 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-MainCamera.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-MainCamera.md @@ -1,4 +1,4 @@ -# Main Camera +# Main Camera Operator Menu Path : **Operator > BuiltIn > Main Camera** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Maximum.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Maximum.md index b4bb3fd9859..04e1ccd4209 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Maximum.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Maximum.md @@ -1,4 +1,4 @@ -# Maximum +# Maximum Operator Menu Path : **Operator > Math > Clamp > Maximum** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-MeshIndexCount.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-MeshIndexCount.md index 030207966f3..a0bc1c5f611 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-MeshIndexCount.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-MeshIndexCount.md @@ -1,4 +1,4 @@ -# Get Mesh Index Count +# Get Mesh Index Count Operator Menu Path: **Operator > Sampling > Get Mesh Index Count** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-MeshTriangleCount.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-MeshTriangleCount.md index b02017042b5..e98b46136e3 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-MeshTriangleCount.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-MeshTriangleCount.md @@ -1,4 +1,4 @@ -# Get Mesh Triangle Count +# Get Mesh Triangle Count Operator Menu Path: **Operator > Sampling > Get Mesh Triangle Count** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-MeshVertexCount.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-MeshVertexCount.md index d6075cefed6..80b3cc6610b 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-MeshVertexCount.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-MeshVertexCount.md @@ -1,4 +1,4 @@ -# Get Mesh Vertex Count +# Get Mesh Vertex Count Operator Menu Path: **Operator > Sampling > Get Mesh Vertex Count** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Minimum.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Minimum.md index dd23f04d91c..27102edbd00 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Minimum.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Minimum.md @@ -1,4 +1,4 @@ -# Minimum +# Minimum Operator Menu Path : **Operator > Math > Clamp > Minimum** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Modulo.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Modulo.md index 9129bb26194..32356e241c2 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Modulo.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Modulo.md @@ -1,4 +1,4 @@ -# Modulo +# Modulo Operator Menu Path : **Operator > Math > Arithmetic > Modulo** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Multiply.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Multiply.md index 5ab8c41e0d7..91ae460773e 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Multiply.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Multiply.md @@ -1,4 +1,4 @@ -# Multiply +# Multiply Operator Menu Path : **Operator > Math > Arithmetic > Multiply** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Negate.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Negate.md index 56b6b93b1cf..e906f912685 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Negate.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Negate.md @@ -1,6 +1,6 @@ -# Negate (-x) +# Negate (-x) Operator -Menu Path : **Operator > Math > Arithmetic > Negate (-x)** +Menu Path : **Operator** > **Math** > **Arithmetic** > **Negate (-x)** The **Negate** Operator multiplies the input value by -1. For example, an input of - (3, 4, -5) outputs (-3, -4, 5). diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Normalize.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Normalize.md index a5a240d40ed..056f9b89588 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Normalize.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Normalize.md @@ -1,4 +1,4 @@ -# Normalize +# Normalize Operator Menu Path : **Operator > Math > Vector** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-OneMinus.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-OneMinus.md index bba396ece61..b7f25a6a2c2 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-OneMinus.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-OneMinus.md @@ -1,6 +1,6 @@ -# One Minus (1-x) +# One Minus (1-x) Operator -Menu Path : **Operator > Math > Arithmetic > One Minus (1-x)** +Menu Path : **Operator** > **Math** > **Arithmetic** > **One Minus (1-x)** The **One Minus** Operator calculates **1** minus the input value. For example, an input of 0.2 outputs 0.8 and an input of (0.3, 0.4, -5) outputs (0.7, 0.6, 6). diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-PerlinCurlNoise.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-PerlinCurlNoise.md index 41840f8b97f..5bbbad415c5 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-PerlinCurlNoise.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-PerlinCurlNoise.md @@ -1,4 +1,4 @@ -# Perlin Curl Noise +# Perlin Curl Noise Operator Menu Path : **Operator > Noise > Perlin Curl Noise** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-PerlinNoise.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-PerlinNoise.md index 483507ad93f..2cfcd191cc1 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-PerlinNoise.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-PerlinNoise.md @@ -1,4 +1,4 @@ -# Perlin Noise +# Perlin Noise Operator Menu Path : **Operator > Noise > Perlin Noise** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Pi.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Pi.md index b4811f2aa9a..b31a1071964 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Pi.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Pi.md @@ -1,6 +1,6 @@ -# Pi (π) +# Pi (π) Operator -Menu Path : **Operator > Math > Constants > Pi (π)** +Menu Path : **Operator** > **Math** > **Constants** > **Pi (π)** The **Pi (π)** Operator returns the number Pi (π). This is the ratio of the circumference of a circle to its diameter. diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-PointCache.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-PointCache.md index 847cbdc38c1..b21312447cb 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-PointCache.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-PointCache.md @@ -1,9 +1,9 @@ -# Point Cache +# Point Cache Operator > [!IMPORTANT] > This feature is experimental. To use this feature, open the **Preferences** window, go to the **Visual Effects** tab, and enable **Experimental Operators/Blocks**. -Menu Path : **Operator > Utility > Point Cache** +Menu Path : **Operator** > **Utility** > **Point Cache** The **Point Cache** Operator exposes the attribute maps and the point count stored into a [Point Cache asset](point-cache-asset.md). diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-PolarToRectangular.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-PolarToRectangular.md index 960412c2e9f..d8042295f8e 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-PolarToRectangular.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-PolarToRectangular.md @@ -1,4 +1,4 @@ -# Polar to Rectangular +# Polar to Rectangular Operator Menu Path : **Operator > Math > Coordinates** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Position(Depth).md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Position(Depth).md index 6b5adec5237..ad17129d46e 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Position(Depth).md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Position(Depth).md @@ -1,6 +1,6 @@ -# Position (Depth) +# Position (Depth) Operator -Menu Path : **Operator > Sampling > Position (Depth)** +Menu Path : **Operator** > **Sampling** > **Position (Depth)** The **Position (Depth)** Operator samples the depth-buffer of a Camera and retrieves the position in world space. You can use this depth information to project particles into the scene. diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Power.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Power.md index 2feca8b3237..8ec0689c6e9 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Power.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Power.md @@ -1,4 +1,4 @@ -# Power +# Power Operator Menu Path : **Operator > Math > Arithmetic > Power** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-RGBToHSV.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-RGBToHSV.md index fb41b38c9a6..44ba2902904 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-RGBToHSV.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-RGBToHSV.md @@ -1,6 +1,6 @@ -# RGB to HSV +# RGB to HSV Operator -Menu Path : **Operator > Color > RGB to HSV** +Menu Path : **Operator** > **Color** > **RGB to HSV** This Operator converts RGB (Red, Green, Blue) color values to HSV (Hue, Saturation, Value) color values. diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-RandomNumber.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-RandomNumber.md index 97c47089d36..de92c8635e9 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-RandomNumber.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-RandomNumber.md @@ -1,4 +1,4 @@ -# Random Number +# Random Number Operator Menu Path : **Operator > Random > Random Number** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-RandomSelectorWeighted.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-RandomSelectorWeighted.md index 1045b0f1168..1cc785eafc4 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-RandomSelectorWeighted.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-RandomSelectorWeighted.md @@ -1,8 +1,8 @@ -# Random Selector Weighted +# Random Selector Weighted Operator -Menu Path : **Operator > Logic > Random Selector Weighted** +Menu Path : **Operator** > **Logic** > **Random Selector Weighted** The **Random Selector Weighted** Operator performs a kind of switch/case operation where a weight controls the probability of selecting a case. If all weights are equal, this Operator produces a uniform distribution of the different output values. diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Reciprocal.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Reciprocal.md index d6871dcf7d1..3840a575227 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Reciprocal.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Reciprocal.md @@ -1,6 +1,6 @@ -# Reciprocal (1/x) +# Reciprocal (1/x) Operator -Menu Path : **Operator > Math > Arithmetic > Reciprocal (1/x)** +Menu Path : **Operator** > **Math** > **Arithmetic** > **Reciprocal (1/x)** The **Reciprocal** Operator calculates the result of dividing 1 by the input value. For example, an input of (0.2, 2, -5) outputs (5, 0.5, -0.2). diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-RectangularToPolar.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-RectangularToPolar.md index 2334cf364b1..a9a5851c4ae 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-RectangularToPolar.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-RectangularToPolar.md @@ -1,4 +1,4 @@ -# Rectangular to Polar +# Rectangular to Polar Operator Menu Path : **Operator > Math > Coordinates** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-RectangularToSpherical.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-RectangularToSpherical.md index 21952f024ac..a01bf86b07b 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-RectangularToSpherical.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-RectangularToSpherical.md @@ -1,4 +1,4 @@ -# Rectangular to Spherical +# Rectangular to Spherical Operator Menu Path : **Operator > Math > Coordinates** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Remap(-11).md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Remap(-11).md index 27a28eeca3d..fec7b9b865b 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Remap(-11).md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Remap(-11).md @@ -1,6 +1,6 @@ -# Remap [0..1] => [-1..1] +# Remap [0..1] => [-1..1] Operator -Menu Path : **Operator > Math > Remap > Remap** +Menu Path : **Operator** > **Math** > **Remap** > **Remap** The **Remap [0..1] => [-1..1]** Operator linearly remaps input values from the [0..1] range to the [-1..1] range. This is equivalent to the operation (x * 2) - 1. For example, an input of 0 calculates (0 * 2) -1, and outputs -1. diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Remap(01).md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Remap(01).md index c2d9ea97436..b7f2168243d 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Remap(01).md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Remap(01).md @@ -1,6 +1,6 @@ -# Remap [-1..1] => [0..1] +# Remap [-1..1] => [0..1] Operator -Menu Path : **Operator > Math > Remap > Remap** +Menu Path : **Operator** > **Math** > **Remap** > **Remap** The **Remap [-1..1] => [0..1]** Operator linearly remaps input values from the range -1 to 1 to the range 0 to 1. This is equivalent to the operation (x * 0.5) + 0.5. For example, an input of -1 calculates (-1 * 0.5) + 0.5, and outputs 0. diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Remap.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Remap.md index bfda3f7aa32..6a685df6404 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Remap.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Remap.md @@ -1,6 +1,6 @@ -# Remap (Remap) +# Remap (Remap) Operator -Menu Path : **Operator > Math > Remap > Remap** +Menu Path : **Operator** > **Math** > **Remap** > **Remap** The **Remap** Operator linearly remaps input values from an old range to a new range, with an optional clamp. diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Rotate2D.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Rotate2D.md index 535e489a753..0b1537fb827 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Rotate2D.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Rotate2D.md @@ -1,4 +1,4 @@ -# Rotate 2D +# Rotate 2D Operator Menu Path : **Operator > Math > Vector** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Rotate3D.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Rotate3D.md index 39a2189ec9a..7217ef25db5 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Rotate3D.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Rotate3D.md @@ -1,4 +1,4 @@ -# Rotate 3D +# Rotate 3D Operator Menu Path : **Operator > Math > Vector** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Round.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Round.md index c3aea0afedd..35a4258f120 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Round.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Round.md @@ -1,4 +1,4 @@ -# Round +# Round Operator Menu Path : **Operator > Math > Clamp > Round** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SampleAttributeMap.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SampleAttributeMap.md index 042732d0458..6ff00380e50 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SampleAttributeMap.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SampleAttributeMap.md @@ -1,4 +1,4 @@ -# Sample Attribute Map +# Sample Attribute Map Operator > [!IMPORTANT] > This feature is experimental. To use this feature, open the **Preferences** window, go to the **Visual Effects** tab, and enable **Experimental Operators/Blocks**. diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SampleBezier.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SampleBezier.md index 97a5a84e3e8..22dbe4af010 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SampleBezier.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SampleBezier.md @@ -1,4 +1,4 @@ -# Sample Bezier +# Sample Bezier Operator Menu Path : **Operator > Math > Vector** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SampleBuffer.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SampleBuffer.md index 6a9a7a3e883..9898ff1291b 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SampleBuffer.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SampleBuffer.md @@ -1,8 +1,6 @@ +# Sample Graphics Buffer Operator - -# Sample Graphics Buffer - -**Menu Path : Operator > Sampling > Sample Graphics Buffer** +Menu Path : **Operator** > **Sampling** > **Sample Graphics Buffer** The Sample Graphics Buffer Operator enables you to fetch and sample a structured buffer. A structured buffer is a [GraphicsBuffer](https://docs.unity3d.com/ScriptReference/GraphicsBuffer.html) created using the [Structured](https://docs.unity3d.com/ScriptReference/GraphicsBuffer.Target.Structured.html) target. diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SampleCameraBuffer.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SampleCameraBuffer.md index 1e6824dd141..2a119e34c86 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SampleCameraBuffer.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SampleCameraBuffer.md @@ -1,4 +1,4 @@ -# Sample CameraBuffer +# Sample CameraBuffer Operator Menu Path : **Operator > Sampling > Sample CameraBuffer** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SampleCurve.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SampleCurve.md index aa75ce4f4b2..a6865a56677 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SampleCurve.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SampleCurve.md @@ -1,4 +1,4 @@ -# Sample Curve +# Sample Curve Operator Menu Path : **Operator > Sampling > Sample Curve** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SampleGradient.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SampleGradient.md index fa2288b7db9..d79cad66585 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SampleGradient.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SampleGradient.md @@ -1,4 +1,4 @@ -# Sample Gradient +# Sample Gradient Operator Menu Path : **Operator > Sampling > Sample Gradient** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SampleMesh.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SampleMesh.md index 79bb975a68b..c42cce5ab96 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SampleMesh.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SampleMesh.md @@ -1,4 +1,4 @@ -# Sample Mesh +# Sample Mesh Operator Menu Path: **Operator > Sampling > Sample Mesh** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SampleMeshIndex.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SampleMeshIndex.md index 534c44d7da2..0352cf22752 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SampleMeshIndex.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SampleMeshIndex.md @@ -1,10 +1,10 @@
Experimental: This Feature is currently experimental and is subject to change in later major versions.
-# Sample Mesh Index +# Sample Mesh Index Operator -**Menu Path : Operator > Sampling > Sample Mesh Index** +Menu Path : **Operator** > **Sampling** > **Sample Mesh Index** -**Menu Path : Operator > Sampling > Sample Skinned Mesh Renderer Index** +Menu Path : **Operator** > **Sampling** > **Sample Skinned Mesh Renderer Index** The Sample Mesh or Skinned Mesh Renderer Index Operator allows you to fetch index buffer data of geometry. Both [UInt16](https://docs.unity3d.com/ScriptReference/ModelImporterIndexFormat.UInt16.html) and [UInt32](https://docs.unity3d.com/ScriptReference/ModelImporterIndexFormat.UInt32.html) format are supported the output of this operator is always an UInt. diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SampleSDF.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SampleSDF.md index a11ac3fd82f..1105608119f 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SampleSDF.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SampleSDF.md @@ -1,4 +1,4 @@ -# Sample Signed Distance Field +# Sample Signed Distance Field Operator **Menu Path : Operator > Sampling > Sample Signed Distance Field** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SampleSkinnedMesh.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SampleSkinnedMesh.md index ae01fd3aec0..abbd18417cf 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SampleSkinnedMesh.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SampleSkinnedMesh.md @@ -1,4 +1,4 @@ -# Sample Skinned Mesh +# Sample Skinned Mesh Operator Menu Path: **Operator > Sampling > Sample Skinned Mesh** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SampleTexture2D.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SampleTexture2D.md index e6db99c613c..356a14faa37 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SampleTexture2D.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SampleTexture2D.md @@ -1,4 +1,4 @@ -# Sample Texture2D +# Sample Texture2D Operator Menu Path : **Operator > Sampling > Sample Texture2D** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SampleTexture2DArray.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SampleTexture2DArray.md index 789d57f3918..f947a5adec6 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SampleTexture2DArray.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SampleTexture2DArray.md @@ -1,4 +1,4 @@ -# Sample Texture2DArray +# Sample Texture2DArray Operator Menu Path : **Operator > Sampling > Sample Texture2DArray** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SampleTexture3D.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SampleTexture3D.md index 401e957e813..6301de89ebc 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SampleTexture3D.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SampleTexture3D.md @@ -1,4 +1,4 @@ -# Sample Texture3D +# Sample Texture3D Operator Menu Path : **Operator > Sampling > Sample Texture3D** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SampleTextureCube.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SampleTextureCube.md index c1050680445..6f7cf275573 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SampleTextureCube.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SampleTextureCube.md @@ -1,4 +1,4 @@ -# Sample TextureCube +# Sample TextureCube Operator Menu Path : **Operator > Sampling > Sample TextureCube** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SampleTextureCubeArray.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SampleTextureCubeArray.md index 4af6ede8831..8ae914112eb 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SampleTextureCubeArray.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SampleTextureCubeArray.md @@ -1,4 +1,4 @@ -# Sample TextureCubeArray +# Sample TextureCubeArray Operator Menu Path : **Operator > Sampling > Sample TextureCubeArray** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Saturate.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Saturate.md index 6c2bc225421..293724bee85 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Saturate.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Saturate.md @@ -1,4 +1,4 @@ -# Saturate +# Saturate Operator Menu Path : **Operator > Math > Clamp > Saturate** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SawtoothWave.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SawtoothWave.md index f7756aa94f5..3804550a784 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SawtoothWave.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SawtoothWave.md @@ -1,4 +1,4 @@ -# Sawtooth Wave +# Sawtooth Wave Operator Menu Path : **Operator > Math > Wave > Sawtooth Wave** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Sign.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Sign.md index e22db615b6f..bb03fcf7a1f 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Sign.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Sign.md @@ -1,4 +1,4 @@ -# Sign +# Sign Operator Menu Path : **Operator > Math > Arithmetic > Sign** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Sine.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Sine.md index 54b9aebdddc..c6dd6af0f4f 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Sine.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Sine.md @@ -1,4 +1,4 @@ -# Sine +# Sine Operator Menu Path : **Operator > Math > Trigonometry > Sine** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SineWave.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SineWave.md index 32f68063afd..25cb2b797bc 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SineWave.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SineWave.md @@ -1,4 +1,4 @@ -# Sine Wave +# Sine Wave Operator Menu Path : **Operator > Math > Wave > Sine Wave** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SkinnedLocalTransform.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SkinnedLocalTransform.md index dda6ff9e17a..c613357c625 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SkinnedLocalTransform.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SkinnedLocalTransform.md @@ -1,4 +1,4 @@ -# Get Skinned Mesh Local Root Transform +# Get Skinned Mesh Local Root Transform Operator Menu Path: **Operator > Sampling > Get Skinned Mesh Local Root Transform** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SkinnedMeshIndexCount.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SkinnedMeshIndexCount.md index a296d9b8509..7c1d90e9925 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SkinnedMeshIndexCount.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SkinnedMeshIndexCount.md @@ -1,4 +1,4 @@ -# Get Skinned Mesh Index Count +# Get Skinned Mesh Index Count Operator Menu Path: **Operator > Sampling > Get Skinned Mesh Index Count** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SkinnedMeshTriangleCount.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SkinnedMeshTriangleCount.md index f440c909cd9..81a72d6b7d6 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SkinnedMeshTriangleCount.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SkinnedMeshTriangleCount.md @@ -1,4 +1,4 @@ -# Get Skinned Mesh Triangle Count +# Get Skinned Mesh Triangle Count Operator Menu Path: **Operator > Sampling > Get Mesh Triangle Count** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SkinnedMeshVertexCount.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SkinnedMeshVertexCount.md index aab1a4a8a50..157286132b6 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SkinnedMeshVertexCount.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SkinnedMeshVertexCount.md @@ -1,4 +1,4 @@ -# Get Skinned Mesh Vertex Count +# Get Skinned Mesh Vertex Count Operator Menu Path: **Operator > Sampling > Get Skinned Mesh Vertex Count** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SkinnedWorldTransform.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SkinnedWorldTransform.md index 7f30827e342..8a32d36bed6 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SkinnedWorldTransform.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SkinnedWorldTransform.md @@ -1,4 +1,4 @@ -# Get Skinned Mesh World Root Transform +# Get Skinned Mesh World Root Transform Operator Menu Path: **Operator > Sampling > Get Skinned Mesh World Root Transform** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Smoothstep.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Smoothstep.md index e39a3b5848c..c4d7bc7d129 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Smoothstep.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Smoothstep.md @@ -1,4 +1,4 @@ -# Smoothstep +# Smoothstep Operator Menu Path : **Operator > Math > Arithmetic > Smoothstep** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SpawnState.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SpawnState.md index 4a648ccd60e..0f966ab72e7 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SpawnState.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SpawnState.md @@ -1,6 +1,6 @@ -# Spawn State +# Spawn State Operator -Menu Path : **Operator > Spawn > Spawn Context State** +Menu Path : **Operator** > **Spawn** > **Spawn Context State** The **Spawn State** Operator contains information about the [state](https://docs.unity3d.com/ScriptReference/VFX.VFXSpawnerState.html) of a [Spawn](Context-Spawn.md) system. It contains information such as: the number of particles spawned in the current frame, the duration of the spawn loop, and the current delta time. diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SphericalToRectangular.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SphericalToRectangular.md index 0e71ab0a364..12a7fd85ac1 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SphericalToRectangular.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SphericalToRectangular.md @@ -1,4 +1,4 @@ -# Spherical to Rectangular +# Spherical to Rectangular Operator Menu Path : **Operator > Math> Coordinates** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SquareRoot.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SquareRoot.md index 6839c36ee64..a734a7ca471 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SquareRoot.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SquareRoot.md @@ -1,4 +1,4 @@ -# Square Root +# Square Root Operator Menu Path : **Operator > Math > Arithmetic > Square Root** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SquareWave.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SquareWave.md index 7246570961f..9ca7a6aaf2c 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SquareWave.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SquareWave.md @@ -1,4 +1,4 @@ -# Square Wave +# Square Wave Operator Menu Path : **Operator > Math > Wave > Square Wave** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SquaredDistance.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SquaredDistance.md index 2ac36d0e189..fcd5c461157 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SquaredDistance.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SquaredDistance.md @@ -1,4 +1,4 @@ -# Squared Distance +# Squared Distance Operator Menu Path : **Operator > Math > Vector** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SquaredLength.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SquaredLength.md index 7d122b92fc2..4dc6c84b0c2 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SquaredLength.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SquaredLength.md @@ -1,4 +1,4 @@ -# Squared Length +# Squared Length Operator Menu Path : **Operator > Math > Vector** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Step.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Step.md index 1030f9d8f1d..f45eebd447e 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Step.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Step.md @@ -1,4 +1,4 @@ -# Step +# Step Operator Menu Path : **Operator > Math > Arithmetic > Step** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Subtract.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Subtract.md index af3f8328309..6acf78a0320 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Subtract.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Subtract.md @@ -1,4 +1,4 @@ -# Subtract +# Subtract Operator Menu Path : **Operator > Math > Arithmetic > Subtract** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Switch.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Switch.md index 4a2e8352e80..a8ec4378989 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Switch.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Switch.md @@ -1,4 +1,4 @@ -# Switch +# Switch Operator Menu Path : **Operator > Logic > Switch** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Swizzle.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Swizzle.md index a92b8ca8b41..de685e76018 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Swizzle.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Swizzle.md @@ -1,4 +1,4 @@ -# Swizzle +# Swizzle Operator Menu Path : **Operator > Math > Vector** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SystemSeed.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SystemSeed.md index 88f779f1882..cf742484c9e 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SystemSeed.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SystemSeed.md @@ -1,4 +1,4 @@ -# System Seed +# System Seed Operator Menu Path : **Operator > BuiltIn > System Seed** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Tangent.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Tangent.md index 9dd2f3efef9..37af393e2b4 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Tangent.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Tangent.md @@ -1,4 +1,4 @@ -# Tangent +# Tangent Operator Menu Path : **Operator > Math > Trigonometry > Tangent** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-TotalTime.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-TotalTime.md index 6c736165e61..ab7f997885e 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-TotalTime.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-TotalTime.md @@ -1,4 +1,4 @@ -# Total Time +# Total Time Operator Menu Path : **Operator > BuiltIn > Total Time** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Transform(Direction).md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Transform(Direction).md index 8796e333c17..a6837de47d4 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Transform(Direction).md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Transform(Direction).md @@ -1,6 +1,6 @@ -# Transform (Direction) +# Transform (Direction) Operator -Menu Path : **Operator > Math > Geometry > Transform (Direction)** +Menu Path : **Operator** > **Math** > **Geometry** > **Transform (Direction)** The **Transform (Direction)** Operator applies a transformation to a Direction to position, rotate, or scale it. diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Transform(Matrix).md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Transform(Matrix).md index ccc46c4f71a..bce8372e4ce 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Transform(Matrix).md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Transform(Matrix).md @@ -1,6 +1,6 @@ -# Transform (Matrix) +# Transform (Matrix) Operator -Menu Path : **Operator > Math > Geometry > Transform (Matrix)** +Menu Path : **Operator** > **Math** > **Geometry** > **Transform (Matrix)** The **Transform (Matrix)** Operator applies a transformation to a Matrix to modify its position, rotation, or scale. diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Transform(Position).md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Transform(Position).md index da48ffd4d21..9be272741dc 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Transform(Position).md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Transform(Position).md @@ -1,6 +1,6 @@ -# Transform (Position) +# Transform (Position) Operator -Menu Path : **Operator > Math > Geometry > Transform (Position)** +Menu Path : **Operator** > **Math** > **Geometry** > **Transform (Position)** The **Transform (Position)** Operator applies a transformation to a position to offset, rotate, or scale it. diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Transform(Vector).md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Transform(Vector).md index c3c9960cd13..f13512e188f 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Transform(Vector).md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Transform(Vector).md @@ -1,6 +1,6 @@ -# Transform (Vector) +# Transform (Vector) Operator -Menu Path : **Operator > Math > Geometry > Transform (Vector)** +Menu Path : **Operator** > **Math** > **Geometry** > **Transform (Vector)** The **Transform (Vector)** Operator applies a transformation to a Vector to offset, rotate, or scale it. diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Transform(Vector4).md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Transform(Vector4).md index 62fdbdfc065..56182c2ff4a 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Transform(Vector4).md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Transform(Vector4).md @@ -1,6 +1,6 @@ -# Transform (Vector4) +# Transform (Vector4) Operator -Menu Path : **Operator > Math > Geometry > Transform (Vector4)** +Menu Path : **Operator** > **Math** > **Geometry** > **Transform (Vector4)** The **Transform (Vector4)** Operator applies a transformation to a Vector4. diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Transpose(Matrix).md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Transpose(Matrix).md index de78875581c..0f8d0c0b24b 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Transpose(Matrix).md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Transpose(Matrix).md @@ -1,6 +1,6 @@ -# Transpose (Matrix) +# Transpose (Matrix) Operator -Menu Path : **Operator > Math > Geometry > Transpose (Matrix)** +Menu Path : **Operator** > **Math** > **Geometry** > **Transpose (Matrix)** The **Transpose (Matrix)** Operator flips a matrix across its diagonal, swapping the matrix’s column values and its row values. This is the same operation as [Matrix4x4.transpose](https://docs.unity3d.com/ScriptReference/Matrix4x4-transpose.html). diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-TriangleWave.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-TriangleWave.md index 0c628988526..6889dc992a7 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-TriangleWave.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-TriangleWave.md @@ -1,4 +1,4 @@ -# Triangle Wave +# Triangle Wave Operator Menu Path : **Operator > Math > Wave > Triangle Wave** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-ValueCurlNoise.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-ValueCurlNoise.md index 680d250a96f..9f4708ba678 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-ValueCurlNoise.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-ValueCurlNoise.md @@ -1,4 +1,4 @@ -# Value Curl Noise +# Value Curl Noise Operator Menu Path : **Operator > Noise > Value Curl Noise** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-ValueNoise.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-ValueNoise.md index eb44c562d0a..67dca496850 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-ValueNoise.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-ValueNoise.md @@ -1,4 +1,4 @@ -# Value Noise +# Value Noise Operator Menu Path : **Operator > Noise > Value Noise** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-ViewportToWorldPoint.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-ViewportToWorldPoint.md index e1bf704d072..5295e9899b4 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-ViewportToWorldPoint.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-ViewportToWorldPoint.md @@ -1,6 +1,6 @@ -# Viewport To World Point +# Viewport To World Point Operator -Menu Path : **Operator > Camera > Viewport To World Point** +Menu Path : **Operator** > **Camera** > **Viewport To World Point** The **Viewport To World Point** Operator transforms a position from viewport space to world space. The input viewport space is normalized and relative to the camera. The bottom-left of the camera is (0,0) and the top-right is (1,1). The z position is in world units from the camera. diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Volume(AxisAlignedBox).md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Volume(AxisAlignedBox).md index cda58491678..e9f7c8df138 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Volume(AxisAlignedBox).md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Volume(AxisAlignedBox).md @@ -1,6 +1,6 @@ -# Volume (Axis Aligned Box) +# Volume (Axis Aligned Box) Operator -Menu Path : **Operator > Math > Geometry > Volume (Axis Aligned Box)** +Menu Path : **Operator** > **Math** > **Geometry** > **Volume (Axis Aligned Box)** The **Volume (Axis Aligned Box)** Operator calculates the volume of an axis-aligned box. This is equal to **x y z** where **x** is the width, **y** is the height, and **z** is the length of the box. diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Volume(Cone).md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Volume(Cone).md index f50f5445330..50bf3867f15 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Volume(Cone).md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Volume(Cone).md @@ -1,6 +1,6 @@ -# Volume (Cone) +# Volume (Cone) Operator -Menu Path : **Operator > Math > Geometry > Volume (Cone)** +Menu Path : **Operator** > **Math** > **Geometry** > **Volume (Cone)** The **Volume (Cone)** Operator calculates the volume of a cone. This is equal to **1/3 π h(R2 + R r + r2)** where **h** is the height of the cone, **R** is the radius of the base, and **r** is the radius of the cap. diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Volume(Cylinder).md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Volume(Cylinder).md index 05766e5f972..dc168920d02 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Volume(Cylinder).md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Volume(Cylinder).md @@ -1,6 +1,6 @@ -# Volume (Cylinder) +# Volume (Cylinder) Operator -Menu Path : **Operator > Math > Geometry > Volume (Cylinder)** +Menu Path : **Operator** > **Math** > **Geometry** > **Volume (Cylinder)** The **Volume (Cylinder)** Operator calculates the volume of a cylinder. This is equal to **π r2 h** where **r** is the radius and **h** is the height of the cylinder. diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Volume(OrientedBox).md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Volume(OrientedBox).md index 99773a08f40..af788031db2 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Volume(OrientedBox).md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Volume(OrientedBox).md @@ -1,6 +1,6 @@ -# Volume (Oriented Box) +# Volume (Oriented Box) Operator -Menu Path : **Operator > Math > Geometry > Volume (Oriented Box)** +Menu Path : **Operator** > **Math** > **Geometry** > **Volume (Oriented Box)** The **Volume (Oriented Box)** Operator calculates the volume of an oriented box. This is equal to **x y z** where **x** is the width, **y** is the height, and **z** is the length of the box. diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Volume(Sphere).md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Volume(Sphere).md index 33c81721a2e..5652d1636a9 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Volume(Sphere).md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Volume(Sphere).md @@ -1,6 +1,6 @@ -# Volume (Sphere) +# Volume (Sphere) Operator -Menu Path : **Operator > Math > Geometry > Volume (Sphere)** +Menu Path : **Operator** > **Math** > **Geometry** > **Volume (Sphere)** The **Volume (Sphere)** Operator calculates the volume of a sphere. This is equal to **4/3 π r2 h**. diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Volume(Torus).md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Volume(Torus).md index 199952b26d9..d91ffd61643 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Volume(Torus).md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Volume(Torus).md @@ -1,6 +1,6 @@ -# Volume (Torus) +# Volume (Torus) Operator -Menu Path : **Operator > Math > Geometry > Volume (Torus)** +Menu Path : **Operator** > **Math** > **Geometry** > **Volume (Torus)** The **Volume (Torus)** Operator calculates the volume of a torus. This is equal to **2 π2 R r2** where **R** is the major radius and **r** is the minor radius. diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-WorldToLocal.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-WorldToLocal.md index 557543979e9..147810c2cf7 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-WorldToLocal.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-WorldToLocal.md @@ -1,4 +1,4 @@ -# World To Local +# World to Local Operator Menu Path : **Operator > BuiltIn > World To Local** diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-WorldToViewportPoint.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-WorldToViewportPoint.md index 5d6a7ad9a0b..703a3793f4e 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-WorldToViewportPoint.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-WorldToViewportPoint.md @@ -1,6 +1,6 @@ -# World To Viewport Point +# World To Viewport Point Operator -Menu Path : **Operator > Camera > World To Viewport Point** +Menu Path : **Operator** > **Camera** > **World To Viewport Point** The **World To Viewport Point** Operator transforms a position into viewport space. The output viewport space is normalized and relative to the camera. The bottom-left of the camera is (0,0) and the top-right is (1,1). The z position is in world units from the camera. diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator.md index 47ad734c6bc..f7f41482171 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator.md @@ -12,7 +12,7 @@ Calculate, convert, and manipulate data for particles and effects. | [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. | +| [Math Operators](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. | diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/OperatorAttribute.md b/Packages/com.unity.visualeffectgraph/Documentation~/OperatorAttribute.md index 44325d6053e..6329868a883 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/OperatorAttribute.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/OperatorAttribute.md @@ -4,35 +4,35 @@ 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. | +| [Age Over Lifetime Operator](Operator-AgeOverLifetime.md) | Get the age of a particle relative to its lifetime. | +| [Get Attribute: age Operator](Operator-GetAttributeAge.md) | Get the time since a particle spawned. | +| [Get Attribute: alive Operator](Operator-GetAttributeAlive.md) | Get whether a particle is alive or not. | +| [Get Attribute: alpha Operator](Operator-GetAttributeAlpha.md) | Get the alpha value of a rendered particle. | +| [Get Attribute: angle Operator](Operator-GetAttributeAngle.md) | Get the rotation of a particle. | +| [Get Attribute: angularVelocity Operator](Operator-GetAttributeAngularVelocity.md) | Get the rotation speed of a particle. | +| [Get Attribute: axisX Operator](Operator-GetAttributeAxisX.md) | Get the x-axis of a particle. | +| [Get Attribute: axisY Operator](Operator-GetAttributeAxisY.md) | Get the y-axis of a particle. | +| [Get Attribute: axisZ Operator](Operator-GetAttributeAxisZ.md) | Get the z-axis of a particle. | +| [Get Attribute: color Operator](Operator-GetAttributeColor.md) | Get the color of a particle. | +| [Get Attribute: direction Operator](Operator-GetAttributeDirection.md) | Get the direction of a particle. | +| [Get Attribute: lifetime Operator](Operator-GetAttributeLifetime.md) | Get the amount of time a particle should live for. | +| [Get Attribute: mass Operator](Operator-GetAttributeMass.md) | Get the mass of a particle. | +| [Get Attribute: oldPosition Operator](Operator-GetAttributeOldPosition.md) | Get the position of a particle before velocity is added. | +| [Get Attribute: particleCountInStrip Operator](Operator-GetAttributeParticleCountInStrip.md) | Get the number of particles in a particle strip. | +| [Get Attribute: particleId Operator](Operator-GetAttributeParticleID.md) | Get a unique ID that identifies a particle. | +| [Get Attribute: particleIndexInStrip Operator](Operator-GetAttributeParticleIndexInStrip.md) | Get the index of a particle in its particle strip. | +| [Get Attribute: pivot Operator](Operator-GetAttributePivot.md) | Get the origin coordinates of a particle. | +| [Get Attribute: position Operator](Operator-GetAttributePosition.md) | Get the position of a particle. | +| [Get Attribute: scale Operator](Operator-GetAttributeScale.md) | Get the scale of the particle. | +| [Get Attribute: seed Operator](Operator-GetAttributeSeed.md) | Get the random number value of a particle. | +| [Get Attribute: size Operator](Operator-GetAttributeSize.md) | Get the size of a particle. | +| [Get Attribute: spawnIndex Operator](Operator-GetAttributeSpawnIndex.md) | Get the index of a particle when it spawned. | +| [Get Attribute: spawnTime Operator](Operator-GetAttributeSpawnTime.md) | Get the time that the particle spawned. | +| [Get Attribute: stripIndex Operator](Operator-GetAttributeStripIndex.md) | Get the index of the particle strip a particle belongs to. | +| [Get Attribute: targetPosition Operator](Operator-GetAttributeTargetPosition.md) | Get the target coordinates of a particle. | +| [Get Attribute: texIndex Operator](Operator-GetAttributeTexIndex.md) | Get the frame number from a flipbook texture a particle uses. | +| [Get Attribute: velocity Operator](Operator-GetAttributeVelocity.md) | Get the current velocity of a particle. | +| [Get Custom Attribute Operator](Operator-GetCustomAttribute.md) | Get the value of a custom attribute. | ## Additional resources diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Orientation.md b/Packages/com.unity.visualeffectgraph/Documentation~/Orientation.md index d081a1a655e..658bc524881 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Orientation.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Orientation.md @@ -4,8 +4,8 @@ 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. | +| [Connect Target Block](Block-ConnectTarget.md) | Scale and rotate particles so they connect to a specified target position. | +| [Orient: Face [Mode] Block](Block-Orient.md) | Rotate particles so they face a particular direction. | ## Additional resources diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Output.md b/Packages/com.unity.visualeffectgraph/Documentation~/Output.md index cd64badda74..03a5b11695c 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Output.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Output.md @@ -4,8 +4,8 @@ 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. | +| [Camera Fade Block](Block-CameraFade.md) | Fade out particles when they're too close to the near plane of the camera. | +| [Subpixel Anti-Aliasing Block](Block-SubpixelAntiAliasing.md) | Enlarge particles to ensure they cover at least one pixel on-screen. | ## Additional resources diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Random.md b/Packages/com.unity.visualeffectgraph/Documentation~/Random.md index a7cce18e13a..8fa8e5f382a 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Random.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Random.md @@ -4,8 +4,8 @@ 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. | +| [Random Number Operator](Operator-RandomNumber.md) | Generate a pseudo-random number within a specified range. | +| [Random Selector Weighted Operator](Operator-RandomSelectorWeighted.md) | Select an output at random with custom weights. | ## Additional resources diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Reference-Attributes.md b/Packages/com.unity.visualeffectgraph/Documentation~/Reference-Attributes.md index bc43c2fb643..a73acca25d3 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Reference-Attributes.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Reference-Attributes.md @@ -1,4 +1,4 @@ -# Standard Attribute Reference +# Standard Attributes Reference ## Standard Attributes diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Remap.md b/Packages/com.unity.visualeffectgraph/Documentation~/Remap.md index 6627793f678..b7af4866edd 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Remap.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Remap.md @@ -4,6 +4,6 @@ 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 +| [Remap Operator](Operator-Remap.md) | Remap input values from an old range to a new range. | +| [Remap [0..1] => [-1..1] Operator](Operator-Remap(-11).md) | Remap input values from 0 to 1 range, to -1 to 1 range. | +| [Remap [-1..1] => [0..1] Operator](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 index 896dac7b592..82133aab589 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Sampling.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Sampling.md @@ -4,35 +4,35 @@ 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. | +| [Buffer Count Operator](Operator-BufferCount.md) | Get the number of elements in a `GraphicsBuffer`. | +| [Get Mesh Index Count Operator](Operator-MeshIndexCount.md) | Get the number of indices in a mesh. | +| [Get Mesh Triangle Count Operator](Operator-MeshTriangleCount.md) | Get the number of triangles in a mesh. | +| [Get Mesh Vertex Count Operator](Operator-MeshVertexCount.md) | Get the number of vertices in a mesh. | +| [Get Skinned Mesh Index Count Operator](Operator-SkinnedMeshIndexCount.md) | Get the number of indices in a skinned mesh. | +| [Get Skinned Mesh Triangle Count Operator](Operator-SkinnedMeshTriangleCount.md) | Get the number of triangles in a skinned mesh. | +| [Get Skinned Mesh Vertex Count Operator](Operator-SkinnedMeshVertexCount.md) | Get the number of vertices in a skinned mesh. | +| [Get Skinned Mesh Local Root Transform Operator](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](Operator-SkinnedWorldTransform.md) | Get the transform of a root bone in a skinned mesh, relative to the world. | +| [Get Texture Dimensions Operator](Operator-GetTextureDimensions.md) | Get the dimensions of a texture. | +| [Load CameraBuffer Operator](Operator-LoadCameraBuffer.md) | Sample the camera buffer. | +| [Load Texture2D Operator](Operator-LoadTexture2D.md) | Sample a 2D texture. | +| [Load Texture2DArray Operator](Operator-LoadTexture2DArray.md) | Sample a 2D texture array. | +| [Load Texture3D Operator](Operator-LoadTexture3D.md) | Sample a 3D texture. | +| [Position (Depth) Operator](Operator-Position(Depth).md) | Sample the depth buffer of the camera. | +| [Sample Graphics Buffer Operator](Operator-SampleBuffer.md) | Fetch and sample a structured `GraphicsBuffer`. | +| [Sample CameraBuffer Operator](Operator-SampleCameraBuffer.md) | Sample the camera buffer using pixel dimensions and UVs. | +| [Sample Curve Operator](Operator-SampleCurve.md) | Sample a curve. | +| [Sample Gradient Operator](Operator-SampleGradient.md) | Sample a gradient. | +| [Sample Mesh Operator](Operator-SampleMesh.md) | Get the vertex data of a mesh. | +| [Sample Mesh Index Operator](Operator-SampleMeshIndex.md) | Get the index buffer data of geometry. | +| [Sample Skinned Mesh Operator](Operator-SampleSkinnedMesh.md) | Get the vertex data of a skinned mesh. | +| [Sample Signed Distance Field Operator](Operator-SampleSDF.md) | Get the distance field stored in a 3D texture. | +| [Sample Texture2D Operator](Operator-SampleTexture2D.md) | Sample a 2D texture using UV coordinates and mipmap level. | +| [Sample Texture2DArray Operator](Operator-SampleTexture2DArray.md) | Sample a 2D texture array using a slice, UV coordinates, and mipmap level. | +| [Sample Texture3D Operator](Operator-SampleTexture3D.md) | Sample a 3D texture using UV coordinates and mipmap level. | +| [Sample TextureCube Operator](Operator-SampleTextureCube.md) | Sample a cubemap texture using a direction vector and mipmap level. | +| [Sample TextureCubeArray Operator](Operator-SampleTextureCubeArray.md) | Sample a cubemap array using a slice, direction vector, and mipmap level. | +| [Sample Attribute Map Operator](Operator-SampleAttributeMap.md) | Sample an attribute map from a Point Cache. | ## Additional resources diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/SharedOutputSettings.md b/Packages/com.unity.visualeffectgraph/Documentation~/SharedOutputSettings.md index d0b4e59e0f2..dac7fc63ae2 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/SharedOutputSettings.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/SharedOutputSettings.md @@ -1,11 +1,11 @@ -# Shared Output Settings +# Shared Output Settings Context 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. | +|[Global Settings Context](Context-OutputSharedSettings.md)|Explore the settings and property that all outputs share. | +|[Lit Output Settings Context](Context-OutputLitSettings.md)|Explore outputs that receive lighting information, and support texture and material types that relate to lighting. | ## Additional resources diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Spawn.md b/Packages/com.unity.visualeffectgraph/Documentation~/Spawn.md index 4d881dd1710..ba8c91c3736 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Spawn.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Spawn.md @@ -4,15 +4,15 @@ 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. | +| [Constant Spawn Rate Block](Block-ConstantRate.md) | Spawn a specific number of particles per second. | +| [Single Burst Block](Block-Burst.md) | Use the Single/Periodic Burst Block to spawn particles instantly either once, or periodically using a delay. | +| [Periodic Burst Block](Block-Burst.md) | Use the Single/Periodic Burst Block to spawn particles at regular intervals. | +| [Variable Spawn Rate Block](Block-VariableRate.md) | Spawn a variable number of particles per second. | +| [Attribute > Set Spawn Event Block](Block-SetSpawnEvent.md) | Modify the content of attributes stored in the Context event attribute. | +| [Custom Spawn Blocks](CustomSpawn.md) | Explore blocks that let you customize advanced behavior for spawning particles. | ## Additional resources -- [Spawn](Context-Spawn.md) +- [Spawn Context](Context-Spawn.md) - [Spawner Callbacks](SpawnerCallbacks.md) - [Events](Events.md) diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Subgraph.md b/Packages/com.unity.visualeffectgraph/Documentation~/Subgraph.md index e364d88dcf8..474abea0c9e 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Subgraph.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Subgraph.md @@ -1,4 +1,4 @@ -## Subgraph +# Subgraphs A Visual Effect Subgraph is an Asset that contains a part of a Visual Effect Graph that can be used in another Visual Effect Graph or Subgraph. Subgraphs appear as a single Node. diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/TableOfContents.md b/Packages/com.unity.visualeffectgraph/Documentation~/TableOfContents.md index 802734e35e1..e87f77a2617 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/TableOfContents.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/TableOfContents.md @@ -35,14 +35,14 @@ * [Visual Effect Bounds](visual-effect-bounds.md) * [Custom HLSL](CustomHLSL-Common.md) * [Instancing](Instancing.md) -* [The Visual Effect Component](VisualEffectComponent.md) - * [C# Component API](ComponentAPI.md) +* [The Visual Effect Components](VisualEffectComponent.md) + * [Visual Effect component API](ComponentAPI.md) * [Using Visual Effects with Timeline](Timeline.md) * [Property Binders](PropertyBinders.md) * [Event Binders](EventBinders.md) * [Output Event Handlers](OutputEventHandlers.md) * [Shader Graph Integration](ShaderGraphIntegration.md) - * [Shader Graphs in Visual Effects](sg-working-with.md) + * [Shader Graph in Visual Effect](sg-working-with.md) * [Visual Effect Target](sg-target-visual-effect.md) * [Pipeline Tools](PipelineTools.md) * [Representing Complex Shapes](representing-complex-shapes.md) @@ -64,316 +64,315 @@ * [Customize existing six-way lightmap textures](create-effects-with-six-way-lighting.md) * [Six-way smoke lit reference](six-way-lighting-reference.md) * [Node Library](node-library.md) - * [Context](Context.md) - * [Event](Context-Event.md) - * [GPU Event](Context-GPUEvent.md) - * [Initialize Particle](Context-Initialize.md) - * [Output Mesh](Context-OutputMesh.md) - * [Output Distortion](Context-OutputDistortion.md) - * [Output Decal](Context-OutputForwardDecal.md) - * [Output Line](Context-OutputLine.md) - * [Output Particle Mesh](Context-OutputParticleMesh.md) - * [Output Particle HDRP Lit Decal](Context-OutputParticleHDRPLitDecal.md) - * [Output Particle HDRP Volumetric Fog](Context-OutputParticleHDRPVolumetricFog.md) - * [Output Particle URP Lit Decal](Context-OutputParticleURPLitDecal.md) - * [Output Point](Context-OutputPoint.md) - * [Output Primitive](Context-OutputPrimitive.md) - * [Output ShaderGraph Quad](Context-OutputShaderGraphPlanarPrimitive.md) - * [Ouput Particle ShaderGraph Mesh](Context-OutputShaderGraphMesh.md) - * [Output ParticleStrip ShaderGraph Quad](Context-OutputShaderGraphStrip.md) - * [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](Block.md) - * [Attribute](Attribute.md) - * [Curve](Block-SetAttributeFromCurve.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) - * [Kill Shape](Block-KillShape.md) - * [Trigger Shape](Block-TriggerShape.md) - * [Flipbook Player](Block-FlipbookPlayer.md) - * [Force](Force.md) - * [Attractor Shape Signed Distance Field](Block-ConformToSignedDistanceField.md) - * [Attractor Shape Sphere](Block-ConformToSphere.md) - * [Force](Block-Force.md) - * [Gravity](Block-Gravity.md) - * [Linear Drag](Block-LinearDrag.md) - * [Turbulence](Block-Turbulence.md) - * [Vector Force Field](Block-VectorForceField.md) - * [HLSL > Custom HLSL](Block-CustomHLSL.md) - * [Implicit](Implicit.md) - * [Integration : Update Position](Block-UpdatePosition.md) - * [Integration : Update Rotation](Block-UpdateRotation.md) - * [Orientation](Orientation.md) - * [Connect Target](Block-ConnectTarget.md) - * [Orient](Block-Orient.md) - * [Output](Output.md) - * [Camera Fade](Block-CameraFade.md) - * [Subpixel Anti-Aliasing](Block-SubpixelAntiAliasing.md) - * [Position Shape](Block-SetPositionShape-LandingPage.md) - * [Set Position (Depth)](Block-SetPosition(Depth).md) - * [Set Position (Mesh)](Block-SetPosition(Mesh).md) - * [Set Position (Skinned Mesh)](Block-SetPosition(SkinnedMesh).md) - * [Set Position Shape](Block-SetPositionShape.md) - * [Set Position (Sequential)](Block-SetPosition(Sequential).md) - * [Tile/Warp Positions](Block-TileWarpPositions.md) - * [Size > 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) + * [Contexts](Context.md) + * [Event Context](Context-Event.md) + * [GPU Event Context](Context-GPUEvent.md) + * [Initialize Particle Context](Context-Initialize.md) + * [Output Mesh Context](Context-OutputMesh.md) + * [Output Distortion Context](Context-OutputDistortion.md) + * [Output Decal Context](Context-OutputForwardDecal.md) + * [Output Line Context](Context-OutputLine.md) + * [Output Particle Mesh Context](Context-OutputParticleMesh.md) + * [Output Particle HDRP Lit Decal Context](Context-OutputParticleHDRPLitDecal.md) + * [Output Particle HDRP Volumetric Fog Context](Context-OutputParticleHDRPVolumetricFog.md) + * [Output Particle URP Lit Decal Context](Context-OutputParticleURPLitDecal.md) + * [Output Point Context](Context-OutputPoint.md) + * [Output Particle Primitive Context](Context-OutputPrimitive.md) + * [Output ShaderGraph Quad Context](Context-OutputShaderGraphPlanarPrimitive.md) + * [Output Particle ShaderGraph Mesh Context](Context-OutputShaderGraphMesh.md) + * [Output ParticleStrip ShaderGraph Quad Context](Context-OutputShaderGraphStrip.md) + * [Shared Output Settings Context](SharedOutputSettings.md) + * [Global Settings Context](Context-OutputSharedSettings.md) + * [Lit Output Settings Context](Context-OutputLitSettings.md) + * [Spawn Context](Context-Spawn.md) + * [Update Particle Context](Context-Update.md) + * [Blocks](Block.md) + * [Attribute Blocks](Attribute.md) + * [Curve Block](Block-SetAttributeFromCurve.md) + * [Derived > Calculate Mass from Volume Block](Block-CalculateMassFromVolume.md) + * [Map Block](Block-SetAttributeFromMap.md) + * [Set Block](Block-SetAttribute.md) + * [Collision Blocks](Block-Collision-LandingPage.md) + * [Collision Shape Block](Block-CollisionShape.md) + * [Collide Depth Buffer Block](Block-CollideWithDepthBuffer.md) + * [Kill Shape Block](Block-KillShape.md) + * [Trigger Shape Block](Block-TriggerShape.md) + * [Flipbook Player Block](Block-FlipbookPlayer.md) + * [Force Blocks](Force.md) + * [Attractor Shape Signed Distance Field Block](Block-ConformToSignedDistanceField.md) + * [Attractor Shape Sphere Block](Block-ConformToSphere.md) + * [Force Block](Block-Force.md) + * [Gravity Block](Block-Gravity.md) + * [Linear Drag Block](Block-LinearDrag.md) + * [Turbulence Block](Block-Turbulence.md) + * [Vector Force Field Block](Block-VectorForceField.md) + * [HLSL > Custom HLSL Block](Block-CustomHLSL.md) + * [Implicit Blocks](Implicit.md) + * [Integration : Update Position Block](Block-UpdatePosition.md) + * [Integration : Update Rotation Block](Block-UpdateRotation.md) + * [Orientation Blocks](Orientation.md) + * [Connect Target Block](Block-ConnectTarget.md) + * [Orient Block](Block-Orient.md) + * [Output Blocks](Output.md) + * [Camera Fade Block](Block-CameraFade.md) + * [Subpixel Anti-Aliasing Block](Block-SubpixelAntiAliasing.md) + * [Position Shape Blocks](Block-SetPositionShape-LandingPage.md) + * [Set Position (Depth) Block](Block-SetPosition(Depth).md) + * [Set Position (Mesh) Block](Block-SetPosition(Mesh).md) + * [Set Position (Skinned Mesh) Block](Block-SetPosition(SkinnedMesh).md) + * [Set Position Shape Block](Block-SetPositionShape.md) + * [Set Position (Sequential) Block](Block-SetPosition(Sequential).md) + * [Tile/Warp Positions Block](Block-TileWarpPositions.md) + * [Size > Screen Space Size Block](Block-ScreenSpaceSize.md) + * [Spawn Blocks](Spawn.md) + * [Constant Spawn Rate Block](Block-ConstantRate.md) + * [Periodic Burst Block](Block-Burst.md) + * [Single Burst Block](Block-Burst.md) + * [Variable Spawn Rate Block](Block-VariableRate.md) + * [Attribute > Set Spawn Event \ Block](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) + * [Increment Strip Index On Start Block](Block-IncrementStripIndexOnStart.md) + * [Set Spawn Time Block](Block-SetSpawnTime.md) + * [Spawn Over Distance Block](Block-SpawnOverDistance.md) * [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](Operator.md) - * [Attribute](OperatorAttribute.md) - * [Age Over Lifetime](Operator-AgeOverLifetime.md) - * [Get Attribute: age](Operator-GetAttributeAge.md) - * [Get Attribute: alive](Operator-GetAttributeAlive.md) - * [Get Attribute: alpha](Operator-GetAttributeAlpha.md) - * [Get Attribute: angle](Operator-GetAttributeAngle.md) - * [Get Attribute: angularVelocity](Operator-GetAttributeAngularVelocity.md) - * [Get Attribute: axisX](Operator-GetAttributeAxisX.md) - * [Get Attribute: axisY](Operator-GetAttributeAxisY.md) - * [Get Attribute: axisZ](Operator-GetAttributeAxisZ.md) - * [Get Attribute: color](Operator-GetAttributeColor.md) - * [Get Attribute: direction](Operator-GetAttributeDirection.md) - * [Get Attribute: lifetime](Operator-GetAttributeLifetime.md) - * [Get Attribute: mass](Operator-GetAttributeMass.md) - * [Get Attribute: oldPosition](Operator-GetAttributeOldPosition.md) - * [Get Attribute: particleCountInStrip](Operator-GetAttributeParticleCountInStrip.md) - * [Get Attribute: particleId](Operator-GetAttributeParticleID.md) - * [Get Attribute: particleIndexInStrip](Operator-GetAttributeParticleIndexInStrip.md) - * [Get Attribute: pivot](Operator-GetAttributePivot.md) - * [Get Attribute: position](Operator-GetAttributePosition.md) - * [Get Attribute: scale](Operator-GetAttributeScale.md) - * [Get Attribute: seed](Operator-GetAttributeSeed.md) - * [Get Attribute: size](Operator-GetAttributeSize.md) - * [Get Attribute: spawnIndex](Operator-GetAttributeSpawnIndex.md) - * [Get Attribute: spawnTime](Operator-GetAttributeSpawnTime.md) - * [Get Attribute: stripIndex](Operator-GetAttributeStripIndex.md) - * [Get Attribute: targetPosition](Operator-GetAttributeTargetPosition.md) - * [Get Attribute: texIndex](Operator-GetAttributeTexIndex.md) - * [Get Attribute: velocity](Operator-GetAttributeVelocity.md) - * [Get Custom Attribute](Operator-GetCustomAttribute.md) - * [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) - * [Built-in](Builtin.md) - * [Delta Time](Operator-DeltaTime.md) - * [Frame Index](Operator-FrameIndex.md) - * [Local to World](Operator-LocalToWorld.md) - * [System Seed](Operator-SystemSeed.md) - * [Total Time](Operator-TotalTime.md) - * [World to Local](Operator-WorldToLocal.md) - * [Camera](Camera.md) - * [Main Camera](Operator-MainCamera.md) - * [Viewport to World Point](Operator-ViewportToWorldPoint.md) - * [World to Viewport Point](Operator-WorldToViewportPoint.md) - * [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](Inline.md) - * [AABox](Operator-InlineAABox.md) - * [AnimationCurve](Operator-InlineAnimationCurve.md) - * [ArcCircle](Operator-InlineArcCircle.md) - * [ArcCone](Operator-InlineArcCone.md) - * [ArcSphere](Operator-InlineArcSphere.md) - * [ArcTorus](Operator-InlineArcTorus.md) - * [bool](Operator-Inlinebool.md) - * [Camera](Operator-InlineCamera.md) - * [Circle](Operator-InlineCircle.md) - * [Color](Operator-InlineColor.md) - * [Cone](Operator-InlineCone.md) - * [Cubemap](Operator-InlineCubemap.md) - * [CubemapArray](Operator-InlineCubemapArray.md) - * [Cylinder](Operator-InlineCylinder.md) - * [Direction](Operator-InlineDirection.md) - * [FlipBook](Operator-InlineFlipBook.md) - * [float](Operator-Inlinefloat.md) - * [Gradient](Operator-InlineGradient.md) - * [int](Operator-Inlineint.md) - * [Line](Operator-InlineLine.md) - * [Matrix4x4](Operator-InlineMatrix4x4.md) - * [Mesh](Operator-InlineMesh.md) - * [OrientedBox](Operator-InlineOrientedBox.md) - * [Plane](Operator-InlinePlane.md) - * [Position](Operator-InlinePosition.md) - * [Sphere](Operator-InlineSphere.md) - * [TerrainType](Operator-InlineTerrainType.md) - * [Texture2D](Operator-InlineTexture2D.md) - * [Texture2DArray](Operator-InlineTexture2DArray.md) - * [Texture3D](Operator-InlineTexture3D.md) - * [Torus](Operator-InlineTorus.md) - * [Transform](Operator-InlineTransform.md) - * [uint](Operator-Inlineuint.md) - * [Vector](Operator-InlineVector.md) - * [Vector2](Operator-InlineVector2.md) - * [Vector3](Operator-InlineVector3.md) - * [Vector4](Operator-InlineVector4.md) - * [Logic](Logic.md) - * [And](Operator-LogicAnd.md) - * [Branch](Operator-Branch.md) - * [Compare](Operator-Compare.md) - * [Nand](Operator-LogicNand.md) - * [Nor](Operator-LogicNor.md) - * [Not](Operator-LogicNot.md) - * [Or](Operator-LogicOr.md) - * [Switch](Operator-Switch.md) - * [Math](Math.md) - * [Arithmetic](Arithmetic.md) - * [Absolute](Operator-Absolute.md) - * [Add](Operator-Add.md) - * [Divide](Operator-Divide.md) - * [Fractional](Operator-Fractional.md) - * [Inverse Lerp](Operator-InverseLerp.md) - * [Lerp](Operator-Lerp.md) - * [Modulo](Operator-Modulo.md) - * [Multiply](Operator-Multiply.md) - * [Negate](Operator-Negate.md) - * [One Minus](Operator-OneMinus.md) - * [Power](Operator-Power.md) - * [Reciprocal](Operator-Reciprocal.md) - * [Sign](Operator-Sign.md) - * [Smoothstep](Operator-Smoothstep.md) - * [Square Root](Operator-SquareRoot.md) - * [Step](Operator-Step.md) - * [Subtract](Operator-Subtract.md) - * [Clamp](Clamp.md) - * [Ceiling](Operator-Ceiling.md) - * [Clamp](Operator-Clamp.md) - * [Discretize](Operator-Discretize.md) - * [Floor](Operator-Floor.md) - * [Maximum](Operator-Maximum.md) - * [Minimum](Operator-Minimum.md) - * [Round](Operator-Round.md) - * [Saturate](Operator-Saturate.md) - * [Constants](Constants.md) - * [Epsilon](Operator-Epsilon.md) - * [Pi](Operator-Pi.md) - * [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](Operator-Exp.md) - * [Geometry](Geometry.md) - * [Area (Circle)](Operator-Area(Circle).md) - * [Change Space](Operator-ChangeSpace.md) - * [Distance (Line)](Operator-Distance(Line).md) - * [Distance (Plane)](Operator-Distance(Plane).md) - * [Distance (Sphere)](Operator-Distance(Sphere).md) - * [InvertTRS (Matrix)](Operator-InvertTRS(Matrix).md) - * [Transform (Direction)](Operator-Transform(Direction).md) - * [Transform (Matrix)](Operator-Transform(Matrix).md) - * [Transform (Position)](Operator-Transform(Position).md) - * [Transform (Vector)](Operator-Transform(Vector).md) - * [Transform (Vector4)](Operator-Transform(Vector4).md) - * [Transpose (Matrix)](Operator-Transpose(Matrix).md)) - * [Volume (Axis Aligned Box)](Operator-Volume(AxisAlignedBox).md) - * [Volume (Cone)](Operator-Volume(Cone).md) - * [Volume (Cylinder)](Operator-Volume(Cylinder).md) - * [Volume (Oriented Box)](Operator-Volume(OrientedBox).md) - * [Volume (Sphere)](Operator-Volume(Sphere).md) - * [Volume (Torus)](Operator-Volume(Torus).md) - * [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.md) - * [Acos](Operator-Acos.md) - * [Asin](Operator-Asin.md) - * [Atan](Operator-Atan.md) - * [Atan2](Operator-Atan2.md) - * [Cosine](Operator-Cosine.md) - * [Sine](Operator-Sine.md) - * [Tangent](Operator-Tangent.md) - * [Vector](Vector.md) - * [Append Vector](Operator-AppendVector.md) - * [Construct Matrix](Operator-ConstructMatrix.md) - * [Cross Product](Operator-CrossProduct.md) - * [Distance](Operator-Distance.md) - * [Dot Product](Operator-DotProduct.md) - * [Length](Operator-Length.md) - * [Look At](Operator-LookAt.md) - * [Normalize](Operator-Normalize.md) - * [Rotate 2D](Operator-Rotate2D.md) - * [Rotate 3D](Operator-Rotate3D.md) - * [Sample Bezier](Operator-SampleBezier.md) - * [Squared Distance](Operator-SquaredDistance.md) - * [Squared Length](Operator-SquaredLength.md) - * [Swizzle](Operator-Swizzle.md) - * [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.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.md) - * [Random Number](Operator-RandomNumber.md) - * [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) - * [Get Mesh Vertex Count](Operator-MeshVertexCount.md) - * [Get Skinned Mesh Index Count](Operator-SkinnedMeshIndexCount.md) - * [Get Skinned Mesh Triangle Count](Operator-SkinnedMeshTriangleCount.md) - * [Get Skinned Mesh Vertex Count](Operator-SkinnedMeshVertexCount.md) - * [Get Skinned Mesh Local Root Transform](Operator-SkinnedLocalTransform.md) - * [Get Skinned Mesh World Root Transform](Operator-SkinnedWorldTransform.md) - * [Get Texture Dimensions](Operator-GetTextureDimensions.md) - * [Load CameraBuffer](Operator-LoadCameraBuffer.md) - * [Load Texture2D](Operator-LoadTexture2D.md) - * [Load Texture2DArray](Operator-LoadTexture2DArray.md) - * [Load Texture3D](Operator-LoadTexture3D.md) - * [Position (Depth)](Operator-Position(Depth).md) - * [Sample Buffer](Operator-SampleBuffer.md ) - * [Sample CameraBuffer](Operator-SampleCameraBuffer.md) - * [Sample Curve](Operator-SampleCurve.md) - * [Sample Gradient](Operator-SampleGradient.md) - * [Sample Mesh](Operator-SampleMesh.md) - * [Sample Mesh Index](Operator-SampleMeshIndex.md) - * [Sample Skinned Mesh](Operator-SampleSkinnedMesh.md) - * [Sample Skinned Mesh Renderer Index](Operator-SampleMeshIndex.md) - * [Sample Signed Distance Field](Operator-SampleSDF.md) - * [Sample Texture2D](Operator-SampleTexture2D.md) - * [Sample Texture2DArray](Operator-SampleTexture2DArray.md) - * [Sample Texture3D](Operator-SampleTexture3D.md) - * [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) + * [Velocity Blocks](Velocity.md) + * [Velocity from Direction & Speed (Change Speed) Block](Block-VelocityFromDirectionAndSpeed(ChangeSpeed).md) + * [Velocity from Direction & Speed (New Direction) Block](Block-VelocityFromDirectionAndSpeed(NewDirection).md) + * [Velocity from Direction & Speed (Random Direction)Block](Block-VelocityFromDirectionAndSpeed(RandomDirection).md) + * [Velocity from Direction & Speed (Random Direction) Block](Block-VelocityFromDirectionAndSpeed(RandomDirection).md) + * [Velocity from Direction & Speed (Tangent) Block](Block-VelocityFromDirectionAndSpeed(Tangent).md) + * [Operators](Operator.md) + * [Attribute Operators](OperatorAttribute.md) + * [Age Over Lifetime Operator](Operator-AgeOverLifetime.md) + * [Get Attribute: age Operator](Operator-GetAttributeAge.md) + * [Get Attribute: alive Operator](Operator-GetAttributeAlive.md) + * [Get Attribute: alpha Operator](Operator-GetAttributeAlpha.md) + * [Get Attribute: angle Operator](Operator-GetAttributeAngle.md) + * [Get Attribute: angularVelocity Operator](Operator-GetAttributeAngularVelocity.md) + * [Get Attribute: axisX Operator](Operator-GetAttributeAxisX.md) + * [Get Attribute: axisY Operator](Operator-GetAttributeAxisY.md) + * [Get Attribute: axisZ Operator](Operator-GetAttributeAxisZ.md) + * [Get Attribute: color Operator](Operator-GetAttributeColor.md) + * [Get Attribute: direction Operator](Operator-GetAttributeDirection.md) + * [Get Attribute: lifetime Operator](Operator-GetAttributeLifetime.md) + * [Get Attribute: mass Operator](Operator-GetAttributeMass.md) + * [Get Attribute: oldPosition Operator](Operator-GetAttributeOldPosition.md) + * [Get Attribute: particleCountInStrip Operator](Operator-GetAttributeParticleCountInStrip.md) + * [Get Attribute: particleId Operator](Operator-GetAttributeParticleID.md) + * [Get Attribute: particleIndexInStrip Operator](Operator-GetAttributeParticleIndexInStrip.md) + * [Get Attribute: pivot Operator](Operator-GetAttributePivot.md) + * [Get Attribute: position Operator](Operator-GetAttributePosition.md) + * [Get Attribute: scale Operator](Operator-GetAttributeScale.md) + * [Get Attribute: seed Operator](Operator-GetAttributeSeed.md) + * [Get Attribute: size Operator](Operator-GetAttributeSize.md) + * [Get Attribute: spawnIndex Operator](Operator-GetAttributeSpawnIndex.md) + * [Get Attribute: spawnTime Operator](Operator-GetAttributeSpawnTime.md) + * [Get Attribute: stripIndex Operator](Operator-GetAttributeStripIndex.md) + * [Get Attribute: targetPosition Operator](Operator-GetAttributeTargetPosition.md) + * [Get Attribute: texIndex Operator](Operator-GetAttributeTexIndex.md) + * [Get Attribute: velocity Operator](Operator-GetAttributeVelocity.md) + * [Get Custom Attribute Operator](Operator-GetCustomAttribute.md) + * [Bitwise Operators](Bitwise.md) + * [And Operator](Operator-BitwiseAnd.md) + * [Complement Operator](Operator-BitwiseComplement.md) + * [Left Shift Operator](Operator-BitwiseLeftShift.md) + * [Or Operator](Operator-BitwiseOr.md) + * [Right Shift Operator](Operator-BitwiseRightShift.md) + * [Xor Operator](Operator-BitwiseXor.md) + * [Built-in Operators](Builtin.md) + * [Delta Time Operator](Operator-DeltaTime.md) + * [Frame Index Operator](Operator-FrameIndex.md) + * [Local to World Operator](Operator-LocalToWorld.md) + * [System Seed Operator](Operator-SystemSeed.md) + * [Total Time Operator](Operator-TotalTime.md) + * [World to Local Operator](Operator-WorldToLocal.md) + * [Camera Operators](Camera.md) + * [Main Camera Operator](Operator-MainCamera.md) + * [Viewport To World Point Operator](Operator-ViewportToWorldPoint.md) + * [World To Viewport Point Operator](Operator-WorldToViewportPoint.md) + * [Color Operators](Color.md) + * [Color Luma Operator](Operator-ColorLuma.md) + * [HSV to RGB Operator](Operator-HSVToRGB.md) + * [RGB to HSV Operator](Operator-RGBToHSV.md) + * [HLSL > Custom HLSL Operator](Operator-CustomHLSL.md) + * [Inline Operators](Inline.md) + * [AABox Operator](Operator-InlineAABox.md) + * [AnimationCurve Operator](Operator-InlineAnimationCurve.md) + * [ArcCircle Operator](Operator-InlineArcCircle.md) + * [ArcCone Operator](Operator-InlineArcCone.md) + * [ArcSphere Operator](Operator-InlineArcSphere.md) + * [ArcTorus Operator](Operator-InlineArcTorus.md) + * [bool Operator](Operator-Inlinebool.md) + * [Camera Operator](Operator-InlineCamera.md) + * [Circle Operator](Operator-InlineCircle.md) + * [Color Operator](Operator-InlineColor.md) + * [Cone Operator](Operator-InlineCone.md) + * [Cubemap Operator](Operator-InlineCubemap.md) + * [CubemapArray Operator](Operator-InlineCubemapArray.md) + * [Cylinder Operator](Operator-InlineCylinder.md) + * [Direction Operator](Operator-InlineDirection.md) + * [FlipBook Operator](Operator-InlineFlipBook.md) + * [float Operator](Operator-Inlinefloat.md) + * [Gradient Operator](Operator-InlineGradient.md) + * [int Operator](Operator-Inlineint.md) + * [Line Operator](Operator-InlineLine.md) + * [Matrix4x4 Operator](Operator-InlineMatrix4x4.md) + * [Mesh Operator](Operator-InlineMesh.md) + * [OrientedBox Operator](Operator-InlineOrientedBox.md) + * [Plane Operator](Operator-InlinePlane.md) + * [Position Operator](Operator-InlinePosition.md) + * [Sphere Operator](Operator-InlineSphere.md) + * [TerrainType Operator](Operator-InlineTerrainType.md) + * [Texture2D Operator](Operator-InlineTexture2D.md) + * [Texture2DArray Operator](Operator-InlineTexture2DArray.md) + * [Texture3D Operator](Operator-InlineTexture3D.md) + * [Torus Operator](Operator-InlineTorus.md) + * [Transform Operator](Operator-InlineTransform.md) + * [uint Operator](Operator-Inlineuint.md) + * [Vector Operator](Operator-InlineVector.md) + * [Vector2 Operator](Operator-InlineVector2.md) + * [Vector3 Operator](Operator-InlineVector3.md) + * [Vector4 Operator](Operator-InlineVector4.md) + * [Logic Operators](Logic.md) + * [And Operator](Operator-LogicAnd.md) + * [Branch Operator](Operator-Branch.md) + * [Compare Operator](Operator-Compare.md) + * [Nand Operator](Operator-LogicNand.md) + * [Nor Operator](Operator-LogicNor.md) + * [Not Operator](Operator-LogicNot.md) + * [Or Operator](Operator-LogicOr.md) + * [Switch Operator](Operator-Switch.md) + * [Math Operators](Math.md) + * [Arithmetic Operators](Arithmetic.md) + * [Absolute Operator](Operator-Absolute.md) + * [Add Operator](Operator-Add.md) + * [Divide Operator](Operator-Divide.md) + * [Fractional Operator](Operator-Fractional.md) + * [Inverse Lerp Operator](Operator-InverseLerp.md) + * [Lerp Operator](Operator-Lerp.md) + * [Modulo Operator](Operator-Modulo.md) + * [Multiply Operator](Operator-Multiply.md) + * [Negate Operator](Operator-Negate.md) + * [One Minus Operator](Operator-OneMinus.md) + * [Power Operator](Operator-Power.md) + * [Reciprocal Operator](Operator-Reciprocal.md) + * [Sign Operator](Operator-Sign.md) + * [Smoothstep Operator](Operator-Smoothstep.md) + * [Square Root Operator](Operator-SquareRoot.md) + * [Step Operator](Operator-Step.md) + * [Subtract Operator](Operator-Subtract.md) + * [Clamp Operators](Clamp.md) + * [Ceiling Operator](Operator-Ceiling.md) + * [Clamp Operator](Operator-Clamp.md) + * [Discretize Operator](Operator-Discretize.md) + * [Floor Operator](Operator-Floor.md) + * [Maximum Operator](Operator-Maximum.md) + * [Minimum Operator](Operator-Minimum.md) + * [Round Operator](Operator-Round.md) + * [Saturate Operator](Operator-Saturate.md) + * [Constants Operators](Constants.md) + * [Epsilon Operator](Operator-Epsilon.md) + * [Pi Operator](Operator-Pi.md) + * [Coordinates Operators](Coordinates.md) + * [Polar to Rectangular Operator](Operator-PolarToRectangular.md) + * [Rectangular to Polar Operator](Operator-RectangularToPolar.md) + * [Rectangular to Spherical Operator](Operator-RectangularToSpherical.md) + * [Spherical to Rectangular Operator](Operator-SphericalToRectangular.md) + * [Exp Operator](Operator-Exp.md) + * [Geometry Operators](Geometry.md) + * [Change Space Operator](Operator-ChangeSpace.md) + * [Distance (Line) Operator](Operator-Distance(Line).md) + * [Distance (Plane) Operator](Operator-Distance(Plane).md) + * [Distance (Sphere) Operator](Operator-Distance(Sphere).md) + * [InvertTRS (Matrix) Operator](Operator-InvertTRS(Matrix).md) + * [Transform (Direction) Operator](Operator-Transform(Direction).md) + * [Transform (Matrix) Operator](Operator-Transform(Matrix).md) + * [Transform (Position) Operator](Operator-Transform(Position).md) + * [Transform (Vector) Operator](Operator-Transform(Vector).md) + * [Transform (Vector4) Operator](Operator-Transform(Vector4).md) + * [Transpose (Matrix) Operator](Operator-Transpose(Matrix).md) + * [Volume (Axis Aligned Box) Operator](Operator-Volume(AxisAlignedBox).md) + * [Volume (Cone) Operator](Operator-Volume(Cone).md) + * [Volume (Cylinder) Operator](Operator-Volume(Cylinder).md) + * [Volume (Oriented Box) Operator](Operator-Volume(OrientedBox).md) + * [Volume (Sphere) Operator](Operator-Volume(Sphere).md) + * [Volume (Torus) Operator](Operator-Volume(Torus).md) + * [Log Operator](Operator-Log.md) + * [Remap Operators](Remap.md) + * [Remap Operator](Operator-Remap.md) + * [Remap [0..1] => [-1..1] Operator](Operator-Remap(-11).md) + * [Remap [-1..1] => [0..1] Operator](Operator-Remap(01).md) + * [Trigonometry Operators](Trigonometry.md) + * [Acos Operator](Operator-Acos.md) + * [Asin Operator](Operator-Asin.md) + * [Atan Operator](Operator-Atan.md) + * [Atan2 Operator](Operator-Atan2.md) + * [Cosine Operator](Operator-Cosine.md) + * [Sine Operator](Operator-Sine.md) + * [Tangent Operator](Operator-Tangent.md) + * [Vector Operators](Vector.md) + * [Append Vector Operator](Operator-AppendVector.md) + * [Construct Matrix Operator](Operator-ConstructMatrix.md) + * [Cross Product Operator](Operator-CrossProduct.md) + * [Distance Operator](Operator-Distance.md) + * [Dot Product Operator](Operator-DotProduct.md) + * [Length Operator Operator](Operator-Length.md) + * [Look At Operator](Operator-LookAt.md) + * [Normalize Operator](Operator-Normalize.md) + * [Rotate 2D Operator](Operator-Rotate2D.md) + * [Rotate 3D Operator](Operator-Rotate3D.md) + * [Sample Bezier Operator](Operator-SampleBezier.md) + * [Squared Distance Operator](Operator-SquaredDistance.md) + * [Squared Length Operator](Operator-SquaredLength.md) + * [Swizzle Operator](Operator-Swizzle.md) + * [Wave Operators](Wave.md) + * [Sawtooth Wave Operator](Operator-SawtoothWave.md) + * [Sine Wave Operator](Operator-SineWave.md) + * [Square Wave Operator](Operator-SquareWave.md) + * [Triangle Wave Operator](Operator-TriangleWave.md) + * [Noise Operators](Noise.md) + * [Cellular Curl Noise Operator](Operator-CellularCurlNoise.md) + * [Cellular Noise Operator](Operator-CellularNoise.md) + * [Perlin Curl Noise Operator](Operator-PerlinCurlNoise.md) + * [Perlin Noise Operator](Operator-PerlinNoise.md) + * [Value Curl Noise Operator](Operator-ValueCurlNoise.md) + * [Value Noise Operator](Operator-ValueNoise.md) + * [Random Operators](Random.md) + * [Random Number Operator](Operator-RandomNumber.md) + * [Random Selector Operator](Operator-RandomSelectorWeighted.md) + * [Sampling Operators](Sampling.md) + * [Buffer Count Operator](Operator-BufferCount.md) + * [Get Mesh Index Count Operator](Operator-MeshIndexCount.md) + * [Get Mesh Triangle Count Operator](Operator-MeshTriangleCount.md) + * [Get Mesh Vertex Count Operator](Operator-MeshVertexCount.md) + * [Get Skinned Mesh Index Count Operator](Operator-SkinnedMeshIndexCount.md) + * [Get Skinned Mesh Triangle Count Operator](Operator-SkinnedMeshTriangleCount.md) + * [Get Skinned Mesh Vertex Count Operator](Operator-SkinnedMeshVertexCount.md) + * [Get Skinned Mesh Local Root Transform Operator](Operator-SkinnedLocalTransform.md) + * [Get Skinned Mesh World Root Transform Operator](Operator-SkinnedWorldTransform.md) + * [Get Texture Dimensions Operator](Operator-GetTextureDimensions.md) + * [Load CameraBuffer Operator](Operator-LoadCameraBuffer.md) + * [Load Texture2D Operator](Operator-LoadTexture2D.md) + * [Load Texture2DArray Operator](Operator-LoadTexture2DArray.md) + * [Load Texture3D Operator](Operator-LoadTexture3D.md) + * [Position (Depth) Operator](Operator-Position(Depth).md) + * [Sample Buffer Operator](Operator-SampleBuffer.md) + * [Sample CameraBuffer Operator](Operator-SampleCameraBuffer.md) + * [Sample Curve Operator](Operator-SampleCurve.md) + * [Sample Gradient Operator](Operator-SampleGradient.md) + * [Sample Mesh Operator](Operator-SampleMesh.md) + * [Sample Mesh Index Operator](Operator-SampleMeshIndex.md) + * [Sample Skinned Mesh Operator](Operator-SampleSkinnedMesh.md) + * [Sample Skinned Mesh Renderer Index Operator](Operator-SampleMeshIndex.md) + * [Sample Signed Distance Field Operator](Operator-SampleSDF.md) + * [Sample Texture2D Operator](Operator-SampleTexture2D.md) + * [Sample Texture2DArray Operator](Operator-SampleTexture2DArray.md) + * [Sample Texture3D Operator](Operator-SampleTexture3D.md) + * [Sample TextureCube Operator](Operator-SampleTextureCube.md) + * [Sample TextureCubeArray Operator](Operator-SampleTextureCubeArray.md) + * [Sample Attribute Map Operator](Operator-SampleAttributeMap.md) + * [Spawn > Spawn State Operator](Operator-SpawnState.md) + * [Utility > Point Cache Operator](Operator-PointCache.md) * [Performance and optimization](performance-debug-panel.md) * [Reference](Reference.md) * [Standard Attributes](Reference-Attributes.md) diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Templates-window.md b/Packages/com.unity.visualeffectgraph/Documentation~/Templates-window.md index 4d13415710b..dfcb799bfc4 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Templates-window.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Templates-window.md @@ -1,4 +1,4 @@ -# Default VFX Graph Templates window +# VFX Graph template window Use the template window to create a VFX Graph asset with a predefined effect. You can use these templates as a starting point for your own effects. Each template has a description and an image to describe its behavior. diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Timeline.md b/Packages/com.unity.visualeffectgraph/Documentation~/Timeline.md index da8dafa725d..71949160acf 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Timeline.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Timeline.md @@ -1,4 +1,4 @@ -# Visual Effects and Timeline +# Using Visual Effects and Timeline Use Unity’s [Timeline](https://docs.unity3d.com/Packages/com.unity.timeline@latest/index.html?subfolder=/manual/index.html) to control a Visual Effect Graph’s properties and [Events](#Events). To do this, add the following to a [Timeline instance](https://docs.unity3d.com/Packages/com.unity.timeline@latest/index.html?subfolder=/manual/wf_instance.html): diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Trigonometry.md b/Packages/com.unity.visualeffectgraph/Documentation~/Trigonometry.md index 0d3658633e8..1bd91bcaa34 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Trigonometry.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Trigonometry.md @@ -4,13 +4,13 @@ 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. | +| [Acos Operator](Operator-Acos.md) | Calculate the arccosine (inverse cosine) of an input. | +| [Asin Operator](Operator-Asin.md) | Calculate the arcsine (inverse sine) of an input. | +| [Atan Operator](Operator-Atan.md) | Calculate the arctangent (inverse tangent) of an input. | +| [Atan2 Operator](Operator-Atan2.md) | Calculate the angle between the x-axis and a vector. | +| [Cosine Operator](Operator-Cosine.md) | Calculate the cosine of an input. | +| [Sine Operator](Operator-Sine.md) | Calculate the sine of an input. | +| [Tangent Operator](Operator-Tangent.md) | Calculate the tangent of an input. | ## Additional resources diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Vector.md b/Packages/com.unity.visualeffectgraph/Documentation~/Vector.md index d46a00d38b6..353eed1ea2d 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Vector.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Vector.md @@ -4,20 +4,20 @@ 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. | +| [Append Vector Operator](Operator-AppendVector.md) | Combine up to four inputs into a single vector. | +| [Construct Matrix Operator](Operator-ConstructMatrix.md) | Construct a 4x4 matrix from four `Vector4` values. | +| [Cross Product Operator](Operator-CrossProduct.md) | Calculate the vector that's perpendicular to two input vectors | +| [Distance Operator](Operator-Distance.md) | Calculate the distance between two points. | +| [Dot Product Operator](Operator-DotProduct.md) | Determine whether two normalized vectors point in the same direction. | +| [Length Operator](Operator-Length.md) | Calculate the length of a vector. | +| [Look At Operator](Operator-LookAt.md) | Calculate the transform required to rotate a particle to look at a position. | +| [Normalize Operator](Operator-Normalize.md) | Normalize a vector. | +| [Rotate 2D Operator](Operator-Rotate2D.md) | Rotate a point in 2D around a center point. | +| [Rotate 3D Operator](Operator-Rotate3D.md) | Rotate a point in 3D around a center point. | +| [Sample Bezier Operator](Operator-SampleBezier.md) | Return information about a curve. | +| [Squared Distance Operator](Operator-SquaredDistance.md) | Calculate the square of the distance between two points. | +| [Squared Length Operator](Operator-SquaredLength.md) | Calculate the square of the length of a vector. | +| [Swizzle Operator](Operator-Swizzle.md) | Rearrange the components of an input vector. | ## Additional resources diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Velocity.md b/Packages/com.unity.visualeffectgraph/Documentation~/Velocity.md index cb14d7ffd83..693b821248a 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Velocity.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Velocity.md @@ -4,11 +4,11 @@ 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. | +| [Velocity from Direction & Speed (Change Speed) Block](Block-VelocityFromDirectionAndSpeed(ChangeSpeed).md) | Calculate velocity by scaling the direction of the particle using its speed. | +| [Velocity from Direction & Speed (New Direction) Block](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](Block-VelocityFromDirectionAndSpeed(RandomDirection).md) | Calculate velocity by scaling a random direction vector using the speed of the particle. | +| [Velocity from Direction & Speed (Spherical) Block](Block-VelocityFromDirectionAndSpeed(Spherical).md) | Calculate velocity by scaling a spherical direction vector using the speed of the particle. | +| [Velocity from Direction & Speed (Tangent) Block](Block-VelocityFromDirectionAndSpeed(Tangent).md) | Calculate velocity by scaling a tangent direction vector using the speed of the particle. | ## Additional resources diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/VisualEffectPreferences.md b/Packages/com.unity.visualeffectgraph/Documentation~/VisualEffectPreferences.md index 470e9c677bd..beaab342da3 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/VisualEffectPreferences.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/VisualEffectPreferences.md @@ -3,10 +3,10 @@ The Visual Effect Graph preferences are in the Unity Preferences window. To access them: Windows: -* Navigate to **Edit > Preferences > Visual Effects** +* Navigate to **Edit** > **Preferences** > **Visual Effects** macOS: -* Navigate to **Unity > Settings > Visual Effects** +* Navigate to **Unity** > **Settings** > **Visual Effects** ## Properties: diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Wave.md b/Packages/com.unity.visualeffectgraph/Documentation~/Wave.md index abe7993164e..0fb8b6644a1 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Wave.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Wave.md @@ -4,10 +4,10 @@ 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. | +| [Sawtooth Wave Operator](Operator-SawtoothWave.md) | Generate a waveform that increases, then resets and repeats. | +| [Sine Wave Operator](Operator-SineWave.md) | Generate a waveform that smoothly oscillates between two values. | +| [Square Wave Operator](Operator-SquareWave.md) | Generate a value that alternates between two values. | +| [Triangle Wave Operator](Operator-TriangleWave.md) | Generate a value that oscillates between two values. | ## Additional resources From fae0dcd3bfd14b5ab724f80ef02cf83a2845158e Mon Sep 17 00:00:00 2001 From: Reach Platform Support Date: Thu, 16 Jul 2026 09:32:07 +0000 Subject: [PATCH 15/49] [Port] [6000.3] Add backbuffer check to RenderObjectsPass for foveation --- .../Runtime/Passes/RenderObjectsPass.cs | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Passes/RenderObjectsPass.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Passes/RenderObjectsPass.cs index 4d8557dec4f..dae0ef39fae 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Passes/RenderObjectsPass.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Passes/RenderObjectsPass.cs @@ -162,6 +162,11 @@ private static void ExecutePass(PassData passData, RasterCommandBuffer cmd, Rend { Camera camera = passData.cameraData.camera; + if (passData.cameraData.xr.enabled && passData.isActiveTargetBackBuffer) + { + cmd.SetViewport(passData.cameraData.xr.GetViewport()); + } + // In case of camera stacking we need to take the viewport rect from base camera Rect pixelRect = passData.cameraData.pixelRect; float cameraAspect = (float)pixelRect.width / (float)pixelRect.height; @@ -215,13 +220,16 @@ private class PassData // Required for code sharing purpose between RG and non-RG. internal RendererList rendererList; + + internal bool isActiveTargetBackBuffer; } - private void InitPassData(UniversalCameraData cameraData, ref PassData passData) + private void InitPassData(UniversalCameraData cameraData, ref PassData passData, bool isActiveTargetBackBuffer = false) { passData.cameraSettings = m_CameraSettings; passData.renderPassEvent = renderPassEvent; passData.cameraData = cameraData; + passData.isActiveTargetBackBuffer = isActiveTargetBackBuffer; } private void InitRendererLists(UniversalRenderingData renderingData, UniversalLightData lightData, @@ -276,7 +284,7 @@ public override void RecordRenderGraph(RenderGraph renderGraph, ContextContainer { UniversalResourceData resourceData = frameData.Get(); - InitPassData(cameraData, ref passData); + InitPassData(cameraData, ref passData, resourceData.isActiveTargetBackBuffer); passData.color = resourceData.activeColorTexture; builder.SetRenderAttachment(resourceData.activeColorTexture, 0, AccessFlags.Write); @@ -318,7 +326,8 @@ public override void RecordRenderGraph(RenderGraph renderGraph, ContextContainer builder.AllowGlobalStateModification(true); if (cameraData.xr.enabled) { - builder.EnableFoveatedRasterization(cameraData.xr.supportsFoveatedRendering && cameraData.xrUniversal.canFoveateIntermediatePasses); + bool passSupportsFoveation = cameraData.xrUniversal.canFoveateIntermediatePasses || resourceData.isActiveTargetBackBuffer; + builder.EnableFoveatedRasterization(cameraData.xr.supportsFoveatedRendering && passSupportsFoveation); builder.SetExtendedFeatureFlags(ExtendedFeatureFlags.MultiviewRenderRegionsCompatible); } From 41fb842bae2a9b3b0ddb9137f0c0434d82688efe Mon Sep 17 00:00:00 2001 From: Reach Platform Support Date: Sat, 18 Jul 2026 12:50:50 +0000 Subject: [PATCH 16/49] [Port] [6000.3] [URP] Loosen 000_DeferredPlus_Many average threshold --- .../Assets/Scenes/000_DeferredPlus_Many.unity | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/000_DeferredPlus_Many.unity b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/000_DeferredPlus_Many.unity index e53f2571ccf..f115c14605f 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/000_DeferredPlus_Many.unity +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/000_DeferredPlus_Many.unity @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ed4736b654321af60dd1837ed1304e9f4ff96e4fa02e43f8b1577ff1b7ad977a -size 943518 +oid sha256:4abc7990f79bdcef4c5c98e2b17fec91d0067497ced6f637308e18ac2e938a88 +size 943517 From 8005bf70b9eb9363b69eba6a49825e7b6abf1d1a Mon Sep 17 00:00:00 2001 From: Reach Platform Support Date: Mon, 20 Jul 2026 11:10:06 +0000 Subject: [PATCH 17/49] [Port] [6000.3] [HDRP][XR] Update ClearBuffer2D to support XR views --- .../Runtime/Core/CoreResources/ClearBuffer2D.compute | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Core/CoreResources/ClearBuffer2D.compute b/Packages/com.unity.render-pipelines.high-definition/Runtime/Core/CoreResources/ClearBuffer2D.compute index b52cd1f64fe..d4754113ccb 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Core/CoreResources/ClearBuffer2D.compute +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Core/CoreResources/ClearBuffer2D.compute @@ -12,6 +12,8 @@ RW_TEXTURE2D_X(float4, _Buffer2D); [numthreads(8, 8, 1)] void ClearBuffer2DMain(uint3 dispatchThreadID : SV_DispatchThreadID) { + UNITY_XR_ASSIGN_VIEW_INDEX(dispatchThreadID.z); + if (any(dispatchThreadID.xy >= (uint2)_BufferSize.xy)) return; From 4b6176e6c84fd5eb1b3e03e32c667c48d59166d9 Mon Sep 17 00:00:00 2001 From: Reach Platform Support Date: Mon, 20 Jul 2026 11:10:07 +0000 Subject: [PATCH 18/49] [Port] [6000.3] Fixed a typo in the HDRP Tessellation reference page --- .../Documentation~/Tessellation.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Tessellation.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Tessellation.md index 989f669fcf6..7727ba0e0a7 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Tessellation.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Tessellation.md @@ -34,5 +34,5 @@ The following property is only available in Master Stacks. In the [Layered Lit T - Motion vectors do not work correctly if the tessellation factor differs for vertices between two frames. ## Performance -- Enabling the Tessellation option have an extra GPU cost, even if the tessellationFactor is 0.0 or 1.0. It is recommened to have additional LOD with shader without tessellation enabled for good performance. -- Tessellation is an expensive GPU operation and it is often lest costly to pre-tessellate a mesh and doing vertex displacement than doing the tessellation process, but it have the benefit of being adapatative. +- Enabling the Tessellation option has an extra GPU cost, even if the tessellationFactor is 0.0 or 1.0. It is recommended to have additional LOD with shader without tessellation enabled for good performance. +- Tessellation is an expensive GPU operation and it is often less costly to pre-tessellate a mesh and do vertex displacement than to do the tessellation process, but it has the benefit of being adaptive. From a423796d7958650b3acb287eb1e3dbb2ff8411cf Mon Sep 17 00:00:00 2001 From: Pieterjan Bartels Date: Sat, 3 Oct 2026 06:56:31 +0000 Subject: [PATCH 19/49] [6000.3] Remove platform SDK detail from HDRP runtime test ignore reason --- .../CHANGELOG.md | 3 + .../create-ray-tracing-context.md | 15 +- .../ProbeGIBaking.RenderingLayers.cs | 2 +- .../ProbeVolume/ProbeGIBaking.SkyOcclusion.cs | 2 +- .../ProbeGIBaking.VirtualOffset.cs | 2 +- .../Runtime/GPUDriven/FrustumPlanes.cs | 13 +- .../Runtime/GPUDriven/InstanceCuller.cs | 16 +- .../RenderGraph/Compiler/PassesData.cs | 4 + .../Runtime/STP/StpCommon.hlsl | 15 +- .../GeometryPoolKernels.compute.meta | 2 +- .../Common/Utilities/CopyBuffer.compute.meta | 2 +- .../kernels/CopyPositions.compute.meta | 2 +- .../kernels/bit_histogram.compute.meta | 2 +- .../kernels/block_reduce_part.compute.meta | 2 +- .../kernels/block_scan.compute.meta | 2 +- .../kernels/build_hlbvh.compute.meta | 2 +- .../kernels/restructure_bvh.compute.meta | 2 +- .../RadeonRays/kernels/scatter.compute.meta | 2 +- .../Runtime/Utilities/Blitter.cs | 13 +- .../Runtime/Volume/Volume.cs.meta | 2 +- .../Tests/Runtime/RuntimeProfilerTests.cs | 9 + .../Images/LightAnimationExample.png | 3 - .../creating-and-editing-lights-at-runtime.md | 43 +- ...metric-clouds-volume-override-reference.md | 4 +- .../BuildProcessors/HDRPPreprocessShaders.cs | 2 +- .../VFXGraph/Outputs/VFXLitQuadStripOutput.cs | 1 + .../Runtime/Material/Lit/Lit.hlsl | 2 +- .../ShaderLibrary/ShaderVariables.hlsl | 5 + .../Runtime/VFXGraph/Shaders/VFXCommon.hlsl | 2 + .../Editor/DiffusionProfileSettingsTests.cs | 31 +- .../Tests/Editor/DiffusionProfilesTests.cs | 30 +- .../Editor/ShaderBuildPreprocessor.cs | 18 +- .../Editor/ShaderGUI/ParticleGUI.cs | 2 +- .../Includes/MotionVectorPass.hlsl | 16 +- .../ShaderGraph/Includes/PBRGBufferPass.hlsl | 4 +- .../Includes/Terrain/PBRGBufferPass.hlsl | 4 +- .../VFXGraph/VFXURPLitQuadStripOutput.cs | 2 +- .../2D/Rendergraph/DrawNormal2DPass.cs | 2 +- .../2D/Rendergraph/DrawRenderer2DPass.cs | 2 +- .../2D/Rendergraph/Renderer2DRendergraph.cs | 73 +- .../Runtime/DeferredLights.cs | 14 +- .../Runtime/Passes/DrawScreenSpaceUIPass.cs | 4 +- .../Runtime/Passes/FinalBlitPass.cs | 11 +- .../Passes/PostProcessPassRenderGraph.cs | 14 +- .../Runtime/Passes/RenderObjectsPass.cs | 5 +- .../OnTilePostProcessFeature.cs | 5 +- .../Runtime/ScriptableRenderer.cs | 17 +- .../Runtime/ScriptableRendererData.cs | 4 +- .../Runtime/ShadowUtils.cs | 8 + .../Runtime/UniversalRenderPipeline.cs | 6 +- .../ShaderLibrary/DeclareDepthTexture.hlsl | 10 +- .../ShaderLibrary/GlobalIllumination.hlsl | 2 +- .../ShaderLibrary/NormalReconstruction.hlsl | 2 +- .../ShaderLibrary/UnityInput.hlsl | 5 + .../Documentation~/Absolute-Node.md | 4 + .../Documentation~/Add-Node.md | 4 + .../Documentation~/All-Node.md | 4 + .../Documentation~/Ambient-Node.md | 4 + .../Documentation~/And-Node.md | 4 + .../Documentation~/Any-Node.md | 4 + .../Documentation~/Append-Node.md | 6 +- .../Documentation~/Arccosine-Node.md | 4 + .../Documentation~/Arcsine-Node.md | 4 + .../Documentation~/Arctangent-Node.md | 4 + .../Documentation~/Arctangent2-Node.md | 4 + .../Documentation~/Baked-GI-Node.md | 4 + .../Documentation~/Bitangent-Vector-Node.md | 4 + .../Documentation~/Blackbody-Node.md | 4 + .../Documentation~/Blend-Node.md | 4 + .../Documentation~/Block-Node.md | 4 + .../Documentation~/Boolean-Node.md | 4 + .../Documentation~/Branch-Node.md | 4 + .../Branch-On-Input-Connection-Node.md | 4 + ...lculate-Level-Of-Detail-Texture-2D-Node.md | 4 + .../Documentation~/Camera-Node.md | 4 + .../Documentation~/Ceiling-Node.md | 4 + .../Documentation~/Channel-Mask-Node.md | 4 + .../Documentation~/Channel-Mixer-Node.md | 4 + .../Documentation~/Checkerboard-Node.md | 4 + .../Circle-Pupil-Animation-Node.md | 6 +- .../Documentation~/Clamp-Node.md | 4 + .../Documentation~/Color-Mask-Node.md | 4 + .../Documentation~/Color-Node.md | 4 + .../Colorspace-Conversion-Node.md | 4 + .../Documentation~/Combine-Node.md | 4 + .../Documentation~/Comparison-Node.md | 4 + .../Compute-Deformation-Node.md | 4 + .../Documentation~/Constant-Node.md | 4 + .../Documentation~/Contrast-Node.md | 4 + .../Documentation~/Cornea-Refraction-Node.md | 4 + .../Documentation~/Cosine-Node.md | 4 + .../Documentation~/Cross-Product-Node.md | 4 + .../Documentation~/Cubemap-Asset-Node.md | 4 + .../Custom-Color-Buffer-Node.md | 4 + .../Documentation~/Custom-Function-Node.md | 4 + .../Custom-Render-Texture-Self-Node.md | 4 + .../Custom-Render-Texture-Size-Node.md | 6 +- .../Documentation~/DDX-Node.md | 4 + .../Documentation~/DDXY-Node.md | 4 + .../Documentation~/DDY-Node.md | 4 + .../Documentation~/Degrees-To-Radians-Node.md | 4 + .../Dielectric-Specular-Node.md | 4 + .../Documentation~/Diffusion-Profile-Node.md | 4 + .../Documentation~/Distance-Node.md | 4 + .../Documentation~/Dither-Node.md | 3 + .../Documentation~/Divide-Node.md | 4 + .../Documentation~/Dot-Product-Node.md | 4 + .../Documentation~/Dropdown-Node.md | 6 +- .../Documentation~/Ellipse-Node.md | 4 + .../Documentation~/Emission-Node.md | 1 + .../Documentation~/Exponential-Node.md | 4 + .../Documentation~/Exposure-Node.md | 4 + .../Documentation~/Eye-Index-Node.md | 4 + .../Eye-Surface-Type-Debug-Node.md | 4 + .../Documentation~/Fade-Transition-Node.md | 4 + .../Documentation~/Flip-Node.md | 4 + .../Documentation~/Flipbook-Node.md | 4 + .../Documentation~/Float-Node.md | 4 + .../Documentation~/Floor-Node.md | 4 + .../Documentation~/Fog-Node.md | 4 + .../Documentation~/Fraction-Node.md | 4 + .../Documentation~/Fresnel-Effect-Node.md | 4 + .../Documentation~/Fresnel-Equation-Node.md | 4 + .../Documentation~/Gather-Texture-2D-Node.md | 4 + .../Documentation~/Gradient-Node.md | 4 + .../Documentation~/Gradient-Noise-Node.md | 6 +- .../Documentation~/HD-Custom-Depth-Node.md | 4 + .../Documentation~/HD-Sample-Buffer-Node.md | 4 + .../Documentation~/HD-Scene-Color-Node.md | 1 + .../Documentation~/HD-Scene-Depth-Node.md | 4 + .../Documentation~/Hue-Node.md | 4 + .../Documentation~/Hyperbolic-Cosine-Node.md | 4 + .../Documentation~/Hyperbolic-Sine-Node.md | 4 + .../Documentation~/Hyperbolic-Tangent-Node.md | 4 + .../Documentation~/Instance-ID-Node.md | 4 + .../Documentation~/Integer-Node.md | 4 + .../Documentation~/Inverse-Lerp-Node.md | 4 + .../Documentation~/Invert-Colors-Node.md | 4 + .../Documentation~/Iris-Limbal-Ring-Node.md | 4 + .../Documentation~/Iris-Offset-Node.md | 4 + .../Iris-Out-Of-Bound-Color-Clamp-Node.md | 4 + .../Documentation~/Iris-UV-Location-Node.md | 4 + .../Documentation~/Is-Front-Face-Node.md | 4 + .../Documentation~/Is-Infinite-Node.md | 4 + .../Documentation~/Is-NaN-Node.md | 4 + .../Documentation~/Keyboard-shortcuts.md | 4 +- .../Documentation~/Keyword-Node.md | 4 + .../Documentation~/Length-Node.md | 4 + .../Documentation~/Lerp-Node.md | 4 + .../Linear-Blend-Skinning-Node.md | 4 + .../Documentation~/Log-Node.md | 4 + .../Main-Light-Direction-Node.md | 4 + .../Material-Quality-Keyword-Node.md | 1 + .../Documentation~/Matrix-2x2-Node.md | 4 + .../Documentation~/Matrix-3x3-Node.md | 4 + .../Documentation~/Matrix-4x4-Node.md | 4 + .../Matrix-Construction-Node.md | 4 + .../Documentation~/Matrix-Determinant-Node.md | 4 + .../Documentation~/Matrix-Split-Node.md | 4 + .../Documentation~/Matrix-Transpose-Node.md | 4 + .../Documentation~/Maximum-Node.md | 4 + .../Documentation~/Metal-Reflectance-Node.md | 4 + .../Documentation~/Minimum-Node.md | 4 + .../Documentation~/Modulo-Node.md | 4 + .../Documentation~/Multiply-Node.md | 4 + .../Documentation~/Nand-Node.md | 4 + .../Documentation~/Negate-Node.md | 4 + .../Documentation~/Noise-Sine-Wave-Node.md | 4 + .../Documentation~/Normal-Blend-Node.md | 4 + .../Documentation~/Normal-From-Height-Node.md | 4 + .../Normal-From-Texture-Node.md | 4 + .../Normal-Reconstruct-Z-Node.md | 4 + .../Documentation~/Normal-Strength-Node.md | 4 + .../Documentation~/Normal-Unpack-Node.md | 4 + .../Documentation~/Normal-Vector-Node.md | 4 + .../Documentation~/Normalize-Node.md | 4 + .../Documentation~/Not-Node.md | 4 + .../Documentation~/Object-Node.md | 4 + .../Documentation~/One-Minus-Node.md | 4 + .../Documentation~/Or-Node.md | 4 + .../Documentation~/Parallax-Mapping-Node.md | 4 + .../Parallax-Occlusion-Mapping-Node.md | 4 + .../Documentation~/Polar-Coordinates-Node.md | 4 + .../Documentation~/Polygon-Node.md | 4 + .../Documentation~/Position-Node.md | 4 + .../Documentation~/Posterize-Node.md | 4 + .../Documentation~/Power-Node.md | 4 + .../Documentation~/Preview-Node.md | 4 + .../Documentation~/Projection-Node.md | 4 + .../Documentation~/Property-Node.md | 4 + .../Documentation~/Radial-Shear-Node.md | 4 + .../Documentation~/Radians-To-Degrees-Node.md | 4 + .../Documentation~/Random-Range-Node.md | 4 + .../Raytracing-Quality-Keyword-Node.md | 1 + .../Documentation~/Reciprocal-Node.md | 4 + .../Reciprocal-Square-Root-Node.md | 4 + .../Documentation~/Rectangle-Node.md | 4 + .../Documentation~/Redirect-Node.md | 4 + .../Documentation~/Reflection-Node.md | 4 + .../Documentation~/Reflection-Probe-Node.md | 4 + .../Documentation~/Refract-Node.md | 4 + .../Documentation~/Rejection-Node.md | 4 + .../Documentation~/Remap-Node.md | 6 +- .../Documentation~/Replace-Color-Node.md | 4 + .../Documentation~/Rotate-About-Axis-Node.md | 4 + .../Documentation~/Rotate-Node.md | 4 + .../Documentation~/Round-Node.md | 4 + .../Documentation~/Rounded-Polygon-Node.md | 4 + .../Documentation~/Rounded-Rectangle-Node.md | 4 + .../Documentation~/Sample-Cubemap-Node.md | 4 + .../Documentation~/Sample-Gradient-Node.md | 4 + .../Sample-Reflected-Cubemap-Node.md | 4 + .../Sample-Texture-2D-Array-Node.md | 4 + .../Sample-Texture-2D-LOD-Node.md | 4 + .../Documentation~/Sample-Texture-2D-Node.md | 4 + .../Documentation~/Sample-Texture-3D-Node.md | 4 + .../Sample-Virtual-Texture-Node.md | 4 + .../Documentation~/Sampler-State-Node.md | 4 + .../Documentation~/Saturate-Node.md | 4 + .../Documentation~/Saturation-Node.md | 4 + .../Documentation~/Sawtooth-Wave-Node.md | 4 + .../Documentation~/Scene-Color-Node.md | 4 + .../Scene-Depth-Difference-Node.md | 4 + .../Documentation~/Scene-Depth-Node.md | 6 +- .../Documentation~/Sclera-Iris-Blend-Node.md | 4 + .../Documentation~/Sclera-Limbal-Ring-Node.md | 4 + .../Documentation~/Sclera-UV-Location-Node.md | 4 + .../Documentation~/Screen-Node.md | 4 + .../Documentation~/Screen-Position-Node.md | 3 + .../Documentation~/Sign-Node.md | 4 + .../Documentation~/Simple-Noise-Node.md | 6 +- .../Documentation~/Sine-Node.md | 4 + .../Slice-Index-Cubemap-Face-Node.md | 6 +- .../Documentation~/Slider-Node.md | 4 + .../Documentation~/Smoothstep-Node.md | 4 + .../Documentation~/Sphere-Mask-Node.md | 4 + .../Documentation~/Spherize-Node.md | 4 + .../Documentation~/Split-Node.md | 4 + .../Split-Texture-Transform-Node.md | 4 + .../Documentation~/Sprite-Skinning-Node.md | 4 + .../Documentation~/Square-Root-Node.md | 4 + .../Documentation~/Square-Wave-Node.md | 4 + .../Documentation~/Step-Node.md | 4 + .../Documentation~/Sub-graph-Node.md | 1 + .../Documentation~/Subtract-Node.md | 4 + .../Documentation~/Swizzle-Node.md | 5 + .../Documentation~/Tangent-Node.md | 4 + .../Documentation~/Tangent-Vector-Node.md | 4 + .../Documentation~/Terrain-Texture-Node.md | 4 + .../Texture-2D-Array-Asset-Node.md | 4 + .../Documentation~/Texture-2D-Asset-Node.md | 4 + .../Documentation~/Texture-3D-Asset-Node.md | 4 + .../Documentation~/Texture-Size-Node.md | 4 + .../Documentation~/ThreadMapDetail-Node.md | 4 + .../Documentation~/Tiling-And-Offset-Node.md | 4 + .../Documentation~/Time-Node.md | 4 + .../Documentation~/Transform-Node.md | 4 + .../Transformation-Matrix-Node.md | 4 + .../Documentation~/Triangle-Wave-Node.md | 4 + .../Documentation~/Triplanar-Node.md | 4 + .../Documentation~/Truncate-Node.md | 4 + .../Documentation~/Twirl-Node.md | 4 + .../Documentation~/UV-Node.md | 4 + .../Documentation~/UVCombine-Node.md | 4 + .../Documentation~/Vector-2-Node.md | 4 + .../Documentation~/Vector-3-Node.md | 4 + .../Documentation~/Vector-4-Node.md | 4 + .../Documentation~/Vertex-Color-Node.md | 4 + .../Documentation~/Vertex-ID-Node.md | 4 + .../Documentation~/View-Direction-Node.md | 4 + .../Documentation~/View-Vector-Node.md | 4 + .../Documentation~/Voronoi-Node.md | 4 + .../Documentation~/White-Balance-Node.md | 4 + .../default-bitmap-text-node.md | 3 +- .../Documentation~/default-gradient-node.md | 3 +- .../Documentation~/default-sdf-text-node.md | 3 +- .../Documentation~/default-solid-node.md | 3 +- .../Documentation~/default-texture-node.md | 3 +- .../Documentation~/element-layout-uv-node.md | 3 +- .../element-texture-size-node.md | 3 +- .../Documentation~/element-texture-uv-node.md | 3 +- .../Documentation~/render-type-branch-node.md | 1 + .../Documentation~/render-type-node.md | 3 +- .../sample-element-texture-node.md | 1 + .../snippets/nodes-example-samples.md | 1 + .../Editor/Drawing/Views/MaterialGraphView.cs | 11 +- .../ShaderLibrary/Shim/InputsShim.hlsl | 5 + .../BuiltIn/ShaderLibrary/UnityInput.hlsl | 5 + .../ShaderGraphLibrary/ShaderVariables.hlsl | 5 + Packages/com.unity.shadergraph/package.json | 2 +- .../Documentation~/Block-CollisionShape.md | 2 +- .../Context-Common-LandingPage.md | 16 + .../Context-Event-LandingPage.md | 14 + .../Context-OutputAdvanced-LandingPage.md | 15 + .../Context-OutputBasic-LandingPage.md | 17 + .../Documentation~/Context-OutputEvent.md | 21 + .../Context-OutputShaderGraphStrip.md | 4 +- .../Context-OutputStrip-LandingPage.md | 14 + .../Documentation~/Context-OutputStripQuad.md | 28 + .../Documentation~/Context.md | 27 +- ...perator-GetAttributeCollisionEventCount.md | 28 + ...erator-GetAttributeCollisionEventNormal.md | 25 + ...ator-GetAttributeCollisionEventPosition.md | 27 + .../Operator-GetAttributeHasCollisionEvent.md | 25 + .../Operator-GetAttributeMeshIndex.md | 23 + .../Operator-GetAttributeOldVelocity.md | 23 + ...erator-GetAttributeParticleCountInStrip.md | 18 +- .../Operator-GetAttributeSpawnCount.md | 22 + .../Operator-GetAttributeSpawnIndexInStrip.md | 24 + .../Operator-GetCustomAttribute.md | 7 +- .../Documentation~/Operator-RatioOverStrip.md | 8 +- .../Documentation~/OperatorAttribute.md | 9 + .../Documentation~/Reference-Attributes.md | 3 + .../Documentation~/TableOfContents.md | 50 +- .../Editor/Controls/VFXEnumValuePopup.cs | 8 +- .../GraphView/Blackboard/VFXBlackboard.cs | 3 +- .../Views/Controller/VFXViewController.cs | 2 + .../VFXViewControllerExpressions.cs | 9 + .../GraphView/Views/Properties/PropertyRM.cs | 3 +- .../Implementations/VFXOutputEvent.cs | 1 + .../Implementations/VFXQuadStripOutput.cs | 1 + .../Templates/VFXConfig.template.hlsl | 2 +- .../Shaders/SDFBaker/GenSdfRayMap.compute | 24 +- .../Shaders/VFXCommon.hlsl | 6 + .../Shaders/VFXOutputUpdate.template | 4 +- .../Shaders/VFXParticleCommon.template | 2 +- .../Shaders/VFXVolumetricFogUpdate.template | 2 +- .../QualityLevels/1HDRPPerformant.asset | 2 +- .../QualityLevels/2HDRPBalanced.asset | 2 +- .../QualityLevels/3HDRPHighFidelity.asset | 2 +- .../4HDRPRaytracingQuality.asset | 2 +- .../5HDRPRaytracingRTGIQuality.asset | 2 +- .../ProjectSettings/GraphicsSettings.asset | 2 +- .../TestRunner/HDRP_GraphicTestRunner.cs | 23 +- .../Runtime/UniversalGraphicsTestBase.cs | 109 ++ .../Runtime/ConfigureMockHMD.cs | 154 +- .../Tests/HDRP_Runtime_Graphics_Tests.cs | 5 + .../GraphicTests/Tests/HDRP_Graphics_Tests.cs | 16 +- .../CommonAssets/UniversalRPAsset.asset | 4 +- .../Assets/Scenes/019_CameraSortingLayer.meta | 8 + .../Scenes/019_CameraSortingLayer.unity | 3 + .../Scenes/019_CameraSortingLayer.unity.meta | 7 + .../019_CameraSortingLayer.asset | 57 + .../019_CameraSortingLayer.asset.meta | 8 + .../CameraSortingLayerShadergraph.shadergraph | 3 + ...raSortingLayerShadergraph.shadergraph.meta | 20 + .../064_RenderObjectsRendererFeature.meta | 8 + .../064_RenderObjectsRendererFeature.unity | 3 + ...64_RenderObjectsRendererFeature.unity.meta | 7 + ...4_RenderObjectsFeature Renderer Data.asset | 103 ++ ...derObjectsFeature Renderer Data.asset.meta | 8 + .../094_TilemapRenderer_MixedNormals.meta | 8 + .../094_TilemapRenderer_MixedNormals.unity | 3 + ...94_TilemapRenderer_MixedNormals.unity.meta | 7 + .../Auto Tile (3x3).meta | 8 + .../Auto Tile (3x3)/Sprites.meta | 8 + .../Sprites/Sprite_Tiles_Stone_walkway.png | 3 + .../Sprite_Tiles_Stone_walkway.png.meta | 1247 +++++++++++++++++ .../Sprite_Tiles_Stone_walkway_mask.png | 3 + .../Sprite_Tiles_Stone_walkway_mask.png.meta | 139 ++ .../Sprite_Tiles_Stone_walkway_normal.png | 3 + ...Sprite_Tiles_Stone_walkway_normal.png.meta | 131 ++ .../Auto Tile (3x3)/Tiles.meta | 8 + .../Tiles/AutoTile_Walkway.asset | 219 +++ .../Tiles/AutoTile_Walkway.asset.meta | 8 + .../Runtime/Renderer2DBackbufferDepthTests.cs | 200 +++ .../Renderer2DBackbufferDepthTests.cs.meta | 11 + .../Test/Runtime/Renderer2DDepthUsageTests.cs | 137 ++ .../Runtime/Renderer2DDepthUsageTests.cs.meta | 11 + .../AllTests/Editor/Tests/PropertyRMTests.cs | 54 + 370 files changed, 4383 insertions(+), 303 deletions(-) delete mode 100644 Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/LightAnimationExample.png create mode 100644 Packages/com.unity.shadergraph/Documentation~/snippets/nodes-example-samples.md create mode 100644 Packages/com.unity.visualeffectgraph/Documentation~/Context-Common-LandingPage.md create mode 100644 Packages/com.unity.visualeffectgraph/Documentation~/Context-Event-LandingPage.md create mode 100644 Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputAdvanced-LandingPage.md create mode 100644 Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputBasic-LandingPage.md create mode 100644 Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputEvent.md create mode 100644 Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputStrip-LandingPage.md create mode 100644 Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputStripQuad.md create mode 100644 Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeCollisionEventCount.md create mode 100644 Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeCollisionEventNormal.md create mode 100644 Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeCollisionEventPosition.md create mode 100644 Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeHasCollisionEvent.md create mode 100644 Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeMeshIndex.md create mode 100644 Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeOldVelocity.md create mode 100644 Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeSpawnCount.md create mode 100644 Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeSpawnIndexInStrip.md create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/019_CameraSortingLayer.meta create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/019_CameraSortingLayer.unity create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/019_CameraSortingLayer.unity.meta create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/019_CameraSortingLayer/019_CameraSortingLayer.asset create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/019_CameraSortingLayer/019_CameraSortingLayer.asset.meta create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/019_CameraSortingLayer/CameraSortingLayerShadergraph.shadergraph create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/019_CameraSortingLayer/CameraSortingLayerShadergraph.shadergraph.meta create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/064_RenderObjectsRendererFeature.meta create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/064_RenderObjectsRendererFeature.unity create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/064_RenderObjectsRendererFeature.unity.meta create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/064_RenderObjectsRendererFeature/064_RenderObjectsFeature Renderer Data.asset create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/064_RenderObjectsRendererFeature/064_RenderObjectsFeature Renderer Data.asset.meta create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/094_TilemapRenderer_MixedNormals.meta create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/094_TilemapRenderer_MixedNormals.unity create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/094_TilemapRenderer_MixedNormals.unity.meta create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/094_TilemapRenderer_MixedNormals/Auto Tile (3x3).meta create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/094_TilemapRenderer_MixedNormals/Auto Tile (3x3)/Sprites.meta create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/094_TilemapRenderer_MixedNormals/Auto Tile (3x3)/Sprites/Sprite_Tiles_Stone_walkway.png create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/094_TilemapRenderer_MixedNormals/Auto Tile (3x3)/Sprites/Sprite_Tiles_Stone_walkway.png.meta create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/094_TilemapRenderer_MixedNormals/Auto Tile (3x3)/Sprites/Sprite_Tiles_Stone_walkway_mask.png create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/094_TilemapRenderer_MixedNormals/Auto Tile (3x3)/Sprites/Sprite_Tiles_Stone_walkway_mask.png.meta create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/094_TilemapRenderer_MixedNormals/Auto Tile (3x3)/Sprites/Sprite_Tiles_Stone_walkway_normal.png create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/094_TilemapRenderer_MixedNormals/Auto Tile (3x3)/Sprites/Sprite_Tiles_Stone_walkway_normal.png.meta create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/094_TilemapRenderer_MixedNormals/Auto Tile (3x3)/Tiles.meta create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/094_TilemapRenderer_MixedNormals/Auto Tile (3x3)/Tiles/AutoTile_Walkway.asset create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/094_TilemapRenderer_MixedNormals/Auto Tile (3x3)/Tiles/AutoTile_Walkway.asset.meta create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Test/Runtime/Renderer2DBackbufferDepthTests.cs create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Test/Runtime/Renderer2DBackbufferDepthTests.cs.meta create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Test/Runtime/Renderer2DDepthUsageTests.cs create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Test/Runtime/Renderer2DDepthUsageTests.cs.meta diff --git a/Packages/com.unity.render-pipelines.core/CHANGELOG.md b/Packages/com.unity.render-pipelines.core/CHANGELOG.md index b7f3ba2481b..e4f5f9b8550 100644 --- a/Packages/com.unity.render-pipelines.core/CHANGELOG.md +++ b/Packages/com.unity.render-pipelines.core/CHANGELOG.md @@ -7,6 +7,9 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. ## [Unreleased] +### Fixed +- Fixed a `variant DISABLE_TEXTURE2D_X_ARRAY not found` shader error when copying MSAA textures on OpenGL ES 3.1 drivers that lack per-sample shading (`gl_SampleID`); these devices now fall back to a regular blit instead. + Version Updated The version number for this package has increased due to a version update of a related graphics package. diff --git a/Packages/com.unity.render-pipelines.core/Documentation~/UnifiedRayTracing/create-ray-tracing-context.md b/Packages/com.unity.render-pipelines.core/Documentation~/UnifiedRayTracing/create-ray-tracing-context.md index baa4d4f9d87..0f2d779654e 100644 --- a/Packages/com.unity.render-pipelines.core/Documentation~/UnifiedRayTracing/create-ray-tracing-context.md +++ b/Packages/com.unity.render-pipelines.core/Documentation~/UnifiedRayTracing/create-ray-tracing-context.md @@ -35,7 +35,20 @@ rtResources.Load(); ``` **Note:** Since the Player doesn't give access to the Asset Database, this method only works in the Editor. -To load the [`RayTracingResources`](xref:UnityEngine.Rendering.UnifiedRayTracing.RayTracingResources) in the Player, you can also build the **unifiedraytracing** AssetBundle. For more information about how to build and load AssetBundles, refer to [AssetBundles](xref:AssetBundlesIntro). +To load the [`RayTracingResources`](xref:UnityEngine.Rendering.UnifiedRayTracing.RayTracingResources) in the Player, you can also build an AssetBundle that includes the following SRP Core files: +- `Runtime/UnifiedRayTracing/Common/GeometryPool/GeometryPoolKernels.compute` +- `Runtime/UnifiedRayTracing/Common/Utilities/CopyBuffer.compute` +- `Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/copyPositions.compute` +- `Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/bit_histogram.compute` +- `Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/block_reduce_part.compute` +- `Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/block_scan.compute` +- `Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/build_hlbvh.compute` +- `Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/restructure_bvh.compute` +- `Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/scatter.compute` + +For more information about building and loading AssetBundles, refer to [AssetBundles](xref:AssetBundlesIntro). + +After you build the AssetBundle, use the following code to load it: ```C# var rtResources = new RayTracingResources(); diff --git a/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeGIBaking.RenderingLayers.cs b/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeGIBaking.RenderingLayers.cs index 79829a9883c..4aa3eeae836 100644 --- a/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeGIBaking.RenderingLayers.cs +++ b/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeGIBaking.RenderingLayers.cs @@ -116,7 +116,7 @@ static AccelStructAdapter BuildAccelerationStructure() if (mesh == null) continue; - if (renderer.component is SkinnedMeshRenderer) + if (renderer.component is not MeshRenderer) continue; int subMeshCount = mesh.subMeshCount; diff --git a/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeGIBaking.SkyOcclusion.cs b/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeGIBaking.SkyOcclusion.cs index 3207aa7e536..ca720ea4c99 100644 --- a/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeGIBaking.SkyOcclusion.cs +++ b/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeGIBaking.SkyOcclusion.cs @@ -213,7 +213,7 @@ static AccelStructAdapter BuildAccelerationStructure() if (!s_TracingContext.TryGetMeshForAccelerationStructure(renderer.component, out var mesh)) continue; - if (renderer.component is SkinnedMeshRenderer) + if (renderer.component is not MeshRenderer) continue; int subMeshCount = mesh.subMeshCount; diff --git a/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeGIBaking.VirtualOffset.cs b/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeGIBaking.VirtualOffset.cs index 5cc06919cfc..cef99178c2a 100644 --- a/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeGIBaking.VirtualOffset.cs +++ b/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeGIBaking.VirtualOffset.cs @@ -140,7 +140,7 @@ static AccelStructAdapter BuildAccelerationStructure(int mask) if (!s_TracingContext.TryGetMeshForAccelerationStructure(renderer.component, out var mesh)) continue; - if (renderer.component is SkinnedMeshRenderer) + if (renderer.component is not MeshRenderer) continue; int subMeshCount = mesh.subMeshCount; diff --git a/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/FrustumPlanes.cs b/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/FrustumPlanes.cs index f8369a7d725..c55dfd39d06 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/FrustumPlanes.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/FrustumPlanes.cs @@ -63,9 +63,9 @@ internal static ReceiverPlanes CreateEmptyForTesting(Allocator allocator) }; } - internal void Dispose(JobHandle job) + internal JobHandle Dispose(JobHandle job) { - planes.Dispose(job); + return planes.Dispose(job); } internal static ReceiverPlanes Create(in BatchCullingContext cc, Allocator allocator) @@ -231,10 +231,9 @@ internal struct SplitInfo public NativeList planePackets; public NativeList splitInfos; - internal void Dispose(JobHandle job) + internal JobHandle Dispose(JobHandle job) { - planePackets.Dispose(job); - splitInfos.Dispose(job); + return JobHandle.CombineDependencies(planePackets.Dispose(job), splitInfos.Dispose(job)); } internal static FrustumPlaneCuller Create(in BatchCullingContext cc, NativeArray receiverPlanes, in ReceiverSphereCuller receiverSphereCuller, Allocator allocator) @@ -343,9 +342,9 @@ internal static ReceiverSphereCuller CreateEmptyForTesting(Allocator allocator) }; } - internal void Dispose(JobHandle job) + internal JobHandle Dispose(JobHandle job) { - splitInfos.Dispose(job); + return splitInfos.Dispose(job); } internal bool UseReceiverPlanes() 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 9fd9c0403f3..ccb7a654f2c 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/InstanceCuller.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/InstanceCuller.cs @@ -1900,11 +1900,10 @@ private unsafe JobHandle CreateFrustumCullingJob( sceneCullingMask = cc.sceneCullingMask, }.Schedule(instanceData.instancesLength, CullingJob.k_BatchSize, jobHandle); - receiverPlanes.Dispose(cullingJob); - frustumPlaneCuller.Dispose(cullingJob); - receiverSphereCuller.Dispose(cullingJob); - - return cullingJob; + return JobHandle.CombineDependencies( + receiverPlanes.Dispose(cullingJob), + frustumPlaneCuller.Dispose(cullingJob), + receiverSphereCuller.Dispose(cullingJob)); } private int ComputeWorstCaseDrawCommandCount( @@ -2211,10 +2210,9 @@ private JobHandle CreateFilteringCullingOutputJob_EditorOnly(in BatchCullingCont var drawOutputHandle = drawOutputJob.Schedule(cullingJobHandle); - filteredRenderers.Dispose(drawOutputHandle); - dummyExcludedRenderers.Dispose(drawOutputHandle); - - return drawOutputHandle; + return JobHandle.CombineDependencies( + filteredRenderers.Dispose(drawOutputHandle), + dummyExcludedRenderers.Dispose(drawOutputHandle)); } private JobHandle CreatePickingCullingOutputJob_EditorOnly(in BatchCullingContext cc, BatchCullingOutput cullingOutput, diff --git a/Packages/com.unity.render-pipelines.core/Runtime/RenderGraph/Compiler/PassesData.cs b/Packages/com.unity.render-pipelines.core/Runtime/RenderGraph/Compiler/PassesData.cs index 2dad1fa981d..7cbebad62d1 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/RenderGraph/Compiler/PassesData.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/RenderGraph/Compiler/PassesData.cs @@ -1061,6 +1061,10 @@ public static PassBreakAudit CanMerge(CompilerContextData contextData, int activ static bool TotalAttachmentsSizeExceedPixelStorageLimit(CompilerContextData contextData, ref NativePassData nativePass, ref FixedAttachmentArray attachmentsToTryAdding) { + // A merge that adds no attachment cannot grow the tile footprint, so it can never exceed the limit + if (attachmentsToTryAdding.size == 0) + return false; + // TODO: We are currently only checking for iOS GPU Family 1 to 3 since the storage size is much more restricted (16 bytes for Family 1 and 32 for Family 2 & 3). // This is temporary. Later on, we should check all iOS GPU Families but also Android (Vulkan) to avoid the same potential restrictions. if (Application.platform == RuntimePlatform.IPhonePlayer && SystemInfo.maxTiledPixelStorageSize <= 32) diff --git a/Packages/com.unity.render-pipelines.core/Runtime/STP/StpCommon.hlsl b/Packages/com.unity.render-pipelines.core/Runtime/STP/StpCommon.hlsl index 4e21a5a2324..7fbf3531c56 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/STP/StpCommon.hlsl +++ b/Packages/com.unity.render-pipelines.core/Runtime/STP/StpCommon.hlsl @@ -42,19 +42,8 @@ #define STP_TAA_Q 0 #endif -#if defined(SHADER_API_SWITCH) || defined(SHADER_API_SWITCH2) - #define STP_BUG_SAT_INF 1 -#endif - -// Enable workarounds that help us avoid issues on Metal -#if defined(SHADER_API_METAL) - // Relying on infinity behavior causes issues in the on-screen inline pass calculations - // We expect this option to be required on Metal because the shading language spec states that the fast-math - // option is on by default which disables support for proper INF handling. - #define STP_BUG_SAT_INF 1 -#endif - -#if defined(SHADER_API_PSSL) +// No guaranteed INF/NaN arithmetic on these platforms (fast-math by default) +#if defined(SHADER_API_VULKAN) || defined(SHADER_API_METAL) || defined(SHADER_API_SWITCH) || defined(SHADER_API_SWITCH2) || defined(SHADER_API_PSSL) || defined(SHADER_API_WEBGPU) #define STP_BUG_SAT_INF 1 #endif diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/GeometryPool/GeometryPoolKernels.compute.meta b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/GeometryPool/GeometryPoolKernels.compute.meta index cc557f06e82..e17cc5f82d2 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/GeometryPool/GeometryPoolKernels.compute.meta +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/GeometryPool/GeometryPoolKernels.compute.meta @@ -3,5 +3,5 @@ guid: 98e3d58cae7210c4786f67f504c9e899 ComputeShaderImporter: externalObjects: {} userData: - assetBundleName: unifiedraytracing + assetBundleName: assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/Utilities/CopyBuffer.compute.meta b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/Utilities/CopyBuffer.compute.meta index 11d24f17516..3019159bf4e 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/Utilities/CopyBuffer.compute.meta +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/Utilities/CopyBuffer.compute.meta @@ -3,5 +3,5 @@ guid: 1b95b5dcf48d1914c9e1e7405c7660e3 ComputeShaderImporter: externalObjects: {} userData: - assetBundleName: unifiedraytracing + assetBundleName: assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/CopyPositions.compute.meta b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/CopyPositions.compute.meta index c38dc07b130..5fc1c69bb8f 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/CopyPositions.compute.meta +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/CopyPositions.compute.meta @@ -3,5 +3,5 @@ guid: 1ad53a96b58d3c3488dde4f14db1aaeb ComputeShaderImporter: externalObjects: {} userData: - assetBundleName: unifiedraytracing + assetBundleName: assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/bit_histogram.compute.meta b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/bit_histogram.compute.meta index 70fdcec3673..c9f5fa6abca 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/bit_histogram.compute.meta +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/bit_histogram.compute.meta @@ -3,5 +3,5 @@ guid: 8670f7ce4b60cef43bed36148aa1b0a2 ComputeShaderImporter: externalObjects: {} userData: - assetBundleName: unifiedraytracing + assetBundleName: assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/block_reduce_part.compute.meta b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/block_reduce_part.compute.meta index b100a6c36fe..80fefc4585e 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/block_reduce_part.compute.meta +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/block_reduce_part.compute.meta @@ -3,5 +3,5 @@ guid: 4e034cc8ea2635c4e9f063e5ddc7ea7a ComputeShaderImporter: externalObjects: {} userData: - assetBundleName: unifiedraytracing + assetBundleName: assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/block_scan.compute.meta b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/block_scan.compute.meta index 4d5a4a0920b..f14801f69fc 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/block_scan.compute.meta +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/block_scan.compute.meta @@ -3,5 +3,5 @@ guid: 4d6d5de35fa45ef4a92119397a045cc9 ComputeShaderImporter: externalObjects: {} userData: - assetBundleName: unifiedraytracing + assetBundleName: assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/build_hlbvh.compute.meta b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/build_hlbvh.compute.meta index 971d99892e2..57b6939e4e0 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/build_hlbvh.compute.meta +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/build_hlbvh.compute.meta @@ -3,5 +3,5 @@ guid: 2d70cd6be91bd7843a39a54b51c15b13 ComputeShaderImporter: externalObjects: {} userData: - assetBundleName: unifiedraytracing + assetBundleName: assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/restructure_bvh.compute.meta b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/restructure_bvh.compute.meta index fb35c9df3bb..16e89b34855 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/restructure_bvh.compute.meta +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/restructure_bvh.compute.meta @@ -3,5 +3,5 @@ guid: 56641cb88dcb31a4398a4997ef7a7a8c ComputeShaderImporter: externalObjects: {} userData: - assetBundleName: unifiedraytracing + assetBundleName: assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/scatter.compute.meta b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/scatter.compute.meta index 0e873b73394..a35f3085641 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/scatter.compute.meta +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Compute/RadeonRays/kernels/scatter.compute.meta @@ -3,5 +3,5 @@ guid: a2eaeefdac4637a44b734e85b7be9186 ComputeShaderImporter: externalObjects: {} userData: - assetBundleName: unifiedraytracing + assetBundleName: assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Utilities/Blitter.cs b/Packages/com.unity.render-pipelines.core/Runtime/Utilities/Blitter.cs index 5962100a8b0..4285bd7b7df 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/Utilities/Blitter.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/Utilities/Blitter.cs @@ -191,7 +191,7 @@ public static void Initialize(Shader blitPS, Shader blitColorAndDepthPS) { if (!s_TriangleMesh) { - s_TriangleMesh = new Mesh(); + s_TriangleMesh = new Mesh { hideFlags = HideFlags.HideAndDontSave }; s_TriangleMesh.vertices = GetFullScreenTriangleVertexPosition(nearClipZ); s_TriangleMesh.uv = GetFullScreenTriangleTexCoord(); s_TriangleMesh.triangles = new int[3] { 0, 1, 2 }; @@ -199,7 +199,7 @@ public static void Initialize(Shader blitPS, Shader blitColorAndDepthPS) } if (!s_QuadMesh) { - s_QuadMesh = new Mesh(); + s_QuadMesh = new Mesh { hideFlags = HideFlags.HideAndDontSave }; s_QuadMesh.vertices = GetQuadVertexPosition(nearClipZ); s_QuadMesh.uv = GetQuadTexCoord(); s_QuadMesh.triangles = new int[6] { 0, 1, 2, 0, 2, 3 }; @@ -361,6 +361,15 @@ internal static bool CanCopyMSAA() return false; } + // The MSAA pass fetches samples via SV_SampleIndex (gl_SampleID), which needs per-sample + // shading. On GLES that comes with the ES3.2/AEP tier; plain-ES3.1 drivers (e.g. RPi5/V3D, + // no GL_OES_sample_variables) ship the pass but reject it at load, and passCount only + // reflects build-target support. Scope to GLES so backends that support the non-array + // Texture2DMS + SV_SampleIndex path (e.g. WebGPU) keep the sample-preserving copy. + if (SystemInfo.graphicsDeviceType == GraphicsDeviceType.OpenGLES3 + && !SystemInfo.supportsMultisampled2DArrayTextures) + return false; + // This test works since the second pass has the following pragmas and will not be compiled if they are not supported // #pragma target 4.5 // #pragma require msaatex 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 e3aa1d2d2ec..27ac2bc40ef 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: {instanceID: 0} + icon: {fileID: 2800000, guid: 177b2538515c71b4a86aa1cad939807a, type: 2} userData: assetBundleName: assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.core/Tests/Runtime/RuntimeProfilerTests.cs b/Packages/com.unity.render-pipelines.core/Tests/Runtime/RuntimeProfilerTests.cs index ee29f1edc51..4e863cb75ae 100644 --- a/Packages/com.unity.render-pipelines.core/Tests/Runtime/RuntimeProfilerTests.cs +++ b/Packages/com.unity.render-pipelines.core/Tests/Runtime/RuntimeProfilerTests.cs @@ -71,6 +71,15 @@ public IEnumerator RuntimeProfilerGivesNonZeroOutput() Assert.Ignore("Test is failing on Linux OpenGLCore. https://jira.unity3d.com/browse/GFXFOUND-559"); } + // The EmbeddedLinux OpenGLES3 CI device (Raspberry Pi V3D / Mesa GLES 3.1) does not expose + // GL_EXT_disjoint_timer_query, so GPU frame timing is always zero there. + if ((Application.platform == RuntimePlatform.EmbeddedLinuxArm64 || + Application.platform == RuntimePlatform.EmbeddedLinuxX64) + && SystemInfo.graphicsDeviceType == GraphicsDeviceType.OpenGLES3) + { + Assert.Ignore("GPU frame timing is not supported on EmbeddedLinux GLES (no GL_EXT_disjoint_timer_query), skipping test."); + } + yield return Warmup(); m_ToCleanup = new GameObject(); diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/LightAnimationExample.png b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/LightAnimationExample.png deleted file mode 100644 index 4c6483c0318..00000000000 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/LightAnimationExample.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2b7eef2a7f895e8d42990dd2df8d14f8aae1956a1538122c874abc9c90d3d112 -size 37771 diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/creating-and-editing-lights-at-runtime.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/creating-and-editing-lights-at-runtime.md index aa98517df09..50f4030902f 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/creating-and-editing-lights-at-runtime.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/creating-and-editing-lights-at-runtime.md @@ -4,65 +4,66 @@ The High Definition Render Pipeline (HDRP) extends Unity's [Light](https://docs. ## Create a new light -HDRP provides a utility function that adds both the Light and HDAdditionalLightData components to a GameObject, and sets up its dependencies. The function is `AddHDLight` and it takes an [HDLightTypeAndShape](xref:UnityEngine.Rendering.HighDefinition.GameObjectExtension.AddHDLight(UnityEngine.GameObject,UnityEngine.Rendering.HighDefinition.HDLightTypeAndShape)) as a parameter which sets the Light's type and shape. The light unit for the intensity will be determined depending on the light type and shape. To learn more about light units and shapes, see the [Light documentation](https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@latest?subfolder=/manual/Light-Component.html). +HDRP provides a utility function that adds both the Light and HDAdditionalLightData components to a GameObject, and sets up its dependencies. The function is [`AddHDLight`](xref:UnityEngine.Rendering.HighDefinition.GameObjectExtension.AddHDLight*). The light unit for the intensity will be determined depending on the light type and shape. To learn more about light units and shapes, refer to [Create and configure light sources](Light-Component.md). ```cs using UnityEngine; +using UnityEngine.Rendering; using UnityEngine.Rendering.HighDefinition; public class LightScript : MonoBehaviour { void Start() { - var light = gameObject.AddHDLight(HDLightTypeAndShape.ConeSpot); + var hdLight = gameObject.AddHDLight(LightType.Spot); + var lightComponent = hdLight.GetComponent(); // Setup light parameters here } } ``` -There is also a [RemoveHDLight](https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@latest?subfolder=/api/UnityEngine.Rendering.HighDefinition.GameObjectExtension.html#UnityEngine_Rendering_HighDefinition_GameObjectExtension_AddHDLight_UnityEngine_GameObject_UnityEngine_Rendering_HighDefinition_HDLightTypeAndShape_) method to remove the light created with AddHDLight. +There is also a [RemoveHDLight](https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@latest?subfolder=/api/UnityEngine.Rendering.HighDefinition.GameObjectExtension.html#UnityEngine_Rendering_HighDefinition_GameObjectExtension_RemoveHDLight_UnityEngine_GameObject_) method to remove the light created with AddHDLight. Note: Another good way of spawning lights is simply by spawning prefabs of lights you configured in the editor, this is also more efficient than manually adding components and setting values. -## Edit an existing Light +## Change the intensity -HDRP does not use the data stored in the Light component. Instead it stores Light data in another component called `HDAdditionalLightData`. To access a property, use the `HDAdditionalLightData` component, even if the property is visible in the Light component Inspector. +Set the light intensity using the Light component. Follow these steps: -### Change the intensity and color +1. Set the units using the `lightUnit` property of the Light component. For example: -There are multiple ways of changing the intensity of a light by script. You can either use the **SetIntensity** or assign directly the intensity value but keep in mind that the value you set will use the current light unit of the light component. + ```cs + lightComponent.lightUnit = LightUnit.Lumen; + ``` -Set light intensity in a specified unit: +1. Set the intensity using the `ConvertIntensity` method of the `LightUnitUtils` class, to convert to the correct unit for the light type and shape. -```cs -light.SetIntensity(5000, LightUnit.Lumen); // Intensity for a street lamp -``` + For example: -Set light intensity using the current light unit: + ```cs + LightUnit nativeUnit = LightUnitUtils.GetNativeLightUnit(lightComponent.type); + lightComponent.intensity = LightUnitUtils.ConvertIntensity(lightComponent, 600f, LightUnit.Lumen, nativeUnit); + ``` -```cs -light.intensity = 1200; -``` +## Change the color -Set light color: +Set the light color using the HDAdditionalLightData component. For example: ```cs -light.color = Color.red; +hdLight.color = Color.red; ``` Set light color temperature in Kelvin: ```cs -light.SetColor(Color.white, 1900); // 1900K is the color of a candle +hdLight.SetColor(Color.white, 1900); // 1900K is the color of a candle ``` Note: when you set the color/intensity of the light, it also affects the emissive plane color of area lights if enabled. ## Animate lights -Light in HDRP can be animated like regular lights, though an important thing to note is that the values recorded in the animation are coming from both the HDAdditionalLightData component and Light component as you can see in the image below. - -![Light-Animation-Example](Images/LightAnimationExample.png) +Light in HDRP can be animated like regular lights, though an important thing to note is that the values recorded in the animation are coming from both the HDAdditionalLightData component and Light component. Also, animated lights have a slightly more expensive cost on the CPU because of the additional calculation that needs to be made when light values are changing. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/volumetric-clouds-volume-override-reference.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/volumetric-clouds-volume-override-reference.md index f14b3bcbfc2..d4a07371472 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/volumetric-clouds-volume-override-reference.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/volumetric-clouds-volume-override-reference.md @@ -119,8 +119,8 @@ Also, there is variations in the green and blue channels to specify more of less ![A rectangular texture with 8 bands of 32 pixels each. The first 3 bands are thin clouds at different heights. The next band is a tall fluffy cloud. The next 3 bands are clouds that get spottier at different heights. The final band is a curving vertical cloud. The edge at 96 pixels maps to the top-left of the sky, and the edge at 128 pixels maps to the center of the sky. The final image is a tower of layered cloud, with smaller clouds scattered nearby.)](Images/Volumetric-Clouds-manual-lut.png) -Here is an example cloud LUT that can be used in manual mode. On the top image, the LUT is divided into 8 32px wide parts, each representing a cloud type with a specific profile and altitude. (stratus on the left and cumulus on the right) -On the bottom left, the cloud map uses grayscale values to map which type of clouds is used. For exemple a radial gradient using thoses values creates a circular cloud as seen on the bottom right using the profile set on the cloud LUT. +Here is an example cloud LUT that can be used in manual mode. On the top image, the LUT is divided into 8 32px wide parts, each representing a cloud type with a specific profile and altitude (stratus on the left and cumulus on the right). +On the bottom left, the cloud map uses grayscale values to map which type of clouds is used. For example, a radial gradient using those values creates a circular cloud as seen on the bottom right using the profile set on the cloud LUT. For more examples, you can get the [environment samples](HDRP-Sample-Content.html#environment-samples) from the package manager. **Note**: This cloud map is formatted differently to the cloud map that the [Cloud Layer](create-simple-clouds-cloud-layer.md) feature uses. diff --git a/Packages/com.unity.render-pipelines.high-definition/Editor/BuildProcessors/HDRPPreprocessShaders.cs b/Packages/com.unity.render-pipelines.high-definition/Editor/BuildProcessors/HDRPPreprocessShaders.cs index c5ff8626778..b308a221598 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Editor/BuildProcessors/HDRPPreprocessShaders.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Editor/BuildProcessors/HDRPPreprocessShaders.cs @@ -306,7 +306,7 @@ protected override bool DoShadersStripper(HDRenderPipelineAsset hdrpAsset, Shade bool useBicubicLightmapSampling = false; if (GraphicsSettings.TryGetRenderPipelineSettings(out var lightmapSamplingSettings)) useBicubicLightmapSampling = lightmapSamplingSettings.useBicubicLightmapSampling; - if (inputData.shaderKeywordSet.IsEnabled(m_LightmapBicubicSampling) != useBicubicLightmapSampling) + if (inputData.shaderKeywordSet.IsEnabled(m_LightmapBicubicSampling) && !useBicubicLightmapSampling) return true; } diff --git a/Packages/com.unity.render-pipelines.high-definition/Editor/VFXGraph/Outputs/VFXLitQuadStripOutput.cs b/Packages/com.unity.render-pipelines.high-definition/Editor/VFXGraph/Outputs/VFXLitQuadStripOutput.cs index 8288588d45f..1e56877c08e 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Editor/VFXGraph/Outputs/VFXLitQuadStripOutput.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Editor/VFXGraph/Outputs/VFXLitQuadStripOutput.cs @@ -5,6 +5,7 @@ namespace UnityEditor.VFX.HDRP { + [VFXHelpURL("Context-OutputStripQuad")] [VFXInfo(name = "Output ParticleStrip|HDRP Lit|Quad", category = "#3Output Strip", experimental = true, synonyms = new []{ "Trail", "Ribbon" })] class VFXLitQuadStripOutput : VFXAbstractParticleHDRPLitOutput { diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl b/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl index 37f49b3bf75..ef63e91e92f 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl @@ -383,7 +383,7 @@ NormalData ConvertSurfaceDataToNormalData(SurfaceData surfaceData) // If the fragment that we are processing has clear cloat, we want to export the clear coat's perceptual roughness and geometric normal // instead of the base layer's roughness and the shader normal to be use by SSR #if (SHADERPASS == SHADERPASS_DEPTH_ONLY) || (SHADERPASS == SHADERPASS_MOTION_VECTORS) || (SHADERPASS == SHADERPASS_TRANSPARENT_DEPTH_PREPASS) - if (HasFlag(surfaceData.materialFeatures, MATERIALFEATUREFLAGS_LIT_CLEAR_COAT)) + if (HasFlag(surfaceData.materialFeatures, MATERIALFEATUREFLAGS_LIT_CLEAR_COAT) && surfaceData.coatMask > 0.0) { normalData.normalWS = surfaceData.geomNormalWS; normalData.perceptualRoughness = CLEAR_COAT_SSR_PERCEPTUAL_ROUGHNESS; diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl b/Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl index f099f5e35a4..2d292a12ac1 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl @@ -370,8 +370,13 @@ float4x4 OptimizeProjectionMatrix(float4x4 M) // | 0 0 0 1 | | 0 0 x 0 | | 0 0 x x | // Notice that some values are always 0. // We can avoid loading and doing math with constants. + // But not true under Vulkan swapchain pre-transform: a 90/270 degree rotation swaps rows 0 and 1 + // (Runtime/GfxDevice/vulkan/VKPreTransform.cpp), moving the scale terms onto _21/_12; exactly + // the entries cleared below, which would leave UNITY_MATRIX_P with an all-zero 2x2 +#ifndef UNITY_PRETRANSFORM_TO_DISPLAY_ORIENTATION M._21_41 = 0; M._12_42 = 0; +#endif return M; } diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXCommon.hlsl b/Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXCommon.hlsl index dce90c1b99b..0fb31fbae2d 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXCommon.hlsl +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXCommon.hlsl @@ -5,6 +5,8 @@ #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/AtmosphericScattering/AtmosphericScattering.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Builtin/BuiltinData.hlsl" +#define unity_CameraWorldClipPlanes _FrustumPlanes + void VFXEncodeMotionVector(float2 motionVec, out float4 outBuffer) { EncodeMotionVector(motionVec, outBuffer); diff --git a/Packages/com.unity.render-pipelines.high-definition/Tests/Editor/DiffusionProfileSettingsTests.cs b/Packages/com.unity.render-pipelines.high-definition/Tests/Editor/DiffusionProfileSettingsTests.cs index 2e957658105..8bf1de03d23 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Tests/Editor/DiffusionProfileSettingsTests.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Tests/Editor/DiffusionProfileSettingsTests.cs @@ -15,6 +15,9 @@ public class DiffusionProfileSettingsTests private DiffusionProfileSettings m_Profile = null; private Material m_Material = null; private bool m_OldAutoRegisterValue = false; + private VolumeProfile m_VolumeProfile; + private DiffusionProfileList m_DiffusionProfileList; + private DiffusionProfileSettings[] m_RollbackProfiles; [SetUp] public void Setup() @@ -31,6 +34,11 @@ public void Setup() m_OldAutoRegisterValue = m_DiffusionProfileSettings.autoRegister; m_DiffusionProfileSettings.autoRegister = false; + Assert.IsTrue(GraphicsSettings.TryGetRenderPipelineSettings(out var defaultVolumeProfileSettings)); + m_VolumeProfile = defaultVolumeProfileSettings.volumeProfile; + m_DiffusionProfileList = VolumeUtils.GetOrCreateDiffusionProfileList(m_VolumeProfile); + m_RollbackProfiles = m_DiffusionProfileList.ToArray(); + m_Profile = ScriptableObject.CreateInstance(); CoreUtils.EnsureFolderTreeInAssetFilePath(k_ProfilePath); AssetDatabase.CreateAsset(m_Profile, k_ProfilePath); @@ -48,6 +56,16 @@ public void TearDown() m_DiffusionProfileSettings.autoRegister = m_OldAutoRegisterValue; + // Restore the shared list here (not at the end of the test body) so an assert failure can't leave the + // default volume profile's DiffusionProfileList emptied and leak into subsequent tests. Mirror the + // mutation path so the revert flushes to disk and clears VolumeManager's cached state. + if (m_DiffusionProfileList != null) + { + m_DiffusionProfileList.ReplaceWithArray(m_RollbackProfiles); + EditorUtility.SetDirty(m_VolumeProfile); + VolumeManager.instance.OnVolumeProfileChanged(m_VolumeProfile); + } + AssetDatabase.DeleteAsset(k_MaterialPath); AssetDatabase.DeleteAsset(k_ProfilePath); AssetDatabase.SaveAssets(); @@ -63,17 +81,17 @@ public void When_AutoRegister_IsTrue_TheDiffusionProfileIsRegistered() Assert.IsInstanceOf(defaultVolumeProfileSettings); - var diffusionProfileList = VolumeUtils.GetOrCreateDiffusionProfileList(defaultVolumeProfileSettings.volumeProfile); - var profiles = diffusionProfileList.ToArray(); - - diffusionProfileList.ReplaceWithArray(Array.Empty()); + m_DiffusionProfileList.ReplaceWithArray(Array.Empty()); m_DiffusionProfileSettings.autoRegister = true; HDMaterial.SetDiffusionProfile(m_Material, m_Profile); AssetDatabase.SaveAssets(); + // Registration is driven by OnPostprocessAllAssets over the import batch; SaveAssets alone doesn't + // reliably re-import the material, so force it to guarantee the postprocessor sees m_Material. + AssetDatabase.ImportAsset(k_MaterialPath, ImportAssetOptions.ForceUpdate); bool found = false; - foreach (var d in diffusionProfileList.ToArray()) + foreach (var d in m_DiffusionProfileList.ToArray()) { if (d != m_Profile) continue; @@ -82,9 +100,6 @@ public void When_AutoRegister_IsTrue_TheDiffusionProfileIsRegistered() break; } Assert.IsTrue(found); - - // Rollback previous data - diffusionProfileList.ReplaceWithArray(profiles); } } } diff --git a/Packages/com.unity.render-pipelines.high-definition/Tests/Editor/DiffusionProfilesTests.cs b/Packages/com.unity.render-pipelines.high-definition/Tests/Editor/DiffusionProfilesTests.cs index f899eb1772e..874d19cb899 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Tests/Editor/DiffusionProfilesTests.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Tests/Editor/DiffusionProfilesTests.cs @@ -16,6 +16,7 @@ public class DiffusionProfileTests : MonoBehaviour private bool m_AutoRegister = false; private DiffusionProfileSettings[] m_RollBackProfiles; private DiffusionProfileList m_List; + private VolumeProfile m_VolumeProfile; static DiffusionProfileSettings CreateValidDiffusionProfile() { @@ -50,7 +51,8 @@ public void OneTimeSetup() Assert.IsInstanceOf(defaultVolumeProfileSettings); m_AutoRegister = diffusionProfileDefaultSettings.autoRegister; - m_List = VolumeUtils.GetOrCreateDiffusionProfileList(defaultVolumeProfileSettings.volumeProfile); + m_VolumeProfile = defaultVolumeProfileSettings.volumeProfile; + m_List = VolumeUtils.GetOrCreateDiffusionProfileList(m_VolumeProfile); m_RollBackProfiles = m_List.ToArray(); } @@ -59,14 +61,36 @@ public void OneTimeTearDown() { if (m_Profile != null) // If it is null, no setup has been done { - GraphicsSettings.GetRenderPipelineSettings().autoRegister = m_AutoRegister; - m_List.ReplaceWithArray(m_RollBackProfiles); + RestoreSharedState(); AssetDatabase.DeleteAsset($"Assets/Temp/{nameof(DiffusionProfileTests)}"); AssetDatabase.SaveAssets(); } } + // The autoRegister flag and the default volume profile's DiffusionProfileList are process-wide singletons + // shared with sibling fixtures. Restore them to the captured baseline around every test so a test that + // mutates them (DiffusionProfile_AutoRegister, RegisterReferencedDiffusionProfiles) can't leak that state + // into whichever test NUnit orders next. + [SetUp] + public void SetUp() => RestoreSharedState(); + + [TearDown] + public void TearDown() => RestoreSharedState(); + + void RestoreSharedState() + { + if (m_List == null) // OneTimeSetup ignored the fixture (HDRP not current) + return; + + GraphicsSettings.GetRenderPipelineSettings().autoRegister = m_AutoRegister; + m_List.ReplaceWithArray(m_RollBackProfiles); + // Mirror the mutation path (VolumeUtils.TryAddDiffusionProfiles) so the revert flushes to disk on the + // next SaveAssets and VolumeManager's cached default state doesn't keep the mutated profiles. + EditorUtility.SetDirty(m_VolumeProfile); + VolumeManager.instance.OnVolumeProfileChanged(m_VolumeProfile); + } + private static void CreateMaterialAndSetProfile(string materialPath, DiffusionProfileSettings profile) { materialPath = AssetDatabase.GenerateUniqueAssetPath(materialPath); diff --git a/Packages/com.unity.render-pipelines.universal/Editor/ShaderBuildPreprocessor.cs b/Packages/com.unity.render-pipelines.universal/Editor/ShaderBuildPreprocessor.cs index 1820f5fb93d..d450bb8c5d2 100644 --- a/Packages/com.unity.render-pipelines.universal/Editor/ShaderBuildPreprocessor.cs +++ b/Packages/com.unity.render-pipelines.universal/Editor/ShaderBuildPreprocessor.cs @@ -423,9 +423,12 @@ private static void GetEveryShaderFeatureAndUpdateURPAssets(List // Update the Prefiltering settings for this URP asset urpAsset.UpdateShaderKeywordPrefiltering(ref spd); - // Save the asset before build - EditorUtility.SetDirty(urpAsset); - AssetDatabase.SaveAssetIfDirty(urpAsset); + if (!AssetDatabase.IsAssetImportWorkerProcess()) + { + // Save the asset before build + EditorUtility.SetDirty(urpAsset); + AssetDatabase.SaveAssetIfDirty(urpAsset); + } } } } @@ -495,9 +498,12 @@ ref ssaoRendererFeatures // Update the Prefiltering settings for this URP asset urpAsset.UpdateShaderKeywordPrefiltering(ref spd); - // Save the asset before build - EditorUtility.SetDirty(urpAsset); - AssetDatabase.SaveAssetIfDirty(urpAsset); + if (!AssetDatabase.IsAssetImportWorkerProcess()) + { + // Save the asset before build + EditorUtility.SetDirty(urpAsset); + AssetDatabase.SaveAssetIfDirty(urpAsset); + } // Clean up ssaoRendererFeatures.Clear(); diff --git a/Packages/com.unity.render-pipelines.universal/Editor/ShaderGUI/ParticleGUI.cs b/Packages/com.unity.render-pipelines.universal/Editor/ShaderGUI/ParticleGUI.cs index 21d91b45c6b..92121ec28d2 100644 --- a/Packages/com.unity.render-pipelines.universal/Editor/ShaderGUI/ParticleGUI.cs +++ b/Packages/com.unity.render-pipelines.universal/Editor/ShaderGUI/ParticleGUI.cs @@ -621,7 +621,7 @@ public static void SetMaterialKeywords(Material material) material.SetFloat("_DistortionStrengthScaled", material.GetFloat("_DistortionStrength") * 0.1f); } - var useFading = (useSoftParticles || useCameraFading) && !hasZWrite; + var useFading = useCameraFading && !hasZWrite; CoreUtils.SetKeyword(material, "_FADING_ON", useFading); } } diff --git a/Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/MotionVectorPass.hlsl b/Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/MotionVectorPass.hlsl index 980437a6ba8..4c101b3f322 100644 --- a/Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/MotionVectorPass.hlsl +++ b/Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/MotionVectorPass.hlsl @@ -3,11 +3,21 @@ #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/MotionVectorsCommon.hlsl" +// TODO: URP target should generate MotionVectorPassAttributes accurately based on usage. +// NOTE: SkinnedMeshRenderer hardcodes TexCoord4 to float3. struct MotionVectorPassAttributes { +#if defined(ATTRIBUTES_NEED_TEXCOORD4) + float4 previousPositionOS : TEXCOORD4; // SG declared TexCoord4 as float4 +#else float3 previousPositionOS : TEXCOORD4; // Contains previous frame local vertex position (for skinned meshes) +#endif #if defined (_ADD_PRECOMPUTED_VELOCITY) + #if defined(ATTRIBUTES_NEED_TEXCOORD5) + float4 alembicMotionVectorOS : TEXCOORD5; // SG declared TexCoord5 as float4 + #else float3 alembicMotionVectorOS : TEXCOORD5; // Alembic precomputed object space motion vector (offset from last frame's position) + #endif #endif }; @@ -98,7 +108,7 @@ void vert( #endif #else const bool hasDeformation = unity_MotionVectorsParams.x == 1; // Mesh has skinned deformation - float3 previousPositionOS = hasDeformation ? passInput.previousPositionOS : input.positionOS; + float3 previousPositionOS = hasDeformation ? passInput.previousPositionOS.xyz : input.positionOS; #if defined(AUTOMATIC_TIME_BASED_MOTION_VECTORS) && defined(GRAPH_VERTEX_USES_TIME_PARAMETERS_INPUT) const bool applyDeformation = true; @@ -124,9 +134,9 @@ void vert( // overwritten by Compute Deform node ApplyPreviousFrameDeformedVertexPosition(input.vertexID, previousPositionOS); #endif - + #if defined (_ADD_PRECOMPUTED_VELOCITY) - previousPositionOS -= passInput.alembicMotionVectorOS; + previousPositionOS -= passInput.alembicMotionVectorOS.xyz; #endif #if defined(APPLICATION_SPACE_WARP_MOTION) diff --git a/Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/PBRGBufferPass.hlsl b/Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/PBRGBufferPass.hlsl index 22247357d87..b86d9bb8b33 100644 --- a/Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/PBRGBufferPass.hlsl +++ b/Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/PBRGBufferPass.hlsl @@ -136,7 +136,9 @@ GBufferFragOutput frag(PackedVaryings packedInput) Light mainLight = GetMainLight(inputData.shadowCoord, inputData.positionWS, inputData.shadowMask); MixRealtimeAndBakedGI(mainLight, inputData.normalWS, inputData.bakedGI, inputData.shadowMask); - half3 color = GlobalIllumination(brdfData, inputData.bakedGI, surfaceDescription.Occlusion, inputData.positionWS, inputData.normalWS, inputData.viewDirectionWS); + half3 color = GlobalIllumination(brdfData, (BRDFData)0, 0, + inputData.bakedGI, surfaceDescription.Occlusion, inputData.positionWS, + inputData.normalWS, inputData.viewDirectionWS, inputData.normalizedScreenSpaceUV); return PackGBuffersBRDFData(brdfData, inputData, surfaceDescription.Smoothness, surfaceDescription.Emission + color, surfaceDescription.Occlusion); } diff --git a/Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/Terrain/PBRGBufferPass.hlsl b/Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/Terrain/PBRGBufferPass.hlsl index 8d6f188373b..8cc1fd2b91b 100644 --- a/Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/Terrain/PBRGBufferPass.hlsl +++ b/Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/Terrain/PBRGBufferPass.hlsl @@ -107,7 +107,9 @@ GBufferFragOutput frag(PackedVaryings packedInput) half4 color; Light mainLight = GetMainLight(inputData.shadowCoord, inputData.positionWS, inputData.shadowMask); MixRealtimeAndBakedGI(mainLight, inputData.normalWS, inputData.bakedGI, inputData.shadowMask); - color.rgb = GlobalIllumination(brdfData, inputData.bakedGI, surfaceDescription.Occlusion, inputData.positionWS, inputData.normalWS, inputData.viewDirectionWS); + color.rgb = GlobalIllumination(brdfData, (BRDFData)0, 0, + inputData.bakedGI, surfaceDescription.Occlusion, inputData.positionWS, + inputData.normalWS, inputData.viewDirectionWS, inputData.normalizedScreenSpaceUV); color.a = alpha; SplatmapFinalColor(color, inputData.fogCoord); diff --git a/Packages/com.unity.render-pipelines.universal/Editor/VFXGraph/VFXURPLitQuadStripOutput.cs b/Packages/com.unity.render-pipelines.universal/Editor/VFXGraph/VFXURPLitQuadStripOutput.cs index ed035ddc46d..0cb62baa966 100644 --- a/Packages/com.unity.render-pipelines.universal/Editor/VFXGraph/VFXURPLitQuadStripOutput.cs +++ b/Packages/com.unity.render-pipelines.universal/Editor/VFXGraph/VFXURPLitQuadStripOutput.cs @@ -6,7 +6,7 @@ namespace UnityEditor.VFX.URP { - [VFXHelpURL("Context-OutputPrimitive")] + [VFXHelpURL("Context-OutputStripQuad")] [VFXInfo(name = "Output ParticleStrip|URP Lit|Quad", category = "#3Output Strip", experimental = true)] class VFXURPLitQuadStripOutput : VFXAbstractParticleURPLitOutput { 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 655724dddb6..c43497621e3 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 @@ -55,7 +55,7 @@ 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 (Renderer2D.IsDepthUsageAllowed(frameData, rendererData)) + if (commonResourceData.activeDepthTexture.IsValid()) { var depth = universal2DResourceData.normalsDepth.IsValid() ? universal2DResourceData.normalsDepth : commonResourceData.activeDepthTexture; builder.SetRenderAttachmentDepth(depth); 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 bd3998ce3d9..7c2da9ffc92 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 @@ -173,7 +173,7 @@ public void Render(RenderGraph graph, ContextContainer frameData, Renderer2DData // Set color and depth attachments builder.SetRenderAttachment(commonResourceData.activeColorTexture, 0); - if (Renderer2D.IsDepthUsageAllowed(frameData, rendererData)) + if (commonResourceData.activeDepthTexture.IsValid()) builder.SetRenderAttachmentDepth(commonResourceData.activeDepthTexture); builder.AllowGlobalStateModification(true); 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 efc513e7ceb..98c79782771 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 @@ -159,12 +159,16 @@ internal static bool IsDepthUsageAllowed(ContextContainer frameData, Renderer2DD { UniversalCameraData cameraData = frameData.Get(); + // Renderer2DData.useDepthStencilBuffer bool allowDepth = rendererData.useDepthStencilBuffer; // 3D Render Textures with depth/stencil buffer are not supported if (cameraData.targetTexture != null) allowDepth &= cameraData.targetTexture.dimension != TextureDimension.Tex3D; + // The back buffer has none when PlayerSettings.disableDepthAndStencilBuffers is enabled on a graphics API that acts on it + allowDepth &= Graphics.backBufferHasDepthStencil; + return allowDepth; } @@ -441,7 +445,7 @@ void CreateResources(RenderGraph renderGraph) CreateShadowTextures(renderGraph, width, height); if (m_Renderer2DData.useCameraSortingLayerTexture) - CreateCameraSortingLayerTexture(renderGraph, cameraTargetDescriptor, width, height); + CreateCameraSortingLayerTexture(renderGraph, cameraTargetDescriptor); // Create the attachments if (cameraData.renderType == CameraRenderType.Base) // require intermediate textures @@ -454,6 +458,7 @@ void CreateResources(RenderGraph renderGraph) // RTHandles do not support combining color and depth in the same texture so we create them separately m_CreateDepthTexture |= m_CreateColorTexture; + m_CreateDepthTexture &= IsDepthUsageAllowed(frameData, m_Renderer2DData); // Camera Target Color if (m_CreateColorTexture) @@ -522,9 +527,12 @@ void CreateResources(RenderGraph renderGraph) if (m_CreateColorTexture) { importSummary.cameraColorParams.discardOnLastUse = lastCameraInTheStack; - importSummary.cameraDepthParams.discardOnLastUse = lastCameraInTheStack; - commonResourceData.cameraColor = renderGraph.ImportTexture(currentRenderGraphCameraColorHandle, importSummary.cameraColorParams); + } + + if (m_CreateDepthTexture) + { + importSummary.cameraDepthParams.discardOnLastUse = lastCameraInTheStack; commonResourceData.cameraDepth = renderGraph.ImportTexture(m_RenderGraphCameraDepthHandle, importSummary.cameraDepthParams); } @@ -548,17 +556,21 @@ void CreateResources(RenderGraph renderGraph) RTHandleStaticHelpers.SetRTHandleUserManagedWrapper(ref m_RenderGraphBackbufferColorHandle, targetColorId); } - if (m_RenderGraphBackbufferDepthHandle == null) - { - m_RenderGraphBackbufferDepthHandle = RTHandles.Alloc(targetDepthId, "Backbuffer depth"); - } - else if (m_RenderGraphBackbufferDepthHandle.nameID != targetDepthId) + commonResourceData.backBufferColor = renderGraph.ImportTexture(m_RenderGraphBackbufferColorHandle, importSummary.importInfo, importSummary.backBufferColorParams); + + if (IsDepthUsageAllowed(frameData, m_Renderer2DData)) { - RTHandleStaticHelpers.SetRTHandleUserManagedWrapper(ref m_RenderGraphBackbufferDepthHandle, targetDepthId); - } + if (m_RenderGraphBackbufferDepthHandle == null) + { + m_RenderGraphBackbufferDepthHandle = RTHandles.Alloc(targetDepthId, "Backbuffer depth"); + } + else if (m_RenderGraphBackbufferDepthHandle.nameID != targetDepthId) + { + RTHandleStaticHelpers.SetRTHandleUserManagedWrapper(ref m_RenderGraphBackbufferDepthHandle, targetDepthId); + } - commonResourceData.backBufferColor = renderGraph.ImportTexture(m_RenderGraphBackbufferColorHandle, importSummary.importInfo, importSummary.backBufferColorParams); - commonResourceData.backBufferDepth = renderGraph.ImportTexture(m_RenderGraphBackbufferDepthHandle, importSummary.importInfoDepth, importSummary.backBufferDepthParams); + commonResourceData.backBufferDepth = renderGraph.ImportTexture(m_RenderGraphBackbufferDepthHandle, importSummary.importInfoDepth, importSummary.backBufferDepthParams); + } var postProcessDesc = PostProcessPassRenderGraph.GetCompatibleDescriptor(cameraTargetDescriptor, cameraTargetDescriptor.width, cameraTargetDescriptor.height, cameraTargetDescriptor.graphicsFormat); commonResourceData.afterPostProcessColor = UniversalRenderer.CreateRenderGraphTexture(renderGraph, postProcessDesc, "_AfterPostProcessTexture", true); @@ -578,11 +590,15 @@ void CreateCameraNormalsTextures(RenderGraph renderGraph, RenderTextureDescripto desc.graphicsFormat = RendererLighting.GetRenderTextureFormat(); desc.autoGenerateMips = false; desc.msaaSamples = descriptor.msaaSamples; + bool useNormals = false; for (int i = 0; i < resourceData.normalsTexture.Length; ++i) + { + useNormals |= m_LayerBatches[i].useNormals; resourceData.normalsTexture[i] = UniversalRenderer.CreateRenderGraphTexture(renderGraph, desc, "_NormalMap", true, RendererLighting.k_NormalClearColor); + } - if (IsDepthUsageAllowed(frameData, m_Renderer2DData)) + if (useNormals && IsDepthUsageAllowed(frameData, m_Renderer2DData)) { // Normals pass can reuse active depth if same dimensions, if not create a new depth texture #if !(ENABLE_VR && ENABLE_XR_MODULE) @@ -645,15 +661,12 @@ void CreateShadowTextures(RenderGraph renderGraph, int width, int height) resourceData.shadowDepth = UniversalRenderer.CreateRenderGraphTexture(renderGraph, shadowDepthDesc, "_ShadowDepth", false, FilterMode.Bilinear); } - void CreateCameraSortingLayerTexture(RenderGraph renderGraph, RenderTextureDescriptor cameraDesc, int width, int height) + void CreateCameraSortingLayerTexture(RenderGraph renderGraph, RenderTextureDescriptor cameraDesc) { Universal2DResourceData resourceData = frameData.Get(); - var desc = new RenderTextureDescriptor(width, height); - desc.graphicsFormat = cameraDesc.graphicsFormat; - - CopyCameraSortingLayerPass.ConfigureDescriptor(m_Renderer2DData.cameraSortingLayerDownsamplingMethod, ref desc, out var filterMode); - RenderingUtils.ReAllocateHandleIfNeeded(ref m_CameraSortingLayerHandle, desc, filterMode, TextureWrapMode.Clamp, name: CopyCameraSortingLayerPass.k_CameraSortingLayerTexture); + CopyCameraSortingLayerPass.ConfigureDescriptor(m_Renderer2DData.cameraSortingLayerDownsamplingMethod, ref cameraDesc, out var filterMode); + RenderingUtils.ReAllocateHandleIfNeeded(ref m_CameraSortingLayerHandle, cameraDesc, filterMode, TextureWrapMode.Clamp, name: CopyCameraSortingLayerPass.k_CameraSortingLayerTexture); resourceData.cameraSortingLayerTexture = renderGraph.ImportTexture(m_CameraSortingLayerHandle); } @@ -919,13 +932,17 @@ private void OnAfterRendering(RenderGraph renderGraph) 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. - if (!isTargetBackbuffer) + if (isTargetBackbuffer) + { + commonResourceData.activeColorID = ActiveID.BackBuffer; + commonResourceData.activeDepthID = ActiveID.BackBuffer; + } + else { + // 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; @@ -950,12 +967,6 @@ private void OnAfterRendering(RenderGraph renderGraph) applyFinalPostProcessing, resolveToDebugScreen, doSRGBEncoding); - - if (isTargetBackbuffer) - { - commonResourceData.activeColorID = ActiveID.BackBuffer; - commonResourceData.activeDepthID = ActiveID.BackBuffer; - } } RecordCustomRenderGraphPasses(renderGraph, RenderPassEvent2D.AfterRenderingPostProcessing); diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/DeferredLights.cs b/Packages/com.unity.render-pipelines.universal/Runtime/DeferredLights.cs index 51c02ffd618..3e597863234 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/DeferredLights.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/DeferredLights.cs @@ -335,8 +335,18 @@ internal void SetupLights(CommandBuffer cmd, UniversalCameraData cameraData, Vec Camera camera = cameraData.camera; // Support for dynamic resolution. - this.RenderWidth = camera.allowDynamicResolution ? Mathf.CeilToInt(ScalableBufferManager.widthScaleFactor * cameraTargetSizeCopy.x) : cameraTargetSizeCopy.x; - this.RenderHeight = camera.allowDynamicResolution ? Mathf.CeilToInt(ScalableBufferManager.heightScaleFactor * cameraTargetSizeCopy.y) : cameraTargetSizeCopy.y; + if (cameraData.xr.enabled) + { + // Must equal scaledCameraTargetWidth and scaledCameraTargetHeight set in ScriptableRenderer.SetPerCameraShaderVariables + // _ScreenToWorld (from here) and _ScaledScreenParams/_ScreenSize are both used per-pixel in the deferred pass so a mismatch corrupts world-pos reconstruction + this.RenderWidth = cameraData.pixelWidth; + this.RenderHeight = cameraData.pixelHeight; + } + else + { + this.RenderWidth = camera.allowDynamicResolution ? Mathf.CeilToInt(ScalableBufferManager.widthScaleFactor * cameraTargetSizeCopy.x) : cameraTargetSizeCopy.x; + this.RenderHeight = camera.allowDynamicResolution ? Mathf.CeilToInt(ScalableBufferManager.heightScaleFactor * cameraTargetSizeCopy.y) : cameraTargetSizeCopy.y; + } if (!m_UseDeferredPlus) { diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Passes/DrawScreenSpaceUIPass.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Passes/DrawScreenSpaceUIPass.cs index 6b23e498bef..e89ac526896 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Passes/DrawScreenSpaceUIPass.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Passes/DrawScreenSpaceUIPass.cs @@ -244,7 +244,9 @@ internal void RenderOverlay(RenderGraph renderGraph, ContextContainer frameData, builder.UseAllGlobalTextures(true); builder.SetRenderAttachment(colorBuffer, 0); - builder.SetRenderAttachmentDepth(depthBuffer, AccessFlags.ReadWrite); + + if (depthBuffer.IsValid()) + builder.SetRenderAttachmentDepth(depthBuffer, AccessFlags.ReadWrite); passData.rendererList = renderGraph.CreateUIOverlayRendererList(cameraData.camera, UISubset.UIToolkit_UGUI); builder.UseRendererList(passData.rendererList); diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Passes/FinalBlitPass.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Passes/FinalBlitPass.cs index 6b3e8cc8a65..4fe9644658f 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Passes/FinalBlitPass.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Passes/FinalBlitPass.cs @@ -301,19 +301,14 @@ internal void Render(RenderGraph renderGraph, ContextContainer frameData, Univer builder.UseTexture(src, AccessFlags.Read); passData.destination = dest; - // Default flag for non-XR common case - AccessFlags targetAccessFlag = AccessFlags.Write; + // The access flag can be set to WriteAll if there is a full screen blit and no alpha blending, + // so engine will set loadOperation to DontCare down to the pipe. + AccessFlags targetAccessFlag = cameraData.isDefaultViewport && !outputsAlpha ? AccessFlags.WriteAll : AccessFlags.Write; #if ENABLE_VR && ENABLE_XR_MODULE // This is a screen-space pass, make sure foveated rendering is disabled for non-uniform renders bool passSupportsFoveation = !XRSystem.foveatedRenderingCaps.HasFlag(FoveatedRenderingCaps.NonUniformRaster); builder.EnableFoveatedRasterization(cameraData.xr.supportsFoveatedRendering && passSupportsFoveation); builder.SetExtendedFeatureFlags(ExtendedFeatureFlags.MultiviewRenderRegionsCompatible); - - // Optimization: In XR, we don't have split screen use case. - // The access flag can be set to WriteAll if there is a full screen blit and no alpha blending, - // so engine will set loadOperation to DontCare down to the pipe. - if (cameraData.xr.enabled && cameraData.isDefaultViewport && !outputsAlpha) - targetAccessFlag = AccessFlags.WriteAll; #endif builder.SetRenderAttachment(dest, 0, targetAccessFlag); 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 621bbbfa132..6921171c057 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Passes/PostProcessPassRenderGraph.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Passes/PostProcessPassRenderGraph.cs @@ -2529,7 +2529,19 @@ public void RenderUberPost(RenderGraph renderGraph, ContextContainer frameData, builder.AllowGlobalStateModification(true); passData.destinationTexture = destTexture; - builder.SetRenderAttachment(destTexture, 0, AccessFlags.Write); + + // Full-screen blit to backbuffer with no alpha will overwrite every pixel, so use flag + // WriteAll for the compiler to set load op DontCare later and skip the color load + AccessFlags destAccessFlag = AccessFlags.Write; + if (resourceData.isActiveTargetBackBuffer && cameraData.isDefaultViewport && !enableAlphaOutput) + { + destAccessFlag = AccessFlags.WriteAll; +#if ENABLE_VR && ENABLE_XR_MODULE + if (cameraData.xr.enabled && cameraData.xr.hasValidVisibleMesh) // Not a full-screen blit + destAccessFlag = AccessFlags.Write; +#endif + } + builder.SetRenderAttachment(destTexture, 0, destAccessFlag); passData.sourceTexture = sourceTexture; builder.UseTexture(sourceTexture, AccessFlags.Read); passData.lutTexture = lutTexture; diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Passes/RenderObjectsPass.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Passes/RenderObjectsPass.cs index dae0ef39fae..6df2c81e9bd 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Passes/RenderObjectsPass.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Passes/RenderObjectsPass.cs @@ -289,7 +289,10 @@ public override void RecordRenderGraph(RenderGraph renderGraph, ContextContainer passData.color = resourceData.activeColorTexture; builder.SetRenderAttachment(resourceData.activeColorTexture, 0, AccessFlags.Write); if (cameraData.imageScalingMode != ImageScalingMode.Upscaling || passData.renderPassEvent != RenderPassEvent.AfterRenderingPostProcessing) - builder.SetRenderAttachmentDepth(resourceData.activeDepthTexture, AccessFlags.Write); + { + if (resourceData.activeDepthTexture.IsValid()) + builder.SetRenderAttachmentDepth(resourceData.activeDepthTexture, AccessFlags.Write); + } TextureHandle mainShadowsTexture = resourceData.mainShadowsTexture; TextureHandle additionalShadowsTexture = resourceData.additionalShadowsTexture; diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/RendererFeatures/OnTilePostProcessFeature.cs b/Packages/com.unity.render-pipelines.universal/Runtime/RendererFeatures/OnTilePostProcessFeature.cs index b9ca98f0afe..a421fa17ce0 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/RendererFeatures/OnTilePostProcessFeature.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/RendererFeatures/OnTilePostProcessFeature.cs @@ -11,6 +11,7 @@ /// The class for the On-Tile Post Processing renderer feature. This renderer feature provides a reduced scope alternative to the built-in URP post-processing features but that can run more optimally on tile-based graphics hardware (most untethered-XR devices) /// The renderer feature could only be added once. Adding multiple post processing passes is currently not supported. ///
+[SupportedOnRenderer(typeof(UniversalRendererData))] [DisallowMultipleRendererFeature("On Tile Post Processing (Untethered XR)")] public partial class OnTilePostProcessFeature : ScriptableRendererFeature { @@ -108,7 +109,9 @@ public override void AddRenderPasses(ScriptableRenderer renderer, ref RenderingD // NOTE: Ideally, we check here if the Post Processing is enabled on the UniversalRenderer asset through a public API. In that case, the built in post processing will be enabled. // We currently do not have a public API for that, so we use internal API for now - var universalRenderer = renderer as UniversalRenderer; + if (renderer is not UniversalRenderer universalRenderer) + return; + if (universalRenderer.isPostProcessPassRenderGraphActive) { Debug.LogError("URP renderer(Universal Renderer Data) has post processing enabled, which conflicts with the On-Tile post processing feature. Only one of the post processing should be enabled. On-Tile post processing feature will not be added."); diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/ScriptableRenderer.cs b/Packages/com.unity.render-pipelines.universal/Runtime/ScriptableRenderer.cs index 8b02d60eaa7..73d1659ae9e 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/ScriptableRenderer.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/ScriptableRenderer.cs @@ -316,14 +316,17 @@ void SetPerCameraShaderVariables(RasterCommandBuffer cmd, UniversalCameraData ca cameraWidth = (float)cameraTargetSizeCopy.x; cameraHeight = (float)cameraTargetSizeCopy.y; - useRenderPassEnabled = false; + // pixelWidth/Height is derived from xr.GetViewport() and encodes renderViewportScale (which also handles dynamic res) + scaledCameraTargetWidth = cameraData.pixelWidth; + scaledCameraTargetHeight = cameraData.pixelHeight; + useRenderPassEnabled = false; + // Multi-pass needs to set unity_StereoEyeIndex builtin param for skybox-panoramic.shader to work correctly (UUM-120719) if (!cameraData.xr.singlePassEnabled) cmd.SetGlobalVector(XRBuiltinShaderConstants.unity_StereoEyeIndex, new Vector4(cameraData.xr.multipassId, 0, 0, 0)); } - - if (camera.allowDynamicResolution) + else if (camera.allowDynamicResolution) { scaledCameraTargetWidth *= ScalableBufferManager.widthScaleFactor; scaledCameraTargetHeight *= ScalableBufferManager.heightScaleFactor; @@ -1071,7 +1074,8 @@ internal void DrawRenderGraphGizmos(RenderGraph renderGraph, ContextContainer fr Profiling.drawGizmos)) { builder.UseTexture(color, AccessFlags.Write); - builder.UseTexture(depth, AccessFlags.ReadWrite); + if (depth.IsValid()) + builder.UseTexture(depth, AccessFlags.ReadWrite); passData.gizmoRenderList = renderGraph.CreateGizmoRendererList(cameraData.camera, gizmoSubset); passData.color = color; @@ -1083,7 +1087,10 @@ internal void DrawRenderGraphGizmos(RenderGraph renderGraph, ContextContainer fr { using (new ProfilingScope(rgContext.cmd, Profiling.drawGizmos)) { - rgContext.cmd.SetRenderTarget(data.color, data.depth); + if (data.depth.IsValid()) + rgContext.cmd.SetRenderTarget(data.color, data.depth); + else + rgContext.cmd.SetRenderTarget(data.color); rgContext.cmd.DrawRendererList(data.gizmoRenderList); } }); diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/ScriptableRendererData.cs b/Packages/com.unity.render-pipelines.universal/Runtime/ScriptableRendererData.cs index 0f570b6c39c..2ac8e1d638b 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/ScriptableRendererData.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/ScriptableRendererData.cs @@ -113,9 +113,9 @@ public bool TryGetRendererFeature(out T rendererFeature) where T : Scriptable { foreach (var target in rendererFeatures) { - if (target.GetType() == typeof(T)) + if (target is T feature) { - rendererFeature = target as T; + rendererFeature = feature; return true; } } diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/ShadowUtils.cs b/Packages/com.unity.render-pipelines.universal/Runtime/ShadowUtils.cs index 8f20c1098b4..b891f6c83ee 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/ShadowUtils.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/ShadowUtils.cs @@ -779,5 +779,13 @@ internal static int MinimalPunctualLightShadowResolution(bool softShadow) { return softShadow ? kMinimumPunctualLightSoftShadowResolution : kMinimumPunctualLightHardShadowResolution; } + + internal static int GetMaxSupportedShadowAtlasResolution() + { + int maxTextureSize = SystemInfo.maxTextureSize; + int powerOfTwo = Mathf.ClosestPowerOfTwo(maxTextureSize); + + return powerOfTwo > maxTextureSize ? powerOfTwo >> 1 : powerOfTwo; + } } } diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/UniversalRenderPipeline.cs b/Packages/com.unity.render-pipelines.universal/Runtime/UniversalRenderPipeline.cs index a3a55d9d708..d6c7e30e790 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/UniversalRenderPipeline.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/UniversalRenderPipeline.cs @@ -1767,7 +1767,8 @@ static UniversalShadowData CreateShadowData(ContextContainer frameData, Universa shadowData.mainLightShadowCascadesSplit = GetMainLightCascadeSplit(shadowData.mainLightShadowCascadesCount, urpAsset); shadowData.mainLightShadowmapWidth = urpAsset.mainLightShadowmapResolution; shadowData.mainLightShadowmapHeight = urpAsset.mainLightShadowmapResolution; - shadowData.additionalLightsShadowmapWidth = shadowData.additionalLightsShadowmapHeight = urpAsset.additionalLightsShadowmapResolution; + shadowData.additionalLightsShadowmapWidth = shadowData.additionalLightsShadowmapHeight = + Math.Min(urpAsset.additionalLightsShadowmapResolution, ShadowUtils.GetMaxSupportedShadowAtlasResolution()); // This will be setup in AdditionalLightsShadowCasterPass. shadowData.isKeywordAdditionalLightShadowsEnabled = false; @@ -1909,6 +1910,9 @@ private static Vector3 GetMainLightCascadeSplit(int mainLightShadowCascadesCount static void InitializeMainLightShadowResolution(UniversalShadowData shadowData) { + int maxAtlasResolution = ShadowUtils.GetMaxSupportedShadowAtlasResolution(); + shadowData.mainLightShadowmapWidth = Mathf.Min(shadowData.mainLightShadowmapWidth, maxAtlasResolution); + shadowData.mainLightShadowmapHeight = Mathf.Min(shadowData.mainLightShadowmapHeight, maxAtlasResolution); shadowData.mainLightShadowResolution = ShadowUtils.GetMaxTileResolutionInAtlas(shadowData.mainLightShadowmapWidth, shadowData.mainLightShadowmapHeight, shadowData.mainLightShadowCascadesCount); shadowData.mainLightRenderTargetWidth = shadowData.mainLightShadowmapWidth; shadowData.mainLightRenderTargetHeight = (shadowData.mainLightShadowCascadesCount == 2) ? shadowData.mainLightShadowmapHeight >> 1 : shadowData.mainLightShadowmapHeight; diff --git a/Packages/com.unity.render-pipelines.universal/ShaderLibrary/DeclareDepthTexture.hlsl b/Packages/com.unity.render-pipelines.universal/ShaderLibrary/DeclareDepthTexture.hlsl index ce94f789b1d..b176f7780bf 100644 --- a/Packages/com.unity.render-pipelines.universal/ShaderLibrary/DeclareDepthTexture.hlsl +++ b/Packages/com.unity.render-pipelines.universal/ShaderLibrary/DeclareDepthTexture.hlsl @@ -9,15 +9,11 @@ float4 _CameraDepthTexture_TexelSize; // 2023.3 Deprecated. This is for backwards compatibility. Remove in the future. #define sampler_CameraDepthTexture sampler_PointClamp -float SampleSceneDepth(float2 uv, SAMPLER(samplerParam)) -{ - uv = ClampAndScaleUVForBilinear(UnityStereoTransformScreenSpaceTex(uv), _CameraDepthTexture_TexelSize.xy); - return SAMPLE_TEXTURE2D_X(_CameraDepthTexture, samplerParam, uv).r; -} - float SampleSceneDepth(float2 uv) { - return SampleSceneDepth(uv, sampler_PointClamp); + uv = ClampAndScaleUVForBilinear(UnityStereoTransformScreenSpaceTex(uv), _CameraDepthTexture_TexelSize.xy); + uint2 pixelCoord = uint2(uv * _ScreenSize.xy); + return LOAD_TEXTURE2D_X(_CameraDepthTexture, pixelCoord).r; } float LoadSceneDepth(uint2 pixelCoords) diff --git a/Packages/com.unity.render-pipelines.universal/ShaderLibrary/GlobalIllumination.hlsl b/Packages/com.unity.render-pipelines.universal/ShaderLibrary/GlobalIllumination.hlsl index ff2beaf897f..ba095b740d3 100644 --- a/Packages/com.unity.render-pipelines.universal/ShaderLibrary/GlobalIllumination.hlsl +++ b/Packages/com.unity.render-pipelines.universal/ShaderLibrary/GlobalIllumination.hlsl @@ -242,7 +242,7 @@ half3 BoxProjectedCubemapDirection(half3 reflectionWS, float3 positionWS, float4 if (cubemapPositionWS.w > 0.0f) { float3 boxMinMax = (reflectionWS > 0.0f) ? boxMax.xyz : boxMin.xyz; - half3 rbMinMax = half3(boxMinMax - positionWS) / reflectionWS; + half3 rbMinMax = (reflectionWS != 0.0f) ? half3(boxMinMax - positionWS) / reflectionWS : HALF_MAX; half fa = half(min(min(rbMinMax.x, rbMinMax.y), rbMinMax.z)); diff --git a/Packages/com.unity.render-pipelines.universal/ShaderLibrary/NormalReconstruction.hlsl b/Packages/com.unity.render-pipelines.universal/ShaderLibrary/NormalReconstruction.hlsl index d59972c6dfb..697649b0ab4 100644 --- a/Packages/com.unity.render-pipelines.universal/ShaderLibrary/NormalReconstruction.hlsl +++ b/Packages/com.unity.render-pipelines.universal/ShaderLibrary/NormalReconstruction.hlsl @@ -13,7 +13,7 @@ float4x4 _NormalReconstructionMatrix[2]; float GetRawDepth(float2 uv) { - return SampleSceneDepth(uv.xy, sampler_PointClamp).r; + return SampleSceneDepth(uv.xy).r; } // inspired by keijiro's depth inverse projection diff --git a/Packages/com.unity.render-pipelines.universal/ShaderLibrary/UnityInput.hlsl b/Packages/com.unity.render-pipelines.universal/ShaderLibrary/UnityInput.hlsl index 4c17acbe804..587b7d576d2 100644 --- a/Packages/com.unity.render-pipelines.universal/ShaderLibrary/UnityInput.hlsl +++ b/Packages/com.unity.render-pipelines.universal/ShaderLibrary/UnityInput.hlsl @@ -308,8 +308,13 @@ float4x4 OptimizeProjectionMatrix(float4x4 M) // | 0 0 0 1 | | 0 0 x 0 | | 0 0 x x | // Notice that some values are always 0. // We can avoid loading and doing math with constants. + // But not true under Vulkan swapchain pre-transform: a 90/270 degree rotation swaps rows 0 and 1 + // (Runtime/GfxDevice/vulkan/VKPreTransform.cpp), moving the scale terms onto _21/_12; exactly + // the entries cleared below, which would leave UNITY_MATRIX_P with an all-zero 2x2 +#ifndef UNITY_PRETRANSFORM_TO_DISPLAY_ORIENTATION M._21_41 = 0; M._12_42 = 0; +#endif return M; } diff --git a/Packages/com.unity.shadergraph/Documentation~/Absolute-Node.md b/Packages/com.unity.shadergraph/Documentation~/Absolute-Node.md index 10940ffff81..4bffaa24e2d 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Absolute-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Absolute-Node.md @@ -21,3 +21,7 @@ void Unity_Absolute_float4(float4 In, out float4 Out) Out = abs(In); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Add-Node.md b/Packages/com.unity.shadergraph/Documentation~/Add-Node.md index 09ffadd29cb..2fdec805229 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Add-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Add-Node.md @@ -22,3 +22,7 @@ void Unity_Add_float4(float4 A, float4 B, out float4 Out) Out = A + B; } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/All-Node.md b/Packages/com.unity.shadergraph/Documentation~/All-Node.md index 497ce27dc84..0246b374222 100644 --- a/Packages/com.unity.shadergraph/Documentation~/All-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/All-Node.md @@ -21,3 +21,7 @@ void Unity_All_float4(float4 In, out float Out) Out = all(In); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Ambient-Node.md b/Packages/com.unity.shadergraph/Documentation~/Ambient-Node.md index dc5780d6832..21fd1dd7b62 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Ambient-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Ambient-Node.md @@ -32,3 +32,7 @@ float3 _Ambient_ColorSky = SHADERGRAPH_AMBIENT_SKY; float3 _Ambient_Equator = SHADERGRAPH_AMBIENT_EQUATOR; float3 _Ambient_Ground = SHADERGRAPH_AMBIENT_GROUND; ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/And-Node.md b/Packages/com.unity.shadergraph/Documentation~/And-Node.md index 97303ed9353..6ce43e90ade 100644 --- a/Packages/com.unity.shadergraph/Documentation~/And-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/And-Node.md @@ -20,3 +20,7 @@ void Unity_And(float A, float B, out float Out) Out = A && B; } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Any-Node.md b/Packages/com.unity.shadergraph/Documentation~/Any-Node.md index 0b574a856e4..117f0d06f42 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Any-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Any-Node.md @@ -21,3 +21,7 @@ void Unity_Any_float4(float4 In, out float Out) Out = any(In); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Append-Node.md b/Packages/com.unity.shadergraph/Documentation~/Append-Node.md index 54958b882e1..c516fd4a939 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Append-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Append-Node.md @@ -44,4 +44,8 @@ float4 Append_Out = float4( A.x, B.xyz); ### Vector3 and Vector2 ``` float4 Append_Out = float4( A.xyz, B.x); -``` \ No newline at end of file +``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Arccosine-Node.md b/Packages/com.unity.shadergraph/Documentation~/Arccosine-Node.md index 42fdb90c8a5..07f5f478bc3 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Arccosine-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Arccosine-Node.md @@ -21,3 +21,7 @@ void Unity_Arccosine_float4(float4 In, out float4 Out) Out = acos(In); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Arcsine-Node.md b/Packages/com.unity.shadergraph/Documentation~/Arcsine-Node.md index 2cffd495d70..61105d53739 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Arcsine-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Arcsine-Node.md @@ -21,3 +21,7 @@ void Unity_Arcsine_float4(float4 In, out float4 Out) Out = asin(In); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Arctangent-Node.md b/Packages/com.unity.shadergraph/Documentation~/Arctangent-Node.md index 447d0ae951d..7a233aaccfe 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Arctangent-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Arctangent-Node.md @@ -21,3 +21,7 @@ void Unity_Arctangent_float4(float4 In, out float4 Out) Out = atan(In); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Arctangent2-Node.md b/Packages/com.unity.shadergraph/Documentation~/Arctangent2-Node.md index b788986085f..bf0b850e011 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Arctangent2-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Arctangent2-Node.md @@ -22,3 +22,7 @@ void Unity_Arctangent2_float4(float4 A, float4 B, out float4 Out) Out = atan2(A, B); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Baked-GI-Node.md b/Packages/com.unity.shadergraph/Documentation~/Baked-GI-Node.md index 1a75b2837d7..a695e61cbab 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Baked-GI-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Baked-GI-Node.md @@ -38,3 +38,7 @@ void Unity_BakedGI_float(float3 Position, float3 Normal, float2 StaticUV, float2 Out = SHADERGRAPH_BAKED_GI(Position, Normal, StaticUV, DynamicUV, false); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Bitangent-Vector-Node.md b/Packages/com.unity.shadergraph/Documentation~/Bitangent-Vector-Node.md index 4227242827e..10b6e00a102 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Bitangent-Vector-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Bitangent-Vector-Node.md @@ -19,3 +19,7 @@ You can select the coordinate space of the output with the **Space** dropdown pa | Name | Type | Options | Description | |:------------ |:-------------|:-----|:---| | Space | Dropdown | Object, View, World, Tangent | Selects coordinate space of **Bitangent Vector** to output. | + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Blackbody-Node.md b/Packages/com.unity.shadergraph/Documentation~/Blackbody-Node.md index 4ffb597394e..6055e819853 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Blackbody-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Blackbody-Node.md @@ -31,3 +31,7 @@ void Unity_Blackbody_float(float Temperature, out float3 Out) Out = color; } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Blend-Node.md b/Packages/com.unity.shadergraph/Documentation~/Blend-Node.md index de920606c65..dcd7ae1f2a0 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Blend-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Blend-Node.md @@ -255,3 +255,7 @@ void Unity_Blend_Overwrite_float4(float4 Base, float4 Blend, float Opacity, out Out = lerp(Base, Blend, Opacity); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Block-Node.md b/Packages/com.unity.shadergraph/Documentation~/Block-Node.md index 6df0e78eadf..a99e3a19450 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Block-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Block-Node.md @@ -5,3 +5,7 @@ Block nodes are a specific type of node for the [Master Stack](Master-Stack.md). | Page | Description | | :--- | :--- | | [Built-In Blocks](Built-In-Blocks.md) | Block nodes that are always available, regardless of the active render pipeline. | + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Boolean-Node.md b/Packages/com.unity.shadergraph/Documentation~/Boolean-Node.md index 58a361816f4..414f0a7a783 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Boolean-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Boolean-Node.md @@ -23,3 +23,7 @@ The following example code represents one possible outcome of this node. ``` float _Boolean = 1; ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Branch-Node.md b/Packages/com.unity.shadergraph/Documentation~/Branch-Node.md index 460dd770d6b..f353f04df1c 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Branch-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Branch-Node.md @@ -23,3 +23,7 @@ void Unity_Branch_float4(float Predicate, float4 True, float4 False, out float4 Out = Predicate ? True : False; } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Branch-On-Input-Connection-Node.md b/Packages/com.unity.shadergraph/Documentation~/Branch-On-Input-Connection-Node.md index a4091e64296..d790e3bda41 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Branch-On-Input-Connection-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Branch-On-Input-Connection-Node.md @@ -39,3 +39,7 @@ The Branch On Input Connection [!include[nodes-single-output](./snippets/nodes-s - [Branch node](Branch-Node.md) - [Subgraph node](Sub-graph-Node.md) + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Calculate-Level-Of-Detail-Texture-2D-Node.md b/Packages/com.unity.shadergraph/Documentation~/Calculate-Level-Of-Detail-Texture-2D-Node.md index 313e7481c60..b8e5e8b3300 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Calculate-Level-Of-Detail-Texture-2D-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Calculate-Level-Of-Detail-Texture-2D-Node.md @@ -69,3 +69,7 @@ In the following example, a Calculate Level of Detail Texture 2D node calculates - [Sampler State node](Sampler-State-Node.md) - [Gather Texture 2D node](Gather-Texture-2D-Node.md) - [Texture 2D Asset node](Texture-2D-Asset-Node.md) + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Camera-Node.md b/Packages/com.unity.shadergraph/Documentation~/Camera-Node.md index 7fa343c192a..4abcb8311f1 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Camera-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Camera-Node.md @@ -36,3 +36,7 @@ float _Camera_ZBufferSign = _ProjectionParams.x; float _Camera_Width = unity_OrthoParams.x; float _Camera_Height = unity_OrthoParams.y; ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Ceiling-Node.md b/Packages/com.unity.shadergraph/Documentation~/Ceiling-Node.md index c8d3d3e0a3a..88ea32d9e6f 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Ceiling-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Ceiling-Node.md @@ -21,3 +21,7 @@ void Unity_Ceiling_float4(float4 In, out float4 Out) Out = ceil(In); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Channel-Mask-Node.md b/Packages/com.unity.shadergraph/Documentation~/Channel-Mask-Node.md index d23593229f0..01d5ba918d4 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Channel-Mask-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Channel-Mask-Node.md @@ -27,3 +27,7 @@ void Unity_ChannelMask_RedGreen_float4(float4 In, out float4 Out) Out = float4(0, 0, In.b, In.a); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Channel-Mixer-Node.md b/Packages/com.unity.shadergraph/Documentation~/Channel-Mixer-Node.md index d45d90c2953..2653672862c 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Channel-Mixer-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Channel-Mixer-Node.md @@ -36,3 +36,7 @@ void Unity_ChannelMixer_float(float3 In, float3 _ChannelMixer_Red, float3 _Chann Out = float3(dot(In, _ChannelMixer_Red), dot(In, _ChannelMixer_Green), dot(In, _ChannelMixer_Blue)); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Checkerboard-Node.md b/Packages/com.unity.shadergraph/Documentation~/Checkerboard-Node.md index 8d6388d8d73..6ecec849070 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Checkerboard-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Checkerboard-Node.md @@ -33,3 +33,7 @@ void Unity_Checkerboard_float(float2 UV, float3 ColorA, float3 ColorB, float2 Fr Out = lerp(ColorA, ColorB, alpha.xxx); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Circle-Pupil-Animation-Node.md b/Packages/com.unity.shadergraph/Documentation~/Circle-Pupil-Animation-Node.md index 953c09123af..7bf730fad78 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Circle-Pupil-Animation-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Circle-Pupil-Animation-Node.md @@ -16,4 +16,8 @@ This node applies a deformation to a normalized IrisUV coordinate to simulate th | **Pupil Radius** | Input | float | Radius of the pupil in the iris texture as a percentage. | | **Pupil Aperture** | Input | float | Set the current diameter of the pupil opening. | | **Maximal Pupil Aperture** | Input | float | Define the largest size the pupil opening can reach. | -| **Minimal Pupil Aperture** | Input | float | Define the smallest size the pupil opening can reach. | \ No newline at end of file +| **Minimal Pupil Aperture** | Input | float | Define the smallest size the pupil opening can reach. | + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Clamp-Node.md b/Packages/com.unity.shadergraph/Documentation~/Clamp-Node.md index 6ba0031ae2b..fc5feb0ad79 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Clamp-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Clamp-Node.md @@ -23,3 +23,7 @@ void Unity_Clamp_float4(float4 In, float4 Min, float4 Max, out float4 Out) Out = clamp(In, Min, Max); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Color-Mask-Node.md b/Packages/com.unity.shadergraph/Documentation~/Color-Mask-Node.md index 6dd860abeb3..b1be74c0ec1 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Color-Mask-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Color-Mask-Node.md @@ -25,3 +25,7 @@ void Unity_ColorMask_float(float3 In, float3 MaskColor, float Range, float Fuzzi Out = saturate(1 - (Distance - Range) / max(Fuzziness, 1e-5)); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Color-Node.md b/Packages/com.unity.shadergraph/Documentation~/Color-Node.md index ba9dcb722d4..5ca2047b41c 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Color-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Color-Node.md @@ -26,3 +26,7 @@ The following example code represents one possible outcome of this node. ``` float4 _Color = IsGammaSpace() ? float4(1, 2, 3, 4) : float4(SRGBToLinear(float3(1, 2, 3)), 4); ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Colorspace-Conversion-Node.md b/Packages/com.unity.shadergraph/Documentation~/Colorspace-Conversion-Node.md index a993c4ddcb3..3e5ec7d0090 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Colorspace-Conversion-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Colorspace-Conversion-Node.md @@ -126,3 +126,7 @@ void Unity_ColorspaceConversion_HSV_HSV_float(float3 In, out float3 Out) Out = In; } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Combine-Node.md b/Packages/com.unity.shadergraph/Documentation~/Combine-Node.md index a7034bd83ed..4aa96a48ce1 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Combine-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Combine-Node.md @@ -28,3 +28,7 @@ void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, ou RG = float2(R, G); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Comparison-Node.md b/Packages/com.unity.shadergraph/Documentation~/Comparison-Node.md index 34a352b124e..42406623625 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Comparison-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Comparison-Node.md @@ -75,3 +75,7 @@ void Unity_Comparison_GreaterOrEqual_float(float A, float B, out float Out) Out = A >= B ? 1 : 0; } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Compute-Deformation-Node.md b/Packages/com.unity.shadergraph/Documentation~/Compute-Deformation-Node.md index e57aca9f2de..5ec8bbcd750 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Compute-Deformation-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Compute-Deformation-Node.md @@ -10,3 +10,7 @@ This node lets you pass compute deformed vertex data to a vertex shader, and onl | Position | Output | Vector3 | Vertex | Outputs the deformed vertex position. | | Normal | Output | Vector3 | Vertex | Outputs the deformed vertex normal. | | Tangent | Output | Vector3 | Vertex | Outputs the deformed vertex tangent. | + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Constant-Node.md b/Packages/com.unity.shadergraph/Documentation~/Constant-Node.md index 133e095c03f..03bf688ca32 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Constant-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Constant-Node.md @@ -49,3 +49,7 @@ float _Constant_E = 2.718282; ``` float _Constant_SQRT2 = 1.414214; ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Contrast-Node.md b/Packages/com.unity.shadergraph/Documentation~/Contrast-Node.md index 90a19718d82..70121a9e315 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Contrast-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Contrast-Node.md @@ -23,3 +23,7 @@ void Unity_Contrast_float(float3 In, float Contrast, out float3 Out) Out = (In - midpoint) * Contrast + midpoint; } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Cornea-Refraction-Node.md b/Packages/com.unity.shadergraph/Documentation~/Cornea-Refraction-Node.md index 946d4585cf8..a0a8621c6c9 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Cornea-Refraction-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Cornea-Refraction-Node.md @@ -18,3 +18,7 @@ This node performs the refraction of the view ray in object space and returns th | **Cornea IOR** | Input | float | The index of refraction of the eye (**1.333** by default). | | **Iris Plane Offset** | Input | float | Distance between the end of the cornea and the iris plane. For the default model, this value should be **0.02** | | **RefractedPositionOS** | Output | Vector3 | Position of the refracted point on the iris plane in object space. | + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Cosine-Node.md b/Packages/com.unity.shadergraph/Documentation~/Cosine-Node.md index 60872a1cd29..45db54e57f3 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Cosine-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Cosine-Node.md @@ -21,3 +21,7 @@ void Unity_Cosine_float4(float4 In, out float4 Out) Out = cos(In); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Cross-Product-Node.md b/Packages/com.unity.shadergraph/Documentation~/Cross-Product-Node.md index 66dd3443f70..3cb3a9babe2 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Cross-Product-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Cross-Product-Node.md @@ -22,3 +22,7 @@ void Unity_CrossProduct_float(float3 A, float3 B, out float3 Out) Out = cross(A, B); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Cubemap-Asset-Node.md b/Packages/com.unity.shadergraph/Documentation~/Cubemap-Asset-Node.md index 1b8a40870a6..a4af5ab8272 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Cubemap-Asset-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Cubemap-Asset-Node.md @@ -15,3 +15,7 @@ Defines a constant **Cubemap Asset** for use in the shader. To sample the **Cube | Control | Description | |:--- |:---| | (Cubemap)| Defines the cubemap asset from the project. | + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Custom-Color-Buffer-Node.md b/Packages/com.unity.shadergraph/Documentation~/Custom-Color-Buffer-Node.md index c9a51f67c79..25776a20018 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Custom-Color-Buffer-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Custom-Color-Buffer-Node.md @@ -25,3 +25,7 @@ void Unity_CustomDepth_LinearEye_float(float4 UV, out float Out) Out = SampleCustomColor(UV.xy); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Custom-Function-Node.md b/Packages/com.unity.shadergraph/Documentation~/Custom-Function-Node.md index ff325805751..16e8f17495d 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Custom-Function-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Custom-Function-Node.md @@ -188,3 +188,7 @@ However, you should manually upgrade Custom Function nodes that produce texture From version 10.3, you can access data associated with textures via `myInputTex.samplerstate` and `myInputTex.texelSize`. + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Custom-Render-Texture-Self-Node.md b/Packages/com.unity.shadergraph/Documentation~/Custom-Render-Texture-Self-Node.md index 1089b0016f3..cf5720059b6 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Custom-Render-Texture-Self-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Custom-Render-Texture-Self-Node.md @@ -21,3 +21,7 @@ The following example code represents one possible outcome of this node. ``` UnityBuildTexture2DStructNoScale(_SelfTexture2D) ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Custom-Render-Texture-Size-Node.md b/Packages/com.unity.shadergraph/Documentation~/Custom-Render-Texture-Size-Node.md index 967862280f0..f46d3c392a9 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Custom-Render-Texture-Size-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Custom-Render-Texture-Size-Node.md @@ -20,4 +20,8 @@ The following example code represents one possible outcome of this node. ``` _CustomRenderTextureWidth -``` \ No newline at end of file +``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/DDX-Node.md b/Packages/com.unity.shadergraph/Documentation~/DDX-Node.md index 39fcc7f44f9..c94b7d55d1d 100644 --- a/Packages/com.unity.shadergraph/Documentation~/DDX-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/DDX-Node.md @@ -21,3 +21,7 @@ void Unity_DDX_float4(float4 In, out float4 Out) Out = ddx(In); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/DDXY-Node.md b/Packages/com.unity.shadergraph/Documentation~/DDXY-Node.md index e17c66f42fd..c78406716ae 100644 --- a/Packages/com.unity.shadergraph/Documentation~/DDXY-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/DDXY-Node.md @@ -21,3 +21,7 @@ void Unity_DDXY_float4(float4 In, out float4 Out) Out = ddxy(In); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/DDY-Node.md b/Packages/com.unity.shadergraph/Documentation~/DDY-Node.md index 5618b83b111..ecd5159672b 100644 --- a/Packages/com.unity.shadergraph/Documentation~/DDY-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/DDY-Node.md @@ -21,3 +21,7 @@ void Unity_DDY_float4(float4 In, out float4 Out) Out = ddy(In); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Degrees-To-Radians-Node.md b/Packages/com.unity.shadergraph/Documentation~/Degrees-To-Radians-Node.md index ea6fcfe7e66..918f91bf7cf 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Degrees-To-Radians-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Degrees-To-Radians-Node.md @@ -23,3 +23,7 @@ void Unity_DegreesToRadians_float4(float4 In, out float4 Out) Out = radians(In); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Dielectric-Specular-Node.md b/Packages/com.unity.shadergraph/Documentation~/Dielectric-Specular-Node.md index 969c297fd12..c4063bacf61 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Dielectric-Specular-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Dielectric-Specular-Node.md @@ -57,3 +57,7 @@ float _DielectricSpecular_Out = 0.040; float _DielectricSpecular_IOR = 1; float _DielectricSpecular_Out = pow(_Node_IOR - 1, 2) / pow(_DielectricSpecular_IOR + 1, 2); ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Diffusion-Profile-Node.md b/Packages/com.unity.shadergraph/Documentation~/Diffusion-Profile-Node.md index cbf498235bf..49de8edfd29 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Diffusion-Profile-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Diffusion-Profile-Node.md @@ -19,3 +19,7 @@ The Diffusion Profile Node allows you to sample a [Diffusion Profile](https://do The output of this Node is a float value that represents a Diffusion Profile. The Shader can use this value to find settings for the Diffusion Profile Asset that this value represents. If you modify the output value, the Shader can no longer use it to find the settings for the Diffusion Profile Asset. You can use this behavior to enable and disable Diffusion Profiles in your Shader Graph. To disable a Diffusion Profile, multiply the output by **0**. To enable a Diffusion Profile, multiply the output by **1**. This allows you to use multiple Diffusion Profiles in different parts of your Shader Graph. Be aware that the High Definition Render Pipeline (HDRP) does not support blending between Diffusion Profiles. This is because HDRP can only evaluate a single Diffusion Profile per pixel. + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Distance-Node.md b/Packages/com.unity.shadergraph/Documentation~/Distance-Node.md index 33486e932f9..c79c51532f1 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Distance-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Distance-Node.md @@ -22,3 +22,7 @@ void Unity_Distance_float4(float4 A, float4 B, out float Out) Out = distance(A, B); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Dither-Node.md b/Packages/com.unity.shadergraph/Documentation~/Dither-Node.md index 63b8a9e161f..319334f3ac9 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Dither-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Dither-Node.md @@ -34,3 +34,6 @@ void Unity_Dither_float4(float4 In, float4 ScreenPosition, out float4 Out) } ``` +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Divide-Node.md b/Packages/com.unity.shadergraph/Documentation~/Divide-Node.md index 08570fe75f0..c0627bad2ed 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Divide-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Divide-Node.md @@ -22,3 +22,7 @@ void Unity_Divide_float4(float4 A, float4 B, out float4 Out) Out = A / B; } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Dot-Product-Node.md b/Packages/com.unity.shadergraph/Documentation~/Dot-Product-Node.md index b7ea4e1a26a..6b6fe6a2338 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Dot-Product-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Dot-Product-Node.md @@ -26,3 +26,7 @@ void Unity_DotProduct_float4(float4 A, float4 B, out float Out) Out = dot(A, B); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Dropdown-Node.md b/Packages/com.unity.shadergraph/Documentation~/Dropdown-Node.md index d98ffd4be4e..db105559352 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Dropdown-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Dropdown-Node.md @@ -29,4 +29,8 @@ It has one output port: [!include[nodes-related](./snippets/nodes-related.md)] Subgraph Dropdown node: -- [Subgraph node](Sub-graph-Node.md) \ No newline at end of file +- [Subgraph node](Sub-graph-Node.md) + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Ellipse-Node.md b/Packages/com.unity.shadergraph/Documentation~/Ellipse-Node.md index 5ccf3b56feb..ab461992299 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Ellipse-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Ellipse-Node.md @@ -26,3 +26,7 @@ void Unity_Ellipse_float(float2 UV, float Width, float Height, out float4 Out) Out = saturate((1 - d) / fwidth(d)); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Emission-Node.md b/Packages/com.unity.shadergraph/Documentation~/Emission-Node.md index 94c2c1f3537..0a0de4dd9c5 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Emission-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Emission-Node.md @@ -40,3 +40,4 @@ float3 Unity_HDRP_GetEmissionHDRColor_float(float3 ldrColor, float luminanceInte ## Additional resources - [Add light emission to a material](https://docs.unity3d.com/Manual/StandardShaderMaterialParameterEmission.html) +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Exponential-Node.md b/Packages/com.unity.shadergraph/Documentation~/Exponential-Node.md index e0063ab55bc..1c74e06aaa8 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Exponential-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Exponential-Node.md @@ -41,3 +41,7 @@ void Unity_Exponential2_float4(float4 In, out float4 Out) Out = exp2(In); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Exposure-Node.md b/Packages/com.unity.shadergraph/Documentation~/Exposure-Node.md index d754dbe716c..3ea9eaf5d7a 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Exposure-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Exposure-Node.md @@ -22,3 +22,7 @@ Use the **Type** property to select which exposure value to get. The options are - **Inverse Current Multiplier**: Gets the inverse of the camera's exposure value from the current frame. - **Previous Multiplier**: Gets the camera's exposure value from the previous frame. - **Inverse Previous Multiplier**: Gets the inverse of the camera's exposure value from the previous frame. + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Eye-Index-Node.md b/Packages/com.unity.shadergraph/Documentation~/Eye-Index-Node.md index ad416ba5f01..e7d88a6c46f 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Eye-Index-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Eye-Index-Node.md @@ -9,3 +9,7 @@ Provides access to the **Eye Index** when stereo rendering is enabled. | Name | Direction | Type | Binding | Description | |:-------|:-----------|:------|:--------|:------------| | Out | Output | Float | None | **Eye Index** for the camera of a stereo draw. | + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Eye-Surface-Type-Debug-Node.md b/Packages/com.unity.shadergraph/Documentation~/Eye-Surface-Type-Debug-Node.md index c57ef70622c..7ce6e95a583 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Eye-Surface-Type-Debug-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Eye-Surface-Type-Debug-Node.md @@ -18,3 +18,7 @@ Debug node that allows you to visually validate the current pupil radius. | **Pupil Radius** | Input | float | Radius of the pupil in the iris texture as a percentage. | | **IsActive** | Input | bool | Flag that defines if the node should be active. | | **SurfaceColor** | Output | Color | Final Diffuse color of the Eye. | + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Fade-Transition-Node.md b/Packages/com.unity.shadergraph/Documentation~/Fade-Transition-Node.md index 1e8afb66a35..2936133bd50 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Fade-Transition-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Fade-Transition-Node.md @@ -32,3 +32,7 @@ float Result = Unity_FadeTransitionNode_ApplyFade_float( _FadeValue, _FadeContrast); ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Flip-Node.md b/Packages/com.unity.shadergraph/Documentation~/Flip-Node.md index 7f95d41eb6d..c4231cf1590 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Flip-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Flip-Node.md @@ -32,3 +32,7 @@ void Unity_Flip_float4(float4 In, float4 Flip, out float4 Out) Out = (Flip * -2 + 1) * In; } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Flipbook-Node.md b/Packages/com.unity.shadergraph/Documentation~/Flipbook-Node.md index b8dc6e0fba1..86bbbdc1624 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Flipbook-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Flipbook-Node.md @@ -42,3 +42,7 @@ void Unity_Flipbook_float(float2 UV, float Width, float Height, float Tile, floa Out = (UV + float2(tileX, tileY)) * tileCount; } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Float-Node.md b/Packages/com.unity.shadergraph/Documentation~/Float-Node.md index 7873e4b52d7..9f4b2adfb05 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Float-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Float-Node.md @@ -18,3 +18,7 @@ The following example code represents one possible outcome of this node. ``` float _Vector1_Out = X; ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Floor-Node.md b/Packages/com.unity.shadergraph/Documentation~/Floor-Node.md index 83bc63a6c80..e0fb482ea07 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Floor-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Floor-Node.md @@ -21,3 +21,7 @@ void Unity_Floor_float4(float4 In, out float4 Out) Out = floor(In); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Fog-Node.md b/Packages/com.unity.shadergraph/Documentation~/Fog-Node.md index 3b8e77515e4..fc9345eb1d8 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Fog-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Fog-Node.md @@ -31,3 +31,7 @@ void Unity_Fog_float(float3 Position, out float4 Color, out float Density) SHADERGRAPH_FOG(Position, Color, Density); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Fraction-Node.md b/Packages/com.unity.shadergraph/Documentation~/Fraction-Node.md index 0fe0900ac45..1aacec1b139 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Fraction-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Fraction-Node.md @@ -27,3 +27,7 @@ void Unity_Fraction_float4(float4 In, out float4 Out) Out = frac(In); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Fresnel-Effect-Node.md b/Packages/com.unity.shadergraph/Documentation~/Fresnel-Effect-Node.md index 4b31739c3f6..18bf8c752d0 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Fresnel-Effect-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Fresnel-Effect-Node.md @@ -23,3 +23,7 @@ void Unity_FresnelEffect_float(float3 Normal, float3 ViewDir, float Power, out f Out = pow((1.0 - saturate(dot(normalize(Normal), ViewDir))), Power); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Fresnel-Equation-Node.md b/Packages/com.unity.shadergraph/Documentation~/Fresnel-Equation-Node.md index d5aeeefed59..1d0762c4f13 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Fresnel-Equation-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Fresnel-Equation-Node.md @@ -59,3 +59,7 @@ void Unity_FresnelEquation_DielectricGeneric(out float3 Fresnel, float cos0, flo FresnelValue = F_FresnelConductor(iorMedium/iorSource, iorMediumK/iorSource, cos0); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Gather-Texture-2D-Node.md b/Packages/com.unity.shadergraph/Documentation~/Gather-Texture-2D-Node.md index 1861ccd516e..56fe8f03fac 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Gather-Texture-2D-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Gather-Texture-2D-Node.md @@ -71,3 +71,7 @@ By changing the value provided to the T port on the Lerp node, you can change wh - [Sample Texture 2D LOD node](Sample-Texture-2D-LOD-Node.md) - [Sampler State node](Sampler-State-Node.md) - [Texture 2D Asset node](Texture-2D-Asset-Node.md) + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Gradient-Node.md b/Packages/com.unity.shadergraph/Documentation~/Gradient-Node.md index 1c1ab010eaa..f322838c482 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Gradient-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Gradient-Node.md @@ -48,3 +48,7 @@ Gradient Unity_Gradient_float() Gradient _Gradient = Unity_Gradient_float(); ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Gradient-Noise-Node.md b/Packages/com.unity.shadergraph/Documentation~/Gradient-Noise-Node.md index 9e70c130cad..889b207eb37 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Gradient-Noise-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Gradient-Noise-Node.md @@ -51,4 +51,8 @@ void Unity_GradientNoise_float(float2 UV, float Scale, out float Out) { Out = unity_gradientNoise(UV * Scale) + 0.5; } -``` \ No newline at end of file +``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/HD-Custom-Depth-Node.md b/Packages/com.unity.shadergraph/Documentation~/HD-Custom-Depth-Node.md index 741b89e9633..dd5e8d997c5 100644 --- a/Packages/com.unity.shadergraph/Documentation~/HD-Custom-Depth-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/HD-Custom-Depth-Node.md @@ -32,3 +32,7 @@ void Unity_CustomDepth_LinearEye_float(float4 UV, out float Out) Out = LinearEyeDepth(SampleCustomDepth(UV.xy), _ZBufferParams); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/HD-Sample-Buffer-Node.md b/Packages/com.unity.shadergraph/Documentation~/HD-Sample-Buffer-Node.md index a000aabae3a..bdd2a2870e6 100644 --- a/Packages/com.unity.shadergraph/Documentation~/HD-Sample-Buffer-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/HD-Sample-Buffer-Node.md @@ -37,3 +37,7 @@ float4 Unity_HDRP_SampleBuffer_float(float2 uv, SamplerState samplerState) return SAMPLE_TEXTURE2D_X_LOD(_CustomPostProcessInput, samplerState, uv * _RTHandlePostProcessScale.xy, 0); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/HD-Scene-Color-Node.md b/Packages/com.unity.shadergraph/Documentation~/HD-Scene-Color-Node.md index 37a660a7696..77027227f8c 100644 --- a/Packages/com.unity.shadergraph/Documentation~/HD-Scene-Color-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/HD-Scene-Color-Node.md @@ -33,3 +33,4 @@ If you use your own custom render pipeline, you must define the behavior of the - [Scene Color Node](Scene-Color-Node.md) - [Custom pass buffers and pyramids](https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@latest/index.html?subfolder=/manual/Custom-Pass-buffers-pyramids.html) +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/HD-Scene-Depth-Node.md b/Packages/com.unity.shadergraph/Documentation~/HD-Scene-Depth-Node.md index da0681ff289..1dca6d33f74 100644 --- a/Packages/com.unity.shadergraph/Documentation~/HD-Scene-Depth-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/HD-Scene-Depth-Node.md @@ -31,3 +31,7 @@ You can only use the HD Scene Depth node in the Fragment Shader Stage and with n ## Notes To use the HD Scene Depth node in a Custom Render Pipeline, you need to explicitly define its behavior, otherwise it returns white. + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Hue-Node.md b/Packages/com.unity.shadergraph/Documentation~/Hue-Node.md index 264f43014c6..8e84294237f 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Hue-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Hue-Node.md @@ -72,3 +72,7 @@ void Unity_Hue_Radians_float(float3 In, float Offset, out float3 Out) Out = hsv.z * lerp(K2.xxx, saturate(P2 - K2.xxx), hsv.y); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Hyperbolic-Cosine-Node.md b/Packages/com.unity.shadergraph/Documentation~/Hyperbolic-Cosine-Node.md index fa0ce52351b..79a0dcd7f42 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Hyperbolic-Cosine-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Hyperbolic-Cosine-Node.md @@ -21,3 +21,7 @@ void Unity_HyperbolicCosine_float4(float4 In, out float4 Out) Out = cosh(In); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Hyperbolic-Sine-Node.md b/Packages/com.unity.shadergraph/Documentation~/Hyperbolic-Sine-Node.md index 5a07d9cfda9..5e80d7ca671 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Hyperbolic-Sine-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Hyperbolic-Sine-Node.md @@ -21,3 +21,7 @@ void Unity_HyperbolicSine_float4(float4 In, out float4 Out) Out = sinh(In); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Hyperbolic-Tangent-Node.md b/Packages/com.unity.shadergraph/Documentation~/Hyperbolic-Tangent-Node.md index f64cfa75720..3ea0986b349 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Hyperbolic-Tangent-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Hyperbolic-Tangent-Node.md @@ -21,3 +21,7 @@ void Unity_HyperbolicTangent_float4(float4 In, out float4 Out) Out = tanh(In); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Instance-ID-Node.md b/Packages/com.unity.shadergraph/Documentation~/Instance-ID-Node.md index 7cfe35368d4..39f79f819ff 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Instance-ID-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Instance-ID-Node.md @@ -15,3 +15,7 @@ When Unity uses dynamic instancing, instance IDs might not be consistent across | Name | Direction | Type | Binding | Description | |:-------|:-----------|:------|:--------|:------------| | Out | Output | Float | None | **Instance ID** for mesh of a given instanced draw call. | + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Integer-Node.md b/Packages/com.unity.shadergraph/Documentation~/Integer-Node.md index e4a5dbff735..2668a26b4f8 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Integer-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Integer-Node.md @@ -23,3 +23,7 @@ The following example code represents one possible outcome of this node. ``` float _Integer = 1; ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Inverse-Lerp-Node.md b/Packages/com.unity.shadergraph/Documentation~/Inverse-Lerp-Node.md index f8f4704f68d..b9aa631b149 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Inverse-Lerp-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Inverse-Lerp-Node.md @@ -27,3 +27,7 @@ void Unity_InverseLerp_float4(float4 A, float4 B, float4 T, out float4 Out) Out = (T - A)/(B - A); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Invert-Colors-Node.md b/Packages/com.unity.shadergraph/Documentation~/Invert-Colors-Node.md index 66123428f10..2df8c83c435 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Invert-Colors-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Invert-Colors-Node.md @@ -32,3 +32,7 @@ void Unity_InvertColors_float4(float4 In, float4 InvertColors, out float4 Out) Out = abs(InvertColors - In); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Iris-Limbal-Ring-Node.md b/Packages/com.unity.shadergraph/Documentation~/Iris-Limbal-Ring-Node.md index 53cc1fce95f..380852b1282 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Iris-Limbal-Ring-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Iris-Limbal-Ring-Node.md @@ -18,3 +18,7 @@ Calculates the intensity of the Limbal ring, a darkening feature of eyes. | **LimbalRingFade** | Input | float | Normalized [0, 1] value that defines strength of the fade out of the limbal ring. | | **LimbalRingIntensity** | Input | float | Positive value that defines how dark the limbal ring is. | | **Iris Limbal Ring Color** | Output | Color | Intensity of the limbal ring. | + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Iris-Offset-Node.md b/Packages/com.unity.shadergraph/Documentation~/Iris-Offset-Node.md index 0ab7fb021a2..96c29736622 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Iris-Offset-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Iris-Offset-Node.md @@ -15,3 +15,7 @@ Applies an offset to the center of the Iris as real world eyes are never symmetr | **IrisUV** | Input | Vector2 | Normalized UV coordinates to sample either a texture or procedurally generate an Iris Texture. | | **IrisOffset** | Input | Vector2 | Normalized [0, 1]x[0,1] value that defines on each axis the intensity of the offset of the Center of the pupil. | | **IrisUV** | Output | Vector2 | Normalized UV coordinates to sample either a texture or procedurally generate an Iris Texture. | + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Iris-Out-Of-Bound-Color-Clamp-Node.md b/Packages/com.unity.shadergraph/Documentation~/Iris-Out-Of-Bound-Color-Clamp-Node.md index 02ef815ead7..992d51f1263 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Iris-Out-Of-Bound-Color-Clamp-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Iris-Out-Of-Bound-Color-Clamp-Node.md @@ -16,3 +16,7 @@ Clamps the color of the Iris to a given color. This is useful in case the refrac | **Iris Color** | Input | Color | Previously sampled or generated color of the Iris. | | **Clamp Color** | Input | Color | The color to clamp the Iris to. | | **Iris Color** | Output | Color | Result Iris color for the rest of the pipeline. | + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Iris-UV-Location-Node.md b/Packages/com.unity.shadergraph/Documentation~/Iris-UV-Location-Node.md index 36407685e06..5d3d0537863 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Iris-UV-Location-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Iris-UV-Location-Node.md @@ -15,3 +15,7 @@ This node converts the object position of the cornea/iris to a UV Sampling coord | **Position OS** | Input | Vector3 | Position on the iris Plane in object space. | | **Iris Radius** | Input | float | The radius of the Iris in the used model. For the default model, this value should be **0.225**. | | **IrisUV** | Output | Vector2 | ormalized UV coordinates that can be used to sample either a texture or procedurally generate an Iris Texture. | + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Is-Front-Face-Node.md b/Packages/com.unity.shadergraph/Documentation~/Is-Front-Face-Node.md index 587416c9237..173ad9d0df4 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Is-Front-Face-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Is-Front-Face-Node.md @@ -11,3 +11,7 @@ NOTE: This [Node](Node.md) can only be used in the **Fragment** [Shader Stage](S | Name | Direction | Type | Binding | Description | |:------------ |:-------------|:-----|:---|:---| | Out | Output | Boolean | None | Output value | + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Is-Infinite-Node.md b/Packages/com.unity.shadergraph/Documentation~/Is-Infinite-Node.md index dc30409b1c4..0e6fed4529d 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Is-Infinite-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Is-Infinite-Node.md @@ -21,3 +21,7 @@ void Unity_IsInfinite_float(float In, out float Out) Out = isinf(In); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Is-NaN-Node.md b/Packages/com.unity.shadergraph/Documentation~/Is-NaN-Node.md index 990f985845f..acb784cd5c9 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Is-NaN-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Is-NaN-Node.md @@ -21,3 +21,7 @@ void Unity_IsNan_float(float In, out float Out) Out = (In < 0.0 || In > 0.0 || In == 0.0) ? 0 : 1; } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Keyboard-shortcuts.md b/Packages/com.unity.shadergraph/Documentation~/Keyboard-shortcuts.md index 11b8518c807..45afedd2f09 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Keyboard-shortcuts.md +++ b/Packages/com.unity.shadergraph/Documentation~/Keyboard-shortcuts.md @@ -74,13 +74,13 @@ The following table lists the keyboard shortcuts you can use to add nodes in Sha | Negate | Alt + - | Option + - | | Normal Vector | Alt + N | Option + N | | Normalize | Alt + Z | Option + Z | -| One Minus | Alt + \| | Option + \| | +| One Minus | Alt + I | Option + I | | Position | Alt + V | Option + V | | Power | Alt + P | Option + P | | Remap | Alt + R | Option + R | | Sample Texture 2D | Alt + X | Option + X | | Saturate | Alt + Q | Option + Q | -| Smoothstep | Alt + " | Option + " | +| Smoothstep | Alt + ` | Option + ` | | Split | Alt + E | Option + E | | Step | Alt + J | Option + J | | Subtract | Alt + S | Option + S | diff --git a/Packages/com.unity.shadergraph/Documentation~/Keyword-Node.md b/Packages/com.unity.shadergraph/Documentation~/Keyword-Node.md index 08ec9031998..f6f41b8f039 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Keyword-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Keyword-Node.md @@ -12,3 +12,7 @@ The appearance of a Keyword node, including its available ports, changes based o Because each Keyword node references a specific Keyword, you must first define at least one Keyword on the Blackboard. Drag a Keyword from the Blackboard to the workspace to make a Keyword node that corresponds to that Keyword. You can also right-click anywhere on the workspace, and use the **Create Node** menu to make a new Keyword node. Under **Keywords**, there is a list of Keywords that you defined on the Blackboard. Click on a Keyword in that list to create a corresponding Keyword node. + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Length-Node.md b/Packages/com.unity.shadergraph/Documentation~/Length-Node.md index f691d539fc3..7576ea1cbfe 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Length-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Length-Node.md @@ -31,3 +31,7 @@ void Unity_Length_float4(float4 In, out float Out) Out = length(In); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Lerp-Node.md b/Packages/com.unity.shadergraph/Documentation~/Lerp-Node.md index 47de1677e45..aed00cc752e 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Lerp-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Lerp-Node.md @@ -35,3 +35,7 @@ void Unity_Lerp_float4(float4 A, float4 B, float4 T, out float4 Out) Out = lerp(A, B, T); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Linear-Blend-Skinning-Node.md b/Packages/com.unity.shadergraph/Documentation~/Linear-Blend-Skinning-Node.md index 6af3d752a57..c60a4f6001c 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Linear-Blend-Skinning-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Linear-Blend-Skinning-Node.md @@ -13,3 +13,7 @@ This node lets you apply Linear Blend Vertex Skinning, and only works with the [ | Position | Output | Vector3 | Vertex | Outputs the skinned vertex position. | | Normal | Output | Vector3 | Vertex | Outputs the skinned vertex normal. | | Tangent | Output | Vector3 | Vertex | Outputs the skinned vertex tangent. | + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Log-Node.md b/Packages/com.unity.shadergraph/Documentation~/Log-Node.md index 0d5b38c5410..661d08074a7 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Log-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Log-Node.md @@ -55,3 +55,7 @@ void Unity_Log10_float4(float4 In, out float4 Out) Out = log10(In); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Main-Light-Direction-Node.md b/Packages/com.unity.shadergraph/Documentation~/Main-Light-Direction-Node.md index e6d03689054..4b2f9843b65 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Main-Light-Direction-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Main-Light-Direction-Node.md @@ -10,3 +10,7 @@ The main directional light is the one casting shadows if there is any. Otherwise | Name | Direction | Type | Description | | :------------ | :-------- | :------------- | :-------------------------------------------------------- | | **Direction** | Output | Vector3 | The normalized direction of the sun light in world space. | + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Material-Quality-Keyword-Node.md b/Packages/com.unity.shadergraph/Documentation~/Material-Quality-Keyword-Node.md index 87627bd4e61..5d919c17c2d 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Material-Quality-Keyword-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Material-Quality-Keyword-Node.md @@ -11,3 +11,4 @@ To manually set the quality level from a C# script, use the `UnityEngine.Renderi ## Additional resources: * [Keywords](Keywords.md) +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Matrix-2x2-Node.md b/Packages/com.unity.shadergraph/Documentation~/Matrix-2x2-Node.md index b5fed26f801..1565822d05e 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Matrix-2x2-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Matrix-2x2-Node.md @@ -23,3 +23,7 @@ The following example code represents one possible outcome of this node. ``` float2x2 _Matrix2x2 = float2x2(1, 0, 0, 1); ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Matrix-3x3-Node.md b/Packages/com.unity.shadergraph/Documentation~/Matrix-3x3-Node.md index 071fd6ac21b..6df871b3cc1 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Matrix-3x3-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Matrix-3x3-Node.md @@ -23,3 +23,7 @@ The following example code represents one possible outcome of this node. ``` float3x3 _Matrix3x3 = float3x3(1, 0, 0, 0, 1, 0, 0, 0, 1); ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Matrix-4x4-Node.md b/Packages/com.unity.shadergraph/Documentation~/Matrix-4x4-Node.md index 4d1ba1d3766..836891f82a7 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Matrix-4x4-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Matrix-4x4-Node.md @@ -23,3 +23,7 @@ The following example code represents one possible outcome of this node. ``` float4x4 _Matrix4x4 = float4x4(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Matrix-Construction-Node.md b/Packages/com.unity.shadergraph/Documentation~/Matrix-Construction-Node.md index 42b2e7403fe..39e21229dc8 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Matrix-Construction-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Matrix-Construction-Node.md @@ -56,3 +56,7 @@ void Unity_MatrixConstruction_Column_float(float4 M0, float4 M1, float4 M2, floa Out2x2 = float2x2(M0.x, M1.x, M0.y, M1.y); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Matrix-Determinant-Node.md b/Packages/com.unity.shadergraph/Documentation~/Matrix-Determinant-Node.md index b88be350dc5..13cb4539cfe 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Matrix-Determinant-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Matrix-Determinant-Node.md @@ -21,3 +21,7 @@ void Unity_MatrixDeterminant_float4x4(float4x4 In, out float Out) Out = determinant(In); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Matrix-Split-Node.md b/Packages/com.unity.shadergraph/Documentation~/Matrix-Split-Node.md index d0b82c8a50b..d5dad28c067 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Matrix-Split-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Matrix-Split-Node.md @@ -39,3 +39,7 @@ float2 _MatrixSplit_M1 = float2(In[1].r, In[1].g); float2 _MatrixSplit_M2 = float2(0, 0); float2 _MatrixSplit_M3 = float2(0, 0); ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Matrix-Transpose-Node.md b/Packages/com.unity.shadergraph/Documentation~/Matrix-Transpose-Node.md index 3ab69044934..dd1df0926ed 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Matrix-Transpose-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Matrix-Transpose-Node.md @@ -21,3 +21,7 @@ void Unity_MatrixTranspose_float4x4(float4x4 In, out float4x4 Out) Out = transpose(In); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Maximum-Node.md b/Packages/com.unity.shadergraph/Documentation~/Maximum-Node.md index 0fed2dfc480..42dfe52e87b 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Maximum-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Maximum-Node.md @@ -22,3 +22,7 @@ void Unity_Maximum_float4(float4 A, float4 B, out float4 Out) Out = max(A, B); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Metal-Reflectance-Node.md b/Packages/com.unity.shadergraph/Documentation~/Metal-Reflectance-Node.md index 477e8772a88..c6c547666e8 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Metal-Reflectance-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Metal-Reflectance-Node.md @@ -71,3 +71,7 @@ float3 _MetalReflectance_Out = float3(0.662, 0.655, 0.634); ``` float3 _MetalReflectance_Out = float3(0.672, 0.637, 0.585); ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Minimum-Node.md b/Packages/com.unity.shadergraph/Documentation~/Minimum-Node.md index 4e0672dd99d..12db5dcde94 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Minimum-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Minimum-Node.md @@ -22,3 +22,7 @@ void Unity_Minimum_float4(float4 A, float4 B, out float4 Out) Out = min(A, B); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Modulo-Node.md b/Packages/com.unity.shadergraph/Documentation~/Modulo-Node.md index 23f21ea93a6..26c5bce8794 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Modulo-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Modulo-Node.md @@ -22,3 +22,7 @@ void Unity_Modulo_float4(float4 A, float4 B, out float4 Out) Out = fmod(A, B); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Multiply-Node.md b/Packages/com.unity.shadergraph/Documentation~/Multiply-Node.md index c18ca63b174..9cfa05e645c 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Multiply-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Multiply-Node.md @@ -42,3 +42,7 @@ void Unity_Multiply_float4x4_float4x4(float4x4 A, float4x4 B, out float4x4 Out) Out = mul(A, B); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Nand-Node.md b/Packages/com.unity.shadergraph/Documentation~/Nand-Node.md index 12f627b688d..2d6fd5c2001 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Nand-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Nand-Node.md @@ -22,3 +22,7 @@ void Unity_Nand_float(float A, float B, out float Out) Out = !A && !B; } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Negate-Node.md b/Packages/com.unity.shadergraph/Documentation~/Negate-Node.md index 09fac3ac57f..e95a98f0495 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Negate-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Negate-Node.md @@ -21,3 +21,7 @@ void Unity_Negate_float4(float4 In, out float4 Out) Out = -1 * In; } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Noise-Sine-Wave-Node.md b/Packages/com.unity.shadergraph/Documentation~/Noise-Sine-Wave-Node.md index 90c87d81f21..4cfbc98772d 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Noise-Sine-Wave-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Noise-Sine-Wave-Node.md @@ -24,3 +24,7 @@ void Unity_NoiseSineWave_float4(float4 In, float2 MinMax, out float4 Out) Out = sinIn + noise; } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Normal-Blend-Node.md b/Packages/com.unity.shadergraph/Documentation~/Normal-Blend-Node.md index 1bbac11346b..762c9fe9ae1 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Normal-Blend-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Normal-Blend-Node.md @@ -41,3 +41,7 @@ void Unity_NormalBlend_Reoriented_float(float3 A, float3 B, out float3 Out) Out = (t / t.z) * dot(t, u) - u; } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Normal-From-Height-Node.md b/Packages/com.unity.shadergraph/Documentation~/Normal-From-Height-Node.md index 84cbadacb40..e430582a1ac 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Normal-From-Height-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Normal-From-Height-Node.md @@ -64,3 +64,7 @@ void Unity_NormalFromHeight_World_float(float In, float Strength, float3 Positio Out = normalize(TangentMatrix[2].xyz - (Strength * surfGrad)); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Normal-From-Texture-Node.md b/Packages/com.unity.shadergraph/Documentation~/Normal-From-Texture-Node.md index 8399665b5ef..655ddff06d3 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Normal-From-Texture-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Normal-From-Texture-Node.md @@ -37,3 +37,7 @@ void Unity_NormalFromTexture_float(Texture texture, SamplerState Sampler, float2 Out = normalize(cross(va, vb)); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Normal-Reconstruct-Z-Node.md b/Packages/com.unity.shadergraph/Documentation~/Normal-Reconstruct-Z-Node.md index d615c7c1c18..99f65f53fce 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Normal-Reconstruct-Z-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Normal-Reconstruct-Z-Node.md @@ -23,3 +23,7 @@ void Unity_NormalReconstructZ_float(float2 In, out float3 Out) Out = normalize(normalVector); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Normal-Strength-Node.md b/Packages/com.unity.shadergraph/Documentation~/Normal-Strength-Node.md index bf4b84ea74c..e6ee31fa543 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Normal-Strength-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Normal-Strength-Node.md @@ -22,3 +22,7 @@ void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out) Out = {precision}3(In.rg * Strength, lerp(1, In.b, saturate(Strength))); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Normal-Unpack-Node.md b/Packages/com.unity.shadergraph/Documentation~/Normal-Unpack-Node.md index 336b72e9f0b..0e3931694e5 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Normal-Unpack-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Normal-Unpack-Node.md @@ -40,3 +40,7 @@ void Unity_NormalUnpackRGB_float(float4 In, out float3 Out) Out = UnpackNormalmapRGB(In); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Normal-Vector-Node.md b/Packages/com.unity.shadergraph/Documentation~/Normal-Vector-Node.md index cf6c4c9dca8..c21c99985e1 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Normal-Vector-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Normal-Vector-Node.md @@ -20,3 +20,7 @@ The **Space** dropdown determines the coordinate space of the normal vector. | **View** | Returns the vertex or fragment normal in view space, where up is the up direction of the camera. | | **World** | Returns the vertex or fragment normal in world space, where up is the up direction of the scene. | | **Tangent** | Returns the vertex or fragment normal in tangent space, where up is away from the surface of the mesh. | + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Normalize-Node.md b/Packages/com.unity.shadergraph/Documentation~/Normalize-Node.md index dc83b70bc68..900959c2050 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Normalize-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Normalize-Node.md @@ -21,3 +21,7 @@ void Unity_Normalize_float4(float4 In, out float4 Out) Out = normalize(In); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Not-Node.md b/Packages/com.unity.shadergraph/Documentation~/Not-Node.md index bd098259e76..30e9c555add 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Not-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Not-Node.md @@ -16,3 +16,7 @@ The following example code represents one possible outcome of this node. ``` Out = !In; ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Object-Node.md b/Packages/com.unity.shadergraph/Documentation~/Object-Node.md index c01fb9d4348..a07371bf0fc 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Object-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Object-Node.md @@ -36,3 +36,7 @@ float3 _Object_WorldBoundsMin = SHADERGRAPH_RENDERER_BOUNDS_MIN; float3 _Object_WorldBoundsMax = SHADERGRAPH_RENDERER_BOUNDS_MAX; float3 _Object_BoundsSize = (SHADERGRAPH_RENDERER_BOUNDS_MAX - SHADERGRAPH_RENDERER_BOUNDS_MIN); ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/One-Minus-Node.md b/Packages/com.unity.shadergraph/Documentation~/One-Minus-Node.md index 88b202cb54f..e28ed002b9c 100644 --- a/Packages/com.unity.shadergraph/Documentation~/One-Minus-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/One-Minus-Node.md @@ -21,3 +21,7 @@ void Unity_OneMinus_float4(float4 In, out float4 Out) Out = 1 - In; } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Or-Node.md b/Packages/com.unity.shadergraph/Documentation~/Or-Node.md index 7cbcc0378e6..9430d49617e 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Or-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Or-Node.md @@ -22,3 +22,7 @@ void Unity_Or_float(float In, out float Out) Out = A || B; } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Parallax-Mapping-Node.md b/Packages/com.unity.shadergraph/Documentation~/Parallax-Mapping-Node.md index e7ebc621b07..3b8407594fd 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Parallax-Mapping-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Parallax-Mapping-Node.md @@ -23,3 +23,7 @@ The following example code represents one possible outcome of this node. ``` float2 _ParallaxMapping_ParallaxUVs = UVs.xy + ParallaxMapping(Heightmap, Heightmap_Sampler, IN.TangentSpaceViewDirection, Amplitude * 0.01, UVs.xy); ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] 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 6a3d9c7e835..24469ea0d76 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Parallax-Occlusion-Mapping-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Parallax-Occlusion-Mapping-Node.md @@ -48,3 +48,7 @@ float2 _ParallaxOcclusionMapping_ParallaxUVs = UVs.xy + ParallaxOcclusionMapping float _ParallaxOcclusionMapping_PixelDepthOffset = (ParallaxOcclusionMapping_MaxHeight - ParallaxOcclusionMapping_OutHeight * ParallaxOcclusionMapping_MaxHeight) / max(ParallaxOcclusionMapping_NdotV, 0.0001); ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Polar-Coordinates-Node.md b/Packages/com.unity.shadergraph/Documentation~/Polar-Coordinates-Node.md index 580730e5454..3707ab2e545 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Polar-Coordinates-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Polar-Coordinates-Node.md @@ -31,3 +31,7 @@ void Unity_PolarCoordinates_float(float2 UV, float2 Center, float RadialScale, f Out = float2(radius, angle); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Polygon-Node.md b/Packages/com.unity.shadergraph/Documentation~/Polygon-Node.md index ebd510ac50e..b9a273944c4 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Polygon-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Polygon-Node.md @@ -34,3 +34,7 @@ void Unity_Polygon_float(float2 UV, float Sides, float Width, float Height, out Out = saturate((1 - distance) / fwidth(distance)); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Position-Node.md b/Packages/com.unity.shadergraph/Documentation~/Position-Node.md index 901138afbf2..05139b272e0 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Position-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Position-Node.md @@ -19,3 +19,7 @@ The **Space** dropdown determines the coordinate space of the output position. | **World** | Returns the vertex or fragment position in the world, in meters. If you use the High Definition Render Pipeline (HDRP), **World** returns the position [relative to the camera](https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@latest?preview=1&subfolder=/manual/Camera-Relative-Rendering.html). | | **Tangent** | Returns the vertex or fragment position relative to the tangent of the surface, in meters. For more information, refer to [Normal maps](https://docs.unity3d.com/6000.3/Documentation/Manual/StandardShaderMaterialParameterNormalMapLanding.html). | | **Absolute World**| Returns the vertex or fragment position in the world, in meters. | + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Posterize-Node.md b/Packages/com.unity.shadergraph/Documentation~/Posterize-Node.md index a36c78c942d..a20c11de12b 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Posterize-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Posterize-Node.md @@ -26,3 +26,7 @@ void Unity_Posterize_float4(float4 In, float4 Steps, out float4 Out) Out = floor(In * Steps) / Steps; } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Power-Node.md b/Packages/com.unity.shadergraph/Documentation~/Power-Node.md index 9aa411221b8..6577f5964ff 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Power-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Power-Node.md @@ -24,3 +24,7 @@ void Unity_Power_float4(float4 A, float4 B, out float4 Out) Out = pow(A, B); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Preview-Node.md b/Packages/com.unity.shadergraph/Documentation~/Preview-Node.md index 232cd73dfb7..83af11c1e7d 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Preview-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Preview-Node.md @@ -24,3 +24,7 @@ void Unity_Preview_float4(float4 In, out float4 Out) Out = In; } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Projection-Node.md b/Packages/com.unity.shadergraph/Documentation~/Projection-Node.md index 3f6e58c5b9f..8122ea43745 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Projection-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Projection-Node.md @@ -22,3 +22,7 @@ void Unity_Projection_float4(float4 A, float4 B, out float4 Out) Out = B * dot(A, B) / dot(B, B); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Property-Node.md b/Packages/com.unity.shadergraph/Documentation~/Property-Node.md index b1664651226..4b09b8a4167 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Property-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Property-Node.md @@ -1,3 +1,7 @@ # Property node Returns the value of the associated [Blackboard](Blackboard.md) Property. + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Radial-Shear-Node.md b/Packages/com.unity.shadergraph/Documentation~/Radial-Shear-Node.md index cf94cf64808..a4628816ae2 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Radial-Shear-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Radial-Shear-Node.md @@ -27,3 +27,7 @@ void Unity_RadialShear_float(float2 UV, float2 Center, float Strength, float2 Of Out = UV + float2(delta.y, -delta.x) * delta_offset + Offset; } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Radians-To-Degrees-Node.md b/Packages/com.unity.shadergraph/Documentation~/Radians-To-Degrees-Node.md index 0a924149fe8..594b5121264 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Radians-To-Degrees-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Radians-To-Degrees-Node.md @@ -21,3 +21,7 @@ void Unity_RadiansToDegrees_float4(float4 In, out float4 Out) Out = degrees(In); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Random-Range-Node.md b/Packages/com.unity.shadergraph/Documentation~/Random-Range-Node.md index db703898b05..5a213c0222a 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Random-Range-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Random-Range-Node.md @@ -26,3 +26,7 @@ void Unity_RandomRange_float(float2 Seed, float Min, float Max, out float Out) Out = lerp(Min, Max, randomno); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Raytracing-Quality-Keyword-Node.md b/Packages/com.unity.shadergraph/Documentation~/Raytracing-Quality-Keyword-Node.md index a4862b487cc..b655c9fcd79 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Raytracing-Quality-Keyword-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Raytracing-Quality-Keyword-Node.md @@ -9,3 +9,4 @@ Refer to `https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-defi ## Additional resources: * [Keywords](Keywords.md) +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Reciprocal-Node.md b/Packages/com.unity.shadergraph/Documentation~/Reciprocal-Node.md index 69ac552a62b..54d70e20149 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Reciprocal-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Reciprocal-Node.md @@ -38,3 +38,7 @@ void Unity_Reciprocal_Fast_float4(float4 In, out float4 Out) Out = rcp(In); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Reciprocal-Square-Root-Node.md b/Packages/com.unity.shadergraph/Documentation~/Reciprocal-Square-Root-Node.md index 3b0ad9d806e..59b46fb068b 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Reciprocal-Square-Root-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Reciprocal-Square-Root-Node.md @@ -21,3 +21,7 @@ void Unity_ReciprocalSquareRoot_float4(float4 In, out float4 Out) Out = rsqrt(In); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Rectangle-Node.md b/Packages/com.unity.shadergraph/Documentation~/Rectangle-Node.md index b453bd94122..33b3d4a040e 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Rectangle-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Rectangle-Node.md @@ -33,3 +33,7 @@ void Unity_Rectangle_float(float2 UV, float Width, float Height, out float Out) Out = saturate(min(d.x, d.y)); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Redirect-Node.md b/Packages/com.unity.shadergraph/Documentation~/Redirect-Node.md index c3c68f89e81..3da2128650b 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Redirect-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Redirect-Node.md @@ -6,3 +6,7 @@ Redirect nodes don't appear in the node search. To add a redirect node, do one o - Double click on a wire. - Right click on a wire and select **Add Redirect Node**. - Select a wire and press `Ctrl/Cmd + R` on the keyboard. + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Reflection-Node.md b/Packages/com.unity.shadergraph/Documentation~/Reflection-Node.md index c3d27128345..99e48fbbef8 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Reflection-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Reflection-Node.md @@ -22,3 +22,7 @@ void Unity_Reflection_float4(float4 In, float4 Normal, out float4 Out) Out = reflect(In, Normal); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Reflection-Probe-Node.md b/Packages/com.unity.shadergraph/Documentation~/Reflection-Probe-Node.md index d99faed6102..e714b3d5a60 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Reflection-Probe-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Reflection-Probe-Node.md @@ -32,3 +32,7 @@ void Unity_ReflectionProbe_float(float3 ViewDir, float3 Normal, float LOD, out f Out = SHADERGRAPH_REFLECTION_PROBE(ViewDir, Normal, LOD); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Refract-Node.md b/Packages/com.unity.shadergraph/Documentation~/Refract-Node.md index f39b0b57576..e0980452c23 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Refract-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Refract-Node.md @@ -60,3 +60,7 @@ void Unity_RefractSafe(float3 Incident, float3 Normal, float IORInput, float IOR (k >= 0.0 ? saturate(F_FresnelDielectric(internalIORMedium/internalIORSource, -cos0)) : 1.0); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Rejection-Node.md b/Packages/com.unity.shadergraph/Documentation~/Rejection-Node.md index 4b4092475a0..97ac4abc8f8 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Rejection-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Rejection-Node.md @@ -22,3 +22,7 @@ void Unity_Rejection_float4(float4 A, float4 B, out float4 Out) Out = A - (B * dot(A, B) / dot(B, B)) } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Remap-Node.md b/Packages/com.unity.shadergraph/Documentation~/Remap-Node.md index 8e0e6e3f639..a9239fa35c7 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Remap-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Remap-Node.md @@ -20,4 +20,8 @@ void Unity_Remap_float4(float4 In, float2 InMinMax, float2 OutMinMax, out float4 { Out = OutMinMax.x + (In - InMinMax.x) * (OutMinMax.y - OutMinMax.x) / (InMinMax.y - InMinMax.x); } -``` \ No newline at end of file +``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Replace-Color-Node.md b/Packages/com.unity.shadergraph/Documentation~/Replace-Color-Node.md index e85467cf9c0..a5e6d3ed640 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Replace-Color-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Replace-Color-Node.md @@ -26,3 +26,7 @@ void Unity_ReplaceColor_float(float3 In, float3 From, float3 To, float Range, fl Out = lerp(To, In, saturate((Distance - Range) / max(Fuzziness, 1e-5f))); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Rotate-About-Axis-Node.md b/Packages/com.unity.shadergraph/Documentation~/Rotate-About-Axis-Node.md index 2d0100e03da..b3fae8be886 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Rotate-About-Axis-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Rotate-About-Axis-Node.md @@ -47,3 +47,7 @@ void Unity_RotateAboutAxis_Degrees_float(float3 In, float3 Axis, float Rotation, Out = In * c + cross(Axis, In) * s + Axis * dot(Axis, In) * (1 - c); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Rotate-Node.md b/Packages/com.unity.shadergraph/Documentation~/Rotate-Node.md index 04d5a26b0ed..5982be4308b 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Rotate-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Rotate-Node.md @@ -55,3 +55,7 @@ void Unity_Rotate_Degrees_float(float2 UV, float2 Center, float Rotation, out fl Out = r1 + Center; } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Round-Node.md b/Packages/com.unity.shadergraph/Documentation~/Round-Node.md index 80b124f94c5..9c9b29dc3a8 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Round-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Round-Node.md @@ -21,3 +21,7 @@ void Unity_Round_float4(float4 In, out float4 Out) Out = round(In); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Rounded-Polygon-Node.md b/Packages/com.unity.shadergraph/Documentation~/Rounded-Polygon-Node.md index 4c64a4f4d6a..fdf63ae8271 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Rounded-Polygon-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Rounded-Polygon-Node.md @@ -80,3 +80,7 @@ void RoundedPolygon_Func_float(float2 UV, float Width, float Height, float Sides Out = saturate((1 - Out) / fwidth(Out)); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Rounded-Rectangle-Node.md b/Packages/com.unity.shadergraph/Documentation~/Rounded-Rectangle-Node.md index f43d5783719..f442b01cbc1 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Rounded-Rectangle-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Rounded-Rectangle-Node.md @@ -32,3 +32,7 @@ void Unity_RoundedRectangle_float(float2 UV, float Width, float Height, float Ra Out = saturate((1 - d) / fwidth(d)); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Sample-Cubemap-Node.md b/Packages/com.unity.shadergraph/Documentation~/Sample-Cubemap-Node.md index e97442f47b7..b52e8f7c7b8 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Sample-Cubemap-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Sample-Cubemap-Node.md @@ -23,3 +23,7 @@ The following example code represents one possible outcome of this node. ``` float4 _SampleCubemap_Out = SAMPLE_TEXTURECUBE_LOD(Cubemap, Sampler, Dir, LOD); ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Sample-Gradient-Node.md b/Packages/com.unity.shadergraph/Documentation~/Sample-Gradient-Node.md index 65f124ec8b3..a0acd805a94 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Sample-Gradient-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Sample-Gradient-Node.md @@ -39,3 +39,7 @@ void Unity_SampleGradient_float(float4 Gradient, float Time, out float4 Out) Out = float4(color, alpha); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Sample-Reflected-Cubemap-Node.md b/Packages/com.unity.shadergraph/Documentation~/Sample-Reflected-Cubemap-Node.md index 310b40907fe..9121c721ad1 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Sample-Reflected-Cubemap-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Sample-Reflected-Cubemap-Node.md @@ -24,3 +24,7 @@ The following example code represents one possible outcome of this node. ``` float4 _SampleCubemap_Out = SAMPLE_TEXTURECUBE_LOD(Cubemap, Sampler, reflect(-ViewDir, Normal), LOD); ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Sample-Texture-2D-Array-Node.md b/Packages/com.unity.shadergraph/Documentation~/Sample-Texture-2D-Array-Node.md index 7551dc32f7e..6c6cbb936b1 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Sample-Texture-2D-Array-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Sample-Texture-2D-Array-Node.md @@ -77,3 +77,7 @@ float _SampleTexture2DArray_A = _SampleTexture2DArray_RGBA.a; - [Sample Texture 2D node](Sample-Texture-2D-Node.md) - [Sample Texture 3D node](Sample-Texture-3D-Node.md) - [Sampler State node](Sampler-State-Node.md) + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Sample-Texture-2D-LOD-Node.md b/Packages/com.unity.shadergraph/Documentation~/Sample-Texture-2D-LOD-Node.md index aff1599bd2e..c436c9b5047 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Sample-Texture-2D-LOD-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Sample-Texture-2D-LOD-Node.md @@ -58,3 +58,7 @@ float _SampleTexture2DLOD_G = _SampleTexture2DLOD_RGBA.g; float _SampleTexture2DLOD_B = _SampleTexture2DLOD_RGBA.b; float _SampleTexture2DLOD_A = _SampleTexture2DLOD_RGBA.a; ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] 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 f07eee8dea4..5d261125a34 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Sample-Texture-2D-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Sample-Texture-2D-Node.md @@ -98,3 +98,7 @@ float _SampleTexture2D_A = _SampleTexture2D_RGBA.a; - [Sample Texture 2D Array node](Sample-Texture-2D-Array-Node.md) - [Sample Texture 3D node](Sample-Texture-3D-Node.md) - [Sampler State node](Sampler-State-Node.md) + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Sample-Texture-3D-Node.md b/Packages/com.unity.shadergraph/Documentation~/Sample-Texture-3D-Node.md index ef4fc4c031f..781ff8c4df2 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Sample-Texture-3D-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Sample-Texture-3D-Node.md @@ -71,3 +71,7 @@ float4 _SampleTexture3D_Out = SAMPLE_TEXTURE3D(Texture, Sampler, UV); - [Sample Texture 2D Array node](Sample-Texture-2D-Array-Node.md) - [Sample Texture 2D node](Sample-Texture-2D-Node.md) - [Sampler State node](Sampler-State-Node.md) + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Sample-Virtual-Texture-Node.md b/Packages/com.unity.shadergraph/Documentation~/Sample-Virtual-Texture-Node.md index 5d706fa5e53..ea19b944084 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Sample-Virtual-Texture-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Sample-Virtual-Texture-Node.md @@ -69,3 +69,7 @@ float4 SampleVirtualTexture(float2 uv, VTPropertyWithTextureType vtProperty, out return GetResolveOutput(info); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Sampler-State-Node.md b/Packages/com.unity.shadergraph/Documentation~/Sampler-State-Node.md index fcfc4def2a9..6495e1fd29f 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Sampler-State-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Sampler-State-Node.md @@ -36,3 +36,7 @@ The following example code represents one possible outcome of this node. ``` SamplerState _SamplerState_Out = _SamplerState_Linear_Repeat_sampler; ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Saturate-Node.md b/Packages/com.unity.shadergraph/Documentation~/Saturate-Node.md index 8d5ad56ac19..55367d7c74e 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Saturate-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Saturate-Node.md @@ -21,3 +21,7 @@ void Unity_Saturate_float4(float4 In, out float4 Out) Out = saturate(In); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Saturation-Node.md b/Packages/com.unity.shadergraph/Documentation~/Saturation-Node.md index fcb734e3bd1..17ed47c713c 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Saturation-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Saturation-Node.md @@ -23,3 +23,7 @@ void Unity_Saturation_float(float3 In, float Saturation, out float3 Out) Out = luma.xxx + Saturation.xxx * (In - luma.xxx); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Sawtooth-Wave-Node.md b/Packages/com.unity.shadergraph/Documentation~/Sawtooth-Wave-Node.md index 22f1c8d000e..d18a4044498 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Sawtooth-Wave-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Sawtooth-Wave-Node.md @@ -21,3 +21,7 @@ void Unity_SawtoothWave_float4(float4 In, out float4 Out) Out = 2 * (In - floor(0.5 + In)); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Scene-Color-Node.md b/Packages/com.unity.shadergraph/Documentation~/Scene-Color-Node.md index e863aab4c58..a900cfe62fd 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Scene-Color-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Scene-Color-Node.md @@ -40,3 +40,7 @@ void Unity_SceneColor_float(float4 UV, out float3 Out) Out = SHADERGRAPH_SAMPLE_SCENE_COLOR(UV); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Scene-Depth-Difference-Node.md b/Packages/com.unity.shadergraph/Documentation~/Scene-Depth-Difference-Node.md index ee7ed98b9dc..ea27f5ecb28 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Scene-Depth-Difference-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Scene-Depth-Difference-Node.md @@ -17,3 +17,7 @@ The Scene Depth Difference node returns the difference in depth between a world | **Linear 01** | Returns the distance in linear normalized space. The minimum distance is 0, and the maximum distance is 1. | | **Raw** | Returns the distance in the non-linear space the depth buffer uses. The minimum distance is 0, and the maximum distance is 1. | | **Eye** | Returns the distance in meters. | + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Scene-Depth-Node.md b/Packages/com.unity.shadergraph/Documentation~/Scene-Depth-Node.md index 9b62cfe227f..1231620992b 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Scene-Depth-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Scene-Depth-Node.md @@ -41,4 +41,8 @@ void Unity_SceneDepth_Raw_float(float4 UV, out float Out) { Out = SHADERGRAPH_SAMPLE_SCENE_DEPTH(UV); } -``` \ No newline at end of file +``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Sclera-Iris-Blend-Node.md b/Packages/com.unity.shadergraph/Documentation~/Sclera-Iris-Blend-Node.md index df0bde7c17f..596319cb393 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Sclera-Iris-Blend-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Sclera-Iris-Blend-Node.md @@ -28,3 +28,7 @@ This node blends all the properties of the Iris and the Sclera so that they can | **Specular Normal** | Output | Vector3 | Normal of the specular lobes. | | **EyeSmoothness** | Output | float | Final smoothness of the Eye. | | **SurfaceDiffusionProfile** | Output | Diffusion Profile | Diffusion profile of the target fragment. | + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Sclera-Limbal-Ring-Node.md b/Packages/com.unity.shadergraph/Documentation~/Sclera-Limbal-Ring-Node.md index 5c19eea0772..1fa995ebfa1 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Sclera-Limbal-Ring-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Sclera-Limbal-Ring-Node.md @@ -19,3 +19,7 @@ Calculates the intensity of the Sclera ring, a darkening feature of eyes. | **LimbalRingFade** | Input | float | Normalized [0, 1] value that defines strength of the fade out of the limbal ring.** | | **LimbalRing Intensity** | Input | float | Positive value that defines how dark the limbal ring is. | | **Iris Limbal Ring Color** | Output | Color | Intensity of the limbal ring (blackscale). | + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Sclera-UV-Location-Node.md b/Packages/com.unity.shadergraph/Documentation~/Sclera-UV-Location-Node.md index aca7d2975dd..b28be366233 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Sclera-UV-Location-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Sclera-UV-Location-Node.md @@ -14,3 +14,7 @@ This node converts the object position of the sclera to a UV Sampling coordinate | -------------- | ------------- | ------- | ------------------------------------------------------------ | | **PositionOS** | Input | Vector3 | **Position of the fragment to shade in object space.** | | **ScleraUV** | Output | Vector2 | Normalized UV coordinates that can be used to sample either a texture or procedurally generate a Sclera Texture. | + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Screen-Node.md b/Packages/com.unity.shadergraph/Documentation~/Screen-Node.md index 2be18e2df22..f19a33389d0 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Screen-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Screen-Node.md @@ -24,3 +24,7 @@ The following example code represents one possible outcome of this node. float _Screen_Width = _ScreenParams.x; float _Screen_Height = _ScreenParams.y; ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Screen-Position-Node.md b/Packages/com.unity.shadergraph/Documentation~/Screen-Position-Node.md index 776491e134f..d1321505ac1 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Screen-Position-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Screen-Position-Node.md @@ -61,3 +61,6 @@ float4 Out = frac(float4((IN.NDCPosition.x * 2 - 1) * _ScreenParams.x / _ScreenP float4 Out = float4(IN.PixelPosition.xy, 0, 0); ``` +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Sign-Node.md b/Packages/com.unity.shadergraph/Documentation~/Sign-Node.md index 1e3b9be5038..e4532cdef50 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Sign-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Sign-Node.md @@ -21,3 +21,7 @@ void Unity_Sign_float4(float4 In, out float4 Out) Out = sign(In); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Simple-Noise-Node.md b/Packages/com.unity.shadergraph/Documentation~/Simple-Noise-Node.md index b554309e144..c3ead08d469 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Simple-Noise-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Simple-Noise-Node.md @@ -74,4 +74,8 @@ void Unity_SimpleNoise_float(float2 UV, float Scale, out float Out) Out = t; } -``` \ No newline at end of file +``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Sine-Node.md b/Packages/com.unity.shadergraph/Documentation~/Sine-Node.md index e3a4819c0f6..33396671809 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Sine-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Sine-Node.md @@ -21,3 +21,7 @@ void Unity_Sine_float4(float4 In, out float4 Out) Out = sin(In); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Slice-Index-Cubemap-Face-Node.md b/Packages/com.unity.shadergraph/Documentation~/Slice-Index-Cubemap-Face-Node.md index 24626b92cb1..4228107e1d8 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Slice-Index-Cubemap-Face-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Slice-Index-Cubemap-Face-Node.md @@ -19,4 +19,8 @@ The following example code represents one possible outcome of this node. ``` _CustomRenderTextureCubeFace -``` \ No newline at end of file +``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Slider-Node.md b/Packages/com.unity.shadergraph/Documentation~/Slider-Node.md index 7cd0030551c..89317c27aa8 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Slider-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Slider-Node.md @@ -25,3 +25,7 @@ The following example code represents one possible outcome of this node. ``` float _Slider_Out = 1.0; ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Smoothstep-Node.md b/Packages/com.unity.shadergraph/Documentation~/Smoothstep-Node.md index 71ebdb0e577..a9d415f8664 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Smoothstep-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Smoothstep-Node.md @@ -25,3 +25,7 @@ void Unity_Smoothstep_float4(float4 Edge1, float4 Edge2, float4 In, out float4 O Out = smoothstep(Edge1, Edge2, In); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Sphere-Mask-Node.md b/Packages/com.unity.shadergraph/Documentation~/Sphere-Mask-Node.md index ab0344327ab..a929c2999f9 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Sphere-Mask-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Sphere-Mask-Node.md @@ -24,3 +24,7 @@ void Unity_SphereMask_float4(float4 Coords, float4 Center, float Radius, float H Out = 1 - saturate((distance(Coords, Center) - Radius) / (1 - Hardness)); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Spherize-Node.md b/Packages/com.unity.shadergraph/Documentation~/Spherize-Node.md index 6c7510e7e3c..e4016db9eb9 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Spherize-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Spherize-Node.md @@ -28,3 +28,7 @@ void Unity_Spherize_float(float2 UV, float2 Center, float Strength, float2 Offse Out = UV + delta * delta_offset + Offset; } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Split-Node.md b/Packages/com.unity.shadergraph/Documentation~/Split-Node.md index 03e39492baf..3707ba0a074 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Split-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Split-Node.md @@ -24,3 +24,7 @@ float _Split_G = In[1]; float _Split_B = 0; float _Split_A = 0; ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Split-Texture-Transform-Node.md b/Packages/com.unity.shadergraph/Documentation~/Split-Texture-Transform-Node.md index 6a619f89c58..cab89f536b2 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Split-Texture-Transform-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Split-Texture-Transform-Node.md @@ -17,3 +17,7 @@ Another term you may hear for tiling in this context is scale. Both terms refer | Tiling | Output | Vector 2 | Amount of tiling to apply per channel, set via the Material Inspector. | | Offset | Output | Vector 2 | Amount of offset to apply per channel, set via the Material Inspector. | | Texture Only | Output | Vector 2 | The input Texture2D, without tiling and offset data. | + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Sprite-Skinning-Node.md b/Packages/com.unity.shadergraph/Documentation~/Sprite-Skinning-Node.md index 38bce24c515..aaf646cdb1d 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Sprite-Skinning-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Sprite-Skinning-Node.md @@ -17,3 +17,7 @@ Please ensure the following settings are enabled: | Position | Output | Vector3 | Vertex | Outputs the skinned vertex position. | | Normal | Output | Vector3 | Vertex | Outputs the skinned vertex normal. | | Tangent | Output | Vector3 | Vertex | Outputs the skinned vertex tangent. | + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Square-Root-Node.md b/Packages/com.unity.shadergraph/Documentation~/Square-Root-Node.md index f12db540ce8..0b4d70c99bb 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Square-Root-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Square-Root-Node.md @@ -21,3 +21,7 @@ void Unity_SquareRoot_float4(float4 In, out float4 Out) Out = sqrt(In); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Square-Wave-Node.md b/Packages/com.unity.shadergraph/Documentation~/Square-Wave-Node.md index 9e7e79a0cd9..eeb2bae45cf 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Square-Wave-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Square-Wave-Node.md @@ -21,3 +21,7 @@ void Unity_SquareWave_float4(float4 In, out float4 Out) Out = 1.0 - 2.0 * round(frac(In)); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Step-Node.md b/Packages/com.unity.shadergraph/Documentation~/Step-Node.md index 16e13135d8f..2f73a39e72d 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Step-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Step-Node.md @@ -22,3 +22,7 @@ void Unity_Step_float4(float4 Edge, float4 In, out float4 Out) Out = step(Edge, In); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Sub-graph-Node.md b/Packages/com.unity.shadergraph/Documentation~/Sub-graph-Node.md index 3024c39e775..d3b9ba53842 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Sub-graph-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Sub-graph-Node.md @@ -11,3 +11,4 @@ Some built-in nodes are Sub Graph nodes, for example the [ThreadMapDetail node]( ## Additional resources - [Sub Graphs](Sub-graph.md) +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Subtract-Node.md b/Packages/com.unity.shadergraph/Documentation~/Subtract-Node.md index 4d1e18ee7e9..3cfbe4e1c15 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Subtract-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Subtract-Node.md @@ -22,3 +22,7 @@ void Unity_Subtract_float4(float4 A, float4 B, out float4 Out) Out = A - B; } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Swizzle-Node.md b/Packages/com.unity.shadergraph/Documentation~/Swizzle-Node.md index de11714c7b6..27c18a3cf58 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Swizzle-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Swizzle-Node.md @@ -35,3 +35,8 @@ The following example code represents one possible outcome of this node. ``` float4 _Swizzle_Out = In.wzyx; +``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Tangent-Node.md b/Packages/com.unity.shadergraph/Documentation~/Tangent-Node.md index 0777f091392..58c5b490276 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Tangent-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Tangent-Node.md @@ -21,3 +21,7 @@ void Unity_Tangent_float4(float4 In, out float4 Out) Out = tan(In); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Tangent-Vector-Node.md b/Packages/com.unity.shadergraph/Documentation~/Tangent-Vector-Node.md index 99124620033..67e88f87dcb 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Tangent-Vector-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Tangent-Vector-Node.md @@ -13,3 +13,7 @@ Provides access to the mesh vertex or fragment's **Tangent Vector**. The coordin | Name | Type | Options | Description | |:------------ |:-------------|:-----|:---| | Space | Dropdown | Object, View, World, Tangent | Selects coordinate space of **Tangent Vector** to output. | + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Terrain-Texture-Node.md b/Packages/com.unity.shadergraph/Documentation~/Terrain-Texture-Node.md index b551bd391e4..911a756caf3 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Terrain-Texture-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Terrain-Texture-Node.md @@ -37,3 +37,7 @@ The dropdown in the Terrain Texture node sets the texture or mask that the node |**Holes**|Sets the input as the holes texture in the **Input** Terrain Layer. The holes are in the red channel.| For more information, refer to [Terrain Layers](https://docs.unity3d.com/Manual/class-TerrainLayer.html). + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Texture-2D-Array-Asset-Node.md b/Packages/com.unity.shadergraph/Documentation~/Texture-2D-Array-Asset-Node.md index b9eda3a25ff..42d5fba24ad 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Texture-2D-Array-Asset-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Texture-2D-Array-Asset-Node.md @@ -24,3 +24,7 @@ The following example code represents one possible outcome of this node. TEXTURE2D_ARRAY(_Texture2DArrayAsset); SAMPLER(sampler_Texture2DArrayAsset); ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Texture-2D-Asset-Node.md b/Packages/com.unity.shadergraph/Documentation~/Texture-2D-Asset-Node.md index 8868ed3c05b..301a0af5959 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Texture-2D-Asset-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Texture-2D-Asset-Node.md @@ -24,3 +24,7 @@ The following example code represents one possible outcome of this node. TEXTURE2D(_Texture2DAsset); SAMPLER(sampler_Texture2DAsset); ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Texture-3D-Asset-Node.md b/Packages/com.unity.shadergraph/Documentation~/Texture-3D-Asset-Node.md index efa5a10b0b7..0c3387c58e7 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Texture-3D-Asset-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Texture-3D-Asset-Node.md @@ -24,3 +24,7 @@ The following example code represents one possible outcome of this node. TEXTURE3D(_Texture3DAsset); SAMPLER(sampler_Texture3DAsset); ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Texture-Size-Node.md b/Packages/com.unity.shadergraph/Documentation~/Texture-Size-Node.md index e7028fd57a9..f8212d1364e 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Texture-Size-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Texture-Size-Node.md @@ -42,3 +42,7 @@ The following example code represents one possible outcome of this node. float _TexelSize_Width = Texture_TexelSize.z; float _TexelSize_Height = Texture_TexelSize.w; ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/ThreadMapDetail-Node.md b/Packages/com.unity.shadergraph/Documentation~/ThreadMapDetail-Node.md index c765cd3af94..caebd4a75e0 100644 --- a/Packages/com.unity.shadergraph/Documentation~/ThreadMapDetail-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/ThreadMapDetail-Node.md @@ -62,3 +62,7 @@ To view these Shader Graphs: 2. Next to the **Shader** dropdown, select **Edit**. Your chosen Fabric's Shader Graph opens. You can view the ThreadMapDetail node, its Subgraph, and the other nodes that create HDRP's Fabric shaders. + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Tiling-And-Offset-Node.md b/Packages/com.unity.shadergraph/Documentation~/Tiling-And-Offset-Node.md index 3ba01582f96..74f53bcb962 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Tiling-And-Offset-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Tiling-And-Offset-Node.md @@ -23,3 +23,7 @@ void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out fl Out = UV * Tiling + Offset; } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Time-Node.md b/Packages/com.unity.shadergraph/Documentation~/Time-Node.md index a7f3155fbc4..4e2bc7a6890 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Time-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Time-Node.md @@ -25,3 +25,7 @@ float Time_CosineTime = _CosTime.w; float Time_DeltaTime = unity_DeltaTime.x; float Time_SmoothDelta = unity_DeltaTime.z; ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Transform-Node.md b/Packages/com.unity.shadergraph/Documentation~/Transform-Node.md index f83183eb4f2..95362088a7b 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Transform-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Transform-Node.md @@ -278,3 +278,7 @@ float3 _Transform_Out = result.xyz / result.w; ``` float3 _Transform_Out = GetAbsolutePositionWS(ComputeWorldSpacePosition(In.xy, In.z, UNITY_MATRIX_I_VP)); ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Transformation-Matrix-Node.md b/Packages/com.unity.shadergraph/Documentation~/Transformation-Matrix-Node.md index 6031cfed947..c7bf7c1c7a4 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Transformation-Matrix-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Transformation-Matrix-Node.md @@ -62,3 +62,7 @@ float4x4 _TransformationMatrix_Out = UNITY_MATRIX_VP; ``` float4x4 _TransformationMatrix_Out = UNITY_MATRIX_I_VP; ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Triangle-Wave-Node.md b/Packages/com.unity.shadergraph/Documentation~/Triangle-Wave-Node.md index ec800d6f26a..bc848958ffe 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Triangle-Wave-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Triangle-Wave-Node.md @@ -21,3 +21,7 @@ void Unity_TriangleWave_float4(float4 In, out float4 Out) Out = 2.0 * abs( 2 * (In - floor(0.5 + In)) ) - 1.0; } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Triplanar-Node.md b/Packages/com.unity.shadergraph/Documentation~/Triplanar-Node.md index f1e68e56b99..f5a77ad6143 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Triplanar-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Triplanar-Node.md @@ -73,3 +73,7 @@ float4 Out = float4(normalize(Node_X.zyx * Node_Blend.x + Node_Y.xzy * Node_Blen float3x3 Node_Transform = float3x3(IN.WorldSpaceTangent, IN.WorldSpaceBiTangent, IN.WorldSpaceNormal); Out.rgb = TransformWorldToTangent(Out.rgb, Node_Transform); ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Truncate-Node.md b/Packages/com.unity.shadergraph/Documentation~/Truncate-Node.md index aaeb3d0b01d..9dbdc443cc4 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Truncate-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Truncate-Node.md @@ -21,3 +21,7 @@ void Unity_Truncate_float4(float4 In, out float4 Out) Out = trunc(In); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Twirl-Node.md b/Packages/com.unity.shadergraph/Documentation~/Twirl-Node.md index e89f217b61a..0f0d4053155 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Twirl-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Twirl-Node.md @@ -28,3 +28,7 @@ void Unity_Twirl_float(float2 UV, float2 Center, float Strength, float2 Offset, Out = float2(x + Center.x + Offset.x, y + Center.y + Offset.y); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/UV-Node.md b/Packages/com.unity.shadergraph/Documentation~/UV-Node.md index 013dd2bbf9e..09432983940 100644 --- a/Packages/com.unity.shadergraph/Documentation~/UV-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/UV-Node.md @@ -15,3 +15,7 @@ UV coordinates usually have two channels, but the UV node outputs four channels | **Name** | **Type** | **Options** | **Description** | |:------------ |:-------------|:-----|:---| | **Channel** | Dropdown | **UV0**, **UV1**, **UV2**, **UV3**, **UV4**, **UV5**, **UV6**, **UV7** | Selects the coordinate set to output. | + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/UVCombine-Node.md b/Packages/com.unity.shadergraph/Documentation~/UVCombine-Node.md index 0382d1ecc90..a02514b063a 100644 --- a/Packages/com.unity.shadergraph/Documentation~/UVCombine-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/UVCombine-Node.md @@ -46,3 +46,7 @@ To view these Shader Graphs: 2. Next to the **Shader** dropdown, select **Edit**. Your chosen Fabric's Shader Graph opens. You can view the UVCombine node, its Subgraph, and the other nodes that create HDRP's Fabric shaders. + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Vector-2-Node.md b/Packages/com.unity.shadergraph/Documentation~/Vector-2-Node.md index 5beb6285692..d147e37f18a 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Vector-2-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Vector-2-Node.md @@ -19,3 +19,7 @@ The following example code represents one possible outcome of this node. ``` float2 _Vector2_Out = float2(X, Y); ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Vector-3-Node.md b/Packages/com.unity.shadergraph/Documentation~/Vector-3-Node.md index 763c3b168a3..bb62c675959 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Vector-3-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Vector-3-Node.md @@ -20,3 +20,7 @@ The following example code represents one possible outcome of this node. ``` float3 _Vector3_Out = float3(X, Y, Z); ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Vector-4-Node.md b/Packages/com.unity.shadergraph/Documentation~/Vector-4-Node.md index 5e173241d8e..dbc9e2905c4 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Vector-4-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Vector-4-Node.md @@ -21,3 +21,7 @@ The following example code represents one possible outcome of this node. ``` float4 _Vector4_Out = float4(X, Y, Z, W); ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Vertex-Color-Node.md b/Packages/com.unity.shadergraph/Documentation~/Vertex-Color-Node.md index d3aff333053..0db11068a80 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Vertex-Color-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Vertex-Color-Node.md @@ -9,3 +9,7 @@ Provides access to the mesh vertex or fragment's **Vertex Color** value. | Name | Direction | Type | Binding | Description | |:------------ |:-------------|:-----|:---|:---| | Out | Output | Vector 4 | None | **Vertex Color** for the Mesh Vertex/Fragment. | + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Vertex-ID-Node.md b/Packages/com.unity.shadergraph/Documentation~/Vertex-ID-Node.md index b684c849537..b007f48b7cf 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Vertex-ID-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Vertex-ID-Node.md @@ -9,3 +9,7 @@ Provides access to the mesh vertex or fragment's **Vertex ID** value. | Name | Direction | Type | Binding | Description | |:-------|:-----------|:------|:--------|:------------| | Out | Output | Float | None | **Vertex ID** for the Mesh Vertex/Fragment. | + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/View-Direction-Node.md b/Packages/com.unity.shadergraph/Documentation~/View-Direction-Node.md index 31cd3f67efc..8fb9dc7fb22 100644 --- a/Packages/com.unity.shadergraph/Documentation~/View-Direction-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/View-Direction-Node.md @@ -21,3 +21,7 @@ If you want to keep using the old behavior in URP outside of object space, repla | Name | Type | Options | Description | |:------------ |:-------------|:-----|:---| | Space | Dropdown | Object, View, World, Tangent | Selects coordinate space of **View Direction** to output. | + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/View-Vector-Node.md b/Packages/com.unity.shadergraph/Documentation~/View-Vector-Node.md index b717f8170b7..6bff7f89e00 100644 --- a/Packages/com.unity.shadergraph/Documentation~/View-Vector-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/View-Vector-Node.md @@ -18,3 +18,7 @@ Select a **Space** to modify the output value's coordinate space. | Name | Type | Options | Description | |:------------ |:-------------|:-----|:---| | Space | Dropdown | Object, View, World, Tangent | Selects coordinate space of **View Direction** to output. | + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/Voronoi-Node.md b/Packages/com.unity.shadergraph/Documentation~/Voronoi-Node.md index 1250c9bbe7d..36f91277b64 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Voronoi-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Voronoi-Node.md @@ -58,3 +58,7 @@ void Unity_Voronoi_float(float2 UV, float AngleOffset, float CellDensity, out fl } } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/White-Balance-Node.md b/Packages/com.unity.shadergraph/Documentation~/White-Balance-Node.md index 088842764e1..1a9691caaa3 100644 --- a/Packages/com.unity.shadergraph/Documentation~/White-Balance-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/White-Balance-Node.md @@ -61,3 +61,7 @@ void Unity_WhiteBalance_float(float3 In, float Temperature, float Tint, out floa Out = mul(LMS_2_LIN_MAT, lms); } ``` + +## Additional resources + +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/default-bitmap-text-node.md b/Packages/com.unity.shadergraph/Documentation~/default-bitmap-text-node.md index 53ceaec084b..be6a6ad663d 100644 --- a/Packages/com.unity.shadergraph/Documentation~/default-bitmap-text-node.md +++ b/Packages/com.unity.shadergraph/Documentation~/default-bitmap-text-node.md @@ -21,4 +21,5 @@ Outputs the text color set for bitmap text rendering and includes a tint input y - [Default Gradient node](xref:default-gradient-node) - [Default Texture node](xref:default-texture-node) - [Default SDF Text node](xref:default-sdf-text-node) -- [Render Type Branch node](xref:render-type-branch-node) \ No newline at end of file +- [Render Type Branch node](xref:render-type-branch-node) +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/default-gradient-node.md b/Packages/com.unity.shadergraph/Documentation~/default-gradient-node.md index 259bff845ee..011c32077c9 100644 --- a/Packages/com.unity.shadergraph/Documentation~/default-gradient-node.md +++ b/Packages/com.unity.shadergraph/Documentation~/default-gradient-node.md @@ -23,4 +23,5 @@ You can use the Default Gradient node combined with other nodes to create custom - [Default Texture node](xref:default-texture-node) - [Default SDF Text node](xref:default-sdf-text-node) - [Default Bitmap Text node](xref:default-bitmap-text-node) -- [Render Type Branch node](xref:render-type-branch-node) \ No newline at end of file +- [Render Type Branch node](xref:render-type-branch-node) +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/default-sdf-text-node.md b/Packages/com.unity.shadergraph/Documentation~/default-sdf-text-node.md index efc9550749e..4e30f957c8b 100644 --- a/Packages/com.unity.shadergraph/Documentation~/default-sdf-text-node.md +++ b/Packages/com.unity.shadergraph/Documentation~/default-sdf-text-node.md @@ -21,4 +21,5 @@ Outputs the text color for SDF text rendering and includes a tint input you can - [Default Gradient node](xref:default-gradient-node) - [Default Texture node](xref:default-texture-node) - [Default Bitmap Text node](xref:default-bitmap-text-node) -- [Render Type Branch node](xref:render-type-branch-node) \ No newline at end of file +- [Render Type Branch node](xref:render-type-branch-node) +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/default-solid-node.md b/Packages/com.unity.shadergraph/Documentation~/default-solid-node.md index 0144c9d4e8c..c110e6c3bcb 100644 --- a/Packages/com.unity.shadergraph/Documentation~/default-solid-node.md +++ b/Packages/com.unity.shadergraph/Documentation~/default-solid-node.md @@ -22,4 +22,5 @@ You can use this node combined with other nodes to create custom effects for the - [Default Texture node](xref:default-texture-node) - [Default SDF Text node](xref:default-sdf-text-node) - [Default Bitmap Text node](xref:default-bitmap-text-node) -- [Render Type Branch node](xref:render-type-branch-node) \ No newline at end of file +- [Render Type Branch node](xref:render-type-branch-node) +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/default-texture-node.md b/Packages/com.unity.shadergraph/Documentation~/default-texture-node.md index d4aea64caea..0d6b3f6141d 100644 --- a/Packages/com.unity.shadergraph/Documentation~/default-texture-node.md +++ b/Packages/com.unity.shadergraph/Documentation~/default-texture-node.md @@ -23,4 +23,5 @@ You can use this node to access the texture assigned to a UI element, such as a - [Default Solid node](xref:default-solid-node) - [Default Gradient node](xref:default-gradient-node) - [Default SDF Text node](xref:default-sdf-text-node) -- [Default Bitmap Text node](xref:default-bitmap-text-node) \ No newline at end of file +- [Default Bitmap Text node](xref:default-bitmap-text-node) +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/element-layout-uv-node.md b/Packages/com.unity.shadergraph/Documentation~/element-layout-uv-node.md index e13d1d67bad..17ddda0e2b0 100644 --- a/Packages/com.unity.shadergraph/Documentation~/element-layout-uv-node.md +++ b/Packages/com.unity.shadergraph/Documentation~/element-layout-uv-node.md @@ -17,4 +17,5 @@ Outputs the geometric coordinates (UV) relative to the UI element, such as a but ## Additional resources - [Element Texture UV node](xref:element-texture-uv-node) -- [Element Texture Size node](xref:element-texture-size-node) \ No newline at end of file +- [Element Texture Size node](xref:element-texture-size-node) +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/element-texture-size-node.md b/Packages/com.unity.shadergraph/Documentation~/element-texture-size-node.md index 58623497a19..0a68e724a13 100644 --- a/Packages/com.unity.shadergraph/Documentation~/element-texture-size-node.md +++ b/Packages/com.unity.shadergraph/Documentation~/element-texture-size-node.md @@ -28,4 +28,5 @@ Follow these guidelines to decide which node to use: - [Element Texture UV node](xref:element-texture-uv-node) - [Element Layout UV node](xref:element-layout-uv-node) -- [Texture Size node](Texture-Size-node.md) \ No newline at end of file +- [Texture Size node](Texture-Size-node.md) +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/element-texture-uv-node.md b/Packages/com.unity.shadergraph/Documentation~/element-texture-uv-node.md index 85776dea3b3..dac346c4913 100644 --- a/Packages/com.unity.shadergraph/Documentation~/element-texture-uv-node.md +++ b/Packages/com.unity.shadergraph/Documentation~/element-texture-uv-node.md @@ -23,4 +23,5 @@ The texture UV can also originate from a custom mesh when you call [`MeshGenerat ## Additional resources - [Element Layout UV node](xref:element-layout-uv-node) -- [Element Texture Size node](xref:element-texture-size-node) \ No newline at end of file +- [Element Texture Size node](xref:element-texture-size-node) +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/render-type-branch-node.md b/Packages/com.unity.shadergraph/Documentation~/render-type-branch-node.md index 1d0f66862cd..0dad98ad296 100644 --- a/Packages/com.unity.shadergraph/Documentation~/render-type-branch-node.md +++ b/Packages/com.unity.shadergraph/Documentation~/render-type-branch-node.md @@ -30,3 +30,4 @@ UI Shader Graph provides default nodes, such as the [Default Solid node](xref:de - [Default SDF Text node](xref:default-sdf-text-node) - [Default Bitmap Text node](xref:default-bitmap-text-node) - [Default Gradient node](xref:default-gradient-node) +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/render-type-node.md b/Packages/com.unity.shadergraph/Documentation~/render-type-node.md index 8cd7243b431..55dbfe25837 100644 --- a/Packages/com.unity.shadergraph/Documentation~/render-type-node.md +++ b/Packages/com.unity.shadergraph/Documentation~/render-type-node.md @@ -20,4 +20,5 @@ The Render Type node outputs the current render type the shader is processing. Y ## Additional resources -- [Render Type Branch node](xref:render-type-branch-node) \ No newline at end of file +- [Render Type Branch node](xref:render-type-branch-node) +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/sample-element-texture-node.md b/Packages/com.unity.shadergraph/Documentation~/sample-element-texture-node.md index 48517695d5f..511c93667ce 100644 --- a/Packages/com.unity.shadergraph/Documentation~/sample-element-texture-node.md +++ b/Packages/com.unity.shadergraph/Documentation~/sample-element-texture-node.md @@ -26,3 +26,4 @@ Sampling multiple times with this node is more efficient than using several sepa ## Additional resources - [Introduction to UI Shader Graph](xref:uie-introduction-to-ui-shader-graph) +[!include[nodes-example-samples](./snippets/nodes-example-samples.md)] diff --git a/Packages/com.unity.shadergraph/Documentation~/snippets/nodes-example-samples.md b/Packages/com.unity.shadergraph/Documentation~/snippets/nodes-example-samples.md new file mode 100644 index 00000000000..b00973e2fa3 --- /dev/null +++ b/Packages/com.unity.shadergraph/Documentation~/snippets/nodes-example-samples.md @@ -0,0 +1 @@ +- [Node Reference sample](Shader-Graph-Sample-Node-Reference.md) diff --git a/Packages/com.unity.shadergraph/Editor/Drawing/Views/MaterialGraphView.cs b/Packages/com.unity.shadergraph/Editor/Drawing/Views/MaterialGraphView.cs index c8160a7917e..9052400ba1e 100644 --- a/Packages/com.unity.shadergraph/Editor/Drawing/Views/MaterialGraphView.cs +++ b/Packages/com.unity.shadergraph/Editor/Drawing/Views/MaterialGraphView.cs @@ -657,15 +657,6 @@ private void InitializeViewSubMenu(ContextualMenuPopulateEvent evt) void ChangeCustomNodeColor(DropdownMenuAction menuAction) { - // Color Picker is internal :( - var t = typeof(EditorWindow).Assembly.GetTypes().FirstOrDefault(ty => ty.Name == "ColorPicker"); - var m = t?.GetMethod("Show", new[] { typeof(Action), typeof(Color), typeof(bool), typeof(bool) }); - if (m == null) - { - Debug.LogWarning("Could not invoke Color Picker for ShaderGraph."); - return; - } - var editorView = GetFirstAncestorOfType(); var defaultColor = Color.gray; if (selection.FirstOrDefault(sel => sel is MaterialNodeView) is MaterialNodeView selNode1) @@ -687,7 +678,7 @@ void ApplyColor(Color pickedColor) } graph.owner.RegisterCompleteObjectUndo("Change Node Color"); - m.Invoke(null, new object[] { (Action)ApplyColor, defaultColor, true, false }); + ColorPicker.Show(ApplyColor, defaultColor, true, false); } protected internal override bool canDeleteSelection diff --git a/Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/ShaderLibrary/Shim/InputsShim.hlsl b/Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/ShaderLibrary/Shim/InputsShim.hlsl index 3d494babfb6..2d992d5328f 100644 --- a/Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/ShaderLibrary/Shim/InputsShim.hlsl +++ b/Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/ShaderLibrary/Shim/InputsShim.hlsl @@ -38,8 +38,13 @@ float4x4 OptimizeProjectionMatrix(float4x4 M) // | 0 0 0 1 | | 0 0 x 0 | | 0 0 x x | // Notice that some values are always 0. // We can avoid loading and doing math with constants. + // But not true under Vulkan swapchain pre-transform: a 90/270 degree rotation swaps rows 0 and 1 + // (Runtime/GfxDevice/vulkan/VKPreTransform.cpp), moving the scale terms onto _21/_12; exactly + // the entries cleared below, which would leave UNITY_MATRIX_P with an all-zero 2x2 +#ifndef UNITY_PRETRANSFORM_TO_DISPLAY_ORIENTATION M._21_41 = 0; M._12_42 = 0; +#endif return M; } diff --git a/Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/ShaderLibrary/UnityInput.hlsl b/Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/ShaderLibrary/UnityInput.hlsl index 03c6d48c4ac..d8d1a009f8d 100644 --- a/Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/ShaderLibrary/UnityInput.hlsl +++ b/Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/ShaderLibrary/UnityInput.hlsl @@ -246,8 +246,13 @@ float4x4 OptimizeProjectionMatrix(float4x4 M) // | 0 0 0 1 | | 0 0 x 0 | | 0 0 x x | // Notice that some values are always 0. // We can avoid loading and doing math with constants. + // But not true under Vulkan swapchain pre-transform: a 90/270 degree rotation swaps rows 0 and 1 + // (Runtime/GfxDevice/vulkan/VKPreTransform.cpp), moving the scale terms onto _21/_12; exactly + // the entries cleared below, which would leave UNITY_MATRIX_P with an all-zero 2x2 +#ifndef UNITY_PRETRANSFORM_TO_DISPLAY_ORIENTATION M._21_41 = 0; M._12_42 = 0; +#endif return M; } diff --git a/Packages/com.unity.shadergraph/ShaderGraphLibrary/ShaderVariables.hlsl b/Packages/com.unity.shadergraph/ShaderGraphLibrary/ShaderVariables.hlsl index b4af7336dcb..22d720bc48d 100644 --- a/Packages/com.unity.shadergraph/ShaderGraphLibrary/ShaderVariables.hlsl +++ b/Packages/com.unity.shadergraph/ShaderGraphLibrary/ShaderVariables.hlsl @@ -277,8 +277,13 @@ float4x4 OptimizeProjectionMatrix(float4x4 M) // | 0 0 0 1 | | 0 0 x 0 | | 0 0 x x | // Notice that some values are always 0. // We can avoid loading and doing math with constants. + // But not true under Vulkan swapchain pre-transform: a 90/270 degree rotation swaps rows 0 and 1 + // (Runtime/GfxDevice/vulkan/VKPreTransform.cpp), moving the scale terms onto _21/_12; exactly + // the entries cleared below, which would leave UNITY_MATRIX_P with an all-zero 2x2 +#ifndef UNITY_PRETRANSFORM_TO_DISPLAY_ORIENTATION M._21_41 = 0; M._12_42 = 0; +#endif return M; } diff --git a/Packages/com.unity.shadergraph/package.json b/Packages/com.unity.shadergraph/package.json index 19873567f06..3a7eccb009d 100644 --- a/Packages/com.unity.shadergraph/package.json +++ b/Packages/com.unity.shadergraph/package.json @@ -6,7 +6,7 @@ "displayName": "Shader Graph", "dependencies": { "com.unity.render-pipelines.core": "17.3.0", - "com.unity.searcher": "4.9.3" + "com.unity.searcher": "4.9.5" }, "samples": [ { diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-CollisionShape.md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-CollisionShape.md index 09e5780f7ce..ef6cdebcbed 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-CollisionShape.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Block-CollisionShape.md @@ -27,7 +27,7 @@ To add a Collision Shape Block to your graph, [open the menu for adding a graph | **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.
| +| **Collision Attributes** | Enum | Specifies whether Unity writes data to the [HasCollisionEvent](Operator-GetAttributeHasCollisionEvent.md), [CollisionEventNormal](Operator-GetAttributeCollisionEventNormal.md), [CollisionEventPosition](Operator-GetAttributeCollisionEventPosition.md), and [CollisionEventCount](Operator-GetAttributeCollisionEventCount.md) attributes of particles. The options are:
  • No Write: Doesn't write or store collision attributes.
  • Write Punctual Contact only: Updates the collision attribute only when a specific, single-point collision occurs. This prevents Unity updating the collision attributes repeatedly when a particle slides along a collision shape. To increase or decrease how much a particle needs to bounce off a shape to cause a collision response, enable **Override Bounce Threshold** in the Inspector window.
  • Write Always: Updates the collision attribute every time a collision occurs.
| | **Rough Surface** | Boolean | Adds randomness to the direction in which particles bounce back, to simulate collision with a rough surface. To set the roughness of the surface, use the **Roughness** property. | diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Context-Common-LandingPage.md b/Packages/com.unity.visualeffectgraph/Documentation~/Context-Common-LandingPage.md new file mode 100644 index 00000000000..08bec00f883 --- /dev/null +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Context-Common-LandingPage.md @@ -0,0 +1,16 @@ +# Common Contexts reference + +Explore the core Contexts you use to build the spawn-to-render lifecycle of a particle system. + +| **Page** | **Description** | +| --- | --- | +| [Initialize Particle Context](Context-Initialize.md) | Process an event and initialize new particle elements. | +| [Spawn Context](Context-Spawn.md) | Control the spawn rate of particles, or create a custom spawning behavior. | +| [Update Particle Context](Context-Update.md) | Manage the behavior of particles or particle strips from an Initialize Context. | + +**Note**: The **Initialize Particle Strip** menu entry also opens the [Initialize Particle Context](Context-Initialize.md) page. Set its **Data Type** setting to **Particle Strip** to initialize particle strips instead of particles. + +## Additional resources + +- [Contexts](Contexts.md) +- [Blocks](Blocks.md) diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Context-Event-LandingPage.md b/Packages/com.unity.visualeffectgraph/Documentation~/Context-Event-LandingPage.md new file mode 100644 index 00000000000..2ce7773972a --- /dev/null +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Context-Event-LandingPage.md @@ -0,0 +1,14 @@ +# Event Contexts reference + +Explore the Contexts you use to trigger and manage the events that start a graph's workflows. + +| **Page** | **Description** | +| --- | --- | +| [Event Context](Context-Event.md) | Define names for events that trigger actions in a graph. | +| [GPU Event Context](Context-GPUEvent.md) | Spawn new particles from specific Blocks in Update or Initialize Contexts. | +| [Output Event Context](Context-OutputEvent.md) | Outputs a CPU Spawn Event back to the Visual Effect component. For information on consuming these events, refer to [Output Event Handlers](OutputEventHandlers.md). | + +## Additional resources + +- [Contexts](Contexts.md) +- [Sending Events](ComponentAPI.md#sending-events) diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputAdvanced-LandingPage.md b/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputAdvanced-LandingPage.md new file mode 100644 index 00000000000..50a62397a5d --- /dev/null +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputAdvanced-LandingPage.md @@ -0,0 +1,15 @@ +# Output Advanced Contexts reference + +Explore specialized Contexts for advanced particle rendering, such as decals and volumetric effects. + +| **Page** | **Description** | +| --- | --- | +| [Output Distortion Context](Context-OutputDistortion.md) | In HDRP, use distortion to simulate effects like heat haze from fire. Covers the **Output Particle Distortion Mesh** variant. | +| [Output Particle HDRP Lit Decal Context](Context-OutputParticleHDRPLitDecal.md) | Use a decal to render a particle system in the High Definition Render Pipeline (HDRP). | +| [Output Particle HDRP Volumetric Fog Context](Context-OutputParticleHDRPVolumetricFog.md) | Convert particles into a volumetric fog effect in HDRP, to create dynamic fog effects. | +| [Output Particle URP Lit Decal Context](Context-OutputParticleURPLitDecal.md) | Use a decal to render a particle system in the Universal Render Pipeline (URP). | + +## Additional resources + +- [Contexts](Contexts.md) +- [Shared output settings Context](SharedOutputSettings.md) diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputBasic-LandingPage.md b/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputBasic-LandingPage.md new file mode 100644 index 00000000000..407ff867ebc --- /dev/null +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputBasic-LandingPage.md @@ -0,0 +1,17 @@ +# Output Basic Contexts reference + +Explore the most commonly used Contexts for rendering particles. + +| **Page** | **Description** | +| --- | --- | +| [Output Particle Mesh Context](Context-OutputParticleMesh.md) | Render particles as meshes. | +| [Output Particle Primitive Context](Context-OutputPrimitive.md) | Render particles as lit quads, triangles, or octagons. | +| [Output Particle ShaderGraph Mesh Context](Context-OutputShaderGraphMesh.md) | Render particles as a custom Shader Graph mesh. | +| [Output ShaderGraph Quad Context](Context-OutputShaderGraphPlanarPrimitive.md) | Render particles as a custom Shader Graph quad. | + +**Note**: Each of these Contexts covers both its Unlit variant and, on render pipelines that support it (URP, HDRP), its [Lit](Context-OutputLitSettings.md) variant. + +## Additional resources + +- [Contexts](Contexts.md) +- [Shared output settings Context](SharedOutputSettings.md) diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputEvent.md b/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputEvent.md new file mode 100644 index 00000000000..03a75830bda --- /dev/null +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputEvent.md @@ -0,0 +1,21 @@ +# Output Event Context + +Menu Path: **Context** > **Output Event** + +The **Output Event** Context sends a CPU Spawn Event back to the Visual Effect component whenever one or more connected [Spawn](Context-Spawn.md) Contexts trigger it. Unlike other Output Contexts, it doesn't render particles. Use it to run script logic in response to a graph event, such as spawning a prefab, playing a sound, or applying a physics impulse. + +To consume Output Events in a script, use an [Output Event Handler](OutputEventHandlers.md). + +This Context doesn't support Blocks. To attach Attributes to the event it sends, add [Set SpawnEvent \](Block-SetSpawnEvent.md) Blocks to the Spawn Contexts connected to it. + +## Context settings + +| **Setting** | **Type** | **Description** | +| -------------- | -------- | ------------------------------------------------------------ | +| **Event Name** | String | The name of the event this Context sends to the Visual Effect component. The default value is **On Received Event**. | + +## Flow + +| **Port** | **Description** | +| --------- | -------------------------------------------------------------------- | +| **Input** | Connection from one or more [Spawn](Context-Spawn.md) Contexts. | diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputShaderGraphStrip.md b/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputShaderGraphStrip.md index 82240d1bde9..8c9fbf90fae 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputShaderGraphStrip.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputShaderGraphStrip.md @@ -1,6 +1,6 @@ -# Output Particle ShaderGraph Strip Context +# Output ParticleStrip ShaderGraph Context -Menu Path : **Context** > **Output Particle ShaderGraph Strip** +Menu Path : **Context** > **Output ParticleStrip ShaderGraph** [!include[](Snippets/Context-OutputShaderGraph-InlineIntro.md)] diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputStrip-LandingPage.md b/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputStrip-LandingPage.md new file mode 100644 index 00000000000..fcc31090cb3 --- /dev/null +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputStrip-LandingPage.md @@ -0,0 +1,14 @@ +# Output Strip Contexts reference + +Explore the Contexts you use to render particle strips. + +| **Page** | **Description** | +| --- | --- | +| [Output Distortion Context](Context-OutputDistortion.md) | In the High Definition Render Pipeline (HDRP), use distortion to simulate effects like heat haze from fire. Covers the **Output Strip Distortion Quad** variant. | +| [Output ParticleStrip Quad Context](Context-OutputStripQuad.md) | Render particles as a ribbon of quads, in a regular (unlit) or Lit (HDRP-only) variety. | +| [Output ParticleStrip ShaderGraph Context](Context-OutputShaderGraphStrip.md) | Render particles as a custom Shader Graph strip. | + +## Additional resources + +- [Contexts](Contexts.md) +- [Shared output settings Context](SharedOutputSettings.md) diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputStripQuad.md b/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputStripQuad.md new file mode 100644 index 00000000000..5b38f389bf8 --- /dev/null +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputStripQuad.md @@ -0,0 +1,28 @@ +# Output ParticleStrip Quad Context + +Menu Path: **Context** > **Output ParticleStrip [Unlit/HDRP Lit/URP Lit] Quad** + +*(Output ParticleStrip Quad, Output ParticleStrip HDRP Lit Quad, Output ParticleStrip URP Lit Quad)* + +The **Output ParticleStrip Quad** Context renders each particle strip as a continuous ribbon of quads. It comes in a regular (unlit) variety, and a [Lit](Context-OutputLitSettings.md) variety for HDRP and URP. This output is similar to [Output ParticleStrip ShaderGraph](Context-OutputShaderGraphStrip.md), but doesn't use a Shader Graph to define its surface. + +The following table lists the settings and properties specific to the Output ParticleStrip Quad Context. For information about the generic output settings this Context shares with all other Contexts, refer to [Global Output Settings and Properties](Context-OutputSharedSettings.md). + +## Context settings + +| **Setting** | **Type** | **Description** | +| ----------------- | -------- | ------------------------------------------------------------ | +| **Tiling Mode** | Enum | Specifies how the output generates texture coordinates within a strip. The options are:
• **Stretch**: Stretches the mapping along the whole strip.
• **Repeat Per Segment**: Restarts the mapping for every segment of the strip.
• **Custom**: Manually provides the reference texture coordinate. | +| **Swap UV** | Bool | Invert the two channels of texture coordinates. | + +## Context properties + +| **Input** | **Type** | **Description** | +| ------------- | -------- | ------------------------------------------------------------ | +| **Tex Coord** | float | Custom texture coordinate that acts as a reference for each segment of a strip.
This property only appears if you set **Tiling Mode** to **Custom**. | + +## Additional resources + +- [Global Output Settings and Properties](Context-OutputSharedSettings.md) +- [Lit Output Settings Context](Context-OutputLitSettings.md) +- [Output ParticleStrip ShaderGraph Context](Context-OutputShaderGraphStrip.md) diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Context.md b/Packages/com.unity.visualeffectgraph/Documentation~/Context.md index 0f67d098ad6..e5e5ae19b4e 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Context.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Context.md @@ -2,27 +2,18 @@ Explore the different [Contexts](Contexts.md) you can add to a graph. -| **Page** | **Description** | +| **Topic** | **Description** | | --- | --- | -| [Event Context](Context-Event.md) | Define names for events that trigger actions in a graph. | -| [GPU Event Context](Context-GPUEvent.md) | Spawn new particles from specific Blocks in Update or Initialize Contexts. | -| [Initialize Particle Context](Context-Initialize.md) | Process an event and initialize new particle elements. | -| [Output Decal Context](Context-OutputForwardDecal.md) | Render a particle system using a projected decal texture. | -| [Output Distortion Context](Context-OutputDistortion.md) | In the High Definition Render Pipeline (HDRP), use distortion to simulate effects like heat haze from fire. | -| [Output Line Context](Context-OutputLine.md) | Render particles as lines. | +| [Common Contexts](Context-Common-LandingPage.md) | Explore the core Contexts you use to build the spawn-to-render lifecycle of a particle system. | +| [Event Contexts](Context-Event-LandingPage.md) | Explore the Contexts you use to trigger and manage events. | +| [Output Advanced Contexts](Context-OutputAdvanced-LandingPage.md) | Explore specialized Contexts for advanced particle rendering, such as decals and volumetric effects. | +| [Output Basic Contexts](Context-OutputBasic-LandingPage.md) | Explore the most commonly used Contexts for rendering particles. | +| [Output Strip Contexts](Context-OutputStrip-LandingPage.md) | Explore the Contexts you use to render particle strips. | | [Output Mesh Context](Context-OutputMesh.md) | Render a static mesh. | -| [Output Particle HDRP Lit Decal Context](Context-OutputParticleHDRPLitDecal.md) | Use a decal to render a particle system in HDRP. | -| [Output Particle HDRP Volumetric Fog Context](Context-OutputParticleHDRPVolumetricFog.md) | Convert particles into a volumetric fog effect in HDRP, to create dynamic fog effects. | -| [Output Particle Mesh Context](Context-OutputParticleMesh.md) | Render particles as meshes. | -| [Output Particle URP Lit Decal Context](Context-OutputParticleURPLitDecal.md) | Use a decal to render a particle system in the Universal Render Pipeline (URP). | -| [Output Point Context](Context-OutputPoint.md) | Render particles as points. | -| [Output Primitive Context](Context-OutputPrimitive.md) | Render particles as lit quads, triangles, or octagons. | -| [Output ShaderGraph Mesh Context](Context-OutputShaderGraphMesh.md) | Render particles as a custom Shader Graph mesh. | -| [Output ShaderGraph Quad Context](Context-OutputShaderGraphPlanarPrimitive.md) | Render particles as a custom Shader Graph quad. | -| [Output ShaderGraph Strip Context](Context-OutputShaderGraphStrip.md) | Render particles as a custom Shader Graph strip. | +| [Output Particle Forward Decal Context](Context-OutputForwardDecal.md) | Render a particle system using a projected decal texture. | +| [Output Particle Line Context](Context-OutputLine.md) | Render particles as lines. | +| [Output Particle Point Context](Context-OutputPoint.md) | Render particles as points. | | [Shared output settings Context](SharedOutputSettings.md) | Explore the settings that appear in all Contexts. | -| [Spawn Context](Context-Spawn.md) | Control the spawn rate of particles, or create a custom spawning behavior. | -| [Update Particle Context](Context-Update.md) | Manage the behavior of particles or particle strips from an Initialize Context. | ## Additional resources diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeCollisionEventCount.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeCollisionEventCount.md new file mode 100644 index 00000000000..64fe76a2139 --- /dev/null +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeCollisionEventCount.md @@ -0,0 +1,28 @@ +# Get Attribute: collisionEventCount + +Menu Path : **Operator** > **Attribute** > **Get Collision Event Count** + +The **Get Collision Event Count** operator outputs the number of times a particle has hit a surface since it was spawned. + +To write to the **Get Collision Event Count** attribute, add a [Collision Shape Block](Block-CollisionShape.md) to your graph and set its **Collision Attributes** property to **Write Punctual Content Only** or **Write Always**. + +[!include[](Snippets/Operator-GetAttributeOperatorSettings.md)] + +## Operator settings + +| **Setting** | **Type** | **Description** | +|---|---|---| +| **Location** | [Enum](https://docs.unity3d.com/Packages/com.unity.visualeffectgraph@17.6/manual/Snippets/Attributes.md#attribute-locations) | The location of the attribute. The options are:
• **Current**: Gets the value of the attribute from the current system data container. For example, particle data from a Particle System.
• **Source**: Gets the value of the attribute from the previous system data container read from. You can only read from this **Location** in the first Context of a system after a system data change. For example, in an Initialize Particle Context. | + + +## Operator properties + +| **Output** | **Type** | **Description** | +| -------------------- | -------- | ------------------------------------------------------------ | +| Collision Event Count | uint | The value of the collisionEventCount attribute, which is the number of times the particle has hit a surface, based on **Location**. If the particle hasn't collided with any surfaces, the operator returns the default attribute value. | + + + +## Details + +The value the operator returns uses the system’s space, either local space or world space. diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeCollisionEventNormal.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeCollisionEventNormal.md new file mode 100644 index 00000000000..bf41db88ebc --- /dev/null +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeCollisionEventNormal.md @@ -0,0 +1,25 @@ +# Get Attribute: collisionEventNormal + +Menu Path : **Operator** > **Attribute** > **Get Collision Event Normal** + +The **Get Collision Event Normal** operator returns the surface normal at the point of impact during the current frame. + +To write to the collisionEventNormal attribute, add a [Collision Shape Block](Block-CollisionShape.md) to your graph and set its **Collision Attributes** property to **Write Punctual Contact Only** or **Write Always**. + +[!include[](Snippets/Operator-GetAttributeOperatorSettings.md)] + +## Operator settings + +| **Setting** | **Type** | **Description** | +|---|---|---| +| **Location** | [Enum](https://docs.unity3d.com/Packages/com.unity.visualeffectgraph@17.6/manual/Snippets/Attributes.md#attribute-locations) | The location of the attribute. The options are:
• **Current**: Gets the value of the attribute from the current system data container. For example, particle data from a Particle System.
• **Source**: Gets the value of the attribute from the previous system data container read from. You can only read from this **Location** in the first Context of a system after a system data change. For example, in an Initialize Particle Context. | + +## Operator properties + +| **Output** | **Type** | **Description** | +| ------------------------ | -------- | ------------------------------------------------------------ | +| Collision Event Normal | Vector3 | The value of the collisionEventNormal attribute, which represents the surface normal at the point of impact, based on **Location**. If the particle hasn't collided with any surfaces, this operator returns (0,0,0). | + +## Details + +The value the operator returns uses the system's space, either local space or world space. diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeCollisionEventPosition.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeCollisionEventPosition.md new file mode 100644 index 00000000000..1c48bf0fe67 --- /dev/null +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeCollisionEventPosition.md @@ -0,0 +1,27 @@ +# Get Attribute: collisionEventPosition + +Menu Path : **Operator** > **Attribute** > **Get Collision Event Position** + +The **Get Collision Event Position** operator returns the the coordinates of the point where the particle hit a surface during the current frame. + +To write to the collisionEventPosition attribute, add a [Collision Shape Block](Block-CollisionShape.md) to your graph and set its **Collision Attributes** property to **Write Punctual Contact Only** or **Write Always**. + +[!include[](Snippets/Operator-GetAttributeOperatorSettings.md)] + +## Operator settings + +| **Setting** | **Type** | **Description** | +|---|---|---| +| **Location** | [Enum](https://docs.unity3d.com/Packages/com.unity.visualeffectgraph@17.6/manual/Snippets/Attributes.md#attribute-locations) | The location of the attribute. The options are:
• **Current**: Gets the value of the attribute from the current system data container. For example, particle data from a Particle System.
• **Source**: Gets the value of the attribute from the previous system data container read from. You can only read from this **Location** in the first Context of a system after a system data change. For example, in an Initialize Particle Context. | + +## Operator properties + +| **Output** | **Type** | **Description** | +| ------------------------- | -------- | ------------------------------------------------------------ | +| Collision Event Position | Vector3 | The value of the collisionEventPosition attribute, which represents the coordinates of the point of impact, based on **Location**. If the particle hasn't collided with any surfaces, this operator returns (0,0,0). | + +## Details + +The value the operator returns uses the system's space, either local space or world space. + + diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeHasCollisionEvent.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeHasCollisionEvent.md new file mode 100644 index 00000000000..11f6c5fa371 --- /dev/null +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeHasCollisionEvent.md @@ -0,0 +1,25 @@ +# Get Attribute: hasCollisionEvent + +Menu Path : **Operator** > **Attribute** > **Get Has Collision Event** + +The **Get Has Collision Event** operator returns `true` if a particle has hit a surface. This attribute is only available in the [Update](Context-Update.md) context. + +To write to the hasCollisionEvent attribute, add a [Collision Shape Block](Block-CollisionShape.md) to your graph and set its **Collision Attributes** property to **Write Punctual Contact Only** or **Write Always**. + +[!include[](Snippets/Operator-GetAttributeOperatorSettings.md)] + +## Operator settings + +| **Setting** | **Type** | **Description** | +|---|---|---| +| **Location** | [Enum](https://docs.unity3d.com/Packages/com.unity.visualeffectgraph@17.6/manual/Snippets/Attributes.md#attribute-locations) | The location of the attribute. The options are:
• **Current**: Gets the value of the attribute from the current system data container. For example, particle data from a Particle System.
• **Source**: Gets the value of the attribute from the previous system data container read from. You can only read from this **Location** in the first Context of a system after a system data change. For example, in an Initialize Particle Context. | + +## Operator properties + +| **Output** | **Type** | **Description** | +| -------------------- | -------- | ------------------------------------------------------------ | +| Has Collision Event | bool | The value of the hasCollisionEvent attribute, based on **Location**. Returns `true` if the particle has hit a surface, and `false` otherwise. If this attribute has not been written to, this Operator returns the default attribute value. | + +## Details + +You can only use the **Get Has Collision Event** operator in the same Context as the Collision Shape Block that writes to it. diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeMeshIndex.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeMeshIndex.md new file mode 100644 index 00000000000..022a9572396 --- /dev/null +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeMeshIndex.md @@ -0,0 +1,23 @@ +# Get Attribute: meshIndex + +Menu Path : **Operator** > **Attribute** > **Get Mesh Index** + +The **Get Mesh Index** operator returns the index of the mesh a particle will use to render. This is only relevant when the **Mesh Count** setting on an Output Particle Mesh context is set higher than 1. + +[!include[](Snippets/Operator-GetAttributeOperatorSettings.md)] + +## Operator settings + +| **Setting** | **Type** | **Description** | +|---|---|---| +| **Location** | [Enum](https://docs.unity3d.com/Packages/com.unity.visualeffectgraph@17.6/manual/Snippets/Attributes.md#attribute-locations) | The location of the attribute. The options are:
• **Current**: Gets the value of the attribute from the current system data container. For example, particle data from a Particle System.
• **Source**: Gets the value of the attribute from the previous system data container read from. You can only read from this **Location** in the first Context of a system after a system data change. For example, in an Initialize Particle Context. | + +## Operator properties + +| **Output** | **Type** | **Description** | +| ---------- | -------- | ------------------------------------------------------------ | +| Mesh Index | uint | The value of the meshIndex attribute, which represents the index of the mesh to use, based on **Location**. If this attribute has not been written to, this operator returns 0.| + +## Details + +The value the operator returns uses the system's space, either local space or world space. diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeOldVelocity.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeOldVelocity.md new file mode 100644 index 00000000000..32e126f95b9 --- /dev/null +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeOldVelocity.md @@ -0,0 +1,23 @@ +# Get Attribute: oldVelocity + +Menu Path : **Operator** > **Attribute** > **Get Old Velocity** + +The **Get Old Velocity** operator returns the velocity of a particle at the beginning of the context, before VFX Graph applies any forces. + +[!include[](Snippets/Operator-GetAttributeOperatorSettings.md)] + +## Operator settings + +| **Setting** | **Type** | **Description** | +|---|---|---| +| **Location** | [Enum](https://docs.unity3d.com/Packages/com.unity.visualeffectgraph@17.6/manual/Snippets/Attributes.md#attribute-locations) | The location of the attribute. The options are:
• **Current**: Gets the value of the attribute from the current system data container. For example, particle data from a Particle System.
• **Source**: Gets the value of the attribute from the previous system data container read from. You can only read from this **Location** in the first Context of a system after a system data change. For example, in an Initialize Particle Context. | + +## Operator properties + +| **Output** | **Type** | **Description** | +| ----------- | -------- | ------------------------------------------------------------ | +| Old Velocity | Vector3 | The value of the oldVelocity attribute, which represents the velocity of the particle at the beginning of the context, before any force integration, based on **Location**. If this attribute has not been written to, this operator returns 0. | + +## Details + +The value the operator returns uses the system's space, either local space or world space. diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeParticleCountInStrip.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeParticleCountInStrip.md index 8eb59fc5230..1e8fe2165d2 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeParticleCountInStrip.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeParticleCountInStrip.md @@ -1,19 +1,25 @@ # Get Attribute: particleCountInStrip Operator -Menu Path : **Operator > Attribute > Get Attribute: particleCountInStrip** +Menu Path : **Operator** > **Attribute** > **Get Particle Count In Strip** -The **Get Attribute: particleCountInStrip** returns the particleCountInStrip, which is a [standard attribute](Reference-Attributes.md), of a simulated element depending on [Location](Attributes.md#attribute-locations). This Operator outputs the current number of particles in the particle strip the current particle belongs to. +The **Get Particle Count In Strip** operator returns the current number of particles in the particle strip the particle belongs to. + +This operator can return wrong values if you use it in the Initialize context, if the strip index property is not constant. [!include[](Snippets/Operator-GetAttributeOperatorSettings.md)] +## Operator settings + +| **Setting** | **Type** | **Description** | +|---|---|---| +| **Location** | [Enum](https://docs.unity3d.com/Packages/com.unity.visualeffectgraph@17.6/manual/Snippets/Attributes.md#attribute-locations) | The location of the attribute. The options are:
• **Current**: Gets the value of the attribute from the current system data container. For example, particle data from a Particle System.
• **Source**: Gets the value of the attribute from the previous system data container read from. You can only read from this **Location** in the first Context of a system after a system data change. For example, in an Initialize Particle Context. | + ## Operator properties | **Output** | **Type** | **Description** | | -------------------- | -------- | ------------------------------------------------------------ | -| particleCountInStrip | int | The value of the particleCountInStrip attribute, based on **Location**.
If this attribute has not been written to, this Operator returns the default attribute value. | +| Particle Count In Strip | int | The value of the particleCountInStrip attribute, which is the current number of particles in the particle strip the particle belongs to, based on **Location**.
If this attribute has not been written to, this operator returns the default attribute value. | ## Details -The value the attribute returns uses the system’s space (either local-space or world-space). - -This operator can return wrong values when used in the Initialize context, if the strip index property is not constant. \ No newline at end of file +The value the operator returns uses the system’s space, either local space or world space. diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeSpawnCount.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeSpawnCount.md new file mode 100644 index 00000000000..ecbf98b0d14 --- /dev/null +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeSpawnCount.md @@ -0,0 +1,22 @@ +# Get Attribute: spawnCount + +Menu Path : **Operator** > **Attribute** > **Get Spawn Count** + +The **Get Spawn Count** operator returns the number of particles that have been spawned in the current frame. +[!include[](Snippets/Operator-GetAttributeOperatorSettings.md)] + +## Operator settings + +| **Setting** | **Type** | **Description** | +|---|---|---| +| **Location** | [Enum](https://docs.unity3d.com/Packages/com.unity.visualeffectgraph@17.6/manual/Snippets/Attributes.md#attribute-locations) | The location of the attribute. The options are:
• **Current**: Gets the value of the attribute from the current system data container. For example, in a Spawn Context.
• **Source**: Gets the value of the attribute from the previous system data container read from. You can only read from this **Location** in the first Context of a system after a system data change. For example, in an Initialize Particle Context. | + +## Operator properties + +| **Output** | **Type** | **Description** | +| ---------- | -------- | ------------------------------------------------------------ | +| Spawn Count | float | The value of the spawnCount attribute, which represents the number of particles spawned in the current frame, based on **Location**. If this attribute has not been written to, this operator returns 0. | + +## Details + +The value the operator returns uses the system's space, either local space or world space. diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeSpawnIndexInStrip.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeSpawnIndexInStrip.md new file mode 100644 index 00000000000..745b23d9696 --- /dev/null +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetAttributeSpawnIndexInStrip.md @@ -0,0 +1,24 @@ +# Get Attribute: spawnIndexInStrip + +Menu Path : **Operator** > **Attribute** > **Get Spawn Index In Strip** + +The **Get Spawn Index In Strip** operator returns the spawn index of the particle in the particle strip the particle belongs to. +Unlike the [particleIndexInStrip](Operator-GetAttributeParticleIndexInStrip.md) attribute, which is unique for each particle within a strip, this value can be the same for two or more particles in the same strip. + +[!include[](Snippets/Operator-GetAttributeOperatorSettings.md)] + +## Operator settings + +| **Setting** | **Type** | **Description** | +|---|---|---| +| **Location** | [Enum](https://docs.unity3d.com/Packages/com.unity.visualeffectgraph@17.6/manual/Snippets/Attributes.md#attribute-locations) | The location of the attribute. The options are:
• **Current**: Gets the value of the attribute from the current system data container. For example, particle data from a Particle System.
• **Source**: Gets the value of the attribute from the previous system data container read from. You can only read from this **Location** in the first Context of a system after a system data change. For example, in an Initialize Particle Context. | + +## Operator properties + +| **Output** | **Type** | **Description** | +| ------------------ | -------- | ------------------------------------------------------------ | +| Spawn Index In Strip | uint | The value of the spawnIndexInStrip attribute, which is the spawn index of the particle in the particle strip the particle belongs to, based on **Location**. If this attribute has not been written to, this operator returns 0. | + +## Details + +The value the operator returns uses the system's space, either local space or world space. diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetCustomAttribute.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetCustomAttribute.md index 90e02aebb1e..e62944c6f00 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetCustomAttribute.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-GetCustomAttribute.md @@ -1,8 +1,11 @@ # Get Custom Attribute Operator -Menu Path : **Operator > Attribute > Get Custom Attribute** +> [!NOTE] +> The Get Custom Attribute operator is obsolete. Use a [Get Attribute](OperatorAttribute.md) operator instead. -The **Get Custom Attribute** Operator returns the value of a named custom Attribute of a given type depending on its location. +Menu Path : **Operator** > **Attribute** > **Get Custom Attribute** + +The **Get Custom Attribute** operator returns the value of a custom attribute of a given type depending on its location. ## Operator settings diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-RatioOverStrip.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-RatioOverStrip.md index 2cd21833de8..6f91f600898 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-RatioOverStrip.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-RatioOverStrip.md @@ -1,8 +1,10 @@ -# Ratio Over Strip +# Get Ratio Over Strip [0..1] -Menu Path : **Operator > Attribute > Ratio Over Strip** +Menu Path : **Operator** > **Attribute** > **Get Ratio Over Strip [0..1]** -The **Ratio Over Strip** Operator returns the ratio of the particle index relative to the total count of particles in that strip, as a value between 0.0 and 1.0. +The **Get Ratio Over Strip** attribute returns the ratio of the particle index relative to the total count of particles in that strip, as a value between 0.0 and 1.0. + +Because this Operator relies on the **Get Particle Count In Strip** operator, it shares the same limitation: it can return wrong values if you use it in the Initialize context, if the strip index property is not constant. For more information, refer to [Get Attribute: particleCountInStrip](Operator-GetAttributeParticleCountInStrip.md#details). ``` t = particleIndexInStrip / (particleCountInStrip - 1) diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/OperatorAttribute.md b/Packages/com.unity.visualeffectgraph/Documentation~/OperatorAttribute.md index 6329868a883..3c99e061c3a 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/OperatorAttribute.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/OperatorAttribute.md @@ -13,11 +13,17 @@ Get the data from [particle attributes](Attributes.md). | [Get Attribute: axisX Operator](Operator-GetAttributeAxisX.md) | Get the x-axis of a particle. | | [Get Attribute: axisY Operator](Operator-GetAttributeAxisY.md) | Get the y-axis of a particle. | | [Get Attribute: axisZ Operator](Operator-GetAttributeAxisZ.md) | Get the z-axis of a particle. | +| [Get Attribute: collisionEventCount Operator](Operator-GetAttributeCollisionEventCount.md) | Get the number of collisions that occur during a particle's lifetime. | +| [Get Attribute: collisionEventNormal Operator](Operator-GetAttributeCollisionEventNormal.md) | Get the normal of the collider's surface at the hit position. | +| [Get Attribute: collisionEventPosition Operator](Operator-GetAttributeCollisionEventPosition.md) | Get the position of the collision between particles and colliders. | | [Get Attribute: color Operator](Operator-GetAttributeColor.md) | Get the color of a particle. | | [Get Attribute: direction Operator](Operator-GetAttributeDirection.md) | Get the direction of a particle. | +| [Get Attribute: hasCollisionEvent Operator](Operator-GetAttributeHasCollisionEvent.md) | Return True or False if a collision happened in this frame. | | [Get Attribute: lifetime Operator](Operator-GetAttributeLifetime.md) | Get the amount of time a particle should live for. | | [Get Attribute: mass Operator](Operator-GetAttributeMass.md) | Get the mass of a particle. | +| [Get Attribute: meshIndex Operator](Operator-GetAttributeMeshIndex.md) | Get the mesh index of a particle. | | [Get Attribute: oldPosition Operator](Operator-GetAttributeOldPosition.md) | Get the position of a particle before velocity is added. | +| [Get Attribute: oldVelocity Operator](Operator-GetAttributeOldVelocity.md) | Get the velocity of a particle before force integration. | | [Get Attribute: particleCountInStrip Operator](Operator-GetAttributeParticleCountInStrip.md) | Get the number of particles in a particle strip. | | [Get Attribute: particleId Operator](Operator-GetAttributeParticleID.md) | Get a unique ID that identifies a particle. | | [Get Attribute: particleIndexInStrip Operator](Operator-GetAttributeParticleIndexInStrip.md) | Get the index of a particle in its particle strip. | @@ -26,13 +32,16 @@ Get the data from [particle attributes](Attributes.md). | [Get Attribute: scale Operator](Operator-GetAttributeScale.md) | Get the scale of the particle. | | [Get Attribute: seed Operator](Operator-GetAttributeSeed.md) | Get the random number value of a particle. | | [Get Attribute: size Operator](Operator-GetAttributeSize.md) | Get the size of a particle. | +| [Get Attribute: spawnCount Operator](Operator-GetAttributeSpawnCount.md) | Get the number of particles spawned in the current frame. | | [Get Attribute: spawnIndex Operator](Operator-GetAttributeSpawnIndex.md) | Get the index of a particle when it spawned. | +| [Get Attribute: spawnIndexInStrip Operator](Operator-GetAttributeSpawnIndexInStrip.md) | Get the spawn index of a particle within its strip. | | [Get Attribute: spawnTime Operator](Operator-GetAttributeSpawnTime.md) | Get the time that the particle spawned. | | [Get Attribute: stripIndex Operator](Operator-GetAttributeStripIndex.md) | Get the index of the particle strip a particle belongs to. | | [Get Attribute: targetPosition Operator](Operator-GetAttributeTargetPosition.md) | Get the target coordinates of a particle. | | [Get Attribute: texIndex Operator](Operator-GetAttributeTexIndex.md) | Get the frame number from a flipbook texture a particle uses. | | [Get Attribute: velocity Operator](Operator-GetAttributeVelocity.md) | Get the current velocity of a particle. | | [Get Custom Attribute Operator](Operator-GetCustomAttribute.md) | Get the value of a custom attribute. | +| [Get Ratio over Strip Operator](Operator-RatioOverStrip.md) | Get a normalized 0-1 value across the strip length. | ## Additional resources diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Reference-Attributes.md b/Packages/com.unity.visualeffectgraph/Documentation~/Reference-Attributes.md index a73acca25d3..7f11b28949c 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Reference-Attributes.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Reference-Attributes.md @@ -28,6 +28,7 @@ Some attributes are a bit more advanced and will be used by default in most simu | `angle` | Vector3 | **Variadic:** Euler rotation of a simulated element, expressed as a Vector of Degrees Values. | (0,0,0) | | `angularVelocity` | Vector3 | **Variadic:** Euler rotation speed of a simulated element, expressed as a Vector of Degrees per second values. | (0,0,0) | | `oldPosition` | Vector3 | **Deprecated:** This attribute is a storage Helper if you want to back-up current position of a simulated element, before integrating its velocity. | (0,0,0) | +| `oldVelocity` | Vector3 | The velocity of a particle at the beginning of the context, before any force integration. | (0,0,0) | | `targetPosition` | Vector3 | This attribute has various purposes: it can be a storage Helper if you want to store a position to reach, then compute a vector in order to reach this Target Position. In Line Renderers, this attribute can be also used to set the end of each line particle. | (0,0,0) | ### Rendering Attributes @@ -42,6 +43,7 @@ Rendering Attributes are not used in simulation but are useful when you want to | `scale` | Vector3 | The Non-uniform Scale multiplier of a rendered element, applied to its **unit representation** | (1,1,1) | | `pivot` | Vector3 | The Origin position of a rendered element, in its **unit representation** | (0,0,0) | | `texIndex` | float | The animation frame used for sampling Flipbook UVs for a rendered element. | 0.0 | +| `meshIndex` | uint | The index of the mesh to use, when the Mesh Count setting on an Output Particle Mesh context is set higher than 1. | 0 | | `axisX` | Vector3 | The computed Right axis of the rendered Element. | (1,0,0) | | `axisY` | Vector3 | The computed Up axis of the rendered Element. | (0,1,0) | | `axisZ` | Vector3 | The computed Forward axis of the rendered Element. | (0,0,1) | @@ -57,6 +59,7 @@ System Attributes provide information about system values. These attributes are | `spawnCount` | float | A `SpawnEvent` attribute that describes how many particles were spawned this frame. You can use `spawnCount` as a [Source Attribute](Attributes.md) in a Spawn context. `spawnCount` is a floating point number so that Unity can accumulate a relative `spawnCount` at the spawn context stage in the [Constant Rate](Block-ConstantRate.md) block.| 0.0 | | `spawnTime` | float | A SpawnEvent attribute available as Source Attribute in Spawn Contexts, that contains a Spawn Context internal time (when exported using a [Set Spawn Time](Block-SetSpawnTime.md) Spawn Block) | 0.0 | | `particleIndexInStrip` | uint | The index in the Particle Strip Ring Buffer where is located this element. | 0 | +| spawnIndexInStrip | uint | The spawn index of a particle within its strip. Unlike particleIndexInStrip, which is unique for each particle, the spawnIndexInStrip value can be the same for two or more particles in different strip. | 0 | ### Collision Attributes diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/TableOfContents.md b/Packages/com.unity.visualeffectgraph/Documentation~/TableOfContents.md index e87f77a2617..051a612455a 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/TableOfContents.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/TableOfContents.md @@ -65,27 +65,34 @@ * [Six-way smoke lit reference](six-way-lighting-reference.md) * [Node Library](node-library.md) * [Contexts](Context.md) - * [Event Context](Context-Event.md) - * [GPU Event Context](Context-GPUEvent.md) - * [Initialize Particle Context](Context-Initialize.md) + * [Common Contexts](Context-Common-LandingPage.md) + * [Initialize Particle Context](Context-Initialize.md) + * [Spawn Context](Context-Spawn.md) + * [Update Particle Context](Context-Update.md) + * [Event Contexts](Context-Event-LandingPage.md) + * [Event Context](Context-Event.md) + * [GPU Event Context](Context-GPUEvent.md) + * [Output Event Context](Context-OutputEvent.md) + * [Output Basic Contexts](Context-OutputBasic-LandingPage.md) + * [Output Particle Mesh Context](Context-OutputParticleMesh.md) + * [Output Particle Primitive Context](Context-OutputPrimitive.md) + * [Output Particle ShaderGraph Mesh Context](Context-OutputShaderGraphMesh.md) + * [Output ShaderGraph Quad Context](Context-OutputShaderGraphPlanarPrimitive.md) + * [Output Advanced Contexts](Context-OutputAdvanced-LandingPage.md) + * [Output Distortion Context](Context-OutputDistortion.md) + * [Output Particle HDRP Lit Decal Context](Context-OutputParticleHDRPLitDecal.md) + * [Output Particle HDRP Volumetric Fog Context](Context-OutputParticleHDRPVolumetricFog.md) + * [Output Particle URP Lit Decal Context](Context-OutputParticleURPLitDecal.md) + * [Output Strip Contexts](Context-OutputStrip-LandingPage.md) + * [Output ParticleStrip Quad Context](Context-OutputStripQuad.md) + * [Output ParticleStrip ShaderGraph Context](Context-OutputShaderGraphStrip.md) * [Output Mesh Context](Context-OutputMesh.md) - * [Output Distortion Context](Context-OutputDistortion.md) - * [Output Decal Context](Context-OutputForwardDecal.md) - * [Output Line Context](Context-OutputLine.md) - * [Output Particle Mesh Context](Context-OutputParticleMesh.md) - * [Output Particle HDRP Lit Decal Context](Context-OutputParticleHDRPLitDecal.md) - * [Output Particle HDRP Volumetric Fog Context](Context-OutputParticleHDRPVolumetricFog.md) - * [Output Particle URP Lit Decal Context](Context-OutputParticleURPLitDecal.md) - * [Output Point Context](Context-OutputPoint.md) - * [Output Particle Primitive Context](Context-OutputPrimitive.md) - * [Output ShaderGraph Quad Context](Context-OutputShaderGraphPlanarPrimitive.md) - * [Output Particle ShaderGraph Mesh Context](Context-OutputShaderGraphMesh.md) - * [Output ParticleStrip ShaderGraph Quad Context](Context-OutputShaderGraphStrip.md) + * [Output Particle Forward Decal Context](Context-OutputForwardDecal.md) + * [Output Particle Line Context](Context-OutputLine.md) + * [Output Particle Point Context](Context-OutputPoint.md) * [Shared Output Settings Context](SharedOutputSettings.md) * [Global Settings Context](Context-OutputSharedSettings.md) * [Lit Output Settings Context](Context-OutputLitSettings.md) - * [Spawn Context](Context-Spawn.md) - * [Update Particle Context](Context-Update.md) * [Blocks](Block.md) * [Attribute Blocks](Attribute.md) * [Curve Block](Block-SetAttributeFromCurve.md) @@ -152,11 +159,17 @@ * [Get Attribute: axisX Operator](Operator-GetAttributeAxisX.md) * [Get Attribute: axisY Operator](Operator-GetAttributeAxisY.md) * [Get Attribute: axisZ Operator](Operator-GetAttributeAxisZ.md) + * [Get Attribute: collisionEventCount Operator](Operator-GetAttributeCollisionEventCount.md) + * [Get Attribute: collisionEventNormal Operator](Operator-GetAttributeCollisionEventNormal.md) + * [Get Attribute: collisionEventPosition Operator](Operator-GetAttributeCollisionEventPosition.md) * [Get Attribute: color Operator](Operator-GetAttributeColor.md) * [Get Attribute: direction Operator](Operator-GetAttributeDirection.md) + * [Get Attribute: hasCollisionEvent Operator](Operator-GetAttributeHasCollisionEvent.md) * [Get Attribute: lifetime Operator](Operator-GetAttributeLifetime.md) * [Get Attribute: mass Operator](Operator-GetAttributeMass.md) + * [Get Attribute: meshIndex Operator](Operator-GetAttributeMeshIndex.md) * [Get Attribute: oldPosition Operator](Operator-GetAttributeOldPosition.md) + * [Get Attribute: oldVelocity Operator](Operator-GetAttributeOldVelocity.md) * [Get Attribute: particleCountInStrip Operator](Operator-GetAttributeParticleCountInStrip.md) * [Get Attribute: particleId Operator](Operator-GetAttributeParticleID.md) * [Get Attribute: particleIndexInStrip Operator](Operator-GetAttributeParticleIndexInStrip.md) @@ -165,13 +178,16 @@ * [Get Attribute: scale Operator](Operator-GetAttributeScale.md) * [Get Attribute: seed Operator](Operator-GetAttributeSeed.md) * [Get Attribute: size Operator](Operator-GetAttributeSize.md) + * [Get Attribute: spawnCount Operator](Operator-GetAttributeSpawnCount.md) * [Get Attribute: spawnIndex Operator](Operator-GetAttributeSpawnIndex.md) + * [Get Attribute: spawnIndexInStrip Operator](Operator-GetAttributeSpawnIndexInStrip.md) * [Get Attribute: spawnTime Operator](Operator-GetAttributeSpawnTime.md) * [Get Attribute: stripIndex Operator](Operator-GetAttributeStripIndex.md) * [Get Attribute: targetPosition Operator](Operator-GetAttributeTargetPosition.md) * [Get Attribute: texIndex Operator](Operator-GetAttributeTexIndex.md) * [Get Attribute: velocity Operator](Operator-GetAttributeVelocity.md) * [Get Custom Attribute Operator](Operator-GetCustomAttribute.md) + * [Get Ratio over Strip Operator](Operator-RatioOverStrip.md) * [Bitwise Operators](Bitwise.md) * [And Operator](Operator-BitwiseAnd.md) * [Complement Operator](Operator-BitwiseComplement.md) diff --git a/Packages/com.unity.visualeffectgraph/Editor/Controls/VFXEnumValuePopup.cs b/Packages/com.unity.visualeffectgraph/Editor/Controls/VFXEnumValuePopup.cs index 5a5c6e390cb..5328b5ec688 100644 --- a/Packages/com.unity.visualeffectgraph/Editor/Controls/VFXEnumValuePopup.cs +++ b/Packages/com.unity.visualeffectgraph/Editor/Controls/VFXEnumValuePopup.cs @@ -39,14 +39,20 @@ private void SetValueAndNotify(long newValue) using var evt = ChangeEvent.GetPooled(value, newValue); evt.target = this; SetValueWithoutNotify(newValue); - m_DropDownButton.value = m_DropDownButton.choices[(int)m_Value]; SendEvent(evt); } } public void SetValueWithoutNotify(long newValue) { + if (m_DropDownButton.choices.Count == 0) + { + m_Value = 0; + return; + } m_Value = Math.Clamp(newValue, 0, m_DropDownButton.choices.Count - 1); + // Update the dropdown to show the new value. + m_DropDownButton.SetValueWithoutNotify(m_DropDownButton.choices[(int)m_Value]); } } } diff --git a/Packages/com.unity.visualeffectgraph/Editor/GraphView/Blackboard/VFXBlackboard.cs b/Packages/com.unity.visualeffectgraph/Editor/GraphView/Blackboard/VFXBlackboard.cs index a325de77c99..db0ef7ac13a 100644 --- a/Packages/com.unity.visualeffectgraph/Editor/GraphView/Blackboard/VFXBlackboard.cs +++ b/Packages/com.unity.visualeffectgraph/Editor/GraphView/Blackboard/VFXBlackboard.cs @@ -552,7 +552,8 @@ private DragVisualMode OnDragAndDropUpdate(HandleDragAndDropArgs arg) { return DragVisualMode.Move; } - else if (arg.dropPosition == DragAndDropPosition.BetweenItems && parentItem is CustomAttributeCategory && m_Treeview.selectedItems.All(x => x is AttributeItem)) + // Allow custom attributes to be reordered, but disallow re-categorizing built-in attributes + else if (arg.dropPosition == DragAndDropPosition.BetweenItems && parentItem is CustomAttributeCategory && m_Treeview.selectedItems.All(x => x is AttributeItem xAttr && !xAttr.isBuiltIn)) { return DragVisualMode.Move; } diff --git a/Packages/com.unity.visualeffectgraph/Editor/GraphView/Views/Controller/VFXViewController.cs b/Packages/com.unity.visualeffectgraph/Editor/GraphView/Views/Controller/VFXViewController.cs index 722db581de8..dc642bb7055 100644 --- a/Packages/com.unity.visualeffectgraph/Editor/GraphView/Views/Controller/VFXViewController.cs +++ b/Packages/com.unity.visualeffectgraph/Editor/GraphView/Views/Controller/VFXViewController.cs @@ -312,6 +312,7 @@ void GraphLost() RemoveInvalidateDelegate(m_Graph, InvalidateExpressionGraph); RemoveInvalidateDelegate(m_Graph, IncremenentGraphUndoRedoState); RemoveInvalidateDelegate(m_Graph, ReinitIfNeeded); + m_Graph.onRuntimeDataChanged -= OnGraphRecompiled; UnRegisterNotification(m_Graph, GraphChanged); @@ -907,6 +908,7 @@ protected override void ModelChanged(UnityObject obj) AddInvalidateDelegate(m_Graph, InvalidateExpressionGraph); AddInvalidateDelegate(m_Graph, IncremenentGraphUndoRedoState); AddInvalidateDelegate(m_Graph, ReinitIfNeeded); + m_Graph.onRuntimeDataChanged += OnGraphRecompiled; m_UI = m_Graph.UIInfos; diff --git a/Packages/com.unity.visualeffectgraph/Editor/GraphView/Views/Controller/VFXViewControllerExpressions.cs b/Packages/com.unity.visualeffectgraph/Editor/GraphView/Views/Controller/VFXViewControllerExpressions.cs index 26a2f0227dd..c7c6ccc0300 100644 --- a/Packages/com.unity.visualeffectgraph/Editor/GraphView/Views/Controller/VFXViewControllerExpressions.cs +++ b/Packages/com.unity.visualeffectgraph/Editor/GraphView/Views/Controller/VFXViewControllerExpressions.cs @@ -41,6 +41,15 @@ public void RecompileExpressionGraphIfNeeded() SendEvent(VFXRecompileEvent.Default); } + // Refresh the resolved input field values after the graph recompiles. + public void OnGraphRecompiled(VFXGraph vfxGraph) + { + // Only force the full path for a fresh recompile; keep a pending param-only refresh cheap. + if (!ExpressionGraphDirty) + ExpressionGraphDirtyParamOnly = false; + ExpressionGraphDirty = true; + } + public void InvalidateExpressionGraph(VFXModel model, VFXModel.InvalidationCause cause) { if (cause != VFXModel.InvalidationCause.kStructureChanged && diff --git a/Packages/com.unity.visualeffectgraph/Editor/GraphView/Views/Properties/PropertyRM.cs b/Packages/com.unity.visualeffectgraph/Editor/GraphView/Views/Properties/PropertyRM.cs index 936bc999d90..9ed998e4ef6 100644 --- a/Packages/com.unity.visualeffectgraph/Editor/GraphView/Views/Properties/PropertyRM.cs +++ b/Packages/com.unity.visualeffectgraph/Editor/GraphView/Views/Properties/PropertyRM.cs @@ -606,7 +606,8 @@ public override void UpdateGUI(bool force) if (m_Field is IVFXNotifyValueChanged vfxNotifyValueChanged) vfxNotifyValueChanged.SetValueWithoutNotify(value, force); else - m_Field.value = value; + // One-way refresh; must not notify. + m_Field.SetValueWithoutNotify(value); } catch (System.Exception ex) { diff --git a/Packages/com.unity.visualeffectgraph/Editor/Models/Contexts/Implementations/VFXOutputEvent.cs b/Packages/com.unity.visualeffectgraph/Editor/Models/Contexts/Implementations/VFXOutputEvent.cs index b4c3c856481..0be53e66f2c 100644 --- a/Packages/com.unity.visualeffectgraph/Editor/Models/Contexts/Implementations/VFXOutputEvent.cs +++ b/Packages/com.unity.visualeffectgraph/Editor/Models/Contexts/Implementations/VFXOutputEvent.cs @@ -6,6 +6,7 @@ namespace UnityEditor.VFX { + [VFXHelpURL("Context-OutputEvent")] [VFXInfo(name = "Output Event", category = "#1Event")] class VFXOutputEvent : VFXContext { diff --git a/Packages/com.unity.visualeffectgraph/Editor/Models/Contexts/Implementations/VFXQuadStripOutput.cs b/Packages/com.unity.visualeffectgraph/Editor/Models/Contexts/Implementations/VFXQuadStripOutput.cs index cccb7fad782..c1450530d60 100644 --- a/Packages/com.unity.visualeffectgraph/Editor/Models/Contexts/Implementations/VFXQuadStripOutput.cs +++ b/Packages/com.unity.visualeffectgraph/Editor/Models/Contexts/Implementations/VFXQuadStripOutput.cs @@ -4,6 +4,7 @@ namespace UnityEditor.VFX { + [VFXHelpURL("Context-OutputStripQuad")] [VFXInfo(name = "Output ParticleStrip|Unlit|Quad", category = "#3Output Strip", experimental = true, synonyms = new []{ "Trail", "Ribbon" })] class VFXQuadStripOutput : VFXShaderGraphParticleOutput { diff --git a/Packages/com.unity.visualeffectgraph/Editor/ShaderGraph/Templates/VFXConfig.template.hlsl b/Packages/com.unity.visualeffectgraph/Editor/ShaderGraph/Templates/VFXConfig.template.hlsl index 5716da463d5..f6711eeeb2b 100644 --- a/Packages/com.unity.visualeffectgraph/Editor/ShaderGraph/Templates/VFXConfig.template.hlsl +++ b/Packages/com.unity.visualeffectgraph/Editor/ShaderGraph/Templates/VFXConfig.template.hlsl @@ -197,7 +197,7 @@ float3 GetStripTangent(float3 currentPos, uint instanceIndex, uint relativeIndex nextTangent = tangent * rsqrt(sqrLength); } - return VFXSafeNormalize(prevTangent + nextTangent); + return VFXSafeNormalize(prevTangent + nextTangent, nextTangent); } #endif diff --git a/Packages/com.unity.visualeffectgraph/Shaders/SDFBaker/GenSdfRayMap.compute b/Packages/com.unity.visualeffectgraph/Shaders/SDFBaker/GenSdfRayMap.compute index 36ca56d6788..d6247994654 100644 --- a/Packages/com.unity.visualeffectgraph/Shaders/SDFBaker/GenSdfRayMap.compute +++ b/Packages/com.unity.visualeffectgraph/Shaders/SDFBaker/GenSdfRayMap.compute @@ -205,7 +205,7 @@ RWStructuredBuffer Result ; #define groupthreads 512 groupshared uint2 bucket[groupthreads]; -void PrefixSum(uint id, uint gid, uint x) +void PrefixSum(uint id, uint gid, uint x, bool valid) { uint thid = id; //load input into shared memory @@ -269,7 +269,9 @@ void PrefixSum(uint id, uint gid, uint x) } n = !n; } - Result[thid] = bucket[gid].y; //Careful, works for groupthreads = 512 (2^(2n+1)) + + if (valid) + Result[thid] = bucket[gid].y; //Careful, works for groupthreads = 512 (2^(2n+1)) } uint numElem; uint dispatchWidth; @@ -279,30 +281,34 @@ void InBucketSum(uint3 GTid: SV_GroupThreadID, uint GI: SV_GroupIndex, uint3 gro uint x; const uint id = GTid.x + groupId.x * groupthreads + groupId.y * dispatchWidth * groupthreads; - if(id >= numElem) + bool valid = id < numElem; + UNITY_BRANCH + if(!valid) { x = 0u; } else{ x = Input[id]; } - PrefixSum(id, GI, x); + PrefixSum(id, GI, x, valid); } [numthreads(groupthreads, 1, 1)] void BlockSums(uint3 DTid: SV_DispatchThreadID, uint GI: SV_GroupIndex) { - uint x ; - if((DTid.x + 1) * groupthreads -1 >= numElem ) + uint x; + uint idx = (DTid.x + 1) * groupthreads - 1; + bool validWrite = DTid.x * groupthreads < numElem; + UNITY_BRANCH + if (idx >= numElem) { x = 0u; } else { - uint id = (DTid.x + 1) * groupthreads - 1; - x = Input[id] + inputCounter[id]; // Change the type of x here if scan other types + x = Input[idx] + inputCounter[idx]; // Change the type of x here if scan other types } - PrefixSum(DTid.x, GI, x); + PrefixSum(DTid.x, GI, x, validWrite); } bool exclusive; diff --git a/Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl b/Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl index f146cde7fc0..985af169d50 100644 --- a/Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl +++ b/Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl @@ -131,6 +131,12 @@ float3 VFXSafeNormalize(float3 v) return v * rsqrt(sqrLength); } +float3 VFXSafeNormalize(float3 v, float3 fallback) +{ + float sqrLength = dot(v, v); + return sqrLength > VFX_EPSILON * VFX_EPSILON ? v * rsqrt(sqrLength) : fallback; +} + float3 VFXSafeNormalizedCross(float3 v1, float3 v2, float3 fallback) { float3 outVec = cross(v1, v2); diff --git a/Packages/com.unity.visualeffectgraph/Shaders/VFXOutputUpdate.template b/Packages/com.unity.visualeffectgraph/Shaders/VFXOutputUpdate.template index 883b471935d..7aafda8232e 100644 --- a/Packages/com.unity.visualeffectgraph/Shaders/VFXOutputUpdate.template +++ b/Packages/com.unity.visualeffectgraph/Shaders/VFXOutputUpdate.template @@ -170,7 +170,7 @@ void CSMain(uint3 groupId : SV_GroupID, radius *= radiusScale; #if VFX_FEATURE_FRUSTUM_CULL - if (IsSphereOutsideFrustum(elementToWorld._m03_m13_m23, radius, _FrustumPlanes)) + if (IsSphereOutsideFrustum(elementToWorld._m03_m13_m23, radius, unity_CameraWorldClipPlanes)) return; #endif #endif @@ -181,7 +181,7 @@ void CSMain(uint3 groupId : SV_GroupID, #if !VFX_FEATURE_FRUSTUM_CULL // If particle is out of frustum and frustum culling is disabled, use the lowest LOD // This is useful for shadow passes for instance to avoid out of frustum particles to be culled from shadows - if (IsSphereOutsideFrustum(elementToWorld._m03_m13_m23, radius, _FrustumPlanes)) + if (IsSphereOutsideFrustum(elementToWorld._m03_m13_m23, radius, unity_CameraWorldClipPlanes)) outputIndex = INDIRECT_BUFFER_COUNT - 1; else #endif diff --git a/Packages/com.unity.visualeffectgraph/Shaders/VFXParticleCommon.template b/Packages/com.unity.visualeffectgraph/Shaders/VFXParticleCommon.template index 1f18dbc475c..404cf519c42 100644 --- a/Packages/com.unity.visualeffectgraph/Shaders/VFXParticleCommon.template +++ b/Packages/com.unity.visualeffectgraph/Shaders/VFXParticleCommon.template @@ -306,7 +306,7 @@ float3 GetStripTangent(float3 currentPos, uint instanceIndex, uint relativeIndex nextTangent = tangent * rsqrt(sqrLength); } - return VFXSafeNormalize(prevTangent + nextTangent); + return VFXSafeNormalize(prevTangent + nextTangent, nextTangent); } ${VFXEnd} diff --git a/Packages/com.unity.visualeffectgraph/Shaders/VFXVolumetricFogUpdate.template b/Packages/com.unity.visualeffectgraph/Shaders/VFXVolumetricFogUpdate.template index 0cf1f175cad..60592f30c46 100644 --- a/Packages/com.unity.visualeffectgraph/Shaders/VFXVolumetricFogUpdate.template +++ b/Packages/com.unity.visualeffectgraph/Shaders/VFXVolumetricFogUpdate.template @@ -137,7 +137,7 @@ void CSMain(uint3 groupId : SV_GroupID, bool fogParticleVisible = startSliceIndex <= uint(_MaxSliceCount); #if defined(VFX_FEATURE_FRUSTUM_CULL) - if (!IsSphereOutsideFrustum(vPosWS, radius, _FrustumPlanes)) + if (!IsSphereOutsideFrustum(vPosWS, radius, unity_CameraWorldClipPlanes)) #endif if (attributes.alive && fogParticleVisible) diff --git a/Templates/com.unity.template-hd/Assets/SampleSceneAssets/Settings/QualityLevels/1HDRPPerformant.asset b/Templates/com.unity.template-hd/Assets/SampleSceneAssets/Settings/QualityLevels/1HDRPPerformant.asset index 63a4e1c3e48..eb19acae360 100644 --- a/Templates/com.unity.template-hd/Assets/SampleSceneAssets/Settings/QualityLevels/1HDRPPerformant.asset +++ b/Templates/com.unity.template-hd/Assets/SampleSceneAssets/Settings/QualityLevels/1HDRPPerformant.asset @@ -520,7 +520,7 @@ MonoBehaviour: - 0.5 - 0.5 gpuResidentDrawerSettings: - mode: 1 + mode: 0 smallMeshScreenPercentage: 0 enableOcclusionCullingInCameras: 0 useDepthPrepassForOccluders: 1 diff --git a/Templates/com.unity.template-hd/Assets/SampleSceneAssets/Settings/QualityLevels/2HDRPBalanced.asset b/Templates/com.unity.template-hd/Assets/SampleSceneAssets/Settings/QualityLevels/2HDRPBalanced.asset index 3ebfbe4d26a..b91d655674d 100644 --- a/Templates/com.unity.template-hd/Assets/SampleSceneAssets/Settings/QualityLevels/2HDRPBalanced.asset +++ b/Templates/com.unity.template-hd/Assets/SampleSceneAssets/Settings/QualityLevels/2HDRPBalanced.asset @@ -521,7 +521,7 @@ MonoBehaviour: - 0.5 - 0.5 gpuResidentDrawerSettings: - mode: 1 + mode: 0 smallMeshScreenPercentage: 0 enableOcclusionCullingInCameras: 0 useDepthPrepassForOccluders: 1 diff --git a/Templates/com.unity.template-hd/Assets/SampleSceneAssets/Settings/QualityLevels/3HDRPHighFidelity.asset b/Templates/com.unity.template-hd/Assets/SampleSceneAssets/Settings/QualityLevels/3HDRPHighFidelity.asset index 892a7595bf6..73327d47587 100644 --- a/Templates/com.unity.template-hd/Assets/SampleSceneAssets/Settings/QualityLevels/3HDRPHighFidelity.asset +++ b/Templates/com.unity.template-hd/Assets/SampleSceneAssets/Settings/QualityLevels/3HDRPHighFidelity.asset @@ -519,7 +519,7 @@ MonoBehaviour: - 0.5 - 0.5 gpuResidentDrawerSettings: - mode: 1 + mode: 0 smallMeshScreenPercentage: 0 enableOcclusionCullingInCameras: 0 useDepthPrepassForOccluders: 1 diff --git a/Templates/com.unity.template-hd/Assets/SampleSceneAssets/Settings/QualityLevels/4HDRPRaytracingQuality.asset b/Templates/com.unity.template-hd/Assets/SampleSceneAssets/Settings/QualityLevels/4HDRPRaytracingQuality.asset index 7281e067810..0b4704b708b 100644 --- a/Templates/com.unity.template-hd/Assets/SampleSceneAssets/Settings/QualityLevels/4HDRPRaytracingQuality.asset +++ b/Templates/com.unity.template-hd/Assets/SampleSceneAssets/Settings/QualityLevels/4HDRPRaytracingQuality.asset @@ -312,7 +312,7 @@ MonoBehaviour: - 0.5 - 0.5 gpuResidentDrawerSettings: - mode: 1 + mode: 0 smallMeshScreenPercentage: 0 enableOcclusionCullingInCameras: 0 useDepthPrepassForOccluders: 1 diff --git a/Templates/com.unity.template-hd/Assets/SampleSceneAssets/Settings/QualityLevels/5HDRPRaytracingRTGIQuality.asset b/Templates/com.unity.template-hd/Assets/SampleSceneAssets/Settings/QualityLevels/5HDRPRaytracingRTGIQuality.asset index 5ee914b3b4f..72741ad8c1d 100644 --- a/Templates/com.unity.template-hd/Assets/SampleSceneAssets/Settings/QualityLevels/5HDRPRaytracingRTGIQuality.asset +++ b/Templates/com.unity.template-hd/Assets/SampleSceneAssets/Settings/QualityLevels/5HDRPRaytracingRTGIQuality.asset @@ -312,7 +312,7 @@ MonoBehaviour: - 0.5 - 0.5 gpuResidentDrawerSettings: - mode: 1 + mode: 0 smallMeshScreenPercentage: 0 enableOcclusionCullingInCameras: 0 useDepthPrepassForOccluders: 1 diff --git a/Templates/com.unity.template-hd/ProjectSettings/GraphicsSettings.asset b/Templates/com.unity.template-hd/ProjectSettings/GraphicsSettings.asset index 4a2782c45b0..d31add319c5 100644 --- a/Templates/com.unity.template-hd/ProjectSettings/GraphicsSettings.asset +++ b/Templates/com.unity.template-hd/ProjectSettings/GraphicsSettings.asset @@ -116,7 +116,7 @@ GraphicsSettings: m_LightmapStripping: 0 m_FogStripping: 0 m_InstancingStripping: 0 - m_BrgStripping: 2 + m_BrgStripping: 0 m_LightmapKeepPlain: 0 m_LightmapKeepDirCombined: 1 m_LightmapKeepDynamicPlain: 0 diff --git a/Tests/SRPTests/Packages/com.unity.testing.hdrp/TestRunner/HDRP_GraphicTestRunner.cs b/Tests/SRPTests/Packages/com.unity.testing.hdrp/TestRunner/HDRP_GraphicTestRunner.cs index 9faf120ee0f..6d191524692 100644 --- a/Tests/SRPTests/Packages/com.unity.testing.hdrp/TestRunner/HDRP_GraphicTestRunner.cs +++ b/Tests/SRPTests/Packages/com.unity.testing.hdrp/TestRunner/HDRP_GraphicTestRunner.cs @@ -68,9 +68,9 @@ public static IEnumerator Run(SceneGraphicsTestCase testCase) // Purpose is to setup proper test aspect ratio for the camera to "see" all objects and trigger related shader compilation tasks. int warmupTime = 1; - if (XRGraphicsAutomatedTests.enabled) - warmupTime = Unity.Testing.XR.Runtime.ConfigureMockHMD.SetupTest(settings.xrCompatible, warmupTime, settings.ImageComparisonSettings); - else + Unity.Testing.XR.Runtime.ConfigureMockHMD.SetupTest(settings.xrCompatible, warmupTime, settings.ImageComparisonSettings); + + if (!XRGraphicsAutomatedTests.enabled) camera.targetTexture = RenderTexture.GetTemporary(settings.ImageComparisonSettings.TargetWidth, settings.ImageComparisonSettings.TargetHeight); // Trigger any test specific script. This is because it may change objects state and trigger shader compilation. @@ -151,7 +151,22 @@ public static IEnumerator Run(SceneGraphicsTestCase testCase) if (XRGraphicsAutomatedTests.enabled) { GraphicsTestLogger.Log(LogType.Log, "XR Automated Tests enabled."); - waitFrames = Unity.Testing.XR.Runtime.ConfigureMockHMD.SetupTest(settings.xrCompatible, waitFrames, settings.ImageComparisonSettings); + + if (settings.xrCompatible) + { + Unity.Testing.XR.Runtime.ConfigureMockHMD.ConfigureXRDisplay(settings.xrCompatible, settings.ImageComparisonSettings); + + #if !UNITY_EDITOR + // Some tests need time after eye resolution change before setting player resolution + yield return Unity.Testing.XR.Runtime.ConfigureMockHMD.WaitForXRFrames(settings.xrCompatible, 1); + #endif + + waitFrames = Unity.Testing.XR.Runtime.ConfigureMockHMD.SetPlayerResolutionForXR(settings.xrCompatible, settings.ImageComparisonSettings, waitFrames); + } + else + { + Assert.Ignore("Test scene is not compatible with XR and will be skipped."); + } // Increase tolerance to account for slight changes due to float precision settings.ImageComparisonSettings.AverageCorrectnessThreshold *= settings.xrThresholdMultiplier; diff --git a/Tests/SRPTests/Packages/com.unity.testing.urp/Scripts/Runtime/UniversalGraphicsTestBase.cs b/Tests/SRPTests/Packages/com.unity.testing.urp/Scripts/Runtime/UniversalGraphicsTestBase.cs index 602a5c06b5f..e7a9b198d09 100644 --- a/Tests/SRPTests/Packages/com.unity.testing.urp/Scripts/Runtime/UniversalGraphicsTestBase.cs +++ b/Tests/SRPTests/Packages/com.unity.testing.urp/Scripts/Runtime/UniversalGraphicsTestBase.cs @@ -72,9 +72,118 @@ public void OneTimeSetUp() [UnityOneTimeSetUp] public IEnumerator OneTimeSetup() { + // Necessary because of inconsistencies on some platforms + yield return SetResolutionWithRetry(1920, 1080, true); + yield return TestContentLoader.WaitForContentLoadAsync(TimeSpan.FromSeconds(240)); } + static int s_SettledWidth; + static int s_SettledHeight; + + // Copy of GlobalResolutionSetter.SetResolutionWithRetry from com.unity.testframework.graphics, + // which local.gtf.references pins to 9.0.0-exp.43 here - that predates the retry, and moving the + // pin far enough to get it also takes the 9.0.0-exp.57 API breaks. Keep this in step with the + // framework and delete it once the pin moves. UUM-150918 + + /// + /// Sets the screen resolution with retry and verification logic. + /// + /// Target width + /// Target height + /// Fullscreen mode + /// Maximum number of retry attempts + /// + /// Coroutine enumerator + /// + public static IEnumerator SetResolutionWithRetry(int width, int height, bool fullscreen, int maxRetries = 3) + { + if (Application.isEditor) + { + GraphicsTestLogger.Log("Running test in Editor, skipping Player resolution change"); + yield break; + } + +#if UNITY_WEBGL + GraphicsTestLogger.Log("Running test on WebGL platform, skipping Player resolution change"); + yield break; +#else + // Check if resolution is already correct + if (Screen.width == width && Screen.height == height) + { + if (s_SettledWidth == width && s_SettledHeight == height) + { + GraphicsTestLogger.Log($"Resolution already set to {width}x{height}, skipping resolution change entirely"); + yield break; + } + + // Applied elsewhere (e.g. plain Screen.SetResolution in OneTimeSetUp); may still be in flight. + GraphicsTestLogger.Log($"Resolution already reports {width}x{height}, waiting for it to settle"); + yield return WaitForModeSwitchToSettle(Application.platform, () => Time.realtimeSinceStartup); + s_SettledWidth = width; + s_SettledHeight = height; + yield break; + } + + for (int attempt = 1; attempt <= maxRetries; attempt++) + { + int framesToWait = attempt switch + { + 1 => 60, + 2 => 600, + _ => 6000 + }; + + GraphicsTestLogger.Log( + $"Attempting to set resolution to {width}x{height} " + + $"(Attempt {attempt}/{maxRetries}, waiting up to {framesToWait} frame(s) for it to apply)"); + + Screen.SetResolution(width, height, fullscreen); + + for (int frame = 0; frame <= framesToWait; frame++) + { + if (Screen.width == width && Screen.height == height) + { + GraphicsTestLogger.Log( + $"Resolution successfully set to {width}x{height} " + + $"on attempt {attempt} after {frame} frame(s)"); + yield return WaitForModeSwitchToSettle(Application.platform, () => Time.realtimeSinceStartup); + s_SettledWidth = width; + s_SettledHeight = height; + yield break; + } + + yield return null; + } + + GraphicsTestLogger.Log( + $"Resolution not applied after attempt {attempt}. " + + $"Current: {Screen.width}x{Screen.height}, Expected: {width}x{height}"); + } + + throw new InvalidOperationException( + $"Failed to set resolution to {width}x{height} after {maxRetries} attempts. " + + $"Current resolution: {Screen.width}x{Screen.height}. " + + "Graphics tests require this resolution for valid image comparison." + ); +#endif + } + + internal static IEnumerator WaitForModeSwitchToSettle(RuntimePlatform platform, Func now) + { + const float settleSeconds = 5f; + + // macOS only: the fullscreen transition disrupts a frame well after Screen.width reports the + // new size, failing the first back buffer capture of a run. No other platform has shown this, + // and holding everywhere would cost every player run 5 seconds. + if (platform != RuntimePlatform.OSXPlayer) + yield break; + + float start = now(); + while (now() - start < settleSeconds) + yield return null; + } + [SetUp] public void SetUpContext() { diff --git a/Tests/SRPTests/Packages/com.unity.testing.xr/Runtime/ConfigureMockHMD.cs b/Tests/SRPTests/Packages/com.unity.testing.xr/Runtime/ConfigureMockHMD.cs index b4944019cc7..9d4af52220a 100644 --- a/Tests/SRPTests/Packages/com.unity.testing.xr/Runtime/ConfigureMockHMD.cs +++ b/Tests/SRPTests/Packages/com.unity.testing.xr/Runtime/ConfigureMockHMD.cs @@ -1,5 +1,8 @@ +using System.Collections; using NUnit.Framework; using System.Collections.Generic; +using System.Numerics; +using System.Runtime.CompilerServices; using UnityEngine; using UnityEngine.Rendering; @@ -11,6 +14,15 @@ namespace Unity.Testing.XR.Runtime { public class ConfigureMockHMD { + /// + /// Configures MockHMD for XR testing with specified image comparison settings. + /// Sets up the XR display subsystem and configures the player resolution to match. + /// On XR, the player resolution must match the target width and target height specified in the settings. + /// + /// Whether the test scene is compatible with XR. + /// Number of frames to wait before test execution. + /// Image comparison settings containing target resolution. + /// Number of frames to wait. Returns at least 4 frames for XR eye texture resizing when XR is enabled. static public int SetupTest(bool xrCompatible, int waitFrames, UnityEngine.TestTools.Graphics.ImageComparisonSettings settings) { #if ENABLE_VR && USE_XR_MOCK_HMD @@ -18,50 +30,128 @@ static public int SetupTest(bool xrCompatible, int waitFrames, UnityEngine.TestT { if (xrCompatible) { - XRGraphicsAutomatedTests.running = true; + ConfigureXRDisplay(xrCompatible, settings); + int resolutionWaitFrames = SetPlayerResolutionForXR(xrCompatible, settings, waitFrames); - // Validate MockHMD is enabled and running - List xrDisplays = new List(); - SubsystemManager.GetSubsystems(xrDisplays); - Assume.That(xrDisplays.Count == 1 && xrDisplays[0].running, "XR display MockHMD is not running!"); + // XR plugin MockHMD requires a few frames to resize eye textures + return Mathf.Max(waitFrames, resolutionWaitFrames); + } + else + { + Assert.Ignore("Test scene is not compatible with XR and will be skipped."); + } + } +#endif + + return waitFrames; + } - // Configure MockHMD to use single-pass and compare reference image against second view (right eye) - xrDisplays[0].SetPreferredMirrorBlitMode(XRMirrorViewBlitMode.RightEye); + /// + /// Configures the XR display subsystem for MockHMD testing. + /// Sets up single-pass instanced rendering, mirror blit mode, eye resolution, and validates the display is running. + /// On XR, configures eye resolution to match the target width and target height specified in the settings. + /// Safe to call regardless of XR context - will only execute when ENABLE_VR and USE_XR_MOCK_HMD are defined and test is XR compatible. + /// + /// Whether the test scene is compatible with XR. + /// Image comparison settings containing target resolution. + static public void ConfigureXRDisplay(bool xrCompatible, UnityEngine.TestTools.Graphics.ImageComparisonSettings settings) + { + #if ENABLE_VR && USE_XR_MOCK_HMD + if (XRGraphicsAutomatedTests.enabled && xrCompatible) + { + XRGraphicsAutomatedTests.running = true; - // Configure MockHMD stereo mode - xrDisplays[0].textureLayout = XRDisplaySubsystem.TextureLayout.Texture2DArray; - Unity.XR.MockHMD.MockHMD.SetRenderMode(Unity.XR.MockHMD.MockHMDBuildSettings.RenderMode.SinglePassInstanced); + var resolution = GetResolutionFromSettings(settings); - // Configure MockHMD to match the original settings from the test scene - int w = 1920; - int h = 1080; + // Validate MockHMD is enabled and running + List xrDisplays = new List(); + SubsystemManager.GetSubsystems(xrDisplays); + Assume.That(xrDisplays.Count == 1 && xrDisplays[0].running, "XR display MockHMD is not running!"); - if(!settings.UseBackBuffer) - { - w = settings.TargetWidth; - h = settings.TargetHeight; - } + // Configure MockHMD to use single-pass and compare reference image against second view (right eye) + xrDisplays[0].SetPreferredMirrorBlitMode(XRMirrorViewBlitMode.RightEye); - Unity.XR.MockHMD.MockHMD.SetEyeResolution(w, h); - Unity.XR.MockHMD.MockHMD.SetMirrorViewCrop(0.0f); + // Configure MockHMD stereo mode + xrDisplays[0].textureLayout = XRDisplaySubsystem.TextureLayout.Texture2DArray; + Unity.XR.MockHMD.MockHMD.SetRenderMode(Unity.XR.MockHMD.MockHMDBuildSettings.RenderMode.SinglePassInstanced); -#if UNITY_EDITOR - UnityEditor.TestTools.Graphics.SetupGraphicsTestCases.SetGameViewSize(w, h); -#else - Screen.SetResolution(w, h, FullScreenMode.Windowed); -#endif - } - else + Unity.XR.MockHMD.MockHMD.SetEyeResolution(resolution.width, resolution.height); + Unity.XR.MockHMD.MockHMD.SetMirrorViewCrop(0.0f); + } + #endif + } + + + /// + /// Sets the player/game view resolution to match XR eye texture resolution. + /// On XR, this resolution must match the target width and target height of the test settings. + /// Safe to call regardless of XR context - will only execute when ENABLE_VR and USE_XR_MOCK_HMD are defined and test is XR compatible. + /// + /// Whether the test scene is compatible with XR. + /// Image comparison settings containing target resolution. + /// Base number of frames to wait. + /// Number of frames to wait (4) for XR eye textures to properly resize, or original waitFrames if not in XR context. + static public int SetPlayerResolutionForXR(bool xrCompatible, UnityEngine.TestTools.Graphics.ImageComparisonSettings settings, int waitFrames) + { + #if ENABLE_VR && USE_XR_MOCK_HMD + if (XRGraphicsAutomatedTests.enabled && xrCompatible) + { + XRGraphicsAutomatedTests.running = true; + + var resolution = GetResolutionFromSettings(settings); + + #if UNITY_EDITOR + UnityEditor.TestTools.Graphics.SetupGraphicsTestCases.SetGameViewSize(resolution.width, resolution.height); + #else + Screen.SetResolution(resolution.width, resolution.height, FullScreenMode.Windowed); + #endif + return Mathf.Max(waitFrames, 4); + } + #endif + return waitFrames; + } + + /// + /// Waits for the specified number of frames when XR is active and the test is XR compatible. + /// This is useful for allowing XR eye textures and display settings to properly update after configuration changes. + /// Only yields frames when ENABLE_VR and USE_XR_MOCK_HMD are defined, XRGraphicsAutomatedTests is enabled, and test is XR compatible. + /// Otherwise, completes immediately without waiting. + /// + /// Whether the test scene is compatible with XR. + /// Number of frames to wait. + /// IEnumerator for coroutine execution. + static public IEnumerator WaitForXRFrames(bool xrCompatible, int frameCount) + { + #if ENABLE_VR && USE_XR_MOCK_HMD + if (XRGraphicsAutomatedTests.enabled && xrCompatible) + { + for (int i = 0; i < frameCount; i++) { - Assert.Ignore("Test scene is not compatible with XR and will be skipped."); + yield return new WaitForEndOfFrame(); } + } + #endif + yield break; + } - // XR plugin MockHMD requires a few frames to resize eye textures - return Mathf.Max(waitFrames, 4); + /// + /// Extracts the target resolution from image comparison settings. + /// Returns the specified target width/height, or defaults to 1920x1080 if using back buffer. + /// + /// Image comparison settings. + /// Resolution as (width, height) tuple. + static private (int width, int height) GetResolutionFromSettings(UnityEngine.TestTools.Graphics.ImageComparisonSettings settings) + { + int w = 1920; + int h = 1080; + + if (!settings.UseBackBuffer) + { + w = settings.TargetWidth; + h = settings.TargetHeight; } -#endif - return waitFrames; + return (w, h); } } } diff --git a/Tests/SRPTests/Projects/HDRP_RuntimeTests/Assets/Tests/HDRP_Runtime_Graphics_Tests.cs b/Tests/SRPTests/Projects/HDRP_RuntimeTests/Assets/Tests/HDRP_Runtime_Graphics_Tests.cs index 042766bacf5..d390997fdac 100644 --- a/Tests/SRPTests/Projects/HDRP_RuntimeTests/Assets/Tests/HDRP_Runtime_Graphics_Tests.cs +++ b/Tests/SRPTests/Projects/HDRP_RuntimeTests/Assets/Tests/HDRP_Runtime_Graphics_Tests.cs @@ -73,6 +73,11 @@ public void SetDefaultResolution() "https://jira.unity3d.com/browse/UUM-70791", runtimePlatforms: new RuntimePlatform[] { RuntimePlatform.PS4, RuntimePlatform.PS5, RuntimePlatform.Switch, RuntimePlatform.Switch2 } )] + [IgnoreGraphicsTest( + "006-Compositor$", + "https://jira.unity3d.com/browse/UUM-147661 - 6000.3 only: crashes the player and aborts the rest of the suite.", + runtimePlatforms: new RuntimePlatform[] { RuntimePlatform.Switch } + )] public IEnumerator Run(SceneGraphicsTestCase testCase) { yield return HDRP_GraphicTestRunner.Run(testCase); 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 706ea75eee7..2f2e95ef200 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 @@ -6,6 +6,7 @@ using UnityEngine.TestTools.Graphics; using UnityEngine.TestTools.Graphics.Contexts; using UnityEngine.TestTools.Graphics.Platforms; +using UnityEngine; namespace UnityEngine.Rendering.HighDefinition.Tests { @@ -382,8 +383,19 @@ public void SetUpContext() )] [IgnoreGraphicsTest( "3006_TileCluster_Cluster$", - "https://jira.unity3d.com/browse/UUM-144350 - Localized tile/cluster artifact on NVIDIA A10 in the XR playmode job after the win11-22H2-x64-azure-nvidia image update. XR and non-XR share one reference image (xr-reuse-tests), so the ignore is scoped to DX11+WindowsEditor.", - GraphicsDeviceType.Direct3D11, RuntimePlatform.WindowsEditor + "https://jira.unity3d.com/browse/UUM-144350 - Localized tile/cluster artifact on NVIDIA A10 in the XR playmode jobs after the win11-22H2-x64-azure-nvidia image update. Seen on DX11 and on DX12 (XR, NativeGraphicsJobsSplitThreading).", + graphicsDeviceTypes: new[] { GraphicsDeviceType.Direct3D11, GraphicsDeviceType.Direct3D12 }, + runtimePlatforms: new[] { RuntimePlatform.WindowsEditor } + )] + [IgnoreGraphicsTest( + "4075_PhysicalCamera-gateFit", + "Disabled for Instability https://jira.unity3d.com/browse/UUM-147934", + RuntimePlatform.WindowsEditor + )] + [IgnoreGraphicsTest( + "4111_DRS-DLSS-With-CustomPass", + "Disabled for Instability https://jira.unity3d.com/browse/UUM-148012", + RuntimePlatform.WindowsEditor )] public IEnumerator Run(SceneGraphicsTestCase testCase) { diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/CommonAssets/UniversalRPAsset.asset b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/CommonAssets/UniversalRPAsset.asset index b2c5a766377..c17b512f4cb 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/CommonAssets/UniversalRPAsset.asset +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/CommonAssets/UniversalRPAsset.asset @@ -27,6 +27,8 @@ MonoBehaviour: - {fileID: 11400000, guid: ab4527fe9ad5ef949bffe9447fabcfa2, type: 2} - {fileID: 11400000, guid: 3fbfbd331642d98488a7faad256688e5, type: 2} - {fileID: 11400000, guid: 01e79ba8f42c808448b7542939affccb, type: 2} + - {fileID: 11400000, guid: 039e24411cea2f6498a6a0733989ae55, type: 2} + - {fileID: 11400000, guid: 47f3a0f49714d5f47948925871b58f11, type: 2} m_DefaultRendererIndex: 2 m_RequireDepthTexture: 0 m_RequireOpaqueTexture: 0 @@ -62,7 +64,7 @@ MonoBehaviour: m_AdditionalLightsShadowResolutionTierHigh: 512 m_ReflectionProbeBlending: 0 m_ReflectionProbeBoxProjection: 0 - m_ReflectionProbeAtlas: 1 + m_ReflectionProbeAtlas: 0 m_ShadowDistance: 56 m_ShadowCascadeCount: 4 m_Cascade2Split: 0.25 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/019_CameraSortingLayer.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/019_CameraSortingLayer.meta new file mode 100644 index 00000000000..243ad472167 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/019_CameraSortingLayer.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8301aaa07078a7948bc53346a2460432 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/019_CameraSortingLayer.unity b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/019_CameraSortingLayer.unity new file mode 100644 index 00000000000..7e90b777454 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/019_CameraSortingLayer.unity @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1e7360991ed37f028b74322c7786dc32bb6dd6f1b3bc9519d3468e59ab373a15 +size 15721 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/019_CameraSortingLayer.unity.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/019_CameraSortingLayer.unity.meta new file mode 100644 index 00000000000..aabc3170314 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/019_CameraSortingLayer.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 0e9e40b7c057ccd428e42df5b831425f +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/019_CameraSortingLayer/019_CameraSortingLayer.asset b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/019_CameraSortingLayer/019_CameraSortingLayer.asset new file mode 100644 index 00000000000..fc160328dcf --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/019_CameraSortingLayer/019_CameraSortingLayer.asset @@ -0,0 +1,57 @@ +%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: 11145981673336645838492a2d98e247, type: 3} + m_Name: 019_CameraSortingLayer + 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: [] + m_RendererFeatureMap: + m_LayerMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_TransparencySortMode: 0 + m_TransparencySortAxis: {x: 0, y: 1, z: 0} + m_HDREmulationScale: 1 + m_LightRenderTextureScale: 1 + 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: 1 + m_CameraSortingLayersTextureBound: -538112021 + 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/019_CameraSortingLayer/019_CameraSortingLayer.asset.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/019_CameraSortingLayer/019_CameraSortingLayer.asset.meta new file mode 100644 index 00000000000..948d4ad539f --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/019_CameraSortingLayer/019_CameraSortingLayer.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 039e24411cea2f6498a6a0733989ae55 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/019_CameraSortingLayer/CameraSortingLayerShadergraph.shadergraph b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/019_CameraSortingLayer/CameraSortingLayerShadergraph.shadergraph new file mode 100644 index 00000000000..8c3b52b7e6f --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/019_CameraSortingLayer/CameraSortingLayerShadergraph.shadergraph @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a5d7e24e9ff0e6eac80adcd7d76fc69795ba276d867590945b9b29a38d85bf83 +size 20658 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/019_CameraSortingLayer/CameraSortingLayerShadergraph.shadergraph.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/019_CameraSortingLayer/CameraSortingLayerShadergraph.shadergraph.meta new file mode 100644 index 00000000000..342aaff336b --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/019_CameraSortingLayer/CameraSortingLayerShadergraph.shadergraph.meta @@ -0,0 +1,20 @@ +fileFormatVersion: 2 +guid: 58348bacb03e6f248929a95f2514d1a3 +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: 625f186215c104763be7675aa2d941aa, type: 3} + useAsTemplate: 0 + exposeTemplateAsShader: 0 + indexedData: {instanceID: 0} + template: + name: + category: + description: + icon: {instanceID: 0} + thumbnail: {instanceID: 0} + order: 0 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/064_RenderObjectsRendererFeature.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/064_RenderObjectsRendererFeature.meta new file mode 100644 index 00000000000..ee7194ae5df --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/064_RenderObjectsRendererFeature.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 482f5f7db6d987e429befdd7278a5d9c +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/064_RenderObjectsRendererFeature.unity b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/064_RenderObjectsRendererFeature.unity new file mode 100644 index 00000000000..e6a6e15c741 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/064_RenderObjectsRendererFeature.unity @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eb0fa59aa8d629791967ac9203df6db5517f0524e3f889602a4381b742f8a4f2 +size 13098 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/064_RenderObjectsRendererFeature.unity.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/064_RenderObjectsRendererFeature.unity.meta new file mode 100644 index 00000000000..b74731493a8 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/064_RenderObjectsRendererFeature.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: e65c52bd72bcbed4d8916dfcf926bb4c +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/064_RenderObjectsRendererFeature/064_RenderObjectsFeature Renderer Data.asset b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/064_RenderObjectsRendererFeature/064_RenderObjectsFeature Renderer Data.asset new file mode 100644 index 00000000000..c5dfdc96bd3 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/064_RenderObjectsRendererFeature/064_RenderObjectsFeature Renderer Data.asset @@ -0,0 +1,103 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-5415328978193341103 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6b3d386ba5cd94485973aee1479b272e, type: 3} + m_Name: RenderObjects + m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Runtime::UnityEngine.Rendering.Universal.RenderObjects + m_Active: 1 + settings: + passTag: RenderObjects + Event: 500 + filterSettings: + RenderQueueType: 1 + LayerMask: + serializedVersion: 2 + m_Bits: 4294967295 + PassNames: [] + overrideMaterial: {fileID: 0} + overrideMaterialPassIndex: 0 + overrideShader: {fileID: 0} + overrideShaderPassIndex: 0 + overrideMode: 1 + overrideDepthState: 0 + depthCompareFunction: 4 + enableWrite: 1 + stencilSettings: + overrideStencilState: 0 + stencilReference: 0 + stencilReadMask: 15 + stencilWriteMask: 15 + stencilCompareFunction: 8 + passOperation: 0 + failOperation: 0 + zFailOperation: 0 + cameraSettings: + overrideCamera: 0 + restoreCamera: 1 + offset: {x: 0, y: 0, z: 0, w: 0} + cameraFieldOfView: 60 + depthInputAttachment: 0 +--- !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_RenderObjectsFeature 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: -5415328978193341103} + m_RendererFeatureMap: 5125e868fce2d8b4l + m_LayerMask: + serializedVersion: 2 + m_Bits: 0 + 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: 0 + 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_RenderObjectsRendererFeature/064_RenderObjectsFeature Renderer Data.asset.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/064_RenderObjectsRendererFeature/064_RenderObjectsFeature Renderer Data.asset.meta new file mode 100644 index 00000000000..756a3402a97 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/064_RenderObjectsRendererFeature/064_RenderObjectsFeature Renderer Data.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 47f3a0f49714d5f47948925871b58f11 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/094_TilemapRenderer_MixedNormals.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/094_TilemapRenderer_MixedNormals.meta new file mode 100644 index 00000000000..11c50dcdd71 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/094_TilemapRenderer_MixedNormals.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9846c84b9c6ff314891fcf46befc3478 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/094_TilemapRenderer_MixedNormals.unity b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/094_TilemapRenderer_MixedNormals.unity new file mode 100644 index 00000000000..3431ba3d12d --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/094_TilemapRenderer_MixedNormals.unity @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:789b240465c38484c884b266abb362154d221444b3a9f7d4bcb6415a730d1c9b +size 55068 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/094_TilemapRenderer_MixedNormals.unity.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/094_TilemapRenderer_MixedNormals.unity.meta new file mode 100644 index 00000000000..35c755b7475 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/094_TilemapRenderer_MixedNormals.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 5267a485cd7a7834d90144e4318abe28 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/094_TilemapRenderer_MixedNormals/Auto Tile (3x3).meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/094_TilemapRenderer_MixedNormals/Auto Tile (3x3).meta new file mode 100644 index 00000000000..b16c7759b71 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/094_TilemapRenderer_MixedNormals/Auto Tile (3x3).meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9ed401fbf5ce80648b7b285bf047cb68 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/094_TilemapRenderer_MixedNormals/Auto Tile (3x3)/Sprites.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/094_TilemapRenderer_MixedNormals/Auto Tile (3x3)/Sprites.meta new file mode 100644 index 00000000000..43149432487 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/094_TilemapRenderer_MixedNormals/Auto Tile (3x3)/Sprites.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 897d330b999b7b34b962cc3fd2a1bb45 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/094_TilemapRenderer_MixedNormals/Auto Tile (3x3)/Sprites/Sprite_Tiles_Stone_walkway.png b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/094_TilemapRenderer_MixedNormals/Auto Tile (3x3)/Sprites/Sprite_Tiles_Stone_walkway.png new file mode 100644 index 00000000000..12d319a6bd8 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/094_TilemapRenderer_MixedNormals/Auto Tile (3x3)/Sprites/Sprite_Tiles_Stone_walkway.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:622aa68ff287990e78759884baef8bf10c55e6276b4cf5643b3f03ee1a8eaca9 +size 111982 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/094_TilemapRenderer_MixedNormals/Auto Tile (3x3)/Sprites/Sprite_Tiles_Stone_walkway.png.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/094_TilemapRenderer_MixedNormals/Auto Tile (3x3)/Sprites/Sprite_Tiles_Stone_walkway.png.meta new file mode 100644 index 00000000000..b31053a8b21 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/094_TilemapRenderer_MixedNormals/Auto Tile (3x3)/Sprites/Sprite_Tiles_Stone_walkway.png.meta @@ -0,0 +1,1247 @@ +fileFormatVersion: 2 +guid: 4d79f333fa64f324884118db2c0d5365 +AssetOrigin: + serializedVersion: 1 + productId: 259218 + packageName: Happy Harvest - 2D Sample Project + packageVersion: 1.03 + assetPath: Assets/HappyHarvest/Art/Tiles/Walkway/Sprites/Sprite_Tiles_Stone_walkway.png + uploadId: 678010 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 2 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 64 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationMethod: 0 + spriteTessellationDetail: -1 + spriteGeometrySubdivision: -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: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Server + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: + - serializedVersion: 2 + name: stone_walkway_tiles_0 + rect: + serializedVersion: 2 + x: 0 + y: 320 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: b0b9b6ae8b4c6f04aaaaefa3a4a33ed9 + internalID: 914201895 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: stone_walkway_tiles_1 + rect: + serializedVersion: 2 + x: 64 + y: 320 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: a3a3968b37ff84e48ac989afa3b1b0c4 + internalID: -293882661 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: stone_walkway_tiles_2 + rect: + serializedVersion: 2 + x: 128 + y: 320 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: a9307fa736784e14a8b2ec38c5b08470 + internalID: 135061847 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: stone_walkway_tiles_3 + rect: + serializedVersion: 2 + x: 192 + y: 320 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 1d361a5715cd70c42b6ad44c2a4e95cc + internalID: 1581030452 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: stone_walkway_tiles_4 + rect: + serializedVersion: 2 + x: 256 + y: 320 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: b9eee633730a7cf45bfdfff2d4269949 + internalID: 1433369108 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: stone_walkway_tiles_5 + rect: + serializedVersion: 2 + x: 320 + y: 320 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 7feced46418753e4586289b560f8f391 + internalID: -1579232104 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: stone_walkway_tiles_6 + rect: + serializedVersion: 2 + x: 384 + y: 320 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 5a8fca3c37e8ff9499b2b6da8ead5e69 + internalID: 970542655 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: stone_walkway_tiles_7 + rect: + serializedVersion: 2 + x: 448 + y: 320 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 0730a0e64a792fc419162f506851d40d + internalID: -1338165353 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: stone_walkway_tiles_8 + rect: + serializedVersion: 2 + x: 0 + y: 256 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 92609a1fe22e66c42b6bab15760e18fd + internalID: -571793138 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: stone_walkway_tiles_9 + rect: + serializedVersion: 2 + x: 64 + y: 256 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 7484952381d05bd4e94ccd80cb0b4da6 + internalID: 716792793 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: stone_walkway_tiles_10 + rect: + serializedVersion: 2 + x: 128 + y: 256 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: ed23b161eb2194e4abb067a16eb9dbb4 + internalID: -148330404 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: stone_walkway_tiles_11 + rect: + serializedVersion: 2 + x: 192 + y: 256 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 31cb396e59e80e24a965a84b26b3c83f + internalID: 1376527618 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: stone_walkway_tiles_12 + rect: + serializedVersion: 2 + x: 256 + y: 256 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: e0a85663237f2fd4ab2f953c78fa1fb5 + internalID: -591530959 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: stone_walkway_tiles_13 + rect: + serializedVersion: 2 + x: 320 + y: 256 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: c951905e7e0e07a43bd629c2044d788c + internalID: 828671436 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: stone_walkway_tiles_14 + rect: + serializedVersion: 2 + x: 384 + y: 256 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: aec70c6063e51d745a1a363636f63c91 + internalID: -106529778 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: stone_walkway_tiles_15 + rect: + serializedVersion: 2 + x: 448 + y: 256 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 2ee7b54e736b05547a1dca4fecd9ef74 + internalID: -276163912 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: stone_walkway_tiles_16 + rect: + serializedVersion: 2 + x: 0 + y: 192 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 9fbfb44900508c24987b0e850d95997a + internalID: 238837784 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: stone_walkway_tiles_17 + rect: + serializedVersion: 2 + x: 64 + y: 192 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 6fd439cef6596ea4594dde96a8df74ed + internalID: 503638690 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: stone_walkway_tiles_18 + rect: + serializedVersion: 2 + x: 128 + y: 192 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 73fe7d7231f62cd42889e6302ee50320 + internalID: 487287888 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: stone_walkway_tiles_19 + rect: + serializedVersion: 2 + x: 192 + y: 192 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 3447075d7bccb5544b2a0ac0e5c3db13 + internalID: 20402954 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: stone_walkway_tiles_20 + rect: + serializedVersion: 2 + x: 256 + y: 192 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: d296207f2ac4c0a48b64c3b97087f5ee + internalID: 541196268 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: stone_walkway_tiles_21 + rect: + serializedVersion: 2 + x: 320 + y: 192 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 1effaec773efd794db0fe955f5ed3087 + internalID: 934845500 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: stone_walkway_tiles_22 + rect: + serializedVersion: 2 + x: 384 + y: 192 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 0eb4c97243b7c844f9f949bb0902cd77 + internalID: 1205498639 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: stone_walkway_tiles_23 + rect: + serializedVersion: 2 + x: 448 + y: 192 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: e617a8ea52e98004bb445a0534ba7c73 + internalID: 1635352959 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: stone_walkway_tiles_24 + rect: + serializedVersion: 2 + x: 0 + y: 128 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: abd54d1ab89f6d94899c479fd75e6cd8 + internalID: 1563292004 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: stone_walkway_tiles_25 + rect: + serializedVersion: 2 + x: 64 + y: 128 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 6d8b45033e8eeff4397a7de8c6a790d0 + internalID: 1188293614 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: stone_walkway_tiles_26 + rect: + serializedVersion: 2 + x: 128 + y: 128 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 951bc2d1199fd2c4c86511c34595ffa3 + internalID: 33283132 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: stone_walkway_tiles_27 + rect: + serializedVersion: 2 + x: 192 + y: 128 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 2e0aed1581d58ce45a8101e0377d2c4b + internalID: -1223526880 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: stone_walkway_tiles_28 + rect: + serializedVersion: 2 + x: 256 + y: 128 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 4532c121068ede9428a23f2601e19d7b + internalID: 1755538766 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: stone_walkway_tiles_29 + rect: + serializedVersion: 2 + x: 320 + y: 128 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: a89b672af85c19a4b83dfb0be77faba6 + internalID: -879895356 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: stone_walkway_tiles_30 + rect: + serializedVersion: 2 + x: 384 + y: 128 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 63bef05d7dc4a3041b71d08f2a39ae80 + internalID: 407571894 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: stone_walkway_tiles_31 + rect: + serializedVersion: 2 + x: 448 + y: 128 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 1363fd4139d00d7498fc65dc87f19271 + internalID: -199454101 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: stone_walkway_tiles_32 + rect: + serializedVersion: 2 + x: 0 + y: 64 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: a3f9919213b903d43a3d28c0289573a0 + internalID: 1959839862 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: stone_walkway_tiles_33 + rect: + serializedVersion: 2 + x: 64 + y: 64 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 83b63e4861b4efa49b151e7bdcb39422 + internalID: 544386766 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: stone_walkway_tiles_34 + rect: + serializedVersion: 2 + x: 128 + y: 64 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 093a4e80aff5a2d4f9643107889df20d + internalID: 1202592017 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: stone_walkway_tiles_35 + rect: + serializedVersion: 2 + x: 192 + y: 64 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 5f84f6045cff8664dacbf3a3e556613e + internalID: 481929387 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: stone_walkway_tiles_36 + rect: + serializedVersion: 2 + x: 256 + y: 64 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 538d063320358e5438a83727d489629c + internalID: -2141948983 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: stone_walkway_tiles_37 + rect: + serializedVersion: 2 + x: 320 + y: 64 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 25a8941de04a2f4419f9d25155ede259 + internalID: -1286825900 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: stone_walkway_tiles_38 + rect: + serializedVersion: 2 + x: 384 + y: 64 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 0c867cda0e37a8e44b7e255d406db5ca + internalID: 346885376 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: stone_walkway_tiles_39 + rect: + serializedVersion: 2 + x: 448 + y: 64 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: be14f408077d1be419a7e0279355eee2 + internalID: 393642147 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: stone_walkway_tiles_40 + rect: + serializedVersion: 2 + x: 0 + y: 0 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: ec3e438c7d4bfc042aa2a30895863f33 + internalID: -1328446438 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: stone_walkway_tiles_41 + rect: + serializedVersion: 2 + x: 64 + y: 0 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: e5205a12b7d4cf4408e197a3d9656f0d + internalID: 1982103768 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: stone_walkway_tiles_42 + rect: + serializedVersion: 2 + x: 128 + y: 0 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 953965e57bbec944083144b88fc9787c + internalID: -1735922694 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: stone_walkway_tiles_43 + rect: + serializedVersion: 2 + x: 192 + y: 0 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 3a0680bf13a3913468693dc8f0ee7fa2 + internalID: -464750697 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: stone_walkway_tiles_44 + rect: + serializedVersion: 2 + x: 256 + y: 0 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 5651ec14168aaec4a9aae980abc99ed4 + internalID: -1694378200 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: stone_walkway_tiles_45 + rect: + serializedVersion: 2 + x: 320 + y: 0 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 1e9dd7c1d35b8aa49af1011733096d84 + internalID: 801115478 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: stone_walkway_tiles_46 + rect: + serializedVersion: 2 + x: 384 + y: 0 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 8017caba50b8140478c53cd0c9ce7d7c + internalID: -1197390934 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: stone_walkway_tiles_47 + rect: + serializedVersion: 2 + x: 448 + y: 0 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 7dae2ac3281e2044691bedcaa6f9057b + internalID: 1228757773 + vertices: [] + indices: + edges: [] + weights: [] + outline: [] + customData: + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: + - texture: {fileID: 2800000, guid: 7c2969d91376daf41868aaf74a76214c, type: 3} + name: _NormalMap + - texture: {fileID: 2800000, guid: 077024ef9839da8459e5c78c430e80d3, type: 3} + name: _MaskTex + spriteCustomMetadata: + entries: [] + nameFileIdTable: + stone_walkway_tiles_0: 914201895 + stone_walkway_tiles_1: -293882661 + stone_walkway_tiles_10: -148330404 + stone_walkway_tiles_11: 1376527618 + stone_walkway_tiles_12: -591530959 + stone_walkway_tiles_13: 828671436 + stone_walkway_tiles_14: -106529778 + stone_walkway_tiles_15: -276163912 + stone_walkway_tiles_16: 238837784 + stone_walkway_tiles_17: 503638690 + stone_walkway_tiles_18: 487287888 + stone_walkway_tiles_19: 20402954 + stone_walkway_tiles_2: 135061847 + stone_walkway_tiles_20: 541196268 + stone_walkway_tiles_21: 934845500 + stone_walkway_tiles_22: 1205498639 + stone_walkway_tiles_23: 1635352959 + stone_walkway_tiles_24: 1563292004 + stone_walkway_tiles_25: 1188293614 + stone_walkway_tiles_26: 33283132 + stone_walkway_tiles_27: -1223526880 + stone_walkway_tiles_28: 1755538766 + stone_walkway_tiles_29: -879895356 + stone_walkway_tiles_3: 1581030452 + stone_walkway_tiles_30: 407571894 + stone_walkway_tiles_31: -199454101 + stone_walkway_tiles_32: 1959839862 + stone_walkway_tiles_33: 544386766 + stone_walkway_tiles_34: 1202592017 + stone_walkway_tiles_35: 481929387 + stone_walkway_tiles_36: -2141948983 + stone_walkway_tiles_37: -1286825900 + stone_walkway_tiles_38: 346885376 + stone_walkway_tiles_39: 393642147 + stone_walkway_tiles_4: 1433369108 + stone_walkway_tiles_40: -1328446438 + stone_walkway_tiles_41: 1982103768 + stone_walkway_tiles_42: -1735922694 + stone_walkway_tiles_43: -464750697 + stone_walkway_tiles_44: -1694378200 + stone_walkway_tiles_45: 801115478 + stone_walkway_tiles_46: -1197390934 + stone_walkway_tiles_47: 1228757773 + stone_walkway_tiles_5: -1579232104 + stone_walkway_tiles_6: 970542655 + stone_walkway_tiles_7: -1338165353 + stone_walkway_tiles_8: -571793138 + stone_walkway_tiles_9: 716792793 + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/094_TilemapRenderer_MixedNormals/Auto Tile (3x3)/Sprites/Sprite_Tiles_Stone_walkway_mask.png b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/094_TilemapRenderer_MixedNormals/Auto Tile (3x3)/Sprites/Sprite_Tiles_Stone_walkway_mask.png new file mode 100644 index 00000000000..3571b7286c8 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/094_TilemapRenderer_MixedNormals/Auto Tile (3x3)/Sprites/Sprite_Tiles_Stone_walkway_mask.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8cb5e81e9b83e4022b335e291f8b88bd7796204a802bc01d629736ddb8ed10f2 +size 2668 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/094_TilemapRenderer_MixedNormals/Auto Tile (3x3)/Sprites/Sprite_Tiles_Stone_walkway_mask.png.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/094_TilemapRenderer_MixedNormals/Auto Tile (3x3)/Sprites/Sprite_Tiles_Stone_walkway_mask.png.meta new file mode 100644 index 00000000000..f9a5bdd61a0 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/094_TilemapRenderer_MixedNormals/Auto Tile (3x3)/Sprites/Sprite_Tiles_Stone_walkway_mask.png.meta @@ -0,0 +1,139 @@ +fileFormatVersion: 2 +guid: 077024ef9839da8459e5c78c430e80d3 +AssetOrigin: + serializedVersion: 1 + productId: 259218 + packageName: Happy Harvest - 2D Sample Project + packageVersion: 1.03 + assetPath: Assets/HappyHarvest/Art/Tiles/Walkway/Sprites/Sprite_Tiles_Stone_walkway_mask.png + uploadId: 678010 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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 + spriteTessellationMethod: 0 + spriteTessellationDetail: -1 + spriteGeometrySubdivision: -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: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Server + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + customData: + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + 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/094_TilemapRenderer_MixedNormals/Auto Tile (3x3)/Sprites/Sprite_Tiles_Stone_walkway_normal.png b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/094_TilemapRenderer_MixedNormals/Auto Tile (3x3)/Sprites/Sprite_Tiles_Stone_walkway_normal.png new file mode 100644 index 00000000000..8654ea122a6 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/094_TilemapRenderer_MixedNormals/Auto Tile (3x3)/Sprites/Sprite_Tiles_Stone_walkway_normal.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:96240c5817c149703cd72697709f360980a5f688088644caed767f53122ed74a +size 134602 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/094_TilemapRenderer_MixedNormals/Auto Tile (3x3)/Sprites/Sprite_Tiles_Stone_walkway_normal.png.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/094_TilemapRenderer_MixedNormals/Auto Tile (3x3)/Sprites/Sprite_Tiles_Stone_walkway_normal.png.meta new file mode 100644 index 00000000000..ec9b4cfe2a1 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/094_TilemapRenderer_MixedNormals/Auto Tile (3x3)/Sprites/Sprite_Tiles_Stone_walkway_normal.png.meta @@ -0,0 +1,131 @@ +fileFormatVersion: 2 +guid: 7c2969d91376daf41868aaf74a76214c +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + 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: 1 + 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: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 259218 + packageName: Happy Harvest - 2D Sample Project + packageVersion: 1.03 + assetPath: Assets/HappyHarvest/Art/Tiles/Walkway/Sprites/Sprite_Tiles_Stone_walkway_normal.png + uploadId: 678010 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/094_TilemapRenderer_MixedNormals/Auto Tile (3x3)/Tiles.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/094_TilemapRenderer_MixedNormals/Auto Tile (3x3)/Tiles.meta new file mode 100644 index 00000000000..8cf634a8d61 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/094_TilemapRenderer_MixedNormals/Auto Tile (3x3)/Tiles.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b1fa5a99a24ec6a4ab55a3032f941432 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/094_TilemapRenderer_MixedNormals/Auto Tile (3x3)/Tiles/AutoTile_Walkway.asset b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/094_TilemapRenderer_MixedNormals/Auto Tile (3x3)/Tiles/AutoTile_Walkway.asset new file mode 100644 index 00000000000..e8e08948d81 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/094_TilemapRenderer_MixedNormals/Auto Tile (3x3)/Tiles/AutoTile_Walkway.asset @@ -0,0 +1,219 @@ +%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: b08ceb78e3b2495b8d808a5860e66794, type: 3} + m_Name: AutoTile_Walkway + m_EditorClassIdentifier: Unity.2D.Tilemap.Extras::UnityEngine.Tilemaps.AutoTile + m_DefaultSprite: {fileID: -1223526880, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + m_DefaultGameObject: {fileID: 0} + m_DefaultColliderType: 1 + m_MaskType: 1 + m_Random: 0 + m_PhysicsShapeCheck: 0 + m_AutoTileDictionary: + keyData: 00000000360000003f0000001b00000012000000320000003a0000001a000000fa010000b6010000ff010000db00000092000000b2000000ba0000009a000000bf000000b0010000f8010000d800000090000000b0000000b800000098000000300000003800000018000000b2010000da000000fa000000ba0100003b0000003e000000fb010000fe010000b60000009b000000bb000000be000000f8000000b8010000ff000000bf010000fe000000bb010000fb000000be01000010000000 + valueData: + - spriteList: + - {fileID: 1635352959, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + textureList: + - {fileID: 2800000, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + - spriteList: + - {fileID: 914201895, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + textureList: + - {fileID: 2800000, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + - spriteList: + - {fileID: -293882661, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + textureList: + - {fileID: 2800000, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + - spriteList: + - {fileID: 135061847, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + textureList: + - {fileID: 2800000, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + - spriteList: + - {fileID: 1581030452, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + textureList: + - {fileID: 2800000, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + - spriteList: + - {fileID: 1433369108, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + textureList: + - {fileID: 2800000, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + - spriteList: + - {fileID: -1579232104, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + textureList: + - {fileID: 2800000, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + - spriteList: + - {fileID: 970542655, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + textureList: + - {fileID: 2800000, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + - spriteList: + - {fileID: -1338165353, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + textureList: + - {fileID: 2800000, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + - spriteList: + - {fileID: -571793138, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + textureList: + - {fileID: 2800000, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + - spriteList: + - {fileID: 716792793, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + textureList: + - {fileID: 2800000, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + - spriteList: + - {fileID: -148330404, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + textureList: + - {fileID: 2800000, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + - spriteList: + - {fileID: 1376527618, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + textureList: + - {fileID: 2800000, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + - spriteList: + - {fileID: -591530959, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + textureList: + - {fileID: 2800000, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + - spriteList: + - {fileID: 828671436, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + textureList: + - {fileID: 2800000, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + - spriteList: + - {fileID: -106529778, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + textureList: + - {fileID: 2800000, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + - spriteList: + - {fileID: -276163912, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + textureList: + - {fileID: 2800000, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + - spriteList: + - {fileID: 238837784, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + textureList: + - {fileID: 2800000, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + - spriteList: + - {fileID: 503638690, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + textureList: + - {fileID: 2800000, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + - spriteList: + - {fileID: 487287888, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + textureList: + - {fileID: 2800000, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + - spriteList: + - {fileID: 20402954, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + textureList: + - {fileID: 2800000, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + - spriteList: + - {fileID: 541196268, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + textureList: + - {fileID: 2800000, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + - spriteList: + - {fileID: 934845500, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + textureList: + - {fileID: 2800000, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + - spriteList: + - {fileID: 1205498639, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + textureList: + - {fileID: 2800000, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + - spriteList: + - {fileID: 1563292004, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + textureList: + - {fileID: 2800000, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + - spriteList: + - {fileID: 1188293614, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + textureList: + - {fileID: 2800000, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + - spriteList: + - {fileID: 33283132, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + textureList: + - {fileID: 2800000, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + - spriteList: + - {fileID: 1755538766, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + textureList: + - {fileID: 2800000, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + - spriteList: + - {fileID: -879895356, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + textureList: + - {fileID: 2800000, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + - spriteList: + - {fileID: 407571894, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + textureList: + - {fileID: 2800000, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + - spriteList: + - {fileID: -199454101, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + textureList: + - {fileID: 2800000, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + - spriteList: + - {fileID: 1959839862, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + textureList: + - {fileID: 2800000, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + - spriteList: + - {fileID: 544386766, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + textureList: + - {fileID: 2800000, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + - spriteList: + - {fileID: 1202592017, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + textureList: + - {fileID: 2800000, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + - spriteList: + - {fileID: 481929387, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + textureList: + - {fileID: 2800000, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + - spriteList: + - {fileID: -2141948983, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + textureList: + - {fileID: 2800000, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + - spriteList: + - {fileID: -1286825900, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + textureList: + - {fileID: 2800000, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + - spriteList: + - {fileID: 346885376, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + textureList: + - {fileID: 2800000, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + - spriteList: + - {fileID: 393642147, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + textureList: + - {fileID: 2800000, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + - spriteList: + - {fileID: -1328446438, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + textureList: + - {fileID: 2800000, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + - spriteList: + - {fileID: 1982103768, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + textureList: + - {fileID: 2800000, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + - spriteList: + - {fileID: -1735922694, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + textureList: + - {fileID: 2800000, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + - spriteList: + - {fileID: -464750697, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + textureList: + - {fileID: 2800000, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + - spriteList: + - {fileID: -1694378200, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + textureList: + - {fileID: 2800000, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + - spriteList: + - {fileID: 801115478, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + textureList: + - {fileID: 2800000, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + - spriteList: + - {fileID: -1197390934, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + textureList: + - {fileID: 2800000, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + - spriteList: + - {fileID: 1228757773, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + textureList: + - {fileID: 2800000, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + - spriteList: + - {fileID: -1223526880, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + textureList: + - {fileID: 2800000, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + m_TextureList: + - {fileID: 2800000, guid: 4d79f333fa64f324884118db2c0d5365, type: 3} + m_TextureScaleList: + - 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/094_TilemapRenderer_MixedNormals/Auto Tile (3x3)/Tiles/AutoTile_Walkway.asset.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/094_TilemapRenderer_MixedNormals/Auto Tile (3x3)/Tiles/AutoTile_Walkway.asset.meta new file mode 100644 index 00000000000..4507b021fa4 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/094_TilemapRenderer_MixedNormals/Auto Tile (3x3)/Tiles/AutoTile_Walkway.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: dd835b8053bad4bd2be8ad10f2d94333 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Test/Runtime/Renderer2DBackbufferDepthTests.cs b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Test/Runtime/Renderer2DBackbufferDepthTests.cs new file mode 100644 index 00000000000..95946aed7c8 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Test/Runtime/Renderer2DBackbufferDepthTests.cs @@ -0,0 +1,200 @@ +using System.Collections; +using System.Collections.Generic; +using NUnit.Framework; +using UnityEngine; +using UnityEngine.Rendering; +using UnityEngine.Rendering.RenderGraphModule; +using UnityEngine.Rendering.Universal; +using UnityEngine.TestTools; + +// Verifies what the 2D renderer actually puts in the frame's resources when depth usage is disallowed: the +// back buffer depth must not be imported, and the rest of the frame must still record without errors (the +// overlay UI pass in particular reads UniversalResourceData.backBufferDepth and has to cope with it being +// invalid). +// +// A back buffer with no depth/stencil is not something a test can arrange - it is decided when the surface is +// created - so the disallowed case is driven here through the renderer's own "Depth/Stencil Buffer" setting, +// which reaches the exact same branch in Renderer2D.CreateRenderGraphCameraRenderTargets. The back buffer's own +// contribution to the decision is covered by Renderer2DDepthUsageTests. +// +// All of this is render graph territory: this project also runs its graphics tests in Compatibility Mode, where +// the pipeline builds the frame through the legacy Setup/Execute path and none of these resources exist, so the +// fixture skips itself there. +[TestFixture] +class Renderer2DBackbufferDepthTests +{ + const int k_Renderer2DIndex = 2; // 2D Renderer. See the list of Renderers in CommonAssets/UniversalRPAsset. + + readonly List m_DisabledCameras = new List(); + readonly BackbufferDepthProbePass m_ProbePass = new BackbufferDepthProbePass(); + + GameObject m_CameraObj; + Camera m_Camera; + UniversalAdditionalCameraData m_CameraData; + Renderer2DData m_RendererData; + bool m_PreviousUseDepthStencilBuffer; + + [SetUp] + public void SetUp() + { + if (GraphicsSettings.currentRenderPipeline is not UniversalRenderPipelineAsset urpAsset) + { + Assert.Ignore("These tests only run when URP is the active render pipeline."); + return; + } + + // Under XR the renderer imports the XR-owned render target rather than the back buffer, so there is + // nothing to assert about the back buffer depth here. + if (XRGraphicsAutomatedTests.enabled) + { + Assert.Ignore("XR is active; the 2D renderer does not import the back buffer depth in that case."); + return; + } + + // In Compatibility Mode the pipeline runs the legacy Setup/Execute path instead of + // Renderer2D.CreateRenderGraphCameraRenderTargets, so the frame has no UniversalResourceData to probe and + // nothing here to assert. useRenderGraph is the flag the pipeline actually dispatches on: it is cached when + // the pipeline is created, so it can differ from RenderGraphSettings.enableRenderCompatibilityMode once + // RenderGraphGraphicsAutomatedTests.enabled has been flipped without recreating the pipeline - which is what + // the graphics test fixtures in this project do. Without URP_COMPATIBILITY_MODE the flag does not exist and + // Render Graph is always on. +#if URP_COMPATIBILITY_MODE + if (!UniversalRenderPipeline.useRenderGraph) + { + Assert.Ignore("Compatibility Mode (Render Graph disabled) is active; the 2D renderer does not build the frame's render graph resources."); + return; + } +#endif + + Assert.Greater(urpAsset.rendererDataList.Length, k_Renderer2DIndex, "The render pipeline asset no longer has a renderer at the 2D renderer index. Update this test to match."); + m_RendererData = urpAsset.rendererDataList[k_Renderer2DIndex] as Renderer2DData; + Assert.NotNull(m_RendererData, $"Renderer {k_Renderer2DIndex} of the render pipeline asset is not a 2D renderer. Update this test to match."); + m_PreviousUseDepthStencilBuffer = m_RendererData.useDepthStencilBuffer; + + // Frame isolation: only the test camera should render while the probe is installed. + foreach (var camera in Object.FindObjectsByType(FindObjectsInactive.Exclude, FindObjectsSortMode.None)) + { + if (!camera.enabled) + continue; + + camera.enabled = false; + m_DisabledCameras.Add(camera); + } + + m_CameraObj = new GameObject("Backbuffer Depth Test Camera"); + m_Camera = m_CameraObj.AddComponent(); + m_CameraData = m_CameraObj.AddComponent(); + + // Render straight to the back buffer: no target texture, no stack and no post-processing, so the + // renderer does not create intermediate targets. + m_Camera.targetTexture = null; + m_Camera.allowHDR = false; + m_CameraData.SetRenderer(k_Renderer2DIndex); + m_CameraData.renderType = CameraRenderType.Base; + m_CameraData.renderPostProcessing = false; + + RenderPipelineManager.beginCameraRendering += OnBeginCameraRendering; + } + + [TearDown] + public void TearDown() + { + RenderPipelineManager.beginCameraRendering -= OnBeginCameraRendering; + + if (m_RendererData != null) + Renderer2DDepthUsageTests.SetUseDepthStencilBuffer(m_RendererData, m_PreviousUseDepthStencilBuffer); + + if (m_CameraObj != null) + Object.DestroyImmediate(m_CameraObj); + + foreach (var camera in m_DisabledCameras) + { + if (camera != null) + camera.enabled = true; + } + m_DisabledCameras.Clear(); + } + + [UnityTest] + public IEnumerator BackbufferDepthIsImportedWhenDepthUsageIsAllowed() + { + Renderer2DDepthUsageTests.SetUseDepthStencilBuffer(m_RendererData, true); + + yield return RecordFrame(); + + // With the renderer setting on, the import follows the back buffer: there is nothing to import on a + // build where PlayerSettings.disableDepthAndStencilBuffers left it without a depth/stencil buffer. + Assert.AreEqual(Graphics.backBufferHasDepthStencil, m_ProbePass.backBufferDepthIsValid, + "The imported back buffer depth did not match whether the back buffer has a depth/stencil buffer."); + } + + [UnityTest] + public IEnumerator BackbufferDepthIsNotImportedWhenDepthUsageIsDisallowed() + { + Renderer2DDepthUsageTests.SetUseDepthStencilBuffer(m_RendererData, false); + + yield return RecordFrame(); + + Assert.IsFalse(m_ProbePass.backBufferDepthIsValid, "The 2D renderer imported the back buffer depth even though depth usage is disallowed."); + } + + [UnityTest] + public IEnumerator RenderingSucceedsWhenDepthUsageIsDisallowed() + { + Renderer2DDepthUsageTests.SetUseDepthStencilBuffer(m_RendererData, false); + + // Passes that read the back buffer depth - the overlay UI pass above all - must skip themselves rather + // than record against an invalid handle. Any error or exception they log fails this test. + yield return RecordFrame(); + yield return null; + } + + // Renders frames until the probe pass has recorded one with the current settings. + IEnumerator RecordFrame() + { + // The settings change lands on the next frame the renderer records, so drop the in-flight one first. + yield return null; + + m_ProbePass.Reset(); + yield return null; + + Assert.IsTrue(m_ProbePass.recorded, "The probe pass never recorded; the 2D renderer did not render the test camera."); + } + + void OnBeginCameraRendering(ScriptableRenderContext context, Camera camera) + { + if (camera != m_Camera) + return; + + m_CameraData.scriptableRenderer.EnqueuePass(m_ProbePass); + } + + // Reads the frame's back buffer depth handle at record time; it adds no render pass of its own. + class BackbufferDepthProbePass : ScriptableRenderPass + { + public bool recorded; + public bool backBufferDepthIsValid; + + public BackbufferDepthProbePass() + { + // The 2D renderer maps any event up to BeforeRenderingTransparents onto + // RenderPassEvent2D.BeforeRendering, which it records right after CreateResources - so the probe + // sees the back buffer depth as CreateResources left it. + renderPassEvent = RenderPassEvent.AfterRenderingOpaques; + } + + public void Reset() + { + recorded = false; + backBufferDepthIsValid = false; + } + + public override void RecordRenderGraph(RenderGraph renderGraph, ContextContainer frameData) + { + var resourceData = frameData.Get(); + + recorded = true; + backBufferDepthIsValid = resourceData.backBufferDepth.IsValid(); + } + } +} diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Test/Runtime/Renderer2DBackbufferDepthTests.cs.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Test/Runtime/Renderer2DBackbufferDepthTests.cs.meta new file mode 100644 index 00000000000..1a278427739 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Test/Runtime/Renderer2DBackbufferDepthTests.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: cd25264fd81a45d1b14927bef89166c2 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Test/Runtime/Renderer2DDepthUsageTests.cs b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Test/Runtime/Renderer2DDepthUsageTests.cs new file mode 100644 index 00000000000..669d1f79e4b --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Test/Runtime/Renderer2DDepthUsageTests.cs @@ -0,0 +1,137 @@ +using System.Reflection; +using NUnit.Framework; +using UnityEngine; +using UnityEngine.Experimental.Rendering; +using UnityEngine.Rendering; +using UnityEngine.Rendering.Universal; + +// Covers Renderer2D.IsDepthUsageAllowed, which decides whether the 2D renderer uses a depth/stencil buffer at +// all. It combines three conditions: the renderer's own "Depth/Stencil Buffer" setting, a 3D render texture +// target (which cannot carry depth/stencil), and whether the back buffer has a depth/stencil buffer. +// +// The renderer setting is driven here by writing Renderer2DData's serialized field. The back buffer's state is +// not something the test can set - it is decided when the surface is created, from +// PlayerSettings.disableDepthAndStencilBuffers on the graphics APIs that act on it - so expectations are +// stated against Graphics.backBufferHasDepthStencil, which is what that condition contributes wherever the +// test happens to run. That keeps every case meaningful in the editor and in player builds alike. +[TestFixture] +class Renderer2DDepthUsageTests +{ + const string k_UseDepthStencilBufferField = "m_UseDepthStencilBuffer"; + const int k_Renderer2DIndex = 2; // 2D Renderer. See the list of Renderers in CommonAssets/UniversalRPAsset. + + ContextContainer m_FrameData; + UniversalCameraData m_CameraData; + Renderer2DData m_RendererData; + RenderTexture m_TargetTexture; + bool m_PreviousUseDepthStencilBuffer; + + [SetUp] + public void SetUp() + { + // Use the pipeline asset's 2D renderer data rather than ScriptableObject.CreateInstance: a fresh instance + // has no light blend styles outside the editor (they are only built by editor-only code), and + // Renderer2DData.OnEnable dereferences them when URP_COMPATIBILITY_MODE is defined. + if (GraphicsSettings.currentRenderPipeline is not UniversalRenderPipelineAsset urpAsset) + { + Assert.Ignore("These tests only run when URP is the active render pipeline."); + return; + } + + Assert.Greater(urpAsset.rendererDataList.Length, k_Renderer2DIndex, "The render pipeline asset no longer has a renderer at the 2D renderer index. Update this test to match."); + m_RendererData = urpAsset.rendererDataList[k_Renderer2DIndex] as Renderer2DData; + Assert.NotNull(m_RendererData, $"Renderer {k_Renderer2DIndex} of the render pipeline asset is not a 2D renderer. Update this test to match."); + m_PreviousUseDepthStencilBuffer = m_RendererData.useDepthStencilBuffer; + + m_FrameData = new ContextContainer(); + m_CameraData = m_FrameData.Create(); + } + + [TearDown] + public void TearDown() + { + if (m_CameraData != null) + m_CameraData.targetTexture = null; + + if (m_TargetTexture != null) + { + m_TargetTexture.Release(); + Object.DestroyImmediate(m_TargetTexture); + m_TargetTexture = null; + } + + // The renderer data belongs to the pipeline asset, so restore it rather than destroy it. + if (m_RendererData != null) + SetUseDepthStencilBuffer(m_RendererData, m_PreviousUseDepthStencilBuffer); + + m_FrameData?.Dispose(); + } + + [Test] + public void IsDepthUsageAllowed_FollowsTheRendererDepthStencilBufferSetting([Values(false, true)] bool useDepthStencilBuffer) + { + SetUseDepthStencilBuffer(m_RendererData, useDepthStencilBuffer); + + bool expected = useDepthStencilBuffer && Graphics.backBufferHasDepthStencil; + + Assert.AreEqual(expected, Renderer2D.IsDepthUsageAllowed(m_FrameData, m_RendererData)); + } + + [Test] + public void IsDepthUsageAllowed_FollowsTheBackBufferDepthStencil() + { + // With every other condition asking for depth, the back buffer decides. A build with + // PlayerSettings.disableDepthAndStencilBuffers enabled on a graphics API that acts on it lands here + // with no depth/stencil; everywhere else, including the editor, the back buffer keeps one. + SetUseDepthStencilBuffer(m_RendererData, true); + + Assert.AreEqual(Graphics.backBufferHasDepthStencil, Renderer2D.IsDepthUsageAllowed(m_FrameData, m_RendererData)); + } + + [Test] + public void IsDepthUsageAllowed_IsNotVetoedBy2DRenderTextureTargets() + { + // Only 3D render textures veto depth; a 2D one leaves the decision to the other conditions. + SetUseDepthStencilBuffer(m_RendererData, true); + m_CameraData.targetTexture = CreateTargetTexture(TextureDimension.Tex2D); + + Assert.AreEqual(Graphics.backBufferHasDepthStencil, Renderer2D.IsDepthUsageAllowed(m_FrameData, m_RendererData)); + } + + [Test] + public void IsDepthUsageAllowed_IsNotAllowedFor3DRenderTextureTargets() + { + // 3D render textures cannot have a depth/stencil buffer, so this vetoes the decision on its own even + // with everything else asking for depth. + SetUseDepthStencilBuffer(m_RendererData, true); + m_CameraData.targetTexture = CreateTargetTexture(TextureDimension.Tex3D); + + Assert.IsFalse(Renderer2D.IsDepthUsageAllowed(m_FrameData, m_RendererData)); + } + + RenderTexture CreateTargetTexture(TextureDimension dimension) + { + var descriptor = new RenderTextureDescriptor(4, 4) + { + dimension = dimension, + volumeDepth = dimension == TextureDimension.Tex3D ? 4 : 1, + graphicsFormat = GraphicsFormat.R8G8B8A8_UNorm, + depthStencilFormat = GraphicsFormat.None, + msaaSamples = 1 + }; + + m_TargetTexture = new RenderTexture(descriptor); + return m_TargetTexture; + } + + // Renderer2DData.useDepthStencilBuffer is a read-only view of a serialized field, so the test has to write + // the field. Kept in one place so a rename fails loudly instead of silently skipping the condition. + internal static void SetUseDepthStencilBuffer(Renderer2DData rendererData, bool value) + { + var field = typeof(Renderer2DData).GetField(k_UseDepthStencilBufferField, BindingFlags.Instance | BindingFlags.NonPublic); + Assert.NotNull(field, $"{nameof(Renderer2DData)}.{k_UseDepthStencilBufferField} no longer exists. Update this test to match."); + + field.SetValue(rendererData, value); + Assert.AreEqual(value, rendererData.useDepthStencilBuffer, $"{nameof(Renderer2DData)}.{k_UseDepthStencilBufferField} is no longer what useDepthStencilBuffer returns. Update this test to match."); + } +} diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Test/Runtime/Renderer2DDepthUsageTests.cs.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Test/Runtime/Renderer2DDepthUsageTests.cs.meta new file mode 100644 index 00000000000..676971cf07c --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Test/Runtime/Renderer2DDepthUsageTests.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 28c6feeebd6a465fa9afb71cf4aa367d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/VisualEffectGraph_HDRP/Assets/AllTests/Editor/Tests/PropertyRMTests.cs b/Tests/SRPTests/Projects/VisualEffectGraph_HDRP/Assets/AllTests/Editor/Tests/PropertyRMTests.cs index bf02d724ac6..90b4889d49b 100644 --- a/Tests/SRPTests/Projects/VisualEffectGraph_HDRP/Assets/AllTests/Editor/Tests/PropertyRMTests.cs +++ b/Tests/SRPTests/Projects/VisualEffectGraph_HDRP/Assets/AllTests/Editor/Tests/PropertyRMTests.cs @@ -3,8 +3,10 @@ using NUnit.Framework; +using UnityEditor.VFX.Block; using UnityEditor.VFX.Operator; using UnityEditor.VFX.UI; +using UnityEngine; using UnityEngine.TestTools; using UnityEngine.UIElements; using UnityEngine.VFX; @@ -54,5 +56,57 @@ public IEnumerator Undo_SliderChange() Assert.AreEqual(0f, value); Assert.AreEqual(0f, floatField.value); } + + [UnityTest, Description("Covers UUM-139398: a constant-fed color slot stays evaluable (not indeterminate) after reimport")] + public IEnumerator ColorSlot_FedByConstant_StaysEvaluable_AfterReimport() + { + var graph = VFXTestCommon.MakeTemporaryGraph(); + + var initContext = ScriptableObject.CreateInstance(); + graph.AddChild(initContext); + + var setColor = ScriptableObject.CreateInstance(); + setColor.SetSettingValue("attribute", "color"); + initContext.AddChild(setColor); + + var inlineVector3 = ScriptableObject.CreateInstance(); + inlineVector3.SetSettingValue("m_Type", (SerializableType)typeof(Vector3)); + inlineVector3.inputSlots[0].value = new Vector3(0.25f, 0.5f, 0.75f); + graph.AddChild(inlineVector3); + + var path = AssetDatabase.GetAssetPath(graph); + AssetDatabase.ImportAsset(path); + + var asset = AssetDatabase.LoadAssetAtPath(path); + Assert.IsTrue(VisualEffectAssetEditor.OnOpenVFX(asset.GetEntityId(), 0)); + var window = VFXViewWindow.GetWindow(asset, true); + window.LoadAsset(asset, null); + window.Show(); + yield return null; + + var controller = window.graphView.controller; + Assert.IsNotNull(controller); + + // Link the constant operator to the color input slot. + var colorSlot = setColor.inputSlots[0]; + Assert.IsTrue(inlineVector3.outputSlots[0].Link(colorSlot)); + yield return null; + yield return null; + + controller.RecompileExpressionGraphIfNeeded(); + Assert.IsTrue(controller.CanGetEvaluatedContent(colorSlot), + "Sanity: constant-fed color slot should be evaluable after linking."); + + // Reimport through the editor's save path; a stale expression context used to make this indeterminate. + window.graphView.OnSave(); + yield return null; + yield return null; + + controller.RecompileExpressionGraphIfNeeded(); + Assert.IsTrue(controller.CanGetEvaluatedContent(colorSlot), + "Constant-fed color slot must stay evaluable (not indeterminate) after reimport."); + + window.Close(); + } } } From cd7efdf7660159df69e762f9cd4e75b165759092 Mon Sep 17 00:00:00 2001 From: Reach Platform Support Date: Mon, 5 Oct 2026 21:16:10 +0000 Subject: [PATCH 20/49] [Port] [6000.3] [URP] [2D] [UUM-145892][7000.0] Fix intermediate texture not created when requested by render pass --- .../Runtime/2D/Rendergraph/Renderer2DRendergraph.cs | 1 + 1 file changed, 1 insertion(+) 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 98c79782771..de2d5022a85 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 @@ -195,6 +195,7 @@ private RenderPassInputSummary GetRenderPassInputs(UniversalCameraData cameraDat inputSummary.requiresDepthTexture |= needsDepth; inputSummary.requiresColorTexture |= needsColor; + inputSummary.requiresColorTexture |= pass.requiresIntermediateTexture; } // Volumetric shadow pass requires intermediate texture From fdbb14519fc18193c11c29148554b1c562a1c2f5 Mon Sep 17 00:00:00 2001 From: Reach Platform Support Date: Mon, 5 Oct 2026 21:16:12 +0000 Subject: [PATCH 21/49] [Port] [6000.3] [UUM-147747][UUM-148111][7000.0] Fix LineRenderer shader properties not set up on activation --- .../2D/Rendergraph/Renderer2DRendergraph.cs | 37 ++++++++----------- .../Assets/Test/Runtime/Renderer2DTests.cs | 7 +--- 2 files changed, 18 insertions(+), 26 deletions(-) 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 de2d5022a85..9f74719bf97 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 @@ -30,17 +30,14 @@ private struct ImportResourceSummary // TODO RENDERGRAPH: Once all cameras will run in a single RenderGraph we should remove all RTHandles and use per frame RG textures. // We use 2 camera color handles so we can handle the edge case when a pass might want to read and write the same target. // This is not allowed so we just swap the current target, this keeps camera stacking working and avoids an extra blit pass. - static int m_CurrentColorHandle = 0; - internal RTHandle[] m_RenderGraphCameraColorHandles = new RTHandle[] - { - null, null - }; + static int s_CurrentColorHandle = 0; + static readonly RTHandle[] s_RenderGraphCameraColorHandles = { null, null }; + internal static RTHandle s_RenderGraphCameraDepthHandle; + static RTHandle s_OffscreenUIColorHandle; - internal RTHandle m_RenderGraphCameraDepthHandle; RTHandle m_RenderGraphBackbufferColorHandle; RTHandle m_RenderGraphBackbufferDepthHandle; RTHandle m_CameraSortingLayerHandle; - static RTHandle m_OffscreenUIColorHandle; Material m_BlitMaterial; Material m_BlitHDRMaterial; @@ -78,16 +75,16 @@ private RTHandle currentRenderGraphCameraColorHandle { get { - return m_RenderGraphCameraColorHandles[m_CurrentColorHandle]; + return s_RenderGraphCameraColorHandles[s_CurrentColorHandle]; } } - // get the next m_RenderGraphCameraColorHandles and make it the new current for future accesses + // get the next s_RenderGraphCameraColorHandles and make it the new current for future accesses private RTHandle nextRenderGraphCameraColorHandle { get { - m_CurrentColorHandle = (m_CurrentColorHandle + 1) % 2; + s_CurrentColorHandle = (s_CurrentColorHandle + 1) % 2; return currentRenderGraphCameraColorHandle; } } @@ -468,8 +465,8 @@ void CreateResources(RenderGraph renderGraph) cameraTargetDescriptor.autoGenerateMips = false; cameraTargetDescriptor.depthStencilFormat = GraphicsFormat.None; - RenderingUtils.ReAllocateHandleIfNeeded(ref m_RenderGraphCameraColorHandles[0], cameraTargetDescriptor, cameraTargetFilterMode, TextureWrapMode.Clamp, name: "_CameraTargetAttachmentA"); - RenderingUtils.ReAllocateHandleIfNeeded(ref m_RenderGraphCameraColorHandles[1], cameraTargetDescriptor, cameraTargetFilterMode, TextureWrapMode.Clamp, name: "_CameraTargetAttachmentB"); + RenderingUtils.ReAllocateHandleIfNeeded(ref s_RenderGraphCameraColorHandles[0], cameraTargetDescriptor, cameraTargetFilterMode, TextureWrapMode.Clamp, name: "_CameraTargetAttachmentA"); + RenderingUtils.ReAllocateHandleIfNeeded(ref s_RenderGraphCameraColorHandles[1], cameraTargetDescriptor, cameraTargetFilterMode, TextureWrapMode.Clamp, name: "_CameraTargetAttachmentB"); commonResourceData.activeColorID = ActiveID.Camera; } else @@ -500,7 +497,7 @@ void CreateResources(RenderGraph renderGraph) depthDescriptor.graphicsFormat = GraphicsFormat.None; depthDescriptor.depthStencilFormat = CoreUtils.GetDefaultDepthStencilFormat(); - RenderingUtils.ReAllocateHandleIfNeeded(ref m_RenderGraphCameraDepthHandle, depthDescriptor, FilterMode.Point, TextureWrapMode.Clamp, name: "_CameraDepthAttachment"); + RenderingUtils.ReAllocateHandleIfNeeded(ref s_RenderGraphCameraDepthHandle, depthDescriptor, FilterMode.Point, TextureWrapMode.Clamp, name: "_CameraDepthAttachment"); commonResourceData.activeDepthID = ActiveID.Camera; } else @@ -511,8 +508,6 @@ void CreateResources(RenderGraph renderGraph) cameraData.baseCamera.TryGetComponent(out var baseCameraData); var baseRenderer = (Renderer2D)baseCameraData.scriptableRenderer; - m_RenderGraphCameraColorHandles = baseRenderer.m_RenderGraphCameraColorHandles; - m_RenderGraphCameraDepthHandle = baseRenderer.m_RenderGraphCameraDepthHandle; m_RenderGraphBackbufferColorHandle = baseRenderer.m_RenderGraphBackbufferColorHandle; m_RenderGraphBackbufferDepthHandle = baseRenderer.m_RenderGraphBackbufferDepthHandle; @@ -534,7 +529,7 @@ void CreateResources(RenderGraph renderGraph) if (m_CreateDepthTexture) { importSummary.cameraDepthParams.discardOnLastUse = lastCameraInTheStack; - commonResourceData.cameraDepth = renderGraph.ImportTexture(m_RenderGraphCameraDepthHandle, importSummary.cameraDepthParams); + commonResourceData.cameraDepth = renderGraph.ImportTexture(s_RenderGraphCameraDepthHandle, importSummary.cameraDepthParams); } RenderTargetIdentifier targetColorId = cameraData.targetTexture != null ? new RenderTargetIdentifier(cameraData.targetTexture) : BuiltinRenderTextureType.CameraTarget; @@ -698,8 +693,8 @@ void CreateOffscreenUITexture(RenderGraph renderGraph, in RenderTextureDescripto UniversalResourceData resourceData = frameData.Get(); TextureDesc textureDesc = new TextureDesc(descriptor); DrawScreenSpaceUIPass.ConfigureOffscreenUITextureDesc(ref textureDesc); - RenderingUtils.ReAllocateHandleIfNeeded(ref m_OffscreenUIColorHandle, textureDesc, name: "_OverlayUITexture"); - resourceData.overlayUITexture = renderGraph.ImportTexture(m_OffscreenUIColorHandle); + RenderingUtils.ReAllocateHandleIfNeeded(ref s_OffscreenUIColorHandle, textureDesc, name: "_OverlayUITexture"); + resourceData.overlayUITexture = renderGraph.ImportTexture(s_OffscreenUIColorHandle); } public override void OnBeginRenderGraphFrame() @@ -1067,9 +1062,9 @@ private void CleanupRenderGraphResources() m_PostProcessPassRenderGraph?.Cleanup(); m_ColorGradingLutPassRenderGraph?.Cleanup(); - m_RenderGraphCameraColorHandles[0]?.Release(); - m_RenderGraphCameraColorHandles[1]?.Release(); - m_RenderGraphCameraDepthHandle?.Release(); + s_RenderGraphCameraColorHandles[0]?.Release(); + s_RenderGraphCameraColorHandles[1]?.Release(); + s_RenderGraphCameraDepthHandle?.Release(); m_RenderGraphBackbufferColorHandle?.Release(); m_RenderGraphBackbufferDepthHandle?.Release(); m_CameraSortingLayerHandle?.Release(); diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Test/Runtime/Renderer2DTests.cs b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Test/Runtime/Renderer2DTests.cs index bdcf0366b2e..6c604f1e91d 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Test/Runtime/Renderer2DTests.cs +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Test/Runtime/Renderer2DTests.cs @@ -86,6 +86,7 @@ public void BaseRendererUsesSeparateDepthAttachmentFromColorTextureIfNoDepthSten Assert.IsTrue(baseRenderer.m_CreateDepthTexture); } +#if URP_COMPATIBILITY_MODE [Test] public void OverlayRendererUsesRenderTexturesFromBase() { @@ -96,14 +97,10 @@ public void OverlayRendererUsesRenderTexturesFromBase() Renderer2D baseRenderer = m_BaseCameraData.scriptableRenderer as Renderer2D; Renderer2D overlayRenderer = m_OverlayCameraData.scriptableRenderer as Renderer2D; -#if URP_COMPATIBILITY_MODE Assert.AreEqual(baseRenderer.m_ColorTextureHandle, overlayRenderer.m_ColorTextureHandle); Assert.AreEqual(baseRenderer.m_DepthTextureHandle, overlayRenderer.m_DepthTextureHandle); -#else - Assert.AreEqual(baseRenderer.m_RenderGraphCameraColorHandles, overlayRenderer.m_RenderGraphCameraColorHandles); - Assert.AreEqual(baseRenderer.m_RenderGraphCameraDepthHandle, overlayRenderer.m_RenderGraphCameraDepthHandle); -#endif } +#endif [Test] public void OverlayRendererSetsTheCreateTextureFlags() From 5a48afb2a79551a49142758a138c316e02db6de9 Mon Sep 17 00:00:00 2001 From: Reach Platform Support Date: Thu, 8 Oct 2026 10:31:05 +0000 Subject: [PATCH 22/49] [Port] [6000.3] [UUM-150815] Fixed RectMask2D softening the edges of clipped content when its softness is zero --- .../Runtime/Material/Canvas/HDCanvasPass.hlsl | 8 ++++++-- .../Editor/ShaderGraph/Includes/CanvasPass.hlsl | 8 ++++++-- .../Editor/ShaderGraph/Includes/BuiltInCanvasPass.hlsl | 8 ++++++-- 3 files changed, 18 insertions(+), 6 deletions(-) diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Canvas/HDCanvasPass.hlsl b/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Canvas/HDCanvasPass.hlsl index 6128b055555..b340735f4c4 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Canvas/HDCanvasPass.hlsl +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Canvas/HDCanvasPass.hlsl @@ -90,7 +90,7 @@ Varyings BuildVaryings(Attributes input) float4 clampedRect = clamp(_ClipRect, -2e10, 2e10); float2 maskUV = (input.positionOS.xy - clampedRect.xy) / (clampedRect.zw - clampedRect.xy); - output.texCoord1 = float4(input.positionOS.xy * 2 - clampedRect.xy - clampedRect.zw, 0.25 / (0.25 * half2(_UIMaskSoftnessX, _UIMaskSoftnessY) + abs(pixelSize.xy))); + output.texCoord1 = float4(input.positionOS.xy * 2 - clampedRect.xy - clampedRect.zw, 0.25 / (0.25 * float2(_UIMaskSoftnessX, _UIMaskSoftnessY) + abs(pixelSize.xy))); #else output.texCoord1 = input.uv1; #endif @@ -190,7 +190,11 @@ out float4 outColor : SV_Target0 #ifdef UNITY_UI_CLIP_RECT //mask = Uv2 - half2 m = saturate((_ClipRect.zw - _ClipRect.xy - abs(unpacked.texCoord1.xy)) * unpacked.texCoord1.zw); + float2 softness = float2(_UIMaskSoftnessX, _UIMaskSoftnessY); + float2 halfPixelBias = 0.5 - 0.5 * softness * unpacked.texCoord1.zw; + half2 m = saturate((_ClipRect.zw - _ClipRect.xy - abs(unpacked.texCoord1.xy)) * unpacked.texCoord1.zw + halfPixelBias); + half2 hardThreshold = 0.5 + 1e-3 * step(0, unpacked.texCoord1.xy); + m = lerp(m, step(hardThreshold, m), step(softness, 0)); outColor.a *= m.x * m.y; #endif diff --git a/Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/CanvasPass.hlsl b/Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/CanvasPass.hlsl index 82128033643..d8c40d75a1f 100644 --- a/Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/CanvasPass.hlsl +++ b/Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/CanvasPass.hlsl @@ -79,7 +79,7 @@ Varyings BuildVaryings(Attributes input) float4 clampedRect = clamp(_ClipRect, -2e10, 2e10); float2 maskUV = (input.positionOS.xy - clampedRect.xy) / (clampedRect.zw - clampedRect.xy); - output.texCoord1 = float4(input.positionOS.xy * 2 - clampedRect.xy - clampedRect.zw, 0.25 / (0.25 * half2(_UIMaskSoftnessX, _UIMaskSoftnessY) + abs(pixelSize.xy))); + output.texCoord1 = float4(input.positionOS.xy * 2 - clampedRect.xy - clampedRect.zw, 0.25 / (0.25 * float2(_UIMaskSoftnessX, _UIMaskSoftnessY) + abs(pixelSize.xy))); #else output.texCoord1 = input.uv1; #endif @@ -154,7 +154,11 @@ half4 frag(PackedVaryings packedInput) : SV_TARGET #ifdef UNITY_UI_CLIP_RECT //mask = Uv2 - half2 m = saturate((_ClipRect.zw - _ClipRect.xy - abs(unpacked.texCoord1.xy)) * unpacked.texCoord1.zw); + float2 softness = float2(_UIMaskSoftnessX, _UIMaskSoftnessY); + float2 halfPixelBias = 0.5 - 0.5 * softness * unpacked.texCoord1.zw; + half2 m = saturate((_ClipRect.zw - _ClipRect.xy - abs(unpacked.texCoord1.xy)) * unpacked.texCoord1.zw + halfPixelBias); + half2 hardThreshold = 0.5 + 1e-3 * step(0, unpacked.texCoord1.xy); + m = lerp(m, step(hardThreshold, m), step(softness, 0)); color.a *= m.x * m.y; #endif diff --git a/Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/Editor/ShaderGraph/Includes/BuiltInCanvasPass.hlsl b/Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/Editor/ShaderGraph/Includes/BuiltInCanvasPass.hlsl index 1edf07826d8..b5a4db21b83 100644 --- a/Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/Editor/ShaderGraph/Includes/BuiltInCanvasPass.hlsl +++ b/Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/Editor/ShaderGraph/Includes/BuiltInCanvasPass.hlsl @@ -76,7 +76,7 @@ Varyings BuildVaryings(Attributes input) float4 clampedRect = clamp(_ClipRect, -2e10, 2e10); float2 maskUV = (input.positionOS.xy - clampedRect.xy) / (clampedRect.zw - clampedRect.xy); - output.texCoord1 = float4(input.positionOS.xy * 2 - clampedRect.xy - clampedRect.zw, 0.25 / (0.25 * half2(_UIMaskSoftnessX, _UIMaskSoftnessY) + abs(pixelSize.xy))); + output.texCoord1 = float4(input.positionOS.xy * 2 - clampedRect.xy - clampedRect.zw, 0.25 / (0.25 * float2(_UIMaskSoftnessX, _UIMaskSoftnessY) + abs(pixelSize.xy))); #else output.texCoord1 = input.uv1; #endif @@ -152,7 +152,11 @@ half4 frag(PackedVaryings packedInput) : SV_TARGET #ifdef UNITY_UI_CLIP_RECT //mask = Uv2 - half2 m = saturate((_ClipRect.zw - _ClipRect.xy - abs(unpacked.texCoord1.xy)) * unpacked.texCoord1.zw); + float2 softness = float2(_UIMaskSoftnessX, _UIMaskSoftnessY); + float2 halfPixelBias = 0.5 - 0.5 * softness * unpacked.texCoord1.zw; + half2 m = saturate((_ClipRect.zw - _ClipRect.xy - abs(unpacked.texCoord1.xy)) * unpacked.texCoord1.zw + halfPixelBias); + half2 hardThreshold = 0.5 + 1e-3 * step(0, unpacked.texCoord1.xy); + m = lerp(m, step(hardThreshold, m), step(softness, 0)); color.a *= m.x * m.y; #endif From 96d0282e8b5f1be4749bac867147b47aa2669c93 Mon Sep 17 00:00:00 2001 From: Samuel Allan Siltanen Date: Thu, 8 Oct 2026 10:31:06 +0000 Subject: [PATCH 23/49] [6000.3] [UUM-117369] [URP] Revert DX11-only copy of _CameraDepthAttachment in Compatibility Mode --- .../Runtime/UniversalRenderer.cs | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/UniversalRenderer.cs b/Packages/com.unity.render-pipelines.universal/Runtime/UniversalRenderer.cs index bf5c2bd6cb8..f8a2144a2f7 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/UniversalRenderer.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/UniversalRenderer.cs @@ -215,7 +215,6 @@ internal RenderingMode renderingModeActual { internal RTHandle m_ActiveCameraColorAttachment; internal RTHandle m_ActiveCameraDepthAttachment; internal RTHandle m_CameraDepthAttachment; - internal RTHandle m_CameraDepthAttachment_D3d_11; internal RTHandle m_DepthTexture; RTHandle m_NormalsTexture; RTHandle m_DecalLayersTexture; @@ -562,7 +561,6 @@ internal override void ReleaseRenderTargets() m_ColorBufferSystem.Dispose(); m_PostProcessPasses.ReleaseRenderTargets(); m_CameraDepthAttachment?.Release(); - m_CameraDepthAttachment_D3d_11?.Release(); m_DepthTexture?.Release(); m_NormalsTexture?.Release(); m_DecalLayersTexture?.Release(); @@ -1117,9 +1115,6 @@ public override void Setup(ScriptableRenderContext context, ref RenderingData re // Assign camera targets (color and depth) ConfigureCameraTarget(m_ActiveCameraColorAttachment, m_ActiveCameraDepthAttachment); - if (SystemInfo.graphicsDeviceType == GraphicsDeviceType.Direct3D11) - cmd.CopyTexture(m_CameraDepthAttachment, m_CameraDepthAttachment_D3d_11); - bool hasPassesAfterPostProcessing = activeRenderPassQueue.Find(x => x.renderPassEvent == RenderPassEvent.AfterRenderingPostProcessing) != null; if (mainLightShadows) @@ -1963,14 +1958,7 @@ void CreateCameraRenderTarget(ScriptableRenderContext context, ref RenderTexture depthDescriptor.graphicsFormat = GraphicsFormat.None; depthDescriptor.depthStencilFormat = cameraDepthAttachmentFormat; RenderingUtils.ReAllocateHandleIfNeeded(ref m_CameraDepthAttachment, depthDescriptor, FilterMode.Point, TextureWrapMode.Clamp, name: "_CameraDepthAttachment"); - - if (SystemInfo.graphicsDeviceType == GraphicsDeviceType.Direct3D11) - { - RenderingUtils.ReAllocateHandleIfNeeded(ref m_CameraDepthAttachment_D3d_11, depthDescriptor, FilterMode.Point, TextureWrapMode.Clamp, name: "_CameraDepthAttachment_Temp"); - cmd.SetGlobalTexture(m_CameraDepthAttachment.name, m_CameraDepthAttachment_D3d_11.nameID); - } - else - cmd.SetGlobalTexture(m_CameraDepthAttachment.name, m_CameraDepthAttachment.nameID); + cmd.SetGlobalTexture(m_CameraDepthAttachment.name, m_CameraDepthAttachment.nameID); // update the descriptor to match the depth attachment descriptor.depthStencilFormat = depthDescriptor.depthStencilFormat; From ef8920661b3a4802d9e7c4612d50cc6d630d93b2 Mon Sep 17 00:00:00 2001 From: Reach Platform Support Date: Thu, 8 Oct 2026 10:31:06 +0000 Subject: [PATCH 24/49] [Port] [6000.3] [UUM-139845] Restore virtual texturing keyword permutation logic --- .../Generation/Processors/GenerationUtils.cs | 59 +++++++++++++++---- .../Editor/Generation/Processors/Generator.cs | 10 +--- .../Processors/GeneratorDerivativeUtils.cs | 9 +-- .../VirtualTexturingFeedbackUtils.cs} | 1 - .../VirtualTexturingFeedbackUtils.cs.meta} | 0 5 files changed, 53 insertions(+), 26 deletions(-) rename Packages/com.unity.shadergraph/Editor/{Data/Nodes/Input/Texture/TextureStackNode.cs => Generation/Processors/VirtualTexturingFeedbackUtils.cs} (99%) rename Packages/com.unity.shadergraph/Editor/{Data/Nodes/Input/Texture/TextureStackNode.cs.meta => Generation/Processors/VirtualTexturingFeedbackUtils.cs.meta} (100%) diff --git a/Packages/com.unity.shadergraph/Editor/Generation/Processors/GenerationUtils.cs b/Packages/com.unity.shadergraph/Editor/Generation/Processors/GenerationUtils.cs index 1ad700779c2..3d77c0bc5ba 100644 --- a/Packages/com.unity.shadergraph/Editor/Generation/Processors/GenerationUtils.cs +++ b/Packages/com.unity.shadergraph/Editor/Generation/Processors/GenerationUtils.cs @@ -485,11 +485,10 @@ internal static void GetUpstreamNodesForShaderPass(AbstractMaterialNode outputNo NodeUtils.DepthFirstCollectNodesFromNode(pixelNodes, outputNode, NodeUtils.IncludeSelf.Include); } - internal static void GetActiveFieldsAndPermutationsForNodes(PassDescriptor pass, - KeywordCollector keywordCollector, List vertexNodes, List pixelNodes, - bool[] texCoordNeedsDerivs, - List[] vertexNodePermutations, List[] pixelNodePermutations, - ActiveFields activeFields, out ShaderGraphRequirementsPerKeyword graphRequirements) + internal static void GetActiveFieldsAndRequirements(PassDescriptor pass, + List vertexNodes, List pixelNodes, + bool[] texCoordNeedsDerivs, ActiveFields activeFields, + out ShaderGraphRequirementsPerKeyword graphRequirements) { // Initialize requirements ShaderGraphRequirementsPerKeyword pixelRequirements = new ShaderGraphRequirementsPerKeyword(); @@ -516,6 +515,47 @@ internal static void GetActiveFieldsAndPermutationsForNodes(PassDescriptor pass, graphRequirements.UnionWith(vertexRequirements); } + internal static List[] GetPermutationsForNodes(KeywordCollector keywordCollector, List nodes) + { + List[] permutationsPerNode = new List[nodes.Count]; + + // Map each node to its index for perf + Dictionary nodeToIndex = new(nodes.Count); + for (int i = 0; i < nodes.Count; ++i) + nodeToIndex[nodes[i]] = i; + + // Evaluate all Keyword permutations + for (int i = 0; i < keywordCollector.permutations.Count; i++) + { + // Get active nodes for this permutation + var localNodes = Pool.HashSetPool.Get(); + localNodes.EnsureCapacity(nodes.Count); + + foreach (var node in nodes) + { + if (node is BlockNode) + { + NodeUtils.DepthFirstCollectNodesFromNode(localNodes, node, NodeUtils.IncludeSelf.Include, + keywordCollector.permutations[i]); + } + } + + // Track each node in this permutation + foreach (AbstractMaterialNode localNode in localNodes) + { + int nodeIndex = nodeToIndex[localNode]; + + if (permutationsPerNode[nodeIndex] == null) + permutationsPerNode[nodeIndex] = new List(); + permutationsPerNode[nodeIndex].Add(i); + } + + Pool.HashSetPool.Release(localNodes); + } + + return permutationsPerNode; + } + static ConditionalField[] GetConditionalFieldsFromVertexRequirements(ShaderGraphRequirements requirements) { return new ConditionalField[] @@ -1082,7 +1122,7 @@ internal static void GenerateSurfaceDescriptionStruct(ShaderStringBuilder surfac internal static void GenerateSurfaceDescriptionFunction( List nodes, - List[] keywordPermutationsPerNode, + Lazy[]> keywordPermutationsPerNode, AbstractMaterialNode rootNode, GraphData graph, ShaderStringBuilder surfaceDescriptionFunction, @@ -1115,7 +1155,7 @@ internal static void GenerateSurfaceDescriptionFunction( surfaceDescriptionFunction.AppendLine("{0} surface = ({0})0;", surfaceDescriptionName); for (int i = 0; i < nodes.Count; i++) { - GenerateDescriptionForNode(nodes[i], keywordPermutationsPerNode[i], functionRegistry, surfaceDescriptionFunction, + GenerateDescriptionForNode(nodes[i], null, functionRegistry, surfaceDescriptionFunction, shaderProperties, shaderKeywords, graph, mode); } @@ -1130,7 +1170,7 @@ internal static void GenerateSurfaceDescriptionFunction( { VirtualTexturingFeedbackUtils.GenerateVirtualTextureFeedback( nodes, - keywordPermutationsPerNode, + keywordPermutationsPerNode.Value, surfaceDescriptionFunction, shaderKeywords); } @@ -1268,7 +1308,6 @@ internal static void GenerateVertexDescriptionFunction( GenerationMode mode, AbstractMaterialNode rootNode, List nodes, - List[] keywordPermutationsPerNode, List slots, string graphInputStructName = "VertexDescriptionInputs", string functionName = "PopulateVertexData", @@ -1293,7 +1332,7 @@ internal static void GenerateVertexDescriptionFunction( Profiler.BeginSample("GenerateNodeDescriptions"); for (int i = 0; i < nodes.Count; i++) { - GenerateDescriptionForNode(nodes[i], keywordPermutationsPerNode[i], functionRegistry, builder, + GenerateDescriptionForNode(nodes[i], null, functionRegistry, builder, shaderProperties, shaderKeywords, graph, mode); } diff --git a/Packages/com.unity.shadergraph/Editor/Generation/Processors/Generator.cs b/Packages/com.unity.shadergraph/Editor/Generation/Processors/Generator.cs index ebac708f24b..10bec14dc62 100644 --- a/Packages/com.unity.shadergraph/Editor/Generation/Processors/Generator.cs +++ b/Packages/com.unity.shadergraph/Editor/Generation/Processors/Generator.cs @@ -676,14 +676,13 @@ void ProcessStackForPass(ContextData contextData, BlockFieldDescriptor[] passBlo customInterpSubGen.ProcessExistingStackData(vertexNodes, vertexSlots, pixelNodes, activeFields.baseInstance); // Track permutation indices for all nodes - List[] vertexNodePermutations = new List[vertexNodes.Count]; - List[] pixelNodePermutations = new List[pixelNodes.Count]; + Lazy[]> pixelNodePermutations = new(() => GenerationUtils.GetPermutationsForNodes(keywordCollector, pixelNodes)); // Get active fields from upstream Node requirements Profiler.BeginSample("GetActiveFieldsFromUpstreamNodes"); ShaderGraphRequirementsPerKeyword graphRequirements; - GenerationUtils.GetActiveFieldsAndPermutationsForNodes(pass, keywordCollector, vertexNodes, pixelNodes, new bool[ShaderGeneratorNames.UVCount], - vertexNodePermutations, pixelNodePermutations, activeFields, out graphRequirements); + GenerationUtils.GetActiveFieldsAndRequirements(pass, vertexNodes, pixelNodes, new bool[ShaderGeneratorNames.UVCount], + activeFields, out graphRequirements); Profiler.EndSample(); // Moved this up so that we can reuse the information to figure out which struct Descriptors @@ -953,7 +952,6 @@ void ProcessStackForPass(ContextData contextData, BlockFieldDescriptor[] passBlo m_Mode, m_OutputNode, vertexNodes, - vertexNodePermutations, vertexSlots, vertexGraphInputName, vertexGraphFunctionName, @@ -1188,8 +1186,6 @@ void ProcessStackForPass(ContextData contextData, BlockFieldDescriptor[] passBlo keywordCollector, vertexNodes, pixelNodes, - vertexNodePermutations, - pixelNodePermutations, originalPassStructs, pass.analyticDerivativesApplyEmulate, m_HumanReadable, diff --git a/Packages/com.unity.shadergraph/Editor/Generation/Processors/GeneratorDerivativeUtils.cs b/Packages/com.unity.shadergraph/Editor/Generation/Processors/GeneratorDerivativeUtils.cs index 45de603629f..c3734d48aa7 100644 --- a/Packages/com.unity.shadergraph/Editor/Generation/Processors/GeneratorDerivativeUtils.cs +++ b/Packages/com.unity.shadergraph/Editor/Generation/Processors/GeneratorDerivativeUtils.cs @@ -160,8 +160,6 @@ internal static void ParseAndModifyForAnalyticDerivatives( KeywordCollector keywordCollector, List vertexNodes, List pixelNodes, - List[] vertexNodePermutations, - List[] pixelNodePermutations, List originalPassStructs, bool applyEmulatedDerivatives, bool isHumanReadable, @@ -234,8 +232,7 @@ internal static void ParseAndModifyForAnalyticDerivatives( { // use the new uv derivative needs to produce text ShaderGraphRequirementsPerKeyword graphRequirements = new ShaderGraphRequirementsPerKeyword(); - GenerationUtils.GetActiveFieldsAndPermutationsForNodes(pass, keywordCollector, vertexNodes, pixelNodes, adjustedUvDerivs, - vertexNodePermutations, pixelNodePermutations, activeFields, out graphRequirements); + GenerationUtils.GetActiveFieldsAndRequirements(pass, vertexNodes, pixelNodes, adjustedUvDerivs, activeFields, out graphRequirements); ShaderStringBuilder interpolatorBuilder = new ShaderStringBuilder(); ShaderStringBuilder passStructBuilder = new ShaderStringBuilder(); @@ -265,8 +262,6 @@ internal static void ApplyAnalyticDerivatives( KeywordCollector keywordCollector, List vertexNodes, List pixelNodes, - List[] vertexNodePermutations, - List[] pixelNodePermutations, List originalPassStructs, bool applyEmulatedDerivatives, bool isHumanReadable, @@ -289,8 +284,6 @@ internal static void ApplyAnalyticDerivatives( keywordCollector, vertexNodes, pixelNodes, - vertexNodePermutations, - pixelNodePermutations, originalPassStructs, pass.analyticDerivativesApplyEmulate, isHumanReadable, diff --git a/Packages/com.unity.shadergraph/Editor/Data/Nodes/Input/Texture/TextureStackNode.cs b/Packages/com.unity.shadergraph/Editor/Generation/Processors/VirtualTexturingFeedbackUtils.cs similarity index 99% rename from Packages/com.unity.shadergraph/Editor/Data/Nodes/Input/Texture/TextureStackNode.cs rename to Packages/com.unity.shadergraph/Editor/Generation/Processors/VirtualTexturingFeedbackUtils.cs index bd1a751d16f..4eeb4de201c 100644 --- a/Packages/com.unity.shadergraph/Editor/Data/Nodes/Input/Texture/TextureStackNode.cs +++ b/Packages/com.unity.shadergraph/Editor/Generation/Processors/VirtualTexturingFeedbackUtils.cs @@ -12,7 +12,6 @@ namespace UnityEditor.ShaderGraph { - // TODO: rename this file to VirtualTexturingFeedbackUtils static class VirtualTexturingFeedbackUtils { // TODO: could get rid of this if we could run a codegen prepass (with proper keyword #ifdef) diff --git a/Packages/com.unity.shadergraph/Editor/Data/Nodes/Input/Texture/TextureStackNode.cs.meta b/Packages/com.unity.shadergraph/Editor/Generation/Processors/VirtualTexturingFeedbackUtils.cs.meta similarity index 100% rename from Packages/com.unity.shadergraph/Editor/Data/Nodes/Input/Texture/TextureStackNode.cs.meta rename to Packages/com.unity.shadergraph/Editor/Generation/Processors/VirtualTexturingFeedbackUtils.cs.meta From 3bff53343b39d2e03939d8b8d17bc9a0c33148ab Mon Sep 17 00:00:00 2001 From: Reach Platform Support Date: Fri, 9 Oct 2026 16:46:21 +0000 Subject: [PATCH 25/49] [Port] [6000.3] [UUM-151903] Destroy the mesh AccelStructAdapter bakes from a Terrain --- .../Common/AccelStructAdapter.cs | 32 +++++++++++++++++-- .../Unity.UnifiedRayTracing.Runtime.asmdef | 3 +- 2 files changed, 31 insertions(+), 4 deletions(-) diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/AccelStructAdapter.cs b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/AccelStructAdapter.cs index 35735aeb565..0bed52fc1f4 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/AccelStructAdapter.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Common/AccelStructAdapter.cs @@ -21,6 +21,7 @@ struct InstanceIDs { public int InstanceID; public int AccelStructID; + public Mesh OwnedMesh; } private readonly Dictionary _objectHandleToInstances = new(); @@ -54,6 +55,10 @@ public void Dispose() _instances = null; _accelStruct?.Dispose(); _accelStruct = null; + + foreach (var instances in _objectHandleToInstances.Values) + foreach (var instance in instances) + CoreUtils.Destroy(instance.OwnedMesh); _objectHandleToInstances.Clear(); } @@ -108,8 +113,17 @@ private void AddInstance(int objectHandle, TerrainDesc terrainDesc) { List instanceHandles = new List(); - AddHeightmap(terrainDesc, ref instanceHandles); - AddTrees(terrainDesc, ref instanceHandles); + try + { + AddHeightmap(terrainDesc, ref instanceHandles); + AddTrees(terrainDesc, ref instanceHandles); + } + catch + { + foreach (var instance in instanceHandles) + CoreUtils.Destroy(instance.OwnedMesh); + throw; + } _objectHandleToInstances.Add(objectHandle, instanceHandles.ToArray()); @@ -124,8 +138,19 @@ void AddHeightmap(TerrainDesc terrainDesc, ref List instanceHandles instanceDesc.enableTriangleCulling = terrainDesc.enableTriangleCulling; instanceDesc.frontTriangleCounterClockwise = terrainDesc.frontTriangleCounterClockwise; - instanceHandles.Add(AddInstance(instanceDesc, terrainDesc.materialID, terrainDesc.renderingLayerMask)); + InstanceIDs ids; + try + { + ids = AddInstance(instanceDesc, terrainDesc.materialID, terrainDesc.renderingLayerMask); + } + catch + { + CoreUtils.Destroy(terrainMesh); + throw; + } + ids.OwnedMesh = terrainMesh; + instanceHandles.Add(ids); } void AddTrees(TerrainDesc terrainDesc, ref List instanceHandles) @@ -187,6 +212,7 @@ public void RemoveInstance(int objectHandle) { _instances.RemoveInstance(instance.InstanceID); _accelStruct.RemoveInstance(instance.AccelStructID); + CoreUtils.Destroy(instance.OwnedMesh); } _objectHandleToInstances.Remove(objectHandle); diff --git a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Unity.UnifiedRayTracing.Runtime.asmdef b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Unity.UnifiedRayTracing.Runtime.asmdef index 6202ece7e69..ea5c5a6bf12 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Unity.UnifiedRayTracing.Runtime.asmdef +++ b/Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Unity.UnifiedRayTracing.Runtime.asmdef @@ -4,7 +4,8 @@ "references": [ "Unity.Mathematics", "Unity.Collections", - "Unity.Burst" + "Unity.Burst", + "Unity.RenderPipelines.Core.Runtime" ], "includePlatforms": [], "excludePlatforms": [ From 8af942756085cc78a7e1a46cd5f8f6e814d35d82 Mon Sep 17 00:00:00 2001 From: Reach Platform Support Date: Mon, 12 Oct 2026 12:20:05 +0000 Subject: [PATCH 26/49] [Port] [6000.3] [UUM-144935][7000.0] Rename Resources folder to ResourceIcons so editor only resources do not get included in build --- .../Editor/2D/Light2DEditor.cs | 41 +++++--- .../Editor/2D/Light2DEditorUtility.cs | 2 + .../2D/{Resources.meta => ResourceIcons.meta} | 2 +- .../Cinemachine.png | 0 .../Cinemachine.png.meta | 0 .../InspectorIcons.meta | 0 .../InspectorIcons/FreeformLight.png | 0 .../InspectorIcons/FreeformLight.png.meta | 0 .../InspectorIcons/GlobalLight.png | 0 .../InspectorIcons/GlobalLight.png.meta | 0 .../InspectorIcons/ParametricLight.png | 0 .../InspectorIcons/ParametricLight.png.meta | 0 .../InspectorIcons/PointLight.png | 0 .../InspectorIcons/PointLight.png.meta | 0 .../InspectorIcons/SpriteLight.png | 0 .../InspectorIcons/SpriteLight.png.meta | 0 .../LightCapBottomLeft.png | 0 .../LightCapBottomLeft.png.meta | 0 .../LightCapBottomRight.png | 0 .../LightCapBottomRight.png.meta | 0 .../LightCapDown.png | 0 .../LightCapDown.png.meta | 0 .../LightCapTopLeft.png | 0 .../LightCapTopLeft.png.meta | 0 .../LightCapTopRight.png | 0 .../LightCapTopRight.png.meta | 0 .../LightCapUp.png | 0 .../LightCapUp.png.meta | 0 .../PixelPerfectCamera.png | 0 .../PixelPerfectCamera.png.meta | 0 .../SceneViewIcons.meta | 0 .../SceneViewIcons/FreeformLight.png | 0 .../SceneViewIcons/FreeformLight.png.meta | 0 .../SceneViewIcons/GlobalLight.png | 0 .../SceneViewIcons/GlobalLight.png.meta | 0 .../SceneViewIcons/ParametricLight.png | 0 .../SceneViewIcons/ParametricLight.png.meta | 0 .../SceneViewIcons/PointLight.png | 0 .../SceneViewIcons/PointLight.png.meta | 0 .../SceneViewIcons/SpriteLight.png | 0 .../SceneViewIcons/SpriteLight.png.meta | 0 .../Editor/2D/Resources/Sparkle.png | 3 - .../Editor/2D/Resources/Sparkle.png.meta | 98 ------------------- .../Runtime/2D/Light2DAuthoring.cs | 2 +- .../Runtime/2D/PixelPerfectCamera.cs | 1 + .../018_PointLightCookie_Compatibility.unity | 2 +- .../Assets/Scenes/023_GizmosRendering.meta | 8 ++ .../Assets/Scenes/023_GizmosRendering.unity | 3 + .../Scenes/023_GizmosRendering.unity.meta | 7 ++ .../023_GizmosRendering/ToggleGizmos.cs | 22 +++++ .../023_GizmosRendering/ToggleGizmos.cs.meta | 2 + 51 files changed, 73 insertions(+), 120 deletions(-) rename Packages/com.unity.render-pipelines.universal/Editor/2D/{Resources.meta => ResourceIcons.meta} (77%) rename Packages/com.unity.render-pipelines.universal/Editor/2D/{Resources => ResourceIcons}/Cinemachine.png (100%) rename Packages/com.unity.render-pipelines.universal/Editor/2D/{Resources => ResourceIcons}/Cinemachine.png.meta (100%) rename Packages/com.unity.render-pipelines.universal/Editor/2D/{Resources => ResourceIcons}/InspectorIcons.meta (100%) rename Packages/com.unity.render-pipelines.universal/Editor/2D/{Resources => ResourceIcons}/InspectorIcons/FreeformLight.png (100%) rename Packages/com.unity.render-pipelines.universal/Editor/2D/{Resources => ResourceIcons}/InspectorIcons/FreeformLight.png.meta (100%) rename Packages/com.unity.render-pipelines.universal/Editor/2D/{Resources => ResourceIcons}/InspectorIcons/GlobalLight.png (100%) rename Packages/com.unity.render-pipelines.universal/Editor/2D/{Resources => ResourceIcons}/InspectorIcons/GlobalLight.png.meta (100%) rename Packages/com.unity.render-pipelines.universal/Editor/2D/{Resources => ResourceIcons}/InspectorIcons/ParametricLight.png (100%) rename Packages/com.unity.render-pipelines.universal/Editor/2D/{Resources => ResourceIcons}/InspectorIcons/ParametricLight.png.meta (100%) rename Packages/com.unity.render-pipelines.universal/Editor/2D/{Resources => ResourceIcons}/InspectorIcons/PointLight.png (100%) rename Packages/com.unity.render-pipelines.universal/Editor/2D/{Resources => ResourceIcons}/InspectorIcons/PointLight.png.meta (100%) rename Packages/com.unity.render-pipelines.universal/Editor/2D/{Resources => ResourceIcons}/InspectorIcons/SpriteLight.png (100%) rename Packages/com.unity.render-pipelines.universal/Editor/2D/{Resources => ResourceIcons}/InspectorIcons/SpriteLight.png.meta (100%) rename Packages/com.unity.render-pipelines.universal/Editor/2D/{Resources => ResourceIcons}/LightCapBottomLeft.png (100%) rename Packages/com.unity.render-pipelines.universal/Editor/2D/{Resources => ResourceIcons}/LightCapBottomLeft.png.meta (100%) rename Packages/com.unity.render-pipelines.universal/Editor/2D/{Resources => ResourceIcons}/LightCapBottomRight.png (100%) rename Packages/com.unity.render-pipelines.universal/Editor/2D/{Resources => ResourceIcons}/LightCapBottomRight.png.meta (100%) rename Packages/com.unity.render-pipelines.universal/Editor/2D/{Resources => ResourceIcons}/LightCapDown.png (100%) rename Packages/com.unity.render-pipelines.universal/Editor/2D/{Resources => ResourceIcons}/LightCapDown.png.meta (100%) rename Packages/com.unity.render-pipelines.universal/Editor/2D/{Resources => ResourceIcons}/LightCapTopLeft.png (100%) rename Packages/com.unity.render-pipelines.universal/Editor/2D/{Resources => ResourceIcons}/LightCapTopLeft.png.meta (100%) rename Packages/com.unity.render-pipelines.universal/Editor/2D/{Resources => ResourceIcons}/LightCapTopRight.png (100%) rename Packages/com.unity.render-pipelines.universal/Editor/2D/{Resources => ResourceIcons}/LightCapTopRight.png.meta (100%) rename Packages/com.unity.render-pipelines.universal/Editor/2D/{Resources => ResourceIcons}/LightCapUp.png (100%) rename Packages/com.unity.render-pipelines.universal/Editor/2D/{Resources => ResourceIcons}/LightCapUp.png.meta (100%) rename Packages/com.unity.render-pipelines.universal/Editor/2D/{Resources => ResourceIcons}/PixelPerfectCamera.png (100%) rename Packages/com.unity.render-pipelines.universal/Editor/2D/{Resources => ResourceIcons}/PixelPerfectCamera.png.meta (100%) rename Packages/com.unity.render-pipelines.universal/Editor/2D/{Resources => ResourceIcons}/SceneViewIcons.meta (100%) rename Packages/com.unity.render-pipelines.universal/Editor/2D/{Resources => ResourceIcons}/SceneViewIcons/FreeformLight.png (100%) rename Packages/com.unity.render-pipelines.universal/Editor/2D/{Resources => ResourceIcons}/SceneViewIcons/FreeformLight.png.meta (100%) rename Packages/com.unity.render-pipelines.universal/Editor/2D/{Resources => ResourceIcons}/SceneViewIcons/GlobalLight.png (100%) rename Packages/com.unity.render-pipelines.universal/Editor/2D/{Resources => ResourceIcons}/SceneViewIcons/GlobalLight.png.meta (100%) rename Packages/com.unity.render-pipelines.universal/Editor/2D/{Resources => ResourceIcons}/SceneViewIcons/ParametricLight.png (100%) rename Packages/com.unity.render-pipelines.universal/Editor/2D/{Resources => ResourceIcons}/SceneViewIcons/ParametricLight.png.meta (100%) rename Packages/com.unity.render-pipelines.universal/Editor/2D/{Resources => ResourceIcons}/SceneViewIcons/PointLight.png (100%) rename Packages/com.unity.render-pipelines.universal/Editor/2D/{Resources => ResourceIcons}/SceneViewIcons/PointLight.png.meta (100%) rename Packages/com.unity.render-pipelines.universal/Editor/2D/{Resources => ResourceIcons}/SceneViewIcons/SpriteLight.png (100%) rename Packages/com.unity.render-pipelines.universal/Editor/2D/{Resources => ResourceIcons}/SceneViewIcons/SpriteLight.png.meta (100%) delete mode 100644 Packages/com.unity.render-pipelines.universal/Editor/2D/Resources/Sparkle.png delete mode 100644 Packages/com.unity.render-pipelines.universal/Editor/2D/Resources/Sparkle.png.meta create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/023_GizmosRendering.meta create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/023_GizmosRendering.unity create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/023_GizmosRendering.unity.meta create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/023_GizmosRendering/ToggleGizmos.cs create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/023_GizmosRendering/ToggleGizmos.cs.meta diff --git a/Packages/com.unity.render-pipelines.universal/Editor/2D/Light2DEditor.cs b/Packages/com.unity.render-pipelines.universal/Editor/2D/Light2DEditor.cs index d8519da000d..ddc08f70819 100644 --- a/Packages/com.unity.render-pipelines.universal/Editor/2D/Light2DEditor.cs +++ b/Packages/com.unity.render-pipelines.universal/Editor/2D/Light2DEditor.cs @@ -10,8 +10,6 @@ namespace UnityEditor.Rendering.Universal { - - [CustomEditor(typeof(Light2D))] [CanEditMultipleObjects] internal class Light2DEditor @@ -21,7 +19,6 @@ internal class Light2DEditor : Editor #endif { - #if USING_2DCOMMON [EditorTool("Edit Freeform Shape", typeof(Light2D))] @@ -59,28 +56,40 @@ protected override void SetShape(ScriptablePath shapeEditor, SerializedObject se // This is untracked right now... serializedObject.ApplyModifiedProperties(); } - } - + } #endif private static class Styles { public static readonly GUIContent InnerOuterSpotAngle = EditorGUIUtility.TrTextContent("Inner / Outer Spot Angle", "Adjusts the inner / outer angles of this light to change the angle ranges of this Spot Light’s beam."); - public static Texture lightCapTopRight = Resources.Load("LightCapTopRight"); - public static Texture lightCapTopLeft = Resources.Load("LightCapTopLeft"); - public static Texture lightCapBottomLeft = Resources.Load("LightCapBottomLeft"); - public static Texture lightCapBottomRight = Resources.Load("LightCapBottomRight"); - public static Texture lightCapUp = Resources.Load("LightCapUp"); - public static Texture lightCapDown = Resources.Load("LightCapDown"); + static Texture s_LightCapTopRight; + static Texture s_LightCapTopLeft; + static Texture s_LightCapBottomLeft; + static Texture s_LightCapBottomRight; + static Texture s_LightCapUp; + static Texture s_LightCapDown; + + public static Texture lightCapTopRight => s_LightCapTopRight ??= LoadIcon("LightCapTopRight.png"); + public static Texture lightCapTopLeft => s_LightCapTopLeft ??= LoadIcon("LightCapTopLeft.png"); + public static Texture lightCapBottomLeft => s_LightCapBottomLeft ??= LoadIcon("LightCapBottomLeft.png"); + public static Texture lightCapBottomRight => s_LightCapBottomRight ??= LoadIcon("LightCapBottomRight.png"); + public static Texture lightCapUp => s_LightCapUp ??= LoadIcon("LightCapUp.png"); + public static Texture lightCapDown => s_LightCapDown ??= LoadIcon("LightCapDown.png"); + static GUIContent[] s_LightTypeOptions; + + public static GUIContent[] lightTypeOptions => s_LightTypeOptions ??= new[] + { + new GUIContent("Freeform", LoadInspectorIcon("FreeformLight.png")), + new GUIContent("Sprite", LoadInspectorIcon("SpriteLight.png")), + new GUIContent("Spot", LoadInspectorIcon("PointLight.png")), + new GUIContent("Global", LoadInspectorIcon("GlobalLight.png")) + }; - public static GUIContent lightTypeFreeform = new GUIContent("Freeform", Resources.Load("InspectorIcons/FreeformLight") as Texture); - public static GUIContent lightTypeSprite = new GUIContent("Sprite", Resources.Load("InspectorIcons/SpriteLight") as Texture); - public static GUIContent lightTypePoint = new GUIContent("Spot", Resources.Load("InspectorIcons/PointLight") as Texture); - public static GUIContent lightTypeGlobal = new GUIContent("Global", Resources.Load("InspectorIcons/GlobalLight") as Texture); - public static GUIContent[] lightTypeOptions = new GUIContent[] { lightTypeFreeform, lightTypeSprite, lightTypePoint, lightTypeGlobal }; + static Texture LoadIcon(string fileName) => AssetDatabase.LoadAssetAtPath(Light2DEditorUtility.ResourcePath + fileName); + static Texture LoadInspectorIcon(string fileName) => LoadIcon("InspectorIcons/" + fileName); public static GUIContent blendingSettingsFoldout = EditorGUIUtility.TrTextContent("Blending", "Options used for blending"); public static GUIContent shadowsSettingsFoldout = EditorGUIUtility.TrTextContent("Shadows", "Options used for shadows"); diff --git a/Packages/com.unity.render-pipelines.universal/Editor/2D/Light2DEditorUtility.cs b/Packages/com.unity.render-pipelines.universal/Editor/2D/Light2DEditorUtility.cs index 82fde669b49..3c5a983ba9d 100644 --- a/Packages/com.unity.render-pipelines.universal/Editor/2D/Light2DEditorUtility.cs +++ b/Packages/com.unity.render-pipelines.universal/Editor/2D/Light2DEditorUtility.cs @@ -6,6 +6,8 @@ namespace UnityEditor.Rendering.Universal { internal static class Light2DEditorUtility { + internal static readonly string ResourcePath = "Packages/com.unity.render-pipelines.universal/Editor/2D/ResourceIcons/"; + static Material s_TexCapMaterial = CoreUtils.CreateEngineMaterial(Shader.Find("Hidden/Internal-GUITexture")); static Mesh k_MeshQuad_Cache; static Mesh k_MeshQuad => k_MeshQuad_Cache == null || k_MeshQuad_Cache.Equals(null) ? (k_MeshQuad_Cache = Resources.GetBuiltinResource("Quad.fbx")) : k_MeshQuad_Cache; diff --git a/Packages/com.unity.render-pipelines.universal/Editor/2D/Resources.meta b/Packages/com.unity.render-pipelines.universal/Editor/2D/ResourceIcons.meta similarity index 77% rename from Packages/com.unity.render-pipelines.universal/Editor/2D/Resources.meta rename to Packages/com.unity.render-pipelines.universal/Editor/2D/ResourceIcons.meta index 23f7cdf8421..9929c29554c 100644 --- a/Packages/com.unity.render-pipelines.universal/Editor/2D/Resources.meta +++ b/Packages/com.unity.render-pipelines.universal/Editor/2D/ResourceIcons.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 95000b81b3fc6af4a916987efa80abbc +guid: 7d62522e622aeff4aad818e5a3124efd folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Packages/com.unity.render-pipelines.universal/Editor/2D/Resources/Cinemachine.png b/Packages/com.unity.render-pipelines.universal/Editor/2D/ResourceIcons/Cinemachine.png similarity index 100% rename from Packages/com.unity.render-pipelines.universal/Editor/2D/Resources/Cinemachine.png rename to Packages/com.unity.render-pipelines.universal/Editor/2D/ResourceIcons/Cinemachine.png diff --git a/Packages/com.unity.render-pipelines.universal/Editor/2D/Resources/Cinemachine.png.meta b/Packages/com.unity.render-pipelines.universal/Editor/2D/ResourceIcons/Cinemachine.png.meta similarity index 100% rename from Packages/com.unity.render-pipelines.universal/Editor/2D/Resources/Cinemachine.png.meta rename to Packages/com.unity.render-pipelines.universal/Editor/2D/ResourceIcons/Cinemachine.png.meta diff --git a/Packages/com.unity.render-pipelines.universal/Editor/2D/Resources/InspectorIcons.meta b/Packages/com.unity.render-pipelines.universal/Editor/2D/ResourceIcons/InspectorIcons.meta similarity index 100% rename from Packages/com.unity.render-pipelines.universal/Editor/2D/Resources/InspectorIcons.meta rename to Packages/com.unity.render-pipelines.universal/Editor/2D/ResourceIcons/InspectorIcons.meta diff --git a/Packages/com.unity.render-pipelines.universal/Editor/2D/Resources/InspectorIcons/FreeformLight.png b/Packages/com.unity.render-pipelines.universal/Editor/2D/ResourceIcons/InspectorIcons/FreeformLight.png similarity index 100% rename from Packages/com.unity.render-pipelines.universal/Editor/2D/Resources/InspectorIcons/FreeformLight.png rename to Packages/com.unity.render-pipelines.universal/Editor/2D/ResourceIcons/InspectorIcons/FreeformLight.png diff --git a/Packages/com.unity.render-pipelines.universal/Editor/2D/Resources/InspectorIcons/FreeformLight.png.meta b/Packages/com.unity.render-pipelines.universal/Editor/2D/ResourceIcons/InspectorIcons/FreeformLight.png.meta similarity index 100% rename from Packages/com.unity.render-pipelines.universal/Editor/2D/Resources/InspectorIcons/FreeformLight.png.meta rename to Packages/com.unity.render-pipelines.universal/Editor/2D/ResourceIcons/InspectorIcons/FreeformLight.png.meta diff --git a/Packages/com.unity.render-pipelines.universal/Editor/2D/Resources/InspectorIcons/GlobalLight.png b/Packages/com.unity.render-pipelines.universal/Editor/2D/ResourceIcons/InspectorIcons/GlobalLight.png similarity index 100% rename from Packages/com.unity.render-pipelines.universal/Editor/2D/Resources/InspectorIcons/GlobalLight.png rename to Packages/com.unity.render-pipelines.universal/Editor/2D/ResourceIcons/InspectorIcons/GlobalLight.png diff --git a/Packages/com.unity.render-pipelines.universal/Editor/2D/Resources/InspectorIcons/GlobalLight.png.meta b/Packages/com.unity.render-pipelines.universal/Editor/2D/ResourceIcons/InspectorIcons/GlobalLight.png.meta similarity index 100% rename from Packages/com.unity.render-pipelines.universal/Editor/2D/Resources/InspectorIcons/GlobalLight.png.meta rename to Packages/com.unity.render-pipelines.universal/Editor/2D/ResourceIcons/InspectorIcons/GlobalLight.png.meta diff --git a/Packages/com.unity.render-pipelines.universal/Editor/2D/Resources/InspectorIcons/ParametricLight.png b/Packages/com.unity.render-pipelines.universal/Editor/2D/ResourceIcons/InspectorIcons/ParametricLight.png similarity index 100% rename from Packages/com.unity.render-pipelines.universal/Editor/2D/Resources/InspectorIcons/ParametricLight.png rename to Packages/com.unity.render-pipelines.universal/Editor/2D/ResourceIcons/InspectorIcons/ParametricLight.png diff --git a/Packages/com.unity.render-pipelines.universal/Editor/2D/Resources/InspectorIcons/ParametricLight.png.meta b/Packages/com.unity.render-pipelines.universal/Editor/2D/ResourceIcons/InspectorIcons/ParametricLight.png.meta similarity index 100% rename from Packages/com.unity.render-pipelines.universal/Editor/2D/Resources/InspectorIcons/ParametricLight.png.meta rename to Packages/com.unity.render-pipelines.universal/Editor/2D/ResourceIcons/InspectorIcons/ParametricLight.png.meta diff --git a/Packages/com.unity.render-pipelines.universal/Editor/2D/Resources/InspectorIcons/PointLight.png b/Packages/com.unity.render-pipelines.universal/Editor/2D/ResourceIcons/InspectorIcons/PointLight.png similarity index 100% rename from Packages/com.unity.render-pipelines.universal/Editor/2D/Resources/InspectorIcons/PointLight.png rename to Packages/com.unity.render-pipelines.universal/Editor/2D/ResourceIcons/InspectorIcons/PointLight.png diff --git a/Packages/com.unity.render-pipelines.universal/Editor/2D/Resources/InspectorIcons/PointLight.png.meta b/Packages/com.unity.render-pipelines.universal/Editor/2D/ResourceIcons/InspectorIcons/PointLight.png.meta similarity index 100% rename from Packages/com.unity.render-pipelines.universal/Editor/2D/Resources/InspectorIcons/PointLight.png.meta rename to Packages/com.unity.render-pipelines.universal/Editor/2D/ResourceIcons/InspectorIcons/PointLight.png.meta diff --git a/Packages/com.unity.render-pipelines.universal/Editor/2D/Resources/InspectorIcons/SpriteLight.png b/Packages/com.unity.render-pipelines.universal/Editor/2D/ResourceIcons/InspectorIcons/SpriteLight.png similarity index 100% rename from Packages/com.unity.render-pipelines.universal/Editor/2D/Resources/InspectorIcons/SpriteLight.png rename to Packages/com.unity.render-pipelines.universal/Editor/2D/ResourceIcons/InspectorIcons/SpriteLight.png diff --git a/Packages/com.unity.render-pipelines.universal/Editor/2D/Resources/InspectorIcons/SpriteLight.png.meta b/Packages/com.unity.render-pipelines.universal/Editor/2D/ResourceIcons/InspectorIcons/SpriteLight.png.meta similarity index 100% rename from Packages/com.unity.render-pipelines.universal/Editor/2D/Resources/InspectorIcons/SpriteLight.png.meta rename to Packages/com.unity.render-pipelines.universal/Editor/2D/ResourceIcons/InspectorIcons/SpriteLight.png.meta diff --git a/Packages/com.unity.render-pipelines.universal/Editor/2D/Resources/LightCapBottomLeft.png b/Packages/com.unity.render-pipelines.universal/Editor/2D/ResourceIcons/LightCapBottomLeft.png similarity index 100% rename from Packages/com.unity.render-pipelines.universal/Editor/2D/Resources/LightCapBottomLeft.png rename to Packages/com.unity.render-pipelines.universal/Editor/2D/ResourceIcons/LightCapBottomLeft.png diff --git a/Packages/com.unity.render-pipelines.universal/Editor/2D/Resources/LightCapBottomLeft.png.meta b/Packages/com.unity.render-pipelines.universal/Editor/2D/ResourceIcons/LightCapBottomLeft.png.meta similarity index 100% rename from Packages/com.unity.render-pipelines.universal/Editor/2D/Resources/LightCapBottomLeft.png.meta rename to Packages/com.unity.render-pipelines.universal/Editor/2D/ResourceIcons/LightCapBottomLeft.png.meta diff --git a/Packages/com.unity.render-pipelines.universal/Editor/2D/Resources/LightCapBottomRight.png b/Packages/com.unity.render-pipelines.universal/Editor/2D/ResourceIcons/LightCapBottomRight.png similarity index 100% rename from Packages/com.unity.render-pipelines.universal/Editor/2D/Resources/LightCapBottomRight.png rename to Packages/com.unity.render-pipelines.universal/Editor/2D/ResourceIcons/LightCapBottomRight.png diff --git a/Packages/com.unity.render-pipelines.universal/Editor/2D/Resources/LightCapBottomRight.png.meta b/Packages/com.unity.render-pipelines.universal/Editor/2D/ResourceIcons/LightCapBottomRight.png.meta similarity index 100% rename from Packages/com.unity.render-pipelines.universal/Editor/2D/Resources/LightCapBottomRight.png.meta rename to Packages/com.unity.render-pipelines.universal/Editor/2D/ResourceIcons/LightCapBottomRight.png.meta diff --git a/Packages/com.unity.render-pipelines.universal/Editor/2D/Resources/LightCapDown.png b/Packages/com.unity.render-pipelines.universal/Editor/2D/ResourceIcons/LightCapDown.png similarity index 100% rename from Packages/com.unity.render-pipelines.universal/Editor/2D/Resources/LightCapDown.png rename to Packages/com.unity.render-pipelines.universal/Editor/2D/ResourceIcons/LightCapDown.png diff --git a/Packages/com.unity.render-pipelines.universal/Editor/2D/Resources/LightCapDown.png.meta b/Packages/com.unity.render-pipelines.universal/Editor/2D/ResourceIcons/LightCapDown.png.meta similarity index 100% rename from Packages/com.unity.render-pipelines.universal/Editor/2D/Resources/LightCapDown.png.meta rename to Packages/com.unity.render-pipelines.universal/Editor/2D/ResourceIcons/LightCapDown.png.meta diff --git a/Packages/com.unity.render-pipelines.universal/Editor/2D/Resources/LightCapTopLeft.png b/Packages/com.unity.render-pipelines.universal/Editor/2D/ResourceIcons/LightCapTopLeft.png similarity index 100% rename from Packages/com.unity.render-pipelines.universal/Editor/2D/Resources/LightCapTopLeft.png rename to Packages/com.unity.render-pipelines.universal/Editor/2D/ResourceIcons/LightCapTopLeft.png diff --git a/Packages/com.unity.render-pipelines.universal/Editor/2D/Resources/LightCapTopLeft.png.meta b/Packages/com.unity.render-pipelines.universal/Editor/2D/ResourceIcons/LightCapTopLeft.png.meta similarity index 100% rename from Packages/com.unity.render-pipelines.universal/Editor/2D/Resources/LightCapTopLeft.png.meta rename to Packages/com.unity.render-pipelines.universal/Editor/2D/ResourceIcons/LightCapTopLeft.png.meta diff --git a/Packages/com.unity.render-pipelines.universal/Editor/2D/Resources/LightCapTopRight.png b/Packages/com.unity.render-pipelines.universal/Editor/2D/ResourceIcons/LightCapTopRight.png similarity index 100% rename from Packages/com.unity.render-pipelines.universal/Editor/2D/Resources/LightCapTopRight.png rename to Packages/com.unity.render-pipelines.universal/Editor/2D/ResourceIcons/LightCapTopRight.png diff --git a/Packages/com.unity.render-pipelines.universal/Editor/2D/Resources/LightCapTopRight.png.meta b/Packages/com.unity.render-pipelines.universal/Editor/2D/ResourceIcons/LightCapTopRight.png.meta similarity index 100% rename from Packages/com.unity.render-pipelines.universal/Editor/2D/Resources/LightCapTopRight.png.meta rename to Packages/com.unity.render-pipelines.universal/Editor/2D/ResourceIcons/LightCapTopRight.png.meta diff --git a/Packages/com.unity.render-pipelines.universal/Editor/2D/Resources/LightCapUp.png b/Packages/com.unity.render-pipelines.universal/Editor/2D/ResourceIcons/LightCapUp.png similarity index 100% rename from Packages/com.unity.render-pipelines.universal/Editor/2D/Resources/LightCapUp.png rename to Packages/com.unity.render-pipelines.universal/Editor/2D/ResourceIcons/LightCapUp.png diff --git a/Packages/com.unity.render-pipelines.universal/Editor/2D/Resources/LightCapUp.png.meta b/Packages/com.unity.render-pipelines.universal/Editor/2D/ResourceIcons/LightCapUp.png.meta similarity index 100% rename from Packages/com.unity.render-pipelines.universal/Editor/2D/Resources/LightCapUp.png.meta rename to Packages/com.unity.render-pipelines.universal/Editor/2D/ResourceIcons/LightCapUp.png.meta diff --git a/Packages/com.unity.render-pipelines.universal/Editor/2D/Resources/PixelPerfectCamera.png b/Packages/com.unity.render-pipelines.universal/Editor/2D/ResourceIcons/PixelPerfectCamera.png similarity index 100% rename from Packages/com.unity.render-pipelines.universal/Editor/2D/Resources/PixelPerfectCamera.png rename to Packages/com.unity.render-pipelines.universal/Editor/2D/ResourceIcons/PixelPerfectCamera.png diff --git a/Packages/com.unity.render-pipelines.universal/Editor/2D/Resources/PixelPerfectCamera.png.meta b/Packages/com.unity.render-pipelines.universal/Editor/2D/ResourceIcons/PixelPerfectCamera.png.meta similarity index 100% rename from Packages/com.unity.render-pipelines.universal/Editor/2D/Resources/PixelPerfectCamera.png.meta rename to Packages/com.unity.render-pipelines.universal/Editor/2D/ResourceIcons/PixelPerfectCamera.png.meta diff --git a/Packages/com.unity.render-pipelines.universal/Editor/2D/Resources/SceneViewIcons.meta b/Packages/com.unity.render-pipelines.universal/Editor/2D/ResourceIcons/SceneViewIcons.meta similarity index 100% rename from Packages/com.unity.render-pipelines.universal/Editor/2D/Resources/SceneViewIcons.meta rename to Packages/com.unity.render-pipelines.universal/Editor/2D/ResourceIcons/SceneViewIcons.meta diff --git a/Packages/com.unity.render-pipelines.universal/Editor/2D/Resources/SceneViewIcons/FreeformLight.png b/Packages/com.unity.render-pipelines.universal/Editor/2D/ResourceIcons/SceneViewIcons/FreeformLight.png similarity index 100% rename from Packages/com.unity.render-pipelines.universal/Editor/2D/Resources/SceneViewIcons/FreeformLight.png rename to Packages/com.unity.render-pipelines.universal/Editor/2D/ResourceIcons/SceneViewIcons/FreeformLight.png diff --git a/Packages/com.unity.render-pipelines.universal/Editor/2D/Resources/SceneViewIcons/FreeformLight.png.meta b/Packages/com.unity.render-pipelines.universal/Editor/2D/ResourceIcons/SceneViewIcons/FreeformLight.png.meta similarity index 100% rename from Packages/com.unity.render-pipelines.universal/Editor/2D/Resources/SceneViewIcons/FreeformLight.png.meta rename to Packages/com.unity.render-pipelines.universal/Editor/2D/ResourceIcons/SceneViewIcons/FreeformLight.png.meta diff --git a/Packages/com.unity.render-pipelines.universal/Editor/2D/Resources/SceneViewIcons/GlobalLight.png b/Packages/com.unity.render-pipelines.universal/Editor/2D/ResourceIcons/SceneViewIcons/GlobalLight.png similarity index 100% rename from Packages/com.unity.render-pipelines.universal/Editor/2D/Resources/SceneViewIcons/GlobalLight.png rename to Packages/com.unity.render-pipelines.universal/Editor/2D/ResourceIcons/SceneViewIcons/GlobalLight.png diff --git a/Packages/com.unity.render-pipelines.universal/Editor/2D/Resources/SceneViewIcons/GlobalLight.png.meta b/Packages/com.unity.render-pipelines.universal/Editor/2D/ResourceIcons/SceneViewIcons/GlobalLight.png.meta similarity index 100% rename from Packages/com.unity.render-pipelines.universal/Editor/2D/Resources/SceneViewIcons/GlobalLight.png.meta rename to Packages/com.unity.render-pipelines.universal/Editor/2D/ResourceIcons/SceneViewIcons/GlobalLight.png.meta diff --git a/Packages/com.unity.render-pipelines.universal/Editor/2D/Resources/SceneViewIcons/ParametricLight.png b/Packages/com.unity.render-pipelines.universal/Editor/2D/ResourceIcons/SceneViewIcons/ParametricLight.png similarity index 100% rename from Packages/com.unity.render-pipelines.universal/Editor/2D/Resources/SceneViewIcons/ParametricLight.png rename to Packages/com.unity.render-pipelines.universal/Editor/2D/ResourceIcons/SceneViewIcons/ParametricLight.png diff --git a/Packages/com.unity.render-pipelines.universal/Editor/2D/Resources/SceneViewIcons/ParametricLight.png.meta b/Packages/com.unity.render-pipelines.universal/Editor/2D/ResourceIcons/SceneViewIcons/ParametricLight.png.meta similarity index 100% rename from Packages/com.unity.render-pipelines.universal/Editor/2D/Resources/SceneViewIcons/ParametricLight.png.meta rename to Packages/com.unity.render-pipelines.universal/Editor/2D/ResourceIcons/SceneViewIcons/ParametricLight.png.meta diff --git a/Packages/com.unity.render-pipelines.universal/Editor/2D/Resources/SceneViewIcons/PointLight.png b/Packages/com.unity.render-pipelines.universal/Editor/2D/ResourceIcons/SceneViewIcons/PointLight.png similarity index 100% rename from Packages/com.unity.render-pipelines.universal/Editor/2D/Resources/SceneViewIcons/PointLight.png rename to Packages/com.unity.render-pipelines.universal/Editor/2D/ResourceIcons/SceneViewIcons/PointLight.png diff --git a/Packages/com.unity.render-pipelines.universal/Editor/2D/Resources/SceneViewIcons/PointLight.png.meta b/Packages/com.unity.render-pipelines.universal/Editor/2D/ResourceIcons/SceneViewIcons/PointLight.png.meta similarity index 100% rename from Packages/com.unity.render-pipelines.universal/Editor/2D/Resources/SceneViewIcons/PointLight.png.meta rename to Packages/com.unity.render-pipelines.universal/Editor/2D/ResourceIcons/SceneViewIcons/PointLight.png.meta diff --git a/Packages/com.unity.render-pipelines.universal/Editor/2D/Resources/SceneViewIcons/SpriteLight.png b/Packages/com.unity.render-pipelines.universal/Editor/2D/ResourceIcons/SceneViewIcons/SpriteLight.png similarity index 100% rename from Packages/com.unity.render-pipelines.universal/Editor/2D/Resources/SceneViewIcons/SpriteLight.png rename to Packages/com.unity.render-pipelines.universal/Editor/2D/ResourceIcons/SceneViewIcons/SpriteLight.png diff --git a/Packages/com.unity.render-pipelines.universal/Editor/2D/Resources/SceneViewIcons/SpriteLight.png.meta b/Packages/com.unity.render-pipelines.universal/Editor/2D/ResourceIcons/SceneViewIcons/SpriteLight.png.meta similarity index 100% rename from Packages/com.unity.render-pipelines.universal/Editor/2D/Resources/SceneViewIcons/SpriteLight.png.meta rename to Packages/com.unity.render-pipelines.universal/Editor/2D/ResourceIcons/SceneViewIcons/SpriteLight.png.meta diff --git a/Packages/com.unity.render-pipelines.universal/Editor/2D/Resources/Sparkle.png b/Packages/com.unity.render-pipelines.universal/Editor/2D/Resources/Sparkle.png deleted file mode 100644 index eea0b6e897b..00000000000 --- a/Packages/com.unity.render-pipelines.universal/Editor/2D/Resources/Sparkle.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2432c4016903df7a0bd7b9cf422341c4a8d62049d8f41aa68507793b45352c92 -size 3250 diff --git a/Packages/com.unity.render-pipelines.universal/Editor/2D/Resources/Sparkle.png.meta b/Packages/com.unity.render-pipelines.universal/Editor/2D/Resources/Sparkle.png.meta deleted file mode 100644 index 4d78d5903a0..00000000000 --- a/Packages/com.unity.render-pipelines.universal/Editor/2D/Resources/Sparkle.png.meta +++ /dev/null @@ -1,98 +0,0 @@ -fileFormatVersion: 2 -guid: 4a0aca3a5f2effb41b43cc0a1661d845 -TextureImporter: - internalIDToNameTable: [] - externalObjects: {} - serializedVersion: 11 - 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 - isReadable: 0 - streamingMipmaps: 0 - streamingMipmapsPriority: 0 - vTOnly: 0 - grayScaleToAlpha: 0 - generateCubemap: 6 - cubemapConvolution: 0 - seamlessCubemap: 0 - textureFormat: 1 - maxTextureSize: 2048 - textureSettings: - serializedVersion: 2 - filterMode: -1 - aniso: -1 - mipBias: -100 - wrapU: 1 - wrapV: 1 - wrapW: 1 - nPOTScale: 0 - lightmap: 0 - compressionQuality: 50 - spriteMode: 1 - 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 - spriteGenerateDepthMesh: 0 - 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 - platformSettings: - - serializedVersion: 3 - buildTarget: DefaultTexturePlatform - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - spriteSheet: - serializedVersion: 2 - sprites: [] - outline: [] - physicsShape: [] - shadowShape: [] - bones: [] - spriteID: 5e97eb03825dee720800000000000000 - internalID: 0 - vertices: [] - indices: - edges: [] - weights: [] - secondaryTextures: [] - spritePackingTag: - pSDRemoveMatte: 0 - pSDShowRemoveMatteOption: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/2D/Light2DAuthoring.cs b/Packages/com.unity.render-pipelines.universal/Runtime/2D/Light2DAuthoring.cs index 44b94d6d8e8..7ce0ac31763 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/2D/Light2DAuthoring.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/2D/Light2DAuthoring.cs @@ -5,7 +5,7 @@ namespace UnityEngine.Rendering.Universal public sealed partial class Light2D { #if UNITY_EDITOR - private const string s_IconsPath = "Packages/com.unity.render-pipelines.universal/Editor/2D/Resources/SceneViewIcons/"; + private const string s_IconsPath = "Packages/com.unity.render-pipelines.universal/Editor/2D/ResourceIcons/SceneViewIcons/"; private static readonly string[] s_LightIconFileNames = new[] { "ParametricLight.png", diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/2D/PixelPerfectCamera.cs b/Packages/com.unity.render-pipelines.universal/Runtime/2D/PixelPerfectCamera.cs index 34dff51a3e3..b9a42d6ac21 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/2D/PixelPerfectCamera.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/2D/PixelPerfectCamera.cs @@ -10,6 +10,7 @@ namespace UnityEngine.Rendering.Universal [AddComponentMenu("Rendering/2D/Pixel Perfect Camera")] [RequireComponent(typeof(Camera))] [MovedFrom(true, "UnityEngine.Experimental.Rendering.Universal")] + [Icon("Packages/com.unity.render-pipelines.universal/Editor/2D/ResourceIcons/PixelPerfectCamera.png")] [HelpURL("https://docs.unity3d.com/Packages/com.unity.render-pipelines.universal@latest/index.html?subfolder=/manual/2d-pixelperfect.html%23properties")] public class PixelPerfectCamera : MonoBehaviour, IPixelPerfectCamera, ISerializationCallbackReceiver { diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/018_PointLightCookie_Compatibility.unity b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/018_PointLightCookie_Compatibility.unity index 65e68306539..bff8b232465 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/018_PointLightCookie_Compatibility.unity +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/018_PointLightCookie_Compatibility.unity @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:464c8b7302e9f4fd234253abc9a81828c5e2739c496e115f100e8b8f170593fd +oid sha256:50cc9e4ae59b0b707b650b317d32c99c1f93ee98c4e6df80b25e8b6e72b1dc0e size 13182 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/023_GizmosRendering.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/023_GizmosRendering.meta new file mode 100644 index 00000000000..b74e0d5d78b --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/023_GizmosRendering.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1fe0ed64202450440a509c37c4420736 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/023_GizmosRendering.unity b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/023_GizmosRendering.unity new file mode 100644 index 00000000000..64f494696a8 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/023_GizmosRendering.unity @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6d451315709bc46a21b2712a81e2f133cf13900b5d5862a2b8cfc3b4e9f6913e +size 25498 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/023_GizmosRendering.unity.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/023_GizmosRendering.unity.meta new file mode 100644 index 00000000000..0d15e1db9cb --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/023_GizmosRendering.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 8428147f42bae7241bba86207b956ad7 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/023_GizmosRendering/ToggleGizmos.cs b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/023_GizmosRendering/ToggleGizmos.cs new file mode 100644 index 00000000000..e1e6820c2eb --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/023_GizmosRendering/ToggleGizmos.cs @@ -0,0 +1,22 @@ +using UnityEngine; + +#if UNITY_EDITOR +using UnityEditorInternal; +#endif + +public class ToggleGizmos : MonoBehaviour +{ + private void OnEnable() + { +#if UNITY_EDITOR + InternalEditorUtility.SetShowGizmos(true); +#endif + } + + private void OnDisable() + { +#if UNITY_EDITOR + InternalEditorUtility.SetShowGizmos(false); +#endif + } +} diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/023_GizmosRendering/ToggleGizmos.cs.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/023_GizmosRendering/ToggleGizmos.cs.meta new file mode 100644 index 00000000000..ce0202aae28 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/023_GizmosRendering/ToggleGizmos.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 06bd12fbea11bcf4c8fbd8a476119a59 \ No newline at end of file From 871c05a1a5d95f36e22e62838fda413f56cc7b87 Mon Sep 17 00:00:00 2001 From: Reach Platform Support Date: Tue, 13 Oct 2026 15:00:09 +0000 Subject: [PATCH 27/49] [Port] [6000.3] [HDRP] Fix dark outline on geometry with MSAA and cloud layer --- .../HDRenderPipeline.RenderGraph.cs | 7 ++- .../ShaderLibrary/CopyDepthBuffer.shader | 53 +++++++++++++++++++ 2 files changed, 58 insertions(+), 2 deletions(-) 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 cfab787b1be..263f9e130a9 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 @@ -733,6 +733,7 @@ class CopyXRDepthPassData public TextureHandle output; public Vector2 blitScaleBias; public bool flipY; + public int passIndex; } void CopyDepth(RenderGraph renderGraph, HDCamera hdCamera, TextureHandle depthBuffer, TextureHandle output, bool copyForXR) @@ -749,6 +750,8 @@ void CopyDepth(RenderGraph renderGraph, HDCamera hdCamera, TextureHandle depthBu passData.blitScaleBias = copyForXR ? new Vector2(hdCamera.actualWidth / hdCamera.finalViewport.width, hdCamera.actualHeight / hdCamera.finalViewport.height) : RTHandles.rtHandleProperties.rtHandleScale; passData.flipY = copyForXR; + passData.passIndex = renderGraph.GetTextureDesc(depthBuffer).msaaSamples != MSAASamples.None ? 1 : 0; + Debug.Assert(!(copyForXR && passData.passIndex != 0), "MSAA depth copies do not support XR scaling and Y-flipping."); builder.SetRenderFunc( (CopyXRDepthPassData data, UnsafeGraphContext ctx) => @@ -759,7 +762,7 @@ void CopyDepth(RenderGraph renderGraph, HDCamera hdCamera, TextureHandle depthBu mpb.SetVector(HDShaderIDs._BlitScaleBias, data.blitScaleBias); mpb.SetInt(HDShaderIDs._FlipY, data.flipY ? 1 : 0); - CoreUtils.DrawFullScreen(CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd), data.copyDepth, mpb); + CoreUtils.DrawFullScreen(CommandBufferHelpers.GetNativeCommandBuffer(ctx.cmd), data.copyDepth, mpb, data.passIndex); }); } } @@ -1733,7 +1736,7 @@ TransparentPrepassOutput RenderTransparentPrepass(RenderGraph renderGraph, Culli renderQueueRange: GetTransparentRenderQueueRange(hdCamera, false))); // Copy depth buffer for refraction - CopyDepth(renderGraph, hdCamera, prepassOutput.resolvedDepthBuffer, output.depthBufferPreRefraction, false); + CopyDepth(renderGraph, hdCamera, prepassOutput.depthBuffer, output.depthBufferPreRefraction, false); if (hasWater) { diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/CopyDepthBuffer.shader b/Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/CopyDepthBuffer.shader index 6450e147eeb..961aa0a2b44 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/CopyDepthBuffer.shader +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/CopyDepthBuffer.shader @@ -76,6 +76,59 @@ Shader "Hidden/HDRP/CopyDepthBuffer" ENDHLSL } + + Pass + { + Name "Copy Depth MSAA" + + Cull Off + ZTest Always + ZWrite On + Blend Off + ColorMask 0 + + HLSLPROGRAM + #pragma target 4.5 + #pragma editor_sync_compilation + #pragma only_renderers d3d11 playstation xboxone xboxseries vulkan metal switch switch2 + #pragma fragment Frag + #pragma vertex Vert + + #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" + #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" + + TEXTURE2D_X_MSAA(float, _InputDepthTexture); + + struct Attributes + { + uint vertexID : SV_VertexID; + UNITY_VERTEX_INPUT_INSTANCE_ID + }; + + struct Varyings + { + float4 positionCS : SV_Position; + UNITY_VERTEX_OUTPUT_STEREO + }; + + Varyings Vert(Attributes input) + { + Varyings output; + UNITY_SETUP_INSTANCE_ID(input); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(output); + output.positionCS = GetFullScreenTriangleVertexPosition(input.vertexID); + return output; + } + + // SV_SampleIndex forces per-sample execution so each sample of the destination gets its own source sample. + float Frag(Varyings input, uint sampleIndex : SV_SampleIndex) : SV_Depth + { + UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(input); + return LOAD_TEXTURE2D_X_MSAA(_InputDepthTexture, int2(input.positionCS.xy), sampleIndex).x; + } + + ENDHLSL + } } Fallback Off } From 15cb2b2adcca00b396e178b97bd26639dd32c5ae Mon Sep 17 00:00:00 2001 From: Reach Platform Support Date: Tue, 13 Oct 2026 15:00:10 +0000 Subject: [PATCH 28/49] [Port] [6000.3] Metal: skip compute kernels whose threadgroup exceeds the pipeline max --- .../Assets/Tests/HDRP_Runtime_Graphics_Tests.cs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Tests/SRPTests/Projects/HDRP_RuntimeTests/Assets/Tests/HDRP_Runtime_Graphics_Tests.cs b/Tests/SRPTests/Projects/HDRP_RuntimeTests/Assets/Tests/HDRP_Runtime_Graphics_Tests.cs index d390997fdac..7ca40dac5c5 100644 --- a/Tests/SRPTests/Projects/HDRP_RuntimeTests/Assets/Tests/HDRP_Runtime_Graphics_Tests.cs +++ b/Tests/SRPTests/Projects/HDRP_RuntimeTests/Assets/Tests/HDRP_Runtime_Graphics_Tests.cs @@ -78,6 +78,13 @@ public void SetDefaultResolution() "https://jira.unity3d.com/browse/UUM-147661 - 6000.3 only: crashes the player and aborts the rest of the suite.", runtimePlatforms: new RuntimePlatform[] { RuntimePlatform.Switch } )] + [IgnoreGraphicsTest( + "011-HighQualityLines$", + "HQ Line Rendering needs a 1024-thread compute threadgroup; Intel Mac Metal caps below that. https://jira.unity3d.com/browse/UUM-147457", + allowOverrideIgnore: false, + architectures: new Architecture[] { Architecture.X64 }, + graphicsDeviceTypes: new GraphicsDeviceType[] { GraphicsDeviceType.Metal } + )] public IEnumerator Run(SceneGraphicsTestCase testCase) { yield return HDRP_GraphicTestRunner.Run(testCase); From 2aa1d1fc5afbd2468432880f23fcba5c7274b10e Mon Sep 17 00:00:00 2001 From: Marta Malberti Date: Tue, 13 Oct 2026 15:00:10 +0000 Subject: [PATCH 29/49] [Port] [6000.3] [DOCG-9120] Add Shader Graph project settings reference page --- .../Shader-Graph-Project-Settings.md | 24 +++++++++++-------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/Packages/com.unity.shadergraph/Documentation~/Shader-Graph-Project-Settings.md b/Packages/com.unity.shadergraph/Documentation~/Shader-Graph-Project-Settings.md index 3780da6fa18..90bc48e5c47 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Shader-Graph-Project-Settings.md +++ b/Packages/com.unity.shadergraph/Documentation~/Shader-Graph-Project-Settings.md @@ -1,30 +1,34 @@ # Shader Graph project settings reference -Use the Shader Graph project settings to define shader graph settings for your entire project. To access the Shader Graph project settings, do the following: +Use the Shader Graph project settings to define shader graph settings for your entire project. -1. From the main menu select **Edit** > **Project Settings**. The **Project Settings** window is displayed. -2. Select **ShaderGraph**. +To open these settings, go to **Edit** > **Project Settings** > **Shader Graph**. +The **Shader Graph** category in the **Project Settings** window contains the following properties: -| Property | Description | +| **Property** | **Description** | |:-------------------------|:----------- | -| **Shader Variant Limit** | Set the maximum number of variants allowed in the project. If your graph exceeds this maximum value, Unity returns the following error:
Validation: Graph is generating too many variants. Either delete Keywords, reduce Keyword variants or increase the Shader Variant Limit in Preferences > Shader Graph.
For more information about shader variants, refer to [Making multiple shader program variants](https://docs.unity3d.com/Manual/SL-MultipleProgramVariants.html). | +| **Override Variant Limit** | Overrides the default limit on the number of shader variants Shader Graph generates for the project. When you disable this property, Shader Graph uses a default of 2048 shader variants and ignores the value of **Shader Variant Limit**. Unity disables this property by default. | +| **Shader Variant Limit** | Sets the maximum number of shader variants Shader Graph generates for the project. For more information about reducing shader variants, refer to [Reduce shader variants in URP](https://docs.unity3d.com/Manual/urp/shader-stripping.html).

This property is available only when you enable **Override Variant Limit**. | + ## Custom Interpolator Channel Settings -It's impossible to limit the number of channels users can create in a Shader Graph. Use **Custom Interpolator Channel Settings** to create alerts that let users know when they're close to, or have exceeded, the channel limit for the target platform. Unity uses these settings to help Shader Graph users maintain compatibility with target platforms when using custom interpolators. For more information, refer to [Custom interpolators](Custom-Interpolators.md). +The **Custom Interpolator Channel Settings** section contains the following properties. For more information, refer to [Custom interpolators](Custom-Interpolators.md). -| Property | Description | +| **Property** | **Description** | |:-------------------------|:-----------------------------------| | **Error Threshold** | Specify the number of channels at which users are notified that they're at, or have surpassed, the channel limit. This property has a minimum value of 8 channels and must be higher than **Warning Threshold**. | | **Warning Threshold** | Specify the number of channels at which users are warned that they are close to the channel limit. This property must be lower than **Error Threshold** and between 8 and 32 channels. | -## Heatmap Color Mode Settings +## Heatmap Color Mode Settings + +The **Heatmap Color Mode Settings** section contains the following properties. For more information, refer to [Create a custom Shader Graph Heatmap Values asset](Color-Modes.md#customize-the-heatmap-color-mode). -You can customize the [Heatmap color mode](Color-Modes.md#heatmap-colors) and use different sets of colors with different node assignments according to your project needs. For this, you first have to [create a custom Shader Graph Heatmap Values asset](Color-Modes.md#customize-the-heatmap-color-mode). +The **Heatmap Color Mode Settings** section contains the following properties: -| Property | Description | +| **Property** | **Description** | |:------------------|:-------------------------------------------| | **Custom Values** | Specify the Shader Graph Heatmap Values asset to use for your project, or **None** if you want to use the default values. | From e0b6397add085f4cea4f508f34af639fb1c004d1 Mon Sep 17 00:00:00 2001 From: Reach Platform Support Date: Thu, 15 Oct 2026 09:38:35 +0000 Subject: [PATCH 30/49] [Port] [6000.3] Fix speckles/white spots with APV --- .../Lighting/ProbeVolume/ProbeVolume.hlsl | 29 +++++++++++++------ 1 file changed, 20 insertions(+), 9 deletions(-) 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 065960fa325..a72a23ad2d0 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 @@ -279,11 +279,8 @@ bool LoadCellIndexMetaData(uint cellFlatIdx, out uint chunkIndex, out int stepSi return metaData.x != 0xFFFFFFFF; } -uint GetIndexData(APVResources apvRes, float3 posWS) +uint GetIndexData(APVResources apvRes, float3 entryPos, float3 residualPosWS) { - float3 entryPos = floor(posWS * _APVRcpIndirectionEntryDim); - float3 topLeftEntryWS = entryPos * _APVIndirectionEntryDim; - bool isALoadedCell = all(entryPos >= _APVMinLoadedCellInEntries) && all(entryPos <= _APVMaxLoadedCellInEntries); // Make sure we start from 0 @@ -300,7 +297,6 @@ uint GetIndexData(APVResources apvRes, float3 posWS) uint chunkIdx; if (LoadCellIndexMetaData(flatIdx, chunkIdx, stepSize, minRelativeIdx, sizeOfValid)) { - float3 residualPosWS = posWS - topLeftEntryWS; uint3 localBrickIndex = floor(residualPosWS / (_APVMinBrickSize * stepSize)); localBrickIndex = min(localBrickIndex, (uint3)(3 * 3 * 3 - 1)); // due to floating point issue, we may query an invalid brick localBrickIndex -= minRelativeIdx; // Relative to valid region @@ -349,8 +345,10 @@ APVResources FillAPVResources() bool TryToGetPoolUVWAndSubdiv(APVResources apvRes, float3 posWSForSample, out float3 uvw, out uint subdiv) { - // resolve the index - uint packed_pool_idx = GetIndexData(apvRes, posWSForSample.xyz); + float3 posInEntries = posWSForSample.xyz * _APVRcpIndirectionEntryDim; + float3 entryPos = floor(posInEntries); // integer coord of indirection entry + float3 residualPosWS = min(posInEntries - entryPos, 0.999999) * _APVIndirectionEntryDim; // WS position relative to indirection entry + uint packed_pool_idx = GetIndexData(apvRes, entryPos, residualPosWS); // unpack pool idx // size is encoded in the upper 4 bits @@ -364,8 +362,21 @@ bool TryToGetPoolUVWAndSubdiv(APVResources apvRes, float3 posWSForSample, out fl pool_idx.x = floor(flattened_pool_idx - (pool_idx.y * _APVPoolDim.x)); // calculate uv offset and scale - float brickSizeWS = pow(3.0, subdiv) * _APVMinBrickSize; - float3 offset = frac(posWSForSample.xyz / brickSizeWS); // [0;1] in brick space + float brickSizeWS = round(pow(3.0, subdiv)) * _APVMinBrickSize; + float3 offset = frac(residualPosWS / brickSizeWS); // [0;1] in brick space + + // special case when bricks are large enough to span multiple indirection entries + if (brickSizeWS > _APVIndirectionEntryDim) + { + float entriesPerBrick = round(brickSizeWS * _APVRcpIndirectionEntryDim); + float3 entryOffsetInBrick = entryPos - entriesPerBrick * floor(entryPos / entriesPerBrick); // entryPos mod entriesPerBrick +#if defined(SHADER_API_GAMECORE) + entryOffsetInBrick = select(entryOffsetInBrick >= entriesPerBrick, entryOffsetInBrick - entriesPerBrick, entryOffsetInBrick); +#else + entryOffsetInBrick = (entryOffsetInBrick >= entriesPerBrick) ? (entryOffsetInBrick - entriesPerBrick) : entryOffsetInBrick; +#endif + offset = min((entryOffsetInBrick * _APVIndirectionEntryDim + residualPosWS) / brickSizeWS, 0.9999); + } //offset = clamp( offset, 0.25, 0.75 ); // [0.25;0.75] in brick space (is this actually necessary?) uvw = (pool_idx + 0.5 + (3.0 * offset)) * _APVRcpPoolDim; // add offset with brick footprint converted to text footprint in pool texel space From bc4b526c1759dc9716903f4d788015fbab7dd14a Mon Sep 17 00:00:00 2001 From: Richard Underhill Date: Thu, 15 Oct 2026 09:38:35 +0000 Subject: [PATCH 31/49] [6000.3] [URP] [ShaderGraph] [UUM-155529] Fix LOD Cross Fade include leaking into other Shader Graphs imported in the same session --- .../Targets/UniversalLitSubTarget.cs | 2 +- .../ShaderGraph/Targets/UniversalTarget.cs | 4 +- ...derPipelines.Universal.Editor.Tests.asmdef | 3 +- ...rsalShaderGraphGenerationIsolationTests.cs | 115 ++++++++++++++++++ ...haderGraphGenerationIsolationTests.cs.meta | 11 ++ .../Editor/AssemblyInfo.cs | 1 + 6 files changed, 132 insertions(+), 4 deletions(-) create mode 100644 Packages/com.unity.render-pipelines.universal/Tests/Editor/UniversalShaderGraphGenerationIsolationTests.cs create mode 100644 Packages/com.unity.render-pipelines.universal/Tests/Editor/UniversalShaderGraphGenerationIsolationTests.cs.meta diff --git a/Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Targets/UniversalLitSubTarget.cs b/Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Targets/UniversalLitSubTarget.cs index 47e9989e841..4e43afb3694 100644 --- a/Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Targets/UniversalLitSubTarget.cs +++ b/Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Targets/UniversalLitSubTarget.cs @@ -441,7 +441,7 @@ public static PassDescriptor Forward( pragmas = pragmas ?? CorePragmas.Forward, // NOTE: SM 2.0 only GL defines = new DefineCollection() { }, keywords = new KeywordCollection() { keywords }, - includes = LitIncludes.Forward, + includes = new IncludeCollection { LitIncludes.Forward }, // Custom Interpolator Support customInterpolators = CoreCustomInterpDescriptors.Common diff --git a/Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Targets/UniversalTarget.cs b/Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Targets/UniversalTarget.cs index 688d584c119..5e99eeab1a9 100644 --- a/Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Targets/UniversalTarget.cs +++ b/Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Targets/UniversalTarget.cs @@ -1169,7 +1169,7 @@ public static PassDescriptor MotionVectors(UniversalTarget target) pragmas = CorePragmas.MotionVectors, defines = new DefineCollection(), keywords = new KeywordCollection(), - includes = CoreIncludes.MotionVectors, + includes = new IncludeCollection { CoreIncludes.MotionVectors }, // Custom Interpolator Support customInterpolators = CoreCustomInterpDescriptors.Common @@ -1215,7 +1215,7 @@ public static PassDescriptor XRMotionVectors(UniversalTarget target) pragmas = CorePragmas.XRMotionVectors, defines = new DefineCollection(), keywords = new KeywordCollection(), - includes = CoreIncludes.XRMotionVectors, + includes = new IncludeCollection { CoreIncludes.XRMotionVectors }, // Custom Interpolator Support customInterpolators = CoreCustomInterpDescriptors.Common diff --git a/Packages/com.unity.render-pipelines.universal/Tests/Editor/Unity.RenderPipelines.Universal.Editor.Tests.asmdef b/Packages/com.unity.render-pipelines.universal/Tests/Editor/Unity.RenderPipelines.Universal.Editor.Tests.asmdef index 2a729d0e790..29f8d15e213 100644 --- a/Packages/com.unity.render-pipelines.universal/Tests/Editor/Unity.RenderPipelines.Universal.Editor.Tests.asmdef +++ b/Packages/com.unity.render-pipelines.universal/Tests/Editor/Unity.RenderPipelines.Universal.Editor.Tests.asmdef @@ -10,7 +10,8 @@ "GUID:516a5277b8c3b4f4c8cc86b77b1591ff", "GUID:d8b63aba1907145bea998dd612889d6b", "GUID:6e5480588ffa37d4f82fe96c45e8ce9c", - "GUID:3eae0364be2026648bf74846acb8a731" + "GUID:3eae0364be2026648bf74846acb8a731", + "GUID:be0903cd8e1546f498710afdc59db5eb" ], "includePlatforms": [ "Editor" diff --git a/Packages/com.unity.render-pipelines.universal/Tests/Editor/UniversalShaderGraphGenerationIsolationTests.cs b/Packages/com.unity.render-pipelines.universal/Tests/Editor/UniversalShaderGraphGenerationIsolationTests.cs new file mode 100644 index 00000000000..8e5ba15941c --- /dev/null +++ b/Packages/com.unity.render-pipelines.universal/Tests/Editor/UniversalShaderGraphGenerationIsolationTests.cs @@ -0,0 +1,115 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using NUnit.Framework; +using UnityEditor.Rendering.Universal.ShaderGraph; +using UnityEditor.ShaderGraph; + +namespace UnityEditor.Rendering.Universal.Tests +{ + // A pass builder that assigns a shared static collection to a PassDescriptor and then calls Add on + // it writes into the static itself. Every graph generated later in the same domain inherits the + // addition, so the same .shadergraph imports to different code depending on what was imported + // before it, and AssetBundles built from identical sources get different hashes (IN-155496). + [TestFixture] + class UniversalShaderGraphGenerationIsolationTests + { + const string k_LODCrossFadeInclude = "Packages/com.unity.render-pipelines.universal/ShaderLibrary/LODCrossFade.hlsl"; + + static UniversalTarget CreateTarget(Type subTargetType, bool supportsLodCrossFade) + { + var target = new UniversalTarget(); + Assert.IsTrue(target.TrySetActiveSubTarget(subTargetType), $"{subTargetType.Name} is not registered on UniversalTarget"); + target.supportsLodCrossFade = supportsLodCrossFade; + return target; + } + + static string GenerateShader(Type subTargetType, bool supportsLodCrossFade) + { + var target = CreateTarget(subTargetType, supportsLodCrossFade); + + var graph = new GraphData(); + graph.AddContexts(); + graph.InitializeOutputs(new Target[] { target }, new[] { BlockFields.VertexDescription.Position, BlockFields.SurfaceDescription.BaseColor }); + + return new Generator(graph, graph.outputNode, GenerationMode.ForReals, "GenerationIsolation").generatedShader; + } + + static HashSet StaticFieldValues(Type fieldType) + { + var values = typeof(UniversalTarget).Assembly.GetTypes() + .Where(type => !type.ContainsGenericParameters) + .SelectMany(type => type.GetFields(BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic)) + .Where(field => field.FieldType == fieldType) + .Select(field => field.GetValue(null)) + .Where(value => value != null); + + // The collection types do not override Equals, so the set compares by reference. + return new HashSet(values); + } + + static IEnumerable BuildPasses(UniversalTarget target) + { + var context = new TargetSetupContext(); + target.Setup(ref context); + + var passes = context.subShaders + .SelectMany(subShader => subShader.passes) + .Select(pass => pass.descriptor) + .ToList(); + + // Generation only builds this pass when Spacewarp is supported, so build it directly to cover it everywhere. + passes.Add(CorePasses.XRMotionVectors(target)); + return passes; + } + + [TestCase(typeof(UniversalUnlitSubTarget))] + [TestCase(typeof(UniversalLitSubTarget))] + public void PlainGraphOutputDoesNotDependOnPreviouslyGeneratedCrossFadeGraph(Type subTargetType) + { + var plainBefore = GenerateShader(subTargetType, supportsLodCrossFade: false); + var crossFade = GenerateShader(subTargetType, supportsLodCrossFade: true); + var plainAfter = GenerateShader(subTargetType, supportsLodCrossFade: false); + + StringAssert.Contains(k_LODCrossFadeInclude, crossFade, "the cross-fade graph no longer includes LODCrossFade.hlsl, so this test checks nothing"); + StringAssert.DoesNotContain(k_LODCrossFadeInclude, plainAfter); + Assert.AreEqual(plainBefore, plainAfter, "generating a cross-fade graph changed the code of a plain graph generated after it"); + } + + // The test above only sees the passes that generation builds on this machine, and XRMotionVectors + // needs Spacewarp support. This checks the cause on every pass instead and names the offender: a + // pass that the cross-fade setting adds to has to own the collection it adds to. + [TestCase(typeof(UniversalUnlitSubTarget))] + [TestCase(typeof(UniversalLitSubTarget))] + public void CrossFadePassesDoNotAddToSharedStaticCollections(Type subTargetType) + { + var staticIncludes = StaticFieldValues(typeof(IncludeCollection)); + var staticKeywords = StaticFieldValues(typeof(KeywordCollection)); + var staticDefines = StaticFieldValues(typeof(DefineCollection)); + + var target = CreateTarget(subTargetType, supportsLodCrossFade: true); + var sharedCollections = new List(); + var crossFadePassCount = 0; + + foreach (var pass in BuildPasses(target)) + { + var hasCrossFadeInclude = pass.includes != null && pass.includes.Any(include => include.path == k_LODCrossFadeInclude); + if (!hasCrossFadeInclude) + continue; + + crossFadePassCount++; + + if (staticIncludes.Contains(pass.includes)) + sharedCollections.Add($"{pass.displayName}: includes"); + if (pass.keywords != null && staticKeywords.Contains(pass.keywords)) + sharedCollections.Add($"{pass.displayName}: keywords"); + if (pass.defines != null && staticDefines.Contains(pass.defines)) + sharedCollections.Add($"{pass.displayName}: defines"); + } + + Assert.Greater(crossFadePassCount, 0, "no pass includes LODCrossFade.hlsl, so this test checks nothing"); + CollectionAssert.IsEmpty(sharedCollections, "a pass added the cross-fade setup to a shared static collection"); + } + } +} diff --git a/Packages/com.unity.render-pipelines.universal/Tests/Editor/UniversalShaderGraphGenerationIsolationTests.cs.meta b/Packages/com.unity.render-pipelines.universal/Tests/Editor/UniversalShaderGraphGenerationIsolationTests.cs.meta new file mode 100644 index 00000000000..1221bbdfee7 --- /dev/null +++ b/Packages/com.unity.render-pipelines.universal/Tests/Editor/UniversalShaderGraphGenerationIsolationTests.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f760a530a2a04e8785fce36c84109f0f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.unity.shadergraph/Editor/AssemblyInfo.cs b/Packages/com.unity.shadergraph/Editor/AssemblyInfo.cs index 47d964ad47b..55e51147801 100644 --- a/Packages/com.unity.shadergraph/Editor/AssemblyInfo.cs +++ b/Packages/com.unity.shadergraph/Editor/AssemblyInfo.cs @@ -2,6 +2,7 @@ [assembly: InternalsVisibleTo("Unity.ShaderGraph.Editor.Tests")] [assembly: InternalsVisibleTo("Unity.RenderPipelines.Universal.Editor")] +[assembly: InternalsVisibleTo("Unity.RenderPipelines.Universal.Editor.Tests")] [assembly: InternalsVisibleTo("Unity.ShaderGraph.GraphicsTests")] [assembly: InternalsVisibleTo("Unity.ShaderGraph.Editor.GraphicsTests")] [assembly: InternalsVisibleTo("Unity.RenderPipelines.HighDefinition.Editor")] From 0faf62e1c3dbd5a33fdbf142f0269a42d0276df2 Mon Sep 17 00:00:00 2001 From: Reach Platform Support Date: Thu, 15 Oct 2026 09:38:35 +0000 Subject: [PATCH 32/49] [Port] [6000.3] [UUM-155361] [HDRP] Add 4012_MotionBlur_CameraOnly reference images and re-enable test --- .../Scene Settings Profile 1.asset | 575 ++++++++++++++++++ .../Scene Settings Profile 1.asset.meta | 8 + .../4012_MotionBlur_CameraOnly.unity | 4 +- .../GraphicTests/Tests/HDRP_Graphics_Tests.cs | 1 - 4 files changed, 585 insertions(+), 3 deletions(-) create mode 100644 Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/4x_PostProcessing/4011_MotionBlur/Scene Settings Profile 1.asset create mode 100644 Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/4x_PostProcessing/4011_MotionBlur/Scene Settings Profile 1.asset.meta diff --git a/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/4x_PostProcessing/4011_MotionBlur/Scene Settings Profile 1.asset b/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/4x_PostProcessing/4011_MotionBlur/Scene Settings Profile 1.asset new file mode 100644 index 00000000000..2e9f0f04f15 --- /dev/null +++ b/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/4x_PostProcessing/4011_MotionBlur/Scene Settings Profile 1.asset @@ -0,0 +1,575 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-7697336993926440278 +MonoBehaviour: + m_ObjectHideFlags: 3 + 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: 0d7593b3a9277ac4696b20006c21dde2, type: 3} + m_Name: + m_EditorClassIdentifier: + active: 1 + m_Version: 1 + skyType: + m_OverrideState: 1 + m_Value: 1 + cloudType: + m_OverrideState: 0 + m_Value: 0 + skyAmbientMode: + m_OverrideState: 1 + 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: 100 + fogType: + m_OverrideState: 1 + m_Value: 2 +--- !u!114 &-6413792784233250209 +MonoBehaviour: + m_ObjectHideFlags: 3 + 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: 2150ee00179b2f4418ea8b21a7e98eea, type: 3} + m_Name: + m_EditorClassIdentifier: + active: 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} + tint: + m_OverrideState: 0 + m_Value: {r: 1, g: 1, b: 1, a: 1} + density: + m_OverrideState: 1 + m_Value: 1 + maxFogDistance: + m_OverrideState: 1 + m_Value: 5000 + mipFogMaxMip: + m_OverrideState: 1 + m_Value: 0.5 + mipFogNear: + m_OverrideState: 1 + m_Value: 0 + mipFogFar: + m_OverrideState: 1 + m_Value: 1000 + fogDistance: + m_OverrideState: 1 + m_Value: 200 + fogBaseHeight: + m_OverrideState: 1 + m_Value: 0 + fogHeightAttenuation: + m_OverrideState: 1 + m_Value: 0.2 +--- !u!114 &-3990501575690934820 +MonoBehaviour: + m_ObjectHideFlags: 3 + 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: da5ab44aadfb1804db5fd470983ac1b8, type: 3} + m_Name: LiftGammaGain + m_EditorClassIdentifier: + active: 0 + lift: + m_OverrideState: 0 + m_Value: {x: 1, y: 1, z: 1, w: 0} + gamma: + m_OverrideState: 0 + m_Value: {x: 1, y: 1, z: 1, w: 0} + gain: + m_OverrideState: 0 + m_Value: {x: 1, y: 1, z: 1, w: 0} +--- !u!114 &-2963969148509422956 +MonoBehaviour: + m_ObjectHideFlags: 3 + 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: 7ddcec8a8eb2d684d833ac8f5d26aebd, type: 3} + m_Name: + m_EditorClassIdentifier: + active: 1 + interCascadeBorders: 1 + maxShadowDistance: + m_OverrideState: 1 + m_Value: 500 + directionalTransmissionMultiplier: + m_OverrideState: 0 + m_Value: 1 + cascadeShadowSplitCount: + m_OverrideState: 1 + m_Value: 4 + cascadeShadowSplit0: + m_OverrideState: 1 + m_Value: 0.05 + cascadeShadowSplit1: + m_OverrideState: 1 + m_Value: 0.15 + cascadeShadowSplit2: + m_OverrideState: 1 + m_Value: 0.3 + cascadeShadowBorder0: + m_OverrideState: 1 + m_Value: 0 + cascadeShadowBorder1: + m_OverrideState: 1 + m_Value: 0 + cascadeShadowBorder2: + m_OverrideState: 1 + m_Value: 0 + cascadeShadowBorder3: + m_OverrideState: 1 + m_Value: 0 +--- !u!114 &-1977287653889231898 +MonoBehaviour: + m_ObjectHideFlags: 3 + 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: aaa3b8214f75b354e9ba2caadd022259, type: 3} + m_Name: DepthOfField + m_EditorClassIdentifier: + active: 0 + quality: + m_OverrideState: 0 + m_Value: 1 + focusMode: + m_OverrideState: 1 + m_Value: 0 + focusDistance: + m_OverrideState: 1 + m_Value: 10 + focusDistanceMode: + m_OverrideState: 0 + m_Value: 0 + nearFocusStart: + m_OverrideState: 1 + m_Value: 0 + nearFocusEnd: + m_OverrideState: 1 + m_Value: 4 + farFocusStart: + m_OverrideState: 1 + m_Value: 10 + farFocusEnd: + m_OverrideState: 1 + m_Value: 20 + m_NearSampleCount: + m_OverrideState: 0 + m_Value: 5 + m_NearMaxBlur: + m_OverrideState: 0 + m_Value: 4 + m_FarSampleCount: + m_OverrideState: 0 + m_Value: 7 + m_FarMaxBlur: + m_OverrideState: 0 + m_Value: 8 + m_Resolution: + m_OverrideState: 0 + m_Value: 2 + m_HighQualityFiltering: + m_OverrideState: 0 + m_Value: 1 + m_PhysicallyBased: + m_OverrideState: 0 + m_Value: 0 + m_AdaptiveSamplingWeight: + m_OverrideState: 0 + m_Value: 0.75 + m_LimitManualRangeNearBlur: + m_OverrideState: 0 + m_Value: 0 + coCStabilization: + m_OverrideState: 0 + m_Value: 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: d7fd9488000d3734a9e00ee676215985, type: 3} + m_Name: Scene Settings Profile 1 + m_EditorClassIdentifier: + components: + - {fileID: -2963969148509422956} + - {fileID: -7697336993926440278} + - {fileID: 2523018487990756456} + - {fileID: -6413792784233250209} + - {fileID: 1906998338381081184} + - {fileID: -1977287653889231898} + - {fileID: -3990501575690934820} + - {fileID: 4496069717186440673} + - {fileID: 6271081758499213648} +--- !u!114 &1906998338381081184 +MonoBehaviour: + m_ObjectHideFlags: 3 + 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: 59b6606ef2548734bb6d11b9d160bc7e, type: 3} + m_Name: HDRISky + m_EditorClassIdentifier: + active: 0 + rotation: + m_OverrideState: 1 + m_Value: 0 + skyIntensityMode: + m_OverrideState: 1 + m_Value: 0 + exposure: + m_OverrideState: 1 + m_Value: 0 + multiplier: + m_OverrideState: 1 + m_Value: 1 + upperHemisphereLuxValue: + m_OverrideState: 1 + m_Value: 5.2074246 + upperHemisphereLuxColor: + m_OverrideState: 1 + m_Value: {x: 0, y: 0, z: 0} + desiredLuxValue: + m_OverrideState: 1 + m_Value: 20000 + updateMode: + m_OverrideState: 1 + m_Value: 0 + updatePeriod: + m_OverrideState: 1 + m_Value: 0 + includeSunInBaking: + m_OverrideState: 1 + m_Value: 0 + m_SkyVersion: 1 + enableDistortion: + m_OverrideState: 0 + m_Value: 0 + procedural: + m_OverrideState: 0 + m_Value: 1 + scrollDirection: + m_OverrideState: 0 + m_Value: 0 + m_ObsoleteScrollSpeed: + m_OverrideState: 0 + m_Value: 1 + hdriSky: + m_OverrideState: 1 + m_Value: {fileID: 8900000, guid: 614ae0372d7dfb847a1926990e89fa06, type: 3} + distortionMode: + m_OverrideState: 0 + m_Value: 0 + flowmap: + m_OverrideState: 0 + m_Value: {fileID: 0} + upperHemisphereOnly: + m_OverrideState: 0 + m_Value: 1 + scrollOrientation: + m_OverrideState: 0 + m_Value: + mode: 1 + customValue: 0 + additiveValue: 0 + multiplyValue: 1 + scrollSpeed: + m_OverrideState: 0 + m_Value: + mode: 1 + customValue: 100 + additiveValue: 0 + multiplyValue: 1 + sunInitialRotation: + m_OverrideState: 0 + m_Value: -Infinity + lockSun: + m_OverrideState: 0 + m_Value: 0 + enableBackplate: + m_OverrideState: 0 + m_Value: 0 + backplateType: + m_OverrideState: 0 + m_Value: 0 + groundLevel: + m_OverrideState: 0 + m_Value: 0 + scale: + m_OverrideState: 0 + m_Value: {x: 32, y: 32} + projectionDistance: + m_OverrideState: 0 + m_Value: 16 + plateRotation: + m_OverrideState: 0 + m_Value: 0 + plateTexRotation: + m_OverrideState: 0 + m_Value: 0 + plateTexOffset: + m_OverrideState: 0 + m_Value: {x: 0, y: 0} + blendAmount: + m_OverrideState: 0 + m_Value: 0 + shadowTint: + m_OverrideState: 0 + m_Value: {r: 0.5, g: 0.5, b: 0.5, a: 1} + pointLightShadow: + m_OverrideState: 0 + m_Value: 0 + dirLightShadow: + m_OverrideState: 0 + m_Value: 0 + rectLightShadow: + m_OverrideState: 0 + m_Value: 0 +--- !u!114 &2523018487990756456 +MonoBehaviour: + m_ObjectHideFlags: 3 + 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: 3df29e7cc05fbec4aa43e06ea875565d, type: 3} + m_Name: + m_EditorClassIdentifier: + active: 0 + rotation: + m_OverrideState: 1 + m_Value: 0 + skyIntensityMode: + m_OverrideState: 1 + m_Value: 0 + exposure: + m_OverrideState: 1 + m_Value: 0 + multiplier: + m_OverrideState: 1 + m_Value: 1 + upperHemisphereLuxValue: + m_OverrideState: 1 + m_Value: 1 + upperHemisphereLuxColor: + m_OverrideState: 0 + m_Value: {x: 0, y: 0, z: 0} + desiredLuxValue: + m_OverrideState: 1 + m_Value: 20000 + updateMode: + m_OverrideState: 1 + m_Value: 0 + updatePeriod: + m_OverrideState: 1 + m_Value: 0 + includeSunInBaking: + m_OverrideState: 1 + m_Value: 0 + sunSize: + m_OverrideState: 1 + m_Value: 0.04 + sunSizeConvergence: + m_OverrideState: 1 + m_Value: 5 + atmosphereThickness: + m_OverrideState: 1 + m_Value: 1 + skyTint: + m_OverrideState: 1 + m_Value: {r: 0.5, g: 0.5, b: 0.5, a: 1} + groundColor: + m_OverrideState: 1 + m_Value: {r: 0.369, g: 0.349, b: 0.341, a: 1} + enableSunDisk: + m_OverrideState: 1 + m_Value: 1 +--- !u!114 &4496069717186440673 +MonoBehaviour: + m_ObjectHideFlags: 3 + 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: bcf384b154398e341b6b29969c078198, type: 3} + m_Name: MotionBlur + m_EditorClassIdentifier: + active: 1 + quality: + m_OverrideState: 0 + m_Value: 1 + intensity: + m_OverrideState: 1 + m_Value: 14 + maximumVelocity: + m_OverrideState: 0 + m_Value: 200 + minimumVelocity: + m_OverrideState: 0 + m_Value: 2 + cameraMotionBlur: + m_OverrideState: 0 + m_Value: 1 + specialCameraClampMode: + m_OverrideState: 0 + m_Value: 0 + cameraVelocityClamp: + m_OverrideState: 0 + m_Value: 0.05 + cameraTranslationVelocityClamp: + m_OverrideState: 0 + m_Value: 0.05 + cameraRotationVelocityClamp: + m_OverrideState: 1 + m_Value: 0.1 + depthComparisonExtent: + m_OverrideState: 0 + m_Value: 1 + m_SampleCount: + m_OverrideState: 0 + m_Value: 8 +--- !u!114 &6271081758499213648 +MonoBehaviour: + m_ObjectHideFlags: 3 + 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: 953beb541740ddc499d005ee80c9ff29, type: 3} + m_Name: + m_EditorClassIdentifier: + active: 1 + quality: + m_OverrideState: 0 + m_Value: 1 + enabled: + m_OverrideState: 1 + m_Value: 1 + colorMode: + m_OverrideState: 1 + m_Value: 1 + color: + m_OverrideState: 1 + m_Value: {r: 0.5, g: 0.5, b: 0.5, a: 1} + tint: + m_OverrideState: 0 + m_Value: {r: 1, g: 1, b: 1, a: 1} + maxFogDistance: + m_OverrideState: 1 + m_Value: 5000 + mipFogMaxMip: + m_OverrideState: 1 + m_Value: 0.5 + mipFogNear: + m_OverrideState: 1 + m_Value: 0 + mipFogFar: + m_OverrideState: 1 + m_Value: 1000 + baseHeight: + m_OverrideState: 0 + m_Value: 0 + maximumHeight: + m_OverrideState: 0 + m_Value: 50 + meanFreePath: + m_OverrideState: 1 + m_Value: 200 + enableVolumetricFog: + m_OverrideState: 0 + m_Value: 0 + albedo: + m_OverrideState: 0 + m_Value: {r: 1, g: 1, b: 1, a: 1} + globalLightProbeDimmer: + m_OverrideState: 0 + m_Value: 1 + depthExtent: + m_OverrideState: 0 + m_Value: 64 + denoisingMode: + m_OverrideState: 0 + m_Value: 2 + anisotropy: + m_OverrideState: 0 + m_Value: 0 + sliceDistributionUniformity: + m_OverrideState: 0 + m_Value: 0.75 + multipleScatteringIntensity: + m_OverrideState: 0 + m_Value: 0 + m_FogControlMode: + m_OverrideState: 0 + m_Value: 0 + screenResolutionPercentage: + m_OverrideState: 0 + m_Value: 12.5 + volumeSliceCount: + m_OverrideState: 0 + m_Value: 64 + m_VolumetricFogBudget: + m_OverrideState: 0 + m_Value: 0.33 + m_ResolutionDepthRatio: + m_OverrideState: 0 + m_Value: 0.666 + directionalLightsOnly: + m_OverrideState: 0 + m_Value: 0 + volumetricLightingDensityCutoff: + m_OverrideState: 0 + m_Value: 0 diff --git a/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/4x_PostProcessing/4011_MotionBlur/Scene Settings Profile 1.asset.meta b/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/4x_PostProcessing/4011_MotionBlur/Scene Settings Profile 1.asset.meta new file mode 100644 index 00000000000..eadb33f5d93 --- /dev/null +++ b/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/4x_PostProcessing/4011_MotionBlur/Scene Settings Profile 1.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 351bda579a52f4dd88800db027a38475 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/4x_PostProcessing/4012_MotionBlur_CameraOnly.unity b/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/4x_PostProcessing/4012_MotionBlur_CameraOnly.unity index ec4957866dd..77a554b960b 100644 --- a/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/4x_PostProcessing/4012_MotionBlur_CameraOnly.unity +++ b/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/4x_PostProcessing/4012_MotionBlur_CameraOnly.unity @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:30cc23d4f93925267aa8944352b76e0fa293750acc91589554c4d844fe4ddf40 -size 27599 +oid sha256:fcebebb1199be497126185f7bcb4d427ab059dcdc59912d8e68b1198adb24a92 +size 29312 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 2f2e95ef200..5ea43a0a277 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 @@ -190,7 +190,6 @@ public void SetUpContext() graphicsDeviceTypes: new[] { GraphicsDeviceType.Metal }, architectures: new[] { Architecture.X64 } )] - [IgnoreGraphicsTest("4012_MotionBlur_CameraOnly$", "Missing ref-image.")] [IgnoreGraphicsTest( "4075_PhysicalCamera-gateFit$", "Noisy result in Linux + VK..", From 4787a3fde88cd675eec3e51ddf3665bb80c98105 Mon Sep 17 00:00:00 2001 From: Reach Platform Support Date: Thu, 15 Oct 2026 09:38:36 +0000 Subject: [PATCH 33/49] [Port] [6000.3] [UUM-149002] [URP] Fix dropped normalWS in deprecated LightingPhysicallyBased overload --- .../ShaderLibrary/Lighting.hlsl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl b/Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl index f831f59f0f4..f87071b02a8 100644 --- a/Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl +++ b/Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl @@ -120,7 +120,7 @@ half3 LightingPhysicallyBased(BRDFData brdfData, half3 lightColor, half3 lightDi light.direction = lightDirectionWS; light.distanceAttenuation = lightAttenuation; light.shadowAttenuation = 1; - return LightingPhysicallyBased(brdfData, light, viewDirectionWS, specularHighlightsOff, specularHighlightsOff); + return LightingPhysicallyBased(brdfData, light, normalWS, viewDirectionWS, specularHighlightsOff); } half3 VertexLighting(float3 positionWS, half3 normalWS) From 436b7e74c43cd010194b61d8fb2c05c098aecaf5 Mon Sep 17 00:00:00 2001 From: Jans Margevics Date: Sun, 18 Oct 2026 18:45:54 +0000 Subject: [PATCH 34/49] [Port] [6000.3] [UUM-155363] [HDRP] Add 9006_StencilUsage reference images and re-enable test --- .../HDRP_Tests/Assets/GraphicTests/Tests/HDRP_Graphics_Tests.cs | 1 - 1 file changed, 1 deletion(-) 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 5ea43a0a277..f707bc1a577 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 @@ -272,7 +272,6 @@ public void SetUpContext() graphicsDeviceTypes: new[] { GraphicsDeviceType.Metal }, architectures: new[] { Architecture.X64 } )] - [IgnoreGraphicsTest("9006_StencilUsage$", "Missing ref-image.")] [IgnoreGraphicsTest("9601_SkinnedMeshBatching-Off$", "Outdated ref-image.")] [IgnoreGraphicsTest("9602_SkinnedMeshBatching-On$", "Outdated ref-image.")] [IgnoreGraphicsTest( From 769937c80b2d112407efa83bbe7d2adc68bcf9dd Mon Sep 17 00:00:00 2001 From: Reach Platform Support Date: Wed, 21 Oct 2026 01:29:58 +0000 Subject: [PATCH 35/49] [Port] [6000.3] App freezes when m_RenderScale is set to 0.8 in the Mobile_RPAsset --- .../Runtime/ForwardLights.cs | 2 +- .../ShaderLibrary/Clustering.hlsl | 5 +++++ .../ShaderLibrary/Input.hlsl | 1 + 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/ForwardLights.cs b/Packages/com.unity.render-pipelines.universal/Runtime/ForwardLights.cs index 06597cb89a7..467ddedb150 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/ForwardLights.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/ForwardLights.cs @@ -518,7 +518,7 @@ internal void SetupLights(UnsafeCommandBuffer cmd, UniversalRenderingData render cmd.SetGlobalVector("_FPParams0", math.float4(m_ZBinScale, m_ZBinOffset, m_LightCount, m_DirectionalLightCount)); cmd.SetGlobalVector("_FPParams1", math.float4(cameraData.pixelRect.size / m_ActualTileWidth, m_TileResolution.x, m_WordsPerTile)); - cmd.SetGlobalVector("_FPParams2", math.float4(m_BinCount, m_TileResolution.x * m_TileResolution.y, 0, 0)); + cmd.SetGlobalVector("_FPParams2", math.float4(m_BinCount, m_TileResolution.x * m_TileResolution.y, m_TileResolution.y, 0)); } SetupShaderLightConstants(cmd, ref renderingData.cullResults, lightData); diff --git a/Packages/com.unity.render-pipelines.universal/ShaderLibrary/Clustering.hlsl b/Packages/com.unity.render-pipelines.universal/ShaderLibrary/Clustering.hlsl index d72b51226c5..a9a5410bca2 100644 --- a/Packages/com.unity.render-pipelines.universal/ShaderLibrary/Clustering.hlsl +++ b/Packages/com.unity.render-pipelines.universal/ShaderLibrary/Clustering.hlsl @@ -43,6 +43,11 @@ ClusterIterator ClusterInit(float2 normalizedScreenSpaceUV, float3 positionWS, i #endif // SUPPORTS_FOVEATED_RENDERING_NON_UNIFORM_RASTER uint2 tileCoord = uint2(normalizedScreenSpaceUV * URP_FP_TILE_SCALE); + + // Clamp to avoid out-of-bounds indexing of the tile buffer. + uint2 tileCount = uint2(URP_FP_TILE_COUNT_X, URP_FP_TILE_COUNT_Y); + tileCoord = min(tileCoord, tileCount - 1); + uint tileIndex = tileCoord.y * URP_FP_TILE_COUNT_X + tileCoord.x; #if defined(USING_STEREO_MATRICES) tileIndex += URP_FP_TILE_COUNT * unity_StereoEyeIndex; diff --git a/Packages/com.unity.render-pipelines.universal/ShaderLibrary/Input.hlsl b/Packages/com.unity.render-pipelines.universal/ShaderLibrary/Input.hlsl index fe30ce9367e..57f3d3eed89 100644 --- a/Packages/com.unity.render-pipelines.universal/ShaderLibrary/Input.hlsl +++ b/Packages/com.unity.render-pipelines.universal/ShaderLibrary/Input.hlsl @@ -150,6 +150,7 @@ float4 _FPParams2; // Scale from screen-space UV [0, 1] to tile coordinates [0, tile resolution]. #define URP_FP_TILE_SCALE ((float2)_FPParams1.xy) #define URP_FP_TILE_COUNT_X ((uint)_FPParams1.z) +#define URP_FP_TILE_COUNT_Y ((uint)_FPParams2.z) #define URP_FP_WORDS_PER_TILE ((uint)_FPParams1.w) #define URP_FP_ZBIN_COUNT ((uint)_FPParams2.x) From eb6744c7c303520a8b0fbb4aa15849a760a48208 Mon Sep 17 00:00:00 2001 From: Reach Platform Support Date: Wed, 21 Oct 2026 01:29:59 +0000 Subject: [PATCH 36/49] [Port] [6000.3] [UUM-149758] [VFX] Fix GPU crash in per-camera VFX sorts with culled instances --- .../Shaders/Sort.compute | 67 ++++++++++++------- 1 file changed, 43 insertions(+), 24 deletions(-) diff --git a/Packages/com.unity.visualeffectgraph/Shaders/Sort.compute b/Packages/com.unity.visualeffectgraph/Shaders/Sort.compute index 419fea2b19e..76605875961 100644 --- a/Packages/com.unity.visualeffectgraph/Shaders/Sort.compute +++ b/Packages/com.unity.visualeffectgraph/Shaders/Sort.compute @@ -52,7 +52,7 @@ #define ITERATION_INDEX(id,it) ((it) * BITONIC_THREADS_COUNT + (id)) #define INSTANCE_DST_INDEX(groupId,threadId) (groupId.x * BITONIC_THREADS_COUNT * ELEMENTS_PER_THREAD + threadId) -#define DST_INDEX(groupId,threadId) (INSTANCE_DST_INDEX(groupId,threadId) + groupId.z * instanceOffset) +#define DST_INDEX(groupId,instanceActiveIndex,threadId) (INSTANCE_DST_INDEX(groupId,threadId) + (instanceActiveIndex) * instanceStride) #if DECREASING_ORDER #define REJECTED_VALUE asfloat(0xff7fffff) // -MAX_FLOAT @@ -80,13 +80,28 @@ RWStructuredBuffer sortedSequence; groupshared float scratch[SCRATCH_SIZE]; CBUFFER_START(SortConstants) -uint instanceOffset; -uint totalInstanceCount; +uint instanceStride; +float4 instancingConstants; +uint2 instancingBufferOffsets; CBUFFER_END -uint GetElementCount(uint instanceIndex) +// One instance per dispatch slice (groupId.z) +#define VFX_USE_INSTANCING 1 +#define VFX_INSTANCING_ACTIVE_INDIRECTION 1 +#define VFX_INSTANCING_BATCH_INDIRECTION 1 +#define VFX_INSTANCING_FIXED_SIZE 1 +#include "VFXInstancing.hlsl" + +uint GetInstanceActiveIndex(uint3 groupId) +{ + uint instanceIndex, instanceActiveIndex, instanceCurrentIndex; + VFXInitInstancing(groupId.z, instanceIndex, instanceActiveIndex, instanceCurrentIndex); + return instanceActiveIndex; +} + +uint GetElementCount(uint instanceActiveIndex) { - return inputSequence[instanceIndex].value; + return inputSequence[instanceActiveIndex].value; } bool CompareKVP(KVP kvp0, KVP kvp1) @@ -106,37 +121,37 @@ uint GetLDSIndex(uint index) return 2 * index; } -void LoadFromMemory(uint3 groupId, uint ldsIndex) +void LoadFromMemory(uint3 groupId, uint instanceActiveIndex, uint ldsIndex) { uint instanceDstIndex = INSTANCE_DST_INDEX(groupId, ldsIndex); - uint memIndex = DST_INDEX(groupId, ldsIndex); + uint memIndex = DST_INDEX(groupId, instanceActiveIndex, ldsIndex); KVP kvp = { REJECTED_VALUE, 0xFFFFFFFF }; UNITY_BRANCH - if (instanceDstIndex < GetElementCount(groupId.z)) - kvp = inputSequence[totalInstanceCount + memIndex]; + if (instanceDstIndex < GetElementCount(instanceActiveIndex)) + kvp = inputSequence[instancingBatchSize + memIndex]; uint paddedLdsIndex = GetLDSIndex(ldsIndex); scratch[paddedLdsIndex] = kvp.key; scratch[paddedLdsIndex + LDS_VALUES_OFFSET] = asfloat(kvp.value); } -void StoreToMemory(uint3 groupId, uint ldsIndex) +void StoreToMemory(uint3 groupId, uint instanceActiveIndex, uint ldsIndex) { uint instanceDstIndex = INSTANCE_DST_INDEX(groupId, ldsIndex); - uint memIndex = DST_INDEX(groupId, ldsIndex); + uint memIndex = DST_INDEX(groupId, instanceActiveIndex, ldsIndex); - if (instanceDstIndex < GetElementCount(groupId.z)) + if (instanceDstIndex < GetElementCount(instanceActiveIndex)) { uint paddedLdsIndex = GetLDSIndex(ldsIndex); uint value = asuint(scratch[paddedLdsIndex + LDS_VALUES_OFFSET]); #if FINAL_PASS - sortedSequence[totalInstanceCount + memIndex] = value; + sortedSequence[instancingBatchSize + memIndex] = value; #else float key = scratch[paddedLdsIndex]; KVP kvp = { key, value }; - sortedSequence[totalInstanceCount + memIndex] = kvp; + sortedSequence[instancingBatchSize + memIndex] = kvp; #endif } } @@ -145,21 +160,23 @@ void StoreToMemory(uint3 groupId, uint ldsIndex) [numthreads(BITONIC_THREADS_COUNT, 1, 1)] void BITONIC_SORT(uint id : SV_GroupIndex, uint3 groupId : SV_GroupID) { + uint instanceActiveIndex = GetInstanceActiveIndex(groupId); + // Skip useless groups - if (groupId.x > GetElementCount(groupId.z) / ELEMENTS_COUNT) + if (groupId.x > GetElementCount(instanceActiveIndex) / ELEMENTS_COUNT) return; if (groupId.x == 0 && id == 0) #if FINAL_PASS - sortedSequence[groupId.z] = inputSequence[groupId.z].value; + sortedSequence[instanceActiveIndex] = inputSequence[instanceActiveIndex].value; #else - sortedSequence[groupId.z] = inputSequence[groupId.z]; + sortedSequence[instanceActiveIndex] = inputSequence[instanceActiveIndex]; #endif // Load data from memory to LDS //[unroll] for (uint i = 0; i < ELEMENTS_PER_THREAD; ++i) { uint index = BITONIC_THREADS_COUNT * i + id; - LoadFromMemory(groupId,index); + LoadFromMemory(groupId, instanceActiveIndex, index); } GroupMemoryBarrierWithGroupSync(); // LDS Writes visible @@ -216,7 +233,7 @@ void BITONIC_SORT(uint id : SV_GroupIndex, uint3 groupId : SV_GroupID) for (uint j = 0; j < ELEMENTS_PER_THREAD; ++j) { uint index = BITONIC_THREADS_COUNT * j + id; //(id / 32) * 64 * ITERATIONS_COUNT + (id & 31) + j * 32;//id * ITERATIONS_COUNT * 2 + j; - StoreToMemory(groupId, index); + StoreToMemory(groupId, instanceActiveIndex, index); } } @@ -233,22 +250,24 @@ void MERGE_PASS(uint3 groupId : SV_GroupID, { uint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP_MERGE_PASS + groupId.y * dispatchWidth * NB_THREADS_PER_GROUP_MERGE_PASS; + uint instanceActiveIndex = GetInstanceActiveIndex(groupId); + #if FINAL_PASS if (groupId.x == 0 && id == 0) - sortedSequence[groupId.z] = inputSequence[groupId.z].value; + sortedSequence[instanceActiveIndex] = inputSequence[instanceActiveIndex].value; #endif - if (id >= GetElementCount(groupId.z)) + if (id >= GetElementCount(instanceActiveIndex)) return; - const uint offset = totalInstanceCount + groupId.z * instanceOffset; + const uint offset = instancingBatchSize + instanceActiveIndex * instanceStride; const int arraySize = subArraySize << 1; const int arrayStart = arraySize * (id / arraySize); // If the current array considered is less than one half filled (due to element count), we can copy it directly as it is already sorted UNITY_BRANCH - if (GetElementCount(groupId.z) - (uint)arrayStart <= subArraySize) + if (GetElementCount(instanceActiveIndex) - (uint)arrayStart <= subArraySize) { #if FINAL_PASS sortedSequence[id + offset] = inputSequence[id + offset].value; @@ -260,7 +279,7 @@ void MERGE_PASS(uint3 groupId : SV_GroupID, const int arrayIndex = id - arrayStart; const int lastIndex0 = subArraySize - 1; - const int lastIndex1 = min(subArraySize - 1, GetElementCount(groupId.z) - (arrayStart + subArraySize + 1)); + const int lastIndex1 = min(subArraySize - 1, GetElementCount(instanceActiveIndex) - (arrayStart + subArraySize + 1)); // determine initial frame of the window From a9fcddcc30db427af6f509536d18074ee56aaebd Mon Sep 17 00:00:00 2001 From: Reach Platform Support Date: Wed, 21 Oct 2026 01:29:59 +0000 Subject: [PATCH 37/49] [Port] [6000.3] [UUM-156931][URP 2D][7000.0] Fix Point Light 2D losing its cookie on upgrade --- .../Runtime/2D/Light2D.cs | 5 +- .../Editor/Light2DCookieMigrationTests.cs | 118 ++++++++++++++++++ .../Light2DCookieMigrationTests.cs.meta | 12 ++ 3 files changed, 132 insertions(+), 3 deletions(-) create mode 100644 Packages/com.unity.render-pipelines.universal/Tests/Editor/Light2DCookieMigrationTests.cs create mode 100644 Packages/com.unity.render-pipelines.universal/Tests/Editor/Light2DCookieMigrationTests.cs.meta 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 0770e1563c8..a5798792854 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/2D/Light2D.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/2D/Light2D.cs @@ -662,10 +662,9 @@ public void OnAfterDeserialize() if (m_ComponentVersion < ComponentVersions.Version_3) { #pragma warning disable CS0618 - if (m_LightType == LightType.Point && (object)m_DeprecatedPointLightCookieSprite != null) - { + if (m_LightType == LightType.Point) m_LightCookieSprite = m_DeprecatedPointLightCookieSprite; - } + m_DeprecatedPointLightCookieSprite = null; #pragma warning restore CS0618 } } diff --git a/Packages/com.unity.render-pipelines.universal/Tests/Editor/Light2DCookieMigrationTests.cs b/Packages/com.unity.render-pipelines.universal/Tests/Editor/Light2DCookieMigrationTests.cs new file mode 100644 index 00000000000..73d31c128a3 --- /dev/null +++ b/Packages/com.unity.render-pipelines.universal/Tests/Editor/Light2DCookieMigrationTests.cs @@ -0,0 +1,118 @@ +using System.Collections.Generic; +using NUnit.Framework; +using UnityEngine; +using UnityEngine.Rendering.Universal; + +namespace UnityEditor.Rendering.Universal.Tests +{ + [TestFixture] + class Light2DCookieMigrationTests + { + const int k_Version2 = 2; + const int k_Version3 = 3; + + readonly List m_Created = new List(); + + Sprite CreateSprite(string name) + { + var texture = new Texture2D(4, 4); + var sprite = Sprite.Create(texture, new Rect(0, 0, 4, 4), Vector2.zero); + sprite.name = name; + m_Created.Add(texture); + m_Created.Add(sprite); + return sprite; + } + + Light2D CreatePointLight() + { + var go = new GameObject("Point Light 2D"); + m_Created.Add(go); + var light = go.AddComponent(); + light.lightType = Light2D.LightType.Point; + return light; + } + + // Writes the serialized state of an older light and deserializes it, which runs the OnAfterDeserialize upgrade. + static void DeserializeAsVersion(Light2D light, int componentVersion, Sprite lightCookieSprite, Sprite deprecatedPointLightCookieSprite) + { + var serializedObject = new SerializedObject(light); + serializedObject.FindProperty("m_ComponentVersion").intValue = componentVersion; + serializedObject.FindProperty("m_LightCookieSprite").objectReferenceValue = lightCookieSprite; + serializedObject.FindProperty("m_DeprecatedPointLightCookieSprite").objectReferenceValue = deprecatedPointLightCookieSprite; + serializedObject.ApplyModifiedPropertiesWithoutUndo(); + } + + static UnityEngine.Object GetSerializedReference(Light2D light, string propertyName) + { + return new SerializedObject(light).FindProperty(propertyName).objectReferenceValue; + } + + [TearDown] + public void TearDown() + { + foreach (var obj in m_Created) + { + if (obj != null) + UnityEngine.Object.DestroyImmediate(obj); + } + m_Created.Clear(); + } + + // UUM-156931: Version_3 data on this branch already holds the migrated cookie in m_LightCookieSprite. + [Test] + public void OnAfterDeserialize_Version3WithMigratedCookie_KeepsCookie() + { + var light = CreatePointLight(); + var cookie = CreateSprite("Cookie"); + + DeserializeAsVersion(light, k_Version3, cookie, null); + + Assert.AreEqual(cookie, light.lightCookieSprite, "The upgrade cleared a cookie that was already migrated."); + } + + // The Version_3 migration did not clear the deprecated field, so it can still hold the cookie from before a later change. + [Test] + public void OnAfterDeserialize_Version3WithStaleDeprecatedCookie_KeepsCookie() + { + var light = CreatePointLight(); + var cookie = CreateSprite("Cookie"); + + DeserializeAsVersion(light, k_Version3, cookie, CreateSprite("Stale Cookie")); + + Assert.AreEqual(cookie, light.lightCookieSprite, "The stale deprecated cookie replaced the current cookie."); + } + + [Test] + public void OnAfterDeserialize_Version2WithDeprecatedCookie_MigratesCookie() + { + var light = CreatePointLight(); + var cookie = CreateSprite("Cookie"); + + DeserializeAsVersion(light, k_Version2, null, cookie); + + Assert.AreEqual(cookie, light.lightCookieSprite, "The cookie in the deprecated field was not migrated."); + } + + [Test] + public void OnAfterDeserialize_Version2WithDeprecatedCookie_ClearsDeprecatedCookie() + { + var light = CreatePointLight(); + + DeserializeAsVersion(light, k_Version2, null, CreateSprite("Cookie")); + + Assert.IsNull(GetSerializedReference(light, "m_DeprecatedPointLightCookieSprite"), + "The deprecated cookie must be cleared so a later upgrade cannot apply it again."); + } + + // Before Version_3 a point light always used the deprecated cookie, so a sprite left from an earlier light type must not become its cookie. + [Test] + public void OnAfterDeserialize_Version2WithoutDeprecatedCookie_HasNoCookie() + { + var light = CreatePointLight(); + + DeserializeAsVersion(light, k_Version2, CreateSprite("Leftover Sprite"), null); + + Assert.IsTrue(light.lightCookieSprite == null, "A sprite the point light did not use became its cookie."); + } + } +} diff --git a/Packages/com.unity.render-pipelines.universal/Tests/Editor/Light2DCookieMigrationTests.cs.meta b/Packages/com.unity.render-pipelines.universal/Tests/Editor/Light2DCookieMigrationTests.cs.meta new file mode 100644 index 00000000000..b57eb087b4f --- /dev/null +++ b/Packages/com.unity.render-pipelines.universal/Tests/Editor/Light2DCookieMigrationTests.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 4c2585251ed5fc1b142778dc47ce7935 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleIdentifier: + assetBundleVariant: From 83f5438719c0207a8dcaa18c8a52ebbc393a3a4c Mon Sep 17 00:00:00 2001 From: Jesper Mortensen Date: Wed, 21 Oct 2026 01:29:59 +0000 Subject: [PATCH 38/49] [Port] [6000.3] [UUM-157091] Fix -Wconversion warnings in core ShaderLibrary sampling headers --- .../ShaderLibrary/Common.hlsl | 6 +++--- .../ShaderLibrary/CommonLighting.hlsl | 10 +++++----- .../ShaderLibrary/Macros.hlsl | 2 ++ .../ShaderLibrary/Sampling/Fibonacci.hlsl | 8 ++++---- .../ShaderLibrary/Sampling/Hammersley.hlsl | 2 +- .../ShaderLibrary/Sampling/Sampling.hlsl | 8 ++++---- 6 files changed, 19 insertions(+), 17 deletions(-) diff --git a/Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl b/Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl index cd2a7d8d12b..e542970b968 100644 --- a/Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl +++ b/Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl @@ -672,12 +672,12 @@ float SanitizePositiveFinite(float x) real DegToRad(real deg) { - return deg * (PI / 180.0); + return deg * (real)(PI / 180.0); } real RadToDeg(real rad) { - return rad * (180.0 / PI); + return rad * (real)(180.0 / PI); } // Square functions for cleaner code @@ -707,7 +707,7 @@ real FastACos(real inX) { real res = FastACosPos(inX); - return (inX >= 0) ? res : PI - res; // Undo range reduction + return (inX >= 0) ? res : (real)(PI - res); // Undo range reduction } // Same cost as Acos + 1 FR diff --git a/Packages/com.unity.render-pipelines.core/ShaderLibrary/CommonLighting.hlsl b/Packages/com.unity.render-pipelines.core/ShaderLibrary/CommonLighting.hlsl index 385c8b994ea..a588c6cd307 100644 --- a/Packages/com.unity.render-pipelines.core/ShaderLibrary/CommonLighting.hlsl +++ b/Packages/com.unity.render-pipelines.core/ShaderLibrary/CommonLighting.hlsl @@ -87,7 +87,7 @@ real DistanceWindowing(float distSquare, real rangeAttenuationScale, real rangeA // Else // rangeAttenuationScale = 2^12 / r^2 // rangeAttenuationBias = 2^24 - return saturate(rangeAttenuationBias - Sq(distSquare * rangeAttenuationScale)); + return (real)saturate(rangeAttenuationBias - Sq(distSquare * rangeAttenuationScale)); } real SmoothDistanceWindowing(real distSquare, real rangeAttenuationScale, real rangeAttenuationBias) @@ -370,7 +370,7 @@ real GetSpecularOcclusionFromBentAO(real3 V, real3 bentNormalWS, real3 normalWS, float expFactor1 = exp(umLength1 - umLength2 + us - vs); - return saturate(expFactor1 * (d1 * umLength2) / (d2 * umLength1)); + return (real)saturate(expFactor1 * (d1 * umLength2) / (d2 * umLength1)); } // Ref: Steve McAuley - Energy-Conserving Wrapped Diffuse @@ -384,8 +384,8 @@ real3 ComputeWrappedNormal(real3 N, real3 L, real w) { real NdotL = dot(N, L); real wrappedNdotL = saturate((NdotL + w) / (1 + w)); - real sinPhi = lerp(w, 0.f, wrappedNdotL); - real cosPhi = sqrt(1.0f - sinPhi * sinPhi); + real sinPhi = lerp(w, (real)0.0, wrappedNdotL); + real cosPhi = sqrt((real)1.0 - sinPhi * sinPhi); return normalize(cosPhi * N + sinPhi * cross(cross(N, L), N)); } @@ -503,7 +503,7 @@ real3x3 GetLocalFrame(real3 localZ) real x = localZ.x; real y = localZ.y; real z = localZ.z; - real sz = FastSign(z); + real sz = (real)FastSign(z); real a = 1 / (sz + z); real ya = y * a; real b = x * ya; diff --git a/Packages/com.unity.render-pipelines.core/ShaderLibrary/Macros.hlsl b/Packages/com.unity.render-pipelines.core/ShaderLibrary/Macros.hlsl index 922810599cf..25e3fa5ea13 100644 --- a/Packages/com.unity.render-pipelines.core/ShaderLibrary/Macros.hlsl +++ b/Packages/com.unity.render-pipelines.core/ShaderLibrary/Macros.hlsl @@ -20,7 +20,9 @@ #define SAMPLE_TEXTURECUBE_ARRAY_LOD_ABSTRACT(textureName, samplerName, coord3, index, lod) SAMPLE_TEXTURECUBE_ARRAY_LOD(textureName, samplerName, coord3, index, lod) #endif +#ifndef PI #define PI 3.14159265358979323846 +#endif #define TWO_PI 6.28318530717958647693 #define FOUR_PI 12.5663706143591729538 #define INV_PI 0.31830988618379067154 diff --git a/Packages/com.unity.render-pipelines.core/ShaderLibrary/Sampling/Fibonacci.hlsl b/Packages/com.unity.render-pipelines.core/ShaderLibrary/Sampling/Fibonacci.hlsl index 69bb653deec..bc6c1350531 100644 --- a/Packages/com.unity.render-pipelines.core/ShaderLibrary/Sampling/Fibonacci.hlsl +++ b/Packages/com.unity.render-pipelines.core/ShaderLibrary/Sampling/Fibonacci.hlsl @@ -13,7 +13,7 @@ real2 Fibonacci2dSeq(real fibN1, real fibN2, uint i) // 3 cycles on GCN if 'fibN1' and 'fibN2' are known at compile time. // N.b.: According to Swinbank and Pusser [SP06], the uniformity of the distribution // can be slightly improved by introducing an offset of 1/N to the Z (or R) coordinates. - return real2(i / fibN1 + (0.5 / fibN1), frac(i * (fibN2 / fibN1))); + return real2((real)((float)i / fibN1 + (0.5 / fibN1)), (real)frac((float)i * (fibN2 / fibN1))); } #define GOLDEN_RATIO 1.618033988749895 @@ -24,7 +24,7 @@ real2 Golden2dSeq(uint i, real n) { // GoldenAngle = 2 * Pi * (1 - 1 / GoldenRatio). // We can drop the "1 -" part since all it does is reverse the orientation. - return real2(i / n + (0.5 / n), frac(i * rcp(GOLDEN_RATIO))); + return real2((real)((float)i / n + (0.5 / n)), (real)frac((float)i * rcp(GOLDEN_RATIO))); } static const uint k_FibonacciSeq[] = { @@ -267,14 +267,14 @@ real2 Fibonacci2d(uint i, uint sampleCount) } } - return Fibonacci2dSeq(fibN1, fibN2, i); + return Fibonacci2dSeq((real)fibN1, (real)fibN2, i); } } } real2 SampleDiskGolden(uint i, uint sampleCount) { - real2 f = Golden2dSeq(i, sampleCount); + real2 f = Golden2dSeq(i, (real)sampleCount); return real2(sqrt(f.x), TWO_PI * f.y); } diff --git a/Packages/com.unity.render-pipelines.core/ShaderLibrary/Sampling/Hammersley.hlsl b/Packages/com.unity.render-pipelines.core/ShaderLibrary/Sampling/Hammersley.hlsl index 06d99ed5abf..e45360d4558 100644 --- a/Packages/com.unity.render-pipelines.core/ShaderLibrary/Sampling/Hammersley.hlsl +++ b/Packages/com.unity.render-pipelines.core/ShaderLibrary/Sampling/Hammersley.hlsl @@ -22,7 +22,7 @@ uint ReverseBits32(uint bits) real VanDerCorputBase2(uint i) { - return ReverseBits32(i) * rcp(4294967296.0); // 2^-32 + return (real)((float)ReverseBits32(i) * rcp(4294967296.0)); // 2^-32 } real2 Hammersley2dSeq(uint i, uint sequenceLength) diff --git a/Packages/com.unity.render-pipelines.core/ShaderLibrary/Sampling/Sampling.hlsl b/Packages/com.unity.render-pipelines.core/ShaderLibrary/Sampling/Sampling.hlsl index 4c97e8e030d..b132430b435 100644 --- a/Packages/com.unity.render-pipelines.core/ShaderLibrary/Sampling/Sampling.hlsl +++ b/Packages/com.unity.render-pipelines.core/ShaderLibrary/Sampling/Sampling.hlsl @@ -141,7 +141,7 @@ real3 SampleConeUniform(real u1, real u2, real cosTheta) float r0 = cosTheta + u1 * (1.0f - cosTheta); float r = sqrt(max(0.0, 1.0 - r0 * r0)); float phi = TWO_PI * u2; - return float3(r * cos(phi), r * sin(phi), r0); + return real3(r * cos(phi), r * sin(phi), r0); } real3 SampleSphereUniform(real u1, real u2) @@ -313,9 +313,9 @@ void SampleCone(real2 u, real cosHalfAngle, // note: the first sample is always [0, 0, 1] real3 SampleConeStrata(uint sampleIdx, real rcpSampleCount, real cosHalfApexAngle) { - real z = 1.0f - ((1.0f - cosHalfApexAngle) * sampleIdx) * rcpSampleCount; - real r = sqrt(1.0f - z * z); - real a = sampleIdx * 2.3999632297286f; // pi*(3-sqrt(5)) + real z = (real)(1.0f - ((1.0f - cosHalfApexAngle) * (float)sampleIdx) * rcpSampleCount); + real r = (real)sqrt(1.0f - z * z); + real a = (real)((float)sampleIdx * 2.3999632297286f); // pi*(3-sqrt(5)) real sphi = sin(a); real cphi = cos(a); return real3(r * cphi, r * sphi, z); From ff7877b37c7cbb3cbe4bb245ec6b06df06f9e38a Mon Sep 17 00:00:00 2001 From: Jans Margevics Date: Wed, 21 Oct 2026 01:29:59 +0000 Subject: [PATCH 39/49] [HDRP] Set HD Template default quality level to Balanced (UUM-149134) --- .../com.unity.template-hd/ProjectSettings/QualitySettings.asset | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Templates/com.unity.template-hd/ProjectSettings/QualitySettings.asset b/Templates/com.unity.template-hd/ProjectSettings/QualitySettings.asset index 0d70906a559..fea575ef0c6 100644 --- a/Templates/com.unity.template-hd/ProjectSettings/QualitySettings.asset +++ b/Templates/com.unity.template-hd/ProjectSettings/QualitySettings.asset @@ -4,7 +4,7 @@ QualitySettings: m_ObjectHideFlags: 0 serializedVersion: 5 - m_CurrentQuality: 4 + m_CurrentQuality: 3 m_QualitySettings: - serializedVersion: 5 name: Ray Tracing (Realtime GI) From 9c48ba5479a3bf49f84fd27839d2e62d4c973e0e Mon Sep 17 00:00:00 2001 From: Marta Malberti Date: Wed, 21 Oct 2026 01:29:59 +0000 Subject: [PATCH 40/49] [Port] [6000.3] docg 8142: Create docs pages for Artistic/Mask Shader Graph nodes --- .../Documentation~/hdrp-shader-graph-nodes.md | 1 + .../Surface-Gradient-Resolve-Normal-Node.md | 27 ++++++++ .../Documentation~/TableOfContents.md | 5 ++ .../Documentation~/URP-Sample-Buffer-Node.md | 63 +++++++++++++++++++ .../Documentation~/is-forced-gamma-node.md | 23 +++++++ .../Documentation~/ui-nodes.md | 1 + 6 files changed, 120 insertions(+) create mode 100644 Packages/com.unity.shadergraph/Documentation~/Surface-Gradient-Resolve-Normal-Node.md create mode 100644 Packages/com.unity.shadergraph/Documentation~/URP-Sample-Buffer-Node.md create mode 100644 Packages/com.unity.shadergraph/Documentation~/is-forced-gamma-node.md diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/hdrp-shader-graph-nodes.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/hdrp-shader-graph-nodes.md index 779d9e56592..3ca10755fa6 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/hdrp-shader-graph-nodes.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/hdrp-shader-graph-nodes.md @@ -10,6 +10,7 @@ HDRP adds the following Shader Graph Nodes: * [HD Scene Color](https://docs.unity3d.com/Packages/com.unity.shadergraph@16.0/manual/HD-Scene-Color-Node.html) * [HD Scene Depth](https://docs.unity3d.com/Packages/com.unity.shadergraph@16.0/manual/HD-Scene-Depth-Node.html) * [HD Sample Buffer](https://docs.unity3d.com/Packages/com.unity.shadergraph@16.0/manual/HD-Sample-Buffer-Node.html) +* [Surface Gradient Resolve Normal](https://docs.unity3d.com/Packages/com.unity.shadergraph@16.0/manual/Surface-Gradient-Resolve-Normal-Node.html) * Eye Shader Graph utilities * [CirclePupilAnimation](https://docs.unity3d.com/Packages/com.unity.shadergraph@16.0/manual/Circle-Pupil-Animation-Node.html) * [CorneaRefraction](https://docs.unity3d.com/Packages/com.unity.shadergraph@16.0/manual/Cornea-Refraction-Node.html) diff --git a/Packages/com.unity.shadergraph/Documentation~/Surface-Gradient-Resolve-Normal-Node.md b/Packages/com.unity.shadergraph/Documentation~/Surface-Gradient-Resolve-Normal-Node.md new file mode 100644 index 00000000000..e57115e9307 --- /dev/null +++ b/Packages/com.unity.shadergraph/Documentation~/Surface-Gradient-Resolve-Normal-Node.md @@ -0,0 +1,27 @@ +# Surface Gradient Resolve Normal node + +The Surface Gradient Resolve Normal node resolves a surface gradient into a world-space normal. It subtracts the surface gradient from the base normal and normalizes the result. + +## Render pipeline compatibility + +| **Node** | **Universal Render Pipeline (URP)** | **High Definition Render Pipeline (HDRP)** | +| -------------------------------------- | ------------------------------------ | ------------------------------------------- | +| **Surface Gradient Resolve Normal** | No | Yes | + +## Ports + +| **Name** | **Direction** | **Type** | **Binding** | **Description** | +| -------------------- | ------------- | -------- | ----------- | -------------------------------------------------------------------------------- | +| **Normal** | Input | Vector 3 | None | The base normal vector to perturb, typically the vertex or geometric normal. | +| **SurfaceGradient** | Input | Vector 3 | None | The surface gradient that encodes the normal perturbation. | +| **NormalOutput** | Output | Vector 3 | None | The resolved perturbed normal, computed as `SafeNormalize(Normal - SurfaceGradient)`. | + +## Generated code example + +```hlsl +float3 NormalOutput = SafeNormalize(Normal - SurfaceGradient); +``` + +## Additional resources + +- [Surface Gradient-Based Normal Mapping Framework](https://jcgt.org/published/0009/03/04/) \ No newline at end of file diff --git a/Packages/com.unity.shadergraph/Documentation~/TableOfContents.md b/Packages/com.unity.shadergraph/Documentation~/TableOfContents.md index 697170111fe..9e111b7321b 100644 --- a/Packages/com.unity.shadergraph/Documentation~/TableOfContents.md +++ b/Packages/com.unity.shadergraph/Documentation~/TableOfContents.md @@ -175,6 +175,8 @@ * [Element Layout UV](element-layout-uv-node.md) * [Element Texture Size](element-texture-size-node.md) * [Element Texture UV](element-texture-uv-node.md) + * Universal Render Pipeline + * [URP Sample Buffer](URP-Sample-Buffer-Node.md) * [Keyword](Keyword-Node.md) * [Material Quality](Material-Quality-Keyword-Node.md) * [Raytracing Quality](Raytracing-Quality-Keyword-Node.md) @@ -282,6 +284,7 @@ * [Default SDF Text](default-sdf-text-node.md) * [Default Solid](default-solid-node.md) * [Default Texture](default-texture-node.md) + * [Is Forced Gamma](is-forced-gamma-node.md) * [Render Type](render-type-node.md) * [Render Type Branch](render-type-branch-node.md) * [Sample Element Texture](sample-element-texture-node.md) @@ -303,6 +306,8 @@ * [ScleraUVLocation](Sclera-UV-Location-Node.md) * Fabric * [ThreadMapDetail](ThreadMapDetail-Node.md) + * Surface Gradient + * [Surface Gradient Resolve Normal](Surface-Gradient-Resolve-Normal-Node.md) * Logic * [All](All-Node.md) * [And](And-Node.md) diff --git a/Packages/com.unity.shadergraph/Documentation~/URP-Sample-Buffer-Node.md b/Packages/com.unity.shadergraph/Documentation~/URP-Sample-Buffer-Node.md new file mode 100644 index 00000000000..2fb8bd5a70d --- /dev/null +++ b/Packages/com.unity.shadergraph/Documentation~/URP-Sample-Buffer-Node.md @@ -0,0 +1,63 @@ +# URP Sample Buffer node + +The URP Sample Buffer node samples a buffer directly from the camera. Use this node in a Fullscreen Shader Graph to access Universal Render Pipeline (URP) render buffers for post-processing effects. + +## Render pipeline compatibility + +| **Node** | **Universal Render Pipeline (URP)** | **High Definition Render Pipeline (HDRP)** | +| --------------------- | ----------------------------------- | ------------------------------------------ | +| **URP Sample Buffer** | Yes | No | + +## Ports + +| **Name** | **Direction** | **Type** | **Binding** | **Description** | +| ---------- | ------------- | ------------------------------------------------------------------------------------------------------------------------------------- | --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | +| **UV** | Input | Vector 4 | Screen position | Input UV value. | +| **Output** | Output | Changes to one of the following depending on the **Source Buffer** you select:
• Vector 2
• Vector 3
• Vector 4 | None | Output value. | + +## Controls + +| **Name** | **Type** | **Options** | **Description** | +| ----------------- | --------- | ------------------------------------------------------------------------------ | ---------------------------------- | +| **Source Buffer** | Dropdown | • NormalWorldSpace
• MotionVectors
• BlitSource | Determines which buffer to sample. | + +The **Source Buffer** dropdown determines the type of the **Output** port: + +| **Source Buffer** | **Output type** | **Description** | +| -------------------- | --------------- | -------------------------------------------------------- | +| **NormalWorldSpace** | Vector 3 | World-space surface normals from the G-buffer. | +| **MotionVectors** | Vector 2 | Per-pixel motion vectors. | +| **BlitSource** | Vector 4 | RGBA color data from the post-process blit source. | + +## Generated code example + +The following example code represents one possible outcome of this node. + +**NormalWorldSpace:** + +```hlsl +float3 Unity_Universal_SampleBuffer_NormalWorldSpace_float(float2 uv) +{ + return SHADERGRAPH_SAMPLE_SCENE_NORMAL(uv); +} +``` + +**MotionVectors:** + +```hlsl +float2 Unity_Universal_SampleBuffer_MotionVectors_float(float2 uv) +{ + uint2 pixelCoords = uint2(uv * _ScreenSize.xy); + return LOAD_TEXTURE2D_X_LOD(_MotionVectorTexture, pixelCoords, 0).xy; +} +``` + +**BlitSource:** + +```hlsl +float4 Unity_Universal_SampleBuffer_BlitSource_float(float2 uv) +{ + uint2 pixelCoords = uint2(uv * _ScreenSize.xy); + return LOAD_TEXTURE2D_X_LOD(_BlitTexture, pixelCoords, 0); +} +``` diff --git a/Packages/com.unity.shadergraph/Documentation~/is-forced-gamma-node.md b/Packages/com.unity.shadergraph/Documentation~/is-forced-gamma-node.md new file mode 100644 index 00000000000..800c45c71b7 --- /dev/null +++ b/Packages/com.unity.shadergraph/Documentation~/is-forced-gamma-node.md @@ -0,0 +1,23 @@ +--- +uid: is-forced-gamma-node +--- + +# Is Forced Gamma node + +[!include[](include_note_uitk.md)] + +The Is Forced Gamma node outputs whether the UI Toolkit renderer is currently rendering the element with Force Gamma Rendering enabled. Use this node to create custom logic that behaves differently when the renderer forces gamma-space compositing, for example to skip a gamma conversion the renderer already applies. + +Force Gamma Rendering is a [Panel Settings](xref:uie-runtime-panel-settings) option that keeps a panel in gamma color space even in a Linear Color Space project. Unity enables it automatically when a panel renders to a Render Texture. + +## Ports + +| Name | Direction | Type | Description | +|------|-----------|---------|----------------------------------------------------------------------------------| +| Out | Output | Boolean | True when Force Gamma Rendering is enabled for the UI element. | + +## Additional resources + +- [Panel Settings](xref:uie-runtime-panel-settings) +- [Create and apply custom filters](xref:uie-uss-custom-filters) +- [Render Type node](xref:render-type-node) \ No newline at end of file diff --git a/Packages/com.unity.shadergraph/Documentation~/ui-nodes.md b/Packages/com.unity.shadergraph/Documentation~/ui-nodes.md index dc2c3d23baf..b4582f251f1 100644 --- a/Packages/com.unity.shadergraph/Documentation~/ui-nodes.md +++ b/Packages/com.unity.shadergraph/Documentation~/ui-nodes.md @@ -11,6 +11,7 @@ uid: ui-nodes | [Default SDF Text](default-sdf-text-node.md) | Provides the text color set for SDF text rendering and includes a tint input to modify the color of the text. | | [Default Bitmap Text](default-bitmap-text-node.md) | Provides the text color set for bitmap text rendering and includes a tint input to modify the color of the text. | | [Default Gradient](default-gradient-node.md) | Outputs the gradient specified for your UI elements. | +| [Is Forced Gamma](is-forced-gamma-node.md) | Outputs whether Force Gamma Rendering is enabled for the UI element. | | [Render Type](render-type-node.md) | Outputs the current render type for conditional logic in the shader. | | [Render Type Branch](render-type-branch-node.md) | Routes inputs based on the current render type and outputs the appropriate result. | | [Sample Element Texture](sample-element-texture-node.md) | Samples a texture at specific UV coordinates. | From b279bae911467006f659032aa942d4fa7f6a52e2 Mon Sep 17 00:00:00 2001 From: Reach Platform Support Date: Wed, 21 Oct 2026 01:30:00 +0000 Subject: [PATCH 41/49] [Port] [6000.3] [UUM-156028] Remove unused import to fix breakage on .NET 10 --- Packages/com.unity.shadergraph/Editor/Data/Util/GraphUtil.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/Packages/com.unity.shadergraph/Editor/Data/Util/GraphUtil.cs b/Packages/com.unity.shadergraph/Editor/Data/Util/GraphUtil.cs index bce4b48a529..bc60f0b7d2c 100644 --- a/Packages/com.unity.shadergraph/Editor/Data/Util/GraphUtil.cs +++ b/Packages/com.unity.shadergraph/Editor/Data/Util/GraphUtil.cs @@ -11,7 +11,6 @@ using UnityEditorInternal; using Debug = UnityEngine.Debug; using System.Reflection; -using System.Runtime.Remoting.Metadata.W3cXsd2001; using UnityEditor.ProjectWindowCallback; using UnityEditor.ShaderGraph.Internal; using UnityEngine; From 8dde04fc9858fdc970bf7716f2b0005774b42c6f Mon Sep 17 00:00:00 2001 From: Reach Platform Support Date: Thu, 22 Oct 2026 03:37:36 +0000 Subject: [PATCH 42/49] [Port] [6000.3] HDRP: release FSR2 camera contexts when the pipeline is disposed --- .../RenderPipeline/HDRenderPipeline.PostProcess.cs | 1 + .../Runtime/RenderPipeline/RenderPass/FSR2Pass.cs | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDRenderPipeline.PostProcess.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDRenderPipeline.PostProcess.cs index 1001f1abba2..5cde6ba04ea 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDRenderPipeline.PostProcess.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDRenderPipeline.PostProcess.cs @@ -320,6 +320,7 @@ void CleanupPostProcess() m_DebugImageHistogramBuffer = null; m_DebugExposureData = null; m_DLSSPass = null; + m_FSR2Pass?.Cleanup(); m_FSR2Pass = null; } 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 0aa6134d867..3defef3d9c4 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 @@ -58,6 +58,16 @@ public void BeginFrame(HDCamera hdCamera) #endif } + public void Cleanup() + { +#if ENABLE_AMD && ENABLE_AMD_MODULE + foreach (var cameraState in m_CameraStates.cameras.Values) + m_CameraStates.InvalidateState(cameraState); + CleanupCameraStates(); + m_CommandBuffer.Release(); +#endif + } + public void SetupDRSScaling(bool enableAutomaticSettings, Camera camera, in HDAdditionalCameraData hdCam, XRPass xrPass, ref GlobalDynamicResolutionSettings dynamicResolutionSettings) { #if ENABLE_AMD && ENABLE_AMD_MODULE From b903f0a0293532909a495934855b3583a8a66a39 Mon Sep 17 00:00:00 2001 From: Reach Platform Support Date: Thu, 22 Oct 2026 12:24:17 +0000 Subject: [PATCH 43/49] [Port] [6000.3] UUM-134256: Fixed "Default" being added to Enum values in ShaderGraph --- .../Material/Decal/ShaderGraph/DecalSubTarget.cs | 4 ++-- .../Material/ShaderGraph/HDSubShaderUtilities.cs | 12 ++++++------ .../ShaderGraph/Targets/UniversalDecalSubTarget.cs | 4 ++-- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/Packages/com.unity.render-pipelines.high-definition/Editor/Material/Decal/ShaderGraph/DecalSubTarget.cs b/Packages/com.unity.render-pipelines.high-definition/Editor/Material/Decal/ShaderGraph/DecalSubTarget.cs index dc4ee23b8da..f6c1501960e 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Editor/Material/Decal/ShaderGraph/DecalSubTarget.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Editor/Material/Decal/ShaderGraph/DecalSubTarget.cs @@ -148,8 +148,8 @@ public override void CollectShaderProperties(PropertyCollector collector, Genera overrideReferenceName = "_DecalMeshBiasType", floatType = FloatType.Enum, value = (int)DecalMeshDepthBiasType.DepthBias, - enumNames = { "Depth Bias", "View Bias" }, - enumValues = { (int)DecalMeshDepthBiasType.DepthBias, (int)DecalMeshDepthBiasType.ViewBias }, + enumNames = new() { "Depth Bias", "View Bias" }, + enumValues = new() { (int)DecalMeshDepthBiasType.DepthBias, (int)DecalMeshDepthBiasType.ViewBias }, hidden = true }); diff --git a/Packages/com.unity.render-pipelines.high-definition/Editor/Material/ShaderGraph/HDSubShaderUtilities.cs b/Packages/com.unity.render-pipelines.high-definition/Editor/Material/ShaderGraph/HDSubShaderUtilities.cs index 13dc23de4de..69dc406abe2 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Editor/Material/ShaderGraph/HDSubShaderUtilities.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Editor/Material/ShaderGraph/HDSubShaderUtilities.cs @@ -187,8 +187,8 @@ public static void AddBlendingStatesShaderProperties( overrideReferenceName = kTransparentCullMode, floatType = FloatType.Enum, value = (int)transparentCullMode, - enumNames = { "Front", "Back" }, - enumValues = { (int)TransparentCullMode.Front, (int)TransparentCullMode.Back }, + enumNames = new() { "Front", "Back" }, + enumValues = new() { (int)TransparentCullMode.Front, (int)TransparentCullMode.Back }, hidden = true, overrideHLSLDeclaration = true, hlslDeclarationOverride = HLSLDeclaration.DoNotDeclare, @@ -242,8 +242,8 @@ public static void AddTessellationShaderProperties(PropertyCollector collector, overrideReferenceName = kTessellationMode, floatType = FloatType.Enum, value = (int)tessellationMode, - enumNames = { "None", "Phong" }, - enumValues = { (int)TessellationMode.None, (int)TessellationMode.Phong }, + enumNames = new() { "None", "Phong" }, + enumValues = new() { (int)TessellationMode.None, (int)TessellationMode.Phong }, hidden = true, overrideHLSLDeclaration = true, hlslDeclarationOverride = HLSLDeclaration.DoNotDeclare, @@ -270,7 +270,7 @@ public static void AddDoubleSidedProperty(PropertyCollector collector, DoubleSid collector.AddToggleProperty("_DoubleSidedEnable", mode != DoubleSidedMode.Disabled); collector.AddShaderProperty(new Vector1ShaderProperty { - enumNames = { "Flip", "Mirror", "None" }, // values will be 0, 1 and 2 + enumNames = new() { "Flip", "Mirror", "None" }, // values will be 0, 1 and 2 floatType = FloatType.Enum, overrideReferenceName = "_DoubleSidedNormalMode", hidden = true, @@ -288,7 +288,7 @@ public static void AddDoubleSidedProperty(PropertyCollector collector, DoubleSid }); collector.AddShaderProperty(new Vector1ShaderProperty { - enumNames = { "Auto", "On", "Off" }, // values will be 0, 1 and 2 + enumNames = new() { "Auto", "On", "Off" }, // values will be 0, 1 and 2 floatType = FloatType.Enum, overrideReferenceName = "_DoubleSidedGIMode", hidden = true, diff --git a/Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Targets/UniversalDecalSubTarget.cs b/Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Targets/UniversalDecalSubTarget.cs index 4864d96e608..df7a02e6ec4 100644 --- a/Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Targets/UniversalDecalSubTarget.cs +++ b/Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Targets/UniversalDecalSubTarget.cs @@ -164,8 +164,8 @@ public override void CollectShaderProperties(PropertyCollector collector, Genera displayName = "DecalMesh BiasType", floatType = FloatType.Enum, value = (int)DecalMeshDepthBiasType.DepthBias, - enumNames = { "Depth Bias", "View Bias" }, - enumValues = { (int)DecalMeshDepthBiasType.DepthBias, (int)DecalMeshDepthBiasType.ViewBias }, + enumNames = new() { "Depth Bias", "View Bias" }, + enumValues = new() { (int)DecalMeshDepthBiasType.DepthBias, (int)DecalMeshDepthBiasType.ViewBias }, hidden = true }); From 15ba1856e5f8f9e72caec0b59f1579cadc6cd996 Mon Sep 17 00:00:00 2001 From: Reach Platform Support Date: Thu, 22 Oct 2026 12:24:18 +0000 Subject: [PATCH 44/49] [Port] [6000.3] [UUM-152935] Move ShadowCasterPath into its own file --- .../Editor/2D/Shadows/ShadowCaster2DEditor.cs | 37 ------- .../Editor/2D/Shadows/ShadowCasterPath.cs | 40 +++++++ .../2D/Shadows/ShadowCasterPath.cs.meta | 11 ++ .../Tests/Editor/ShadowCasterPathUndoTests.cs | 104 ++++++++++++++++++ .../Editor/ShadowCasterPathUndoTests.cs.meta | 11 ++ 5 files changed, 166 insertions(+), 37 deletions(-) create mode 100644 Packages/com.unity.render-pipelines.universal/Editor/2D/Shadows/ShadowCasterPath.cs create mode 100644 Packages/com.unity.render-pipelines.universal/Editor/2D/Shadows/ShadowCasterPath.cs.meta create mode 100644 Packages/com.unity.render-pipelines.universal/Tests/Editor/ShadowCasterPathUndoTests.cs create mode 100644 Packages/com.unity.render-pipelines.universal/Tests/Editor/ShadowCasterPathUndoTests.cs.meta 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 5ddc6cfd5e2..8a516d159c4 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 @@ -8,43 +8,6 @@ namespace UnityEditor.Rendering.Universal { - -#if USING_2DCOMMON - - internal class ShadowCasterPath : ScriptablePath - { - internal Bounds GetBounds() - { - ShadowCaster2D shadowCaster = (ShadowCaster2D)owner; - Renderer m_Renderer = shadowCaster.GetComponent(); - if (m_Renderer != null) - { - return m_Renderer.bounds; - } - else - { - Collider2D collider = shadowCaster.GetComponent(); - if (collider != null) - return collider.bounds; - } - - return new Bounds(shadowCaster.transform.position, shadowCaster.transform.lossyScale); - } - - internal void SetDefaultShape() - { - Clear(); - Bounds bounds = GetBounds(); - - AddPoint(new ControlPoint() {position = bounds.min}); - AddPoint(new ControlPoint() {position = new Vector3(bounds.min.x, bounds.max.y)}); - AddPoint(new ControlPoint() {position = bounds.max}); - AddPoint(new ControlPoint() {position = new Vector3(bounds.max.x, bounds.min.y)}); - } - } - -#endif - [CustomEditor(typeof(ShadowCaster2D))] [CanEditMultipleObjects] internal class ShadowCaster2DEditor diff --git a/Packages/com.unity.render-pipelines.universal/Editor/2D/Shadows/ShadowCasterPath.cs b/Packages/com.unity.render-pipelines.universal/Editor/2D/Shadows/ShadowCasterPath.cs new file mode 100644 index 00000000000..2694b41518c --- /dev/null +++ b/Packages/com.unity.render-pipelines.universal/Editor/2D/Shadows/ShadowCasterPath.cs @@ -0,0 +1,40 @@ +#if USING_2DCOMMON +using UnityEngine; +using UnityEngine.Rendering.Universal; +using UnityEditor.U2D.Common.Path; + +namespace UnityEditor.Rendering.Universal +{ + internal class ShadowCasterPath : ScriptablePath + { + internal Bounds GetBounds() + { + ShadowCaster2D shadowCaster = (ShadowCaster2D)owner; + Renderer m_Renderer = shadowCaster.GetComponent(); + if (m_Renderer != null) + { + return m_Renderer.bounds; + } + else + { + Collider2D collider = shadowCaster.GetComponent(); + if (collider != null) + return collider.bounds; + } + + return new Bounds(shadowCaster.transform.position, shadowCaster.transform.lossyScale); + } + + internal void SetDefaultShape() + { + Clear(); + Bounds bounds = GetBounds(); + + AddPoint(new ControlPoint() {position = bounds.min}); + AddPoint(new ControlPoint() {position = new Vector3(bounds.min.x, bounds.max.y)}); + AddPoint(new ControlPoint() {position = bounds.max}); + AddPoint(new ControlPoint() {position = new Vector3(bounds.max.x, bounds.min.y)}); + } + } +} +#endif diff --git a/Packages/com.unity.render-pipelines.universal/Editor/2D/Shadows/ShadowCasterPath.cs.meta b/Packages/com.unity.render-pipelines.universal/Editor/2D/Shadows/ShadowCasterPath.cs.meta new file mode 100644 index 00000000000..2d6eaffd155 --- /dev/null +++ b/Packages/com.unity.render-pipelines.universal/Editor/2D/Shadows/ShadowCasterPath.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ed17b2030a89468485d8e1addb1a9e49 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.universal/Tests/Editor/ShadowCasterPathUndoTests.cs b/Packages/com.unity.render-pipelines.universal/Tests/Editor/ShadowCasterPathUndoTests.cs new file mode 100644 index 00000000000..f09db6321a1 --- /dev/null +++ b/Packages/com.unity.render-pipelines.universal/Tests/Editor/ShadowCasterPathUndoTests.cs @@ -0,0 +1,104 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using NUnit.Framework; +using UnityEngine; +using UnityEngine.TestTools; + +namespace UnityEditor.Rendering.Universal.Tests +{ + // UUM-152935: undoing a ShadowCaster2D shape edit in Play mode logged + // "No script asset for ShadowCasterPath. Check that the definition is in a file of the same name." + // ShadowCasterPath is a ScriptableObject, so Unity needs a MonoScript for it, which needs a file of the same name. + // The type is looked up by name because it only exists when com.unity.2d.common is installed. + class ShadowCasterPathUndoTests + { + static readonly Type ShadowCasterPathType = + Type.GetType("UnityEditor.Rendering.Universal.ShadowCasterPath, Unity.RenderPipelines.Universal.Editor"); + + // Serialized so it survives the domain reload on exiting Play mode, which runs before the assert. + [SerializeField] + List m_MissingScriptWarnings = new List(); + + void OnLogMessage(string message, string stackTrace, LogType type) + { + if (message.Contains("No script asset for")) + m_MissingScriptWarnings.Add(message); + } + + static void IgnoreIfShadowCasterPathMissing() + { + if (ShadowCasterPathType == null) + Assert.Ignore("ShadowCasterPath needs com.unity.2d.common."); + } + + static ScriptableObject CreateShadowCasterPath() + { + IgnoreIfShadowCasterPathMissing(); + + var path = ScriptableObject.CreateInstance(ShadowCasterPathType); + path.hideFlags = HideFlags.HideAndDontSave; + return path; + } + + [Test] + public void ShadowCasterPath_HasMonoScript() + { + var path = CreateShadowCasterPath(); + try + { + var script = MonoScript.FromScriptableObject(path); + Assert.IsNotNull(script, "ShadowCasterPath has no MonoScript."); + Assert.AreEqual(ShadowCasterPathType, script.GetClass()); + } + finally + { + UnityEngine.Object.DestroyImmediate(path); + } + } + + [UnityTest] + public IEnumerator UndoShadowCasterPathInPlayMode_DoesNotWarnAboutMissingScript() + { + return UndoShadowCasterPathInPlayMode(false); + } + + [UnityTest] + public IEnumerator UndoRedoShadowCasterPathInPlayMode_DoesNotWarnAboutMissingScript() + { + return UndoShadowCasterPathInPlayMode(true); + } + + IEnumerator UndoShadowCasterPathInPlayMode(bool redo) + { + // Check before entering Play mode, so an ignored test does not leave the Editor in Play mode. + IgnoreIfShadowCasterPathMissing(); + + yield return new EnterPlayMode(); + + var path = CreateShadowCasterPath(); + m_MissingScriptWarnings.Clear(); + Application.logMessageReceived += OnLogMessage; + try + { + Undo.IncrementCurrentGroup(); + Undo.RegisterCompleteObjectUndo(path, "Edit Shadow Caster Shape"); + Undo.FlushUndoRecordObjects(); + Undo.IncrementCurrentGroup(); + Undo.PerformUndo(); + if (redo) + Undo.PerformRedo(); + } + finally + { + Application.logMessageReceived -= OnLogMessage; + Undo.ClearUndo(path); + UnityEngine.Object.DestroyImmediate(path); + } + + yield return new ExitPlayMode(); + + Assert.IsEmpty(m_MissingScriptWarnings); + } + } +} diff --git a/Packages/com.unity.render-pipelines.universal/Tests/Editor/ShadowCasterPathUndoTests.cs.meta b/Packages/com.unity.render-pipelines.universal/Tests/Editor/ShadowCasterPathUndoTests.cs.meta new file mode 100644 index 00000000000..4dcf7e5aa13 --- /dev/null +++ b/Packages/com.unity.render-pipelines.universal/Tests/Editor/ShadowCasterPathUndoTests.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7c3e1a5d9b2f4e8a6d0c4b1f3a92e57d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: From 3ec8859bde4d5d6d7c30a53c448964a66bbdbb0f Mon Sep 17 00:00:00 2001 From: Reach Platform Support Date: Fri, 23 Oct 2026 03:11:55 +0000 Subject: [PATCH 45/49] [Port] [6000.3] HDRP tests: relax chronic-too-tight image comparison thresholds --- .../4x_PostProcessing/4026_Dithering.unity | 4 +- .../Scenes/9x_Other/9100_16BitDepth.unity | 2 +- .../9x_Other/9970-ScreenSpaceUIOverlay.unity | 4 +- .../LightBaker/InputExtractionMaterials.cs | 53 +++++++++++++------ 4 files changed, 43 insertions(+), 20 deletions(-) diff --git a/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/4x_PostProcessing/4026_Dithering.unity b/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/4x_PostProcessing/4026_Dithering.unity index 79e97998a83..0a8a7145e9f 100644 --- a/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/4x_PostProcessing/4026_Dithering.unity +++ b/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/4x_PostProcessing/4026_Dithering.unity @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:baad97b30fb6bf6ad8163599783074b34785becd03b1e326224310e1918983e4 -size 18343 +oid sha256:eb83d5bc18f4ea39d97e4b612a582e9df1efdefb27fcaaf7b68b453b339b95ec +size 18352 diff --git a/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/9x_Other/9100_16BitDepth.unity b/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/9x_Other/9100_16BitDepth.unity index 920d4609a94..94ee7a1e5c4 100644 --- a/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/9x_Other/9100_16BitDepth.unity +++ b/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/9x_Other/9100_16BitDepth.unity @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:62c84698dd55fa486fa56cc7afd36cd2501045baaadfb1e952e2aaf127552542 +oid sha256:316e70a085e32e746d29a11dc4beb24e3ec8bccb048ef06e1245afea0431cf40 size 65930 diff --git a/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/9x_Other/9970-ScreenSpaceUIOverlay.unity b/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/9x_Other/9970-ScreenSpaceUIOverlay.unity index f64adb51ae7..6225e6669d3 100644 --- a/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/9x_Other/9970-ScreenSpaceUIOverlay.unity +++ b/Tests/SRPTests/Projects/HDRP_Tests/Assets/GraphicTests/Scenes/9x_Other/9970-ScreenSpaceUIOverlay.unity @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:bb9e1f1f736ab0b4f5881bbee4e6c65ee41ac19a35b72caf790103131f6296d0 -size 66221 +oid sha256:bd052b78b0af6f61fcefcc28ea38ac6f0809a44be0737b154c6cea8b40c8ca08 +size 66448 diff --git a/Tests/SRPTests/Projects/HDRP_Tests/Assets/Tests/LightBaker/InputExtractionMaterials.cs b/Tests/SRPTests/Projects/HDRP_Tests/Assets/Tests/LightBaker/InputExtractionMaterials.cs index c17bbabac38..9fa4c711b4d 100644 --- a/Tests/SRPTests/Projects/HDRP_Tests/Assets/Tests/LightBaker/InputExtractionMaterials.cs +++ b/Tests/SRPTests/Projects/HDRP_Tests/Assets/Tests/LightBaker/InputExtractionMaterials.cs @@ -1,3 +1,4 @@ +using System; using System.Collections.Generic; using NUnit.Framework; using UnityEditor.SceneManagement; @@ -21,6 +22,9 @@ public class MetaPassSceneTest public int TextureCount { get; set; } public float RMSEThreshold { get; set; } = 0.0001f; + // Vulkan diverges at sub-texel sampling boundaries (UUM-134767); 0 = no Vulkan-specific floor. + public float VulkanRMSEThreshold { get; set; } = 0.0f; + public override string ToString() { return $"{SceneName}-{ObjectName}-{MetaPassType}"; @@ -52,98 +56,112 @@ Vector4[] textureData SceneName = "Metapass_BasicMaterials", ObjectName = "default", MetaPassType = MetaPassType.Albedo, - TextureCount = 13 + TextureCount = 13, + VulkanRMSEThreshold = 0.035f }, new() { SceneName = "Metapass_BasicMaterials", ObjectName = "default", MetaPassType = MetaPassType.Emission, - TextureCount = 13 + TextureCount = 13, + VulkanRMSEThreshold = 0.035f }, new() { SceneName = "Metapass_BasicMaterials", ObjectName = "emissive", MetaPassType = MetaPassType.Emission, - TextureCount = 13 + TextureCount = 13, + VulkanRMSEThreshold = 0.035f }, new() { SceneName = "Metapass_BasicMaterials", ObjectName = "albedo", MetaPassType = MetaPassType.Albedo, - TextureCount = 13 + TextureCount = 13, + VulkanRMSEThreshold = 0.035f }, new() { SceneName = "Metapass_BasicMaterials", ObjectName = "emissiveTex", MetaPassType = MetaPassType.Emission, - TextureCount = 13 + TextureCount = 13, + VulkanRMSEThreshold = 0.035f }, new() { SceneName = "Metapass_BasicMaterials", ObjectName = "albedoTex", MetaPassType = MetaPassType.Albedo, - TextureCount = 13 + TextureCount = 13, + VulkanRMSEThreshold = 0.035f }, new() { SceneName = "Metapass_BasicMaterials", ObjectName = "albedoTexTriplanarWorldSpace", MetaPassType = MetaPassType.Albedo, - TextureCount = 13 + TextureCount = 13, + VulkanRMSEThreshold = 0.035f }, new() { SceneName = "Metapass_BasicMaterials", ObjectName = "albedoTexPlanarWorldSpace", MetaPassType = MetaPassType.Albedo, - TextureCount = 13 + TextureCount = 13, + VulkanRMSEThreshold = 0.035f }, new() { SceneName = "Metapass_BasicMaterials", ObjectName = "albedoTexTriplanarObjectSpace", MetaPassType = MetaPassType.Albedo, - TextureCount = 13 + TextureCount = 13, + VulkanRMSEThreshold = 0.035f }, new() { SceneName = "Metapass_BasicMaterials", ObjectName = "albedoTexPlanarObjectSpace", MetaPassType = MetaPassType.Albedo, - TextureCount = 13 + TextureCount = 13, + VulkanRMSEThreshold = 0.035f }, new() { SceneName = "Metapass_BasicMaterials", ObjectName = "emissiveTexTiling23", MetaPassType = MetaPassType.Emission, - TextureCount = 13 + TextureCount = 13, + VulkanRMSEThreshold = 0.035f }, new() { SceneName = "Metapass_BasicMaterials", ObjectName = "albedoTexTiling23", MetaPassType = MetaPassType.Albedo, - TextureCount = 13 + TextureCount = 13, + VulkanRMSEThreshold = 0.035f }, new() { SceneName = "Metapass_BasicMaterials", ObjectName = "emissiveTexOffset_p5p3", MetaPassType = MetaPassType.Emission, - TextureCount = 13 + TextureCount = 13, + VulkanRMSEThreshold = 0.035f }, new() { SceneName = "Metapass_BasicMaterials", ObjectName = "albedoTexOffset_p5p3", MetaPassType = MetaPassType.Albedo, - TextureCount = 13 + TextureCount = 13, + VulkanRMSEThreshold = 0.035f }, new() { @@ -233,6 +251,11 @@ public void MetaPassTemplateTests( } Texture2D actualTexture2D = ConvertVector4ImageToRGBAHalfTexture(actualTextureData.resolution.width, actualTextureData.resolution.height, actualTextureData.data); + float rmseThreshold = metaPassTest.RMSEThreshold; + + if (SystemInfo.graphicsDeviceType == UnityEngine.Rendering.GraphicsDeviceType.Vulkan) + rmseThreshold = Math.Max(metaPassTest.VulkanRMSEThreshold, rmseThreshold); + ImageComparisonSettings imageComparisonSettings = new() { @@ -242,7 +265,7 @@ public void MetaPassTemplateTests( ActiveImageTests = ImageComparisonSettings.ImageTests.RMSE, IncorrectPixelsThreshold = 1.0f / (actualTexture2D.width * actualTexture2D.height), - RMSEThreshold = metaPassTest.RMSEThreshold + RMSEThreshold = rmseThreshold }; ImageAssert.AreEqualLinearHDR( From d9e24b6067428f6c614885652346b1e0ba61ee83 Mon Sep 17 00:00:00 2001 From: Reach Platform Support Date: Fri, 23 Oct 2026 03:11:55 +0000 Subject: [PATCH 46/49] [Port] [6000.3] [UUM-154810] Give new Light2D components a default freeform shape --- .../Editor/2D/FreeformPathPresets.cs | 13 ------------- .../Editor/2D/Renderer2DMenus.cs | 2 +- .../Runtime/2D/Light2DAuthoring.cs | 5 ----- .../Runtime/2D/Light2DShape.cs | 2 +- .../Tests/Runtime/Light2DTests.cs | 13 +++++++++++++ 5 files changed, 15 insertions(+), 20 deletions(-) diff --git a/Packages/com.unity.render-pipelines.universal/Editor/2D/FreeformPathPresets.cs b/Packages/com.unity.render-pipelines.universal/Editor/2D/FreeformPathPresets.cs index 0af7b773c50..49346d9f25f 100644 --- a/Packages/com.unity.render-pipelines.universal/Editor/2D/FreeformPathPresets.cs +++ b/Packages/com.unity.render-pipelines.universal/Editor/2D/FreeformPathPresets.cs @@ -5,19 +5,6 @@ namespace UnityEditor.Rendering.Universal { internal static class FreeformPathPresets { - public static Vector3[] CreateSquare() - { - Vector3[] returnPath = new Vector3[4] - { - new Vector3(-0.5f, -0.5f), - new Vector3(0.5f, -0.5f), - new Vector3(0.5f, 0.5f), - new Vector3(-0.5f, 0.5f) - }; - - return returnPath; - } - public static Vector3[] CreateIsometricDiamond() { Vector3[] returnPath = new Vector3[4] diff --git a/Packages/com.unity.render-pipelines.universal/Editor/2D/Renderer2DMenus.cs b/Packages/com.unity.render-pipelines.universal/Editor/2D/Renderer2DMenus.cs index 9e9981e7e2b..9257f0b7bcb 100644 --- a/Packages/com.unity.render-pipelines.universal/Editor/2D/Renderer2DMenus.cs +++ b/Packages/com.unity.render-pipelines.universal/Editor/2D/Renderer2DMenus.cs @@ -127,7 +127,7 @@ static bool CreateLightValidation() [MenuItem("GameObject/Light/Freeform Light 2D/Square", priority = CoreUtils.Sections.section3 + CoreUtils.Priorities.gameObjectMenuPriority + 4)] static void CreateSquareFreeformLight2D(MenuCommand menuCommand) { - CreateLight(menuCommand, Light2D.LightType.Freeform, FreeformPathPresets.CreateSquare()); + CreateLight(menuCommand, Light2D.LightType.Freeform); } [MenuItem("GameObject/Light/Freeform Light 2D/Circle", priority = CoreUtils.Sections.section3 + CoreUtils.Priorities.gameObjectMenuPriority + 5)] diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/2D/Light2DAuthoring.cs b/Packages/com.unity.render-pipelines.universal/Runtime/2D/Light2DAuthoring.cs index 7ce0ac31763..f0d709b128f 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/2D/Light2DAuthoring.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/2D/Light2DAuthoring.cs @@ -21,11 +21,6 @@ private void OnDrawGizmos() Gizmos.DrawIcon(transform.position, s_IconsPath + s_LightIconFileNames[(int)m_LightType], true); } - void Reset() - { - m_ShapePath = new Vector3[] { new Vector3(-0.5f, -0.5f), new Vector3(0.5f, -0.5f), new Vector3(0.5f, 0.5f), new Vector3(-0.5f, 0.5f) }; - } - internal List GetFalloffShape() { return LightUtility.GetOutlinePath(m_ShapePath, m_ShapeLightFalloffSize); diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/2D/Light2DShape.cs b/Packages/com.unity.render-pipelines.universal/Runtime/2D/Light2DShape.cs index caab50fd9e6..f103e7245c8 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/2D/Light2DShape.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/2D/Light2DShape.cs @@ -7,7 +7,7 @@ public sealed partial class Light2D [SerializeField] float m_ShapeLightParametricRadius = 1.0f; [SerializeField] float m_ShapeLightFalloffSize = 0.50f; [SerializeField] Vector2 m_ShapeLightFalloffOffset = Vector2.zero; - [SerializeField] Vector3[] m_ShapePath = null; + [SerializeField] Vector3[] m_ShapePath = { new Vector3(-0.5f, -0.5f), new Vector3(0.5f, -0.5f), new Vector3(0.5f, 0.5f), new Vector3(-0.5f, 0.5f) }; float m_PreviousShapeLightFalloffSize = -1; int m_PreviousShapeLightParametricSides = -1; diff --git a/Packages/com.unity.render-pipelines.universal/Tests/Runtime/Light2DTests.cs b/Packages/com.unity.render-pipelines.universal/Tests/Runtime/Light2DTests.cs index cc65f17420d..a8955744648 100644 --- a/Packages/com.unity.render-pipelines.universal/Tests/Runtime/Light2DTests.cs +++ b/Packages/com.unity.render-pipelines.universal/Tests/Runtime/Light2DTests.cs @@ -153,6 +153,19 @@ public void CachedMeshDataIsOverriddenByRuntimeChanges() Assert.AreNotEqual(triangleCount, light.lightMesh.vertices.Length); } + // UUM-154810: a Freeform light created from script, with no SetShapePath call, + // must start with the default square instead of a null path. + [Test] + public void FreeformLightCreatedFromScriptHasDefaultShape() + { + var light = m_TestObjectCached.AddComponent(); + light.lightType = Light2D.LightType.Freeform; + + Assert.DoesNotThrow(() => light.UpdateMesh(true)); + Assert.AreEqual(new[] { new Vector3(-0.5f, -0.5f), new Vector3(0.5f, -0.5f), new Vector3(0.5f, 0.5f), new Vector3(-0.5f, 0.5f) }, light.shapePath); + Assert.Greater(light.lightMesh.vertexCount, 0); + } + [Test] public void EnsureShapeMeshGenerationDoesNotOverflowAllocation() { From 0e720ae2c2f00c59c78ed7cc24522e138e3ee01d Mon Sep 17 00:00:00 2001 From: Reach Platform Support Date: Fri, 23 Oct 2026 03:11:55 +0000 Subject: [PATCH 47/49] [Port] [6000.3] [UUM-157948] [URP] [7000.0] Fix RenderGraph sample errors when no depth buffer exists --- .../Culling/CullingRenderPassRendererFeature.cs | 5 ++++- .../RendererList/RendererListRenderFeature.cs | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/Packages/com.unity.render-pipelines.universal/Samples~/URPRenderGraphSamples/Culling/CullingRenderPassRendererFeature.cs b/Packages/com.unity.render-pipelines.universal/Samples~/URPRenderGraphSamples/Culling/CullingRenderPassRendererFeature.cs index a3b9007fae1..0b9cc314cb5 100644 --- a/Packages/com.unity.render-pipelines.universal/Samples~/URPRenderGraphSamples/Culling/CullingRenderPassRendererFeature.cs +++ b/Packages/com.unity.render-pipelines.universal/Samples~/URPRenderGraphSamples/Culling/CullingRenderPassRendererFeature.cs @@ -82,7 +82,10 @@ public override void RecordRenderGraph(RenderGraph renderGraph, ContextContainer // Setup as a render target via UseTextureFragment and UseTextureFragmentDepth, which are the equivalent of using the old cmd.SetRenderTarget(color,depth). builder.SetRenderAttachment(resourceData.activeColorTexture, 0); - builder.SetRenderAttachmentDepth(resourceData.activeDepthTexture, AccessFlags.Write); + + // The active depth texture is not valid when the renderer has no depth buffer. + if (resourceData.activeDepthTexture.IsValid()) + builder.SetRenderAttachmentDepth(resourceData.activeDepthTexture, AccessFlags.Write); // Assign the ExecutePass function to the render pass delegate, which will be called by the render graph when executing the pass. builder.SetRenderFunc(static (PassData data, RasterGraphContext context) => ExecutePass(data, context)); diff --git a/Packages/com.unity.render-pipelines.universal/Samples~/URPRenderGraphSamples/RendererList/RendererListRenderFeature.cs b/Packages/com.unity.render-pipelines.universal/Samples~/URPRenderGraphSamples/RendererList/RendererListRenderFeature.cs index ef6a672868d..38788ca9a50 100644 --- a/Packages/com.unity.render-pipelines.universal/Samples~/URPRenderGraphSamples/RendererList/RendererListRenderFeature.cs +++ b/Packages/com.unity.render-pipelines.universal/Samples~/URPRenderGraphSamples/RendererList/RendererListRenderFeature.cs @@ -96,7 +96,10 @@ public override void RecordRenderGraph(RenderGraph renderGraph, ContextContainer // Setup as a render target via UseTextureFragment and UseTextureFragmentDepth, which are the equivalent of using the old cmd.SetRenderTarget(color,depth) builder.SetRenderAttachment(resourceData.activeColorTexture, 0); - builder.SetRenderAttachmentDepth(resourceData.activeDepthTexture, AccessFlags.Write); + + // The active depth texture is not valid when the renderer has no depth buffer. + if (resourceData.activeDepthTexture.IsValid()) + builder.SetRenderAttachmentDepth(resourceData.activeDepthTexture, AccessFlags.Write); // Assign the ExecutePass function to the render pass delegate, which will be called by the render graph when executing the pass. builder.SetRenderFunc(static (PassData data, RasterGraphContext context) => ExecutePass(data, context)); From d00129f7e7ffd96d4c8deb5d02ee45ad20e0cee7 Mon Sep 17 00:00:00 2001 From: Reach Platform Support Date: Sat, 24 Oct 2026 07:15:08 +0000 Subject: [PATCH 48/49] [Port] [6000.3] Fix shader variant mismatch when additional light shadows disabled in URP with deferred --- .../Runtime/Passes/AdditionalLightsShadowCasterPass.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 6431a1b4758..e1f2ff3a373 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Passes/AdditionalLightsShadowCasterPass.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Passes/AdditionalLightsShadowCasterPass.cs @@ -683,14 +683,14 @@ bool SetupForEmptyRendering(bool stripShadowsOffVariants, bool shadowsEnabled, U if (!stripShadowsOffVariants) return false; - shadowData.isKeywordAdditionalLightShadowsEnabled = true; m_CreateEmptyShadowmap = true; - + #if URP_COMPATIBILITY_MODE useNativeRenderPass = false; #endif m_SetKeywordForEmptyShadowmap = shadowsEnabled; + shadowData.isKeywordAdditionalLightShadowsEnabled = m_SetKeywordForEmptyShadowmap; // Even though there are not real-time shadows, the lights might be using shadowmasks, // which is why we need to update the shadow parameters, for example so shadow strength can be used. From 8834616e215711d5869d207dc80368ef6dbe18ca Mon Sep 17 00:00:00 2001 From: Reach Platform Support Date: Sat, 24 Oct 2026 07:15:09 +0000 Subject: [PATCH 49/49] [Port] [6000.3] [UUM-137732] Fix APV probe placement on Vulkan with AMD GPUs --- .../Editor/Lighting/ProbeVolume/VoxelizeScene.hlsl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/VoxelizeScene.hlsl b/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/VoxelizeScene.hlsl index 94215830b0d..14cb5ff3e9d 100644 --- a/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/VoxelizeScene.hlsl +++ b/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/VoxelizeScene.hlsl @@ -10,7 +10,7 @@ CBUFFER_START(InstanceData) CBUFFER_END #endif -RWTexture3D _Output : register(u4); +RWTexture3D _Output : register(u4); float _OutputSize; float3 _VolumeWorldOffset; float3 _VolumeSize;