diff --git a/Packages/com.unity.render-pipelines.core/Documentation~/Images/LightAnchorAnimation.gif b/Packages/com.unity.render-pipelines.core/Documentation~/Images/LightAnchorAnimation.gif
deleted file mode 100644
index 2e4ea72c416..00000000000
Binary files a/Packages/com.unity.render-pipelines.core/Documentation~/Images/LightAnchorAnimation.gif and /dev/null differ
diff --git a/Packages/com.unity.render-pipelines.core/Documentation~/Images/videos/light-anchor-animation.mp4 b/Packages/com.unity.render-pipelines.core/Documentation~/Images/videos/light-anchor-animation.mp4
new file mode 100644
index 00000000000..1b7784f1e57
Binary files /dev/null and b/Packages/com.unity.render-pipelines.core/Documentation~/Images/videos/light-anchor-animation.mp4 differ
diff --git a/Packages/com.unity.render-pipelines.core/Documentation~/Rendering-Debugger.md b/Packages/com.unity.render-pipelines.core/Documentation~/Rendering-Debugger.md
index 988b773307f..f761d66735f 100644
--- a/Packages/com.unity.render-pipelines.core/Documentation~/Rendering-Debugger.md
+++ b/Packages/com.unity.render-pipelines.core/Documentation~/Rendering-Debugger.md
@@ -127,7 +127,7 @@ public class CustomDebugPanel : MonoBehaviour
Add the script to a GameObject. You should see a new **My Custom Panel** panel in the **Rendering Debugger** window.
-
+
### Add a control to an existing panel
diff --git a/Packages/com.unity.render-pipelines.core/Documentation~/View-Lighting-Tool.md b/Packages/com.unity.render-pipelines.core/Documentation~/View-Lighting-Tool.md
index ef36cc257bc..a224d2763e7 100644
--- a/Packages/com.unity.render-pipelines.core/Documentation~/View-Lighting-Tool.md
+++ b/Packages/com.unity.render-pipelines.core/Documentation~/View-Lighting-Tool.md
@@ -17,13 +17,13 @@ Use the **Orbit** and **Elevation** to control the orientation of the light, in
You can use the **Anchor Position Override** to provide a GameObject’s [Transform](https://docs.unity3d.com/ScriptReference/Transform.html) as an anchor point for the Light. This is useful if you want the Light to follow a specific GameObject in the Scene.
-
+
**Note**: The above example uses the Main Camera as the reference Camera that adjusts the light rotation. The Common presets might create a different result in the Scene View if your view isn't aligned with the Main Camera.
You can set a **Position Offset** for this custom Anchor. This is useful if the Transform position of the custom Anchor isn't centered appropriately for the light to orbit correctly around the custom Anchor.
-
+
The Light Anchor component also includes a list of **Presets** that you can use to set the Light's orientation relative to the main Camera.
diff --git a/Packages/com.unity.render-pipelines.core/Documentation~/add-custom-graphics-setting.md b/Packages/com.unity.render-pipelines.core/Documentation~/add-custom-graphics-setting.md
index d3a57390314..c4505bc83f5 100644
--- a/Packages/com.unity.render-pipelines.core/Documentation~/add-custom-graphics-setting.md
+++ b/Packages/com.unity.render-pipelines.core/Documentation~/add-custom-graphics-setting.md
@@ -37,7 +37,7 @@ public class MySettings : IRenderPipelineGraphicsSettings
public Material myMaterial;
}
```
-
+
The **Edit** > **Project Settings** > **Graphics** window with the new custom setting from the example script.
## Set the default asset for a reference property
diff --git a/Packages/com.unity.render-pipelines.core/Documentation~/add-custom-graphics-settings.md b/Packages/com.unity.render-pipelines.core/Documentation~/add-custom-graphics-settings.md
index 1365a8648f4..d0d515da02f 100644
--- a/Packages/com.unity.render-pipelines.core/Documentation~/add-custom-graphics-settings.md
+++ b/Packages/com.unity.render-pipelines.core/Documentation~/add-custom-graphics-settings.md
@@ -37,7 +37,7 @@ public class MySettings : IRenderPipelineGraphicsSettings
}
```
-
+
The **Edit** > **Project Settings** > **Graphics** window with the new custom settings group from the example script.
## Change the display order of settings groups
diff --git a/Packages/com.unity.render-pipelines.core/Documentation~/adding-properties.md b/Packages/com.unity.render-pipelines.core/Documentation~/adding-properties.md
index b6554fb9261..26a649ba9d8 100644
--- a/Packages/com.unity.render-pipelines.core/Documentation~/adding-properties.md
+++ b/Packages/com.unity.render-pipelines.core/Documentation~/adding-properties.md
@@ -30,4 +30,4 @@ For example:
Unity shows the new properties in the **Core Render Pipeline** settings section:
-
+
diff --git a/Packages/com.unity.render-pipelines.core/Editor/AssemblyInfo.cs b/Packages/com.unity.render-pipelines.core/Editor/AssemblyInfo.cs
index e867779953e..da38b033da5 100644
--- a/Packages/com.unity.render-pipelines.core/Editor/AssemblyInfo.cs
+++ b/Packages/com.unity.render-pipelines.core/Editor/AssemblyInfo.cs
@@ -3,3 +3,6 @@
[assembly: InternalsVisibleTo("Unity.RenderPipelines.Core.Editor.Shared")]
[assembly: InternalsVisibleTo("Unity.RenderPipelines.Core.Editor.Tests")]
[assembly: InternalsVisibleTo("Unity.RenderPipelines.HighDefinition.Editor.Tests")]
+[assembly: InternalsVisibleTo("Unity.RenderPipelines.HighDefinition.Editor.Tests")]
+[assembly: InternalsVisibleTo("Assembly-CSharp-Editor-testable")]
+
diff --git a/Packages/com.unity.render-pipelines.core/Editor/CoreEditorStyles.cs b/Packages/com.unity.render-pipelines.core/Editor/CoreEditorStyles.cs
index 74af19d2b45..c624b204fad 100644
--- a/Packages/com.unity.render-pipelines.core/Editor/CoreEditorStyles.cs
+++ b/Packages/com.unity.render-pipelines.core/Editor/CoreEditorStyles.cs
@@ -215,7 +215,7 @@ static CoreEditorStyles()
greenTexture = CoreEditorUtils.CreateColoredTexture2D(Color.green, "Green 1x1");
blueTexture = CoreEditorUtils.CreateColoredTexture2D(Color.blue, "Blue 1x1");
- iconHelp = CoreEditorUtils.FindTexture("_Help");
+ iconHelp = CoreEditorUtils.LoadIcon("icons", "console.infoicon", ".png");
iconWarn = CoreEditorUtils.LoadIcon("icons", "console.warnicon", ".png");
iconFail = CoreEditorUtils.LoadIcon("icons", "console.erroricon", ".png");
iconSuccess = EditorGUIUtility.FindTexture("TestPassed");
diff --git a/Packages/com.unity.render-pipelines.core/Editor/PostProcessing/.buginfo b/Packages/com.unity.render-pipelines.core/Editor/PostProcessing/.buginfo
index d595eb6c6aa..24a842b92f3 100644
--- a/Packages/com.unity.render-pipelines.core/Editor/PostProcessing/.buginfo
+++ b/Packages/com.unity.render-pipelines.core/Editor/PostProcessing/.buginfo
@@ -1 +1 @@
-area: Post-processing and UI Features
\ No newline at end of file
+area: Post-processing and Compositing
\ No newline at end of file
diff --git a/Packages/com.unity.render-pipelines.core/Editor/UXML/VolumeEditor.uxml b/Packages/com.unity.render-pipelines.core/Editor/UXML/VolumeEditor.uxml
index 22d89d92071..7d9e4742b95 100644
--- a/Packages/com.unity.render-pipelines.core/Editor/UXML/VolumeEditor.uxml
+++ b/Packages/com.unity.render-pipelines.core/Editor/UXML/VolumeEditor.uxml
@@ -1,17 +1,17 @@
diff --git a/Packages/com.unity.render-pipelines.core/Editor/Volume/VolumeComponentEditor.cs b/Packages/com.unity.render-pipelines.core/Editor/Volume/VolumeComponentEditor.cs
index bb64826d8aa..dbd9f18bd58 100644
--- a/Packages/com.unity.render-pipelines.core/Editor/Volume/VolumeComponentEditor.cs
+++ b/Packages/com.unity.render-pipelines.core/Editor/Volume/VolumeComponentEditor.cs
@@ -122,7 +122,7 @@ internal Vector2 overrideToggleSize
///
/// Override this property if your editor makes use of the "Additional Properties" feature.
///
- public virtual bool hasAdditionalProperties => volumeComponent.parameterList.Count != m_VolumeNotAdditionalParameters.Count;
+ public virtual bool hasAdditionalProperties => volumeComponent.parameterList.Length != m_VolumeNotAdditionalParameters.Count;
///
/// Set to true to show additional properties.
@@ -520,7 +520,7 @@ internal void SetOverridesTo(bool state)
internal bool AreAllOverridesTo(bool state)
{
- for (int i = 0; i < volumeComponent.parameterList.Count; ++i)
+ for (int i = 0; i < volumeComponent.parameterList.Length; ++i)
{
if (volumeComponent.parameterList[i].overrideState != state)
return false;
diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Debugging/DebugDisplaySettingsVolumes.cs b/Packages/com.unity.render-pipelines.core/Runtime/Debugging/DebugDisplaySettingsVolumes.cs
index 28ddad6fa06..87296a7fb0e 100644
--- a/Packages/com.unity.render-pipelines.core/Runtime/Debugging/DebugDisplaySettingsVolumes.cs
+++ b/Packages/com.unity.render-pipelines.core/Runtime/Debugging/DebugDisplaySettingsVolumes.cs
@@ -627,7 +627,7 @@ private static void GenerateTableColumns(DebugUI.Table table, DebugDisplaySettin
((DebugUI.Table.Row)table.children[++iRowIndex]).children.Add(s_EmptyDebugUIValue);
bool isResultParameter = i == 0;
- for (int j = 0; j < chain.volumeComponent.parameterList.Count; ++j)
+ for (int j = 0; j < chain.volumeComponent.parameterList.Length; ++j)
{
var parameter = chain.volumeComponent.parameterList[j];
((DebugUI.Table.Row)table.children[++iRowIndex]).children.Add(
@@ -675,18 +675,14 @@ private static void GenerateTableRows(DebugUI.Table table, List();
+ var colliders = volume.colliders;
// Find closest distance to volume, 0 means it's inside it
float closestDistanceSqr = float.PositiveInfinity;
diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Lighting/ProbeVolume/ProbeReferenceVolume.Debug.cs b/Packages/com.unity.render-pipelines.core/Runtime/Lighting/ProbeVolume/ProbeReferenceVolume.Debug.cs
index 7ce2bb2bc03..37b84ecdeb9 100644
--- a/Packages/com.unity.render-pipelines.core/Runtime/Lighting/ProbeVolume/ProbeReferenceVolume.Debug.cs
+++ b/Packages/com.unity.render-pipelines.core/Runtime/Lighting/ProbeVolume/ProbeReferenceVolume.Debug.cs
@@ -566,7 +566,11 @@ void RefreshDebug(DebugUI.Field field, T value)
displayName = "Max Subdivisions Displayed",
tooltip = "The highest (most dense) probe subdivision level displayed in the debug view.",
getter = () => probeVolumeDebug.maxSubdivToVisualize,
- setter = (v) => probeVolumeDebug.maxSubdivToVisualize = Mathf.Max(0, Mathf.Min(v, GetMaxSubdivision() - 1)),
+ setter = (v) =>
+ {
+ // If no baked data, force to set the value as kMaxSubdivisionLevels for UX.
+ probeVolumeDebug.maxSubdivToVisualize = GetMaxSubdivision() == 0 ? ProbeBrickIndex.kMaxSubdivisionLevels : Mathf.Max(0, Mathf.Min(v, GetMaxSubdivision() - 1));
+ },
min = () => 0,
max = () => Mathf.Max(0, GetMaxSubdivision() - 1),
});
@@ -1122,7 +1126,8 @@ internal bool GetFlattenedProbeData(
out float[] validity,
out Vector4[] occlusion,
out Vector4[] skyOcclusion,
- out Vector3[] skyOcclusionDirections)
+ out Vector3[] skyOcclusionDirections,
+ out Vector3[] virtualOffset)
{
positions = null;
irradiance = null;
@@ -1130,6 +1135,7 @@ internal bool GetFlattenedProbeData(
occlusion = null;
skyOcclusion = null;
skyOcclusionDirections = null;
+ virtualOffset = null;
var positionsList = new List();
var irradianceList = new List();
@@ -1137,6 +1143,7 @@ internal bool GetFlattenedProbeData(
var occlusionList = new List();
var skyOcclusionList = new List();
var skyOcclusionDirectionList = new List();
+ var virtualOffsetList = new List();
foreach (var cell in cells.Values)
{
@@ -1203,6 +1210,12 @@ internal bool GetFlattenedProbeData(
skyOcclusionDirectionList.Add(skyOcclusionDirection);
}
+ if (cell.data.offsetVectors.Length > 0)
+ {
+ var offsetValue = cell.data.offsetVectors[probeFlatIndex];
+ virtualOffsetList.Add(offsetValue);
+ }
+
Vector4 L0_L1Rx = Vector4.zero;
Vector4 L1G_L1Ry = Vector4.zero;
Vector4 L1B_L1Rz = Vector4.zero;
@@ -1304,6 +1317,7 @@ internal bool GetFlattenedProbeData(
occlusion = occlusionList.ToArray();
skyOcclusion = skyOcclusionList.ToArray();
skyOcclusionDirections = skyOcclusionDirectionList.ToArray();
+ virtualOffset = virtualOffsetList.ToArray();
return true;
}
diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Lighting/ProbeVolume/ProbeVolumesOptions.cs b/Packages/com.unity.render-pipelines.core/Runtime/Lighting/ProbeVolume/ProbeVolumesOptions.cs
index 4148af54fa0..2e3518ff0df 100644
--- a/Packages/com.unity.render-pipelines.core/Runtime/Lighting/ProbeVolume/ProbeVolumesOptions.cs
+++ b/Packages/com.unity.render-pipelines.core/Runtime/Lighting/ProbeVolume/ProbeVolumesOptions.cs
@@ -22,6 +22,7 @@ public APVLeakReductionModeParameter(APVLeakReductionMode value, bool overrideSt
/// A volume component that holds settings for the Adaptive Probe Volumes System per-camera options.
///
[Serializable, VolumeComponentMenu("Lighting/Adaptive Probe Volumes Options"), SupportedOnRenderPipeline]
+ [CurrentPipelineHelpURL("probevolumes")]
public sealed class ProbeVolumesOptions : VolumeComponent
{
ProbeVolumesOptions()
diff --git a/Packages/com.unity.render-pipelines.core/Runtime/PostProcessing/.buginfo b/Packages/com.unity.render-pipelines.core/Runtime/PostProcessing/.buginfo
index fbd5f8466e1..24a842b92f3 100644
--- a/Packages/com.unity.render-pipelines.core/Runtime/PostProcessing/.buginfo
+++ b/Packages/com.unity.render-pipelines.core/Runtime/PostProcessing/.buginfo
@@ -1 +1 @@
-area: Post-processing and UI Features
+area: Post-processing and Compositing
\ No newline at end of file
diff --git a/Packages/com.unity.render-pipelines.core/Runtime/RenderGraph/RenderGraphDefaultResources.cs b/Packages/com.unity.render-pipelines.core/Runtime/RenderGraph/RenderGraphDefaultResources.cs
index 8fbe5617fba..f3e9b8a7f82 100644
--- a/Packages/com.unity.render-pipelines.core/Runtime/RenderGraph/RenderGraphDefaultResources.cs
+++ b/Packages/com.unity.render-pipelines.core/Runtime/RenderGraph/RenderGraphDefaultResources.cs
@@ -48,7 +48,16 @@ private void InitDefaultResourcesIfNeeded()
m_WhiteTexture2D = RTHandles.Alloc(Texture2D.whiteTexture);
if (m_ShadowTexture2D == null)
+ {
m_ShadowTexture2D = RTHandles.Alloc(1, 1, CoreUtils.GetDefaultDepthOnlyFormat(), isShadowMap: true, name: "DefaultShadowTexture");
+
+ // Fill the shadow texture with the default (far-plane) depth value for the current platform.
+ CommandBuffer cmd = CommandBufferPool.Get();
+ cmd.SetRenderTarget(m_ShadowTexture2D);
+ cmd.ClearRenderTarget(RTClearFlags.All, Color.white);
+ Graphics.ExecuteCommandBuffer(cmd);
+ CommandBufferPool.Release(cmd);
+ }
}
internal void Cleanup()
diff --git a/Packages/com.unity.render-pipelines.core/Runtime/STP/.buginfo b/Packages/com.unity.render-pipelines.core/Runtime/STP/.buginfo
index 3561c5aedbc..1c17ebaa73c 100644
--- a/Packages/com.unity.render-pipelines.core/Runtime/STP/.buginfo
+++ b/Packages/com.unity.render-pipelines.core/Runtime/STP/.buginfo
@@ -1 +1 @@
-area: Graphics Optimization Systems
\ No newline at end of file
+area: Culling
diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Settings/LightmapSamplingSettings.cs b/Packages/com.unity.render-pipelines.core/Runtime/Settings/LightmapSamplingSettings.cs
index d6ff46e1b35..87b1975e634 100644
--- a/Packages/com.unity.render-pipelines.core/Runtime/Settings/LightmapSamplingSettings.cs
+++ b/Packages/com.unity.render-pipelines.core/Runtime/Settings/LightmapSamplingSettings.cs
@@ -15,6 +15,8 @@ public class LightmapSamplingSettings : IRenderPipelineGraphicsSettings
int IRenderPipelineGraphicsSettings.version { get => m_Version; }
+ bool IRenderPipelineGraphicsSettings.isAvailableInPlayerBuild => true;
+
[SerializeField, Tooltip("Use Bicubic Lightmap Sampling. Enabling this will improve the appearance of lightmaps, but may worsen performance on lower end platforms.")]
bool m_UseBicubicLightmapSampling;
diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Volume/Volume.cs b/Packages/com.unity.render-pipelines.core/Runtime/Volume/Volume.cs
index 82ff5a11cc3..976072d9bec 100644
--- a/Packages/com.unity.render-pipelines.core/Runtime/Volume/Volume.cs
+++ b/Packages/com.unity.render-pipelines.core/Runtime/Volume/Volume.cs
@@ -21,26 +21,55 @@ public class Volume : MonoBehaviour, IVolume
public bool isGlobal
{
get => m_IsGlobal;
- set => m_IsGlobal = value;
+ set
+ {
+ m_IsGlobal = value;
+ if (!m_IsGlobal)
+ UpdateColliders();
+ }
}
+ [Delayed, SerializeField, FormerlySerializedAs("priority")]
+ float m_Priority = 0f;
+
///
/// A value which determines which Volume is being used when Volumes have an equal amount of influence on the Scene. Volumes with a higher priority will override lower ones.
///
- [Delayed]
- public float priority = 0f;
-
+ public float priority
+ {
+ get => m_Priority;
+ set
+ {
+ m_Priority = value;
+ m_PreviousPriority = m_Priority;
+ VolumeManager.instance.SetLayerDirty(cachedGameObject.layer);
+ }
+ }
+
+ [SerializeField, FormerlySerializedAs("blendDistance")]
+ float m_BlendDistance;
+
///
/// The outer distance to start blending from. A value of 0 means no blending and Unity applies
/// the Volume overrides immediately upon entry.
///
- public float blendDistance = 0f;
+ public float blendDistance
+ {
+ get => m_BlendDistance;
+ set => m_BlendDistance = Mathf.Max(value, 0f);
+ }
+ [Range(0f, 1f), SerializeField, FormerlySerializedAs("weight")]
+ float m_Weight = 1f;
+
///
/// The total weight of this volume in the Scene. 0 means no effect and 1 means full effect.
///
- [Range(0f, 1f)]
- public float weight = 1f;
+ public float weight
+ {
+ get => m_Weight;
+ set => m_Weight = Mathf.Clamp01(value);
+ }
///
/// The shared Profile that this Volume uses.
@@ -91,12 +120,15 @@ public VolumeProfile profile
set => m_InternalProfile = value;
}
- internal List m_Colliders = new List();
+ readonly List m_Colliders = new List();
///
/// The colliders of the volume if is false
///
public List colliders => m_Colliders;
+
+ GameObject m_CachedGameObject;
+ internal GameObject cachedGameObject => m_CachedGameObject;
internal VolumeProfile profileRef => m_InternalProfile == null ? sharedProfile : m_InternalProfile;
@@ -115,9 +147,10 @@ public VolumeProfile profile
void OnEnable()
{
- m_PreviousLayer = gameObject.layer;
+ m_CachedGameObject = gameObject;
+ m_PreviousLayer = cachedGameObject.layer;
VolumeManager.instance.Register(this);
- GetComponents(m_Colliders);
+ UpdateColliders();
}
void OnDisable()
@@ -128,14 +161,25 @@ void OnDisable()
void Update()
{
UpdateLayer();
- UpdatePriority();
#if UNITY_EDITOR
// In the editor, we refresh the list of colliders at every frame because it's frequent to add/remove them
- GetComponents(m_Colliders);
+ UpdateColliders();
#endif
}
+ ///
+ /// Updates the cached list of colliders stored in the Volume.
+ ///
+ ///
+ /// The Volume class caches a list of colliders for performance and quick access.
+ /// If you add or remove colliders at runtime, call this method to refresh the cached collider list.
+ ///
+ public void UpdateColliders()
+ {
+ GetComponents(m_Colliders);
+ }
+
internal void UpdateLayer()
{
// Unfortunately we need to track the current layer to update the volume manager in
@@ -143,7 +187,7 @@ internal void UpdateLayer()
// Because no event is raised when the layer changes, we have to track it on every
// frame :/
- int layer = gameObject.layer;
+ int layer = cachedGameObject.layer;
if (layer == m_PreviousLayer)
return;
@@ -151,22 +195,14 @@ internal void UpdateLayer()
m_PreviousLayer = layer;
}
- internal void UpdatePriority()
- {
- if (!(Math.Abs(priority - m_PreviousPriority) > Mathf.Epsilon))
- return;
-
- // Same for priority. We could use a property instead, but it doesn't play nice with the
- // serialization system. Using a custom Attribute/PropertyDrawer for a property is
- // possible but it doesn't work with Undo/Redo in the editor, which makes it useless for
- // our case.
- VolumeManager.instance.SetLayerDirty(gameObject.layer);
- m_PreviousPriority = priority;
- }
-
void OnValidate()
{
- blendDistance = Mathf.Max(blendDistance, 0f);
+ //Handle the Undo/Redo case for priority
+ if (Mathf.Abs(priority - m_PreviousPriority) > Mathf.Epsilon && cachedGameObject !=null)
+ {
+ VolumeManager.instance?.SetLayerDirty(cachedGameObject.layer);
+ m_PreviousPriority = priority;
+ }
}
}
}
diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Volume/VolumeComponent.cs b/Packages/com.unity.render-pipelines.core/Runtime/Volume/VolumeComponent.cs
index 17fb6b19b34..4fa42010bee 100644
--- a/Packages/com.unity.render-pipelines.core/Runtime/Volume/VolumeComponent.cs
+++ b/Packages/com.unity.render-pipelines.core/Runtime/Volume/VolumeComponent.cs
@@ -162,21 +162,13 @@ public Indent(int relativeAmount = 1)
///
/// The backing storage of . Use this for performance-critical work.
///
- internal readonly List parameterList = new();
-
+ internal VolumeParameter[] parameterList;
+
ReadOnlyCollection m_ParameterReadOnlyCollection;
///
/// A read-only collection of all the s defined in this class.
///
- public ReadOnlyCollection parameters
- {
- get
- {
- if (m_ParameterReadOnlyCollection == null)
- m_ParameterReadOnlyCollection = parameterList.AsReadOnly();
- return m_ParameterReadOnlyCollection;
- }
- }
+ public ReadOnlyCollection parameters => m_ParameterReadOnlyCollection ??= new ReadOnlyCollection(parameterList);
///
/// Extracts all the s defined in this class and nested classes.
@@ -195,26 +187,19 @@ internal static void FindParameters(object o, List parameters,
foreach (var field in fields)
{
- if (field.FieldType.IsSubclassOf(typeof(VolumeParameter)))
+ var fieldType = field.FieldType;
+ if (fieldType.IsSubclassOf(typeof(VolumeParameter)))
{
if (filter?.Invoke(field) ?? true)
{
VolumeParameter volumeParameter = (VolumeParameter)field.GetValue(o);
#if UNITY_EDITOR || DEVELOPMENT_BUILD
- var attr = (DisplayInfoAttribute[])field.GetCustomAttributes(typeof(DisplayInfoAttribute), true);
- if (attr.Length != 0)
- {
- volumeParameter.debugId = attr[0].name;
- }
- else
- {
- volumeParameter.debugId = field.Name;
- }
+ VolumeDebugData.AddVolumeParameterDebugId(volumeParameter, field);
#endif
parameters.Add(volumeParameter);
}
}
- else if (!field.FieldType.IsArray && field.FieldType.IsClass)
+ else if (!fieldType.IsArray && fieldType.IsClass)
FindParameters(field.GetValue(o), parameters, filter);
}
}
@@ -228,8 +213,10 @@ internal static void FindParameters(object o, List parameters,
protected virtual void OnEnable()
{
// Automatically grab all fields of type VolumeParameter for this instance
- parameterList.Clear();
- FindParameters(this, parameterList);
+ ListPool.Get(out var tempList);
+ FindParameters(this, tempList);
+ parameterList = tempList.ToArray();
+ ListPool.Release(tempList);
foreach (var parameter in parameterList)
{
@@ -290,7 +277,7 @@ protected virtual void OnDisable()
///
public virtual void Override(VolumeComponent state, float interpFactor)
{
- int count = parameterList.Count;
+ int count = parameterList.Length;
for (int i = 0; i < count; i++)
{
@@ -351,7 +338,7 @@ public override int GetHashCode()
int hash = 17;
- for (int i = 0; i < parameterList.Count; i++)
+ for (int i = 0; i < parameterList.Length; i++)
hash = hash * 23 + parameterList[i].GetHashCode();
return hash;
@@ -364,9 +351,10 @@ public override int GetHashCode()
/// True if any of the volume properites has been overridden.
public bool AnyPropertiesIsOverridden()
{
- for (int i = 0; i < parameterList.Count; ++i)
+ for (int i = 0; i < parameterList.Length; ++i)
{
- if (parameterList[i].overrideState) return true;
+ if (parameterList[i].overrideState)
+ return true;
}
return false;
}
@@ -384,7 +372,7 @@ public void Release()
if (parameterList == null)
return;
- for (int i = 0; i < parameterList.Count; i++)
+ for (int i = 0; i < parameterList.Length; i++)
{
if (parameterList[i] != null)
parameterList[i].Release();
diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Volume/VolumeDebugData.cs b/Packages/com.unity.render-pipelines.core/Runtime/Volume/VolumeDebugData.cs
new file mode 100644
index 00000000000..7dad87b04aa
--- /dev/null
+++ b/Packages/com.unity.render-pipelines.core/Runtime/Volume/VolumeDebugData.cs
@@ -0,0 +1,33 @@
+using System;
+using System.Collections.Generic;
+using System.Reflection;
+
+namespace UnityEngine.Rendering
+{
+#if UNITY_EDITOR || DEVELOPMENT_BUILD
+ internal static class VolumeDebugData
+ {
+ static Lazy> debugIds = new(() => new Dictionary());
+
+ internal static string GetVolumeParameterDebugId(VolumeParameter parameter)
+ {
+ return debugIds.Value.TryGetValue(parameter.fieldHash, out var debugId) ? debugId : string.Empty;
+ }
+
+ internal static void AddVolumeParameterDebugId(VolumeParameter parameter, FieldInfo field)
+ {
+ var fieldHash = field.GetHashCode();
+ parameter.fieldHash = fieldHash;
+ if (debugIds.Value.ContainsKey(fieldHash))
+ return;
+
+ var displayInfo = field.GetCustomAttribute(true);
+ var debugId = displayInfo != null ? displayInfo.name : field.Name;
+#if UNITY_EDITOR
+ debugId = UnityEditor.ObjectNames.NicifyVariableName(debugId); // In the editor, make the name more readable
+#endif
+ debugIds.Value.Add(fieldHash, debugId);
+ }
+ }
+#endif
+}
\ No newline at end of file
diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Volume/VolumeDebugData.cs.meta b/Packages/com.unity.render-pipelines.core/Runtime/Volume/VolumeDebugData.cs.meta
new file mode 100644
index 00000000000..f3d5f4cf0e3
--- /dev/null
+++ b/Packages/com.unity.render-pipelines.core/Runtime/Volume/VolumeDebugData.cs.meta
@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: a359de1dc98b4f1db3fffb9601eb785b
+timeCreated: 1743511791
\ No newline at end of file
diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Volume/VolumeManager.cs b/Packages/com.unity.render-pipelines.core/Runtime/Volume/VolumeManager.cs
index fddf07fdaa7..1ea51436126 100644
--- a/Packages/com.unity.render-pipelines.core/Runtime/Volume/VolumeManager.cs
+++ b/Packages/com.unity.render-pipelines.core/Runtime/Volume/VolumeManager.cs
@@ -204,9 +204,6 @@ public VolumeComponent GetVolumeComponentDefaultState(Type volumeComponentType)
return null;
}
- // Recycled list used for volume traversal
- readonly List m_TempColliders = new(8);
-
// The default stack the volume manager uses.
// We cache this as users able to change the stack through code and
// we want to be able to switch to the default one through the ResetMainStack() function.
@@ -744,7 +741,7 @@ public void Update(VolumeStack stack, Transform trigger, LayerMask layerMask)
// Global volumes always have influence
if (volume.isGlobal)
{
- OverrideData(stack, volume, Mathf.Clamp01(volume.weight));
+ OverrideData(stack, volume, volume.weight);
continue;
}
@@ -752,15 +749,13 @@ public void Update(VolumeStack stack, Transform trigger, LayerMask layerMask)
continue;
// If volume isn't global and has no collider, skip it as it's useless
- var colliders = m_TempColliders;
- volume.GetComponents(colliders);
- if (colliders.Count == 0)
+ var colliders = volume.colliders;
+ int numColliders = colliders.Count;
+ if (numColliders == 0)
continue;
// Find closest distance to volume, 0 means it's inside it
float closestDistanceSqr = float.PositiveInfinity;
-
- int numColliders = colliders.Count;
for (int c = 0; c < numColliders; c++)
{
var collider = colliders[c];
@@ -774,7 +769,6 @@ public void Update(VolumeStack stack, Transform trigger, LayerMask layerMask)
closestDistanceSqr = d;
}
- colliders.Clear();
float blendDistSqr = volume.blendDistance * volume.blendDistance;
// Volume has no influence, ignore it
@@ -790,8 +784,8 @@ public void Update(VolumeStack stack, Transform trigger, LayerMask layerMask)
if (blendDistSqr > 0f)
interpFactor = 1f - (closestDistanceSqr / blendDistSqr);
- // No need to clamp01 the interpolation factor as it'll always be in [0;1[ range
- OverrideData(stack, volume, interpFactor * Mathf.Clamp01(volume.weight));
+ // No need to clamp01 the interpolation factor or weight as both are always in [0;1[ range
+ OverrideData(stack, volume, interpFactor * volume.weight);
}
#if UNITY_EDITOR || DEVELOPMENT_BUILD
@@ -821,10 +815,10 @@ static bool IsVolumeRenderedByCamera(Volume volume, Camera camera)
{
#if UNITY_2018_3_OR_NEWER && UNITY_EDITOR
// GameObject for default global volume may not belong to any scene, following check prevents it from being culled
- if (!volume.gameObject.scene.IsValid())
+ if (!volume.cachedGameObject.scene.IsValid())
return true;
// IsGameObjectRenderedByCamera does not behave correctly when camera is null so we have to catch it here.
- return camera == null ? true : UnityEditor.SceneManagement.StageUtility.IsGameObjectRenderedByCamera(volume.gameObject, camera);
+ return camera == null || UnityEditor.SceneManagement.StageUtility.IsGameObjectRenderedByCamera(volume.cachedGameObject, camera);
#else
return true;
#endif
diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Volume/VolumeParameter.cs b/Packages/com.unity.render-pipelines.core/Runtime/Volume/VolumeParameter.cs
index 723f21e4bd1..51a2e0110ab 100644
--- a/Packages/com.unity.render-pipelines.core/Runtime/Volume/VolumeParameter.cs
+++ b/Packages/com.unity.render-pipelines.core/Runtime/Volume/VolumeParameter.cs
@@ -30,9 +30,8 @@ namespace UnityEngine.Rendering
public abstract class VolumeParameter : ICloneable
{
#if UNITY_EDITOR || DEVELOPMENT_BUILD
- internal string debugId { get; set; }
+ internal int fieldHash { get; set; }
#endif
-
///
/// A beautified string for debugger output. This is set on a DebuggerDisplay on every
/// parameter types.
@@ -278,7 +277,7 @@ public override int GetHashCode()
/// The first value in a .
/// The second value.
/// true if both values are equal, false otherwise.
- public static bool operator ==(VolumeParameter lhs, T rhs) => lhs != null && !ReferenceEquals(lhs.value, null) && lhs.value.Equals(rhs);
+ public static bool operator ==(VolumeParameter lhs, T rhs) => !ReferenceEquals(lhs, null) && !ReferenceEquals(lhs.value, null) && lhs.value.Equals(rhs);
///
/// Compares the value store in a parameter with another value of the same type.
@@ -311,16 +310,7 @@ public bool Equals(VolumeParameter other)
/// true if the specified object is equal to the current object, false otherwise.
public override bool Equals(object obj)
{
- if (ReferenceEquals(null, obj))
- return false;
-
- if (ReferenceEquals(this, obj))
- return true;
-
- if (obj.GetType() != GetType())
- return false;
-
- return Equals((VolumeParameter)obj);
+ return Equals(obj as VolumeParameter);
}
///
diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Vrs/.buginfo b/Packages/com.unity.render-pipelines.core/Runtime/Vrs/.buginfo
index fbd5f8466e1..72610365ad4 100644
--- a/Packages/com.unity.render-pipelines.core/Runtime/Vrs/.buginfo
+++ b/Packages/com.unity.render-pipelines.core/Runtime/Vrs/.buginfo
@@ -1 +1 @@
-area: Post-processing and UI Features
+area: Graphics Device Features
\ No newline at end of file
diff --git a/Packages/com.unity.render-pipelines.core/Samples~/Common/Scripts/Editor/SamplesShowcaseEditor.cs b/Packages/com.unity.render-pipelines.core/Samples~/Common/Scripts/Editor/SamplesShowcaseEditor.cs
index ffa6a21b6e4..2c7f9b06bbd 100644
--- a/Packages/com.unity.render-pipelines.core/Samples~/Common/Scripts/Editor/SamplesShowcaseEditor.cs
+++ b/Packages/com.unity.render-pipelines.core/Samples~/Common/Scripts/Editor/SamplesShowcaseEditor.cs
@@ -300,7 +300,7 @@ private string CreateMarkdown(VisualElement element, string text)
parsedText = parsedText.Replace("", "");
// Titles
- parsedText = parsedText.Replace("
", "");
+ parsedText = parsedText.Replace("
", "");
parsedText = parsedText.Replace("
", "");
// Code
diff --git a/Packages/com.unity.render-pipelines.core/ShaderLibrary/Packing.hlsl b/Packages/com.unity.render-pipelines.core/ShaderLibrary/Packing.hlsl
index 456d92b1523..1815093115a 100644
--- a/Packages/com.unity.render-pipelines.core/ShaderLibrary/Packing.hlsl
+++ b/Packages/com.unity.render-pipelines.core/ShaderLibrary/Packing.hlsl
@@ -196,7 +196,7 @@ real3 UnpackNormalAG(real4 packedNormal, real scale = 1.0)
}
// Unpack normal as DXT5nm (1, y, 0, x) or BC5 (x, y, 0, 1)
-real3 UnpackNormalmapRGorAG(real4 packedNormal, real scale = 1.0)
+real3 UnpackNormalMapRGorAG(real4 packedNormal, real scale = 1.0)
{
// Convert to (?, y, 0, x)
packedNormal.a *= packedNormal.r;
@@ -212,7 +212,7 @@ real3 UnpackNormal(real4 packedNormal)
return UnpackNormalRGBNoScale(packedNormal);
#else
// Compiler will optimize the scale away
- return UnpackNormalmapRGorAG(packedNormal, 1.0);
+ return UnpackNormalMapRGorAG(packedNormal, 1.0);
#endif
}
#endif
@@ -224,7 +224,7 @@ real3 UnpackNormalScale(real4 packedNormal, real bumpScale)
#elif defined(UNITY_NO_DXT5nm)
return UnpackNormalRGB(packedNormal, bumpScale);
#else
- return UnpackNormalmapRGorAG(packedNormal, bumpScale);
+ return UnpackNormalMapRGorAG(packedNormal, bumpScale);
#endif
}
diff --git a/Packages/com.unity.render-pipelines.core/ShaderLibrary/Sampling/SampleUVMappingInternal.hlsl b/Packages/com.unity.render-pipelines.core/ShaderLibrary/Sampling/SampleUVMappingInternal.hlsl
index a9954ca3792..b4009dff425 100644
--- a/Packages/com.unity.render-pipelines.core/ShaderLibrary/Sampling/SampleUVMappingInternal.hlsl
+++ b/Packages/com.unity.render-pipelines.core/ShaderLibrary/Sampling/SampleUVMappingInternal.hlsl
@@ -37,7 +37,7 @@ real4 ADD_FUNC_SUFFIX(SampleUVMapping)(TEXTURE2D_PARAM(textureName, samplerName)
#define UNPACK_NORMAL_FUNC UnpackNormalRGB
#define UNPACK_DERIVATIVE_FUNC UnpackDerivativeNormalRGB
#else
-#define UNPACK_NORMAL_FUNC UnpackNormalmapRGorAG
+#define UNPACK_NORMAL_FUNC UnpackNormalMapRGorAG
#define UNPACK_DERIVATIVE_FUNC UnpackDerivativeNormalRGorAG
#endif
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Sampling/SampleUVMappingNormalInternal.hlsl"
diff --git a/Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl b/Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl
index 5e3b93f94d9..3acb16aa771 100644
--- a/Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl
+++ b/Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl
@@ -451,7 +451,7 @@ float4 ApplyTextureType(float4 value, int textureType)
// NOTE: when textureType is a compile-time constant, the branches compile out
if (textureType == TEXTURETYPE_NORMALTANGENTSPACE)
{
- value.rgb = UnpackNormalmapRGorAG(value);
+ value.rgb = UnpackNormalMapRGorAG(value);
}
else if (textureType == TEXTURETYPE_NORMALOBJECTSPACE)
{
diff --git a/Packages/com.unity.render-pipelines.core/Tests/Runtime/RuntimeExampleTest.cs b/Packages/com.unity.render-pipelines.core/Tests/Runtime/RuntimeExampleTest.cs
index e08ffec278f..a697d48d3ce 100644
--- a/Packages/com.unity.render-pipelines.core/Tests/Runtime/RuntimeExampleTest.cs
+++ b/Packages/com.unity.render-pipelines.core/Tests/Runtime/RuntimeExampleTest.cs
@@ -14,6 +14,7 @@ public void PlayModeSampleTestSimplePasses()
// A UnityTest behaves like a coroutine in PlayMode
// and allows you to yield null to skip a frame in EditMode
[UnityTest]
+ [Ignore("Unstable: https://jira.unity3d.com/browse/UUM-102848")]
public IEnumerator PlayModeSampleTestWithEnumeratorPasses()
{
// Use the Assert class to test conditions.
diff --git a/Packages/com.unity.render-pipelines.high-definition/CHANGELOG.md b/Packages/com.unity.render-pipelines.high-definition/CHANGELOG.md
index 35ab06a52c6..b59273c6084 100644
--- a/Packages/com.unity.render-pipelines.high-definition/CHANGELOG.md
+++ b/Packages/com.unity.render-pipelines.high-definition/CHANGELOG.md
@@ -33,6 +33,7 @@ This version is compatible with Unity 6000.2.0a17.
- Improved water sample by adding a cave scene using caustics and deformation texture.
### Fixed
+- Fixed the macro redefinition warnings that occur in Lit.shader and HDShadowAlgorithms.hlsl, by implement a check to see if PUNCTUAL_SHADOW_LOW, USE_FPTL_LIGHTLIST and DIRECTIONAL_SHADOW_LOW have already been previously defined. (UUM-83878)
- Fixed High Definition Render Pipeline's Wizard to no longer assume a check fail while waiting a reply from the Package Manager and will display a specific pending icon.
- Fixed an issue where the padding in the Lighting window was different between tabs.
- Fixed artifacts when blending cascade shadows and distance shadowmask.
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/3ds-max-physical-material-inspector-reference.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/3ds-max-physical-material-inspector-reference.md
index 02566a51e75..0de5ad2e3b0 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/3ds-max-physical-material-inspector-reference.md
+++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/3ds-max-physical-material-inspector-reference.md
@@ -23,8 +23,8 @@ When Unity imports an FBX with a compatible 3DS Physical Material shader, it aut
Property
-
-
+
Option
+
Sub-option
Description
@@ -94,7 +94,7 @@ When Unity imports an FBX with a compatible 3DS Physical Material shader, it aut
Property
-
+
Option
Description
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/AxF-material-inspector-reference.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/AxF-material-inspector-reference.md
index 2c95d399062..e43a69edf2b 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/AxF-material-inspector-reference.md
+++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/AxF-material-inspector-reference.md
@@ -2,8 +2,6 @@
The AxF Shader allows you to render X-Rite AxF materials in the High Definition Render Pipeline (HDRP). AxF is a standardized format that allows for the exchange of material appearance data. The production of an AxF file typically involves an authoring suite that includes real-world material measurements from which it can produce various textures and model properties.
-
-
To translate AxF file data into Material properties and data that HDRP's AxF Shader can understand and render, you can use a custom AxF Importer. Unity's Industry Partner Advisors (available only for Unity Industry or ISS customers) can also deliver the unsupported **AxF Importer package** upon request. You are not required to use the importer and can instead use the Inspector to assign values yourself. However, the AxF Shader is specifically designed to work with data the AxF Importer translates from AxF files. Unity currently does not provide a method to author certain Assets that AxF Materials rely on to accurately portray the real-world material they represent. This means that, if you create the AxF Material manually, you may not be able to reproduce certain results available from an imported AxF file.
## Importing and Creating an AxF Material
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Dynamic-Resolution.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Dynamic-Resolution.md
index 0fcb062b722..4d4f9a99557 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Dynamic-Resolution.md
+++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Dynamic-Resolution.md
@@ -110,9 +110,11 @@ HDRP provides the following upscale filter methods:
| ------------------------------------ | ------------------------------------------------------------ |
| **Catmull-Rom** | Catmull-Rom uses four bilinear samples. This uses the least resources, but it can cause blurry images after HDRP performs the upscaling step.
Catmull-Rom has no dependencies and runs at the end of the post-processing pipeline. |
| **Contrast Adaptive Sharpen (CAS)** | Contrast Adaptive Sharpen (CAS) uses **FidelityFX (CAS) AMD™**. This method produces a sharp image with an aggressive sharpening step. Do not use this option when the dynamic resolution screen percentage is less than 50%. For information about FidelityFX and Contrast Adaptive Sharpening, refer to [AMD FidelityFX](https://www.amd.com/en/technologies/radeon-software-fidelityfx).
Contrast Adaptive Sharpen (CAS) has no dependencies and runs at the end of the post-processing pipeline. |
-| **FidelityFX Super Resolution 1.0** | FidelityFX Super Resolution 1.0 uses a spatial super-resolution method that balances quality and performance. For more information, see [AMD FidelityFX](https://www.amd.com/en/technologies/radeon-software-fidelityfx).
FidelityFX Super Resolution 1.0 has no dependencies and runs at the end of the post-processing pipeline.
FidelityFX Super Resolution 1.0 also runs when at 100% resolution as it can have beneficial sharpening effects.
For more information, see the section [Notes on FidelityFX Super Resolution 1.0](Dynamic-Resolution.md#notes-on-fidelityfx-super-resolution-10-fsr)|
+| **AMD FidelityFX Super Resolution 1.0 (FSR1)** | FidelityFX Super Resolution 1.0 uses a spatial super-resolution method that balances quality and performance. For more information, refer to [AMD FidelityFX](https://www.amd.com/en/technologies/radeon-software-fidelityfx).
FSR1 has no dependencies and runs at the end of the post-processing pipeline.
FSR1 also runs when at 100% resolution as it can have beneficial sharpening effects.
For more information, refer to the section [Notes on FidelityFX Super Resolution 1.0](Dynamic-Resolution.md#notes-on-fidelityfx-super-resolution-10-fsr)|
+| **AMD FidelityFX Super Resolution 2 (FSR2)** | For more information, refer to [AMD FidelityFX Super Resolution 2](https://gpuopen.com/fidelityfx-superresolution-2/). |
| **Temporal Anti-Aliasing (TAA) Upscale** | Temporal Anti-Aliasing (TAA) Upscale uses temporal integration to produce a sharp image. Unity performs this method alongside the normal anti-aliasing.
HDRP executes this upscale filter before post processing and at the same time as the TAA step. This means you can only use the TAA anti-aliasing method. This filter is not compatible with other anti-aliasing methods.
Temporal Anti-Aliasing (TAA) Upscale performs antialiasing on each frame. This means that it also runs when you enable Dynamic Resolution, even when the screen percentage is at 100% resolution.
For more information, see the section [Notes on TAA Upscale](Dynamic-Resolution.md#notes-on-temporal-anti-aliasing-taa-upscale). |
| **Spatial-Temporal Post-Processing (STP)** | Spatial-Temporal Post-Processing (STP) uses spatial and temporal upsampling techniques to produce a high quality, anti-aliased image.
Similar to the TAA Upscale filter, you can only use STP with the TAA anti-aliasing method. It is not compatible with other anti-aliasing methods. STP remains active when **Render Scale** is set to **1.0** as it applies temporal anti-aliasing (TAA) affects to the final rendered output.
A limitation of using STP is that it does not support dynamic resolution without hardware support. You can still use STP for fixed resolution scaling in cases where hardware dynamic resolution support is unavailable. However, **Render Scale** must be set to a fixed value.
For more information on STP, refer to [Spatial-Temporal Post-processing](stp/stp-upscaler.md) |
+| **NVIDIA Deep Learning Super Sampling (DLSS)** | HDRP supports DLSS only on the following platforms:
DirectX 11 on Windows 64-bit
DirectX 12 on Windows 64-bit
Vulkan on Windows 64-bit
Refer to [DLSS in HDRP](deep-learning-super-sampling-in-hdrp.md). |
## Override upscale options in a script
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/HDRP-Asset.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/HDRP-Asset.md
index 16497385890..0b99edacdd1 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/HDRP-Asset.md
+++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/HDRP-Asset.md
@@ -50,34 +50,68 @@ These settings control the draw distance and resolution of the decals atlas that
| **- Layers** | Enable the checkbox to allow decals to only affect specific layers.|
-
### Dynamic Resolution
+For more information about dynamic resolution and upscale filters, refer to [Dynamic Resolution](Dynamic-Resolution.md).
+
| **Property** | **Description** |
|---------------------------------------------|--------------------------------------------------------------|
| **Enable** | Enable the checkbox to make HDRP support dynamic resolution in your Unity Project. |
-| **Dynamic Resolution** | |
-| - **Enable DLSS** | Enable the checkbox to make HDRP support NVIDIA Deep Learning Super Sampling (DLSS). This property only appears if you enable the NVIDIA package (`com.unity.modules.nvidia`) in your Unity project. |
-| - **Mode** | Use the drop-down to select which performance mode DLSS operates on. The options are: • **Balanced**: Balances performance with quality. • **MaxPerf**: Fast performance, lower quality. • **MaxQuality**: High quality, lower performance. • **UltraPerformance**: Fastest performance, lowest quality. |
-| - **Injection Point** | Use the drop-down to select at which point DLSS runs in the rendering pipeline: • **Before Post**: DLSS runs when all post-processing effects are at full resolution. • **After Depth Of Field**: Depth of field runs at a low resolution, and DLSS upscales everything in the next rendering step. All other post-processing effects run at full resolution. • **After Post Process**: DLSS runs at the end of the pipeline when all post-processes are at low resolution. |
-| - **Use Optimal Settings** | Enable the checkbox to make DLSS control the Sharpness and Screen Percentage automatically. |
-| - **Sharpness** | Controls how the DLSS upsampler renders edges on the image. More sharpness usually means more contrast and a clearer image but can increase flickering and fireflies. Unity ignores this property if you enable **Use Optimal Settings**. |
-| **Dynamic Resolution Type** | |
-| - **Software** | Allocates render targets to accommodate the maximum resolution possible, then rescales the viewport accordingly. This allows the viewport to render at varying resolutions. |
-| - **Hardware** | Treats the render targets, up until the back buffer, as if they are all the scaled size. This means HDRP clears the render targets faster. |
-| **Upscale Filter** | |
-| - **Catmull-Rom** | A bicubic upsample with 4 taps. |
-| - **Contrast Adaptive Sharpen** | An ultra-sharp upsample. This option is not meant for screen percentages less than 50% and still sharpens when you set the screen percentage to 100%. It uses **FidelityFX (CAS) AMD™**. |
-| - **FidelityFX Super Resolution 1.0 AMD™** | A spatial super-resolution technology that leverages cutting-edge algorithms to produce impressive upscaling quality at very fast performance. |
-| - **TAA Upscale** | A temporal anti-aliasing upscaler that uses information from previous frames to produce high-quality visuals. |
-| - **Spatial-Temporal Post-processing (STP)**| A low-overhead spatio-temporal anti-aliasing upscaler that attempts to produce sharp visuals at scaling factors as low as 50%. |
+| **Advanced Upscalers By Priority** | Displays the list of advanced upscale filters that HDRP can use to increase the resolution after rendering at a lower resolution. To add an upscale filter, select the **Add** (**+**) button. To remove a filter, select it then select the **Remove** (**-**) button.
The options are:
**DLSS**: NVIDIA Deep Learning Super Sampling. This option is available only if you enable the NVIDIA built-in package in the [Package Manager window](https://docs.unity3d.com/Manual/upm-ui.html). For more information, refer to [DLSS settings](#dlss-settings).
**FSR2**: AMD FidelityFX Super Resolution 2.0. This option is available only if you enable the AMD built-in package in the [Package Manager window](https://docs.unity3d.com/Manual/upm-ui.html). For more information, refer to [FSR2 settings](#fsr2-settings).
**STP**: Spatial-Temporal Post-processing. For more information, refer to [STP settings](#stp-settings).
|
+| **Dynamic Resolution Type** | Sets how HDRP renders at a lower resolution. The options are:
**Software**: Allocates render targets to accommodate the maximum resolution possible, then rescales the viewport accordingly. This allows the viewport to render at varying resolutions.
**Hardware**: Treats the render targets up to the back buffer as if they're all the scaled size. This means HDRP clears the render targets faster.
|
+| **Default Upscale Filter** | Sets the upscale filter HDRP uses to increase the resolution after rendering at a lower resolution.
The options are:
**Catmull-Rom**: A bicubic upsample with 4 taps.
**Contrast Adaptive Sharpen**: An ultra-sharp upsample. This option is not meant for screen percentages less than 50% and still sharpens when you set the screen percentage to 100%. This filter uses FidelityFX (CAS) AMD™.
**FidelityFX Super Resolution 1.0 AMD™ (FSR1)**: A spatial super-resolution technology that leverages cutting-edge algorithms to produce high upscaling quality at very fast performance.
**TAA Upscale**: A temporal anti-aliasing upscaler that uses information from previous frames to produce high-quality visuals.
If you add one or more upscale filters to **Advanced Upscalers By Priority**, this property becomes **Default Fallback Upscale Filter**. HDRP uses this filter if your build platform doesn't support the advanced upscale filters you add.|
+| **Injection Point** | Sets when HDRP applies the Catmull-Rom upscale filter. This property is available here only if you set **Default Upscale Filter** to **Catmull-Rom**. For more information, refer to [Injection points dropdown](#injection-points). |
+| **Override FSR Sharpness** | Enables an **FSR Sharpness** slider that lets you set the sharpness of the FSR1 upscale filter. A value of 1.0 means maximum sharpness. A value of 0 means no sharpening. You can also set the sharpness per camera in the [Camera Inspector window](hdrp-camera-component-reference.md). This property is available only if you set **Default Upscale Filter** to **FidelityFX Super Resolution 1.0**. |
+| **TAA Upscale Injection Point** | Sets when HDRP applies the TAA Upscaling filter. This property is available here only if you set **Default Upscale Filter** to **TAA Upscaling**. For more information, refer to [Injection points dropdown](#injection-points). |
| **Use Mip Bias** | Apply a negative bias on the texture samplers of deferred, opaque, and transparent passes. This improves detail on textures but increases the texture fetching cost. Cost varies per platform. |
+| **Force Screen Percentage** | The specific screen percentage that HDRP uses for dynamic resolution. This property is only visible when you enable the **Force Screen Percentage**. |
| **Minimum Screen Percentage** | The minimum screen percentage that dynamic resolution can reach. |
| **Maximum Screen Percentage** | The maximum screen percentage that dynamic resolution can reach. This value must be higher than the **Min Screen Percentage**. |
-| **Force Screen Percentage** | |
-| - **Forced Screen Percentage** | The specific screen percentage that HDRP uses for dynamic resolution. This property is only visible when you enable the **Force Screen Percentage**. |
-| **Low Res Transparency Min Threshold** | The minimum percentage threshold allowed to clamp low-resolution transparency. When the resolution percentage falls below this threshold, HDRP will clamp the low resolution to this percentage. |
-| **Ray Tracing Half Resolution Threshold** | The minimum percentage threshold allowed to render ray tracing effects at half resolution. When the resolution percentage falls below this threshold, HDRP will render ray tracing effects at full resolution. |
+| **Low Res Transparency Min Threshold** | Sets the minimum resolution that HDRP can render transparency, as a percentage of full screen resolution. |
+| **Low Res Screen Space GI Min Threshold** | Sets the minimum resolution that HDRP can render screen-space global illumination, as a percentage of full screen resolution. |
+| **Low Res Volumetric Clouds Min Threshold** | Sets the minimum resolution that HDRP can render volumetric clouds, as a percentage of full screen resolution. |
+| **Ray Tracing Half Resolution Threshold** | Sets the minimum resolution that HDRP can render ray tracing at half resolution. If the resolution falls below this threshold, HDRP renders ray tracing at full resolution. |
+
+
+#### DLSS settings
+
+The following properties are available only if you add **DLSS** to **Advanced Upscalers By Priority**.
+
+| **Property** | **Description** |
+|-|-|
+| **DLSS Mode** | Sets whether DLSS prioritizes quality or performance. The options are:
**Maximum Quality**
**Balanced**
**Maximum Performance**
**Ultra Performance**
|
+| **DLSS Injection Point** | Sets when DLSS runs in the rendering pipeline. For more information, refer to [Injection points dropdown](#injection-points). |
+| **DLSS Use Optimal Settings** | Enables DLSS controlling screen percentage automatically. |
+
+
+#### FSR2 settings
+
+The following properties are available only if you add **FSR2** to **Advanced Upscalers By Priority**.
+
+| **Property** | **Description** |
+|-|-|
+| **FSR2 Injection Point** | Sets when HDRP applies the FSR2 upscale filter. For more information, refer to [Injection points dropdown](#injection-points). |
+| **FSR2 Enable Sharpness** | Enables an **FSR2 Sharpness** slider that lets you set the sharpness of the FSR2 upscale filter. A value of 1.0 means maximum sharpness. A value of 0 means no sharpening. You can also set the sharpness per camera in the [Camera Inspector window](hdrp-camera-component-reference.md). |
+| **FSR2 Use Optimal Settings** | Enables the **FSR2 Mode** property. |
+| **FSR2 Mode** | Sets whether FSR2 prioritizes quality or performance. This parameter is available only if you enable **FSR2 Use Optimal Settings**. The options are:
**Quality**
**Balanced**
**Performance**
**Ultra Performance**
|
+
+
+#### STP settings
+
+The following property is available only if you add **STP** to **Advanced Upscalers By Priority**.
+
+| **Property** | **Description** |
+|-|-|
+| **STP Injection Point** | Sets when HDRP applies the STP upscale filter. For more information, refer to [Injection points dropdown](#injection-points). |
+
+
+#### Injection points dropdown
+
+| **Option** | **Description** |
+|-|-|
+|**Before Post Process**|HDRP upscales when post-processing effects are at full resolution.|
+|**After Depth Of Field**|HDRP upscales when depth of field is at low resolution, but post-processing effects are at full resolution.|
+|**After Post Process**|HDRP upscales at the end of the pipeline, when post-processing effects are at low resolution.|
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/AxFShader1.png b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/AxFShader1.png
deleted file mode 100644
index ffc41715d31..00000000000
Binary files a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/AxFShader1.png and /dev/null differ
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/LayeredLit1.png b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/LayeredLit1.png
deleted file mode 100644
index 76396517a83..00000000000
Binary files a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/LayeredLit1.png and /dev/null differ
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/MatCap_Settings.png b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/MatCap_Settings.png
deleted file mode 100644
index 39ccecec279..00000000000
Binary files a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/MatCap_Settings.png and /dev/null differ
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/Matcap1.png b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/Matcap1.png
deleted file mode 100644
index db6da5856e8..00000000000
Binary files a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/Matcap1.png and /dev/null differ
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/Override-HDRISky1.png b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/Override-HDRISky1.png
deleted file mode 100644
index fc1ef93bf2b..00000000000
Binary files a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/Override-HDRISky1.png and /dev/null differ
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/Override-HDRISky2.png b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/Override-HDRISky2.png
deleted file mode 100644
index 1da782046c1..00000000000
Binary files a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/Override-HDRISky2.png and /dev/null differ
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/Override-IndirectLightingController1.png b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/Override-IndirectLightingController1.png
deleted file mode 100644
index 52d8c0aa4e2..00000000000
Binary files a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/Override-IndirectLightingController1.png and /dev/null differ
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/Override-VolumetricFog1.png b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/Override-VolumetricFog1.png
deleted file mode 100644
index c9a31c94fad..00000000000
Binary files a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/Override-VolumetricFog1.png and /dev/null differ
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/ShaderGraphCanvasSettings.png b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/ShaderGraphCanvasSettings.png
deleted file mode 100644
index b17d51ab09b..00000000000
Binary files a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/ShaderGraphCanvasSettings.png and /dev/null differ
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/material-variants.png b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/material-variants.png
deleted file mode 100644
index d8fa989700b..00000000000
Binary files a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/material-variants.png and /dev/null differ
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/profile_diffuse_power-2.jpg b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/profile_diffuse_power-2.jpg
new file mode 100644
index 00000000000..4c822c17376
Binary files /dev/null and b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/profile_diffuse_power-2.jpg differ
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/profile_diffuse_power.gif b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/profile_diffuse_power.gif
deleted file mode 100644
index c0d2cd6ae73..00000000000
Binary files a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/profile_diffuse_power.gif and /dev/null differ
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/profile_diffuse_power.jpg b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/profile_diffuse_power.jpg
new file mode 100644
index 00000000000..cce0e7a0f47
Binary files /dev/null and b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/profile_diffuse_power.jpg differ
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/profile_dual_lobe_labelled.png b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/profile_dual_lobe_labelled.png
deleted file mode 100644
index 7c76b79a6eb..00000000000
Binary files a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/profile_dual_lobe_labelled.png and /dev/null differ
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/shared/lens-flare/screenspacelensflares-threshold.gif b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/shared/lens-flare/screenspacelensflares-threshold.gif
deleted file mode 100644
index da90ad78530..00000000000
Binary files a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/shared/lens-flare/screenspacelensflares-threshold.gif and /dev/null differ
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/shared/lens-flare/screenspacelensflares-threshold.mp4 b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/shared/lens-flare/screenspacelensflares-threshold.mp4
new file mode 100644
index 00000000000..c7fc8aa8af4
Binary files /dev/null and b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/shared/lens-flare/screenspacelensflares-threshold.mp4 differ
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/water-sample-buffer-underwater.png b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/water-sample-buffer-underwater.png
deleted file mode 100644
index dda08ff01b5..00000000000
Binary files a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/water-sample-buffer-underwater.png and /dev/null differ
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/watersystem-wireframe-swellandripples.png b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/watersystem-wireframe-swellandripples.png
deleted file mode 100644
index 3299c9738ba..00000000000
Binary files a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/watersystem-wireframe-swellandripples.png and /dev/null differ
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/watersystem-wireframe-swellonly.png b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/watersystem-wireframe-swellonly.png
deleted file mode 100644
index 0bcbe921771..00000000000
Binary files a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/watersystem-wireframe-swellonly.png and /dev/null differ
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/watersystem-wireframeripplesonly.png b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/watersystem-wireframeripplesonly.png
deleted file mode 100644
index fd2c79ab831..00000000000
Binary files a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/watersystem-wireframeripplesonly.png and /dev/null differ
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Physical-Light-Units.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Physical-Light-Units.md
index 4bfc60aabac..da0841a351d 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Physical-Light-Units.md
+++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Physical-Light-Units.md
@@ -88,4 +88,4 @@ For more examples of indoor light levels see Archtoolbox’s web page on [Recomm
The following cheat sheet contains the color temperature values and light intensities of common real-world [Light](Light-Component.md) sources. It also contains [Exposure](Override-Exposure.md) values for different illumination scenarios.
-
+
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Planar-Reflection-Probe.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Planar-Reflection-Probe.md
index d5b8fef13c8..f53a0367676 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Planar-Reflection-Probe.md
+++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Planar-Reflection-Probe.md
@@ -80,12 +80,12 @@ You can use Scene view gizmos to visually customize specific properties.
| **Gizmo** | **Property** | **Description** |
| ------------------------------------- | ------------------------------------- | ------------------------------------------------------------ |
-|  | **Influence Volume boundary** | Provides Scene view handles that allow you to move the boundaries of the [Influence Volume](#InfluenceVolume), which defines the area this Reflection Probe affects reflective Materials. Edits the **Box Size** or **Radius** value, depending on the **Shape** you select. |
-|  | **Blend Distance boundary** | Provides Scene view handles that allows you to alter the inward distance from the **Box Size** or **Radius** at which this Planar Reflection Probe blends with other Reflection Probes. For the **Box** shape, when **Per Axis Control** is enabled, there is a separate handle for each size of the box. |
-|  | **Blend Normal Distance boundary** | Provides Scene view handles that allow you to resize the boundary where pixels with a normal pointing away from the **Capture Position** don’t receive any influence from this Probe. |
-|  | **Mirror Position** | Changes the behavior of the Move Tool so that it alters the **Mirror** **Position** property, rather than the **Position** of the **Transform**. |
-|  | **Mirror Rotation** | Changes the behavior of the Rotate Tool so that it alters the **Mirror Rotation** property, rather than the **Rotation** of the **Transform**. |
-|  | **Chrome Gizmo**. | Displays a chrome quad to preview the probe's texture in the scene. |
+|  | **Influence Volume boundary** | Provides Scene view handles that allow you to move the boundaries of the [Influence Volume](#InfluenceVolume), which defines the area this Reflection Probe affects reflective Materials. Edits the **Box Size** or **Radius** value, depending on the **Shape** you select. |
+|  | **Blend Distance boundary** | Provides Scene view handles that allows you to alter the inward distance from the **Box Size** or **Radius** at which this Planar Reflection Probe blends with other Reflection Probes. For the **Box** shape, when **Per Axis Control** is enabled, there is a separate handle for each size of the box. |
+|  | **Blend Normal Distance boundary** | Provides Scene view handles that allow you to resize the boundary where pixels with a normal pointing away from the **Capture Position** don’t receive any influence from this Probe. |
+|  | **Mirror Position** | Changes the behavior of the Move Tool so that it alters the **Mirror** **Position** property, rather than the **Position** of the **Transform**. |
+|  | **Mirror Rotation** | Changes the behavior of the Rotate Tool so that it alters the **Mirror Rotation** property, rather than the **Rotation** of the **Transform**. |
+|  | **Chrome Gizmo**. | Displays a chrome quad to preview the probe's texture in the scene. |
## Best practices
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Post-Processing-Motion-Blur.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Post-Processing-Motion-Blur.md
index 104e421c2ed..c26f1e37976 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Post-Processing-Motion-Blur.md
+++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Post-Processing-Motion-Blur.md
@@ -21,58 +21,58 @@ Motion Blur includes [advanced properties](https://docs.unity3d.com/Packages/com
Property
-
+
Sub-property
Description
Intensity
-
+
N/A
Set the strength of the Motion Blur effect. This scales the magnitude of the velocities present in the velocity buffer. Set this value to 0 to disable Motion Blur.
Quality
-
+
N/A
Specifies the quality level to use for this effect. Each quality level applies different preset values. Unity also stops you from editing the properties that the preset overrides. If you want to set your own values for every property, select Custom.
Sample Count
-
+
N/A
Set the maximum number of sample points HDRP uses to compute the Motion Blur effect. Higher values increase the quality and produce a smoother blur. Higher values also increase the resource intensity of the effect.
Maximum Velocity
-
+
N/A
Use the slider to set the maximum velocity, in pixels, that HDRP allows for all sources of motion blur except Camera rotation. This clamps any value above this threshold to the threshold value. Higher values result in a more intense blur, and an increase in resource intensity.
Minimum Velocity
-
+
N/A
Use the slider to set the minimum velocity, in pixels, that triggers motion blur. Higher values mean that HDRP doesn't calculate Motion Blur for slow-moving GameObjects. This decreases the resource intensity.
Camera Motion Blur
-
+
N/A
Indicates whether camera movement contributes to motion blur. Disable this property to stop camera movement from contributing to motion blur.
Camera Clamp Mode
-
+
N/A
Specifies the method HDRP uses to clamp the motion vectors that derive from camera movement/rotation. Note that although this specifically clamps the motion vectors that come from the camera, this may change motion vector velocities relative to the camera too. For example, a GameObject that has the camera as a parent (and so moves and rotates with the camera) might not have a zero motion vector when the camera moves. The options are:
• None: The motion vector component derived from the Camera isn't treated differently. •Rotation: The motion vector component derived from the Camera rotation is clamped separately. •Translation: The motion vector component derived from the Camera translation is clamped separately. •Separate Translation And Rotation: The motion vector components derived from the Camera rotation and translation are clamped separately with separate clamp options. •Full Camera Motion Vector: The full motion vector component derived from the Camera full movement (rotation and translation) is clamped separate from the Object motion, but with a single threshold.
-
+
N/A
Rotation Clamp
Use the slider to set the maximum velocity that HDRP allows Camera rotation to contribute to the velocities of GameObjects. This value is expressed in terms of screen fraction. Higher values result in Camera rotation giving wider blurs. This property is only relevant if you set Camera Clamp Mode to Rotation or Separate Translation And Rotation.
-
+
N/A
Translation Clamp
Use the slider to set the maximum velocity that HDRP allows Camera translation to contribute to the velocities of GameObjects. This value is expressed in terms of screen fraction. Higher values result in Camera rotation giving wider blurs. This property is only relevant if you set Camera Clamp Mode to Translation or Separate Translation And Rotation.
-
+
N/A
Motion Vector Clamp
Use the slider to set the maximum velocity that HDRP allows Camera transform changes to contribute to the velocities of GameObjects. This value is expressed in terms of screen fraction. Higher values result in Camera rotation giving wider blurs. This property is only relevant if you set Camera Clamp Mode to Full Camera Motion Vector.
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Ray-Tracing-Getting-Started.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Ray-Tracing-Getting-Started.md
index dafd7e9b49b..40c5572d8b2 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Ray-Tracing-Getting-Started.md
+++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Ray-Tracing-Getting-Started.md
@@ -48,15 +48,19 @@ To set up ray tracing manually, you need to:
#### Upgrade to DirectX 12
-HDRP enables DirextX12 by default. To enable DirectX 12 manually:
+In Unity 6, DirectX 12 is enabled by default.
-1. Open the Project Settings window (menu: **Edit** > **Project Settings**), then select the **Player** tab.
-2. Select the **Other Settings** drop-down, and in the **Rendering** section, disable Auto Graphics API for Windows. This exposes the Graphics APIs for Windows section.
-3. In the **Graphics APIs for Windows** section, click the plus (**+**) button and select **Direct3d12**.
-4. Unity uses Direct3d11 by default. To make Unity use Direct3d12, move **Direct3d12 (Experimental)** to the top of the list.
-5. To apply the changes, you may need to restart the Unity Editor. If a window prompt appears telling you to restart the Editor, click **Restart Editor** in the window.
+To enable DirectX 12 manually:
-The Unity Editor window should now include the <DX12> tag in the title bar.
+1. Go to **Edit** > **Project Settings** > **Player** > **Other Settings**.
+
+1. In the **Rendering** section, disable **Auto Graphics API for Windows**.
+
+ This exposes the Graphics APIs for Windows section.
+
+1. Make sure **Direct3D12** is at the top of the list.
+
+ If you made any changes to the rendering settings, you might be prompted to restart the Unity Editor.
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/canvas-material.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/canvas-material.md
index a8f424dfa3f..b6cbd974d45 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/canvas-material.md
+++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/canvas-material.md
@@ -2,8 +2,6 @@
The Canvas Master Stack material type enables you to author Shader Graph shaders that can be applied to [UGUI user interface elements](https://docs.unity3d.com/Packages/com.unity.ugui@1.0/manual/UICanvas.html).
-
-
## Create a Canvas Shader Graph
To create a Canvas material in Shader Graph, use one of the following methods:
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/create-a-fog-volume-shader.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/create-a-fog-volume-shader.md
index b94bbcbcfc8..42a867d4ffc 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/create-a-fog-volume-shader.md
+++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/create-a-fog-volume-shader.md
@@ -4,7 +4,7 @@ Use the Fog Volume [shader graph](https://docs.unity3d.com/Packages/com.unity.sh
For details on the settings in the Fog Volume shader graph, refer to [Fog Volume Master Stack](fog-volume-master-stack-reference.md)
-
+
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/create-a-physically-based-sky.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/create-a-physically-based-sky.md
index c2eb3e00f4c..7bdb67ab59a 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/create-a-physically-based-sky.md
+++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/create-a-physically-based-sky.md
@@ -2,9 +2,9 @@
The Physically Based Sky Volume Override lets you configure how the High Definition Render Pipeline (HDRP) renders physically based sky.
-
+
-
+
## Using Physically Based Sky
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/create-an-eye-material.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/create-an-eye-material.md
index 680556d19ea..84de5470101 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/create-an-eye-material.md
+++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/create-an-eye-material.md
@@ -84,5 +84,5 @@ Inspector window with the **Sclera Diffusion Profile** fix option highlighted.
You must provide seperate Texture maps for the Iris and Sclera. This is because of the way that properties for subsurface scattering, limbal ring, smoothness, and other surface information blends between the Iris and Sclera. This means you need to create a Sclera map with no Iris information, and an Iris map with no Sclera information:
-
+
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/create-an-hdri-sky.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/create-an-hdri-sky.md
index 3626d7c5f40..f996d9b7a21 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/create-an-hdri-sky.md
+++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/create-an-hdri-sky.md
@@ -4,7 +4,7 @@ A High-dynamic-range imaging (HDRI) Sky is a simple sky representation that uses
Tip: [Unity HDRI Pack](https://assetstore.unity.com/packages/essentials/beta-projects/unity-hdri-pack-72511) is available on the Unity Asset Store and provides 7 pre-converted HDR Cubemaps ready for use within your Project.
-
+
## Using HDRI Sky
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/debug-materials-and-shaders-matcap.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/debug-materials-and-shaders-matcap.md
index aa3f60b3968..ed46639e403 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/debug-materials-and-shaders-matcap.md
+++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/debug-materials-and-shaders-matcap.md
@@ -6,9 +6,7 @@ MatCap mode is useful to navigate and get a sense of the Scene without setting u
## Using MatCap
-To activate MatCap mode, disable the Lighting toggle in the Scene view.
-
-
+To activate MatCap mode, disable the Lighting toggle in the [Scene view Debug Mode overlay](https://docs.unity3d.com/Manual/ViewModes.html).
MatCap mode preserves the normal maps and you can use the original Material albedo. To configure MatCap mode, go to **Edit** > **Preferences** > **HD Render Pipeline** and use the following properties.
@@ -17,8 +15,6 @@ MatCap mode preserves the normal maps and you can use the original Material albe
1. Open the **Graphics** tab in the **Preferences** window (menu: **Edit > Preferences > Graphics**).
2. Under **High Definition Render Pipeline** and **MatCap Mode**:
-
-
| **Property** | **Description** |
| ------------------------- | ------------------------------------------------------------ |
| **Mix Albedo** | Enable to make HDRP mix the albedo of the Material with its material capture. |
@@ -37,11 +33,11 @@ You can also activate MatCap view as a **Lighting Debug Mode** in the [Rendering
## MatCap examples
-
+
MatCap off
-
+
MatCap on
-
+
MatCap on with albedo
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/diffusion-profile-reference.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/diffusion-profile-reference.md
index 6df8269c623..035615c337e 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/diffusion-profile-reference.md
+++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/diffusion-profile-reference.md
@@ -28,7 +28,7 @@ To create a Diffusion Profile, navigate to **Assets > Create > Rendering > HDRP
The following image displays the effect of each Texturing Mode option on a human face model:
-
+
To simulate the thin oily layer on the skin of lips, HDRP uses two specular lobes (dual lobes). A specular lobe is the shape of light reflecting off the surface, based on the smoothness of the surface.
@@ -38,12 +38,15 @@ If you use the StackLit shader, set the __Dual Specular Lobe Parametrization__ t
The following image shows the effect of dual lobes on a human face model, with **Lobe Mix** set to 0.5.
-
+
The following image shows the effect of increasing **Diffuse Shading Power** on a human face model.
-
-
+
+ Drag the slider to compare the images.
### Transmission only
@@ -57,7 +60,7 @@ The following image shows the effect of increasing **Diffuse Shading Power** on
The image below displays a human ear model without transmission (left) and with a configured **Thickness Remap** value (right):
-
+
### Profile Previews
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/eye-master-stack-reference.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/eye-master-stack-reference.md
index 1868f78232e..33c3bf76ef8 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/eye-master-stack-reference.md
+++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/eye-master-stack-reference.md
@@ -115,8 +115,8 @@ Depending on the [Graph Settings](#graph-settings) you use, Shader Graph can add
Property
-
-
+
Option
+
Sub-option
Description
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/eye-material-inspector-reference.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/eye-material-inspector-reference.md
index 77a2286c6fe..60f335a4fd0 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/eye-material-inspector-reference.md
+++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/eye-material-inspector-reference.md
@@ -36,7 +36,7 @@ Refer to [Eyes](eyes.md) for more information.
| **Property** | **Description** |
| ---------------------------- | ------------------------------------------------------------ |
| **Pupil Radius** | Sets the radius of the Pupil in the Iris Map as a percentage. |
-| **Pupil Debug Mode** | When enabled, displays a debug mode that allows you to calibrate the desired **Pupil Radius** for your Iris Map. For proper calibration, ensure that the **Iris Offset** is **0**, the **Pupil Aperture** is **0.5** (the neutral position) and then the white circle must be inside the iris pattern. See the following screenshot for an example:  |
+| **Pupil Debug Mode** | When enabled, displays a debug mode that allows you to calibrate the desired **Pupil Radius** for your Iris Map. For proper calibration, ensure that the **Iris Offset** is **0**, the **Pupil Aperture** is **0.5** (the neutral position) and then the white circle must be inside the iris pattern. See the following screenshot for an example:  |
| **Pupil Aperture** | Sets the state of the pupil’s aperture, 0 being the smallest aperture (**Min Pupil Aperture**) and 1 the widest aperture (**Max Pupil Aperture**). |
| **Minimal Pupil Aperture** | Sets the minimum pupil aperture value. |
| **Maximal Pupil Aperture** | Sets the maximum pupil aperture value. |
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/fabric-master-stack-reference.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/fabric-master-stack-reference.md
index 7ab55869560..ef3e4b62a7d 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/fabric-master-stack-reference.md
+++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/fabric-master-stack-reference.md
@@ -113,8 +113,8 @@ Depending on the [Graph Settings](#graph-settings) you use, Shader Graph can add
Property
-
-
+
Option
+
Sub-option
Description
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/fog-volume-master-stack-reference.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/fog-volume-master-stack-reference.md
index 7a4a10d1758..b2b0243f3f8 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/fog-volume-master-stack-reference.md
+++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/fog-volume-master-stack-reference.md
@@ -4,7 +4,7 @@ The Fog Volume master stack refers to the settings and contexts that the Fog Vol
To use this master stack, [set up a Fog Volume in your scene](fog.md).
-
+
An example of a Fog Volume shader graph used to create smoke at ground level.
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/fog-volume-override-reference.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/fog-volume-override-reference.md
index 23348890102..fb2b8324fab 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/fog-volume-override-reference.md
+++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/fog-volume-override-reference.md
@@ -6,8 +6,6 @@ Refer to [Create a global fog effect](create-a-global-fog-effect.md) for more in
## Properties
-
-
[!include[](snippets/volume-override-api.md)]
[!include[](snippets/Volume-Override-Enable-Properties.md)]
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/frame-settings-reference.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/frame-settings-reference.md
index a5c4e867357..aeee6128167 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/frame-settings-reference.md
+++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/frame-settings-reference.md
@@ -10,239 +10,239 @@ These settings determine the method that the Cameras and Reflection Probes using
Property
-
+
Sub-property
Description
Lit Shader Mode
-
+
N/A
Select the Shader Mode HDRP uses for the Lit Shader when the rendering component using these Frame Settings renders the Scene.
-
+
N/A
Depth Prepass within Deferred
If you enable Decals then HDRP forces a depth prepass and you can not disable this feature. This feature fills the depth buffer with all Meshes, without rendering any color. It's an optimization option that depends on the Unity Project you are creating, meaning that you should measure the performance before and after you enable this feature to make sure it benefits your Project. This is only available if you set Lit Shader Mode to Deferred.
-
+
N/A
Clear GBuffers
Enable the checkbox to make HDRP clear GBuffers for Cameras using these Frame Settings. This is only available if you set Lit Shader Mode to Deferred.
-
+
N/A
MSAA
Select the MSAA quality for the rendering components using these Frame Settings. This is only available if you set Lit Shader Mode to Forward. Note: Using a different value for multiple different cameras has an impact on memory consumption.
-
+
N/A
Alpha To Mask
Enable the checkbox to make HDRP render with Alpha to Mask Materials that have enabled it. This is only available if you enable MSAA within Forward.
Opaque Objects
-
+
N/A
Enable the checkbox to make HDRP render Materials that have their Surface Type set to Opaque. If you disable this settings, Cameras/Reflection Probes using these Frame Settings don't render any opaque GameObjects.
Transparent Objects
-
+
N/A
Enable the checkbox to make HDRP render Materials that have their Surface Type set to Transparent. If you disable this setting, Cameras/Reflection Probes using these Frame Settings don't render any transparent GameObjects.
Decals
-
+
N/A
Enable the checkbox to make HDRP process decals. Enable this on cameras that you want to render decals.
Decal Layers
-
+
N/A
Enable the checkbox to make HDRP process Decal Layers.
Transparent Prepass
-
+
N/A
Enable the checkbox to make HDRP perform a Transparent Prepass. Enabling this feature causes HDRP to add polygons from transparent Materials to the depth buffer to improve sorting.
Transparent Postpass
-
+
N/A
Enable the checkbox to make HDRP perform a Transparent Postpass. Enabling this feature causes HDRP to add polygons to the depth buffer that post-processing uses.
Low Resolution Transparent
-
+
N/A
Enable the checkbox to allow HDRP to perform a low resolution render pass. If you disable this checkbox, HDRP renders transparent Materials using the Low Resolution render pass in full resolution.
Ray Tracing
-
+
N/A
Enable the checkbox to allow this Camera to use ray tracing features. This is only available if you enable Ray Tracing in your HDRP Asset.
Custom Pass
-
+
N/A
Enable the checkbox to allow this Camera to use custom passes. This is only enabled if you enable Custom Passes in your HDRP asset.
Motion Vectors
-
+
N/A
Enable the checkbox to make HDRP perform a Motion Vectors pass, allowing Cameras using these Frame Settings to use Motion Vectors. Disabling this feature means the Cameras using these Frame Settings don't calculate object motion vectors or camera motion vectors.
-
+
N/A
Opaque Object Motion
Enable the checkbox to make HDRP support object motion vectors. Enabling this feature causes HDRP to calculate motion vectors for moving objects and objects with vertex animations. HDRP Cameras using these Frame Settings still calculate camera motion vectors if you disable this feature.
-
+
N/A
Transparent Object Motion
Enable the checkbox to allow HDRP to write the velocity of transparent GameObjects to the velocity buffer. To make HDRP write transparent GameObjects to the velocity buffer, you must also enable the Transparent Writes Velocity checkbox on each transparent Material. Enabling this feature means that effects, such as motion blur, affect transparent GameObjects. This is useful for alpha blended objects like hair.
Refraction
-
+
N/A
Enable the checkbox to make HDRP process Refraction for Cameras/Reflection Probes using these Frame Settings. Refraction is when a transparent surface scatters light that passes through it. This add a resolve of ColorBuffer after the drawing of opaque materials to be use for Refraction effect during transparent pass.
Distortion
-
+
N/A
Enable the checkbox to make HDRP process Distortion. Enabling this feature causes HDRP to calculate a distortion pass. This allows Meshes with transparent Materials to distort the light that enters them.
-
+
N/A
Rough Distortion
Enable the checkbox to allow HDRP to modulate distortion based on the roughness of the material. If you enable this option, HDRP generates a color pyramid with mipmaps to process distortion. This increases the resource intensity of the distortion effect.
Post-process
-
+
N/A
Enable the checkbox to make HDRP perform a Post-processing pass. Disable this feature to remove all post-processing effects from this Camera/Reflection Probe.
-
+
N/A
Custom Post-process
Enable the checkbox to allow HDRP to execute custom post processes. Disable this feature to remove all custom post-processing effects from this Camera/Reflection Probe.
-
+
N/A
Stop NaN
Enable the checkbox to allow HDRP to replace pixel values that aren't a number (NaN) with black pixels for Cameras that have Stop NaNs enabled.
-
+
N/A
Depth Of Field
Enable the checkbox to allow HDRP to add depth of field to Cameras affected by a Volume containing the Depth Of Field override.
-
+
N/A
Motion Blur
Enable the checkbox to allow HDRP to add motion blur to Cameras affected by a Volume containing the Motion Blur override.
-
+
N/A
Panini Projection
Enable the checkbox to allow HDRP to add panini projection to Cameras affected by a Volume containing the Panini Projection override.
-
+
N/A
Bloom
Enable the checkbox to allow HDRP to add bloom to Cameras affected by a Volume containing the Bloom override.
-
+
N/A
Lens Distortion
Enable the checkbox to allow HDRP to add lens distortion to Cameras affected by a Volume containing the Lens Distortion override.
-
+
N/A
Chromatic Aberration
Enable the checkbox to allow HDRP to add chromatic aberration to Cameras affected by a Volume containing the Chromatic Aberration override.
-
+
N/A
Vignette
Enable the checkbox to allow HDRP add a vignette to Cameras affected by a Volume containing the Vignette override.
-
+
N/A
Color Grading
Enable the checkbox to allow HDRP to process color grading for Cameras.
-
+
N/A
Tonemapping
Enable the checkbox to allow HDRP to process tonemapping for Cameras.
Enable the checkbox to allow HDRP to add film grain to Cameras affected by a Volume containing the Film Grain override.
-
+
N/A
Dithering
Enable the checkbox to allow HDRP to add dithering to Cameras that have Dithering enabled.
-
+
N/A
Anti-aliasing
Enable the checkbox to allow HDRP to do a post-process antialiasing pass for Cameras. This method that HDRP uses is the method specified in the Camera's Anti-aliasing drop-down.
After Post-process
-
+
N/A
Enable the checkbox to make HDRP render GameObjects that use an Unlit Material and have their Render Pass set to After Post-process. This is useful to render GameObjects that aren't affected by Post-processing effects. Disable this checkbox to make HDRP not render these GameObjects at all.
-
+
N/A
Depth Test
Enable the checkbox to allow HDRP to perform a depth test for Shaders rendered in the After Post-process rendering pass. HDRP disables the depth test when you enable dynamic resolution scaling or any effect that uses jittered depth (DLSS, TAA) to prevent artefacts.
LOD Bias Mode
-
+
N/A
Use the drop-down to select the method that Cameras use to calculate their level of detail (LOD) bias. An LOD bias is a multiplier for a Camera’s LOD switching distance. A larger value increases the view distance at which a Camera switches the LOD to a lower resolution. •From Quality Settings: The Camera uses the LOD Bias property from your Unity Project's Quality Settings. To change this value, open the Project Settings window (menu: Edit > Project Settings), go to Quality > HDRP > Rendering and set the LOD Bias to the value you want. •Scale Quality Settings: The Camera multiplies the LOD Bias property below by the LOD Bias property in your Unity Project's Quality Settings. •Fixed: The Camera uses the LOD Bias property below.
-
+
N/A
LOD Bias
Set the value that Cameras use to calculate their LOD bias. The Camera uses this value differently depending on the LOD Bias Mode you select.
Maximum LOD Level Mode
-
+
N/A
Use the drop-down to select the mode that Cameras use to set their maximum level of detail. LODs begin at 0 (the most detailed) and increasingly get less detailed. The maximum level of detail is the least detailed LOD that this Camera renders. This is useful when you use realtime Reflection Probes because they often don't need to use the highest LOD to capture their view of the Scene. •From Quality Settings: The Camera uses the Maximum LOD Level property from your Unity Project's Quality Settings. To change this value, open the Project Settings window (menu: Edit > Project Settings…), go to Quality > HDRP > Rendering and set the Maximum LOD Level to the value you want. •Offset Quality Settings: The Camera adds the Maximum LOD Level property below to the Maximum LOD Level property in your Unity Project's Quality Settings. •Fixed: The Camera uses the Maximum LOD Level property below.
-
+
N/A
Maximum LOD Level
Set the value that Cameras use to calculate their maximum level of detail. The Camera uses this value differently depending on the Maximum LOD Level Mode you select.
Material Quality Level
-
+
N/A
Select which material quality level to use when rendering from this Camera. •From Quality Settings: The Camera uses the Material Quality Level property from your Unity Project's Quality Settings. To change this value, open the Project Settings window (menu: Edit > Project Settings…), go to Quality > HDRP > Rendering and set the Material Quality Level to the value you want.
Asymmetric Projection
-
+
N/A
Enable the checkbox to allow HDRP to account for asymmetric projection when evaluating the view direction based on pixel coordinates.
Screen Coordinates Override
-
+
N/A
Enable the checkbox to allow HDRP to use Screen Coordinates Override for post processing and custom passes. This allows post effects to be compatible with Cluster Display for example.
@@ -257,160 +257,160 @@ These settings control lighting features for your rendering components. Here you
Property
-
-
+
Option
+
Sub-option
Description
Shadow Maps
-
-
+
N/A
+
N/A
Enable the checkbox to make HDRP process Shadows. This makes this Camera/Reflection Probe capture shadows.
Contact Shadows
-
-
+
N/A
+
N/A
Enable the checkbox to make HDRP process Contact Shadows. Enabling this feature causes HDRP to calculate Contact Shadows for this Camera/Reflection Probe.
Use the data in Adaptive Probe Volumes to adjust lighting from Reflection Probes to match the local environment, which reduces the number of Reflection Probes you need.
Screen Space Shadows
-
-
+
N/A
+
N/A
[DXR only] Enable the checkbox to allow Lights to render shadow maps into screen space buffers to reduce lighting Shader complexity. This technique increases processing speed but also increases the memory footprint.
Enable the checkbox to make HDRP process Screen Space Reflections (SSR). This allows HDRP to calculate SSR for this Camera/Reflection Probe.
-
+
N/A
Transparent
-
+
N/A
Enable the checkbox to make HDRP process Screen Space Reflections (SSR) on transparent materials.
Screen Space Global Illumination
-
-
+
N/A
+
N/A
Enable the checkbox to make HDRP process Screen Space Global Illumination (SSGI).
Screen Space Ambient Occlusion
-
-
+
N/A
+
N/A
Enable the checkbox to make HDRP process Screen Space Ambient Occlusion (SSAO). This allows HDRP to calculate SSAO for this Camera/Reflection Probe.
Transmission
-
-
+
N/A
+
N/A
Enable the checkbox to make HDRP process the transmission effect. This allows subsurface scattering Materials to use transmission, for example, light transmits through a leaf with a subsurface scattering Material.
Fog
-
-
+
N/A
+
N/A
Enable the checkbox to make HDRP process atmospheric scattering. This allows your Camera/Reflection Probe to process atmospheric scattering effects such as the fog from your Scene’s Volumes.
-
+
N/A
Volumetrics
-
+
N/A
Enable the checkbox to make HDRP process Volumetrics. Enabling this setting allows your rendering component to render volumetric fog and lighting.
-
-
+
N/A
+
N/A
Reprojection
Enable the checkbox to improve the quality of volumetrics at runtime. Enabling this feature causes HDRP to use several previous frames to calculate the volumetric effects. Using these previous frames helps to reduce noise and smooth out the effects.
Light Layers
-
-
+
N/A
+
N/A
Enable the checkbox to make HDRP process Light Layers.
Exposure Control
-
-
+
N/A
+
N/A
Enable the checkbox to use the exposure values you can set on relevant components in HDRP. Disable this checkbox to use a neutral value (0 Ev100) instead.
Enable the checkbox to render Materials with base color as diffuse for this Camera. This renders metals as diffuse Materials. This is a useful Frame Setting to use for real-time Reflection Probes because it renders metals as diffuse Materials to stop them appearing black when Unity can't calculate several bounces of specular lighting.
Sky Reflection
-
-
+
N/A
+
N/A
Enable the checkbox to allow this Camera to use the Sky Reflection. The Sky Reflection affects specular lighting.
Direct Specular Lighting
-
-
+
N/A
+
N/A
Enable the checkbox to allow this Camera to render direct specular lighting. This allows HDRP to disable direct view dependent lighting. It doesn't save any performance.
Subsurface Scattering
-
-
+
N/A
+
N/A
Enable the checkbox to make HDRP process subsurface scattering. Enabling this feature causes HDRP to simulate how light penetrates surfaces of translucent GameObjects, scatters inside them, and exits from different locations.
-
+
N/A
Quality Mode
-
+
N/A
Use the drop-down to select how to set the quality level for Subsurface Scattering. • From Quality Settings: The Camera uses the Subsurface Scattering Sample Budget property that's set in the Material Section of your Unity Project's Quality Settings. • Override Quality Settings: Allows you to set a custom sample budget for sample surface scattering for this Camera in the field below.
-
+
N/A
Quality Level
-
+
N/A
Use the drop-down to select the quality level when to set the Quality Mode to From Quality Settings.
-
+
N/A
Custom Sample Budget
-
+
N/A
The custom number of samples to use for Subsurface Scattering calculations when to set the Quality Mode to Override Quality Settings.
@@ -425,33 +425,33 @@ This is only supported on DX12 and Vulkan. If Asynchronous execution is disabled
Property
-
+
Sub-property
Description
Asynchronous Execution
-
+
N/A
Enable the checkbox to allow HDRP to execute certain compute Shader commands in parallel.
-
+
N/A
Light List
Enable the checkbox to allow HDRP to build the Light List asynchronously.
-
+
N/A
Screen Space Reflection
Enable the checkbox to allow HDRP to calculate screen space reflection asynchronously.
-
+
N/A
Screen Space Ambient Occlusion
Enable the checkbox to allow HDRP to calculate screen space ambient occlusion asynchronously.
-
+
N/A
Volume Voxelization
Enable the checkbox to allow HDRP to calculate volumetric voxelization asynchronously.
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/hair-master-stack-reference.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/hair-master-stack-reference.md
index 41aab9c46fc..e52b79bb39a 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/hair-master-stack-reference.md
+++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/hair-master-stack-reference.md
@@ -218,6 +218,8 @@ Depending on the [Graph Settings](#graph-settings) you use, Shader Graph can add
Property
+
Option
+
Sub-option
Description
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/hdri-sky-volume-override-reference.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/hdri-sky-volume-override-reference.md
index d96406ed937..2e058ec1fa2 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/hdri-sky-volume-override-reference.md
+++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/hdri-sky-volume-override-reference.md
@@ -6,91 +6,89 @@ Refer to [Create an HDRI sky](create-an-HDRI-sky.md) for more information.
## Properties
-
-
[!include[](snippets/Volume-Override-Enable-Properties.md)]
Property
-
+
Sub-property
Description
HDRI Sky
-
+
N/A
Assign an HDRI texture to render the sky in HDRP.
Distortion Mode
-
+
N/A
Select how HDRP calculates sky distortion: • None: No distortion. • Procedural: Distorts the sky using uniform wind direction. • Flowmap: Uses a user-provided flowmap for distortion.
-
+
N/A
Orientation
Set the distortion orientation relative to the X-world vector (degrees). This can be relative to the Global Wind Orientation in the Visual Environment.
-
+
N/A
Speed
Define how fast HDRP scrolls the distortion texture. This value can be relative to the Global Wind Speed defined in the Visual Environment.
-
+
N/A
Flowmap
Assign a LatLong flowmap for sky UV distortion. Visible only when you select Flowmap from the Distortion Mode drop-down.
-
+
N/A
Upper Hemisphere Only
Enable if the flowmap distorts only the sky above the horizon. Visible only when you select Flowmap from the Distortion Mode drop-down.
Intensity Mode
-
+
N/A
Choose how HDRP calculates sky intensity: • Exposure: Based on EV100 exposure. • Multiplier: Applies a flat multiplier. • Lux: Targets a specific Lux value.
-
+
N/A
Exposure
Set the light per unit area applied to the HDRI Sky cubemap. Visible only when you set Exposure in Intensity Mode from the Intensity Mode drop-down.
-
+
N/A
Multiplier
Set a multiplier for environment light in the scene. Visible only when you select Multiplier from the Intensity Mode drop-down.
-
+
N/A
Desired Lux Value
Set an absolute intensity for the HDR Texture you set in HDRI Sky, in Lux. This value represents the light received in a direction perpendicular to the ground. This is similar to the Lux unit you use to represent the Sun, so it's complimentary. Visible only when you select Lux from the Intensity Mode drop-down.
-
+
N/A
Upper Hemisphere Lux Value
Displays the relative intensity, in Lux, for the current HDR texture set in HDRI Sky. The final multiplier HDRP applies for intensity is Desired Lux Value / Upper Hemisphere Lux Value. This field is an informative helper. This property only appears when you select Lux from the Intensity Mode drop-down.
Rotation
-
+
N/A
Use the slider to set the angle to rotate the cubemap, in degrees.
-
+
N/A
Lock Sun
Make the Sun rotate automatically when you move the HDRI Sky, and the HDRI Sky rotate automatically when you rotate the sun.
Update Mode
-
+
N/A
Use the drop-down to set the rate at which HDRP updates the sky environment (using Ambient and Reflection Probes). • On Changed: HDRP updates the sky environment when one of the sky properties changes. • On Demand: HDRP waits until you manually call for a sky environment update from a script. • Realtime: HDRP updates the sky environment at regular intervals defined by the Update Period.
-
+
N/A
Update Period
Set the update interval in seconds. Use 0 for per-frame updates. Visible only when you set the Update Mode to Realtime.
@@ -99,102 +97,100 @@ Refer to [Create an HDRI sky](create-an-HDRI-sky.md) for more information.
## Advanced Properties
-
-
These properties only appear if you enable [advanced properties](https://docs.unity3d.com/Packages/com.unity.render-pipelines.core@latest?subfolder=/manual/advanced-properties.html) and then enable **Backplate**.
Property
-
-
+
Option
+
Sub-option
Description
Backplate
-
-
+
N/A
+
N/A
Projects the lower hemisphere of the HDRI onto a selected shape (Rectangle, Circle, Ellipse, or Infinite plane).
-
+
N/A
Type
-
+
N/A
Specifies the shape of the backplate.
• Disc: Projects the bottom of the HDRI texture onto a disc.
• Rectangle: Projects the bottom of the HDRI texture onto a rectangle.
• Ellipse: Projects the bottom of the HDRI texture onto an ellipse.
• Infinite: Projects the bottom of the HDRI texture onto an infinite plane.
-
+
N/A
Ground Level
-
+
N/A
Specifies the height of the ground in the scene.
-
+
N/A
Scale
-
+
N/A
The scale of the backplate. HDRP uses the X and Y values of this property to scale the backplate (for Ellipse X and Y must be different).
-
+
N/A
Projection
-
+
N/A
HDRP uses this number to control the projection of the bottom hemisphere of the HDRI on the backplate. Small projection distance implies higher pixel density with more distortion, large projection distance implies less pixel density with less distortion.
-
+
N/A
Rotation
-
+
N/A
Rotates the physical backplate.
-
+
N/A
Texture Rotation
-
+
N/A
Rotates the HDRI texture projected onto the backplate.
-
+
N/A
Texture Offset
-
+
N/A
Offsets the texture projected onto the backplate.
-
+
N/A
Blend Amount
-
+
N/A
The percentage of the transition between the backplate and the background HDRI. 0 means no blending, 25 means the blending starts at the end of the boundary of the backplate, 50 means the blending starts from the middle of the backplate and 100 means the transition starts from the center of the backplate with a smoothstep.
-
+
N/A
Point/Spot Shadow
-
+
N/A
Indicates whether the backplate receives shadows from point/spot Lights.
-
+
N/A
Directional Shadow
-
+
N/A
Enables shadows from the main directional light on the backplate.
-
+
N/A
Area Shadow
-
+
N/A
Indicates whether the backplate receives shadows from area Lights.
-
+
N/A
Shadow Tint
-
+
N/A
Specifies the color to tint shadows cast onto the backplate.
-
+
N/A
Reset Color
-
+
N/A
Resets the saved Shadow Tint for the shadow. HDRP calculates a new default shadow tint when the HDRI changes.
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/hdrp-camera-component-reference.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/hdrp-camera-component-reference.md
index da80419f2b5..2c8e8b1bdf0 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/hdrp-camera-component-reference.md
+++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/hdrp-camera-component-reference.md
@@ -47,35 +47,74 @@ The Camera Inspector includes the following groups of properties:
| |**Barrel Clipping** | Use the slider to set the strength of the “cat eye” effect. You can see this effect on bokeh as a result of lens shadowing (distortion along the edges of the frame). This property affects the look of the [Depth of Field](Post-Processing-Depth-of-Field.md) bokeh. |
| |**Anamorphism** | Use the slider to stretch the sensor to simulate an anamorphic look. Positive values distort the Camera vertically, negative values distort the Camera horizontally. This property affects the look of the [Depth of Field](Post-Processing-Depth-of-Field.md) bokeh and the [Bloom](Post-Processing-Bloom.md) effect if you enable its *Anamorphic* property. |
+
## Rendering
-| **Property** ||**Description**|
-| --------- | - | :-------------------------------------------------------------------- |
-| **Allow Dynamic Resolution** || Enable the checkbox to make this Camera support dynamic resolution for buffers linked to it. |
-| **Allow DLSS** || Enable this property to allow this Camera to use NVIDIA Deep Learning Super Sampling (DLSS). To use NVIDIA DLSS, enable the NVIDIA package (com.unity.modules.nvidia) in your Unity project and enable DLSS in your [HDRP Asset](HDRP-Asset.md). |
-| |**Use Custom Quality** | Indicates whether this Camera overrides the DLSS quality mode specified in the [HDRP Asset](HDRP-Asset.md). When you enable this property, HDRP uses the **Mode** property. |
-| |**Mode** | Specifies the performance quality mode override for performance quality mode for DLSS.The options are: • **Balanced**: - Balances performance with quality. • **MaxPerf**: Fast performance, lower quality. • **MaxQuality**: High quality, lower performance. • **UltraPerformance**: Fastest performance, lowest quality. This property only appears if you enable **Use Custom Quality**. |
-| |**Use Custom Attributes** | Enable this property to make this Camera override the DLSS attributes specified in the [HDRP Asset](HDRP-Asset.md). |
-| |**Use Optimal Settings** | Enable this property to allow DLSS to automatically control the sharpness and screen percentage for this Camera. This property only appears if you enable **Use Custom Attributes**. |
-| |**Sharpness** | The pixel sharpness that the DLSS upscaler uses for this Camera. This property only appears if you enable **Use Custom Attributes**. |
-| **Post Anti-aliasing** || This Camera can use [multisample anti-aliasing (MSAA)](Anti-Aliasing.md#MSAA), at the same time as post-process anti-aliasing. This is because MSAA is a hardware feature. To control post-process anti-aliasing, use the [Frame Settings](Frame-Settings.md). • **No Anti-aliasing**: This Camera processes MSAA but doesn't process any post-process anti-aliasing. • **Fast Approximate Anti-aliasing (FXAA)**: Smooths edges on a per-pixel level. This is the most efficient anti-aliasing technique in HDRP. • **Temporal Anti-aliasing (TAA)**: Uses frames from a history buffer to smooth edges more effectively than fast approximate anti-aliasing. • **Subpixel Morphological Anti-aliasing (SMAA)**: Finds patterns in borders of the image and blends the pixels on these borders according to the pattern. |
-|| **SMAA Quality Preset** | Use the drop-down to select the quality of SMAA. The difference in resource intensity is small between **Low** and **High**. • **Low**: The lowest SMAA quality. This is the least resource-intensive option. • **Medium**: A good balance between SMAA quality and resource intensity. • **High**: The highest SMAA quality. This is the most resource-intensive option. This property only appears when you select **Subpixel Morphological Anti-aliasing (SMAA)** from the **Anti-aliasing** drop-down. |
-| |**TAA Quality Preset** | The quality level of TAA. The default settings for higher presets aren't guaranteed to produce better results than lower presets. The result depends on the content in your scene. However, the high quality presets give you more options that you can use to adapt the anti-aliasing to your content. |
-| |**TAA Sharpening Mode** | Specifies the sharpening method to use. • **Low quality**: Provides fast sharpening, but might produce lower quality results or artifacts compared to the other sharpening methods. • **Post Sharpen**: Provides higher-quality sharpening than **Low Quality**, but is more resource-intensive. • **Contrast Adaptive Sharpening**: AMD's FidelityFX Contrast Adaptive Sharpening. Provides higher-quality sharpening than **Low Quality**, but gives you less control. |
-| |**TAA Sharpen Strength** | The intensity of the sharpening filter that Unity applies to the result of TAA. This reduces the soft look that TAA can produce. High values can cause ringing issues (dark lines along the edges of geometry) |
-| |**TAA Ringing Reduction** | Controls how much of the sharpening result HDRP takes from the result without ringing. Reduces unnatural dark outlines, but might also decrease sharpening. Values above 0.0 lead to a small extra cost. This property appears only when you set **TAA Sharpening Mode** to **Post Sharpen** |
-| |**TAA History Sharpening** | This strength of the history sharpening effect. When this value is above 0, Unity samples the history buffer with a bicubic filter that sharpens the result of TAA. You can use this to produce a sharper image during motion. A high value can cause ringing issues (dark lines along the edges of geometry).If you set this value to 0, it increases the performance of TAA because Unity simplifies the history buffer sampling|
-| |**TAA Anti-flickering** | The strength of TAA's anti-flickering effect. Use this to reduce some cases of flickering. When you increase this value, the risk o [ghosting](Glossary.md#Ghosting) or [disocclusion](Glossary.md#Disocclusion) artifacts. This property is only visible when **TAA Quality Preset** is set to a value above **Low**. |
-| |**TAA Speed rejection** | Controls the threshold at which Unity rejects history buffer contribution for TAA. You can increase this value to remove ghosting artifacts. This works because Unity rejects history buffer contribution when a GameObject's current speed and reprojected speed history are very different. When you increase this value, it might also reintroduce some aliasing for fast-moving GameObjects. Controls the threshold at which Unity rejects history buffer contribution for TAA. When you set this value to 0, it increases the performance of TAA because Unity doesn't process speed rejection. |
-| |**TAA Anti-ringing** | Enable this property to reduce the ringing artifacts caused by high history sharpening values. When you enable this property, it reduces the effect of the history sharpening. This property is only visible when TAA Quality Preset is set to High. |
-| |**TAA Base blend factor** | Determines how much the history buffer is blended together with current frame result. Higher values means more history contribution, which leads to better anti aliasing, but also more prone to ghosting. This property is only visible when Advanced properties are displayed for the camera. |
-| |**TAA Jitter Scale** | Controls the scale of jitter, which is the random offset HDRP applies to the camera position each frame. Use a low value to reduce flickering and jittering at the cost of more aliasing. |
-| **Dithering** | |Enable the checkbox to apply 8-bit dithering to the final render. This can help reduce banding on wide gradients and low light areas. |
-| **Stop NaNs** | |Enable the checkbox to make this Camera replace values that aren't a number (NaN) with a black pixel. This stops certain effects from breaking, but is a resource-intensive process. Only enable this feature if you experience NaN issues that you can not fix. |
-| **Culling Mask** | |Use the drop-down to set the Layer Mask that the Camera uses to exclude GameObjects from the rendering process. The Camera only renders Layers that you include in the Layer Mask. |
-| **Occlusion Culling** | |Enable the checkbox to make this Camera not render GameObjects that aren't currently visible. For more information, see the [Occlusion Culling documentation](). |
-| **Exposure Target** | |The GameObject to center the [Auto Exposure](Override-Exposure.md) procedural mask around. |
+| **Property** | **Description** |
+|-|-|
+| **HDRP Dynamic Resolution** | Enable the checkbox to make this Camera support dynamic resolution for buffers linked to it. |
+| **Allow DLSS** | Enables NVIDIA Deep Learning Super Sampling (DLSS). This property has an effect only if you add DLSS to your [HDRP Asset](HDRP-Asset.md). For more information, refer to [DLSS settings](#dlss-settings). |
+| **Allow FSR2** | Enables AMD FidelityFX Super Resolution 2.0 (FSR2). This property has an effect only if you add FSR2 to your [HDRP Asset](HDRP-Asset.md). For more information, refer to [FSR2 settings](#fsr2-settings). |
+| **Override FSR Sharpness** | Enables an **FSR Sharpness** slider that lets you set the sharpness of the FidelityFX Super Resolution 1.0 (FSR1) upscale filter. A value of 1.0 means maximum sharpness. A value of 0 means no sharpening. This property has an effect only if you set **Default Upscale Filter** to **FSR1** in your [HDRP Asset](HDRP-Asset.md). |
+| **Post Anti-aliasing** | This Camera can use [multisample anti-aliasing (MSAA)](Anti-Aliasing.md#MSAA), at the same time as post-process anti-aliasing. This is because MSAA is a hardware feature. To control post-process anti-aliasing, use the [Frame Settings](Frame-Settings.md). • **No Anti-aliasing**: This Camera processes MSAA but doesn't perform any post-process anti-aliasing. • **Fast Approximate Anti-aliasing (FXAA)**: Smooths edges on a per-pixel level. This is the most efficient anti-aliasing technique in HDRP. • **Temporal Anti-aliasing (TAA)**: Uses frames from a history buffer to smooth edges more effectively than fast approximate anti-aliasing. • **Subpixel Morphological Anti-aliasing (SMAA)**: Finds patterns in borders of the image and blends the pixels on these borders according to the pattern. |
+| **Dithering** | Enable the checkbox to apply 8-bit dithering to the final render. This can help reduce banding on wide gradients and low light areas. |
+| **Stop NaNs** | Enable the checkbox to make this Camera replace values that aren't a number (NaN) with a black pixel. This stops certain effects from breaking, but is a resource-intensive process. Only enable this feature if you experience NaN issues that you can't fix. |
+| **Culling Mask** | Use the drop-down to set the Layer Mask that the Camera uses to exclude GameObjects from the rendering process. The Camera only renders Layers that you include in the Layer Mask. |
+| **Occlusion Culling** | Enable the checkbox to make this Camera not render GameObjects that aren't currently visible. For more information, refer to the [Occlusion Culling documentation](). |
+| **Exposure Target** | The GameObject to center the [Auto Exposure](Override-Exposure.md) procedural mask around. |
+
+
+### DLSS settings
+
+The following properties are available only if you enable **Allow DLSS**.
+
+| **Property** | **Description** |
+|-|-|
+| **Use DLSS Custom Quality** | Indicates whether this Camera overrides the DLSS quality mode specified in the [HDRP Asset](HDRP-Asset.md). |
+| **DLSS Mode** | Sets whether DLSS prioritizes quality or performance. The options are:
**Maximum Quality**
**Balanced**
**Maximum Performance**
**Ultra Performance**
This property is available only if you enable **Use DLSS Custom Quality**. |
+| **Use DLSS Custom Attributes** | Overrides the DLSS properties specified in the [HDRP Asset](HDRP-Asset.md), on this camera. |
+| **DLSS Use Optimal Settings** | Enables DLSS controlling sharpness and screen percentage automatically. This property is available only if you enable **Use DLSS Custom Attributes**. |
+
+
+### FSR2 settings
+
+The following properties are available only if you enable **Allow FSR2**.
+
+| **Property** | **Description** |
+|-|-|
+| **Use FSR2 Custom Quality** | Indicates whether this camera overrides the FSR2 quality mode specified in the [HDRP Asset](HDRP-Asset.md). |
+| **FSR2 Use Optimal Settings** | Enables the **FSR2 Mode** property. This property is available only if you enable **Use FSR2 Custom Quality**. |
+| **FSR2 Mode** | Sets whether FSR2 prioritizes quality or performance. The options are:
**Quality**
**Balanced**
**Performance**
**Ultra Performance**
This property is available only if you enable **FSR2 Use Optimal Settings**. |
+| **Use FSR2 Custom Attributes** | Overrides the FSR2 properties specified in the [HDRP Asset](HDRP-Asset.md), on this camera. |
+| **FSR2 Enable Sharpness** | Enables an **FSR2 Sharpness** slider that lets you set the sharpness of the FSR2 upscale filter. A value of 1.0 means maximum sharpness. A value of 0 means no sharpening. You can also set the sharpness in your [HDRP Asset](hdrp-asset.md). This property is available only if you enable **Use FSR2 Custom Attributes**. |
+
+
+### TAA settings
+
+The following properties are available only if you set **Post Anti-aliasing** to **Temporal Anti-aliasing (TAA)**.
+
+| **Property** | **Description** |
+|-|-|
+| **Quality Preset** | The quality level of TAA. The default settings for higher presets aren't guaranteed to produce better results than lower presets. The result depends on the content in your scene. However, the high quality presets give you more options that you can use to adapt the anti-aliasing to your content. |
+| **Sharpening Mode** | Specifies the sharpening method to use. • **Low quality**: Provides fast sharpening, but might produce lower quality results or artifacts compared to the other sharpening methods. • **Post Sharpen**: Provides higher-quality sharpening than **Low Quality**, but is more resource-intensive. • **Contrast Adaptive Sharpening**: AMD's FidelityFX Contrast Adaptive Sharpening. Provides higher-quality sharpening than **Low Quality**, but gives you less control. |
+| **Sharpen Strength** | The intensity of the sharpening filter that Unity applies to the result of TAA. This reduces the soft look that TAA can produce. High values can cause ringing issues (dark lines along the edges of geometry) |
+| **Ringing Reduction** | Controls how much of the sharpening result HDRP takes from the result without ringing. Reduces unnatural dark outlines, but might also decrease sharpening. Values above 0.0 lead to a small extra cost. This property appears only when you set **TAA Sharpening Mode** to **Post Sharpen** |
+| **History Sharpening** | Sets the strength of the history sharpening effect. When this value is above 0, Unity samples the history buffer with a bicubic filter that sharpens the result of TAA. You can use this to produce a sharper image during motion. A high value can cause ringing issues (dark lines along the edges of geometry). If you set this value to 0, it increases the performance of TAA because Unity simplifies the history buffer sampling|
+| **Anti-flickering** | Sets the strength of TAA's anti-flickering effect. Use this to reduce some cases of flickering. Increasing this value might lead to more [ghosting](Glossary.md#Ghosting) or [disocclusion](Glossary.md#Disocclusion) artifacts. This property is only visible when **TAA Quality Preset** is set to a value above **Low**. |
+| **Speed rejection** | Controls the threshold at which Unity rejects history buffer contribution for TAA. You can increase this value to remove ghosting artifacts. This works because Unity rejects history buffer contribution when a GameObject's current speed and reprojected speed history are very different. When you increase this value, it might also reintroduce some aliasing for fast-moving GameObjects. Setting this value to 0 increases the performance of TAA because Unity doesn't process speed rejection. |
+| **Anti-ringing** | Enable this property to reduce the ringing artifacts caused by high history sharpening values. When you enable this property, it reduces the effect of the history sharpening. This property is only visible when TAA Quality Preset is set to **High**. |
+| **Base blend factor** | Determines how much the history buffer is blended together with the current frame result. Higher values mean more history contribution, which leads to better anti-aliasing, but is also more prone to ghosting. This property is only visible when Advanced properties are displayed for the camera. |
+| **Jitter Scale** | Controls the scale of jitter, which is the random offset HDRP applies to the camera position at each frame. Use a low value to reduce flickering and jittering at the cost of more aliasing. |
+
+
+### SMAA settings
+
+The following properties are available only if you set **Post Anti-aliasing** to **Subpixel Morphological Anti-aliasing (SMAA)**.
+
+| **Property** | **Description** |
+|-|-|
+| **SMAA Quality Preset** | Use the drop-down to select the quality of SMAA. The difference in resource intensity is small between **Low** and **High**. • **Low**: The lowest SMAA quality. This is the least resource-intensive option. • **Medium**: A good balance between SMAA quality and resource intensity. • **High**: The highest SMAA quality. This is the most resource-intensive option. This property only appears when you select **Subpixel Morphological Anti-aliasing (SMAA)** from the **Anti-aliasing** drop-down. |
## Environment
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/how-hdrp-calculates-color-for-reflection-and-refraction.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/how-hdrp-calculates-color-for-reflection-and-refraction.md
index 434ba9b8cd5..8d23a036b1c 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/how-hdrp-calculates-color-for-reflection-and-refraction.md
+++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/how-hdrp-calculates-color-for-reflection-and-refraction.md
@@ -49,12 +49,12 @@ For example, if you use ray-traced reflections and set **Minimum Smoothness** to
- Areas with a smoothness value larger than or equal to 0.9 will use the [ray-traced reflections hierarchy](#hierarchy-if-you-use-ray-traced-reflections).
- Areas with a smoothness value less than 0.9 will use only the [specular hierarchy](#specular).
-
+
The sphere has a **Smoothness** value of less than 0.9, so it uses the [specular hierarchy](#specular). This means the sphere falls back to using Reflection Probes, and the capsule doesn't appear in reflections because it's a dynamic object.
## How reflections inside reflections work
-
+
In the above Scene:
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/install-hdrp.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/install-hdrp.md
index ae72d5b1c5e..84cef19e089 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/install-hdrp.md
+++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/install-hdrp.md
@@ -18,7 +18,7 @@ Unity provides an HDRP Template Project which you can use to get set up with HDR
Unity creates a Project and automatically installs the HDRP package, and all its dependencies. After Unity opens the Template Project, you can see the main Scene.
-
+
This template is a great starting point for projects aiming for high-end graphics. It includes multiple physically based lighting setups to help you realistically illuminate environments with HDRP. It also includes examples for many of HDRP's features such as [Decals](decals.md), [Volumes](understand-volumes.md), and physically accurate Materials.
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/layered-lit-tessellation-material-inspector-reference.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/layered-lit-tessellation-material-inspector-reference.md
index d99fae63ffd..6181837adec 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/layered-lit-tessellation-material-inspector-reference.md
+++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/layered-lit-tessellation-material-inspector-reference.md
@@ -12,8 +12,8 @@ These properties control the overall look of your Material's surface and how Uni
Property
-
-
+
Option
+
Sub-option
Description
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/lights-placement-tool.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/lights-placement-tool.md
index 47640ee969b..7e33ee67083 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/lights-placement-tool.md
+++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/lights-placement-tool.md
@@ -10,7 +10,7 @@ This tool does not affect any Cameras in your Scene. The Scene View Camera retur
To use the Light Placement Tool:
1. Select a Light GameObject in the inspector window.
-2. In the Scene View Toolbar, select the Light Placement Tool icon. . The Scene View Camera automatically changes position to look through the selected Light.
+2. In the Scene View Toolbar, select the Light Placement Tool icon. . The Scene View Camera automatically changes position to look through the selected Light.
4. Use the Camera controls (pan, orbit, zoom) to adjust the Light’s position.
5. Use the Light’s gizmos to adjust its properties.
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/lit-master-stack-reference.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/lit-master-stack-reference.md
index c7de37d966d..d605e6ec09e 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/lit-master-stack-reference.md
+++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/lit-master-stack-reference.md
@@ -122,8 +122,8 @@ Depending on the [Graph Settings](#graph-settings) you use, Shader Graph can add
Property
-
-
+
Option
+
Sub-option
Description
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/master-stack-water.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/master-stack-water.md
index 49acbd56899..88162871e08 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/master-stack-water.md
+++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/master-stack-water.md
@@ -2,7 +2,7 @@
Use the Water Master Stack to render custom physically based water Material in the High Definition Render Pipeline (HDRP). The Water Master Stack approximately models a volumetric water medium, and includes properties to render effects such as caustics, scattering, and refraction.
-
+
## Create a Water shader graph
@@ -53,15 +53,15 @@ When you create a new Water Master Stack, the Vertex Context contains the follow
UV0
Water properties packed into a UV coordinate set for the vertex context.
-
-
+
N/A
+
N/A
UV1
Water properties packed into a UV coordinate set for the vertex context.
-
-
+
N/A
+
N/A
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/path-tracing-setup.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/path-tracing-setup.md
index 38aee348937..27e65f42d3f 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/path-tracing-setup.md
+++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/path-tracing-setup.md
@@ -11,7 +11,7 @@ Path tracing uses the [Volume](understand-volumes.md) framework, so to enable th
3. In the Inspector for the Path Tracing Volume Override, set **State** to **Enabled**. If you don't see **State**, make sure your HDRP Project supports ray tracing. For information on setting up ray tracing in HDRP, see [getting started with ray tracing](Ray-Tracing-Getting-Started.md). This switches HDRP to path-traced rendering and you should initially see a noisy image that converges towards a clean result.
4. If the image doesn't converge over time, select the drop-down next to the effect toggle and enable Always Refresh.
-
+
## Properties
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/physically-based-sky-volume-override-reference.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/physically-based-sky-volume-override-reference.md
index 5f70e592a2d..6d8937705a2 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/physically-based-sky-volume-override-reference.md
+++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/physically-based-sky-volume-override-reference.md
@@ -4,7 +4,7 @@ The Physically Based Sky Volume Override lets you configure how the High Definit
Refer to [Create a physically based sky](create-a-physically-based-sky.md) for more information.
-
+
## Understand the sky model
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/probevolumes-inspector-reference.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/probevolumes-inspector-reference.md
index 8f1302cd4fd..7502b267bf0 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/probevolumes-inspector-reference.md
+++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/probevolumes-inspector-reference.md
@@ -65,5 +65,5 @@ To resize the Adaptive Probe Volume, use one of the handles of the box gizmo in
In this screenshot, a red box indicates the box gizmo handles.
-
+
The resize handles for Adaptive Probe Volumes.
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/reference-indirect-lighting-controller.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/reference-indirect-lighting-controller.md
index 575db9e1f66..5e2131702f2 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/reference-indirect-lighting-controller.md
+++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/reference-indirect-lighting-controller.md
@@ -1,7 +1,5 @@
# Indirect lighting controller reference
-
-
[!include[](snippets/Volume-Override-Enable-Properties.md)]
| Property | Description |
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/reference-override-exposure.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/reference-override-exposure.md
index be106fb7d9a..5200da07f23 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/reference-override-exposure.md
+++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/reference-override-exposure.md
@@ -66,11 +66,11 @@ To configure **Automatic Mode**:
- **Average**: The Camera uses the entire luminance buffer to measure exposure.
- **Spot**: The Camera only uses the center of the buffer to measure exposure. This is useful if you want to only expose light against what's in the center of your screen.
-
+
- **Center Weighted**: The Camera applies a weight to every pixel in the buffer and then uses them to measure the exposure. Pixels in the center have the maximum weight, pixels at the screen borders have the minimum weight, and pixels between have a progressively lower weight the closer they're to the screen borders.
-
+
- **Mask Weighted**: The Camera applies a weight to every pixel in the buffer then uses the weights to measure the exposure. To specify the weighting, this technique uses the Texture set in the **Weight Texture Mask** field. Note that, if you don't provide a Texture, this metering mode is equivalent to **Average**.
- **Procedural Mask**: The Camera applies a weight to every pixel in the buffer then uses the weights to measure the exposure. The weights are generated using a mask that's procedurally generated with the following parameters:
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/reference-ray-tracing-settings.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/reference-ray-tracing-settings.md
index a79f702fb6c..caa0be57068 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/reference-ray-tracing-settings.md
+++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/reference-ray-tracing-settings.md
@@ -18,6 +18,6 @@ In the High Definition Render Pipeline (HDRP), various ray-traced effects share
### Extended frustum culling
-
+
If you enable **Extend Shadow Culling** or **Extend Camera Culling**, HDRP sets the culling region to the width and height of the frustum at the far clipping plane, and sets the depth to twice the distance from the camera to the far clipping plane.
\ No newline at end of file
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/reference-screen-space-global-illumination.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/reference-screen-space-global-illumination.md
index 7a9fcf122f0..3c5e156a1b3 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/reference-screen-space-global-illumination.md
+++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/reference-screen-space-global-illumination.md
@@ -8,64 +8,64 @@
Property
-
+
Sub-property
Description
State
-
+
N/A
When set to Enabled, HDRP processes SSGI for Cameras in the influence of this effect's Volume.
Tracing
-
+
N/A
Specifies the method HDRP uses to calculate global illumination. Depending on the option you select, the properties visible in the Inspector change. For more information on what the options do, see Tracing Modes. The options are: • Ray Marching: Uses a screen-space ray marching solution to calculate global illumination. For the list of properties this option exposes, see Screen Space. • Ray Tracing: Uses ray tracing to calculate global illumination. For information on ray-traced global illumination, see Ray-traced Global Illumination. For the list of properties this option exposes, see Ray-traced. • Mixed: Uses a combination of ray tracing and ray marching to calculate global illumination. For the list of properties this option exposes, see Ray-traced.
Quality
-
+
N/A
Specifies the overall quality of the effect. The higher the quality, the more resource-intensive the effect is to process.
Max Ray Steps
-
+
N/A
The number of ray steps to use to calculate SSGI. If you set this to a higher value, the quality of the effect improves, however it's more resource intensive to process.
Denoise
-
+
N/A
Enables the spatio-temporal filter that HDRP uses to remove noise from the Ray-Traced global illumination.
-
+
N/A
Half Resolution Denoiser
Enable this feature to evaluate the spatio-temporal filter in half resolution. This decreases the resource intensity of denoising but reduces quality.
-
+
N/A
Denoiser Radius
Set the radius of the spatio-temporal filter.
-
+
N/A
Second Denoiser Pass
Enable this feature to process a second denoiser pass. This helps to remove noise from the effect.
Full Resolution
-
+
N/A
Enable this feature to increase the ray budget to one ray per pixel, per frame. Disable this feature to decrease the ray budget to one ray per four pixels, per frame.
Depth Tolerance
-
+
N/A
Use the slider to control the tolerance when comparing the depth of the GameObjects on screen and the depth buffer. Because the SSR algorithm can not distinguish thin GameObjects from thick ones, this property helps trace rays behind GameObjects. The algorithm applies this property to every GameObject uniformly.
Ray Miss
-
+
N/A
Determines what HDRP does when screen space global illumination (SSGI) ray doesn't find an intersection. Choose from one of the following options: •Reflection probes: HDRP uses reflection probes in your scene to calculate the missing SSGI intersection. •Sky: HDRP uses the sky defined by the current Volume settings to calculate the missing SSGI intersection. •Both : HDRP uses both reflection probes and the sky defined by the current Volume settings to calculate the missing SSGI intersection. •Nothing: HDRP doesn't calculate indirect lighting when SSGI doesn't find an intersection.
This property is set to Both by default.
@@ -77,88 +77,88 @@
Property
-
+
Sub-property
Description
Ray Miss
-
+
N/A
Determines what HDRP does when ray-traced global illumination (RTGI) ray doesn't find an intersection. Choose from one of the following options: •Reflection probes: HDRP uses reflection probes in your scene to calculate the last RTGI bounce. •Sky: HDRP uses the sky defined by the current Volume settings to calculate the last RTGI bounce. •Both : HDRP uses both reflection probes and the sky defined by the current Volume settings to calculate the last RTGI bounce. •Nothing: HDRP doesn't calculate indirect lighting when RTGI doesn't find an intersection.
This property is set to Both by default.
Last Bounce
-
+
N/A
Determines what HDRP does when ray-traced global illumination (RTGI) ray lights the last bounce. Choose from one of the following options: •Reflection probes: HDRP uses reflection probes in your scene to calculate the last RTGI bounce. •Sky: HDRP uses the sky defined by the current Volume settings to calculate the last RTGI bounce. •Both : HDRP uses both reflection probes and the sky defined by the current Volume settings to calculate the last RTGI bounce. •Nothing: HDRP doesn't calculate indirect lighting when it evaluates the last bounce.
This property is set to Both by default.
Tracing
-
+
N/A
Specifies the method HDRP uses to calculate global illumination. Depending on the option you select, the properties visible in the Inspector change. For more information on what the options do, see Tracing Modes. The options are: • Ray Marching: Uses a screen-space ray marching solution to calculate global illumination. For the list of properties this option exposes, see Screen Space. • Ray Tracing: Uses ray tracing to calculate global illumination. For information on ray-traced reflections, see Ray-Traced Global Illumination. For the list of properties this option exposes, see Ray-traced. • Mixed: Uses a combination of ray tracing and ray marching to calculate global illumination. For the list of properties this option exposes, see Ray-traced.
Layer Mask
-
+
N/A
Defines the layers that HDRP processes this ray-traced effect for.
Clamp Value
-
+
N/A
Set a value to control the threshold that HDRP uses to clamp the pre-exposed value. This reduces the range of values and makes the global illumination more stable to denoise, but reduces quality.
Mode
-
+
N/A
Defines if HDRP should evaluate the effect in Performance or Quality mode. This property only appears if you select set Supported Ray Tracing Mode in your HDRP Asset to Both.
Quality
-
+
N/A
Specifies the preset HDRP uses to populate the values of the following nested properties. The options are: • Low: A preset that emphasizes performance over quality. • Medium: A preset that balances performance and quality. • High: A preset that emphasizes quality over performance. • Custom: Allows you to override each property individually. This property only appears if you set Mode to Performance.
Max Ray Length
-
+
N/A
Controls the maximal length of rays. The higher this value is, the more resource-intensive ray traced global illumination is.
Full Resolution
-
+
N/A
Enable this feature to increase the ray budget to one ray per pixel, per frame. Disable this feature to decrease the ray budget to one ray per four pixels, per frame. This property only appears if you set Mode to Performance.
Sample Count
-
+
N/A
Controls the number of rays per pixel per frame. Increasing this value increases execution time linearly. This property only appears if you set Mode to Quality.
Bounce Count
-
+
N/A
Controls the number of bounces that global illumination rays can do. Increasing this value increases execution time exponentially. This property only appears if you set Mode to Quality.
Max Mixed Ray Steps
-
+
N/A
Sets the maximum number of iterations that the algorithm can execute before it stops trying to find an intersection with a Mesh. For example, if you set the number of iterations to 1000 and the algorithm only needs 10 to find an intersection, the algorithm terminates after 10 iterations. If you set this value too low, the algorithm may terminate too early and abruptly stop global illumination. This property only appears if you set Tracing to Mixed.
Denoise
-
+
N/A
Enable this to enable the spatio-temporal filter that HDRP uses to remove noise from the Ray-Traced global illumination.
-
+
N/A
Half Resolution Denoiser
Enable this feature to evaluate the spatio-temporal filter in half resolution. This decreases the resource intensity of denoising but reduces quality.
-
+
N/A
Denoiser Radius
Set the radius of the spatio-temporal filter.
-
+
N/A
Second Denoiser Pass
Enable this feature to process a second denoiser pass. This helps to remove noise from the effect.
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/reference-screen-space-reflection.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/reference-screen-space-reflection.md
index 51359e00b8d..fe4204e1bb9 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/reference-screen-space-reflection.md
+++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/reference-screen-space-reflection.md
@@ -37,93 +37,93 @@ For more information, refer to the following:
Property
-
+
Sub-property
Description
Tracing
-
+
N/A
Specifies the method HDRP uses to calculate reflections. Depending on the option you select, the properties visible in the Inspector change. For more information on what the options do, see Tracing Modes. The options are: • Ray Marching: Uses a screen-space ray marching solution to calculate reflections. For the list of properties this option exposes, see Screen Space. • Ray Tracing: Uses ray tracing to calculate reflections. For information on ray-traced reflections, see Ray-Traced Reflections. For the list of properties this option exposes, see Ray-traced. • Mixed: Uses a combination of ray tracing and ray marching to calculate reflections. For the list of properties this option exposes, see Ray-traced.
Ray Miss
-
+
N/A
Determines what HDRP does when ray-traced reflections (RTR) doesn't find an intersection. Choose from one of the following options: •Reflection probes: HDRP uses reflection probes in your scene to calculate the last RTR bounce. •Sky: HDRP uses the sky defined by the current Volume settings to calculate the last RTR bounce. •Both : HDRP uses both reflection probes and the sky defined by the current Volume settings to calculate the last RTR bounce. •Nothing: HDRP doesn't calculate indirect lighting when RTR doesn't find an intersection.
This property is set to Both by default
Last Bounce
-
+
N/A
Determines what HDRP does when ray-traced reflections (RTR) lights the last bounce. Choose from one of the following options: •Reflection probes: HDRP uses reflection probes in your scene to calculate the last RTR bounce. •Sky: HDRP uses the sky defined by the current Volume settings to calculate the last RTR bounce. •Both: HDRP uses both reflection probes and the sky defined by the current [Volume settings to calculate the last RTR bounce. •Nothing: HDRP doesn't calculate indirect lighting when it evaluates the last bounce.
This property is set to Both by default.
LayerMask
-
+
N/A
Defines the layers that HDRP processes this ray-traced effect for.
Clamp Value
-
+
N/A
Controls the threshold that HDRP uses to clamp the pre-exposed value. This reduces the range of values and makes the reflections more stable to denoise, but reduces quality.
Mode
-
+
N/A
Defines if HDRP should evaluate the effect in Performance or Quality mode. This property only appears if you select set Supported Ray Tracing Mode in your HDRP Asset to Both.
Quality
-
+
N/A
Specifies the preset HDRP uses to populate the values of the following nested properties. The options are: • Low: A preset that emphasizes performance over quality. • Medium: A preset that balances performance and quality. • High: A preset that emphasizes quality over performance. • Custom: Allows you to override each property individually. This property only appears if you set Mode to Performance.
Controls the maximum length of reflection rays. The higher this value is, the more resource-intensive ray-traced reflection is if a ray doesn't find an intersection.
Full Resolution
-
+
N/A
Enable this feature to increase the ray budget to one ray per pixel, per frame. Disable this feature to decrease the ray budget to one ray per four pixels, per frame. This property only appears if you set Mode to Performance.
Sample Count
-
+
N/A
Controls the number of rays per pixel per frame. Increasing this value increases execution time linearly. This property only appears if you set Mode to Quality.
Bounce Count
-
+
N/A
Controls the number of bounces that reflection rays can do. Increasing this value increases execution time exponentially. This property only appears if you set Mode to Quality.
Max Mixed Ray Steps
-
+
N/A
Sets the maximum number of iterations that the algorithm can execute before it stops trying to find an intersection with a Mesh. For example, if you set the number of iterations to 1000 and the algorithm only needs 10 to find an intersection, the algorithm terminates after 10 iterations. If you set this value too low, the algorithm may terminate too early and abruptly stop reflections. This property only appears if you set Tracing to Mixed.
Denoise
-
+
N/A
Enables the spatio-temporal filter that HDRP uses to remove noise from the reflections.
-
+
N/A
Denoiser Radius
Controls the radius of the spatio-temporal filter. Increasing this value results in a more blurry result and a higher execution time.
-
+
N/A
Anti-flickering Strength
Controls the anti-flickering strength of the reflection denoiser.
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/set-the-type-of-sky.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/set-the-type-of-sky.md
index 365c2707a2a..2b328f66e39 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/set-the-type-of-sky.md
+++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/set-the-type-of-sky.md
@@ -24,6 +24,6 @@ After you have set your **Sky Type**, if you want to override the default settin
On the [Gradient Sky](gradient-sky-volume-override-reference.md) override itself, you can enable the checkboxes next to each property to override the property with your own values. For example, enable the checkbox next to the **Middle** property and use the color picker to change the color to pink.
-
+
Refer to the [Visual Environment Volume Override reference](visual-environment-volume-override-reference.md) for more information.
\ No newline at end of file
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/shared/lens-flare/reference-screen-space-lens-flare.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/shared/lens-flare/reference-screen-space-lens-flare.md
index fa45b168a01..c9a62c95c4e 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/shared/lens-flare/reference-screen-space-lens-flare.md
+++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/shared/lens-flare/reference-screen-space-lens-flare.md
@@ -36,7 +36,8 @@ Use the **Streaks** settings to control flares stretched in one direction.
| | **Threshold** | Control how localized the streak effect is. The higher the **Threshold**, the more localized the effect. The range is 0 through 1. The default value is 0.25. |
| | **Resolution** | Control the resolution detail of streaks. HDRP renders lower-resolution streaks faster. The options are **Half**, **Quarter** and **Eighth** full resolution. This property only appears if you open the **More** (⋮) menu and select **Show Additional Properties**. |
-
+
+
The effect of changing **Threshold** from 0 (a larger flare effect) to 1 (a smaller flare effect).
### Chromatic Aberration
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/layer-list.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/layer-list.md
index 12b398950ef..85dc24dee9a 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/layer-list.md
+++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/layer-list.md
@@ -5,9 +5,7 @@ This section contains a list of the Materials that this Layered Material uses as
If you modify the referenced Material in any way, you can synchronize the properties by pressing the **Reset button**. This copies all of the properties from the referenced Material into the relevant Layered Material layer.
-
-
If you assign a Material made from a Shader Graph as a **Layer Material**, make sure the Reference of the properties matches the name of the corresponding properties in the LayeredLit Material.
For an example of what this means, see **_BaseColorMap** in the screenshot below:
-
+
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/alpha-clipping-threshold.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/alpha-clipping-threshold.md
index 6a8ce279cd2..e9a322b69af 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/alpha-clipping-threshold.md
+++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/alpha-clipping-threshold.md
@@ -1,7 +1,7 @@
- Threshold
-
-
+
N/A
+
N/A
The alpha value limit HDRP uses to determine whether to render each pixel. If the alpha value of the pixel is equal to or higher than the limit then HDRP renders the pixel. If the value is lower than the limit then HDRP does not render the pixel. The default value is 0.5.
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/alpha-clipping.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/alpha-clipping.md
index 99dc8557480..b906a67070a 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/alpha-clipping.md
+++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/alpha-clipping.md
@@ -1,10 +1,6 @@
Alpha Clipping
-
-
-
-
-Indicates whether this material acts like a Cutout Shader. For more information about the feature and for the list of properties this feature exposes, see the Alpha Clipping documentation.
-
-
+
N/A
+
N/A
+
Indicates whether this material acts like a Cutout Shader. For more information about the feature and for the list of properties this feature exposes, see the Alpha Clipping documentation.
Indicates whether to turn on alpha-to-coverage. If your Project uses MSAA, alpha-to-coverage modifies the multi-sample coverage mask proportionally to the pixel shader result alpha value. This is typically used for anti-aliasing vegetation and other alpha-tested shaders. This property only appears if you enable Alpha Clipping.
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/anisotropy-for-area-lights.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/anisotropy-for-area-lights.md
index 4a456194d8d..ea74cfb3ddc 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/anisotropy-for-area-lights.md
+++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/anisotropy-for-area-lights.md
@@ -1,6 +1,6 @@
Anisotropy For Area Lights
-
-
+
N/A
+
N/A
Indicates whether to calculate anisotropic reflections for area lights. Note that enabling this option makes a StackLit material more resource intensive to process around area lights.
Indicates whether to apply anisotropy to the material. If you enable Dual Specular Lobe the two lobes have independent anisotropic intensity values (Anisotropy and AnisotropyB).
Indicates whether HDRP renders this material in two separate draw calls. HDRP renders the back face in the first draw call and the front face in the second. This property only appears if you set Surface Type to Transparent.
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/base-color-parametrization.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/base-color-parametrization.md
index 189604a3fa0..bbc2a172f35 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/base-color-parametrization.md
+++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/base-color-parametrization.md
@@ -1,6 +1,6 @@
Base Color Parametrization
-
-
+
N/A
+
N/A
Specifies the method to set color and reflectance properties of the material. The options are: • Base Metallic: Applies the basic metallic Shader workflow to the material. In the StackLit shader, when Metallic is 0, Dielectric Ior determines the specular color of the base layer. • Specular Color: Applies the Specular Color workflow to the material. Use this to create Materials with a coloured specular highlight. This is similar to the built-in Specular Shader.
Indicates whether to shade directional, punctual, and spot lights on the bottom layer with refraction from the top layer (the coat). This setting only appears if you enable Coat.
Indicates whether to cap the intensity of the specular highlight for materials that have a metallic value of 0. As the metallic value increases, the cap relaxes towards 1. This setting only appears if you set Base Color Parametrization to Metallic and Dual Specular Lobe Parametrization to Hazy Gloss.
Indicates whether to use an independent normal for the coat layer. When enabled, the Coat Normal property sets the normals specifically for the coat layer. When disabled, the Normal property sets the normals for both the coat layer and the base layer.
Indicates whether to apply a dielectric coating layer to the base layer. This is a complete covering that has no independent material lerping or mixing. The coat has an independent roughness, a configurable index of refraction, and an extinction/absorption effect with a configurable thickness. The coat layer is not anisotropic.
Indicates whether HDRP modifies the depth buffer according to the displacement. This allows effects that use the depth buffer (Contact Shadows for example) to capture pixel displacement details. This property only appears if you set Displacement Mode to Pixel Displacement.
The mip level at which the pixel displacement effect begins to fade out. This property only appears if you set Displacement Mode to Pixel Displacement.
The maximum number of Texture samples which Unity performs to process pixel displacement. This property only appears if you set Displacement Mode to Pixel Displacement.
The minimum number of Texture samples which Unity performs to process pixel displacement. This property only appears if you set Displacement Mode to Pixel Displacement.
Specifies the method HDRP uses to alter the height of the Material’s surface. The options are: • None: Applies no displacement to the material. • Vertex displacement: Displaces the mesh's vertices according to the Height Map. • Pixel displacement: Displaces the pixels on the mesh surface according to the Height Map. For more information about the feature and for the list of properties each Displacement Mode exposes, see the Displacement Mode documentation.
The length of the mesh (in meters) on which Unity applies the displacement mapping. This property only appears if you set Displacement Mode to Pixel Displacement.
The width of the mesh (in meters) on which Unity applies the displacement mapping. This property only appears if you set Displacement Mode to Pixel Displacement.
Indicates whether HDRP renders both faces of the polygons in your geometry. For more information about the feature and for the list of properties this feature exposes, see the Double-Sided documentation.
Specifies how HDRP renders the faces of polygons in the mesh geometry. The options are: • Disabled: Only renders one face of the polygons. • Enabled: Renders both faces of the polygons. In this mode, the normal of the back face is the same as the front face. • Flipped Normals: Renders both faces of the polygons. In this mode, the normal of the back face is 180° of the front-facing normal. This also applies to the material, which means that it looks the same on both sides of the geometry. • Mirrored Normals: Renders both faces of the polygons. In this mode, the normal of the back face mirrors the front-facing normal. This also applies to the material, which means that it inverts on the back face. This is useful when you want to keep the same shape on both sides of the geometry, for example, for leaves.
For more information about this feature, see Double-sided.
Specifies the method that controls the second specular lobe. The options are: • Direct: Gives you direct control of the second lobe. SmoothnessB controls the second lobe's smoothness, LobeMix controls the amount of mixing between the two lobes, and Anisotropy controls the second lobe's anisotropic smoothness. • Hazy Gloss: Adds a haze effect to the surface directly while keeping the primary lobe mostly unchanged. Haziness controls the intensity of the haze effect. HazeExtent controls the range of the haze around the central highlight. This option is the most intuitive and controllable way to use two lobes. Note that this mode implicitly modifies the specular color. If the material already has a high specular intensity (close to 1), there is no room to increase it in regions where haziness requires it to be boosted. In this case, haziness has little to no effect. • From Diffusion Profile: Use the Dual Lobe Multipliers and Lobe Mix settings in the Diffusion Profile. This setting only has an effect if you enable Dual Specular Lobe.
Indicates whether to add a second specular lobe to the base layer to simulate hazy materials without using a coat. If you also enable anisotropy, each lobe has an independent, configurable, anisotropic smoothness. The two lobes that characterize the base surface layer use the same index of refraction, or specular color (depending on the Base Color Parametrization). The second lobe then further uses a different input configuration depending on the Dual Specular Lobe Parametrization.
Indicates whether HDRP reduces the diffuse color of the Material if the specular effect is more intense. This makes the lighting of the Material more consistent and makes it look more physically-accurate. This property only appears when you set Material Type to Specular Color.
Indicates whether HDRP reduces the diffuse color of the Material if the specular effect is more intense. This makes the lighting of the Material more consistent and makes it look more physically accurate. This setting only appears when you set Base Color Parametrization to Specular Color and Use IOR From Diffusion Profile is not enabled.
- Exclude from Temporal Upscaling and Anti Aliasing
-
-
+
N/A
+
N/A
Indicates whether the render pipeline excludes this surface from any temporal upscalers (TU) and temporal anti-aliasing (AA). This is useful when the surface looks blurry when TAA or any Temporal Upscaler is enabled and especially useful for animated textures (such as video player in a surface).
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/eye-material-type.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/eye-material-type.md
index ad8b6b8111d..e0b379abaa0 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/eye-material-type.md
+++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/eye-material-type.md
@@ -1,6 +1,6 @@
Material Type
-
-
+
N/A
+
N/A
Specifies the method HDRP uses to calculate the lighting in the eye's iris: • Eye: Uses a low resource-intensity method to calculate caustics. • Eye Cinematic: Refracts incoming light to create more realistic lighting. This is the algorithm used in The Heretic. This method is more resource-intensive than Eye. • Eye Cinematic With Caustic: Uses refracted light direction and caustic approximation to shade the iris. This is the algorithm used in Enemies. This method is the most resource intensive.
Specifies the normal map space that this Material uses. • TangentSpace: Defines the normals in tangent space. Use this to tile a Texture on a Mesh. • ObjectSpace: Defines the normals in object space. Use this for planar-mapping GameObjects like the terrain. • WorldSpace: Defines the normal maps in world space.
Indicates whether HDRP performs geometric anti-aliasing on this material. This modifies the smoothness values on the surfaces of curved geometry to remove specular artifacts. For more information about the feature and for the list of properties this feature exposes, see the Geometric Specular Anti-aliasing documentation.
The maximum value for the offset that HDRP subtracts from the smoothness value to reduce artifacts. This property only appears if you enable Geometric Specular AA.
Indicates whether the StackLit shader uses the shape of directional, punctual, and spot Lights when it simulates the extent of the Lights. Depending on the smoothness values of the layers, enabling this option can produce unrealistic results for Lights that have large shapes. To fix this, enable Recompute Stack and Iridescence. These options are separate because recomputing the stack per Light instead of once for all Lights is significantly more resource intensive.
Indicates whether to apply iridescence to the base layer (and the coat layer if there is one). Iridescent surfaces appear to gradually change color as the angle of view or the angle of illumination changes.
Indicates whether to use custom normals for the iris. When enabled, the Iris Normal Block sets the normal of the iris for the current fragment. When disabled, it uses the Normal Block.
Indicates whether to alter the amplitude of the displacement using the tiling of the Height Map. This allows you to preserve the ratio between the amplitude of the displacement and the scale of the Height Map Texture. This property only appears if you set Displacement Mode to Vertex Displacement or Pixel Displacement.
Indicates whether to alter the height of the displacement using the Scale of the Transform. This allows you to preserve the ratio between the amplitude of the displacement and the Scale of the Transform. This property only appears if you set Displacement Mode to Vertex Displacement or Pixel Displacement.
Specifies the type of Material the fabric Shader represents. The options are: • Cotton Wool: A variant inspired by the Imageworks’s cloth model. • Silk: A fabric variant based on an anisotropic DinseyGGX BRDF Model.
Specifies the type of Material the Hair Shader represents. The options are: • Approximate: This hair material type is suitable for hair card geometry and based on the Kajiya-Kay hair model. When you use this type, you need to adjust the blocks in the Fragment context to suit the lighting environment in your scene. • Physical:This hair material type is suitable for hair strand geometry and based on the Marschner hair model. This type is suitable for all light environments.
Specifies a type for the material. This allows you to customize the material with different settings depending on the type you select. The options are: • Subsurface Scattering: Applies the subsurface scattering workflow to the material. Subsurface scattering simulates the way light interacts with and penetrates translucent objects, such as skin or plant leaves. When light penetrates the surface of a subsurface scattering material, it scatters and blurs before exiting the surface at a different point. • Standard: Applies the basic metallic Shader workflow to the material. This is the default Material Type. • Translucent: Applies the Translucent workflow to the material. Use this Material Type, and a thickness map, to simulate a translucent material. In contrast to Subsurface Scattering materials, Translucent materials do not blur light that transmits through the material.
For more information about the feature and for the list of properties each Material Type exposes, see the Material Type documentation.
Specifies a type for the material. This allows you to customize the material with different settings depending on the type you select. The options are: • Subsurface Scattering: Applies the subsurface scattering workflow to the material. Subsurface scattering simulates the way light interacts with and penetrates translucent objects, such as skin or plant leaves. When light penetrates the surface of a subsurface scattering material, it scatters and blurs before exiting the surface at a different point. • Standard: Applies the basic metallic Shader workflow to the material. This is the default Material Type. • Anisotropy: Applies the anisotropic workflow to the material. The highlights of Anisotropic surfaces change in appearance as you view the material from different angles. Use this Material Type to create materials with anisotropic highlights. For example, brushed metal or velvet. • Iridescence: Applies the Iridescence workflow to the material. Iridescent surfaces appear to gradually change color as the angle of view or angle of illumination changes. Use this Material Type to create materials like soap bubbles, iridescent metal, or insect wings. • Specular Color: Applies the Specular Color workflow to the material. Use this Material Type to create Materials with a coloured specular highlight. This is similar to the built-in Specular Shader. • Translucent: Applies the Translucent workflow to the material. Use this Material Type, and a thickness map, to simulate a translucent material. In contrast to Subsurface Scattering materials, Translucent materials do not blur light that transmits through the material. For more information about the feature and for the list of properties each Material Type exposes, see the Material Type documentation.
The alpha value limit HDRP uses for the transparent depth postpass. This works in the same way as the main Threshold property described above. This property only appears when you enable the Transparent Depth Postpass checkbox.
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/prepass-threshold.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/prepass-threshold.md
index 0eb3d5b6940..5565b9d4b4f 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/prepass-threshold.md
+++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/prepass-threshold.md
@@ -1,7 +1,7 @@
- Prepass Threshold
-
-
+
N/A
+
N/A
The alpha value limit HDRP uses for the transparent depth prepass. This works in the same way as the main Threshold property described above. This property only appears when you enable the Transparent Depth Prepass checkbox.
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/recompute-stack-and-iridescence.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/recompute-stack-and-iridescence.md
index 756949ce806..103198575bb 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/recompute-stack-and-iridescence.md
+++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/recompute-stack-and-iridescence.md
@@ -1,6 +1,6 @@
Recompute Stack And Iridescence
-
-
+
N/A
+
N/A
Indicates whether the StackLit shader simulates its coat/layer effect for each Light individually, rather than once for all Lights at the same time. Note this only applies to punctual, directional, and spot Lights. Enabling this option increases the resource intensity of the shader, so only use it when necessary (for example, when Honor Per Light Max Smoothness is enabled).
Indicates whether to include this material in the recursive rendering pipeline. When enabled, if your project supports ray tracing and a Recursive Rendering Volume Profile override is active, HDRP uses ray tracing to render this material.
The strength of the geometric specular anti-aliasing effect between 0 and 1. Higher values produce a blurrier result with less aliasing. This property only appears if you enable Geometric Specular AA.
Indicates whether the shader receives shadows. Shadow matte only supports shadow maps.
It doesn't support screen-space shadows, ray-traced Shadows, or contact shadows.
Enable **Shadow Matte** if you add a custom Node that samples shadow maps, otherwise shadows might not render correctly.
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/shadow-threshold.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/shadow-threshold.md
index c0db7d388c8..2d5123a6f6e 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/shadow-threshold.md
+++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/shadow-threshold.md
@@ -1,7 +1,7 @@
- - Shadow Threshold
-
-
+
N/A
+
N/A
The alpha value limit that HDRP uses to determine whether it should render shadows for a pixel. This property only appears if you enable Use Shadow Threshold.
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/specular-occlusion-mode-stacklit.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/specular-occlusion-mode-stacklit.md
index 64815abeebd..b8bf8022911 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/specular-occlusion-mode-stacklit.md
+++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/specular-occlusion-mode-stacklit.md
@@ -1,6 +1,6 @@
Specular Occlusion Mode
-
-
+
N/A
+
N/A
The mode that HDRP uses to calculate specular occlusion. The options are: • Off: Disables specular occlusion. • Direct From AO: Calculates specular occlusion from the ambient occlusion map and the Camera's view vector. • SPTD Integration of Bent AO: First uses the bent normal with the ambient occlusion value to calculate a general visibility cone. Then, calculates the specular occlusion using a Spherical Pivot Transformed Distribution (SPTD) that is properly integrated against the bent visibility cone. • *Custom*: Allows you to specify your own specular occlusion values.
Indicates whether HDRP modifies the depth buffer according to the displacement. This allows effects that use the depth buffer (Contact Shadows for example) to capture pixel displacement details.
Indicates whether the Material supports subsurface scattering. To disable subsurface scattering in specific regions of the Material, use the Subsurface Mask.
Indicates whether HDRP simulates the translucency of the material using a thickness map. Configure subsurface scattering and transmission settings using a Diffusion Profile. For more information, see documentation on Subsurface Scattering. This property only appears when you select Subsurface Scattering from the Material Type drop-down.
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/transparent-depth-postpass.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/transparent-depth-postpass.md
index fb776941a47..40626b11a0b 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/transparent-depth-postpass.md
+++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/transparent-depth-postpass.md
@@ -1,7 +1,7 @@
- Transparent Depth Postpass
-
-
+
N/A
+
N/A
Indicates whether HDRP adds polygons to the depth buffer that post-processing uses. HDRP performs this operation before the lighting pass. Enabling this feature is useful if you want to use post-processing effects that use depth information, like motion blur or depth of field.
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/use-profile-ior.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/use-profile-ior.md
index 43827e06981..7531d94161f 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/use-profile-ior.md
+++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/use-profile-ior.md
@@ -1,6 +1,6 @@
Use IOR From Diffusion Profile
-
-
+
N/A
+
N/A
Indicates whether the Material computes the fresnel color from the IOR of the diffusion profile, or using the Dielectric IOR set in the graph output. This is only available if Subsurface Scattering or Transmission is enabled.
Indicates whether HDRP uses another threshold value for alpha clipping shadows. This property only appears if you enable Alpha Clipping.
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/velocity.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/velocity.md
index 8dc5eea1e56..861bb9376bc 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/velocity.md
+++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/velocity.md
@@ -1,6 +1,6 @@
Add Custom Velocity
-
-
+
N/A
+
N/A
Indicates whether HDRP changes the motion vector according to the provided velocity. HDRP adds the provided velocity (the difference between the current frame position and the last frame position in Object space) to the motion vector calculation. This provides correct motion vector calculations for any procedural geometry that HDRP calculates outside of Shader Graph. The motion vector still takes into account other deformations (for example, skinning or vertex animation).
Specifies the model HDRP uses to process refraction. The options are: • None: No refraction occurs. Select this option to disable refraction. • Box: A box-shaped model where incident light enters through a flat surface and leaves through a flat surface. Select this option for hollow surfaces. • Sphere: A sphere-shaped model that produces a magnifying glass-like effect to refraction. Select this option for solid surfaces. • Thin: A thin box surface type, equivalent to Box with a fixed thickness of 5cm. Select this for thin window-like surfaces.
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/stacklit-master-stack-reference.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/stacklit-master-stack-reference.md
index 1108bbd514e..a17a9fb3c6d 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/stacklit-master-stack-reference.md
+++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/stacklit-master-stack-reference.md
@@ -131,8 +131,8 @@ Depending on the [Graph Settings](#graph-settings) you use, Shader Graph can add
Property
-
-
+
Option
+
Sub-option
Description
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/test-and-debug-materials-in-different-lighting-conditions-look-dev.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/test-and-debug-materials-in-different-lighting-conditions-look-dev.md
index f6f4556f646..fe98d646122 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/test-and-debug-materials-in-different-lighting-conditions-look-dev.md
+++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/test-and-debug-materials-in-different-lighting-conditions-look-dev.md
@@ -3,5 +3,3 @@
Look Dev is an image-based lighting tool that you can use to test how your Assets look in various lighting conditions.
For more information, see [the SRP Core documentation.](https://docs.unity3d.com/Packages/com.unity.render-pipelines.core@latest/index.html?subfolder=/manual/Look-Dev.html)
-
-
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/test-debug-exposure.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/test-debug-exposure.md
index 07e4dd773ae..ddac3ff4f6c 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/test-debug-exposure.md
+++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/test-debug-exposure.md
@@ -8,13 +8,13 @@ This debug mode shows a heat map of the scene luminance converted to [EV100
Furthermore, this debug view shows the numerical value of the pixel at the center of the screen. It also displays this value in the heatmap indicator at the bottom of the screen to show where it's relative to the full range.
-
+
## Histogram View
In **Automatic Histogram** mode, if may be difficult to set the upper and lower brightness percentages without a references. To help with this, HDRP includes the Histogram debug view which shows an overview of what the scene brightness distribution looks like.
-
+
There are two places this debug mode displays information:
@@ -37,11 +37,11 @@ By default, the values on the x-axis are fixed, however, you can also make the h
The Metering Weighted debug view displays the scene alongside a picture of what the scene looks like after HDRP weights it with the metering mask. This is useful to set up the procedural metering masks or determine the right texture mask.
-
+
#### Final Image Histogram
The final image histogram debug view displays the scene alongside an overlay representing the histogram of the image after all post-processing (tonemapping and gamma correction included) is applied. This histogram has 256 bins to map to 8-bit image values.
This view can display both luminance histogram or RGB channels represented separately.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/understand-clouds.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/understand-clouds.md
index bbebffa8e52..2f8307a4970 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/understand-clouds.md
+++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/understand-clouds.md
@@ -13,7 +13,7 @@ __Note:__ Cloud Layer and Volumetric Clouds do not support Planet Center Positio
## Volumetric clouds
-
+
Volumetric clouds are interactable clouds that can render shadows, and receive fog and volumetric light.
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/understand-decals.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/understand-decals.md
index ae284b0439d..e95871efd55 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/understand-decals.md
+++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/understand-decals.md
@@ -7,7 +7,7 @@ The High Definition Render Pipeline (HDRP) includes the following ways to create
To use these methods, you need to create a decal Material. A decal Material is a Material that uses the Decal Shader or Decal Master Stack. You can then place or project your decal Material into a Scene.
-
+
Refer to [Use decals](use-decals.md) for more information.
@@ -17,7 +17,7 @@ When the Decal Projector component projects decals into the Scene, they interact
The Decal Projector also supports [Decal Layers](use-decals.md#decal-layers) which means you can control which Materials receive decals on a Layer by Layer basis.
-
+
## Limitations
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/understand-eyes.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/understand-eyes.md
index 5805ddac496..cef6ce7e90a 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/understand-eyes.md
+++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/understand-eyes.md
@@ -9,13 +9,13 @@ When rendering eyes, it’s helpful to become familiar with their biological str
* The **Limbus**, or the Limbal Ring, is the darkened bordering region between the Cornea and the Sclera.
* The **Sclera** is the opaque, protective outer layer of the eye.
-
+
## Eye materials
Use the Eye shader or the Eye Shader Graph as the starting point for rendering eyes in the High Definition Render Pipeline (HDRP). They model a two-layer material, in which the first layer describes the cornea and fluids on the surface, and the second layer describes the sclera and the iris, visible through the first layer. They supports various effects, such as cornea refraction, caustics, pupil dilation, limbal darkening, and subsurface scattering.
-
+
Under the hood, the Eye shader is a pre-configured Shader Graph.
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/understand-fullscreen-materials.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/understand-fullscreen-materials.md
index 1b35369292c..4449fb291b7 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/understand-fullscreen-materials.md
+++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/understand-fullscreen-materials.md
@@ -8,7 +8,7 @@ You can then use the Fullscreen shader in the following ways:
- To create a [Custom Post Process effect](custom-post-processing-use-full-screen-shader.md).
- In a C# script with the [`HDUtils.DrawFullscreen`](https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@15.0/api/UnityEngine.Rendering.HighDefinition.HDUtils.html) or `Graphics.Blit()` functions. To use `Graphics.Blit()`see [Make a Fullscreen material Blit compatible](create-a-fullscreen-material#make-a-full-screen-shader-graph-blit-compatible).
-
+
A full-screen shader that applies a raindrop effect to the screen.
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/understand-hair-and-fur.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/understand-hair-and-fur.md
index 66722eab0a2..37bd7a0a924 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/understand-hair-and-fur.md
+++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/understand-hair-and-fur.md
@@ -2,7 +2,7 @@
You can use the Hair shader or the Hair Shader Graph as a starting point for rendering hair and fur in the High Definition Render Pipeline (HDRP). To create a realistic looking hair effect, the Hair shader and the Hair Shader Graph use layers called hair cards. Each hair card represents a different section of hair. If you use semi-transparent hair cards, you must manually sort them so that they're in back-to-front order from every viewing direction.
-
+
The Hair shader is a pre-configured Shader Graph.
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/understand-high-quality-line-rendering.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/understand-high-quality-line-rendering.md
index ceef887219c..d914c39214c 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/understand-high-quality-line-rendering.md
+++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/understand-high-quality-line-rendering.md
@@ -4,10 +4,10 @@ Rendering line topology via traditional hardware rasterization, for example to r
Use the **High Quality Line Rendering** override to draw line geometry with analytic anti-aliasing and transparent sorting.
-
+
An example of hardware lines.
-
+
An example of high quality lines.
The High Quality Line Renderer is a line segment software rasterizer designed for fast, high quality transparency and anti-aliasing.
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/understand-volumes.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/understand-volumes.md
index 02fca675ff2..6e4af6d9609 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/understand-volumes.md
+++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/understand-volumes.md
@@ -19,7 +19,7 @@ Refer to [Set up a volume](set-up-a-volume.md) for more information.
Each Volume component references a Volume Profile, which contains scene properties in one or more Volume Overrides. Each Volume Override controls different settings.
-
+
The default **Sky and Fog Volume** GameObject in a new HDRP project. The GameObject has a global volume. The Volume Profile has **Visual Environment**, **Physically Based Sky**, **Fog** and **Exposure** Volume Overrides.
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/unlit-master-stack-reference.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/unlit-master-stack-reference.md
index b95aa12c56a..b83a590fe39 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/unlit-master-stack-reference.md
+++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/unlit-master-stack-reference.md
@@ -97,8 +97,8 @@ Depending on the [Graph Settings](#graph-settings) you use, Shader Graph can add
Property
-
-
+
Option
+
Sub-option
Description
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/unlit-material.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/unlit-material.md
index ddab36fac4f..f3352461f28 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/unlit-material.md
+++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/unlit-material.md
@@ -2,7 +2,7 @@
The Unlit Shader and the Unlit Shader Graph let you create Materials that are not affected by lighting. They include options for the Surface Type, Emissive Color, and GPU Instancing. For more information about Materials, Shaders and Textures, see the [Unity User Manual](https://docs.unity3d.com/Manual/Shaders.html).
-
+
## Creating an Unlit Material
@@ -14,8 +14,6 @@ New Materials in HDRP use the [Lit Shader](lit-material.md) by default. To creat
3. Click the __Shader__ drop-down at the top of the Material Inspector, and select __HDRP > Unlit__.
-
-
Refer to [Unlit Material Inspector reference](unlit-material-inspector-reference.md) for more information.
## Creating an Unlit Shader Graph
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/volumetric-clouds-volume-override-reference.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/volumetric-clouds-volume-override-reference.md
index 44b22b7e9fa..f14b3bcbfc2 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/volumetric-clouds-volume-override-reference.md
+++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/volumetric-clouds-volume-override-reference.md
@@ -113,11 +113,11 @@ For the **Cloud LUT**, the color channels represent:
When importing these two map Textures, disable **sRGB**. For best results, do not use any compression.
-
+
As a reference, here is the procedurally generated cloud LUT used for advanced mode. You can clearly see the 3 types of clouds (mid-altitude on the left, high altitude in the middle and cumulonimbus on the right).
Also, there is variations in the green and blue channels to specify more of less erosion and ambient occlusion depending on the cloud profile.
-
+
Here is an example cloud LUT that can be used in manual mode. On the top image, the LUT is divided into 8 32px wide parts, each representing a cloud type with a specific profile and altitude. (stratus on the left and cumulus on the right)
On the bottom left, the cloud map uses grayscale values to map which type of clouds is used. For exemple a radial gradient using thoses values creates a circular cloud as seen on the bottom right using the profile set on the cloud LUT.
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/water-decals-and-masking-in-the-water-system.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/water-decals-and-masking-in-the-water-system.md
index 9a431ef2ec8..1c36e7e03f0 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/water-decals-and-masking-in-the-water-system.md
+++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/water-decals-and-masking-in-the-water-system.md
@@ -5,21 +5,11 @@ You can use a simulation mask to affect the influence the simulation has on spec
Masks take into account the **Wrap Mode** of the texture on the importer. For **Ocean, Sea, or Lake** water surface types, choose **Clamp** rather than the default, **Repeat**.
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
In this example, the Red channel attenuates the First and Second bands with a gradient. The noise on the Green channel attenuates ripples. See the Simulation Mask property description for more information.
-
-
-
## Decals
You can use a [decal](decals.md) with a water surface in the form of a **Decal Layer Mask**. You might use this to imitate debris floating on the water, for example.
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/water-underwater-view.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/water-underwater-view.md
index 15a2b1762af..a8730635e64 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/water-underwater-view.md
+++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/water-underwater-view.md
@@ -26,14 +26,12 @@ To set the area of the underwater view for an ocean, follow these steps:
When the camera is at the limit of the water's surface, the underwater view adds a boundary when transitioning from below to above the water's surface.
-
+
To customize the water line even more, you can sample the generated underwater buffer in a [Custom Pass](Custom-Pass.md) by using the [HD Sample Buffer](https://docs.unity3d.com/Packages/com.unity.shadergraph@latest/index.html?subfolder=/manual/HD-Sample-Buffer-Node.html) node from the Shader Graph using the **IsUnderwater** option from the Source Buffer dropdown.
Refer to the Waterline scene in the [HDRP Water samples](HDRP-Sample-Content.md#water-samples) for more details.
-
-
## Limitations
* When using a custom mesh, underwater doesn't behave as expected if the mesh's Y position isn't at 0, or if the mesh isn't flat.
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/water-water-system-simulation.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/water-water-system-simulation.md
index a710932fc66..fed27795396 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/water-water-system-simulation.md
+++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/water-water-system-simulation.md
@@ -11,54 +11,17 @@ As you modify the simulation inputs the simulation displaces the water mesh.
## Wind and wave types
There are two types of wind in the HDRP water implementation: distant wind and local wind. Local wind produces **Ripples**, small waves that are close together. Distant wind produces **Swells** (for **River, Sea, or Ocean** surface types) or **Agitation** (for **River** surface types), broader waves that are farther apart.
+
+An **Ocean, Sea, or Lake** surface that only has **Swells**. These **Swells** significantly displace the water surface.
-
-
-
-
-
-
-
-
-
-
+
-Here is an **Ocean, Sea, or Lake** surface that only has **Swells**. These **Swells** significantly displace the water surface.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Here is an **Ocean, Sea, or Lake** surface that only has **Ripples**. These **Ripples** do not significantly displace the water surface.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Here is an **Ocean, Sea, or Lake** surface with both Swells and Ripples.
+An **Ocean, Sea, or Lake** surface that only has **Ripples**. These **Ripples** do not significantly displace the water surface.
+
+An **Ocean, Sea, or Lake** surface with both Swells and Ripples.
## Simulation bands
A frequency is a measure of the number of vibrations that pass through a specific point in one second. A band is a specific range of frequencies within a broader spectrum. You may have heard of the FM radio broadcast band, for example.
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/whats-new-13.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/whats-new-13.md
index 5c530728ff5..ab9f99ca182 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/whats-new-13.md
+++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/whats-new-13.md
@@ -20,8 +20,6 @@ See all the available properties in the [scripting reference](xref:UnityEngine.R
#### Lights
-
-
From 13.x, you can access a light IES profile in the editor in the following ways:
* Use [HDLightUtils](xref:UnityEditor.Rendering.HighDefinition.HDLightUtils)
@@ -29,8 +27,6 @@ From 13.x, you can access a light IES profile in the editor in the following way
### Material Variants
-
-
HDRP 13.x supports Material Variants for all Shaders and Shader Graphs. You can use Material Variants to create a set of predefined variations of a Material, in which you can override specific properties.
You can also put a lock on a Material property to prevent child GameObjects from being able to modify the value. To do this:
@@ -75,7 +71,7 @@ The full ACES tonemapper is more resource intensive than the approximation but i
### Depth Of Field
-
+
HDRP 13.x includes optimizations for the physically based depth of field effect that significantly speed up render GPU time, without visibly reducing the image quality. For example, HDRP computes image regions that are out-of-focus at a lower resolution, while in-focus regions keep the full resolution.
diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/whats-new-15.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/whats-new-15.md
index 5f317fcd1a3..c3e706c506e 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/whats-new-15.md
+++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/whats-new-15.md
@@ -5,7 +5,7 @@ This page contains an overview of new features, improvements, and issues resolve
## Added
### Temporal Anti-Aliasing Sharpening Mode
-
+
HDRP 15 adds the following Temporal Anti-Aliasing (TAA) properties:
@@ -19,7 +19,7 @@ HDRP 15 adds the High Quality Line Rendering override that you can use to improv
For more information, refer to [High Quality Line Rendering](Override-High-Quality-Lines.md).
-
+
An example of High Quality Line Rendering's effect on animal fur.
@@ -30,7 +30,7 @@ B: Fur that uses the High Quality Line Renderer.
From HDRP 15, you can enable the **Specular Fade** property to reduce the effect of specular light on Lit and StackLit shaders that receive specular light.
-
+
An example of the effect of the **Specular Fade** property on a sphere.
@@ -40,14 +40,12 @@ B: **Specular Fade** reduces the effect of specular light on the sphere.
To enable this property, open the Project Settings window, select **HDRP Global Settings** and go to **Miscellaneous** > **Specular Fade**.
### Screen Space Lens Flare
-
+
HDRP 15 includes a new [Screen Space Lens Flare](shared/lens-flare/Override-Screen-Space-Lens-Flare.md) post-processing override, in addition to the existing [Lens Flare (SRP)](shared/lens-flare/lens-flare-component.md) component. The override uses what's on the screen to create multiple types of lens flare, based on the texture from the [Bloom](Post-Processing-Bloom.md) override. Screen space lens flares are useful for bright spots in your scene that appear depending on the camera view, for example a bright specular reflection on a shiny metal object, or a bright outside area viewed from a dark indoor area.
### Compute Thickness
-
-
HDRP 15 adds a full-screen pass called Compute Thickness. You can use this to calculate the density of solid or flat GameObjects. This effect improves the appearance of materials that use subsurface scattering or refraction.
For more information, refer to [Compute Thickness](Compute-Thickness.md)
@@ -64,23 +62,11 @@ HDRP 15 adds the following properties to diffusion profiles for Subsurface Scatt
The mixture of two specular lobes replicates the thin, oily layer that covers the skin.
-
-
-The effect of two specular lobes on a subsurface scattering material.
-
-**A**: **Dual Lobe Multiplier** first lobe set to 0.8.
-
-**B**: **Dual Lobe Multiplier** second lobe set to 1.2.
-
-**C**: **Lobe Mix** set to 0.5.
-
-**D**: Final result.
-
For more information, refer to [Diffusion Profile](diffusion-profile-reference.md).
### Adaptive Probe Volumes (APV)
-
+
HDRP 15 makes the following changes to APV properties:
@@ -92,7 +78,7 @@ HDRP 15 makes the following changes to APV properties:
### Water system
-
+
HDRP 15 makes the following improvements and additions to the water system:
@@ -109,7 +95,7 @@ HDRP 15 makes the following improvements and additions to the water system:
### Volumetric Clouds
-
+
HDRP 15 makes the following improvements to [volumetric clouds](create-realistic-clouds-volumetric-clouds.md):
- Adds a third level of noise to achieve even more convincing results.
diff --git a/Packages/com.unity.render-pipelines.high-definition/Editor/Material/UIBlocks/ShaderGraphUIBlock.cs b/Packages/com.unity.render-pipelines.high-definition/Editor/Material/UIBlocks/ShaderGraphUIBlock.cs
index fff2793c637..0834b9e933e 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Editor/Material/UIBlocks/ShaderGraphUIBlock.cs
+++ b/Packages/com.unity.render-pipelines.high-definition/Editor/Material/UIBlocks/ShaderGraphUIBlock.cs
@@ -72,11 +72,11 @@ bool CheckPropertyChanged(MaterialProperty[] properties)
{
for (int i = 0; i < properties.Length; i++)
{
- if (properties[i].type != oldProperties[i].type)
+ if (properties[i].propertyType != oldProperties[i].propertyType)
propertyChanged = true;
if (properties[i].displayName != oldProperties[i].displayName)
propertyChanged = true;
- if (properties[i].flags != oldProperties[i].flags)
+ if (properties[i].propertyFlags != oldProperties[i].propertyFlags)
propertyChanged = true;
if (properties[i].name != oldProperties[i].name)
propertyChanged = true;
diff --git a/Packages/com.unity.render-pipelines.high-definition/Editor/PostProcessing/.buginfo b/Packages/com.unity.render-pipelines.high-definition/Editor/PostProcessing/.buginfo
index d595eb6c6aa..24a842b92f3 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Editor/PostProcessing/.buginfo
+++ b/Packages/com.unity.render-pipelines.high-definition/Editor/PostProcessing/.buginfo
@@ -1 +1 @@
-area: Post-processing and UI Features
\ No newline at end of file
+area: Post-processing and Compositing
\ No newline at end of file
diff --git a/Packages/com.unity.render-pipelines.high-definition/Editor/Wizard/HDWizard.UIElement.cs b/Packages/com.unity.render-pipelines.high-definition/Editor/Wizard/HDWizard.UIElement.cs
index a4cab89d5fa..a85636e2e20 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Editor/Wizard/HDWizard.UIElement.cs
+++ b/Packages/com.unity.render-pipelines.high-definition/Editor/Wizard/HDWizard.UIElement.cs
@@ -400,7 +400,6 @@ public InclusiveModeElement(InclusiveMode mode, string label, string tooltip, HD
var foldout = new HeaderFoldout
{
text = label,
- tooltip = tooltip,
documentationURL = DocumentationInfo.GetPageLink(Documentation.packageName, $"Render-Pipeline-Wizard", $"{mode}Tab")
};
@@ -432,6 +431,7 @@ public InclusiveModeElement(InclusiveMode mode, string label, string tooltip, HD
foldout.value = HDUserSettings.IsOpen(mode);
foldout.RegisterValueChangedCallback(evt => HDUserSettings.SetOpen(mode, evt.newValue));
+ foldout.Q(className: "header-foldout__label").tooltip = tooltip; // Tooltip on the label to ensure the position doesn't change when opening the foldout
Add(foldout);
}
diff --git a/Packages/com.unity.render-pipelines.high-definition/Editor/Wizard/HDWizard.Window.cs b/Packages/com.unity.render-pipelines.high-definition/Editor/Wizard/HDWizard.Window.cs
index 787648d894e..31eefa614f3 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Editor/Wizard/HDWizard.Window.cs
+++ b/Packages/com.unity.render-pipelines.high-definition/Editor/Wizard/HDWizard.Window.cs
@@ -450,7 +450,9 @@ private void CreateGUI()
if (MaterialUpgrader.ProjectFolderContainsNonBuiltinMaterials(
UpgradeStandardShaderMaterials.GetHDUpgraders()))
{
- container.Add(new HelpBox(Style.nonBuiltinMaterialWarning, HelpBoxMessageType.Warning));
+ var nonBuiltinMaterialHelpBox = new HelpBox(Style.nonBuiltinMaterialWarning, HelpBoxMessageType.Warning);
+ nonBuiltinMaterialHelpBox.AddToClassList("NonBuiltinMaterialWarning");
+ container.Add(nonBuiltinMaterialHelpBox);
}
container.Add(CreateLargeButton(Style.migrateAllButton, UpgradeStandardShaderMaterials.UpgradeMaterialsProject));
@@ -524,6 +526,7 @@ VisualElement CreateInstallConfigPackageArea()
UpdateDisplayOfConfigPackageArea(ConfigPackageState.Present));
});
m_InstallConfigPackageHelpbox = new HelpBox(Style.installConfigPackageInfoInCheck, HelpBoxMessageType.Info);
+ m_InstallConfigPackageHelpbox.AddToClassList("InstallConfigPackageMessage");
m_InstallConfigPackageHelpboxLabel = m_InstallConfigPackageHelpbox.Q();
area.Add(m_InstallConfigPackageButton);
area.Add(m_InstallConfigPackageHelpbox);
diff --git a/Packages/com.unity.render-pipelines.high-definition/Editor/Wizard/USS/Wizard.uss b/Packages/com.unity.render-pipelines.high-definition/Editor/Wizard/USS/Wizard.uss
index d1871ce6c7c..87c64854f8d 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Editor/Wizard/USS/Wizard.uss
+++ b/Packages/com.unity.render-pipelines.high-definition/Editor/Wizard/USS/Wizard.uss
@@ -142,3 +142,20 @@
{
margin-top: 3px;
}
+
+.NonBuiltinMaterialWarning
+{
+ margin-left: 20px;
+}
+
+.InstallConfigPackageMessage
+{
+ margin-left: 20px;
+}
+
+HelpBox
+{
+ margin-top: 4px;
+ margin-bottom: 4px;
+ margin-right: 12px;
+}
diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/GlobalIllumination.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/GlobalIllumination.cs
index 85d2e17afbd..9b1e44932e1 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/GlobalIllumination.cs
+++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/GlobalIllumination.cs
@@ -8,7 +8,7 @@ namespace UnityEngine.Rendering.HighDefinition
///
[Serializable, VolumeComponentMenu("Lighting/Screen Space Global Illumination")]
[SupportedOnRenderPipeline(typeof(HDRenderPipelineAsset))]
- [HDRPHelpURL("Ray-Traced-Global-Illumination")]
+ [HDRPHelpURL("Override-Screen-Space-GI")]
public sealed class GlobalIllumination : VolumeComponentWithQuality
{
bool UsesQualityMode()
diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Reflection/ReflectionProbeTextureCache.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Reflection/ReflectionProbeTextureCache.cs
index 970e72a836d..615bc768738 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Reflection/ReflectionProbeTextureCache.cs
+++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Reflection/ReflectionProbeTextureCache.cs
@@ -641,8 +641,8 @@ public Vector4 FetchPlanarReflectionProbe(CommandBuffer cmd, HDProbe probe, ref
public void ReserveReflectionProbeSlot(HDProbe probe)
{
Texture texture = probe.texture;
- Assert.IsTrue(texture.width == texture.height);
- Assert.IsTrue(texture.dimension == TextureDimension.Tex2D || texture.dimension == TextureDimension.Cube);
+ Assert.IsTrue(texture.width == texture.height, "Reflection probe should be a square texture. Check the import settings of the texture, or your Texture Importer presets");
+ Assert.IsTrue(texture.dimension == TextureDimension.Tex2D || texture.dimension == TextureDimension.Cube, "Reflection probe should be a 2D or Cube texture. Check the import settings of the texture, or your Texture Importer presets");
int textureId = GetTextureIDAndSize(probe, out int textureSize);
diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Shadow/HDShadowAlgorithms.hlsl b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Shadow/HDShadowAlgorithms.hlsl
index 61556bdfd96..c5882372e0e 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Shadow/HDShadowAlgorithms.hlsl
+++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Shadow/HDShadowAlgorithms.hlsl
@@ -7,9 +7,15 @@
// For backward compatibility
#ifdef SHADOW_LOW
+#ifndef PUNCTUAL_SHADOW_LOW
#define PUNCTUAL_SHADOW_LOW
+#endif
+#ifndef DIRECTIONAL_SHADOW_LOW
#define DIRECTIONAL_SHADOW_LOW
#endif
+#endif
+
+
// For non-fragment shaders we might skip the variant with the quality as shadows might not be used, if that's the case define something just to make the compiler happy in case the quality is not defined.
#ifndef SHADER_STAGE_FRAGMENT
diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/AxF/AxF.shader b/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/AxF/AxF.shader
index ded9cab9253..4406553f41f 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/AxF/AxF.shader
+++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/AxF/AxF.shader
@@ -512,7 +512,7 @@ Shader "HDRP/AxF"
#pragma multi_compile _ DEBUG_DISPLAY
#pragma multi_compile _ LIGHTMAP_ON
- #pragma multi_compile_fragment _ LIGHTMAP_BICUBIC_SAMPLING
+ #pragma multi_compile _ LIGHTMAP_BICUBIC_SAMPLING
#pragma multi_compile _ DIRLIGHTMAP_COMBINED
#pragma multi_compile _ DYNAMICLIGHTMAP_ON
#pragma multi_compile _ USE_LEGACY_LIGHTMAPS
diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Decal/DecalData.hlsl b/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Decal/DecalData.hlsl
index d4fa1b483a7..438f4fe932e 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Decal/DecalData.hlsl
+++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Decal/DecalData.hlsl
@@ -135,7 +135,7 @@ void GetSurfaceData(FragInputs input, float3 V, PositionInputs posInput, float a
#else // DECAL_SURFACE_GRADIENT
#ifdef _NORMALMAP
- float3 normalTS = UnpackNormalmapRGorAG(SAMPLE_TEXTURE2D(_NormalMap, sampler_NormalMap, texCoords));
+ float3 normalTS = UnpackNormalMapRGorAG(SAMPLE_TEXTURE2D(_NormalMap, sampler_NormalMap, texCoords));
#else
float3 normalTS = float3(0.0, 0.0, 1.0);
#endif
diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Decal/DecalUtilities.hlsl b/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Decal/DecalUtilities.hlsl
index 13abc7d4883..6e0892a17d4 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Decal/DecalUtilities.hlsl
+++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Decal/DecalUtilities.hlsl
@@ -181,7 +181,7 @@ void EvalDecalMask( PositionInputs posInput, float3 vtxNormal, float3 positionRW
float2 deriv = UnpackDerivativeNormalRGorAG(atlasData);
src.xyz = SurfaceGradientFromTBN(deriv, tangentToWorld[0], tangentToWorld[1]);
#else
- normalTS = UnpackNormalmapRGorAG(atlasData);
+ normalTS = UnpackNormalMapRGorAG(atlasData);
#endif
}
diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/LayeredLit/LayeredLit.shader b/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/LayeredLit/LayeredLit.shader
index 0a3e4dd04d4..1195e8f0bee 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/LayeredLit/LayeredLit.shader
+++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/LayeredLit/LayeredLit.shader
@@ -680,7 +680,7 @@ Shader "HDRP/LayeredLit"
#pragma multi_compile _ DEBUG_DISPLAY
#pragma multi_compile _ LIGHTMAP_ON
- #pragma multi_compile_fragment _ LIGHTMAP_BICUBIC_SAMPLING
+ #pragma multi_compile _ LIGHTMAP_BICUBIC_SAMPLING
#pragma multi_compile _ DIRLIGHTMAP_COMBINED
#pragma multi_compile _ DYNAMICLIGHTMAP_ON
#pragma multi_compile _ USE_LEGACY_LIGHTMAPS
@@ -1064,7 +1064,7 @@ Shader "HDRP/LayeredLit"
#pragma multi_compile _ DEBUG_DISPLAY
#pragma multi_compile _ LIGHTMAP_ON
- #pragma multi_compile_fragment _ LIGHTMAP_BICUBIC_SAMPLING
+ #pragma multi_compile _ LIGHTMAP_BICUBIC_SAMPLING
#pragma multi_compile _ DIRLIGHTMAP_COMBINED
#pragma multi_compile _ DYNAMICLIGHTMAP_ON
#pragma multi_compile _ USE_LEGACY_LIGHTMAPS
diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/LayeredLit/LayeredLitTessellation.shader b/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/LayeredLit/LayeredLitTessellation.shader
index 18e59d72b6c..2517df4c3ee 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/LayeredLit/LayeredLitTessellation.shader
+++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/LayeredLit/LayeredLitTessellation.shader
@@ -721,7 +721,7 @@ Shader "HDRP/LayeredLitTessellation"
#pragma multi_compile _ DEBUG_DISPLAY
#pragma multi_compile _ LIGHTMAP_ON
- #pragma multi_compile_fragment _ LIGHTMAP_BICUBIC_SAMPLING
+ #pragma multi_compile _ LIGHTMAP_BICUBIC_SAMPLING
#pragma multi_compile _ DIRLIGHTMAP_COMBINED
#pragma multi_compile _ DYNAMICLIGHTMAP_ON
#pragma multi_compile _ USE_LEGACY_LIGHTMAPS
@@ -1117,7 +1117,7 @@ Shader "HDRP/LayeredLitTessellation"
#pragma multi_compile _ DEBUG_DISPLAY
#pragma multi_compile _ LIGHTMAP_ON
- #pragma multi_compile_fragment _ LIGHTMAP_BICUBIC_SAMPLING
+ #pragma multi_compile _ LIGHTMAP_BICUBIC_SAMPLING
#pragma multi_compile _ DIRLIGHTMAP_COMBINED
#pragma multi_compile _ DYNAMICLIGHTMAP_ON
#pragma multi_compile _ USE_LEGACY_LIGHTMAPS
diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.shader b/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.shader
index 6ac3791950b..77386cd71ea 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.shader
+++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.shader
@@ -459,7 +459,7 @@ Shader "HDRP/Lit"
#pragma multi_compile _ DEBUG_DISPLAY
// 'Optimize Mesh Data' strip away attribute uv1/uv2 without the keyword set on the vertex stage.
#pragma multi_compile _ LIGHTMAP_ON
- #pragma multi_compile_fragment _ LIGHTMAP_BICUBIC_SAMPLING
+ #pragma multi_compile _ LIGHTMAP_BICUBIC_SAMPLING
// Both DIRLIGHTMAP_COMBINED and DYNAMICLIGHTMAP_ON must have vertex frequency to be able to include UV2 in player
// If DIRLIGHTMAP_COMBINED isn't define, then DYNAMICLIGHTMAP_ON will not. This is hardcoded in C++
// For ShaderGraph we don't have this issue as UV2 are always included.
@@ -861,7 +861,7 @@ Shader "HDRP/Lit"
#pragma multi_compile _ DEBUG_DISPLAY
#pragma multi_compile _ LIGHTMAP_ON
- #pragma multi_compile_fragment _ LIGHTMAP_BICUBIC_SAMPLING
+ #pragma multi_compile _ LIGHTMAP_BICUBIC_SAMPLING
#pragma multi_compile _ DIRLIGHTMAP_COMBINED
#pragma multi_compile _ DYNAMICLIGHTMAP_ON
#pragma multi_compile _ USE_LEGACY_LIGHTMAPS
@@ -989,7 +989,7 @@ Shader "HDRP/Lit"
#pragma multi_compile _ DEBUG_DISPLAY
#pragma multi_compile _ LIGHTMAP_ON
- #pragma multi_compile_fragment _ LIGHTMAP_BICUBIC_SAMPLING
+ #pragma multi_compile _ LIGHTMAP_BICUBIC_SAMPLING
#pragma multi_compile _ DIRLIGHTMAP_COMBINED
#pragma multi_compile _ DYNAMICLIGHTMAP_ON
#pragma multi_compile _ USE_LEGACY_LIGHTMAPS
@@ -1045,8 +1045,10 @@ Shader "HDRP/Lit"
#ifndef SHADER_STAGE_FRAGMENT
#define SHADOW_LOW
+ #ifndef USE_FPTL_LIGHTLIST
#define USE_FPTL_LIGHTLIST
#endif
+ #endif
#define SHADERPASS SHADERPASS_FORWARD
// In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI)
diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitDataIndividualLayer.hlsl b/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitDataIndividualLayer.hlsl
index 8fda2e5454f..b5525553365 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitDataIndividualLayer.hlsl
+++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitDataIndividualLayer.hlsl
@@ -312,7 +312,7 @@ float ADD_IDX(GetSurfaceData)(FragInputs input, LayerTexCoord layerTexCoord, out
#ifdef _TANGENTMAP
#ifdef _NORMALMAP_TANGENT_SPACE_IDX // Normal and tangent use same space
// Tangent space vectors always use only 2 channels.
- float3 tangentTS = UnpackNormalmapRGorAG(SAMPLE_UVMAPPING_TEXTURE2D(_TangentMap, sampler_TangentMap, layerTexCoord.base), 1.0);
+ float3 tangentTS = UnpackNormalMapRGorAG(SAMPLE_UVMAPPING_TEXTURE2D(_TangentMap, sampler_TangentMap, layerTexCoord.base), 1.0);
surfaceData.tangentWS = TransformTangentToWorld(tangentTS, input.tangentToWorld);
#else // Object space
// Note: There is no such a thing like triplanar with object space normal, so we call directly 2D function
diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitTessellation.shader b/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitTessellation.shader
index e08af8884b3..64bb9e09131 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitTessellation.shader
+++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitTessellation.shader
@@ -480,7 +480,7 @@ Shader "HDRP/LitTessellation"
#pragma multi_compile _ DEBUG_DISPLAY
#pragma multi_compile _ LIGHTMAP_ON
- #pragma multi_compile_fragment _ LIGHTMAP_BICUBIC_SAMPLING
+ #pragma multi_compile _ LIGHTMAP_BICUBIC_SAMPLING
#pragma multi_compile _ DIRLIGHTMAP_COMBINED
#pragma multi_compile _ DYNAMICLIGHTMAP_ON
#pragma multi_compile _ USE_LEGACY_LIGHTMAPS
@@ -889,7 +889,7 @@ Shader "HDRP/LitTessellation"
#pragma multi_compile _ DEBUG_DISPLAY
#pragma multi_compile _ LIGHTMAP_ON
- #pragma multi_compile_fragment _ LIGHTMAP_BICUBIC_SAMPLING
+ #pragma multi_compile _ LIGHTMAP_BICUBIC_SAMPLING
#pragma multi_compile _ DIRLIGHTMAP_COMBINED
#pragma multi_compile _ DYNAMICLIGHTMAP_ON
#pragma multi_compile _ USE_LEGACY_LIGHTMAPS
@@ -1017,7 +1017,7 @@ Shader "HDRP/LitTessellation"
#pragma multi_compile _ DEBUG_DISPLAY
#pragma multi_compile _ LIGHTMAP_ON
- #pragma multi_compile_fragment _ LIGHTMAP_BICUBIC_SAMPLING
+ #pragma multi_compile _ LIGHTMAP_BICUBIC_SAMPLING
#pragma multi_compile _ DIRLIGHTMAP_COMBINED
#pragma multi_compile _ DYNAMICLIGHTMAP_ON
#pragma multi_compile _ USE_LEGACY_LIGHTMAPS
diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/TerrainLit/TerrainLit.shader b/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/TerrainLit/TerrainLit.shader
index dafe0c53ab1..b774c332c80 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/TerrainLit/TerrainLit.shader
+++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/TerrainLit/TerrainLit.shader
@@ -133,7 +133,7 @@ Shader "HDRP/TerrainLit"
#pragma multi_compile _ DEBUG_DISPLAY
#pragma multi_compile _ LIGHTMAP_ON
- #pragma multi_compile_fragment _ LIGHTMAP_BICUBIC_SAMPLING
+ #pragma multi_compile _ LIGHTMAP_BICUBIC_SAMPLING
#pragma multi_compile _ DIRLIGHTMAP_COMBINED
#pragma multi_compile _ DYNAMICLIGHTMAP_ON
#pragma multi_compile_fragment _ SHADOWS_SHADOWMASK
@@ -289,7 +289,7 @@ Shader "HDRP/TerrainLit"
#pragma multi_compile _ DEBUG_DISPLAY
#pragma multi_compile _ LIGHTMAP_ON
- #pragma multi_compile_fragment _ LIGHTMAP_BICUBIC_SAMPLING
+ #pragma multi_compile _ LIGHTMAP_BICUBIC_SAMPLING
#pragma multi_compile _ DIRLIGHTMAP_COMBINED
#pragma multi_compile _ DYNAMICLIGHTMAP_ON
#pragma multi_compile_fragment _ SHADOWS_SHADOWMASK
diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/TerrainLit/TerrainLit_Basemap.shader b/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/TerrainLit/TerrainLit_Basemap.shader
index 3f54cecba37..95b1f98874c 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/TerrainLit/TerrainLit_Basemap.shader
+++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/TerrainLit/TerrainLit_Basemap.shader
@@ -89,7 +89,7 @@ Shader "Hidden/HDRP/TerrainLit_Basemap"
#pragma multi_compile _ DEBUG_DISPLAY
#pragma multi_compile _ LIGHTMAP_ON
- #pragma multi_compile_fragment _ LIGHTMAP_BICUBIC_SAMPLING
+ #pragma multi_compile _ LIGHTMAP_BICUBIC_SAMPLING
#pragma multi_compile _ DIRLIGHTMAP_COMBINED
#pragma multi_compile _ DYNAMICLIGHTMAP_ON
#pragma multi_compile_fragment _ SHADOWS_SHADOWMASK
@@ -228,7 +228,7 @@ Shader "Hidden/HDRP/TerrainLit_Basemap"
#pragma multi_compile _ DEBUG_DISPLAY
#pragma multi_compile _ LIGHTMAP_ON
- #pragma multi_compile_fragment _ LIGHTMAP_BICUBIC_SAMPLING
+ #pragma multi_compile _ LIGHTMAP_BICUBIC_SAMPLING
#pragma multi_compile _ DIRLIGHTMAP_COMBINED
#pragma multi_compile _ DYNAMICLIGHTMAP_ON
#pragma multi_compile_fragment _ SHADOWS_SHADOWMASK
diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/TerrainLit/TerrainLit_Splatmap.hlsl b/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/TerrainLit/TerrainLit_Splatmap.hlsl
index 16c16de5694..1ce8500babe 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/TerrainLit/TerrainLit_Splatmap.hlsl
+++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/TerrainLit/TerrainLit_Splatmap.hlsl
@@ -55,7 +55,7 @@ float3 SampleNormalGrad(TEXTURE2D_PARAM(textureName, samplerName), float2 uv, fl
#ifdef UNITY_NO_DXT5nm
return UnpackNormalRGB(nrm, scale);
#else
- return UnpackNormalmapRGorAG(nrm, scale);
+ return UnpackNormalMapRGorAG(nrm, scale);
#endif
#endif
}
diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/PostProcessing/.buginfo b/Packages/com.unity.render-pipelines.high-definition/Runtime/PostProcessing/.buginfo
index d595eb6c6aa..24a842b92f3 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Runtime/PostProcessing/.buginfo
+++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/PostProcessing/.buginfo
@@ -1 +1 @@
-area: Post-processing and UI Features
\ No newline at end of file
+area: Post-processing and Compositing
\ No newline at end of file
diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDRenderPipeline.Prepass.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDRenderPipeline.Prepass.cs
index a782b175c93..4e3cb5b839d 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDRenderPipeline.Prepass.cs
+++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDRenderPipeline.Prepass.cs
@@ -28,6 +28,8 @@ public partial class HDRenderPipeline
const int m_MaxXRViewsCount = 4;
+ const int kIntelVendorId = 0x8086;
+
void InitializePrepass(HDRenderPipelineAsset hdAsset)
{
m_MSAAResolveMaterial = CoreUtils.CreateEngineMaterial(runtimeShaders.depthValuesPS);
@@ -1407,7 +1409,7 @@ void DecalNormalPatch(RenderGraph renderGraph, HDCamera hdCamera, ref PrepassOut
{
// Integrated Intel GPU on Mac don't support the texture format use for normal (RGBA_8UNORM) for SetRandomWriteTarget
// So on Metal for now we don't patch normal buffer if we detect an intel GPU
- if (SystemInfo.graphicsDeviceType == GraphicsDeviceType.Metal && SystemInfo.graphicsDeviceName.Contains("Intel"))
+ if (SystemInfo.graphicsDeviceType == GraphicsDeviceType.Metal && SystemInfo.graphicsDeviceVendorID == kIntelVendorId)
{
return;
}
diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Settings/LookDevVolumeProfileSettings.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/Settings/LookDevVolumeProfileSettings.cs
index 0ff3a3c7794..99691e07873 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Settings/LookDevVolumeProfileSettings.cs
+++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Settings/LookDevVolumeProfileSettings.cs
@@ -70,13 +70,12 @@ void IRenderPipelineGraphicsSettings.Reset()
if (UnityEditor.Rendering.EditorGraphicsSettings.TryGetRenderPipelineSettingsForPipeline(out var rpgs))
{
//UUM-100350
- //For some reason, when the one in the HDRP template is modified, all its components are nullified instead of replaced.
- //Removing it fully and creating it solve the issue.
- string path = VolumeUtils.BuildDefaultNameForVolumeProfile(rpgs.lookDevVolumeProfile);
- if (UnityEditor.AssetDatabase.AssetPathExists(path))
- UnityEditor.AssetDatabase.DeleteAsset(path);
-
- volumeProfile = VolumeUtils.CopyVolumeProfileFromResourcesToAssets(rpgs.lookDevVolumeProfile);
+ //When opening the new HDRP project from the template the first time, the global settings is created and the population of IRenderPipelineGraphicsSettings
+ //will call this Reset() method. At this time, the copied item will appear ok but will be seen as null soon after. This lead to errors when opening the
+ //inspector of the LookDev's VolumeProfile (at the creation of Editors for VolumeComponent). Closing and opening the project would make this issue disappear.
+ //This asset data base manipulation issue disappear if we delay it.
+ UnityEditor.EditorApplication.delayCall += () =>
+ volumeProfile = VolumeUtils.CopyVolumeProfileFromResourcesToAssets(rpgs.lookDevVolumeProfile);
}
#endif
}
diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Utilities/.buginfo b/Packages/com.unity.render-pipelines.high-definition/Runtime/Utilities/.buginfo
index a09f37773d8..7471a30fb02 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Utilities/.buginfo
+++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Utilities/.buginfo
@@ -2,4 +2,4 @@ Workflow:
when:
path:
- ^.*Volume?.*$
- area: SRP Workflow
\ No newline at end of file
+ area: SRP Settings
diff --git a/Packages/com.unity.render-pipelines.high-definition/Samples~/Environment Samples/Environment.unity b/Packages/com.unity.render-pipelines.high-definition/Samples~/Environment Samples/Environment.unity
index 17389c1f286..d2b4338bb8d 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Samples~/Environment Samples/Environment.unity
+++ b/Packages/com.unity.render-pipelines.high-definition/Samples~/Environment Samples/Environment.unity
@@ -42,7 +42,8 @@ RenderSettings:
--- !u!157 &3
LightmapSettings:
m_ObjectHideFlags: 0
- serializedVersion: 12
+ serializedVersion: 13
+ m_BakeOnSceneLoad: 0
m_GISettings:
serializedVersion: 2
m_BounceScale: 1
@@ -92,10 +93,8 @@ LightmapSettings:
m_ExportTrainingData: 0
m_TrainingDataDestination: TrainingData
m_LightProbeSampleCountMultiplier: 4
- m_LightingDataAsset: {fileID: 112000000, guid: 6005c3d0cb630ac479b03290cefa43ce,
- type: 2}
- m_LightingSettings: {fileID: 4890085278179872738, guid: 8c826231a086e5a4081d69acdf85086c,
- type: 2}
+ m_LightingDataAsset: {fileID: 112000000, guid: 6005c3d0cb630ac479b03290cefa43ce, type: 2}
+ m_LightingSettings: {fileID: 4890085278179872738, guid: 8c826231a086e5a4081d69acdf85086c, type: 2}
--- !u!196 &4
NavMeshSettings:
serializedVersion: 2
@@ -120,21 +119,6 @@ NavMeshSettings:
debug:
m_Flags: 0
m_NavMeshData: {fileID: 0}
---- !u!115 &56900744
-MonoScript:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_Name:
- serializedVersion: 7
- m_DefaultReferences: {}
- m_Icon: {fileID: 0}
- m_Type: 2
- m_ExecutionOrder: 0
- m_ClassName: SceneObjectIDMapSceneAsset
- m_Namespace: UnityEngine.Experimental.Rendering.HDPipeline
- m_AssemblyName:
--- !u!1 &87711811
GameObject:
m_ObjectHideFlags: 0
@@ -257,6 +241,11 @@ MonoBehaviour:
m_LightUnit: 0
m_LuxAtDistance: 1
m_Intensity: 0
+ m_Version: 13
+ m_ObsoleteShadowResolutionTier: 1
+ m_ObsoleteUseShadowQualitySettings: 0
+ m_ObsoleteCustomShadowResolution: 512
+ m_ObsoleteContactShadows: 0
m_InnerSpotPercent: 0
m_SpotIESCutoffPercent: 100
m_LightDimmer: 1
@@ -375,11 +364,6 @@ MonoBehaviour:
m_AreaLightEmissiveMeshShadowCastingMode: 0
m_AreaLightEmissiveMeshMotionVectorGenerationMode: 0
m_AreaLightEmissiveMeshLayer: -1
- m_Version: 13
- m_ObsoleteShadowResolutionTier: 1
- m_ObsoleteUseShadowQualitySettings: 0
- m_ObsoleteCustomShadowResolution: 512
- m_ObsoleteContactShadows: 0
--- !u!108 &87711814
Light:
m_ObjectHideFlags: 0
@@ -475,7 +459,7 @@ MonoBehaviour:
m_EditorClassIdentifier:
m_LensFlareData: {fileID: 11400000, guid: 72012a4fc3d5256459a391564bfec40e, type: 2}
version: 0
- intensity: 1
+ intensity: 0
maxAttenuationDistance: 100
maxAttenuationScale: 100
distanceAttenuationCurve:
@@ -636,7 +620,7 @@ GameObject:
- component: {fileID: 140650421}
- component: {fileID: 140650420}
m_Layer: 0
- m_Name: Environement Sample Showcase
+ m_Name: Environment Sample Showcase
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@@ -663,8 +647,7 @@ MonoBehaviour:
highlightDarkColor: {r: 1, g: 0.89, b: 0.45, a: 1}
codeLightColor: {r: 0.76, g: 0.41, b: 0, a: 1}
codeDarkColor: {r: 0.91, g: 0.57, b: 0.17, a: 1}
- SamplesDescriptionsJson: {fileID: 4900000, guid: a3edb1dce6b83f24e99a418dd97ac23b,
- type: 3}
+ SamplesDescriptionsJson: {fileID: 4900000, guid: a3edb1dce6b83f24e99a418dd97ac23b, type: 3}
samplesPrefabs:
- {fileID: 6220992063172374777, guid: b3679846edcc58c4b88f2e33a3456c79, type: 3}
- {fileID: 4615487114326440942, guid: cda8d3042e9e583449bd044a1adaa286, type: 3}
@@ -735,6 +718,11 @@ MonoBehaviour:
m_LightUnit: 0
m_LuxAtDistance: 1
m_Intensity: 0
+ m_Version: 13
+ m_ObsoleteShadowResolutionTier: 1
+ m_ObsoleteUseShadowQualitySettings: 0
+ m_ObsoleteCustomShadowResolution: 512
+ m_ObsoleteContactShadows: 0
m_InnerSpotPercent: 0
m_SpotIESCutoffPercent: 100
m_LightDimmer: 0
@@ -853,11 +841,6 @@ MonoBehaviour:
m_AreaLightEmissiveMeshShadowCastingMode: 0
m_AreaLightEmissiveMeshMotionVectorGenerationMode: 0
m_AreaLightEmissiveMeshLayer: -1
- m_Version: 13
- m_ObsoleteShadowResolutionTier: 1
- m_ObsoleteUseShadowQualitySettings: 0
- m_ObsoleteCustomShadowResolution: 512
- m_ObsoleteContactShadows: 0
--- !u!108 &233041084
Light:
m_ObjectHideFlags: 0
@@ -1094,83 +1077,67 @@ PrefabInstance:
serializedVersion: 3
m_TransformParent: {fileID: 1413190315}
m_Modifications:
- - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d,
- type: 3}
+ - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, type: 3}
propertyPath: m_LocalScale.x
value: 1.245375
objectReference: {fileID: 0}
- - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d,
- type: 3}
+ - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, type: 3}
propertyPath: m_LocalScale.y
value: 2.05
objectReference: {fileID: 0}
- - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d,
- type: 3}
+ - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, type: 3}
propertyPath: m_LocalScale.z
value: 2.10125
objectReference: {fileID: 0}
- - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d,
- type: 3}
+ - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, type: 3}
propertyPath: m_LocalPosition.x
value: 2324
objectReference: {fileID: 0}
- - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d,
- type: 3}
+ - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, type: 3}
propertyPath: m_LocalPosition.y
value: -149
objectReference: {fileID: 0}
- - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d,
- type: 3}
+ - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, type: 3}
propertyPath: m_LocalPosition.z
value: -574
objectReference: {fileID: 0}
- - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d,
- type: 3}
+ - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, type: 3}
propertyPath: m_LocalRotation.w
value: 0.6452224
objectReference: {fileID: 0}
- - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d,
- type: 3}
+ - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, type: 3}
propertyPath: m_LocalRotation.x
value: -0.6452229
objectReference: {fileID: 0}
- - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d,
- type: 3}
+ - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, type: 3}
propertyPath: m_LocalRotation.y
value: -0.28928852
objectReference: {fileID: 0}
- - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d,
- type: 3}
+ - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, type: 3}
propertyPath: m_LocalRotation.z
value: -0.2892882
objectReference: {fileID: 0}
- - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d,
- type: 3}
+ - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: -90
objectReference: {fileID: 0}
- - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d,
- type: 3}
+ - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d,
- type: 3}
+ - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: -768.299
objectReference: {fileID: 0}
- - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d,
- type: 3}
+ - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, type: 3}
propertyPath: m_ConstrainProportionsScale
value: 1
objectReference: {fileID: 0}
- - target: {fileID: -7511558181221131132, guid: ed3cbb58bf190444981f2540feb4056d,
- type: 3}
+ - target: {fileID: -7511558181221131132, guid: ed3cbb58bf190444981f2540feb4056d, type: 3}
propertyPath: 'm_Materials.Array.data[0]'
value:
objectReference: {fileID: 2100000, guid: 39f549d48bf0a804ca76258c1abf1cdf, type: 2}
- - target: {fileID: 919132149155446097, guid: ed3cbb58bf190444981f2540feb4056d,
- type: 3}
+ - target: {fileID: 919132149155446097, guid: ed3cbb58bf190444981f2540feb4056d, type: 3}
propertyPath: m_Name
value: Island
objectReference: {fileID: 0}
@@ -1181,25 +1148,9 @@ PrefabInstance:
m_SourcePrefab: {fileID: 100100000, guid: ed3cbb58bf190444981f2540feb4056d, type: 3}
--- !u!4 &325810463 stripped
Transform:
- m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d,
- type: 3}
+ m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, type: 3}
m_PrefabInstance: {fileID: 325810462}
m_PrefabAsset: {fileID: 0}
---- !u!115 &394898109
-MonoScript:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_Name:
- serializedVersion: 7
- m_DefaultReferences: {}
- m_Icon: {fileID: 0}
- m_Type: 2
- m_ExecutionOrder: 0
- m_ClassName: SceneObjectIDMapSceneAsset
- m_Namespace: UnityEngine.Rendering.HighDefinition
- m_AssemblyName:
--- !u!1 &491924231
GameObject:
m_ObjectHideFlags: 0
@@ -1249,94 +1200,6 @@ Transform:
m_Children: []
m_Father: {fileID: 140650421}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!1 &728537253
-GameObject:
- m_ObjectHideFlags: 19
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 728537255}
- - component: {fileID: 728537254}
- m_Layer: 0
- m_Name: SceneIDMap
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!114 &728537254
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 728537253}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 56900744}
- m_Name:
- m_EditorClassIdentifier:
---- !u!4 &728537255
-Transform:
- m_ObjectHideFlags: 19
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 728537253}
- serializedVersion: 2
- m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
- m_LocalPosition: {x: 0, y: 0, z: 0}
- m_LocalScale: {x: 1, y: 1, z: 1}
- m_ConstrainProportionsScale: 0
- m_Children: []
- m_Father: {fileID: 0}
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!1 &835913245
-GameObject:
- m_ObjectHideFlags: 19
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 835913247}
- - component: {fileID: 835913246}
- m_Layer: 0
- m_Name: SceneIDMap
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!114 &835913246
-MonoBehaviour:
- m_ObjectHideFlags: 19
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 835913245}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 394898109}
- m_Name:
- m_EditorClassIdentifier:
---- !u!4 &835913247
-Transform:
- m_ObjectHideFlags: 19
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 835913245}
- serializedVersion: 2
- m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
- m_LocalPosition: {x: 0, y: 0, z: 0}
- m_LocalScale: {x: 1, y: 1, z: 1}
- m_ConstrainProportionsScale: 0
- m_Children: []
- m_Father: {fileID: 0}
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1039289122
GameObject:
m_ObjectHideFlags: 0
@@ -1504,61 +1367,15 @@ MonoBehaviour:
largeBand0FadeToggle: 1
largeBand1FadeToggle: 1
ripplesFadeToggle: 1
- surfaceType: 0
- geometryType: 3
- meshRenderers: []
- timeMultiplier: 1
- scriptInteractions: 0
- cpuEvaluateRipples: 0
- customMaterial: {fileID: 0}
- startSmoothness: 0.95
- endSmoothness: 0.85
- smoothnessFadeStart: 100
- smoothnessFadeDistance: 500
- tessellation: 0
- maxTessellationFactor: 3
- tessellationFactorFadeStart: 150
- tessellationFactorFadeRange: 1850
- refractionColor: {r: 0.010022826, g: 0.21404114, b: 0.21404114, a: 1}
- maxRefractionDistance: 0.5
- absorptionDistance: 100
- scatteringColor: {r: 0, g: 0.13286833, b: 0.13286833, a: 1}
- ambientScattering: 0.2
- heightScattering: 0.2
- displacementScattering: 0.1
- directLightTipScattering: 0.6
- directLightBodyScattering: 0.5
- maximumHeightOverride: 0
- caustics: 0
- causticsIntensity: 0.5
- causticsPlaneBlendDistance: 1
- causticsResolution: 256
- causticsBand: 2
- virtualPlaneDistance: 4
- causticsTilingFactor: 1
- causticsDirectionalShadow: 0
- causticsDirectionalShadowDimmer: 0.25
- renderingLayerMask: 1
- debugMode: 0
- waterMaskDebugMode: 0
- waterCurrentDebugMode: 0
- currentDebugMultiplier: 1
- waterFoamDebugMode: 0
- underWater: 0
- volumeBounds: {fileID: 0}
- volumeDepth: 50
- volumeHeight: 0
- volumePrority: 0
- absorptionDistanceMultiplier: 1
- underWaterAmbientProbeContribution: 1
- underWaterScatteringColorMode: 0
- underWaterScatteringColor: {r: 0, g: 0.27, b: 0.23, a: 1}
- underWaterRefraction: 0
+ supportLargeCurrent: 0
+ largeCurrentRes: 512
largeCurrentSpeedValue: 0
largeCurrentMap: {fileID: 0}
largeCurrentRegionExtent: {x: 100, y: 100}
largeCurrentRegionOffset: {x: 0, y: 0}
largeCurrentMapInfluence: 1
+ supportRipplesCurrent: 0
+ ripplesCurrentRes: 512
ripplesCurrentSpeedValue: 0
ripplesCurrentMap: {fileID: 0}
ripplesCurrentRegionExtent: {x: 100, y: 100}
@@ -1566,19 +1383,15 @@ MonoBehaviour:
ripplesCurrentMapInfluence: 1
deformation: 0
deformationRes: 512
- deformationAreaSize: {x: 200, y: 200}
- deformationAreaOffset: {x: 0, y: 0}
foam: 0
foamResolution: 512
- foamAreaSize: {x: 200, y: 200}
- foamAreaOffset: {x: 0, y: 0}
foamPersistenceMultiplier: 0.5
foamCurrentInfluence: 0.6
foamColor: {r: 1, g: 1, b: 1, a: 1}
foamTextureTiling: 0.15
foamSmoothness: 1
- simulationFoam: 1
simulationFoamAmount: 0.2
+ supportSimulationFoamMask: 0
simulationFoamMask: {fileID: 0}
simulationFoamMaskExtent: {x: 100, y: 100}
simulationFoamMaskOffset: {x: 0, y: 0}
@@ -1644,10 +1457,64 @@ MonoBehaviour:
ripplesFadeMode: 1
ripplesFadeStart: 50
ripplesFadeDistance: 200
+ simulationMask: 0
+ maskRes: 512
waterMask: {fileID: 0}
waterMaskRemap: {x: 0, y: 1}
waterMaskExtent: {x: 100, y: 100}
waterMaskOffset: {x: 0, y: 0}
+ surfaceType: 0
+ geometryType: 3
+ meshRenderers: []
+ timeMultiplier: 1
+ scriptInteractions: 0
+ cpuEvaluateRipples: 0
+ customMaterial: {fileID: 0}
+ startSmoothness: 0.95
+ endSmoothness: 0.85
+ smoothnessFadeStart: 100
+ smoothnessFadeDistance: 500
+ tessellation: 0
+ maxTessellationFactor: 3
+ tessellationFactorFadeStart: 150
+ tessellationFactorFadeRange: 1850
+ refractionColor: {r: 0.010022826, g: 0.21404114, b: 0.21404114, a: 1}
+ maxRefractionDistance: 0.5
+ absorptionDistance: 100
+ scatteringColor: {r: 0, g: 0.13286833, b: 0.13286833, a: 1}
+ ambientScattering: 0.2
+ heightScattering: 0.2
+ displacementScattering: 0.1
+ directLightTipScattering: 0.6
+ directLightBodyScattering: 0.5
+ maximumHeightOverride: 0
+ caustics: 0
+ causticsIntensity: 0.5
+ causticsPlaneBlendDistance: 1
+ causticsResolution: 256
+ causticsBand: 2
+ virtualPlaneDistance: 4
+ causticsTilingFactor: 1
+ causticsDirectionalShadow: 0
+ causticsDirectionalShadowDimmer: 0.25
+ renderingLayerMask: 1
+ debugMode: 0
+ waterMaskDebugMode: 0
+ waterCurrentDebugMode: 0
+ currentDebugMultiplier: 1
+ waterFoamDebugMode: 0
+ underWater: 0
+ volumeBounds: {fileID: 0}
+ volumeDepth: 50
+ volumeHeight: 0
+ volumePrority: 0
+ absorptionDistanceMultiplier: 1
+ underWaterAmbientProbeContribution: 1
+ underWaterScatteringColorMode: 0
+ underWaterScatteringColor: {r: 0, g: 0.27, b: 0.23, a: 1}
+ underWaterRefraction: 0
+ decalRegionSize: {x: 200, y: 200}
+ decalRegionAnchor: {fileID: 0}
--- !u!4 &1618829025
Transform:
m_ObjectHideFlags: 0
@@ -1695,6 +1562,53 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 23c1ce4fb46143f46bc5cb5224c934f6, type: 3}
m_Name:
m_EditorClassIdentifier:
+ m_Version: 9
+ m_ObsoleteRenderingPath: 0
+ m_ObsoleteFrameSettings:
+ overrides: 0
+ enableShadow: 0
+ enableContactShadows: 0
+ enableShadowMask: 0
+ enableSSR: 0
+ enableSSAO: 0
+ enableSubsurfaceScattering: 0
+ enableTransmission: 0
+ enableAtmosphericScattering: 0
+ enableVolumetrics: 0
+ enableReprojectionForVolumetrics: 0
+ enableLightLayers: 0
+ enableExposureControl: 1
+ diffuseGlobalDimmer: 0
+ specularGlobalDimmer: 0
+ shaderLitMode: 0
+ enableDepthPrepassWithDeferredRendering: 0
+ enableTransparentPrepass: 0
+ enableMotionVectors: 0
+ enableObjectMotionVectors: 0
+ enableDecals: 0
+ enableRoughRefraction: 0
+ enableTransparentPostpass: 0
+ enableDistortion: 0
+ enablePostprocess: 0
+ enableOpaqueObjects: 0
+ enableTransparentObjects: 0
+ enableRealtimePlanarReflection: 0
+ enableMSAA: 0
+ enableAsyncCompute: 0
+ runLightListAsync: 0
+ runSSRAsync: 0
+ runSSAOAsync: 0
+ runContactShadowsAsync: 0
+ runVolumeVoxelizationAsync: 0
+ lightLoopSettings:
+ overrides: 0
+ enableDeferredTileAndCluster: 0
+ enableComputeLightEvaluation: 0
+ enableComputeLightVariants: 0
+ enableComputeMaterialVariants: 0
+ enableFptlForForwardOpaque: 0
+ enableBigTilePrepass: 0
+ isFptlEnabled: 0
clearColorMode: 0
backgroundColorHDR: {r: 0.025, g: 0.07, b: 0.19, a: 0}
clearDepth: 1
@@ -1775,53 +1689,6 @@ MonoBehaviour:
data1: 0
data2: 17179901952
defaultFrameSettings: 0
- m_Version: 9
- m_ObsoleteRenderingPath: 0
- m_ObsoleteFrameSettings:
- overrides: 0
- enableShadow: 0
- enableContactShadows: 0
- enableShadowMask: 0
- enableSSR: 0
- enableSSAO: 0
- enableSubsurfaceScattering: 0
- enableTransmission: 0
- enableAtmosphericScattering: 0
- enableVolumetrics: 0
- enableReprojectionForVolumetrics: 0
- enableLightLayers: 0
- enableExposureControl: 1
- diffuseGlobalDimmer: 0
- specularGlobalDimmer: 0
- shaderLitMode: 0
- enableDepthPrepassWithDeferredRendering: 0
- enableTransparentPrepass: 0
- enableMotionVectors: 0
- enableObjectMotionVectors: 0
- enableDecals: 0
- enableRoughRefraction: 0
- enableTransparentPostpass: 0
- enableDistortion: 0
- enablePostprocess: 0
- enableOpaqueObjects: 0
- enableTransparentObjects: 0
- enableRealtimePlanarReflection: 0
- enableMSAA: 0
- enableAsyncCompute: 0
- runLightListAsync: 0
- runSSRAsync: 0
- runSSAOAsync: 0
- runContactShadowsAsync: 0
- runVolumeVoxelizationAsync: 0
- lightLoopSettings:
- overrides: 0
- enableDeferredTileAndCluster: 0
- enableComputeLightEvaluation: 0
- enableComputeLightVariants: 0
- enableComputeMaterialVariants: 0
- enableFptlForForwardOpaque: 0
- enableBigTilePrepass: 0
- isFptlEnabled: 0
--- !u!81 &1894943370
AudioListener:
m_ObjectHideFlags: 0
@@ -1916,83 +1783,67 @@ PrefabInstance:
serializedVersion: 3
m_TransformParent: {fileID: 1413190315}
m_Modifications:
- - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d,
- type: 3}
+ - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, type: 3}
propertyPath: m_LocalScale.x
value: 1.215
objectReference: {fileID: 0}
- - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d,
- type: 3}
+ - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, type: 3}
propertyPath: m_LocalScale.y
value: 2
objectReference: {fileID: 0}
- - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d,
- type: 3}
+ - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, type: 3}
propertyPath: m_LocalScale.z
value: 2.05
objectReference: {fileID: 0}
- - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d,
- type: 3}
+ - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, type: 3}
propertyPath: m_LocalPosition.x
value: 3845.45
objectReference: {fileID: 0}
- - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d,
- type: 3}
+ - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, type: 3}
propertyPath: m_LocalPosition.y
value: -231
objectReference: {fileID: 0}
- - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d,
- type: 3}
+ - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, type: 3}
propertyPath: m_LocalPosition.z
value: 13393
objectReference: {fileID: 0}
- - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d,
- type: 3}
+ - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, type: 3}
propertyPath: m_LocalRotation.w
value: -0.69766325
objectReference: {fileID: 0}
- - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d,
- type: 3}
+ - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, type: 3}
propertyPath: m_LocalRotation.x
value: 0.69766325
objectReference: {fileID: 0}
- - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d,
- type: 3}
+ - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, type: 3}
propertyPath: m_LocalRotation.y
value: 0.11517803
objectReference: {fileID: 0}
- - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d,
- type: 3}
+ - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, type: 3}
propertyPath: m_LocalRotation.z
value: 0.11517803
objectReference: {fileID: 0}
- - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d,
- type: 3}
+ - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: -90
objectReference: {fileID: 0}
- - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d,
- type: 3}
+ - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: -277.5
objectReference: {fileID: 0}
- - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d,
- type: 3}
+ - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: -821.249
objectReference: {fileID: 0}
- - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d,
- type: 3}
+ - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, type: 3}
propertyPath: m_ConstrainProportionsScale
value: 1
objectReference: {fileID: 0}
- - target: {fileID: -7511558181221131132, guid: ed3cbb58bf190444981f2540feb4056d,
- type: 3}
+ - target: {fileID: -7511558181221131132, guid: ed3cbb58bf190444981f2540feb4056d, type: 3}
propertyPath: 'm_Materials.Array.data[0]'
value:
objectReference: {fileID: 2100000, guid: 39f549d48bf0a804ca76258c1abf1cdf, type: 2}
- - target: {fileID: 919132149155446097, guid: ed3cbb58bf190444981f2540feb4056d,
- type: 3}
+ - target: {fileID: 919132149155446097, guid: ed3cbb58bf190444981f2540feb4056d, type: 3}
propertyPath: m_Name
value: Far Island
objectReference: {fileID: 0}
@@ -2003,8 +1854,7 @@ PrefabInstance:
m_SourcePrefab: {fileID: 100100000, guid: ed3cbb58bf190444981f2540feb4056d, type: 3}
--- !u!4 &2072971992 stripped
Transform:
- m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d,
- type: 3}
+ m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, type: 3}
m_PrefabInstance: {fileID: 2072971991}
m_PrefabAsset: {fileID: 0}
--- !u!1660057539 &9223372036854775807
@@ -2015,7 +1865,5 @@ SceneRoots:
- {fileID: 1039289124}
- {fileID: 1894943372}
- {fileID: 87711815}
- - {fileID: 728537255}
- - {fileID: 835913247}
- {fileID: 1600578303}
- {fileID: 1413190315}
diff --git a/Packages/com.unity.render-pipelines.high-definition/Samples~/Environment Samples/Resources/Environment Required Settings.asset b/Packages/com.unity.render-pipelines.high-definition/Samples~/Environment Samples/Resources/Environment Required Settings.asset
index e244f11a9f9..d1f70607a2c 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Samples~/Environment Samples/Resources/Environment Required Settings.asset
+++ b/Packages/com.unity.render-pipelines.high-definition/Samples~/Environment Samples/Resources/Environment Required Settings.asset
@@ -16,6 +16,7 @@ MonoBehaviour:
- m_name: Water
m_description: Enable Water rendering.
propertyPath: m_RenderPipelineSettings.supportWater
+ globalSettingsType:
valueType: 0
targetValue: 1
validationType: 0
@@ -24,6 +25,7 @@ MonoBehaviour:
- m_name: Volumetric Clouds
m_description: Enable Volumetric Clouds.
propertyPath: m_RenderPipelineSettings.supportVolumetricClouds
+ globalSettingsType:
valueType: 0
targetValue: 1
validationType: 0
@@ -32,6 +34,7 @@ MonoBehaviour:
- m_name: Volumetric Fog
m_description: Enable Volumetric Fog.
propertyPath: m_RenderPipelineSettings.supportVolumetrics
+ globalSettingsType:
valueType: 0
targetValue: 1
validationType: 0
@@ -40,16 +43,18 @@ MonoBehaviour:
- m_name: Screen Space Reflection
m_description: Enable Screen Space Reflection.
propertyPath: m_RenderPipelineSettings.supportSSR
+ globalSettingsType:
valueType: 0
targetValue: 1
validationType: 0
uiSectionInt: 32
- uiSubSectionInt: 1
+ uiSubSectionInt: 8
- m_name: Screen Space Reflection On Transparent
m_description: Enable Screen Space Reflection On Transparent.
propertyPath: m_RenderPipelineSettings.supportSSRTransparent
+ globalSettingsType:
valueType: 0
targetValue: 1
validationType: 0
uiSectionInt: 32
- uiSubSectionInt: 1
+ uiSubSectionInt: 8
diff --git a/Packages/com.unity.render-pipelines.universal/.buginfo b/Packages/com.unity.render-pipelines.universal/.buginfo
index 407ad9952bb..5605a15ba30 100644
--- a/Packages/com.unity.render-pipelines.universal/.buginfo
+++ b/Packages/com.unity.render-pipelines.universal/.buginfo
@@ -24,8 +24,8 @@ Tools:
- ^.*MaterialUpgrader?.*$
area: Graphics Tools
-post-processing-and-ui-features:
+post-processing-and-compositing:
when:
path:
- ^.*PostProcessPass?.*$
- area: Post-processing and UI Features
+ area: Post-processing and Compositing
\ No newline at end of file
diff --git a/Packages/com.unity.render-pipelines.universal/Editor/ScriptableRendererDataEditor.cs b/Packages/com.unity.render-pipelines.universal/Editor/ScriptableRendererDataEditor.cs
index 784f10b9dd4..bfd644e6d56 100644
--- a/Packages/com.unity.render-pipelines.universal/Editor/ScriptableRendererDataEditor.cs
+++ b/Packages/com.unity.render-pipelines.universal/Editor/ScriptableRendererDataEditor.cs
@@ -202,7 +202,15 @@ private void DrawRendererFeature(int index, ref SerializedProperty renderFeature
if (GUILayout.Button("Attempt Fix", EditorStyles.miniButton))
{
ScriptableRendererData data = target as ScriptableRendererData;
- data.ValidateRendererFeatures();
+ if (!data.ValidateRendererFeatures())
+ {
+ if (EditorUtility.DisplayDialog("Remove Missing Renderer Feature",
+ "This renderer feature script is missing (likely deleted or failed to compile). Do you want to remove it from the list and delete the associated sub-asset?",
+ "Yes", "No"))
+ {
+ data.RemoveMissingRendererFeatures();
+ }
+ }
}
}
}
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 baad9c2659c..469e33e0d53 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
@@ -829,27 +829,10 @@ public bool CanSupportVFX()
if (m_ActiveSubTarget.value == null)
return false;
- if (m_ActiveSubTarget.value is UniversalUnlitSubTarget)
- return true;
-
- if (m_ActiveSubTarget.value is UniversalSixWaySubTarget)
- return true;
-
- if (m_ActiveSubTarget.value is UniversalLitSubTarget)
- return true;
-
- if (m_ActiveSubTarget.value is UniversalSpriteLitSubTarget)
- return true;
-
- if (m_ActiveSubTarget.value is UniversalSpriteUnlitSubTarget)
- return true;
-
- if (m_ActiveSubTarget.value is UniversalSpriteCustomLitSubTarget)
- return true;
+ if (m_ActiveSubTarget.value is UniversalDecalSubTarget)
+ return false;
- //It excludes:
- // - UniversalDecalSubTarget
- return false;
+ return true;
}
public bool SupportsVFX() => CanSupportVFX() && m_SupportVFX;
diff --git a/Packages/com.unity.render-pipelines.universal/Editor/ShaderScriptableStripper.cs b/Packages/com.unity.render-pipelines.universal/Editor/ShaderScriptableStripper.cs
index 7b4dc83ee19..48724312c22 100644
--- a/Packages/com.unity.render-pipelines.universal/Editor/ShaderScriptableStripper.cs
+++ b/Packages/com.unity.render-pipelines.universal/Editor/ShaderScriptableStripper.cs
@@ -111,8 +111,8 @@ public bool PassHasKeyword(LocalKeyword keyword)
Shader m_PaniniProjection = Shader.Find("Hidden/Universal Render Pipeline/PaniniProjection");
Shader m_Bloom = Shader.Find("Hidden/Universal Render Pipeline/Bloom");
Shader m_TerrainLit = Shader.Find("Universal Render Pipeline/Terrain/Lit");
- Shader m_TerrainLitAddPass = Shader.Find("Universal Render Pipeline/Terrain/Lit (Add Pass)");
- Shader m_TerrainLitBasePass = Shader.Find("Universal Render Pipeline/Terrain/Lit (Base Pass)");
+ Shader m_TerrainLitAddPass = Shader.Find("Hidden/Universal Render Pipeline/Terrain/Lit (Add Pass)");
+ Shader m_TerrainLitBasePass = Shader.Find("Hidden/Universal Render Pipeline/Terrain/Lit (Base Pass)");
Shader m_StencilDeferred = Shader.Find("Hidden/Universal Render Pipeline/StencilDeferred");
Shader m_ClusterDeferred = Shader.Find("Hidden/Universal Render Pipeline/ClusterDeferred");
Shader m_UberPostShader = Shader.Find("Hidden/Universal Render Pipeline/UberPost");
diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/2D/Passes/Render2DLightingPass.cs b/Packages/com.unity.render-pipelines.universal/Runtime/2D/Passes/Render2DLightingPass.cs
index 336c8278a57..35015ed8f4a 100644
--- a/Packages/com.unity.render-pipelines.universal/Runtime/2D/Passes/Render2DLightingPass.cs
+++ b/Packages/com.unity.render-pipelines.universal/Runtime/2D/Passes/Render2DLightingPass.cs
@@ -333,7 +333,7 @@ public override void Execute(ScriptableRenderContext context, ref RenderingData
var isLitView = true;
#if UNITY_EDITOR
- if (renderingData.cameraData.isSceneViewCamera)
+ if (renderingData.cameraData.isSceneViewCamera && UnityEditor.SceneView.currentDrawingSceneView != null)
isLitView = UnityEditor.SceneView.currentDrawingSceneView.sceneLighting;
if (renderingData.cameraData.camera.cameraType == CameraType.Preview)
diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/2D/Rendergraph/DrawNormal2DPass.cs b/Packages/com.unity.render-pipelines.universal/Runtime/2D/Rendergraph/DrawNormal2DPass.cs
index 49a99b14a19..a0f2a550f28 100644
--- a/Packages/com.unity.render-pipelines.universal/Runtime/2D/Rendergraph/DrawNormal2DPass.cs
+++ b/Packages/com.unity.render-pipelines.universal/Runtime/2D/Rendergraph/DrawNormal2DPass.cs
@@ -51,7 +51,6 @@ public void Render(RenderGraph graph, ContextContainer frameData, Renderer2DData
builder.AllowPassCulling(false);
builder.SetRenderAttachment(universal2DResourceData.normalsTexture[batchIndex], 0);
- builder.SetRenderAttachmentDepth(commonResourceData.activeDepthTexture, AccessFlags.Write);
var param = new RendererListParams(renderingData.cullResults, drawSettings, filterSettings);
passData.rendererList = graph.CreateRendererList(param);
diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/2D/Rendergraph/DrawRenderer2DPass.cs b/Packages/com.unity.render-pipelines.universal/Runtime/2D/Rendergraph/DrawRenderer2DPass.cs
index 7c034d71162..f2b9b6844b4 100644
--- a/Packages/com.unity.render-pipelines.universal/Runtime/2D/Rendergraph/DrawRenderer2DPass.cs
+++ b/Packages/com.unity.render-pipelines.universal/Runtime/2D/Rendergraph/DrawRenderer2DPass.cs
@@ -89,6 +89,17 @@ public void Render(RenderGraph graph, ContextContainer frameData, Renderer2DData
CommonResourceData commonResourceData = frameData.Get();
var layerBatch = layerBatches[batchIndex];
+ bool isLitView = true;
+
+#if UNITY_EDITOR
+ // Early out for prefabs
+ if (cameraData.isSceneViewCamera && UnityEditor.SceneView.currentDrawingSceneView != null)
+ isLitView = UnityEditor.SceneView.currentDrawingSceneView.sceneLighting;
+
+ // Early out for preview camera
+ if (cameraData.cameraType == CameraType.Preview)
+ isLitView = false;
+#endif
// Preset global light textures for first batch
if (batchIndex == 0)
@@ -102,7 +113,7 @@ public void Render(RenderGraph graph, ContextContainer frameData, Renderer2DData
builder.UseTexture(passData.lightTextures[i]);
}
- SetGlobalLightTextures(graph, builder, passData.lightTextures, cameraData, ref layerBatch, rendererData);
+ SetGlobalLightTextures(graph, builder, passData.lightTextures, ref layerBatch, rendererData, isLitView);
builder.AllowGlobalStateModification(true);
@@ -120,17 +131,8 @@ public void Render(RenderGraph graph, ContextContainer frameData, Renderer2DData
passData.hdrEmulationScale = rendererData.hdrEmulationScale;
passData.isSceneLit = rendererData.lightCullResult.IsSceneLit();
passData.layerUseLights = layerBatch.lightStats.useLights;
-
#if UNITY_EDITOR
- passData.isLitView = true;
-
- // Early out for prefabs
- if (cameraData.isSceneViewCamera && !UnityEditor.SceneView.currentDrawingSceneView.sceneLighting)
- passData.isLitView = false;
-
- // Early out for preview camera
- if (cameraData.cameraType == CameraType.Preview)
- passData.isLitView = false;
+ passData.isLitView = isLitView;
#endif
var drawSettings = CreateDrawingSettings(k_ShaderTags, renderingData, cameraData, lightData, SortingCriteria.CommonTransparent);
@@ -157,7 +159,7 @@ public void Render(RenderGraph graph, ContextContainer frameData, Renderer2DData
// Post set global light textures for next renderer pass
var nextBatch = batchIndex + 1;
if (nextBatch < universal2DResourceData.lightTextures.Length)
- SetGlobalLightTextures(graph, builder, universal2DResourceData.lightTextures[nextBatch], cameraData, ref layerBatches[nextBatch], rendererData);
+ SetGlobalLightTextures(graph, builder, universal2DResourceData.lightTextures[nextBatch], ref layerBatches[nextBatch], rendererData, isLitView);
builder.SetRenderFunc((PassData data, RasterGraphContext context) =>
{
@@ -166,21 +168,9 @@ public void Render(RenderGraph graph, ContextContainer frameData, Renderer2DData
}
}
- void SetGlobalLightTextures(RenderGraph graph, IRasterRenderGraphBuilder builder, TextureHandle[] lightTextures, UniversalCameraData cameraData, ref LayerBatch layerBatch, Renderer2DData rendererData)
+ void SetGlobalLightTextures(RenderGraph graph, IRasterRenderGraphBuilder builder, TextureHandle[] lightTextures, ref LayerBatch layerBatch, Renderer2DData rendererData, bool isLitView)
{
-#if UNITY_EDITOR
- bool isLitView = true;
-
- // Early out for prefabs
- if (cameraData.isSceneViewCamera && !UnityEditor.SceneView.currentDrawingSceneView.sceneLighting)
- isLitView = false;
-
- // Early out for preview camera
- if (cameraData.cameraType == CameraType.Preview)
- isLitView = false;
-
if (isLitView)
-#endif
{
if (layerBatch.lightStats.useLights)
{
diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/2D/Rendergraph/Renderer2DRendergraph.cs b/Packages/com.unity.render-pipelines.universal/Runtime/2D/Rendergraph/Renderer2DRendergraph.cs
index acd0603683e..9f7bcb67f0a 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
@@ -242,7 +242,8 @@ void CreateResources(RenderGraph renderGraph)
var width = (int)Mathf.Max(1, cameraData.cameraTargetDescriptor.width * renderTextureScale);
var height = (int)Mathf.Max(1, cameraData.cameraTargetDescriptor.height * renderTextureScale);
- CreateCameraNormalsTextures(renderGraph, cameraTargetDescriptor);
+ // Normals and Light textures have to be of the same renderTextureScale, to prevent any sampling artifacts during lighting calculations
+ CreateCameraNormalsTextures(renderGraph, cameraTargetDescriptor, width, height);
CreateLightTextures(renderGraph, width, height);
@@ -367,11 +368,11 @@ void CreateResources(RenderGraph renderGraph)
CreateCameraDepthCopyTexture(renderGraph, cameraTargetDescriptor);
}
- void CreateCameraNormalsTextures(RenderGraph renderGraph, RenderTextureDescriptor descriptor)
+ void CreateCameraNormalsTextures(RenderGraph renderGraph, RenderTextureDescriptor descriptor, int width, int height)
{
Universal2DResourceData resourceData = frameData.Get();
- var desc = new RenderTextureDescriptor(descriptor.width, descriptor.height);
+ var desc = new RenderTextureDescriptor(width, height);
desc.graphicsFormat = RendererLighting.GetRenderTextureFormat();
desc.autoGenerateMips = false;
desc.msaaSamples = descriptor.msaaSamples;
diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Debug/DebugHandler.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Debug/DebugHandler.cs
index 5dd9f3492a6..4add3b72b62 100644
--- a/Packages/com.unity.render-pipelines.universal/Runtime/Debug/DebugHandler.cs
+++ b/Packages/com.unity.render-pipelines.universal/Runtime/Debug/DebugHandler.cs
@@ -231,6 +231,7 @@ internal static void ConfigureDepthDescriptorForDebugScreen(ref RenderTextureDes
descriptor.autoGenerateMips = false;
descriptor.useDynamicScale = true;
descriptor.depthStencilFormat = depthStencilFormat;
+ descriptor.graphicsFormat = GraphicsFormat.None;
}
[Conditional("DEVELOPMENT_BUILD"), Conditional("UNITY_EDITOR")]
diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/RenderingUtils.cs b/Packages/com.unity.render-pipelines.universal/Runtime/RenderingUtils.cs
index 973da7166bd..71104868619 100644
--- a/Packages/com.unity.render-pipelines.universal/Runtime/RenderingUtils.cs
+++ b/Packages/com.unity.render-pipelines.universal/Runtime/RenderingUtils.cs
@@ -619,27 +619,29 @@ internal static bool RTHandleNeedsReAlloc(
if (handle.rt.enableShadingRate && handle.rt.graphicsFormat != descriptor.colorFormat)
return true;
- var rtHandleFormat = (handle.rt.descriptor.depthStencilFormat != GraphicsFormat.None) ? handle.rt.descriptor.depthStencilFormat : handle.rt.descriptor.graphicsFormat;
- var isShadowMap = handle.rt.descriptor.shadowSamplingMode != ShadowSamplingMode.None;
+ //We should always prefer to cache data from Native to prevent duplicate copy operations when re-fetching
+ var rtDescriptor = handle.rt.descriptor;
+ var rtHandleFormat = (rtDescriptor.depthStencilFormat != GraphicsFormat.None) ? rtDescriptor.depthStencilFormat : rtDescriptor.graphicsFormat;
+ var isShadowMap = rtDescriptor.shadowSamplingMode != ShadowSamplingMode.None;
return
rtHandleFormat != descriptor.format ||
- handle.rt.descriptor.dimension != descriptor.dimension ||
- handle.rt.descriptor.volumeDepth != descriptor.slices ||
- handle.rt.descriptor.enableRandomWrite != descriptor.enableRandomWrite ||
- handle.rt.descriptor.enableShadingRate != descriptor.enableShadingRate ||
- handle.rt.descriptor.useMipMap != descriptor.useMipMap ||
- handle.rt.descriptor.autoGenerateMips != descriptor.autoGenerateMips ||
+ rtDescriptor.dimension != descriptor.dimension ||
+ rtDescriptor.volumeDepth != descriptor.slices ||
+ rtDescriptor.enableRandomWrite != descriptor.enableRandomWrite ||
+ rtDescriptor.enableShadingRate != descriptor.enableShadingRate ||
+ rtDescriptor.useMipMap != descriptor.useMipMap ||
+ rtDescriptor.autoGenerateMips != descriptor.autoGenerateMips ||
isShadowMap != descriptor.isShadowMap ||
- (MSAASamples)handle.rt.descriptor.msaaSamples != descriptor.msaaSamples ||
- handle.rt.descriptor.bindMS != descriptor.bindTextureMS ||
- handle.rt.descriptor.useDynamicScale != descriptor.useDynamicScale ||
- handle.rt.descriptor.useDynamicScaleExplicit != descriptor.useDynamicScaleExplicit ||
- handle.rt.descriptor.memoryless != descriptor.memoryless ||
+ (MSAASamples)rtDescriptor.msaaSamples != descriptor.msaaSamples ||
+ rtDescriptor.bindMS != descriptor.bindTextureMS ||
+ rtDescriptor.useDynamicScale != descriptor.useDynamicScale ||
+ rtDescriptor.useDynamicScaleExplicit != descriptor.useDynamicScaleExplicit ||
+ rtDescriptor.memoryless != descriptor.memoryless ||
handle.rt.filterMode != descriptor.filterMode ||
handle.rt.wrapMode != descriptor.wrapMode ||
handle.rt.anisoLevel != descriptor.anisoLevel ||
- handle.rt.mipMapBias != descriptor.mipMapBias ||
+ Mathf.Abs(handle.rt.mipMapBias - descriptor.mipMapBias) > Mathf.Epsilon ||
handle.name != descriptor.name;
}
diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/ScriptableRendererData.cs b/Packages/com.unity.render-pipelines.universal/Runtime/ScriptableRendererData.cs
index 2bb9245be4a..0f570b6c39c 100644
--- a/Packages/com.unity.render-pipelines.universal/Runtime/ScriptableRendererData.cs
+++ b/Packages/com.unity.render-pipelines.universal/Runtime/ScriptableRendererData.cs
@@ -194,6 +194,25 @@ internal bool ValidateRendererFeatures()
return false;
}
+ internal void RemoveMissingRendererFeatures()
+ {
+ string path = AssetDatabase.GetAssetPath(this);
+
+ for (int i = m_RendererFeatures.Count - 1; i >= 0; i--)
+ {
+ if (m_RendererFeatures[i] == null)
+ {
+ m_RendererFeatures.RemoveAt(i);
+ m_RendererFeatureMap.RemoveAt(i);
+ }
+ }
+
+ AssetDatabase.RemoveScriptableObjectsWithMissingScript(path);
+ EditorUtility.SetDirty(this);
+ AssetDatabase.SaveAssetIfDirty(this);
+ AssetDatabase.Refresh();
+ }
+
internal bool DuplicateFeatureCheck(Type type)
{
Attribute isSingleFeature = type.GetCustomAttribute(typeof(DisallowMultipleRendererFeature));
diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/UniversalAdditionalCameraData.cs b/Packages/com.unity.render-pipelines.universal/Runtime/UniversalAdditionalCameraData.cs
index 1702c6b2803..a03b93f51b2 100644
--- a/Packages/com.unity.render-pipelines.universal/Runtime/UniversalAdditionalCameraData.cs
+++ b/Packages/com.unity.render-pipelines.universal/Runtime/UniversalAdditionalCameraData.cs
@@ -571,8 +571,8 @@ public CameraRenderType renderType
}
///
- /// Returns the camera stack. Only valid for Base cameras.
- /// Will return null if it is not a Base camera.
+ /// Returns the stacked Overlay cameras.
+ /// Only Base cameras can have such a stack, it will return null otherwise.
/// .
///
public List cameraStack
diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/UniversalRenderPipeline.cs b/Packages/com.unity.render-pipelines.universal/Runtime/UniversalRenderPipeline.cs
index 6b5fced6132..b65824f9f8d 100644
--- a/Packages/com.unity.render-pipelines.universal/Runtime/UniversalRenderPipeline.cs
+++ b/Packages/com.unity.render-pipelines.universal/Runtime/UniversalRenderPipeline.cs
@@ -183,8 +183,8 @@ internal static bool UseDynamicBranchFogKeyword()
///
public override RenderPipelineGlobalSettings defaultSettings => m_GlobalSettings;
- // flag to keep track of depth buffer requirements by any of the cameras in the stack
- internal static bool cameraStackRequiresDepthForPostprocessing = false;
+ // flag to keep track of depth buffer requirements by any of the overlay cameras in the stack
+ internal static bool stackedOverlayCamerasRequireDepthForPostProcessing = false;
internal static RenderGraph s_RenderGraph;
internal static RTHandleResourcePool s_RTHandlePool;
@@ -461,10 +461,12 @@ protected override void Render(ScriptableRenderContext renderContext, List
- /// Renders a camera stack. This method calls RenderSingleCamera for each valid camera in the stack.
+ /// Renders a camera stack if the selected camera is a base camera.
+ /// This method calls RenderSingleCamera for each valid camera in the stack.
/// The last camera resolves the final target to screen.
///
/// Render context used to record commands during execution.
@@ -927,27 +930,26 @@ static void RenderCameraStack(ScriptableRenderContext context, Camera baseCamera
// The renderer is checked if it supports Base camera. Since Base is the only relevant type at this moment.
var renderer = GetRenderer(baseCamera, baseCameraAdditionalData);
bool supportsCameraStacking = renderer != null && renderer.SupportsCameraStackingType(CameraRenderType.Base);
- List cameraStack = (supportsCameraStacking) ? baseCameraAdditionalData?.cameraStack : null;
+ List stackedOverlayCameras = (supportsCameraStacking) ? baseCameraAdditionalData?.cameraStack : null;
- bool anyPostProcessingEnabled = baseCameraAdditionalData != null && baseCameraAdditionalData.renderPostProcessing;
+ // We use this bool to check if post processing is enabled for any cameras of the stack
+ bool stackAnyPostProcessingEnabled = baseCameraAdditionalData != null && baseCameraAdditionalData.renderPostProcessing;
bool mainHdrDisplayOutputActive = HDROutputForMainDisplayIsActive();
- int rendererCount = asset.m_RendererDataList.Length;
-
// We need to know the last active camera in the stack to be able to resolve
// rendering to screen when rendering it. The last camera in the stack is not
// necessarily the last active one as it users might disable it.
int lastActiveOverlayCameraIndex = -1;
- if (cameraStack != null)
+ if (stackedOverlayCameras != null)
{
var baseCameraRendererType = renderer.GetType();
bool shouldUpdateCameraStack = false;
- cameraStackRequiresDepthForPostprocessing = false;
+ stackedOverlayCamerasRequireDepthForPostProcessing = false;
- for (int i = 0; i < cameraStack.Count; ++i)
+ for (int i = 0; i < stackedOverlayCameras.Count; ++i)
{
- Camera overlayCamera = cameraStack[i];
+ Camera overlayCamera = stackedOverlayCameras[i];
if (overlayCamera == null)
{
shouldUpdateCameraStack = true;
@@ -983,9 +985,9 @@ static void RenderCameraStack(ScriptableRenderContext context, Camera baseCamera
continue;
}
- cameraStackRequiresDepthForPostprocessing |= CheckPostProcessForDepth();
+ stackedOverlayCamerasRequireDepthForPostProcessing |= CheckPostProcessForDepth();
- anyPostProcessingEnabled |= data.renderPostProcessing;
+ stackAnyPostProcessingEnabled |= data.renderPostProcessing;
lastActiveOverlayCameraIndex = i;
}
}
@@ -1027,14 +1029,15 @@ static void RenderCameraStack(ScriptableRenderContext context, Camera baseCamera
#if VISUAL_EFFECT_GRAPH_0_0_1_OR_NEWER
VFX.VFXCameraXRSettings cameraXRSettings;
#endif
+
+ // Base Camera Rendering
using (new CameraRenderingScope(context, baseCamera))
{
// Update volumeframework before initializing additional camera data
UpdateVolumeFramework(baseCamera, baseCameraAdditionalData);
ContextContainer frameData = renderer.frameData;
- UniversalCameraData baseCameraData = CreateCameraData(frameData, baseCamera,
- baseCameraAdditionalData, !isStackedRendering);
+ UniversalCameraData baseCameraData = CreateCameraData(frameData, baseCamera, baseCameraAdditionalData);
#if ENABLE_VR && ENABLE_XR_MODULE
if (xrPass.enabled)
@@ -1066,7 +1069,7 @@ static void RenderCameraStack(ScriptableRenderContext context, Camera baseCamera
ApplyAdaptivePerformance(baseCameraData);
#endif
// update the base camera flag so that the scene depth is stored if needed by overlay cameras later in the frame
- baseCameraData.postProcessingRequiresDepthTexture |= cameraStackRequiresDepthForPostprocessing;
+ baseCameraData.postProcessingRequiresDepthTexture |= stackedOverlayCamerasRequireDepthForPostProcessing;
// Check whether the camera stack final output is HDR
// This is equivalent of UniversalCameraData.isHDROutputActive but without necessiting the base camera to be the last camera in the stack.
@@ -1085,7 +1088,7 @@ static void RenderCameraStack(ScriptableRenderContext context, Camera baseCamera
&& baseCameraData.allowHDROutput; // Check whether the base camera allows HDR output
// Update stack-related parameters
- baseCameraData.stackAnyPostProcessingEnabled = anyPostProcessingEnabled;
+ baseCameraData.stackAnyPostProcessingEnabled = stackAnyPostProcessingEnabled;
baseCameraData.stackLastCameraOutputToHDR = finalOutputHDR;
RenderSingleCamera(context, baseCameraData);
@@ -1095,11 +1098,12 @@ static void RenderCameraStack(ScriptableRenderContext context, Camera baseCamera
if (xrPass.enabled)
XRSystemUniversal.EndLateLatching(baseCamera, xrPassUniversal);
+ // Overlay Cameras Rendering
if (isStackedRendering)
{
- for (int i = 0; i < cameraStack.Count; ++i)
+ for (int i = 0; i < stackedOverlayCameras.Count; ++i)
{
- var overlayCamera = cameraStack[i];
+ var overlayCamera = stackedOverlayCameras[i];
if (!overlayCamera.isActiveAndEnabled)
continue;
@@ -1108,7 +1112,7 @@ static void RenderCameraStack(ScriptableRenderContext context, Camera baseCamera
if (overlayAdditionalCameraData != null)
{
ContextContainer overlayFrameData = GetRenderer(overlayCamera, overlayAdditionalCameraData).frameData;
- UniversalCameraData overlayCameraData = CreateCameraData(overlayFrameData, baseCamera, baseCameraAdditionalData, false);
+ UniversalCameraData overlayCameraData = CreateCameraData(overlayFrameData, baseCamera, baseCameraAdditionalData);
#if ENABLE_VR && ENABLE_XR_MODULE
if (xrPass.enabled)
{
@@ -1134,7 +1138,7 @@ static void RenderCameraStack(ScriptableRenderContext context, Camera baseCamera
bool isLastOverlayCamera = i == lastActiveOverlayCameraIndex;
InitializeAdditionalCameraData(overlayCamera, overlayAdditionalCameraData, isLastOverlayCamera, isLastBaseCamera, overlayCameraData);
- overlayCameraData.stackAnyPostProcessingEnabled = anyPostProcessingEnabled;
+ overlayCameraData.stackAnyPostProcessingEnabled = stackAnyPostProcessingEnabled;
overlayCameraData.stackLastCameraOutputToHDR = finalOutputHDR;
xrLayout.ReconfigurePass(overlayCameraData.xr, overlayCamera);
@@ -1303,7 +1307,7 @@ static ScriptableRenderer GetRenderer(Camera camera, UniversalAdditionalCameraDa
return renderer;
}
- static UniversalCameraData CreateCameraData(ContextContainer frameData, Camera camera, UniversalAdditionalCameraData additionalCameraData, bool resolveFinalTarget)
+ static UniversalCameraData CreateCameraData(ContextContainer frameData, Camera camera, UniversalAdditionalCameraData additionalCameraData)
{
using var profScope = new ProfilingScope(Profiling.Pipeline.initializeCameraData);
diff --git a/Packages/com.unity.render-pipelines.universal/Shaders/2D/Sprite-Lit-Default.shader b/Packages/com.unity.render-pipelines.universal/Shaders/2D/Sprite-Lit-Default.shader
index ba03b8fac6f..706bf061e95 100644
--- a/Packages/com.unity.render-pipelines.universal/Shaders/2D/Sprite-Lit-Default.shader
+++ b/Packages/com.unity.render-pipelines.universal/Shaders/2D/Sprite-Lit-Default.shader
@@ -5,7 +5,7 @@ Shader "Universal Render Pipeline/2D/Sprite-Lit-Default"
_MainTex("Diffuse", 2D) = "white" {}
_MaskTex("Mask", 2D) = "white" {}
_NormalMap("Normal Map", 2D) = "bump" {}
- _ZWrite("ZWrite", Float) = 0
+ [MaterialToggle] _ZWrite("ZWrite", Float) = 0
// Legacy properties. They're here so that materials using this shader can gracefully fallback to the legacy sprite shader.
[HideInInspector] _Color("Tint", Color) = (1,1,1,1)
diff --git a/Packages/com.unity.render-pipelines.universal/Shaders/PostProcessing/.buginfo b/Packages/com.unity.render-pipelines.universal/Shaders/PostProcessing/.buginfo
index fbd5f8466e1..24a842b92f3 100644
--- a/Packages/com.unity.render-pipelines.universal/Shaders/PostProcessing/.buginfo
+++ b/Packages/com.unity.render-pipelines.universal/Shaders/PostProcessing/.buginfo
@@ -1 +1 @@
-area: Post-processing and UI Features
+area: Post-processing and Compositing
\ No newline at end of file
diff --git a/Packages/com.unity.shadergraph/Documentation~/Normal-Unpack-Node.md b/Packages/com.unity.shadergraph/Documentation~/Normal-Unpack-Node.md
index 4148d50251c..c3307371138 100644
--- a/Packages/com.unity.shadergraph/Documentation~/Normal-Unpack-Node.md
+++ b/Packages/com.unity.shadergraph/Documentation~/Normal-Unpack-Node.md
@@ -28,7 +28,7 @@ The following example code represents one possible outcome of this node per **Sp
```
void Unity_NormalUnpack_float(float4 In, out float3 Out)
{
- Out = UnpackNormalmapRGorAG(In);
+ Out = UnpackNormalMapRGorAG(In);
}
```
diff --git a/Packages/com.unity.shadergraph/Documentation~/Sample-Texture-2D-Node.md b/Packages/com.unity.shadergraph/Documentation~/Sample-Texture-2D-Node.md
index c76a9394b45..aade64504b2 100644
--- a/Packages/com.unity.shadergraph/Documentation~/Sample-Texture-2D-Node.md
+++ b/Packages/com.unity.shadergraph/Documentation~/Sample-Texture-2D-Node.md
@@ -116,7 +116,7 @@ float _SampleTexture2D_A = _SampleTexture2D_RGBA.a;
```
float4 _SampleTexture2D_RGBA = SAMPLE_TEXTURE2D(Texture, Sampler, UV);
-_SampleTexture2D_RGBA.rgb = UnpackNormalmapRGorAG(_SampleTexture2D_RGBA);
+_SampleTexture2D_RGBA.rgb = UnpackNormalMapRGorAG(_SampleTexture2D_RGBA);
float _SampleTexture2D_R = _SampleTexture2D_RGBA.r;
float _SampleTexture2D_G = _SampleTexture2D_RGBA.g;
float _SampleTexture2D_B = _SampleTexture2D_RGBA.b;
diff --git a/Packages/com.unity.shadergraph/Editor/Data/Graphs/AbstractShaderProperty.cs b/Packages/com.unity.shadergraph/Editor/Data/Graphs/AbstractShaderProperty.cs
index 2faa21f55d4..938f22532a2 100644
--- a/Packages/com.unity.shadergraph/Editor/Data/Graphs/AbstractShaderProperty.cs
+++ b/Packages/com.unity.shadergraph/Editor/Data/Graphs/AbstractShaderProperty.cs
@@ -91,7 +91,33 @@ public bool hidden
set => m_Hidden = value;
}
- internal string hideTagString => hidden || (shouldForceExposed && !isExposed) ? "[HideInInspector]" : "";
+ [SerializeField]
+ bool m_PerRendererData = false;
+ internal bool PerRendererData
+ {
+ get => m_PerRendererData;
+ set => m_PerRendererData = value;
+ }
+
+ internal string hideTagString => hidden || (shouldForceExposed && !isExposed) ? $"[HideInInspector]" : perRendererDataTagString;
+ internal string perRendererDataTagString => PerRendererData ? "[PerRendererData]" : "";
+
+ [Serializable]
+ internal class PropertyAttribute
+ {
+ public string name;
+ public string value;
+
+ internal PropertyAttribute(string name, string value)
+ {
+ this.name = name;
+ this.value = value;
+ }
+ }
+
+ [SerializeField]
+ List m_customAttributes = new();
+ internal List customAttributes => m_customAttributes;
// reference names are the HLSL declaration name / property block ref name
internal virtual void GetPropertyReferenceNames(List result)
@@ -117,7 +143,18 @@ internal virtual string GetPropertyBlockString()
// the more complex interface for complex properties (defaulted for simple properties)
internal virtual void AppendPropertyBlockStrings(ShaderStringBuilder builder)
{
- builder.AppendLine(GetPropertyBlockString());
+ string attributesPrefix = string.Empty;
+
+ foreach (var attribute in customAttributes)
+ {
+ if (string.IsNullOrEmpty(attribute.value))
+ attributesPrefix += $"[{attribute.name}]";
+ else
+ attributesPrefix += $"[{attribute.name}({attribute.value})]";
+ }
+
+ string propertyBlockString = attributesPrefix + GetPropertyBlockString();
+ builder.AppendLine(propertyBlockString);
}
internal abstract void ForeachHLSLProperty(Action action);
diff --git a/Packages/com.unity.shadergraph/Editor/Data/Graphs/ShaderKeyword.cs b/Packages/com.unity.shadergraph/Editor/Data/Graphs/ShaderKeyword.cs
index 667d28a0966..f243b675c90 100644
--- a/Packages/com.unity.shadergraph/Editor/Data/Graphs/ShaderKeyword.cs
+++ b/Packages/com.unity.shadergraph/Editor/Data/Graphs/ShaderKeyword.cs
@@ -64,6 +64,8 @@ public KeywordType keywordType
set => m_KeywordType = value;
}
+ internal bool IsDynamic => m_KeywordDefinition == KeywordDefinition.DynamicBranch;
+
[SerializeField]
private KeywordDefinition m_KeywordDefinition = KeywordDefinition.ShaderFeature;
@@ -173,7 +175,23 @@ public void AppendKeywordDeclarationStrings(ShaderStringBuilder builder)
public string GetKeywordPreviewDeclarationString()
{
- switch (keywordType)
+ if (this.IsDynamic)
+ {
+ switch(keywordType)
+ {
+ case KeywordType.Boolean:
+ return $"#define {referenceName} {(value == 0 ? "false" : " true")}";
+ case KeywordType.Enum:
+ string result = $"#define {referenceName}_{entries[value].referenceName} true";
+ for (int i = 0; i < entries.Count; ++i)
+ if (i != value)
+ result += $"\n#define {referenceName}_{entries[i].referenceName} false";
+ return result;
+ default:
+ throw new ArgumentOutOfRangeException();
+ }
+ }
+ else switch (keywordType)
{
case KeywordType.Boolean:
return value == 1 ? $"#define {referenceName}" : string.Empty;
diff --git a/Packages/com.unity.shadergraph/Editor/Data/Graphs/Vector1ShaderProperty.cs b/Packages/com.unity.shadergraph/Editor/Data/Graphs/Vector1ShaderProperty.cs
index cda01df14d8..08773683c45 100644
--- a/Packages/com.unity.shadergraph/Editor/Data/Graphs/Vector1ShaderProperty.cs
+++ b/Packages/com.unity.shadergraph/Editor/Data/Graphs/Vector1ShaderProperty.cs
@@ -46,7 +46,7 @@ string enumTagString
switch (enumType)
{
case EnumType.CSharpEnum:
- return $"[Enum({m_CSharpEnumType.ToString()})]";
+ return $"[Enum({(m_CSharpEnumType != null ? m_CSharpEnumType.ToString() : m_CSharpEnumString)})]";
case EnumType.KeywordEnum:
return $"[KeywordEnum({string.Join(", ", enumNames)})]";
default:
@@ -61,6 +61,22 @@ string enumTagString
}
}
+ string sliderTagString
+ {
+ get
+ {
+ switch (sliderType)
+ {
+ case SliderType.Power:
+ return $"[PowerSlider({m_SliderPower})]";
+ case SliderType.Integer:
+ return $"[IntRange]";
+ default:
+ return string.Empty;
+ }
+ }
+ }
+
internal override string GetHLSLVariableName(bool isSubgraphProperty, GenerationMode mode)
{
HLSLDeclaration decl = GetDefaultHLSLDeclaration();
@@ -77,7 +93,7 @@ internal override string GetPropertyBlockString()
switch (floatType)
{
case FloatType.Slider:
- return $"{hideTagString}{referenceName}(\"{displayName}\", Range({NodeUtils.FloatToShaderValueShaderLabSafe(m_RangeValues.x)}, {NodeUtils.FloatToShaderValueShaderLabSafe(m_RangeValues.y)})) = {valueString}";
+ return $"{hideTagString}{sliderTagString}{referenceName}(\"{displayName}\", Range({NodeUtils.FloatToShaderValueShaderLabSafe(m_RangeValues.x)}, {NodeUtils.FloatToShaderValueShaderLabSafe(m_RangeValues.y)})) = {valueString}";
case FloatType.Integer:
return $"{hideTagString}{referenceName}(\"{displayName}\", Int) = {((int)value).ToString(CultureInfo.InvariantCulture)}";
case FloatType.Enum:
@@ -116,6 +132,16 @@ public Vector2 rangeValues
set => m_RangeValues = value;
}
+ [SerializeField]
+ SliderType m_SliderType = SliderType.Default;
+
+ internal SliderType sliderType { get => m_SliderType; set => m_SliderType = value; }
+
+ [SerializeField]
+ float m_SliderPower = 3.0f;
+ internal float sliderPower { get => m_SliderPower; set => m_SliderPower = value; }
+
+ [SerializeField]
EnumType m_EnumType = EnumType.Enum;
public EnumType enumType
@@ -132,7 +158,17 @@ public Type cSharpEnumType
set => m_CSharpEnumType = value;
}
- List m_EnumNames = new List();
+ [SerializeField]
+ string m_CSharpEnumString;
+
+ internal string cSharpEnumString
+ {
+ get => m_CSharpEnumString;
+ set => m_CSharpEnumString = value;
+ }
+
+ [SerializeField]
+ List m_EnumNames = new List() { "Default" };
public List enumNames
{
@@ -140,7 +176,8 @@ public List enumNames
set => m_EnumNames = value;
}
- List m_EnumValues = new List();
+ [SerializeField]
+ List m_EnumValues = new List() { 0 };
public List enumValues
{
@@ -199,5 +236,7 @@ public override void OnAfterDeserialize(string json)
public enum FloatType { Default, Slider, Integer, Enum }
+ internal enum SliderType { Default, Power, Integer }
+
public enum EnumType { Enum, CSharpEnum, KeywordEnum, }
}
diff --git a/Packages/com.unity.shadergraph/Editor/Data/Graphs/VectorShaderProperty.cs b/Packages/com.unity.shadergraph/Editor/Data/Graphs/VectorShaderProperty.cs
index 5e220c48c38..fac3a41cd2d 100644
--- a/Packages/com.unity.shadergraph/Editor/Data/Graphs/VectorShaderProperty.cs
+++ b/Packages/com.unity.shadergraph/Editor/Data/Graphs/VectorShaderProperty.cs
@@ -23,7 +23,7 @@ internal override string GetHLSLVariableName(bool isSubgraphProperty, Generation
internal override string GetPropertyBlockString()
{
- return $"{hideTagString}{referenceName}(\"{displayName}\", Vector) = ({NodeUtils.FloatToShaderValueShaderLabSafe(value.x)}, {NodeUtils.FloatToShaderValueShaderLabSafe(value.y)}, {NodeUtils.FloatToShaderValueShaderLabSafe(value.z)}, {NodeUtils.FloatToShaderValueShaderLabSafe(value.w)})";
+ return $"{hideTagString}{referenceName}(\"{displayName}\", Vector, {vectorDimension}) = ({NodeUtils.FloatToShaderValueShaderLabSafe(value.x)}, {NodeUtils.FloatToShaderValueShaderLabSafe(value.y)}, {NodeUtils.FloatToShaderValueShaderLabSafe(value.z)}, {NodeUtils.FloatToShaderValueShaderLabSafe(value.w)})";
}
internal override string GetPropertyAsArgumentString(string precisionString)
diff --git a/Packages/com.unity.shadergraph/Editor/Data/Implementation/NodeUtils.cs b/Packages/com.unity.shadergraph/Editor/Data/Implementation/NodeUtils.cs
index 13ed5baa147..79dabe57d86 100644
--- a/Packages/com.unity.shadergraph/Editor/Data/Implementation/NodeUtils.cs
+++ b/Packages/com.unity.shadergraph/Editor/Data/Implementation/NodeUtils.cs
@@ -118,7 +118,7 @@ public static void DepthFirstCollectNodesFromNode(ICollection x.Key == keywordNode.keyword).FirstOrDefault();
ids = new int[] { keywordNode.GetSlotIdForPermutation(valueInPermutation) };
diff --git a/Packages/com.unity.shadergraph/Editor/Data/Nodes/Utility/KeywordNode.cs b/Packages/com.unity.shadergraph/Editor/Data/Nodes/Utility/KeywordNode.cs
index fe70eabc218..d67ca3f4986 100644
--- a/Packages/com.unity.shadergraph/Editor/Data/Nodes/Utility/KeywordNode.cs
+++ b/Packages/com.unity.shadergraph/Editor/Data/Nodes/Utility/KeywordNode.cs
@@ -132,7 +132,27 @@ void UpdatePorts()
public void GenerateNodeCode(ShaderStringBuilder sb, GenerationMode generationMode)
{
var outputSlot = FindOutputSlot(OutputSlotId);
- switch (keyword.keywordType)
+ if (keyword.keywordDefinition == KeywordDefinition.DynamicBranch)
+ {
+ switch (keyword.keywordType)
+ {
+ case KeywordType.Boolean:
+ var onValue = GetSlotValue(1, generationMode);
+ var offValue = GetSlotValue(2, generationMode);
+ sb.AppendLine(string.Format($"{outputSlot.concreteValueType.ToShaderString()} {GetVariableNameForSlot(OutputSlotId)} = {keyword.referenceName} ? {onValue} : {offValue};"));
+ break;
+ case KeywordType.Enum:
+ sb.AppendLine(string.Format($"{outputSlot.concreteValueType.ToShaderString()} {GetVariableNameForSlot(OutputSlotId)};"));
+ for(int i = 0; i < keyword.entries.Count; ++i)
+ {
+ string keywordName = $"{keyword.referenceName}_{keyword.entries[i].referenceName}";
+ var value = GetSlotValue(i + 1, generationMode);
+ sb.AppendLine(string.Format($"{(i != 0 ? "else" : "")} if({keywordName}) {GetVariableNameForSlot(OutputSlotId)} = {value};"));
+ }
+ break;
+ }
+ }
+ else switch (keyword.keywordType)
{
case KeywordType.Boolean:
{
diff --git a/Packages/com.unity.shadergraph/Editor/Data/Util/KeywordCollector.cs b/Packages/com.unity.shadergraph/Editor/Data/Util/KeywordCollector.cs
index 6ba91565db3..6f4dcbb8a5e 100644
--- a/Packages/com.unity.shadergraph/Editor/Data/Util/KeywordCollector.cs
+++ b/Packages/com.unity.shadergraph/Editor/Data/Util/KeywordCollector.cs
@@ -8,11 +8,13 @@ namespace UnityEditor.ShaderGraph
class KeywordCollector
{
public readonly List keywords;
+ public readonly List permutableKeywords;
public readonly List>> permutations;
public KeywordCollector()
{
keywords = new List();
+ permutableKeywords = new();
permutations = new List>>();
}
@@ -22,6 +24,9 @@ public void AddShaderKeyword(ShaderKeyword chunk)
return;
keywords.Add(chunk);
+
+ if (!chunk.IsDynamic)
+ permutableKeywords.Add(chunk);
}
public void GetKeywordsDeclaration(ShaderStringBuilder builder, GenerationMode mode)
@@ -59,13 +64,14 @@ public void CalculateKeywordPermutations()
// Initialize current permutation
List> currentPermutation = new List>();
- for (int i = 0; i < keywords.Count; i++)
+
+ for (int i = 0; i < permutableKeywords.Count; i++)
{
- currentPermutation.Add(new KeyValuePair(keywords[i], 0));
+ currentPermutation.Add(new KeyValuePair(permutableKeywords[i], 0));
}
// Recursively permute keywords
- PermuteKeywords(keywords, currentPermutation, 0);
+ PermuteKeywords(permutableKeywords, currentPermutation, 0);
}
void PermuteKeywords(List keywords, List> currentPermutation, int currentIndex)
diff --git a/Packages/com.unity.shadergraph/Editor/Data/Util/KeywordUtil.cs b/Packages/com.unity.shadergraph/Editor/Data/Util/KeywordUtil.cs
index 602e5d67d5e..cf65282f808 100644
--- a/Packages/com.unity.shadergraph/Editor/Data/Util/KeywordUtil.cs
+++ b/Packages/com.unity.shadergraph/Editor/Data/Util/KeywordUtil.cs
@@ -72,6 +72,8 @@ public static string ToDeclarationString(this KeywordDefinition keywordDefinitio
return "multi_compile";
case KeywordDefinition.ShaderFeature:
return "shader_feature";
+ case KeywordDefinition.DynamicBranch:
+ return "dynamic_branch";
default:
return string.Empty;
}
diff --git a/Packages/com.unity.shadergraph/Editor/Drawing/Inspector/PropertyDrawers/IntegerPropertyDrawer.cs b/Packages/com.unity.shadergraph/Editor/Drawing/Inspector/PropertyDrawers/IntegerPropertyDrawer.cs
index 20fdc5070cf..5d8224fb2cd 100644
--- a/Packages/com.unity.shadergraph/Editor/Drawing/Inspector/PropertyDrawers/IntegerPropertyDrawer.cs
+++ b/Packages/com.unity.shadergraph/Editor/Drawing/Inspector/PropertyDrawers/IntegerPropertyDrawer.cs
@@ -17,7 +17,8 @@ internal VisualElement CreateGUI(
int fieldToDraw,
string labelName,
out VisualElement propertyFloatField,
- int indentLevel = 0)
+ int indentLevel = 0,
+ string tooltip = null)
{
var integerField = new IntegerField { value = fieldToDraw };
@@ -29,6 +30,7 @@ internal VisualElement CreateGUI(
propertyFloatField = integerField;
var defaultRow = new PropertyRow(PropertyDrawerUtils.CreateLabel(labelName, indentLevel));
+ defaultRow.tooltip = tooltip;
defaultRow.Add(propertyFloatField);
defaultRow.styleSheets.Add(Resources.Load("Styles/PropertyRow"));
diff --git a/Packages/com.unity.shadergraph/Editor/Drawing/Inspector/PropertyDrawers/ShaderInputPropertyDrawer.cs b/Packages/com.unity.shadergraph/Editor/Drawing/Inspector/PropertyDrawers/ShaderInputPropertyDrawer.cs
index a6865f159c2..37a477b4d93 100644
--- a/Packages/com.unity.shadergraph/Editor/Drawing/Inspector/PropertyDrawers/ShaderInputPropertyDrawer.cs
+++ b/Packages/com.unity.shadergraph/Editor/Drawing/Inspector/PropertyDrawers/ShaderInputPropertyDrawer.cs
@@ -15,6 +15,7 @@
using ContextualMenuManipulator = UnityEngine.UIElements.ContextualMenuManipulator;
using GraphDataStore = UnityEditor.ShaderGraph.DataStore;
+using UnityEditor.Rendering;
namespace UnityEditor.ShaderGraph.Drawing.Inspector.PropertyDrawers
{
@@ -64,6 +65,8 @@ class ShaderInputPropertyDrawer : IPropertyDrawer
const string m_DisplayNameDisallowedPattern = "[^\\w_ ]";
const string m_ReferenceNameDisallowedPattern = @"(?:[^A-Za-z_0-9_])";
+ const string m_EnumRefDisallowedPattern = @"(?:[^A-Za-z_0-9_.])";
+ const string m_AttributeValueDisallowedPattern = @"(?:[^A-Za-z_0-9._ ])";
public ShaderInputPropertyDrawer()
{
@@ -155,6 +158,7 @@ public VisualElement DrawProperty(
BuildPropertyFields(propertySheet);
BuildKeywordFields(propertySheet, shaderInput);
BuildDropdownFields(propertySheet, shaderInput);
+ BuildAttributesFields(propertySheet);
UpdateEnableState();
return propertySheet;
}
@@ -174,6 +178,26 @@ void BuildPropertyNameLabel(PropertySheet propertySheet)
propertySheet.headerContainer.Add(PropertyDrawerUtils.CreateLabel($"{prefix}: {shaderInput.displayName}", 0, FontStyle.Bold));
}
+ void BuildPerRendererDataField(PropertySheet propertySheet)
+ {
+ if (!isSubGraph && shaderInput is AbstractShaderProperty property && property.isExposed)
+ {
+ var toggleDataPropertyDrawer = new ToggleDataPropertyDrawer();
+ propertySheet.Add(toggleDataPropertyDrawer.CreateGUI(
+ evt =>
+ {
+ this._preChangeValueCallback("Change PerRendererData Toggle");
+ property.PerRendererData = evt.isOn;
+ this._postChangeValueCallback(true, ModificationScope.Graph);
+ },
+ new ToggleData(property.PerRendererData),
+ "Read Only",
+ out var perRendererDataToggleVisualElement,
+ tooltip: "Mark this property with [PerRendererData] attribute.\nThis makes it Read-Only in the material inspector."));
+ //perRendererDataToggleVisualElement.SetEnabled(property.isExposed);
+ }
+ }
+
void BuildExposedField(PropertySheet propertySheet)
{
if (!isSubGraph)
@@ -182,9 +206,15 @@ void BuildExposedField(PropertySheet propertySheet)
propertySheet.Add(toggleDataPropertyDrawer.CreateGUI(
evt =>
{
+ if (shaderInput is AbstractShaderProperty property &&
+ (!property.overrideHLSLDeclaration || property.hlslDeclarationOverride == HLSLDeclaration.DoNotDeclare))
+ {
+ property.hlslDeclarationOverride = property.GetDefaultHLSLDeclaration();
+ property.overrideHLSLDeclaration = true;
+ }
this._preChangeValueCallback("Change Exposed Toggle");
this._exposedFieldChangedCallback(evt.isOn);
- this._postChangeValueCallback(false, ModificationScope.Graph);
+ this._postChangeValueCallback(true, ModificationScope.Graph);
},
new ToggleData(shaderInput.isExposed),
shaderInput is ShaderKeyword ? "Generate Material Property" : "Show In Inspector",
@@ -418,6 +448,7 @@ void BuildPropertyFields(PropertySheet propertySheet)
BuildPrecisionField(propertySheet, property);
BuildHLSLDeclarationOverrideFields(propertySheet, property);
BuildExposedField(propertySheet);
+ BuildPerRendererDataField(propertySheet);
switch (property)
{
@@ -528,8 +559,11 @@ void BuildHLSLDeclarationOverrideFields(PropertySheet propertySheet, AbstractSha
property.hlslDeclarationOverride = evt.newValue;
property.overrideHLSLDeclaration = true;
UpdateEnableState();
- this._exposedFieldChangedCallback(evt.newValue != HLSLDeclaration.Global);
- property.generatePropertyBlock = evt.newValue != HLSLDeclaration.Global;
+ if ((evt.newValue == HLSLDeclaration.Global) ^ (evt.previousValue == HLSLDeclaration.Global))
+ {
+ this._exposedFieldChangedCallback(evt.newValue != HLSLDeclaration.Global);
+ property.generatePropertyBlock = evt.newValue != HLSLDeclaration.Global;
+ }
this._postChangeValueCallback(true, ModificationScope.Graph);
});
@@ -559,13 +593,46 @@ void BuildPrecisionField(PropertySheet propertySheet, AbstractShaderProperty pro
precisionField.SetEnabled(false);
}
+ enum EnumTypeForUI { ExplicitValues = EnumType.Enum, TypeReference = EnumType.CSharpEnum }
+
void HandleVector1ShaderProperty(PropertySheet propertySheet, Vector1ShaderProperty vector1ShaderProperty)
{
- var floatType = isCurrentPropertyGlobal ? FloatType.Default : vector1ShaderProperty.floatType;
+ if (shaderInput.isExposed && !isSubGraph && !isCurrentPropertyGlobal)
+ {
+ var enumPropertyDrawer = new EnumPropertyDrawer();
+ propertySheet.Add(enumPropertyDrawer.CreateGUI(
+ newValue =>
+ {
+ this._preChangeValueCallback("Change Vector1 Mode");
+ vector1ShaderProperty.floatType = (FloatType)newValue;
+ this._postChangeValueCallback(true);
+ },
+ vector1ShaderProperty.floatType,
+ "Mode",
+ FloatType.Default,
+ out var modePropertyEnumField,
+ tooltip: "Indicate how this float property should appear in the material inspector UI."));
+ }
+
+ var floatType = (!shaderInput.isExposed || isSubGraph || isCurrentPropertyGlobal) ? FloatType.Default : vector1ShaderProperty.floatType;
// Handle vector 1 mode parameters
switch (floatType)
{
case FloatType.Slider:
+ var sliderTypePropertyDrawer = new EnumPropertyDrawer();
+ propertySheet.Add(sliderTypePropertyDrawer.CreateGUI(
+ newValue =>
+ {
+ this._preChangeValueCallback("Change Slider Type");
+ vector1ShaderProperty.sliderType = (SliderType)newValue;
+ this._postChangeValueCallback(true);
+ },
+ vector1ShaderProperty.sliderType,
+ "Slider Type",
+ SliderType.Default,
+ out var sliderTypePropertyEnumField,
+ tooltip: "Set the Slider type."));
+
var floatPropertyDrawer = new FloatPropertyDrawer();
// Default field
propertySheet.Add(floatPropertyDrawer.CreateGUI(
@@ -611,6 +678,24 @@ void HandleVector1ShaderProperty(PropertySheet propertySheet, Vector1ShaderPrope
var minField = (FloatField)minFloatField;
var maxField = (FloatField)maxFloatField;
+ defaultField.RegisterValueChangedCallback(v =>
+ {
+ if (vector1ShaderProperty.sliderType == SliderType.Integer)
+ defaultField.value = MathF.Round((float)v.newValue);
+ });
+
+ minField.RegisterValueChangedCallback(v =>
+ {
+ if (vector1ShaderProperty.sliderType == SliderType.Integer)
+ minField.value = MathF.Round((float)v.newValue);
+ });
+
+ maxField.RegisterValueChangedCallback(v =>
+ {
+ if (vector1ShaderProperty.sliderType == SliderType.Integer)
+ maxField.value = MathF.Round((float)v.newValue);
+ });
+
minField.Q("unity-text-input").RegisterCallback(evt =>
{
propertySheet.warningContainer.Q